本发明涉及一种游戏存储控制装置及使用该装置的游戏存储卡(以下简称游戏卡),所述游戏存储控制该装置一方面联接游戏机,另一方面与本发明的游戏卡联接,游戏机通过该控制装置从游戏卡中读取数据信息或向其写入数据信息,该游戏存储控制装置本身也可以设有存储器,以存放公用信息,如汉字字库。 游戏机对存储器空间的寻址能力受其中央处理器(CPU)地址总线位数的限制,8位地址总线的CPU只能在64K字节的存储空间(1K=1024,1字节=8位)的存储区域内进行读写数据的操作。
解决这个问题的常用办法是使用硬件控制电路来控制存储器区域的地址切换。这种方法的基本思路是,将一块较大的存储区域划分为若干段,控制电路依照CPU的指令将寻址地址映射到指定的段地址。这种方法解决了低档CPU处理大容量存储信息的问题。
中国专利CN 87103401A,CN 87107950A和CN 86106983A将上述方法用于游戏卡,收到了很好的效果。
但是,这种方法的问题在于:每个8位游戏机的游戏卡中都必须配有类似地存储控制电路,事实上许多内容不同的游戏卡都在使用完全相同的器件进行存储控制。这样就造成了浪费。一个用户购买的游戏卡越多,造成的浪费越大。
解决这一问题的根本方法是将存储控制电路做在游戏机中。事实上后来出品的16位游戏机就是这样做的,它的游戏卡内只有存储器件。
另一方面,有些存放在存储器中的信息,如汉字字库具有公共信息的性质,并不特别依赖于某个特定的游戏节目。如果每个中文游戏卡中都存放着一个相同的字库,也会造成浪费。
本发明的一个主要目的,是用一个单独的存储控制器件来解决上述的各游戏卡重复使用同一存储控制电路的问题。该控制器一方面连接游戏机,另一方面连接游戏卡,并能够接受CPU的指令控制存储地址的切换。插在该控制器上的游戏卡内仅装有存储器件。
本发明的另一个主要目的,是解决上述的各游戏卡内存储同样的公用信息的问题,办法是在前述存储控制器内设置一个存储区,以存放某些公用信息,如汉字字库,而插在该控制器上的游戏卡内则不再存放这些公用信息。
这样游戏卡内就不再有存储控制电路和存放公用信息的存储器件,从而可以有效地降低游戏卡的成本。
本发明提供了一种用于游戏机的存储控制装置,包括一个外壳,一个装在外壳中的电路板,一个装在该电路板上的有源器件,用于控制存储地址的切换,一个装在该电路板上的存储器,用于存放某些公用信息,如汉字字库,两个装在该电路上的连接件,其中一个与游戏机相连,另一个与存放游戏内容的存储器相连。
使用存储控制器上的有源器件,可以在不增加CPU地址线的前提下,增加它的地址访问空间。方法是将专用游戏卡上的大容量芯片分成若干个存储体,而在有源器件内部,设置若干锁存器,每个锁存器对应CPU一段可访问的地址空间,锁存器中锁存着程序存储器的某个存储体号,当CPU访问某个地址空间时,实际上是在访问程序存储器上某个存储体。锁存器中锁存的存储体号可以通过程序修改。在本发明之前,公用信息(如汉字库)都是与程序合在一起,放在一块大容量的芯片中。现在为了减轻消费者的负担,将它们分开,分放在存储控制器和游戏卡的二个存储器中。如果仍用以前的寻址方式读取程序和公用信息(如汉字库)肯定是不行的。为此,我们设计了一个有源器件安装在存储控制器上,可以方便地访问程序存储器和公用信息存储器。有源器件可以接收游戏机CPU发出的选取公用信息存储器或程序存储器的信号,经过译码器与锁存器给出相应存储器的片选信号。
下列附图给出了本发明的一个实施例。
图1A是本发明实施例的部件分解透视图。
图1B为本发明存放游戏内容的游戏卡的结构分解透视图。
图2是该实施例的控制器电路原理图。
图3是该实施例的连接端子各引线定义图。
图4是用于本发明提出的与存储控制器配合使用的游戏卡的电路原理图。
图5是控制器内置存储器与外接游戏存储器的存储地址分配表。
以下是各图的详细说明。
图1是本发明一个实施例的部件分解透视图。存储控制器1有一个外壳2,外壳2则由下外壳2a与上外壳2b组成。外壳的一个边有一个突出部分3a,3b形成一个开口。其对边是另一个开口4a,4b。外壳的其他边为侧壁封闭。
印刷电路板5装在外壳2内,电路板上的二个突出部分6与7分别通过外壳2的开口3与4露出来。导电条或金手指,分布在突出部分6的边缘延伸方向上,构成控制装置与游戏机主部件的连接,相应的插座8则构成了存储控制器与游戏卡电路板25的连接。
公用信息存储器9、有源器件10及用于屏幕显示的VRAM存储器11都装在印刷电路板上。
图1B是游戏卡的分解透视图。游戏卡外壳24由下外壳24a与上外壳24b组成。外壳有一个突出部分26a,26b,形成一个开口。印刷电路板25装在外壳24内,其上装有程序存储器20,RAM存储器21和电池22。印刷电路板25通过开口26与控制器的插座8相连。
参照图2详细介绍控制电路的原理及半导体有源器件10、公用信息(汉字库)存储器9和VRAM存储器11三者之间的关系。举例说:公用信息(汉字库)存储器9由256K字节ROM组成,VRAM存储器11由8K字节的RAM组成。
半导体有源器件10,可以由一块计数器芯片或计数器加锁存储器等方式构成,主要用于管理大容量的游戏芯片和公用信息芯片。半导体有源器件10包括输入与输出部分。在所有输入端子中,有4位地址端子:A0、A12、A13、A14和8位数据端子D0-D7。这些地址端子和数据端子通过连接端子12与游戏机的主部件(CPU、PPU等)相连,有源器件上的输入控制信号R/W,ROMS和时钟ω也是通过这种方式与游戏机的主部件相连的。在有源器件10的输出信号端子中,有8根地址线:XA13-XA20。这些输出地址线通过控制器上的连接端子13连接到游戏卡的游戏存储器上,用于选中程序要求的、可被游戏机CPU访问的存储体,有源器件10还有4个控制信号输出端子:XROMS1,公用信息存储器的芯片选择端子,与公用信息存储器的芯片选择端子CS相连;XROMS2,程序存储器的芯片选择端子,通过连接端子13与专用游戏卡上的游戏程序存储器的CS相连;RAMCS1与RAMCS2,扩展RAM芯片选择端子,也是通过连接端子13,与专用游戏卡上的扩展芯片CS相连。
公用信息存储器10,用18根地址输入线,A0-A17,其中A0-A12根地址输入线直接从游戏机插座上引过来,A13-A17则是从有源器件10的地址输出端子上引过来。如果以8Kbyte为一个基本存储体,公用信息存储器10可以有8个这样的存储体,共可以存放256Kbyte的信息。
VRAM存储器11上的所有地址线、数据线及控制线都是通过游戏机上的游戏卡插座与游戏机CPU和PPU相连的。工作状态受游戏程序控制,用于存放画面字符信息及汉字字符信息。
半导体有源器件10的工作状态受游戏程序控制,有源器件10可管理128个程序存储体,(BK00-KB7F),每个存储体8Kbyte,有源器件10的内部电路地址空间“E000H-FFFFH”始终以固定方式访问程序存储器的存储体BK7F,这样就有效地保证了程序对有源器件10的管理。而地址空间“8000H-9FFFH”,“A000-BFFFH”,“C000H-BFFFH”都可以某种方式将自己分配给BK00-BK7F中任意一块存储体,具体分配情况由程序决定。这些地址空间可以分配给程序存储器中的某个存储体,也可以分配给公用信息存储器中的某个存储体。
参照图四详细介绍专用游戏卡的工作原理及程序存储器20,扩展RAM存储器21两者之间的关系。举例说,程序存储器20由1M字节的ROM组成,用于存放程序。扩展RAM存储器21由8K字节的RAM组成,用于存储游戏记录等数据。
游戏程序存储器有21个地址端子A0-A20、8个数据端子D0-D7和两个控制端子:R/W,ROMS2,所有这些都与连接端子23相应的位置相连,其中A0-A12是通过连接端子23通过控制器与游戏机CPU直接相连,A13-A20则来自控制器的有源器件10;R/W来自CPU,ROMS2来自有源器件10。扩展存储器21的电源由专用游戏卡上的电池22提供,电池22有蓄电功能,可使扩展存储器上的数据在游戏卡脱离游戏机相当长的时间内依然保持不变。扩展存储器上的两个片选端子CS1与CS2,通过连接端子与控制器上的有源器件10的RAMCS1和RAMCS2相连。13根地址线A0-A12,8根数据线D0-D7,读写线R/W则通过连接端子直接与游戏机上的CPU相连。
游戏程序存储器可寻址1M字节,00000H-FFFFFH,假设每8K字节为一个存储体,则可有128个存储体,BK00-BK7F,为了避与控制器上的公用信息存储器的数据输入输出发生冲突,有源器器0特地引出了两根ROM片选控制线,ROMCS1与ROMCS2,ROMCS1与程序存储器相连,ROMCS2与公用信息存储器相连。在任意时刻ROMCS1与ROMCS2绝不可能同时有效。
扩展存储器的地址空间为:6000H-7FFFH共8K字节。当游戏机上的CPU地址线:A15A14A13A12=(0110-0111)即6000H-7FFFH时,控制器上的有源器件10的RAMCS1端子为低,选中扩展存储器。从有源器件10引过来的RAMCS2信号利用电池,利用三极管的导通功能,加上适当的电阻来保证扩展存储器上的数据,在关闭游戏机后,依然能长时间地保持。