Abstract:
The present invention relates to a memory expansion device for use in increasing the ROM and adding RAM to a program cartridge. The program cartridge is used in association with electronic video games. The present invention relates to various electronic circuitry, including certain logic elements and ROM and RAM, allowing expansion of the memory without increasing or changing the number of conductor contact ribbons formed in parallel for interfacing the cartridge directly to the bus connector of the electronic video game.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to a memory expansion device for use in increasing the ROM and adding RAM to a program cartridge. The program cartridge is used in association with electronic video games. The present invention relates to various electronic circuitry, including certain logic elements and ROM and RAM, allowing expansion of the memory without increasing or changing the number of conductor contact ribbons formed in parallel for interfacing the cartridge directly to the bus connector of the electronic video game. 
     The basic art to which the present invention relates is only a few years old. The video games using program cartridges are commercially available, and have been mass marketed at an astonishing rate. 
     Many television connected microprocessor systems, for use as video games or educational systems, are designed to accept programs from interchangeable cartridges. A program is stored in the ROM of each cartridge. The number of memory addresses available in the cartridges is limited by the number of contact ribbons used in interfacing the cartridge to the video game base unit, and in some cases, the video game base unit does not provide a control line to utilize RAM in a cartridge, so no enable write signal can be interfaced with the cartridge electronic circuit elements. The present invention overcomes these problems of increasing the memory size and adding RAM without modifing the base unit or the bus connector of the base unit. 
     OBJECTS AND SUMMARY OF THE INVENTION 
     An object of this invention is to provide a microprocessor based video game that gives the user a wider choice of game and user programs as a result of increased memory size. 
     Another object of this invention is to provide a microprocessor based video game with a programable cartridge that provides the user with a programable cartridge including both ROM and RAM. 
     Another object of this invention is to provide a microprocessor based video game with a programable cartridge that provides additional memory space without modifying the base unit or the bus connector of the base unit. 
     In accordance with the above objects there is provided a programable cartridge for use in association with eletronic video games. The cartridge contains ROM and RAM storage devices and certain logic elements allowing the expansion of the memory without increasing or changing the number of conductor contact ribbons formed in parallel for interfacing the programable cartridge to the bus connector of the electronic video game. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Still further objects and advantages of the invention will be apparent from the detailed description and claims when read in conjunction with the accompanying drawings. 
     FIG. 1 is a block diagram of the video game base unit and the programable cartridge. 
     FIG. 2 is a perspective illustration of the video game base unit and the programable cartridge. 
     FIG. 3 is a circuit diagram of the programable cartridge elements. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring first to FIG. 1, a block diagram illustrates the programmable cartridge elements 1, the video game base unit 2, the bus connector 3, and the cartridge plug 35. The data bus 4 is a bidirectional bus having eight lines D.0. through D7 via which information is transferred from the base unit 2, to the programable cartridge elements 1, and via which information is transferred from the cartridge elements 1, to the base unit 2. The address bus 5 is an unidirectional bus having twelve lines, A.0. through A11, along which addresses and control signals are transferred from the base unit 2 to the programable cartridge elements 1. A unilateral control bus 6, having one enable line, is used to enable a decoder 10, one of the cartridge elements. 
     Referring to FIG. 2, the video game base unit 2 is designed to accept programs from cartridges 7 that are interchangeable. The cartridge 7 locks in place in a base unit socket 9 included in the base unit 2. The cartridge 7 utilizes ROM and RAM, and the user may enter his own program by way of a keyboard 8. 
     FIG. 3 shows a circuit diagram for the programable cartridge elements 1. The first 2-line-to-4-line decoder 10 can decode two bit input codes on the address bus lines A1.0. and A11. A signal on the control bus 6 is applied to an inverter 11, and the output of the inverter 11 is directly coupled by a single control line 12 to an inverted enable of the first 2-line-to-4-line decoder 10. 
     A second 2-line-to-4-line decoder 13 can decode two bit input codes on the address lines A8 and A9. A control line 14 couples the output 15 of the first decoder 10 to the inverted enable input of the second decoder 13. The output lines from the decoder 13 and the output lines from the decoder 10 are used as control lines. 
     The output 21 of the decoder 10 is coupled to the inverted write enable of RAM 32. The outputs 20 and 21 of decoder 10 are coupled directly to the inputs of a two input AND gate 19. The output of the AND gate 19 is coupled to the inverted enable of RAM 32. The output 28 of the decoder 10 is coupled to the inverted enable of ROM 31. 
     The output 26 of decoder 13 is coupled to a second inverter 29. The output of the second inverter 29 is coupled to a pulse shaper to exclude switching transients, consisting of resistor 40, switching diode 41, capacitor 42, and two inverters 43 and 44. The resistor 40 and the capacitor 42 filter out transients by first charging capacitor 42 during the transient, and second discharging the capacitor 42 through the switching diode 41. The two inverters 43 and 44 are used as a buffer. The output of inverter 44 is coupled to the enable input of the 6 bit latch 16. The outputs 22, 23, and 24 of the decoder 13 are separately coupled to the inputs of a three input AND gate 25. The output of AND gate 25 is directly coupled to the inverted enable of ROM 30. 
     Each of the ten address bus lines A.0. through A9 are separately coupled to the ROM 30, and the ROM 31, and the RAM 32. The six address lines A.0. through A5 are separately coupled to the inputs of the 6 bit latch 16. The latch 16 is used to select one of up to 64 pages of 1024 bytes of ROM or RAM. When the latch 16 is enabled, the address lines A.0. through A5 are used to select a page. The outputs of the latch 16 are separately coupled to the RAM 32, and the ROM 31. 
     Data lines D.0. through D7 are coupled to the ROM 30, the ROM 31, and the RAM 32. The address lines A.0. through A11, the enable line, and the data lines D.0. through D7, are separately coupled to the conductor cantact ribbons formed in parallel, and located in the cartridge plug 35, for interfacing the cartridge directly to the bus connector 3 of the base unit 2. 
     In accordance with the invention, the address lines A.0. through A11, and the enable line are all logic level High or &#34;1&#34; at the beginning of all programs. The microprocessor used in the preferred embodiment is a 6507, and the first instruction is taken from the starting address stored in ROM 30. When the RESET input of the microprocessor is activated, the address lines and the enable line are all High. The input to inverter 11 is High and the output of the inverter 11 is Low, enabling the first decoder 10. 
     Typical digital waveforms go between the levels of 0.0 V and +5 V. In practical systems the Low state, or logic 0 might be any voltage between 0.0 V and +0.8 V, and the High state, or logic 1 might range from +2 V to +5 V. 
     When the address lines A1.0. and All are High, the output 15 of decoder 10 is Low, and the outputs 28, 20, and 21 are High. The output 15 is connected to the inverted enable input of the second decoder 13, and the second decoder 13 is enabled, as shown in TABLE 1 below. The output 21 of the decoder 10 is High, therefor the inverted write enable is not enabled, and the RAM can only be read. 
     
                       TABLE 1______________________________________OutputInput   AND 19A1.0.A11     Output   ROM 31 RAM 32 Decoder 13                                       R/W______________________________________1    1      1         --     --     Enable  R0    1      1         Enable --     --      R1    0      0         --     Enable --      R0    0      0         --     Enable --      W______________________________________ 
    
     When address lines A8 and A9 are High the output 22 is Low, and the outputs 23, 24, and 26 are High for the decoder 13. As shown in TABLE 2 below, the three input AND gate 25, has one input Low and the output of the AND gate 25 is Low enabling ROM 30. The output 26 of the decoder 13 is High and the inverter 29 inverts the High input so that latch 16 is not enabled. Address lines A.0. through A9 are High and the first address is selected from the ROM 30. 
     
                       TABLE 2______________________________________   OutputInput     AND 25A8      A9    Output       ROM 30 Latch______________________________________1       1     0            Enable --1       0     0            Enable --0       1     0            Enable --0       0     1            --     Enable______________________________________ 
    
     The address decoding logic is divided into five regions of different functions. The address lines A.0. through A11 can be coded in binary or Hexadecimal. The addresses and operations are shown in the TABLE 3 below. 
     
                                           TABLE 3__________________________________________________________________________ADDRESS LINEA.0.   A1A2  A3    A4      A5        A6          A7            A8              A9                A1.0.                   A11                      HEX OPERATION__________________________________________________________________________0  0 0 0 0 0 0 0 1 0 1  1  DOO Read ROM 30.to                         to  RESET at FFF.1  1 1 1 1 1 1 1 1 1 1  1  FFF0  0 0 0 0 0 0 0 0 0 1  1  COO Latch A.0. throughto                         to  A5 to select one1  1 1 1 1 1 0 0 0 0 1  1  C3F of any mixture                          of ROM or RAM.                          Appropriate                          decoding allows                          eight pages of                          ROM and RAM to                          be selected                          independently.0  0 0 0 0 0 0 0 0 0 0  1  800 Read selectedto                         to  word of 10241  1 1 1 1 1 1 1 1 1 0  1  BFF byte page of                          ROM. The page                          is selected by                          decoding the                          latch 16.0  0 0 0 0 0 0 0 0 0 1  0  400 Read a selectedto                         to  word of 1024 byte1  1 1 1 1 1 1 1 1 1 1  0  7FF page of RAM. The                          page is selected                          by decoding the                          latch 16.0  0 0 0 0 0 0 0 0 0 0  0  000 Write a selectedto                         to  word of 10241  1 1 1 1 1 1 1 1 1 0  0  3FF byte page of RAM.                          The page is                          selected by                          decoding the                          latch 16.__________________________________________________________________________ 
    
     Words describing the logic functions performed by the circuit elements should be given their broadest generic meaning. Different implementations of the present invention can be discerned easily by those skilled in the art. Inasmuch as the present invention is subject to many variations, it is intended that the foregoing description shall be interpreted as illustrative and not in a limiting sense.