專利名稱:半導(dǎo)體存儲(chǔ)器和程序判別系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及半導(dǎo)體存儲(chǔ)器和使用它的程序判別系統(tǒng),特別涉及例如游戲機(jī)用的盒式盤(pán)片(cartridge)那樣的存儲(chǔ)程序的ROM等的半導(dǎo)體存儲(chǔ)器和程序判別系統(tǒng)。
例如,在將游戲機(jī)程序?qū)懭氲絉OM那樣的半導(dǎo)體存儲(chǔ)器中使用時(shí),將游戲機(jī)用的盒式盤(pán)片安裝在游戲機(jī)主體中。特別,對(duì)于這種游戲機(jī)用的盒式盤(pán)片,到處可見(jiàn)非法復(fù)制其存儲(chǔ)內(nèi)容的程序的盜版盤(pán)片。
因此,本申請(qǐng)人如在先的日本特開(kāi)平2-31256號(hào)公報(bào)[G06F 12/14]所公開(kāi)的那樣,建議了一種能判別真假的系統(tǒng),這種系統(tǒng)在不是正版的盒式盤(pán)片的場(chǎng)合,能借助于禁止訪問(wèn)程序存儲(chǔ)區(qū)域,防止游戲程序和其它程序的非法復(fù)制以及數(shù)據(jù)改變。
在這種以往的技術(shù)中,因用“地址解碼方式”,并用從程序存儲(chǔ)器實(shí)際讀出的數(shù)據(jù)判別真假,所以有相當(dāng)高的可靠性,能排除盜版磁盤(pán)。
但是,在前述以往的技術(shù)中,因必須對(duì)多個(gè)地址進(jìn)行解碼,所以不僅門(mén)電路個(gè)數(shù)增加、芯片尺寸增大,而且如分析解碼所有地址,則有進(jìn)一步要解決失去非法利用的防護(hù)效果的問(wèn)題。
因此,本發(fā)明的主要目的是提供新穎的半導(dǎo)體存儲(chǔ)器和使用它的程序判別系統(tǒng)。
本發(fā)明的另一個(gè)目的是提供難于剖析并具有長(zhǎng)期保護(hù)效果的半導(dǎo)體存儲(chǔ)器和使用它的程序判別系統(tǒng)。
本發(fā)明的半導(dǎo)體存儲(chǔ)器,固定地存儲(chǔ)由中央處理器執(zhí)行的程序數(shù)據(jù),并輸出按照指定的地址數(shù)據(jù)的地址的程序數(shù)據(jù),包括固定地存儲(chǔ)程序數(shù)據(jù)的程序數(shù)據(jù)存儲(chǔ)器,發(fā)生地址運(yùn)算碼的碼發(fā)生裝置,和接受由中央處理器輸出的第1地址數(shù)據(jù)的地址處理裝置,地址處理裝置在有控制信號(hào)時(shí),根據(jù)地址運(yùn)算碼,輸出對(duì)至少第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有控制信號(hào)時(shí),將第1地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器。
具體地說(shuō),地址處理裝置包括用于對(duì)第1地址數(shù)據(jù)的至少一部分與地址運(yùn)算碼進(jìn)行運(yùn)算,并輸出第2地址數(shù)據(jù)的運(yùn)算裝置,和在提供控制信號(hào)時(shí)輸出第2地址數(shù)據(jù),并在不提供控制信號(hào)時(shí)輸出第1地址數(shù)據(jù)的選擇器。
這種場(chǎng)合,運(yùn)算裝置包括能分別執(zhí)行不同種類的運(yùn)算,并且各自接受第1地址數(shù)據(jù)以及地址運(yùn)算碼,分別輸出不同的第2地址數(shù)據(jù)用的多個(gè)運(yùn)算器,碼發(fā)生裝置還發(fā)生選擇多個(gè)運(yùn)算器中的任意一個(gè)的運(yùn)算器選擇碼,選擇器也可以選擇與根據(jù)運(yùn)算器選擇碼選擇的運(yùn)算器相關(guān)的第2地址數(shù)據(jù)或者第1地址數(shù)據(jù)。
本發(fā)明另一個(gè)方面的半導(dǎo)體存儲(chǔ)器包括固定地存儲(chǔ)程序數(shù)據(jù)的程序數(shù)據(jù)存儲(chǔ)器,發(fā)生地址運(yùn)算碼的碼發(fā)生裝置,和接受由中央處理器輸出的第1地址數(shù)據(jù)的地址處理裝置,地址處理裝置在有控制信號(hào)時(shí),根據(jù)地址運(yùn)算碼,輸出對(duì)至少第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有控制信號(hào)時(shí),根據(jù)地址運(yùn)算碼,輸出對(duì)至少第1地址數(shù)據(jù)的一部分進(jìn)行與第1運(yùn)算不同的第2運(yùn)算后的新的第3地址數(shù)據(jù),并將這種第3地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器。
這時(shí),地址處理裝置的第1和第2運(yùn)算的任何一方,將第1地址數(shù)據(jù)變換成用于輸出應(yīng)該在中央處理器中正規(guī)執(zhí)行的程序數(shù)據(jù)的地址數(shù)據(jù)。
本發(fā)明的程序判別系統(tǒng),包括固定存儲(chǔ)程序數(shù)據(jù)的讀出專用的程序存儲(chǔ)器,和從程序存儲(chǔ)器讀出程序數(shù)據(jù)并執(zhí)行程序、同時(shí)判別程序是否正規(guī)的中央處理器,程序存儲(chǔ)器包括固定地存儲(chǔ)程序數(shù)據(jù)的程序數(shù)據(jù)存儲(chǔ)器,發(fā)生地址運(yùn)算碼的碼發(fā)生裝置,和接受由中央處理器輸出的第1地址數(shù)據(jù)的地址處理裝置,地址處理裝置在由中央處理器提供控制信號(hào)時(shí),根據(jù)地址運(yùn)算碼,輸出對(duì)至少第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有提供控制信號(hào)時(shí),將第1地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器,中央處理器包括將控制信號(hào)提供給程序存儲(chǔ)器的地址處理裝置的控制信號(hào)提供裝置,緊接著提供控制信號(hào),輸出第1地址數(shù)據(jù)并提供給地址處理器裝置的地址輸出裝置,和判斷按照第2地址數(shù)據(jù)從程序數(shù)據(jù)存儲(chǔ)器讀出的程序數(shù)據(jù)與預(yù)先設(shè)定的檢查數(shù)據(jù)是否為規(guī)定的關(guān)系,并判斷程序存儲(chǔ)器的真假的判斷裝置。
中央處理器還包括在判斷裝置的判斷結(jié)果為假的程序存儲(chǔ)器時(shí),強(qiáng)制地結(jié)束程序的程序強(qiáng)制結(jié)束裝置。
在半導(dǎo)體存儲(chǔ)器中,在應(yīng)答于從程序數(shù)據(jù)存儲(chǔ)器讀出的特別程序數(shù)據(jù)、將從中央處理器輸出的控制信號(hào)提供給地址處理裝置時(shí),地址處理裝置根據(jù)來(lái)自碼發(fā)生裝置的地址運(yùn)算碼,輸出對(duì)第1地址數(shù)據(jù)的全部位或者一部分位進(jìn)行運(yùn)算的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給程序數(shù)據(jù)存儲(chǔ)器。具體地說(shuō),地址處理裝置的運(yùn)算裝置對(duì)第1地址數(shù)據(jù)和地址運(yùn)算碼進(jìn)行運(yùn)算,并輸出第2地址數(shù)據(jù),選擇器應(yīng)答于控制信號(hào)輸出第2地址數(shù)據(jù)。因此,從程序數(shù)據(jù)存儲(chǔ)器應(yīng)答于控制信號(hào),不是根據(jù)從中央處理器輸出的第1地址數(shù)據(jù),而是由根據(jù)從地址處理裝置輸出的第2地址數(shù)據(jù)指定的地址,讀出程序數(shù)據(jù)。
在中央處理器中,用判斷裝置判斷按照第2地址數(shù)據(jù)讀出的程序數(shù)據(jù)是否與預(yù)先設(shè)定的檢查數(shù)據(jù)一致。如果兩個(gè)數(shù)據(jù)一致,則判斷裝置判斷這時(shí)的半導(dǎo)體存儲(chǔ)器(程序ROM)是真的,如果兩個(gè)數(shù)據(jù)不一致,則判斷裝置判斷這時(shí)的半導(dǎo)體存儲(chǔ)器是假的,并強(qiáng)制地結(jié)束程序。
因此,即使復(fù)制存儲(chǔ)在程序數(shù)據(jù)存儲(chǔ)器中的全部程序數(shù)據(jù),在沒(méi)有本發(fā)明的地址處理裝置的場(chǎng)合,也因?yàn)榕袛喑绦驒z查的結(jié)果為假,所以不可能執(zhí)行程序。
此外,在地址處理裝置中分別設(shè)置能執(zhí)行不同種類運(yùn)算的多個(gè)運(yùn)算器的場(chǎng)合,選擇器選擇第2地址數(shù)據(jù),這種第2地址數(shù)據(jù)來(lái)自基于由碼發(fā)生裝置輸出的運(yùn)算器選擇碼選擇的運(yùn)算器。
此外也可以,當(dāng)有控制信號(hào)時(shí),輸出用第1運(yùn)算處理第1地址數(shù)據(jù)后的第2地址數(shù)據(jù),當(dāng)沒(méi)有控制信號(hào)時(shí),輸出用第2運(yùn)算處理第1地址數(shù)據(jù)后的結(jié)果的第3地址數(shù)據(jù)。這種場(chǎng)合,地址處理裝置的第1和第2運(yùn)算的任何一方,將第1地址變換成應(yīng)該用中央處理器執(zhí)行的用于輸出程序數(shù)據(jù)的正規(guī)的地址數(shù)據(jù)。
采用本發(fā)明,則如果僅復(fù)制程序數(shù)據(jù)存儲(chǔ)器的全部的程序數(shù)據(jù),不能分析地址處理裝置中的運(yùn)算裝置和運(yùn)算碼等的全部的要素,則因不能與真品相同地執(zhí)行這種程序數(shù)據(jù),所以能有效地防止程序的非法使用。
此外,如果對(duì)于每個(gè)不同的機(jī)種或者版本變更指定運(yùn)算裝置中的運(yùn)算的種類和地址運(yùn)算碼或者運(yùn)算器的運(yùn)算選擇碼等的要素,則即使能分析某1個(gè)程序存儲(chǔ)器的全部要素,也因不能使這種分析結(jié)果原樣地適用于其它的程序存儲(chǔ)器,所以非法利用者有必要對(duì)每次變更重新分析,如果考慮到分析需要很多的時(shí)間和設(shè)備,則采用本發(fā)明能做到實(shí)質(zhì)上不能進(jìn)行程序的非法使用。
下面,參照附圖對(duì)本發(fā)明的實(shí)施例詳細(xì)地進(jìn)行說(shuō)明,以便進(jìn)一步明確本發(fā)明的前述目的、特征和優(yōu)點(diǎn)。
圖1表示本發(fā)明一實(shí)施例的方框圖。
圖2表示圖1實(shí)施例的地址處理單元一例的方框圖。
圖3表示圖1中的CPU的存儲(chǔ)器映射的圖解圖。
圖4是表示圖1實(shí)施例的動(dòng)作的流程圖。
圖5是表示圖4流程圖中檢查用程序的流程圖。
圖6表示地址處理單元的變形例的方框圖。
圖7表示地址處理單元的另一變形例的方框圖。
圖8表示本發(fā)明的另一實(shí)施例的方框圖。
實(shí)施例,圖1所示的本發(fā)明一實(shí)施例的信息處理裝置10包含作為中央處理器的CPU12,并將作為輸出裝置的顯示器14和作為輸入裝置的操作輸入裝置16連接到這種CPU12中。信息處理裝置10構(gòu)成程序判別系統(tǒng),在這種信息處理裝置為游戲處理器的場(chǎng)合,操作輸入裝置16是游戲控制器,并包括操縱桿和十字鍵或者各種操作按鈕,游戲處理器即CPU12應(yīng)答于這種操作輸入裝置16借助于處理存儲(chǔ)在程序ROM18中的游戲程序,將游戲圖像顯示在例如電視監(jiān)視器和液晶顯示器的顯示器14上。此外,用例如RAM等構(gòu)成與CPU12連接的工作存儲(chǔ)器20,在前述的程序處理過(guò)程中,根據(jù)需要被使用,同時(shí)為了暫時(shí)地存儲(chǔ)用于判別后述程序的真假的檢查用程序和檢查數(shù)據(jù)而被使用。
用作為半導(dǎo)體存儲(chǔ)器或者程序存儲(chǔ)器程序ROM18是預(yù)先固定地存儲(chǔ)例如PROM、快速ROM、EPROM、EEPROM等的程序數(shù)據(jù)的讀出專用半導(dǎo)體存儲(chǔ)器。這種程序ROM18,在相當(dāng)于以往稱為程序ROM的存儲(chǔ)器核心部分的程序數(shù)據(jù)存儲(chǔ)器之外,還包括地址處理單元24和碼存儲(chǔ)器26。此外,在本實(shí)施例中,將程序數(shù)據(jù)存儲(chǔ)器22、地址處理單元24和碼存儲(chǔ)器26設(shè)置在同一的半導(dǎo)體芯片上。此外,利用地址處理單元24處理通過(guò)地址總線從CPU12輸出的地址數(shù)據(jù),并將這種被處理后的地址提供給程序數(shù)據(jù)存儲(chǔ)器22。程序數(shù)據(jù)存儲(chǔ)器22按照利用地址處理單元24處理后的地址,讀出程序數(shù)據(jù),并通過(guò)數(shù)據(jù)總線將其輸出到CPU12中。
此外,如后所述,地址處理單元24根據(jù)通過(guò)控制總線由CPU12供給的控制信號(hào)和由碼存儲(chǔ)器26供給的碼(數(shù)據(jù)),對(duì)地址進(jìn)行處理。
圖2示出了地址處理單元24的具體的一例。如圖2所示,地址處理單元24包括作為運(yùn)算裝置的運(yùn)算器28和選擇器30。運(yùn)算器28形成于程序ROM18的芯片內(nèi),是例如乘法器、除法器、減法器、加法器、移位寄存器或者其它簡(jiǎn)單的邏輯運(yùn)算器(例如AND、NAND、OR、NOR、EXOR等)。
從CPU12輸出的例如16位的第1地址數(shù)據(jù)A0-A15的上8位A8-A15與原樣的選擇器30的輸出數(shù)據(jù)A0’-A7’合成,下8位A0-A7用作為運(yùn)算器28的一方輸入和選擇器30的一方輸入(X)。將設(shè)定在用作為碼發(fā)生裝置的碼存儲(chǔ)器26的8位地址運(yùn)算碼a0-a7提供給運(yùn)算器28的另一方的輸入。運(yùn)算器28對(duì)2個(gè)輸入執(zhí)行前述種類的任何一種運(yùn)算,并將其輸出供給為選擇器30的另一方輸入(Y)。例如在運(yùn)算器28為AND的場(chǎng)合,運(yùn)算器28輸出地址運(yùn)算碼a0-a7與下8位A0-A7的邏輯積的結(jié)果A0’-A7’,并提供給選擇器30的前述的一方輸入。
將前述的控制信號(hào)、例如寫(xiě)入信號(hào)從CPU12提供給選擇器30。因此,選擇器30應(yīng)答于這種控制信號(hào)、即寫(xiě)入信號(hào),將地址數(shù)據(jù)的下8位A0-A7置換成運(yùn)算結(jié)果A0’-A7’并輸出。另一方面,如前所述因原樣地將地址數(shù)據(jù)A0-A15的上8位A8-A15結(jié)合在選擇器30的輸出上,所以其結(jié)果從選擇器30、即地址處理單元24輸出A0’-A7’+A8-A15的共計(jì)16位的第2地址數(shù)據(jù)。
這樣,因?yàn)閷⒂傻刂诽幚韱卧?4修飾處理的第2地址數(shù)據(jù)輸入到程序數(shù)據(jù)存儲(chǔ)器22(參照?qǐng)D1)中,所以在后述的圖5的步驟S12中,從程序數(shù)據(jù)存儲(chǔ)器22讀出不是第1地址數(shù)據(jù)A0-A15,而是從第2地址數(shù)據(jù)A0’-A7’+A8-A15所示的地址讀出程序數(shù)據(jù)。在沒(méi)有假程序ROM的場(chǎng)合,地址處理單元24從第1地址數(shù)據(jù)A0-A15所示的地址讀出程序數(shù)據(jù)。因此,因?yàn)閺某绦驍?shù)據(jù)存儲(chǔ)器22讀出的程序數(shù)據(jù)不同,所以前者場(chǎng)合讀出的程序數(shù)據(jù)雖然與預(yù)先設(shè)定的檢查數(shù)據(jù)一致,但是后者場(chǎng)合的程序數(shù)據(jù)與檢查數(shù)據(jù)不一致。
此外,在圖2所實(shí)施例中,僅在運(yùn)算器28中將地址數(shù)據(jù)的下8位與運(yùn)算碼進(jìn)行運(yùn)算,上8位原樣地輸出。因此,也可以用運(yùn)算器28對(duì)第1地址數(shù)據(jù)的全部16位進(jìn)行運(yùn)算。這種場(chǎng)合,如圖2中括號(hào)所示的的那樣,將地址數(shù)據(jù)A0-A15的全部16位原樣地提供給運(yùn)算器28的一方輸入,將來(lái)自碼存儲(chǔ)器26的16位的地址運(yùn)算碼a0-a15提供給另一方的輸入。因此,從運(yùn)算器28輸出修飾處理全部位后的第2地址數(shù)據(jù)A0’-A15’,將這種第2地址數(shù)據(jù)A0’-A15’供給為選擇器30的一方輸入(X),將由CPU12輸出的第1地址數(shù)據(jù)A0-A15供給為選擇器30的另一方輸入(Y)。因此,在有控制信號(hào)時(shí),從選擇器30輸出第1地址數(shù)據(jù)A0’-A15’,在沒(méi)有控制信號(hào)時(shí),輸出第2地址數(shù)據(jù)A0-A15。因此,在圖5的步驟S13中,判斷是否適合從用地址數(shù)據(jù)A0’-A15’指定的地址讀出的程序數(shù)據(jù)。
圖1的CPU12具有圖3所示的存儲(chǔ)器映射,例如“0000h~DFFFh”的存儲(chǔ)器空間是分配給程序ROM18的程序區(qū)域,“E000h~FFFFh”是分配給工作存儲(chǔ)器20的工作區(qū)域。
程序ROM18的程序數(shù)據(jù)存儲(chǔ)器22是前述程序區(qū)域的一部分,在程序區(qū)域中還進(jìn)一步設(shè)定程序常駐區(qū)域、檢查用程序區(qū)域和檢查開(kāi)始命令區(qū)域。用后述的圖4和圖5的流程圖能實(shí)現(xiàn)存儲(chǔ)在檢查用程序區(qū)域中的檢查用程序。
此外,在檢查用程序中設(shè)定1個(gè)或者多個(gè)檢查數(shù)據(jù)。這種檢查數(shù)據(jù)是與執(zhí)行檢查用程序時(shí)的結(jié)果所示的數(shù)據(jù)進(jìn)行比較,用于判別程序的真假的數(shù)據(jù)。例如,在本實(shí)施例中,因?yàn)閮H對(duì)1次檢查程序的真假的場(chǎng)合進(jìn)行說(shuō)明,所以如圖3所示,雖然在檢查用程序內(nèi)設(shè)定1個(gè)檢查數(shù)據(jù),但借助于將使利用單一的檢查數(shù)據(jù)的檢查用程序起動(dòng)的檢查開(kāi)始命令設(shè)定在主體程序(例如游戲程序)內(nèi)的多個(gè)地方,并在多個(gè)地方設(shè)定分別使利用多個(gè)檢查數(shù)據(jù)的多個(gè)檢查用程序起動(dòng)的檢查開(kāi)始命令,能多次檢查程序的真假,并能增加程序分析的困難性。
此外,在檢查用程序比較小(例如幾到幾十字節(jié))的場(chǎng)合,在主體程序內(nèi)的多個(gè)地方設(shè)定檢查用程序來(lái)代替檢查開(kāi)始命令,也能進(jìn)一步增加檢查用程序分析的困難性。
參照?qǐng)D4,一接通信息處理裝置10(圖1)的電源(未圖示),則CPU12首先執(zhí)行步驟S1。在這種步驟S1中,CPU12讀入存儲(chǔ)在程序ROM18(圖1)的程序數(shù)據(jù)存儲(chǔ)器22中的程序數(shù)據(jù)。在步驟S2,判斷讀入的程序數(shù)據(jù)是否為指示程序的真假檢查執(zhí)行的特別程序數(shù)據(jù)。
如果在步驟S2中為“否”,即這時(shí)的程序數(shù)據(jù)并不是命令真假檢查的數(shù)據(jù)時(shí),在步驟S3按照這時(shí)的程序數(shù)據(jù)進(jìn)行處理。在步驟S3的后面步驟S4中,CPU12判斷程序是否結(jié)束,如果是“是”,則原樣地結(jié)束,如果是“否”,則返回到前面的步驟S1。這樣,借助于重復(fù)步驟S1-S4,依次地執(zhí)行存儲(chǔ)在程序數(shù)據(jù)存儲(chǔ)器22中的程序。在這種狀態(tài)中,因?yàn)樵诘刂诽幚韱卧?2的選擇器30中沒(méi)有賦予控制信號(hào)(例如寫(xiě)入信號(hào)),所以在選擇器30中用選擇的狀態(tài)保持輸入X,因此,將由CPU12輸出的第1地址數(shù)據(jù)原樣地提供給程序存儲(chǔ)器22。
借助于重復(fù)步驟S1-S4,在依次地執(zhí)行包含在程序中的各個(gè)命令中,將用于執(zhí)行檢查用程序的命令一輸入到CPU12,就在步驟S2對(duì)其進(jìn)行判斷,并進(jìn)入到步驟S5。如圖3所示,將這種命令、即特別程序數(shù)據(jù)設(shè)定為例如地址“030Eh”的場(chǎng)合,CPU12在地址到達(dá)“030Eh”時(shí),進(jìn)入到步驟S5。在步驟S5,CPU12讀入設(shè)定在圖2所示的程序區(qū)域中的檢查用程序和檢查數(shù)據(jù),并寫(xiě)入到工作存儲(chǔ)器20中(進(jìn)行復(fù)制)。因此,按照復(fù)制在工作存儲(chǔ)器20中的檢查用程序和檢查數(shù)據(jù),執(zhí)行步驟S6。但是,復(fù)制在這種工作存儲(chǔ)器20中的檢查用程序在檢查結(jié)束后從工作存儲(chǔ)器中消失。
圖5示出了步驟S6的子程序的細(xì)節(jié)。在圖5的步驟S11中,CPU12首先通過(guò)控制總線發(fā)生控制信號(hào),使包含在圖1所示的程序ROM18中的地址處理單元24能動(dòng)。具體地說(shuō),CPU12通過(guò)控制總線將寫(xiě)入的信號(hào)(控制信號(hào))提供給程序ROM18的選擇器30。因?yàn)橥ǔT趫?zhí)行ROM內(nèi)的程序時(shí),不將寫(xiě)入的信號(hào)提供給ROM(讀出專用存儲(chǔ)器),所以借助于將這種信號(hào)輸出到程序ROM18中,選擇地址處理單元24的選擇器30中的輸入Y。這種步驟S11構(gòu)成控制信號(hào)提供裝置。
但是,在不僅將前述的寫(xiě)入信號(hào)作為控制信號(hào),而且在CPU12執(zhí)行程序ROM18的程序數(shù)據(jù)存儲(chǔ)器22的特定地址時(shí),也可以將控制信號(hào)提供給選擇30。這種場(chǎng)合雖然未圖示,但也可以采用下述的結(jié)構(gòu),即在設(shè)置逐次比較從CPU12通過(guò)地址總線輸出的地址數(shù)據(jù)與這種特定地址的比較器,并且用這種地址比較器檢測(cè)出2個(gè)地址一致時(shí),將控制信號(hào)提供給選擇器30。
接著,在步驟S12中,CPU12輸出用于讀出程序ROM18的程序數(shù)據(jù)存儲(chǔ)器22的地址數(shù)據(jù)(第1地址數(shù)據(jù))。也就是說(shuō),在步驟S11緊接著輸出控制信號(hào)后,在用作地址輸入裝置的步驟S12中,雖然從CPU12通過(guò)地址總線將ROM地址輸入到地址處理單元24中,但是在地址處理單元24中,如前述圖2的實(shí)施例所述進(jìn)行處理這種第1地址,將這種處理結(jié)果地址(第2地址數(shù)據(jù))提供給程序ROM18。
接著,在步驟S13中,按照在地址處理單元24處理后的第2地址數(shù)據(jù),判斷從程序數(shù)據(jù)存儲(chǔ)器22讀出的程序數(shù)據(jù)是否為正確的值。也就是說(shuō),步驟S13構(gòu)成判斷裝置,比較工作存儲(chǔ)器20中讀出的檢查數(shù)據(jù)與這時(shí)的程序數(shù)據(jù),并判斷兩者是否一致。從按照地址處理單元24規(guī)定的法則處理的地址讀出的程序數(shù)據(jù),應(yīng)該與預(yù)先設(shè)定的檢查數(shù)據(jù)一致。因此,這種場(chǎng)合,為“是”。但是,在沒(méi)有設(shè)置地址處理單元24的假的程序ROM的場(chǎng)合,或者即使存在與地址處理單元24相當(dāng)東西,但是不按照地址處理規(guī)定的法則的假的程序ROM的場(chǎng)合,在這種步驟S13判斷為“否”。
接著,在步驟S13判斷為“是”的真的程序ROM的場(chǎng)合,返回到通常的程序處理。另一方面,在判斷為“否”的假的程序ROM的場(chǎng)合,在接著的步驟S14中,CPU12在顯示器14上顯示例如“該程序ROM(盤(pán)片cartridge)是盜版的,不能在本機(jī)上使用”那樣的警告消息,同時(shí)在步驟S15強(qiáng)制地結(jié)束程序。因此,在假的場(chǎng)合,不能進(jìn)行其后的程序的繼續(xù)處理。也就是說(shuō),步驟S14和S15相當(dāng)于程序強(qiáng)制結(jié)束裝置。
此外,如前所述,在作為判斷裝置的步驟S13中,雖然比較按照第2地址數(shù)據(jù)讀出的程序數(shù)據(jù)與預(yù)先設(shè)定的檢查數(shù)據(jù)是否一致,但是兩者不必要一定一致,也可以是兩者預(yù)先設(shè)定的規(guī)定的關(guān)系。例如,一方比另一方僅大一定的數(shù)或者小一定的數(shù)的關(guān)系,或者對(duì)一方(和/或者另一方)進(jìn)行一定的運(yùn)算時(shí)兩者一致的關(guān)系,或者兩者的絕對(duì)值相等的關(guān)系等,能設(shè)定成任意規(guī)定的關(guān)系。
在圖2的實(shí)施例中,程序數(shù)據(jù)如果用合適的設(shè)備,那么也能用完整的形式從程序數(shù)據(jù)存儲(chǔ)器22讀出程序數(shù)據(jù),并能對(duì)其進(jìn)行復(fù)制。但是,在圖2的實(shí)施例中,從程序數(shù)據(jù)存儲(chǔ)器22僅能提取程序數(shù)據(jù)并對(duì)程序數(shù)據(jù)進(jìn)行復(fù)原,而不能與真的相同地執(zhí)行這種程序數(shù)據(jù)。
也就是說(shuō),即使僅復(fù)原程序數(shù)據(jù),但在非法利用這種程序ROM18的程序數(shù)據(jù)的存儲(chǔ)器中沒(méi)有地址處理單元24和碼存儲(chǔ)器26的場(chǎng)合,即使讀出指示程序檢查的程序數(shù)據(jù),也因不能執(zhí)行前述的地址修飾處理,所以未修飾的第1地址數(shù)據(jù)A0-A15原樣地輸入到程序數(shù)據(jù)存儲(chǔ)器22中。因此,即使有這種檢查命令,也能從在第1地址數(shù)據(jù)A0-A15指定的地址讀出程序數(shù)據(jù)。這種場(chǎng)合的程序數(shù)據(jù)與從用圖2實(shí)施例得到的第2地址數(shù)據(jù)A0’-A7’+A8-A15指定的地址讀出的程序數(shù)據(jù)不同。因此,在步驟S13與預(yù)先設(shè)定的檢查數(shù)據(jù)比較中,成為不一致。因?yàn)橐坏玫竭@種不一致的判別結(jié)果,就在步驟S13判斷為“否”,所以強(qiáng)制地結(jié)束程序。
為了避免這種程序的強(qiáng)制結(jié)束,在圖4的步驟S2中分析指令檢查開(kāi)始的特別程序數(shù)據(jù)及其程序步驟(地址),并且必須進(jìn)一步分析設(shè)定在運(yùn)算器28中的運(yùn)算的種類和地址運(yùn)算碼以及檢查程序中的檢查數(shù)據(jù)(圖2)等全部要素。例如在用屏蔽ROM等作為程序ROM18的場(chǎng)合,這種分析是困難的,并且在分析中需要相當(dāng)大的設(shè)備和長(zhǎng)的時(shí)間。另一方面,因?yàn)槿绻兏\(yùn)算器中的運(yùn)算的種類和地址運(yùn)算碼等的要素,例如程序ROM的機(jī)種、游戲盤(pán)片中的每個(gè)游戲名稱,此外,即使是相同的機(jī)種(游戲名稱)也要變更每個(gè)版本,那么即使分析了某個(gè)程序ROM的全部要素,這種分析結(jié)果也不能原樣地適用于其它的程序ROM,所以對(duì)于非法利用者來(lái)說(shuō),有必要每次重新分析全部要素。因此,采用這種實(shí)施例,如果考慮到分析所要的大量的時(shí)間和費(fèi)用,則能實(shí)質(zhì)上做到不能非法使用程序ROM。
圖6是圖2實(shí)施例的變形例,在圖6的實(shí)施例中,地址處理單元24的運(yùn)算裝置包括多個(gè)(n個(gè))運(yùn)算器281-28n。將來(lái)自地址總線的地址數(shù)據(jù)的下8位A0-A7提供給各個(gè)運(yùn)算器281-28n的各自的一方輸入,將由碼存儲(chǔ)器26輸出的8位地址運(yùn)算碼a0-a7共同地提供給各自的另一方輸入。此外,將設(shè)定在碼存儲(chǔ)器26中的運(yùn)算器選擇碼c0-cX與控制信號(hào)一起提供給選擇器30。對(duì)應(yīng)于運(yùn)算器的個(gè)數(shù)n,設(shè)定運(yùn)算器選擇碼c0-cX的位數(shù),在有4個(gè)運(yùn)算器28的場(chǎng)合是2位,在8個(gè)的場(chǎng)合可以是3位。此外,設(shè)定運(yùn)算器選擇碼c0-cX,以便選擇多個(gè)運(yùn)算器281-28n中的任何一個(gè)。
在圖6的實(shí)施例中,因?yàn)楦鱾€(gè)運(yùn)算器281-28n與圖2的實(shí)施例的運(yùn)算器28相同對(duì)地址進(jìn)行運(yùn)算和修飾,所以省略地址運(yùn)算的具體說(shuō)明,但在圖6的實(shí)施例中,設(shè)定各個(gè)運(yùn)算器281-28n,以便執(zhí)行不同種類的運(yùn)算。因此,如果對(duì)于例如每個(gè)程序ROM的機(jī)種(游戲名稱)、或者每個(gè)版本,根據(jù)運(yùn)算器選擇碼c0-cX選擇不同的運(yùn)算器,則進(jìn)一步增加圖2說(shuō)明的程序分析的困難性。因此,使非法利用更困難。
在這種圖6的實(shí)施例中,還有其它的優(yōu)點(diǎn)。即如圖2的實(shí)施例所示,在1個(gè)芯片上僅形成1個(gè)運(yùn)算器,在根據(jù)機(jī)種和版本變更這種運(yùn)算器的場(chǎng)合,當(dāng)程序ROM是例如屏蔽ROM時(shí),每次運(yùn)算器的變更都必須變更燒結(jié)屏蔽。對(duì)此,如圖6所示,如果預(yù)先組合多個(gè)運(yùn)算器281-28n,則能僅變化運(yùn)算器選擇碼,就能選擇運(yùn)算器、即運(yùn)算的種類。另一方面,因運(yùn)算器選擇碼能用與地址運(yùn)算碼相同的燒結(jié)工序設(shè)定,所以在圖6的實(shí)施例中,在變更運(yùn)算器的場(chǎng)合,能廉價(jià)地制作程序ROM。
在圖6的實(shí)施例中,也因選擇器30在供給控制信號(hào)時(shí)選擇輸入X,在不供給控制信號(hào)時(shí)選擇輸入Y,所以對(duì)應(yīng)于控制信號(hào)的有無(wú),輸出第1地址數(shù)據(jù)或者第2地址數(shù)據(jù)。此外,在圖6中,也用括號(hào)示出了修飾處理地址數(shù)據(jù)A0-A15的全部位的場(chǎng)合。其中,這種動(dòng)作因?yàn)橛汕笆鰣D2的實(shí)施例的說(shuō)明容易地理解,所以省略其說(shuō)明。
此外,在前述的實(shí)施例中,由地址處理單元24輸出,在有控制信號(hào)時(shí),用運(yùn)算器28(281-28n)運(yùn)算一部分或者全部后的地址數(shù)據(jù)(第2地址數(shù)據(jù)),在沒(méi)有控制信號(hào)時(shí),原樣地選擇并輸出由CPU12供給的地址數(shù)據(jù)(第1地址數(shù)據(jù))。其中,也可以在沒(méi)有控制信號(hào)時(shí),也可以輸出對(duì)第1地址數(shù)據(jù)進(jìn)行與第2地址數(shù)據(jù)不同的第2運(yùn)算后的第3地址數(shù)據(jù)。
圖7示出了這種實(shí)施例。在圖7的實(shí)施例中,除設(shè)置與圖2的實(shí)施例相同的運(yùn)算器28和選擇器30外,還在地址處理單元24中設(shè)置第2運(yùn)算器28’。此外,在運(yùn)算器28和28’的各自的一方輸入上原樣地供給來(lái)自CPU12的地址總線的地址數(shù)據(jù)A0-A15(第1地址數(shù)據(jù))的下8位A0-A7。在運(yùn)算器28和運(yùn)算器28’的各自的另一方輸入上共同地供給在碼存儲(chǔ)器26中設(shè)定的8位的地址運(yùn)算碼a0-a7。運(yùn)算器28和28’能執(zhí)行相互不同的第1種類的運(yùn)算和第2種類的運(yùn)算。
運(yùn)算器28輸出地址運(yùn)算碼a0-a7與下8位A0-A7的第1運(yùn)算結(jié)果A0’-A7’,并提供給選擇器30的一方輸入X。運(yùn)算器28’輸出地址運(yùn)算碼a0-a7與下8位A0-A7的第2運(yùn)算結(jié)果A0”-A7”,并提供給選擇器30的另一方輸入Y。由選擇器30選擇這種來(lái)自運(yùn)算器28和28’的輸入A0’-A7’或者A0”-A7”。
由CPU12將控制信號(hào)、例如寫(xiě)入信號(hào)提供給選擇器30,同時(shí)提供給存儲(chǔ)在碼存儲(chǔ)器26中的運(yùn)算器選擇碼c0-cX。因此,選擇器30在有這種控制信號(hào)時(shí),選擇運(yùn)算器28的輸出、即輸入X,并輸出由這種運(yùn)算器28處理的下8位的地址數(shù)據(jù)A0’-A7’。此外,選擇器30在沒(méi)有這種控制信號(hào)時(shí),選擇運(yùn)算器28’的輸出、即輸入Y,并輸出由這種運(yùn)算器28’處理的下8位的地址數(shù)據(jù)A0”-A7”。
另一方面,因?yàn)槭沟刂窋?shù)據(jù)A0-A15的上8位A8-A15原樣地與選擇器30的輸出結(jié)合,所以其結(jié)果在有控制信號(hào)時(shí),從選擇器30、即地址處理單元24輸出A0’-A7’+A8-A15的共計(jì)16位的地址數(shù)據(jù)(第2地址數(shù)據(jù)),在沒(méi)有控制信號(hào)時(shí),從選擇器30、即地址處理單元24輸出A0”-A7”+A8-A15的共計(jì)16位的地址數(shù)據(jù)(第3地址數(shù)據(jù))。
其中,在這種圖7的實(shí)施例中也可以如圖7中的括號(hào)所示,根據(jù)運(yùn)算器28和運(yùn)算器28’,對(duì)地址數(shù)據(jù)A0-A15的全部位進(jìn)行運(yùn)算。
在圖7的實(shí)施例中,來(lái)自CPU12的第1地址數(shù)據(jù)A0-A15不是正確讀出CPU12正規(guī)執(zhí)行的程序數(shù)據(jù)的地址數(shù)據(jù)。即,第1地址數(shù)據(jù)不過(guò)是假的地址數(shù)據(jù)。并且,第1運(yùn)算器28和第2運(yùn)算器28’的任何一方變更乃至變換第1地址數(shù)據(jù)A0-A15,以便正確的讀出CPU12正規(guī)執(zhí)行的程序數(shù)據(jù)。即,第2地址數(shù)據(jù)或者第3地址數(shù)據(jù)的中一方是正確的地址數(shù)據(jù)。
在圖7的實(shí)施例中,在非法使用程序的場(chǎng)合,不僅對(duì)第1運(yùn)算器28,而且對(duì)第2運(yùn)算器28’也必須要分析,進(jìn)一步增加了分析的困難性。
前述的實(shí)施例是在程序ROM18中設(shè)置地址處理單元24,加工乃至修飾提供給程序數(shù)據(jù)存儲(chǔ)器22的地址的例子。但是,同樣的考慮方法適用于從程序數(shù)據(jù)存儲(chǔ)器22讀出的程序數(shù)據(jù),也能加工乃至修飾地址數(shù)據(jù)和輸出程序數(shù)據(jù)。
圖8示出了這種實(shí)施例。詳細(xì)地說(shuō),在圖8的實(shí)施例中,在程序ROM18中除程序數(shù)據(jù)存儲(chǔ)器22外,包括圖1所示的地址處理單元24和碼存儲(chǔ)器26,此外,設(shè)置接受由程序數(shù)據(jù)存儲(chǔ)器22輸出的程序數(shù)據(jù)并對(duì)這種程序數(shù)據(jù)進(jìn)行規(guī)定的處理的輸出數(shù)據(jù)處理單元32。具體地說(shuō),輸出數(shù)據(jù)處理單元32執(zhí)行與前述說(shuō)明了的地址處理單元24相同的動(dòng)作,處理乃至修飾由程序數(shù)據(jù)存儲(chǔ)器22讀出的程序數(shù)據(jù)。這種場(chǎng)合,將來(lái)自CPU12的控制信號(hào)提供給地址處理單元24和輸出數(shù)據(jù)處理單元32,在圖5的步驟S11中使地址處理單元24和輸出數(shù)據(jù)處理單元32能動(dòng)。
此外,在前述實(shí)施例中,都使用在與作為碼發(fā)生裝置的程序ROM18相同的芯片上形成的碼存儲(chǔ)器26。但是,這種碼發(fā)生裝置只要將任意的碼(數(shù)據(jù))提供給運(yùn)算裝置就可,也可以置換成例如利用直立式開(kāi)關(guān)等提供任意數(shù)據(jù)的結(jié)構(gòu)和從外部能換寫(xiě)存儲(chǔ)任意數(shù)據(jù)的外附的刷新ROM等。
此外,在前述的實(shí)施例中,在假的程序的場(chǎng)合,雖然直接地結(jié)束程序的執(zhí)行,但是在例如一定時(shí)間后強(qiáng)制結(jié)束,或者在游戲的場(chǎng)合換寫(xiě)主人公的參數(shù),或者消去游戲的后備數(shù)據(jù)時(shí),也能進(jìn)行返回到游戲開(kāi)始的狀態(tài)的處理。
雖然詳細(xì)地對(duì)本發(fā)明進(jìn)行說(shuō)明和圖示,但這是作為簡(jiǎn)單的圖解和一例而用,因此顯然不能理解為一種限定,本發(fā)明的精神和范圍僅由所附的權(quán)利要求來(lái)限定。
權(quán)利要求
1.一種半導(dǎo)體存儲(chǔ)器,固定地存儲(chǔ)由中央處理器執(zhí)行的程序數(shù)據(jù),并輸出按照指定地址數(shù)據(jù)的地址的程序數(shù)據(jù),其特征在于,包括固定地存儲(chǔ)所述程序數(shù)據(jù)的程序數(shù)據(jù)存儲(chǔ)器,發(fā)生地址運(yùn)算碼的碼發(fā)生裝置,和接受由所述中央處理器輸出的第1地址數(shù)據(jù)的地址處理裝置,所述地址處理裝置在有控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少所述第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有所述控制信號(hào)時(shí),將所述第1地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器。
2.如權(quán)利要求1所述的半導(dǎo)體存儲(chǔ)器,其特征在于,所述地址處理裝置包括用于對(duì)所述第1地址數(shù)據(jù)的至少一部分與所述地址運(yùn)算碼進(jìn)行運(yùn)算,并輸出所述第2地址數(shù)據(jù)的運(yùn)算裝置,和在提供所述控制信號(hào)時(shí)輸出所述第2地址數(shù)據(jù),并在不提供所述控制信號(hào)時(shí)輸出所述第1地址數(shù)據(jù)的選擇器。
3.如權(quán)利要求2所述的半導(dǎo)體存儲(chǔ)器,其特征在于,所述運(yùn)算裝置包括能分別執(zhí)行不同種類的運(yùn)算,并且各自接受所述第1地址數(shù)據(jù)以及所述地址運(yùn)算碼,分別輸出不同的所述第2地址數(shù)據(jù)用的多個(gè)運(yùn)算器,所述碼發(fā)生裝置還發(fā)生選擇所述多個(gè)運(yùn)算器中的任意一個(gè)的運(yùn)算器選擇碼,所述選擇器選擇與根據(jù)所述運(yùn)算器選擇碼選擇的運(yùn)算器相關(guān)的所述第2地址數(shù)據(jù)或者第1地址數(shù)據(jù)。
4.如權(quán)利要求1至3任一項(xiàng)所述的半導(dǎo)體存儲(chǔ)器,其特征在于,所述程序數(shù)據(jù)存儲(chǔ)器包含命令根據(jù)所述中央處理器在程序執(zhí)行中輸出所述控制信號(hào)的特別程序數(shù)據(jù)。
5.如權(quán)利要求1至4任一項(xiàng)所述的半導(dǎo)體存儲(chǔ)器,其特征在于,將所述程序數(shù)據(jù)存儲(chǔ)器、所述碼發(fā)生裝置和所述地址處理裝置,裝載在單個(gè)半導(dǎo)體芯片上。
6.如權(quán)利要求1至5任一項(xiàng)所述的半導(dǎo)體存儲(chǔ)器,其特征在于,用高速緩沖存儲(chǔ)器,構(gòu)成所述程序數(shù)據(jù)存儲(chǔ)器和所述碼發(fā)生裝置。
7.一種半導(dǎo)體存儲(chǔ)器,固定地存儲(chǔ)由中央處理器執(zhí)行的程序數(shù)據(jù),并輸出按照指定的地址數(shù)據(jù)的地址的程序數(shù)據(jù),其特征在于,包括存儲(chǔ)所述程序數(shù)據(jù)的程序數(shù)據(jù)存儲(chǔ)器,發(fā)生地址運(yùn)算碼的碼發(fā)生裝置,和接受由所述中央處理器輸出的第1地址數(shù)據(jù)的地址處理裝置,所述地址處理裝置在有控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少所述第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少所述第1地址數(shù)據(jù)的一部分進(jìn)行與所述第1運(yùn)算不同的第2運(yùn)算后的新的第3地址數(shù)據(jù),并將這種第3地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器。
8.如權(quán)利要求7所述的半導(dǎo)體存儲(chǔ)器,其特征在于,所述地址處理裝置的第1和第2運(yùn)算的任何一方,將所述第1地址數(shù)據(jù)變換成用于應(yīng)該在所述中央處理器中正規(guī)執(zhí)行并輸出程序數(shù)據(jù)的地址數(shù)據(jù)。
9.一種程序判別系統(tǒng),包括固定存儲(chǔ)程序數(shù)據(jù)的讀出專用的程序存儲(chǔ)器,和從所述程序存儲(chǔ)器讀出程序數(shù)據(jù)并執(zhí)行程序、同時(shí)判別所述程序是否正規(guī)的中央處理器,其特征在于,所述程序存儲(chǔ)器包括固定地存儲(chǔ)所述程序數(shù)據(jù)的程序數(shù)據(jù)存儲(chǔ)器,發(fā)生地址運(yùn)算碼的碼發(fā)生裝置,和接受由所述中央處理器輸出的第1地址數(shù)據(jù)的地址處理裝置,所述地址處理裝置在有來(lái)自中央處理器的控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少所述第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有提供所述控制信號(hào)時(shí),將所述第1地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器所述中央處理器包括將所述控制信號(hào)提供給所述地址處理裝置的控制信號(hào)提供裝置,緊接著提供所述控制信號(hào),輸出所述第1地址數(shù)據(jù)并提供給所述地址處理器裝置的地址輸出裝置,和判斷按照所述第2地址數(shù)據(jù)從所述程序數(shù)據(jù)存儲(chǔ)器讀出的程序數(shù)據(jù)與預(yù)先設(shè)定的檢查數(shù)據(jù)是否為規(guī)定的關(guān)系,并判斷所述程序存儲(chǔ)器的真假的判斷裝置。
10.如權(quán)利要求9所述的程序判別系統(tǒng),其特征在于,所述控制信號(hào)提供裝置包含在所述程序存儲(chǔ)器中預(yù)先設(shè)定的特別程序,并用讀出所述特別程序的定時(shí)、提供所述控制信號(hào)。
11.如權(quán)利要求9或10所述的程序判別系統(tǒng),其特征在于,所述中央處理器還包括在所述判斷裝置的判斷結(jié)果為假的程序存儲(chǔ)器時(shí),強(qiáng)制地結(jié)束程序的程序強(qiáng)制結(jié)束裝置。
12.一種半導(dǎo)體存儲(chǔ)器的地址控制方法,所述半導(dǎo)體存儲(chǔ)器包含固定地存儲(chǔ)由中央處理器執(zhí)行的程序數(shù)據(jù)的程序ROM,其特征在于,所述方法包括下述步驟(a)發(fā)生地址運(yùn)算碼,(b)在有控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少由所述中央處理器輸出的第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,(c)在沒(méi)有所述控制信號(hào)時(shí),將所述第1地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器。
13.一種半導(dǎo)體存儲(chǔ)器的地址控制方法,所述半導(dǎo)體存儲(chǔ)器包含固定地存儲(chǔ)由中央處理器執(zhí)行的程序數(shù)據(jù)的程序ROM,其特征在于,所述方法包括下述步驟(a)發(fā)生地址運(yùn)算碼,(b)在有控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少由所述中央處理器輸出的第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,(c)在沒(méi)有所述控制器信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少所述第1地址數(shù)據(jù)的一部分進(jìn)行與所述第1運(yùn)算不同的第2運(yùn)算后的新的第3地址數(shù)據(jù),并將這種第3地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器。
14.一種信息處理裝置的程序判別方法,所述信息處理裝置包括固定存儲(chǔ)程序數(shù)據(jù)的讀出專用的程序存儲(chǔ)器,和從所述程序存儲(chǔ)器讀出程序數(shù)據(jù)并執(zhí)行程序的中央處理器,其特征在于,所述方法包括下述步驟(a)發(fā)生地址運(yùn)算碼,(b)輸出控制信號(hào),(c)緊接著所述步驟(b)從所述中央處理器輸出第1地址,(d)在有控制信號(hào)時(shí),根據(jù)所述地址運(yùn)算碼,輸出對(duì)至少第1地址數(shù)據(jù)的一部分進(jìn)行運(yùn)算后的新的第2地址數(shù)據(jù),并將這種第2地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,在沒(méi)有所述控制信號(hào)時(shí),將所述第1地址數(shù)據(jù)提供給所述程序數(shù)據(jù)存儲(chǔ)器,(e)在所述中央處理器中,判斷按照所述第2地址數(shù)據(jù)從所述程序數(shù)據(jù)存儲(chǔ)器讀出的程序數(shù)據(jù)與預(yù)先設(shè)定的檢查數(shù)據(jù)是否為規(guī)定的關(guān)系。
全文摘要
本發(fā)明揭示一種半導(dǎo)體存儲(chǔ)器和使用它的程序判別系統(tǒng)。所述半導(dǎo)體存儲(chǔ)器包含程序ROM,包含在這種程序ROM中的地址處理單元的運(yùn)算器對(duì)來(lái)自CPU的地址總線的第1地址數(shù)據(jù)的后8位A0-A7與設(shè)定包含在相同程序ROM中的碼存儲(chǔ)器的8位的地址運(yùn)算碼a0-a7進(jìn)行運(yùn)算,并輸出運(yùn)算結(jié)果A0’-A7’。選擇將A0-A7置換成A0’-A7’,因此從地址處理單元輸出A0’-A7’+A8-A15的共計(jì)16位的第2地址數(shù)據(jù)。
文檔編號(hào)G06F21/00GK1316697SQ0110330
公開(kāi)日2001年10月10日 申請(qǐng)日期2001年1月22日 優(yōu)先權(quán)日2000年1月25日
發(fā)明者下村勝 申請(qǐng)人:任天堂株式會(huì)社