專利名稱:軟件程序的執(zhí)行方法及實(shí)施該方法的電路裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件程序的執(zhí)行方法及實(shí)施該方法的電路裝置,特別是涉及為了便于使用存儲于以可裝卸方式與硬件設(shè)備相連的外部存儲器中的軟件程序資源的程序執(zhí)行方法及實(shí)施該方法的電路裝置。
近年來,隨著微機(jī)的普及,以ROM盒式存儲器、軟盤等多種方式為裝在微機(jī)上的專用硬件設(shè)備提供了軟件程序。
而且,在一般的專用硬件設(shè)備中,對提供的軟件程序普遍進(jìn)行了加密以防止非法地復(fù)制或產(chǎn)出軟件程序。
業(yè)已對有關(guān)軟件程序的加密方法提出了多種方案,例如有記載在美國專利4,442,486號(與之對應(yīng)的歐洲專利申請書80,244號以及日本專利申請書公開公報(bào)昭58-101349號、相關(guān)的美國專利4,454,504號)、美國專利4,462,076號和美國專利5,155,768號(與之對應(yīng)的日本專利申請書公開公報(bào)平3-266051號)等上面的技術(shù)。
美國專利4,442,486號中所記載的技術(shù)內(nèi)容是將一個游戲卡存貯器的一個固定地址的內(nèi)容與存貯在控制設(shè)備中的CPU的加密信息相比較,該游戲卡以可拆卸方式與控制設(shè)備相連。當(dāng)比較結(jié)果不一致時,就拒絕接受游戲卡,即不能執(zhí)行該游戲卡內(nèi)存儲器中所存儲的程序。
美國專利4,462,067號的技術(shù)是在將裝有程序的機(jī)器與控制設(shè)備相連時,把與聯(lián)機(jī)時從控制設(shè)備得到的信號相對應(yīng)的信息在顯示器上顯示出來。例如,顯示出“本設(shè)備使用了X年Y月Z日的專利申請書中的發(fā)明”等特定信息。當(dāng)顯示的內(nèi)容與規(guī)定的信息內(nèi)容不一致時,就阻止裝有程序的機(jī)器在其后的使用。
此外,美國專利5,155,768號中所記載的技術(shù)是在打開主機(jī)電源時使主機(jī)內(nèi)的加密電路初始化。根據(jù)由加密電路的初始化所產(chǎn)生的信號來確定主機(jī)的操作。
接著,每次存取加密電路時,都將從游戲卡中讀出的加密碼與控制設(shè)備所產(chǎn)生的加密碼進(jìn)行比較,當(dāng)不一致時,根據(jù)來自加密電路的復(fù)位信號來終止控制設(shè)備的操作。
通過這類先有的加密檢查方法,用戶就擁有了只有某一控制設(shè)備才可以接受的軟件資源。但是,當(dāng)用戶買了新的控制設(shè)備來替換原有的控制設(shè)備時,大多數(shù)軟件資源由于加密檢查的緣故而不能使用。
在這種情況下,用戶的資源不能得到有效地利用,即使作為社會資源,用戶也會比原來更不方便。
另一方面,近年來提供軟件的商業(yè)形式越來越多樣化。其中的一種服務(wù)形式就是通過有線電視等傳輸電路將游戲軟件送給已登記了的用戶。
在這種情況下,就不必考慮會傳送未經(jīng)軟件供應(yīng)公司許可的軟件即非法復(fù)制或制作的軟件的情況。這是因?yàn)橥ǔ魉驼吆吞峁┸浖墓局g都簽訂了許可合同。
因而,所傳送的軟件中就沒有必要包含用于加密檢查的加密檢查代碼等信號。所以,如果傳送不含加密檢查代碼等信號的軟件,那么對接受所傳送的軟件的用戶來說就節(jié)省了將傳送到它們自己設(shè)備上的軟件卸載下來所需要的時間。
此外,在執(zhí)行所傳送的軟件時都進(jìn)行加密檢查,即使軟件是真的,也會增加用戶方面的時間負(fù)擔(dān),使效率降低。所以有必要為用戶解除這一負(fù)擔(dān)。
另一方面,用戶所有的游戲機(jī)中的控制設(shè)備可能是為了運(yùn)行通過有線電視等傳輸線傳送來的軟件的專用裝置,但更理想的是該設(shè)備可用于安裝在用戶單獨(dú)購買的盒式存貯器及其類似裝置的軟件程序。
但是,在這種情況下,用戶所有的游戲機(jī)中的控制設(shè)備具有加密檢查的功能是必要的。由于軟件沒有設(shè)備的加密檢查功能所檢查的加密檢查碼,因而無法執(zhí)行通過有線電視等傳輸線傳送來的軟件。
所以,本發(fā)明的主要目的是提供一種執(zhí)行軟件程序的方法以及使用該方法的裝置,所述方法為了解決上述不方便的問題而放寬了對加密檢查功能的要求并能有效地利用軟件資源。
此外,本發(fā)明的另一目的是提供一種實(shí)質(zhì)上是終止具有加密檢查功能的游戲機(jī)控制設(shè)備的這項(xiàng)檢查功能從而使之能夠執(zhí)行傳送來的不含加密代碼的軟件程序的方法以及使用這種方法的裝置。
具體地說,本發(fā)明的目的是提供一種用來執(zhí)行處于采用了上述美國專利4,462,076號和5,155,768號中所記載的加密檢查方式的控制設(shè)備內(nèi)的軟件程序的方法及使用該方法的裝置。
進(jìn)一步說,本發(fā)明的目的是提供一種執(zhí)行軟件程序的方法,所說的軟件程序包括用于將執(zhí)行程序數(shù)據(jù)的控制設(shè)備初始化的初始化例程(X);用于檢查程序數(shù)據(jù)是否為真的加密檢查例程(Y);以及在加密檢查例程(Y)中,當(dāng)判斷程序數(shù)據(jù)當(dāng)真時,通過控制設(shè)備的CPU去執(zhí)行程序數(shù)據(jù)的程序執(zhí)行例程(Z);而且,在初始化例程(X)結(jié)束時,通過對CPU的復(fù)位而跳過上述加密檢查例程序(Y)轉(zhuǎn)而執(zhí)行程序執(zhí)行例程(Z)。
再者,本發(fā)明的更進(jìn)一步的目的是提供一種用于實(shí)施上述軟件程序執(zhí)行方法的電路裝置。
本發(fā)明的其它目的可從以下的說明中表現(xiàn)出來。
附圖是為了有助于對本發(fā)明的理解而準(zhǔn)備的,是專門用來說明本發(fā)明的。本發(fā)明并不受附圖的任何限制。
圖1是應(yīng)用本發(fā)明之方法的游戲機(jī)控制設(shè)備實(shí)施例的框圖。
圖2是表示應(yīng)用本發(fā)明之方法的游戲機(jī)控制設(shè)備的地址空間的一個實(shí)例。
圖3是本發(fā)明之方法的操作流程圖(初始化和安全檢查例程)。
圖4是本發(fā)明之方法的操作流程圖(執(zhí)行游戲例程)。
圖5是應(yīng)用本發(fā)明之方法的第一實(shí)施例的電路圖。
圖6是圖5實(shí)施例之電路的操作時序圖。
圖7是應(yīng)用本發(fā)明之方法的第二實(shí)施例的電路圖。
圖8是圖7中移位寄存器27的結(jié)構(gòu)性實(shí)例的框圖。
圖9是圖7中計(jì)數(shù)器28的結(jié)構(gòu)性實(shí)例的框圖。
圖10是圖7實(shí)施例之電路的操作時序圖。
圖11是圖1中存儲體邏輯電路14的結(jié)構(gòu)性實(shí)例框圖。
圖12是應(yīng)用本發(fā)明之方法的第三實(shí)施例的電路圖。
圖13是圖12實(shí)施例之電路的操作時序圖。
圖14是應(yīng)用本發(fā)明之方法的第四實(shí)施例的電路圖。
圖1是應(yīng)用本發(fā)明之方法的游戲機(jī)控制設(shè)備的實(shí)施例的框圖。圖2是表示應(yīng)用本發(fā)明之方法的游戲機(jī)控制設(shè)備的地址空間的一個實(shí)例。
圖3是本發(fā)明的方法的操作流程圖(初始化和安全檢查例程),圖4是本發(fā)明之方法的操作流程圖(游戲執(zhí)行例程)。
圖1中,標(biāo)號1是作為程序執(zhí)行裝置的游戲機(jī)控制設(shè)備。標(biāo)號2是作為程序媒體的盒式存儲器,它通過ROM等存儲軟件程序數(shù)據(jù)。
再有,當(dāng)通過CATV等傳輸線向游戲機(jī)控制設(shè)備傳送游戲軟件等軟件時,可以取代盒式存儲器2而接上連接適配器(圖中未示出)。連接適配器包括有存儲器,該存儲器用于存儲通過CATV等傳送并被裝入的軟件。
將盒式存儲器2恰當(dāng)?shù)夭迦肟刂圃O(shè)備1中,由控制設(shè)備去讀取存儲在盒式存儲器的ROM等中的軟件,并在經(jīng)過特定的處理過程之后去加以執(zhí)行。
必要時通過TV監(jiān)視器3來顯示圖像數(shù)據(jù)以便執(zhí)行軟件。本發(fā)明對軟件的種類不加以限制,但在后面的說明中,都是以控制設(shè)備1作為游戲機(jī)控制設(shè)備、以游戲軟件作為典型的例子來說明的。
游戲機(jī)控制設(shè)備1附帶有圖1未示出的操縱桿或控制盤等輸入裝置,它們用于根據(jù)TV監(jiān)視器3所顯示的游戲內(nèi)容來輸入使光標(biāo)移動等的控制信息。
在游戲機(jī)控制設(shè)備中,總線10接有各種電路單元。即,在總線10上連接有CPU11、操作用的能進(jìn)行寫/讀的存儲器(工作RAM)12、存儲BIOS等操作系統(tǒng)用的只讀存儲器(BIOS·ROM)13、盒式存儲器2中存儲程序的ROM等存儲器(以下總稱為ROM)、使BIOS·ROM13與存儲體(BANK)相切換的存儲體邏輯電路14和視頻顯示處理器(VDP)15,以及控制游戲機(jī)控制設(shè)備1復(fù)位的復(fù)位邏輯電路16等。
圖2以與對本發(fā)明方法的說明相對應(yīng)的方式顯示出了由CPU11管理的游戲機(jī)控制設(shè)備1的存儲器地址空間。即,在圖2中示出了WORK RAM12的地址空間區(qū)域和圖2(a)中的BIOS·ROM13的地址空間區(qū)域。
此外在BIOS·ROM13的地址空間區(qū)域內(nèi)還保留了為下述的加密檢查而設(shè)置的用來存儲加密檢查例程用的程序存儲空間。另外,位于BIOS·ROM13的地址空間和WORK·RAM12地址空間之間的區(qū)域,是保證使用VDP15等的地址空間,VDP15用于在TV監(jiān)視器3上顯示出圖象。
再有,游戲存儲卡2中的ROM區(qū)地址空間作為由存儲體邏輯電路以排他方式所選擇的BIOS·ROM13地址空間的一部分而具有固定的位置[參照圖2(b)]。
下面,根據(jù)圖3、圖4的操作流程圖來說明包括游戲機(jī)控制設(shè)備加密檢查功能在內(nèi)的操作。首先通過圖中未示出的開關(guān)打開游戲機(jī)控制設(shè)備1的電源(步驟S1)。其次,通過CPU的控制而起動BIOS·ROM13中的BIOS(基本I/O系統(tǒng))軟件(步驟S2)。
通過BIOS對各部分初始化。即,在初始化過程中(例程X),將存儲在BIOS·ROM13中的加密檢查例程(Y)的程序轉(zhuǎn)送到WORK·RAM12中[參照圖2(C)](步驟S3)。
在這里,存儲體邏輯電路14進(jìn)行由BIOS·ROM13地址空間到游戲存儲卡2的ROM地址空間的存儲體切換[參照圖2(d)](步驟S4)。
再有,在圖1中,VDP15是一種用來控制在TV監(jiān)視器3上顯示圖像的控制器,其組成元件包括有寄存器。該寄存器的地址區(qū)域分布在圖2的(c)、(d)中作為存儲切換對象的BIOS·ROM13的地址空間和WORK·RAM12的地址空間以外的空間里。
在初始化例程(X)中,當(dāng)CPU11開始對VDP15存取數(shù)據(jù)時,將在作為VDP15組成部分的用于加密系統(tǒng)的控制電路(TMSS)17中所規(guī)定的加密代碼,例如“SEGA”寫入上述TMSS17的寄存器中。其次,假定按照迄今為止的同樣的方法和裝置來執(zhí)行加密檢查例程(Y)。在加密檢查例程(Y)中,如圖2(C)所示,執(zhí)行向WORK·RAM12轉(zhuǎn)送的存儲在BIOS·ROM13中的加密檢查例程的程序。
所執(zhí)行的內(nèi)容例如和上述美國專利4,462,076的加密檢查是同樣的。執(zhí)行該加密檢查過程之后,在前述初始化例程(X)中,寫入TMSS17的寄存器的規(guī)定的加密代碼“SEGA”將在CPU11對VDP15進(jìn)行存取以后被取消。
如前所述,存儲邏輯電路14由BIOS·ROM13存儲體切換到游戲存儲卡2的ROM的存儲體。因此,可以由向WORK·RAM12傳送并存儲的加密檢查例程程序來對游戲存儲卡2的ROM進(jìn)行存取[參照圖2(d)的箭頭]。
此后,讀出存儲在游戲存儲卡2ROM中的加密代碼,將存儲的內(nèi)容與真正的代碼“SEGA”比較(步驟S5)。
當(dāng)與規(guī)定的加密代碼“SEGA”一致時,則通過VDP15在TV監(jiān)視器3上顯示出“PRODUCED BY OR UNDER LICENSE FROMSEGA”等表示游戲存儲卡2是真的(步驟S6)。此后便通過加密檢查流程(步驟S7)、游戲就可以進(jìn)行了,從而控制轉(zhuǎn)向游戲執(zhí)行例程(Z)。
另一方面,當(dāng)步驟S5中與加密代碼“SEGA”比較不一致時,即游戲存儲卡2不是真的時,就再次進(jìn)行存儲體切換(步驟S8)。因而,游戲存儲卡2的ROM地址空間會返回到BIOS·ROM13的地址空間。由此,BIOS的程序進(jìn)入循環(huán)狀態(tài)(步驟S9),CPU11處于掛起狀態(tài),從而游戲不能進(jìn)行。圖4是游戲執(zhí)行的操作流程。
一旦從加密檢查例程中釋放出來(步驟S7),就從起始地址處讀取存儲在游戲存儲卡2中的游戲程序(步驟S10)并開始游戲[參照圖2(e)](步驟S11)。
游戲存儲卡2的ROM中,除了有游戲程序數(shù)據(jù)之外,還包含有將規(guī)定的代碼“SEGA”存儲到TMSS17的寄存器中去(例如,分配的地址是$A14000)的命令數(shù)據(jù)。根據(jù)該命令數(shù)據(jù)可將規(guī)定的代碼“SEGA”寫入有關(guān)的地址中(步驟S12)。
此后,便執(zhí)行游戲程序的主程序。在主程序中包含有讀出游戲者操作的操縱桿的狀態(tài)(步驟S13)、處理與上述狀態(tài)相對應(yīng)的使游戲人物活動的數(shù)據(jù)(步驟S14)、根據(jù)這些數(shù)據(jù)在屏幕上將圖象顯示出來(步驟S15)等處理操作。
在此,TMSS17通常是將寫入到TMSS17的寄存器中的代碼和真正代碼“SEGA”進(jìn)行比較,如果在CPU11對VDP15存取數(shù)據(jù)時寫入了錯誤的代碼,CPU11就停止運(yùn)行。而TMSS17的操作與CPU11的操作是相互獨(dú)立進(jìn)行的。
即,未存取VDP15時(步驟S151N),游戲便繼續(xù)進(jìn)行(步驟S152)。另一方面,當(dāng)存取VDP15時(步驟S151Y),通過TMSS17對寫入到TMSS17的寄存器的特定地址(上述$A14000地址)的代碼進(jìn)行比較判斷,看其是否為“SEGA”,如果不是“SEGA”(步驟S16N),則停止CPU11的操作、從而阻止游戲的進(jìn)行(步驟S17)。如果是“SEGA”,則游戲可以繼續(xù)進(jìn)行(步驟S152)。
如此所述,迄今為止的程序執(zhí)行方法是通過了加密檢查例程(Y)而允許游戲進(jìn)行的。為此,在卡式存儲器2的ROM中存儲的程序中,有必要存儲諸如“SEGA”這樣用于加密檢查的代碼。
進(jìn)而,在游戲執(zhí)行例程(Z)中,在游戲繼續(xù)過程中也有必要在檢查程序是否為真的程序數(shù)據(jù)內(nèi)包含″對VDP15進(jìn)行存取、將“SEGA”代碼寫入VDP15″這樣的命令數(shù)據(jù)。
所以,就上述事實(shí)而言,會出現(xiàn)這樣的現(xiàn)象在功能更新的新版游戲機(jī)控制設(shè)備中使用了加密代碼不是“SEGA”的其它代碼。
另外,如前所述,在通過CATV傳輸線傳說達(dá)原本為真的軟件的情況下,程序數(shù)據(jù)中就沒有必要包含有加密檢查代碼。
在這種情況下,上述先有裝置的操作流程中就不能進(jìn)行游戲了。
所以在這種情況下,就不能有效地使用游戲存儲卡這一資源,造成社會經(jīng)濟(jì)損失。而且,對于應(yīng)用通過CATV等傳輸線路傳送軟件這樣一種新的服務(wù)形式,存在著利用效率低的問題。本發(fā)明的目的就是解決這一問題。本發(fā)明的第一實(shí)施例在本發(fā)明的第一實(shí)施例中,為了解決這一問題,在初始化例程(X)結(jié)束的同時,將CPU11的操作復(fù)位(步驟S00[參照圖3])。
即,在實(shí)施本發(fā)明之方法時,將CPU11的復(fù)位操作(步驟S00)插入圖3所示的操作流程中。如參照圖3所說明的那樣,在初始化例過程(X)中,BIOS·ROM13存儲體向游戲存儲卡2存儲體切換(步驟S4)。進(jìn)而,在加密檢查例程(Y)中,讀出存儲在游戲存儲卡2ROM中的加密代碼,將該項(xiàng)存儲內(nèi)容與真正代碼“SEGA”進(jìn)行比較(步驟S5)。如果與真正代碼不一致,則從游戲存儲卡2切換至BIOS·ROM13(步驟S8)。
所以,更具體地說,在本發(fā)明的第一實(shí)施例中,CPU11的復(fù)位操作(步驟S00)至少應(yīng)在存儲體還處于游戲存儲卡2的軟件、即在步驟S8的操作結(jié)束之前進(jìn)行。
一旦測知CPU11的復(fù)位操作(步驟S00)已完成(步驟S01Y),CPU11立即開始從游戲存儲卡2讀出程序(步驟S10)。
因此,在插入了CPU11的復(fù)位操作(步驟S00)的情況下,CPU11檢測出復(fù)位,通過加密檢查例程(Y),便可以立即進(jìn)入游戲執(zhí)行例程(Z)圖5示出了實(shí)現(xiàn)本發(fā)明第一實(shí)施例的特征的一個實(shí)施例電路。圖6是圖5實(shí)施例電路的操作時序圖。
在圖5中,標(biāo)號1是程序執(zhí)行裝置、即如圖1所示的游戲機(jī)控制設(shè)備1。另外,虛線內(nèi)的電路是用于實(shí)施本發(fā)明之方法的實(shí)施例電路。按照本發(fā)明,該實(shí)施例電路不一定要設(shè)置在卡式存儲器2之內(nèi),也可以做成獨(dú)立的電路裝置。
圖5的(a)至(d)分別與圖6時序圖中的(a)至(d)相對應(yīng)。圖5(e)、(f)分別為電源和接地端。
現(xiàn)在,一旦打開圖中未示出的游戲機(jī)控制設(shè)備電源開關(guān)[參照圖6(1)],從復(fù)位電路21輸出的復(fù)位信號(/MRES有效低電平)會在一段時間內(nèi)仍為低電平,并在其后的t1時刻變?yōu)楦唠娖?,該?fù)位信號從端子(a)輸入至作為程序執(zhí)行裝置的游戲機(jī)控制設(shè)備1以及由D觸發(fā)器(D-FF)等構(gòu)成的鎖存電路22的清零(CL)端子上。
復(fù)位電路21是一種定時電路,設(shè)置它的目的是為了消除接通游戲機(jī)控制設(shè)備1電源后直至電壓升高這一段不穩(wěn)定的時間間隔并協(xié)調(diào)整個系統(tǒng)的時序。
在復(fù)位信號/MRES變?yōu)楦唠娖降臅r刻t1,CPU11復(fù)位信號/VRES會上升,片選信號(/CEO有效低電平)從游戲機(jī)控制設(shè)備)輸入到端子(c)上[參照圖6的(c)]。然后給出CPU11第一次存取卡式存儲器2的ROM的時序A(t2~t3的時間段)。
在上述時序A中,初始化例程(X)(圖3參照)的操作由CPU11的軟件操作來進(jìn)行。而且,通過CPU11的軟件操作,存儲單元從BIOS切換至卡式存儲器2[圖2的(b)、(c)]。
此后,鎖存電路22的Q輸出[如圖6(b)的高電平]會輸入到復(fù)位脈沖發(fā)生電路23。復(fù)位脈沖發(fā)生電路23則輸出具有取決于電阻R和電容C的固定脈沖寬度的信號。
因此,當(dāng)鎖存電路22在t3時刻上升的Q輸出被輸入時,就會輸出具有達(dá)到t4時刻的脈沖寬度的信號。該信號到達(dá)反相器24并在其中反相。該反相信號輸出會成為CPU的復(fù)位信號/VRES,此信號在圖6的(d)的時序B(t3~t4的時間)中為低電平信號。
上述為低電平的CPU復(fù)位信號/VRES在t4時刻變成為高電平的CPU復(fù)位信號/VRES,而CPU11則通過端子(d)復(fù)位。這就是在圖3的操作流程中所進(jìn)行的步驟S00的操作狀態(tài),即成為如前所述跳過了加密檢查例程(Y)并通過加密檢查(步驟S7)的狀態(tài)。這樣,就可以開始游戲了(步驟S10)。
這時,系統(tǒng)復(fù)位信號/MRES仍保持為高電平,CPU復(fù)位信號/VRES也仍舊保持為高電平。因而,CPU11因存取盒式存儲器2的ROM而讀出游戲程序[參照圖6的(C)的時序C]并執(zhí)行該游戲程序。
根據(jù)如上的按照本發(fā)明的第一實(shí)施例的附加電路,不執(zhí)行加密檢查例程(Y)就可啟動游戲程序。所以,即使在游戲存儲卡2的ROM13或傳送來的游戲軟件程序中沒有規(guī)定的加密代碼,照樣可以執(zhí)行游戲。
進(jìn)而,由于未執(zhí)行而略過了圖3所說明的加密檢查例程(Y)。所以,在初始化例程(X)中,因CPU11在初始化過程中對VDP15的存取而寫進(jìn)TMSS17的寄存器的規(guī)定代碼“SEGA”并未被取消,而保持著原來的狀態(tài)。
因此,在圖4的游戲執(zhí)行例程(Z)中,為了在游戲過程中檢查程序是不是真的,即使在盒式存儲器2的ROM中沒有″將規(guī)定的代碼“SEGA”存儲到VDP15的寄存器中去″這樣的命令的情況下,由于規(guī)定的代碼“SEGA”并沒有消掉,而是按原樣保存了下來,所以,通過TMSS17所進(jìn)行的代碼比較的結(jié)果總是為真的,因而CPU11的操作不會停止,游戲可以繼續(xù)進(jìn)行。
本發(fā)明的第二實(shí)施例第二實(shí)施例中特征在于,在BIOS·ROM13所進(jìn)行的初始化例程(X)(參照圖3)中,控制中止CPU11的操作。
據(jù)此,在第一實(shí)施例中由CPU11的軟件處理所進(jìn)行的存儲體切換功能在第二實(shí)施例中變成由硬件來處理,而且,在CPU11復(fù)位之前,控制該項(xiàng)功能以便將存儲體切換至盒式存儲器2。因此,一旦CPU11復(fù)位立刻就可對盒式存儲器2進(jìn)行存取,從而跳過BIOS·ROM13所進(jìn)行的加密檢查例程(Y)去執(zhí)行游戲。
圖7是本發(fā)明的第二實(shí)施電路。該實(shí)施例的電路可與圖5的實(shí)施例電路一樣設(shè)在盒式存儲器2之內(nèi),也可以做成獨(dú)立的電路裝置。
圖8、圖9是表示構(gòu)成圖7電路的計(jì)數(shù)器27和移位寄存器28的結(jié)構(gòu)實(shí)例框圖。圖10是與圖8相對應(yīng)的操作時序圖。
在圖7中,圖中未示出的游戲機(jī)控制設(shè)備電源一接通,就將主機(jī)復(fù)位信號/MRES[參照圖10的(a)]輸入至施密特觸發(fā)器電路25,在經(jīng)過一段時間后的t1時刻,施密特觸發(fā)電路25的輸出會變成高電平并通過反相器26輸入到計(jì)數(shù)器27,同時也輸入到移位寄存器28的清零端子/CLR。
這里的施密特電路25是為了消去游戲機(jī)控制設(shè)備1開機(jī)時電壓上升到穩(wěn)定電壓前的電壓不穩(wěn)定而設(shè)置的,它與圖5的復(fù)位電路21的功能相同。
將來自游戲機(jī)控制設(shè)備1時鐘信號VCLK輸入給計(jì)數(shù)器27和位移寄存器28。計(jì)數(shù)器27的結(jié)構(gòu)如圖8所示,它由14級D觸發(fā)器構(gòu)成。而且,最后一級D觸發(fā)器的輸出Q14被輸入到移位寄存器28的A端。
另一方面,移位寄存器如圖9所示,它由8級D觸發(fā)器構(gòu)成。所以,由施密特觸發(fā)器電路25的輸出、即控制設(shè)備復(fù)位信號/MRES在圖10的t1時刻將移位寄存器28的計(jì)數(shù)值清零。然后,根據(jù)計(jì)數(shù)器27最后一級D觸發(fā)器的輸出Q14來進(jìn)行移位。
進(jìn)而,移位寄存器的輸出QA、QB、QF、QG、QH通過反相器29、31以及與非門30、32進(jìn)行邏輯處理之后,就會提供以下時間信號CPU復(fù)位信號/VRES[圖10的(b)]、存儲體切換地址VA23~1、存儲體數(shù)據(jù)VD15~0以及寫入時間信號[圖10的(e)],如圖10所示。
也就是說,CPU復(fù)位信號/VRES在移位寄存器28計(jì)數(shù)到最大值時才輸出,并通過收集極開路緩沖器33輸入到游戲機(jī)控制設(shè)備中。即,CPU復(fù)位信號/VRES在t2時刻之前保持低電平,在t2時刻變成高電平。所以在t2時刻之前,CPU11不對存儲在盒式存儲器2的ROM中的游戲程序進(jìn)行存取。
另一方面、在t3到t4的這段時間內(nèi),三態(tài)緩沖器34、35分別輸出存儲體切換地址VA23~1、存儲體數(shù)據(jù)VD15~0。再有,該三態(tài)緩沖器34、35可以用收集極開路、漏極開路等門電路元件來替代。
這里,來自三態(tài)緩沖器34的存儲體切換地址VA23~1是$14100,它是對輸入方以固定方式給出的存儲體切換地址。還有,來自三態(tài)緩沖器35的存儲體數(shù)據(jù)也是對輸入方以固定方式給出的$0001。該$0001是向盒式存儲器2方向切換的存儲體數(shù)據(jù)。
再有,從門電路36、37輸出的CPU寫信號在t5到t6這段時間內(nèi)輸出。該CPU寫信號在游戲機(jī)控制設(shè)備中是用/LWR和/UWR來表示的,它通常處于高電平狀態(tài),而且,只有當(dāng)向低電平轉(zhuǎn)移時才發(fā)出該CPU寫信號。
這里,在CPU復(fù)位信號/VRES變成高電平之前,由于CPU11的操作處于停止?fàn)顟B(tài),所以/LWR和/UWR處于高電平狀態(tài)。與此相反,由于從附加電路向游戲機(jī)控制設(shè)備1以比較大的驅(qū)動力給出使/LWR和/UWR向低電平轉(zhuǎn)移的信號,因此會進(jìn)入CPU寫信號狀態(tài)。
圖11是圖1所示存儲體邏輯電路14的結(jié)構(gòu)性實(shí)例。標(biāo)號38是用于輸入存儲單元切換地址VA23~1并檢測和輸出存儲體切換命令$14100的地址檢測電路。
一旦向與非門電路39輸入地址檢測電路38的輸出信號和CPU的寫入信號,就會向D觸發(fā)器40發(fā)出寫入觸發(fā)信號。這時,可寫入D觸發(fā)器40的數(shù)據(jù)輸入端的數(shù)據(jù)。
在圖7的第二實(shí)施例中,如圖10的操作時序圖所示的那樣,在CPU寫信號(低電平的/UWR)期間,由于給出了存儲體切換命令$14100以及存儲體數(shù)據(jù)$0001,所以D觸發(fā)器會被置“1”,并將存儲體切換至盒式存儲器2。
再回到圖10來說明,在t2時刻,CPU的復(fù)位信號/VRES為高電平,因此CPU被復(fù)位。這一狀態(tài)就是圖3操作流程所說明的CPU復(fù)位狀態(tài)(步驟S00)。這時,如前所述、由于存儲體被切換到了卡式存儲器2,因此,可與第一實(shí)施例一樣跳過加密檢查例程(Y),并直接從游戲存儲卡2中讀取游戲程序(步驟S10參照圖4)。
因此,對于不含有加密檢查的游戲程序也可以開始游戲(步驟S111)。而且,通過同樣的電路設(shè)置,可以在TMSS17的寄存器中寫上真正代碼“SEGA”。
本發(fā)明的第三實(shí)施例
上述的第一、第二實(shí)施例中,在圖3的操作流程里,可以加以控制以便跳過加密檢查例程(Y),但在第二實(shí)施例中,在圖3的初始化例程(X)中、通過以與BIOS操作時序相配合的方式操作特定的信號線路從而使初始化例程(X)繼續(xù)下來,因此總是能成功地通過加密檢查。
在BIOS·ROM內(nèi)部,以與游戲存儲卡2同樣的形式從地址號$100處開始記錄用來與游戲存儲卡2的內(nèi)容進(jìn)行比較的、作為原始數(shù)據(jù)的加密代碼“SEGA”代碼。
而且,在加密檢查例程(Y)中,若測知在游戲存儲卡2內(nèi)部的地址$100上存放著同樣的“SEGA”代碼,就解除加密檢查。
因此,在圖3流程的步驟4中,如果沒有從BIOS存儲體切換到卡式存儲器存儲體,那么BIOS的步驟5中就不與游戲存儲卡2內(nèi)部存儲的內(nèi)容、而與BIOS內(nèi)部所存放的“SEGA”代碼進(jìn)行比較。在這種情況下,由于是從地址$100開始處記錄“SEGA”的,所以必定能取得一致,加密檢查就會被解除(步驟S7參照圖3),因而可在游戲執(zhí)行例程(Z)中進(jìn)行游戲。
該第三實(shí)施例與第二實(shí)施例相比較具有附加電路簡單這一優(yōu)點(diǎn)。下面,就附加電路的實(shí)施例進(jìn)行說明。
圖12是本發(fā)明的第三實(shí)施例電路的結(jié)構(gòu)框圖,與前述實(shí)施例一樣,它可以放在游戲存儲卡2內(nèi)或者做成獨(dú)立的電路裝置。圖13是與此對應(yīng)的操作時序圖。
圖中未示出的游戲機(jī)控制設(shè)備1的電源一接通,因施密特觸發(fā)器電路25而形成有上升時間點(diǎn)的復(fù)位信號/MRES會被輸入到鎖存電路41的清零端/CL上。鎖存電路41與圖5的鎖存電路22是一樣的。
復(fù)位信號/MRES變成高電平之后,來自CPU11的存儲體切換地址信號(VA23~VA1)輸入到存儲體邏輯電路14,同時也輸入到附加電路的存儲體切換地址信號檢測譯碼電路42中。
這時,在以上說明了的存儲體邏輯電路14的詳細(xì)實(shí)施例(圖11)中,來自CPU11的存儲體切換地址信號(VA23~VA1)會輸入到地址譯碼電路38中。地址譯碼電路38檢測存儲體切換的地址信號(VA23~VA1),而有效低電平的信號則輸入到與非門39的一個輸入端上。
同時,附加電路的地址信號檢測譯碼電路42中也能檢測存儲體切換的地址信號(VA23~VA1)。這時,有效低電平的信號通過門電路43輸入到開漏極緩沖器44的一端。在這種情況下,開漏極緩沖器44由于其輸入端接在+V電位上,所以會輸出作為數(shù)據(jù)的邏輯值1。
該輸出通過游戲機(jī)控制設(shè)備1中的總線10送到存儲體邏輯電路14的數(shù)據(jù)輸入端D。這時,CPU11也以同樣的方式將存儲體從BIOS切換到盒式存儲器并將數(shù)據(jù)邏輯值1送到數(shù)據(jù)輸入端D。
因此,邏輯值1和邏輯值0都輸入到存儲體邏輯電路14的數(shù)據(jù)輸入端D,因此互相沖突起來,但是附加電路的驅(qū)動功率要比CPU11的驅(qū)動功率大,所以從附加電路來的邏輯輸出0有效。
再有,在圖11中,在地址譯碼電路38測知來自CPU11的存儲體切換地址且來自CPU11的寫信號已被傳送的情況下,觸發(fā)信號會從與非門39輸入到D觸發(fā)器40的觸發(fā)輸入端子。
因此,鎖存電路即D觸發(fā)器40會設(shè)置成在數(shù)據(jù)輸入端D上出現(xiàn)的邏輯值0。這時在圖3的步驟S4中,存儲體不會向盒式存儲器方面切換,而且仍處在BIOS·ROM的原有狀態(tài)[參照圖13的(d)]。
據(jù)此,在繼續(xù)進(jìn)行的加密檢查例程(Y)中,會檢測到“SEGA”代碼一致性(步驟S5)。因此能通過加密檢查(步驟S7),從而開始游戲。
再者,在不使用本發(fā)明的情況下,由于未使來自CPU11的數(shù)據(jù)無效,并使在圖13(d)中虛線所示的存儲體切換到盒式存儲器,因此作為原有的操作只檢測與盒式存儲器2中的“SEGA”代碼的一致性/不一致性。
本發(fā)明的第四實(shí)施例圖14是本發(fā)明的第四實(shí)施例電路的框圖。如前所述,在圖12的第三實(shí)施例中,當(dāng)從CPU11中產(chǎn)生存儲體切換地址VA23~VA1時,存儲體數(shù)據(jù)會被當(dāng)作無效數(shù)據(jù)而送往存儲體邏輯電路14。
與此相反,在第四實(shí)施例中,由于把存儲體切換地址當(dāng)作無效地址,所以在地址譯碼電路38中不檢測存儲體切換地址VA23~VA1。
當(dāng)?shù)刂诽?14100是進(jìn)行存儲體切換的控制地址時,作為對進(jìn)行存儲體轉(zhuǎn)換的控制,輸出來自CPU11的與地址$14100相對應(yīng)的地址代碼VA23~VA1,并通過總線將該代碼輸入到存儲體切換電路14。
同時,地址代碼VA23~VA1通過總線也被送到圖14的電路的存儲體切換地址檢測電路42。在圖14的實(shí)施例中,來自CPU11的地址代碼VA23~VA1除VA14之外的VA23~VA15以及VA13~VA1均被輸入到地址檢測電路42。
也就是說,由于地址是用16進(jìn)制表示的,所以當(dāng)表示地址$14100時,第14位的VA14為“1”。此外,在地址$10100中,VA14為“0”。因此,將除VA14之外的VA23~VA15以及VA13~VA1均輸入地址檢測電路42,無論地址是$14100還是$10100都輸出有檢測輸出信號。
這時,由于圖12中所述的鎖存電路41、門電路43以及三態(tài)緩沖器44與圖14中的相同,而且三態(tài)緩沖器44的輸入端接地,所以,把VA14輸出為“0”并通過總線送到游戲機(jī)控制設(shè)備1。
另一方面,來自CPU11的存儲單元切換地址用的地址代碼VA23~VA1會出現(xiàn)在總線上,而且從CPU11來的VA14為“1”。由于從三態(tài)緩沖器44來的VA14為“0”,因此會發(fā)生沖突。但是,在這種情況下由于三態(tài)緩沖器44的驅(qū)動功率要比CPU11的大,所以VA14被強(qiáng)制為“0”。
在這種情況下,在圖11所示的存儲體邏輯電路內(nèi)的地址譯碼電路38中不對存儲體切換地址進(jìn)行檢測。所以,即使來自CPU的存儲體數(shù)據(jù)為“1”以便切換到卡式存儲器,D觸發(fā)器40的狀態(tài)也不會發(fā)生變化,存儲體仍保留在BIOS·ROM一邊。
因此,與圖12的第三實(shí)施例中已說明了的情形一樣,可以進(jìn)行與BIOS·ROM本身的“SEGA”代碼的比較[參照圖3、步驟S5],能夠通過加密檢查例過程(Y)[參照圖3、步驟S7],并開始游戲。
根據(jù)上述實(shí)施例對本發(fā)明進(jìn)行了說明,本發(fā)明通過附加簡單的電路就能實(shí)現(xiàn),而且按照本發(fā)明,例如即使在使用不同機(jī)型的硬件情況下,也可以不受加密檢查的制約而有效地利用軟件程序資源。
此外,按照本發(fā)明,在軟件的傳送服務(wù)業(yè)中,所傳送的軟件里沒有必要包含加密檢查代碼,這樣對接受傳送的用戶來說可以高效率的接受傳送來的軟件。
再有,在上述實(shí)施例的說明中,專門以游戲軟件程序?yàn)閷ο筮M(jìn)行了說明,但是,本發(fā)明使用的對象不局限于這樣的程序。進(jìn)而對于存儲程序的媒體,除了卡式存儲器類型之外,其他的例如即使是存儲在CD-ROM(光盤存儲器)中的程序,只要是與本發(fā)明的思想相同,都屬于本發(fā)明保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種軟件程序的執(zhí)行方法,它包括以下步驟將包含在裝有CPU(11)的控制設(shè)備(1)中的BIOS·ROM(13)的存儲體切換到由CPU(11)執(zhí)行的軟件程序的存儲體;至少在存儲體處于該軟件程序的時間間隔內(nèi)將該CPU(11)的操作復(fù)位;以及一旦CPU(11)被復(fù)位,便通過該CPU(11)開始讀取該軟件程序。
2.一種軟件程序執(zhí)行方法,它包括初始化例程(X),此例程包括的步驟是將包含在裝有CPU(11)的控制設(shè)備(1)中的BIOS·ROM(13)的存儲體切換到存儲在外部存儲器(2)中的軟件程序的存儲體;加密檢查例程(Y),以檢查上述軟件程序是否為真的;以及當(dāng)在加密檢查過程(Y)中已判斷出所述軟件程序?yàn)檎娴那闆r下,通過控制設(shè)備(1)的CPU(11)去執(zhí)行該軟件程序的程序執(zhí)行例程(Z);在所說的軟件程序執(zhí)行方法中,根據(jù)至少在存儲體處于存儲在外部存儲器(2)的軟件程序一邊的時間里,將CPU(11)復(fù)位,從而通過加密檢查例程(Y),而在程序執(zhí)行過程(Z)中,則由CPU(11)來執(zhí)行所述的軟件程序。
3.根據(jù)權(quán)利要求1或2所述的軟件程序執(zhí)行方法,其特征在于,它通過硬件電路來進(jìn)行下列步驟在電源接通后的規(guī)定時間之內(nèi)停止CPU(11)的操作,并將BIOS·ROM(13)的存儲體切換到所述軟件程序的存儲體一邊。
4.根據(jù)權(quán)利要求2所述的軟件程序的執(zhí)行方法,其特征在于,存儲在外部存儲器(2)中的軟件程序是通過CATV等傳輸線來傳送的并可卸載于外部存儲器(2)中。
5.一種附加在具有執(zhí)行軟件程序的CPU(11)的控制設(shè)備(1)的電路裝置,其特征在于產(chǎn)生將CPU復(fù)位的CPU復(fù)位信號/VRES的裝置(22,23),該信號是在電源接通時所產(chǎn)生的用于復(fù)位控制設(shè)備(1)的控制設(shè)備復(fù)位信號/MRES和從該控制設(shè)備(1)來的片選信號/CEO的基礎(chǔ)上產(chǎn)生的,在所述的電路裝置中,CPU復(fù)位信號/VRES是在該片選信號/CEO延遲一段規(guī)定的時間后才輸出的。
6.一種附加在具有執(zhí)行軟件的CPU(11)的控制設(shè)備(1)上的電路裝置,其特征在于當(dāng)電源接通后在使控制設(shè)備(1)復(fù)位的控制設(shè)備復(fù)位信號/MRES基礎(chǔ)上產(chǎn)生CPU復(fù)位信號/VRES的裝置,而所說的CPU復(fù)位信號則在規(guī)定時間后將CPU(11)復(fù)位;以及在所述規(guī)定的時間內(nèi)產(chǎn)生存儲體切換地址、存儲體數(shù)據(jù)以及寫入信號,并將它們送到控制設(shè)備(1)中去的裝置。
7.一種附加在具有執(zhí)行軟件的CPU(11)的控制設(shè)備(1)上的電路裝置,其特征在于檢測從CPU(11)來的存儲體切換地址的檢測裝置(42);以及當(dāng)存在有來自檢測裝置(42)的存儲體切換地址的檢測輸出信號時,強(qiáng)制地將來自CPU(11)的用于切換到BIOS·ROM一邊的存儲體數(shù)據(jù)替換成用于切換到所述軟件一邊的存儲體數(shù)據(jù)的裝置(41、43、44)。
8.一種附加在具有執(zhí)行軟件的CPU(11)的控制設(shè)備(1)上的電路裝置,其特征在于檢測來自CPU(11)的存儲體切換地址的檢測裝置(42);以及當(dāng)存在有來自所述檢測裝置(42)的存儲體切換地址的檢測輸出信號時,強(qiáng)制地將來自CPU(11)的存儲體切換地址替換成與該存儲體切換地址不同的地址的裝置(41、43、44)。
全文摘要
一種程序執(zhí)行方法以及實(shí)施這種方法的電路裝置,所說程序執(zhí)行方法能有效地利用存儲于安裝在硬件主機(jī)上的外部存儲器的軟件程序資源,它包括初始化例程,此例程包括將帶有CPU的控制設(shè)備內(nèi)的BIOS·ROM的存儲體切換到軟件程序的存儲體等步驟;加密檢查例程,此例程用于檢查軟件程序是否為真;以及程序執(zhí)行例程,此例程在加密檢查例程已判斷出軟件程為真時,通過控制設(shè)備的CPU去執(zhí)行所說的軟件程序。
文檔編號G06F21/78GK1103748SQ94190113
公開日1995年6月14日 申請日期1994年3月2日 優(yōu)先權(quán)日1993年3月10日
發(fā)明者長毅 申請人:世嘉企業(yè)股份有限公司