わくわくシステム3

▼わくわくシステム3とは?▼

仮想VRAM上にキャラクタを1ドット単位で書き込んでい”配置”プログラムと、
仮想VRAMの表示、仮想VRAMのデータの消去のプログラムがセットになったサブルーチン集です。
なお、わくわくシステム3はG850シリーズ専用ですので4行表示のポケコンには使用しないでください。

「マシン語は何となく出来るんだけど、
 仮想VRAM表示プログラムを自分で作るのはめんどくさいなー。」という人にお勧めです。

▼わくわくシステム3の特徴▼

1.仮想VRAMはG850シリーズの画面と同じ144*48ドットです。
2.配置するキャラクタの大きさは、1*1ドット〜32*32ドットまでです。
3.マシン語のIOCSと同じ感覚で使えます。
4.やたらとでかいプログラムサイズ!(わくわくシステム2よりも512バイト増量!)
5.仮想VRAMの表示範囲の設定機能付き。
6.仮想VRAMにキャラクタを配置しても、BC、DE、HL、IXレジスタは保持されます。(地味に嬉しい。)
7.もちろんフリーウェアなので自由に使えます。改造もOK!(著作権は放棄しません。)

▼わくわくシステム2から3への進化▼

1.仮想VRAMに配置できるキャラクタの大きさが最大32*32ドットになりました。
  わくわくシステム2では最大8*8ドットでした。
2.配置するキャラクタのマスクパターンを仮想VRAMに配置できる様になりました。
  これによりキャラクタが重なった時の”手前”の演出が可能になります。
3.仮想VRAMの表示速度が若干速くなりました。
  仮想VRAMの表示にIOCS(CALL 0BFD0H)は使用していません。

●アドレスマップ

アドレス内容種類ラベル
100H〜102H未使用(ご自由にお使いください) ‐YОB
103H〜192H仮想VRAM1段目データV0
193H〜222H仮想VRAM2段目データV2
223H〜2B2H仮想VRAM3段目データV3
2B3H〜342H仮想VRAM4段目データV4
343H〜3D2H仮想VRAM5段目データV5
3D3H〜462H仮想VRAM6段目データV6
463H〜468H仮想VRAM1〜6段目の表示範囲のドット数(0〜144) データH1〜H6 
469HオフセットX座標(0〜31)データОFX
46AHオフセットY座標(0〜31)データОFY
46BH〜63CH仮想VRAMにキャラクタを配置するサブルーチン PUT
63DH〜64CH仮想VRAMにマスクパターンとキャラクタを配置する サブルーチンMUS
64DH〜674H仮想VRAMにマスクパターンのみを配置するサブルーチンMU2
675H〜694H仮想VRAMの内容をクリアする(全体)サブルーチンCLE
695H〜6D1H仮想VRAMの内容をクリアする(表示範囲連動)サブルーチンCL2
6D2H〜72EH仮想VRAMを表示するサブルーチンHYО
72FH〜7DAH各種データ(内部で使用)データBОX〜D1
7DBH〜7DFH未使用(ご自由にお使いください) ‐YО2

●仮想VRAMの座標について

仮想VRAMの座標は、左上を(0,0)にして
X座標は0〜143、Y座標は0〜47となっています。

●オフセットについて

仮想VRAMの左上の座標はデフォルトで(0,0)となっていますが、
この座標をX,Yともに0〜31の範囲で設定できます。(マイナスには出来ません)

例えば469Hに”10”、46AHに”20”をの数値入れると
仮想VRAMの左上の座標が(10,20)になります。

注意:以降の説明文ではオフセットは変えずにデフォルトの状態で説明します。

●キャラクタの座標について

配置するキャラクタの座標は、そのキャラクタの左上のドットになります。
これは、BASICで使う『GCURSOR』とは異なる考え方なので注意してください。

●「わくわくシステム3」の使い方

 仮想VRAMにキャラクタを配置する 

Bレジスタ   配置するキャラクタの横のドット数(1〜32)
Cレジスタ   配置するキャラクタの縦のマス数(1〜4)
Eレジスタ   配置するキャラクタのX座標(0〜255)
Dレジスタ   配置するキャラクタのY座標(0〜255)
HLレジスタ  配置するキャラクタのデータの開始アドレス
実行アドレス  CALL 46BH
例としてモンスターを(10,25)の位置に配置してみましょう。
モンスターのビットパターンは縦が7ドット(1マス)、横が5ドットとなります。
    LD   B,5   ;モンスターの横の長さは『5』
    LD   C,1   ;モンスターの縦のマス数は『1』
    LD   E,10  ;モンスターのX座標は『10』
    LD   D,25  ;モンスターのY座標は『25』
    LD   HL,MON;モンスターのビットパターンの先頭アドレス
    CALL 46BH  ;
    RET        ;
MON:DB   7EH   ;┓
    DB   3BH   ;┃
    DB   7FH   ;┃モンスターのビットパターン
    DB   3BH   ;┃
    DB   7EH   ;┛
上のリストを実行すれば仮想VRAM上の(10,25)の位置にモンスターのデータが書き込まれます。
そして仮想VRAMを表示すると・・・

使い方としては、ポケコンに内蔵されているIOCSと同じ感覚で使えます。

●画面からはみ出す座標について

座標を指定するDレジスタとEレジスタは、0〜255の範囲で指定出来ますが、
画面からはみ出す座標(X座標なら144〜,Y座標なら48〜)を
指定した場合でも配置されないだけでエラーにはなりません。
また、下の表のよ様に座標のデータが225〜255の場合だと
その数値はマイナスの座標としてシステムが認識します。

もとの座標システムが認識する座標
225(0E1H)−31
226(0E2H)−30
227(0E3H)−29
228(0E4H)−28
229(0E5H)−27


251(0FBH)−5
252(0FCH)−4
253(0FDH)−3
254(0FEH)−2
255(0FFH)−1


上図の様に、キャラクタの一部が画面の外にはみ出す配置も可能です。
(1)(2)(5)の様に、配置されるキャラクタの横の長さが短い時でも
Bレジスタの数値は、元のキャラクタの横の長さを指定して下さい。(この場合は”5”ですね。)

 仮想VRAMに大きなキャラクタを配置する 
次にタワーを(70,30)の位置に配置してみましょう。
タワーのビットパターンは縦が16ドット(2マス)、横が9ドットとなります。
注意:ビットパターンのデータは上段・下段の順に連続して並んでいなければなりません。
    LD   B,9   ;タワーの横の長さは『9』
    LD   C,2   ;タワーの縦のマス数は『2』
    LD   E,70  ;タワーのX座標は『70』
    LD   D,30  ;タワーのY座標は『30』
    LD   HL,TОW;タワーのビットパターンの先頭アドレス
    CALL 46BH  ;
    RET        ;
TОW:DB   0     ;┓
    DB   0     ;┃
    DB   0C0H  ;┃
    DB   78H   ;┃
    DB   57H   ;┃タワーのビットパターン(上段)
    DB   78H   ;┃
    DB   0C0H  ;┃
    DB   0     ;┃
    DB   0     ;┛
    DB   0C0H  ;┓
    DB   0A0H  ;┃
    DB   99H   ;┃
    DB   57H   ;┃
    DB   2BH   ;┃タワーのビットパターン(下段)
    DB   57H   ;┃
    DB   99H   ;┃
    DB   0A0H  ;┃
    DB   0C0H  ;┛
上のリストを実行すれば仮想VRAM上の(70,30)の位置にタワーのデータが書き込まれます。
そして仮想VRAMを表示すると・・・
となりますね。

 仮想VRAMにキャラクタとマスクパターンを配置する 

Bレジスタ   配置するキャラクタの横のドット数(1〜32)
Cレジスタ   配置するキャラクタの縦のマス数(1〜4)
Eレジスタ   配置するキャラクタのX座標(0〜255)
Dレジスタ   配置するキャラクタのY座標(0〜255)
HLレジスタ  配置するキャラクタのデータの開始アドレス
IXレジスタ  配置するマスクパターンのデータの開始アドレス 
実行アドレス  CALL 63DH

仮想VRAMにキャラクタを配置するという事は、
もともと仮想VRAM上にあったデータに『OR』で重ねていく行為であり、
場合によっては新しく配置したキャラクタが見辛くなる事もあります。
ゲームによっては「このキャラはあのキャラよりも手前だ!」と表現したくなる事もあるでしょう。

そこで「わくわくシステム3」ではキャラクタのマスクパターンを仮想VRAMに配置し、
部分的に仮想VRAMのデータを消去する事が出来ます。
マスクパターンは仮想VRAM上のデータに『AND』で重ねていく仕様となっています。

今回は上記の「タワー」のデータが残っている状態の仮想VRAMに
バナナとバナナのマスクパターンをタワーに重ねるように配置してみます。
    LD   B,15  ;バナナ(マスクパターン)の横の長さは『15』
    LD   C,1   ;バナナ(マスクパターン)の縦のマス数は『1』
    LD   E,71  ;バナナ(マスクパターン)のX座標は『71』
    LD   D,35  ;バナナ(マスクパターン)のY座標は『35』
    LD   HL,BAN;バナナのビットパターンの先頭アドレス
    LD   IX,MUS;バナナのマスクパターンの先頭アドレス
    CALL 63DH  ;
    RET        ;
BAN:DB   38H   ;┓
    DB   48H   ;┃
    DB   48H   ;┃
    DB   90H   ;┃
    DB   90H   ;┃
    DB   90H   ;┃
    DB   90H   ;┃
    DB   90H   ;┃バナナのビットパターン   
    DB   90H   ;┃
    DB   48H   ;┃
    DB   48H   ;┃
    DB   25H   ;┃
    DB   13H   ;┃
    DB   0FH   ;┃
    DB   02H   ;┛
MUS:DB   0C7H  ;┓
    DB   87H   ;┃
    DB   87H   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃バナナのマスクパターン   
    DB   0FH   ;┃
    DB   87H   ;┃
    DB   87H   ;┃
    DB   0C2H  ;┃
    DB   0E0H  ;┃
    DB   0F0H  ;┃
    DB   0FDH  ;┛
少し分かりにくいですが、タワーの手前にバナナが来てますね。
エビフライではありませんよ!バナナですよ!


 仮想VRAMにマスクパターンのみを配置する 

Bレジスタ   配置するキャラクタの横のドット数(1〜32)
Cレジスタ   配置するキャラクタの縦のマス数(1〜4)
Eレジスタ   配置するキャラクタのX座標(0〜255)
Dレジスタ   配置するキャラクタのY座標(0〜255)
IXレジスタ  配置するマスクパターンのデータの開始アドレス 
実行アドレス  CALL 64DH

あまり使う機会は無いかもしれませんが、
仮想VRAMにマスクパターンのみを配置する事も出来ます。
今回は仮想VRAM全体が”255”で埋まっているまっ黒な状態の時に
バナナのマスクパターンを(10,10)の位置に配置してみます。
    LD   B,15  ;マスクパターンの横の長さは『15』
    LD   C,1   ;マスクパターンの縦のマス数は『1』
    LD   E,71  ;マスクパターンのX座標は『10』
    LD   D,35  ;マスクパターンのY座標は『10』
    LD   IX,MUS;バナナのマスクパターンの先頭アドレス
    CALL 64DH  ;
    RET        ;
MUS:DB   0C7H  ;┓
    DB   87H   ;┃
    DB   87H   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃
    DB   0FH   ;┃バナナのマスクパターン   
    DB   0FH   ;┃
    DB   87H   ;┃
    DB   87H   ;┃
    DB   0C2H  ;┃
    DB   0E0H  ;┃
    DB   0F0H  ;┃
    DB   0FDH  ;┛
結果はこうなりました。
暗闇に浮かぶバナナ、乙なものです。


 仮想VRAMを表示する 

実行アドレス  CALL 6D2H

このアドレスを実行すると仮想VRAMが表示されます。

デフォルトではポケコンの画面全体に仮想VRAMを表示するようになっていますが、
実際にゲームを作る場合にポケコンの画面全体に仮想VRAMが表示されると、
スコア等の表示が出来なくて困る場合があります。
そこで、仮想VRAMの表示範囲を設定します。

●横方向の表示範囲を決める

各段ごとに画面の左端から仮想VRAMを何ドット分表示させるか(1〜144)を決めて、
463H〜468Hにその数値を入れます。(『0』を入れた場合は表示されません)
※縦方向の表示範囲をドット単位で決める事は出来ません。

あらかじめ仮想VRAMには下の様なデータが入っているとします。


<例1>
463H(1段目)=144
464H(2段目)=144
465H(3段目)=144
466H(4段目)=144
467H(5段目)=144
468H(6段目)=144

仮想VRAMの内容を全て表示します。(デフォルトの設定)

<例2>
463H(1段目)=100
464H(2段目)=100
465H(3段目)=100
466H(4段目)=100
467H(5段目)=100
468H(6段目)=100

1段目〜6段目までを左から100ドット表示します。

<例3>
463H(1段目)=121
464H(2段目)=121
465H(3段目)=121
466H(4段目)=121
467H(5段目)=0
468H(6段目)=0

1段目〜4段目を左から121ドット表示します。
5段目と6段目は表示していません。

<例4>
463H(1段目)=95
464H(2段目)=128
465H(3段目)=100
466H(4段目)=73
467H(5段目)=125
468H(6段目)=117

1段目〜6段目までのドット表示数をばらばらにする事も出来ます。

●仮想VRAMを表示する時の注意事項(重要)

仮想VRAMの表示範囲が全段144ドットのフル画面表示の時は特に問題はありません。

ただし表示範囲を144ドット未満に設定すると最初に仮想VRAMを表示した時に
ポケコンの画面上に残っている仮想VRAMの表示範囲に干渉しない場所の表示物が
スクロールアウトして消えてしまう場合があります。

このトラブルを防ぐ為、なるべくプログラムの初めの方(例えばタイトル画面表示前)で
一度仮想VRAMの表示サブルーチン『CALL 6D2H』を実行させてください。
一度実行してしまえば仮想VRAMの表示範囲外の表示物が消える事はありません。

 仮想VRAMの内容をクリアする 

全体消去
実行アドレス  CALL 72FH

このアドレスを実行すると、仮想VRAMの内容が全消去されます。
具体的には仮想VRAMである103H〜462Hまでのメモリが”00”で埋まります。
SPレジスタを使った高速消去となっていますよ。

表示範囲連動型消去
実行アドレス  CALL 7DBH

このアドレスを実行すると、
463H〜468Hで指定した仮想VRAMの表示範囲のみが消去されます。
全体消去のプログラムと比べるとプログラムが複雑な分やや速度は遅くなりますが、
表示範囲によってはこちらの方が速い場合もあります。


●わくわくシステム3 ソースリスト
コメントが雑で申し訳ない...
10      ORG   100H;ワクワクシステム3 ソ−スリスト
20YOB:  DS    3;ヨビ
30;====================
40; カソウVRAM
50;====================
60V1:   DS    144;1ダンメ;103H
70V2:   DS    144;2ダンメ;193H
80V3:   DS    144;3ダンメ;223H
90V4:   DS    144;4ダンメ;2B3H
100V5:  DS    144;5ダンメ;343H
110V6:  DS    144;6ダンメ;3D3H
120;===================
130; カソウVRAMヒョウジハンイ  
140;===================
150H1:  DB    144;1ダンメ;463H
160H2:  DB    144;2ダンメ;464H
170H3:  DB    144;3ダンメ;465H
180H4:  DB    144;4ダンメ;466H
190H5:  DB    144;5ダンメ;467H
200H6:  DB    144;6ダンメ;468H
210;===================
220; ザヒョウオフセット
230;===================
240OFX: DB    0;Xオフセット(0−31);469H
250OFY: DB    0;Yオフセット(0−31);46AH
260;===================
270; カソウVRAMニキャラPUT
280;===================
290PUT: XOR   A;46BH
300     LD    (BOX),A
310OC:  LD    A,(OFX);オフセットチェック(0−31ノハンイカ?)
320     CP    32
330     JR    NC,RE
340     NEG
350     ADD   A,E
360     LD    (BO2),A
370     LD    A,(OFY)
380     CP    32
390     JR    NC,RE
400     NEG
410     ADD   A,D
420     LD    (BO2+1),A
430BC1: LD    A,B;Bレジスタチェック(1−32ノハンイカ?)
440     DEC   A
450     CP    32
460     JR    NC,RE
470BC2: LD    A,C;Cレジスタチェック(1−4ノハンイカ?)
480     DEC   A
490     CP    4
500     JR    NC,RE
510DE1: LD    A,(BO2);Xザヒョウチェック(オフセットコミ)
520     CP    144    
530     JR    C,DE2
540     DEC   A
550     SCF
560     CCF
570     ADD   A,B
580     JR    NC,RE
590DE2: LD    A,(BO2+1);Yザヒョウチェック(オフセットコミ)
600     CP    48
610     JR    C,HO
620     DEC   A
630     PUSH  BC
640     LD    B,C
650L1:  ADD   A,8
660     DJNZ  L1
670     POP   BC
680     CP    48
690     JR    C,HO
700RE:  LD    A,1;スウチハンイガイダッタ!
710     LD    (BOX),A
720     RET
730HO:  PUSH  BC;レジスタヲメモリニホゾン
740     PUSH  DE
750     PUSH  HL
760     LD    DE,(BO2)
770     LD    (REC),BC
780     LD    (REE),DE
790     LD    (REH),HL
800     XOR   A
810     LD    (SA),A
820HE1: LD    A,E;キャラハミダシチェック(ヒダリ)
830     CP    −31
840     JR    C,HE2
850     ADD   A,B
860     LD    (REB),A
870     LD    C,A
880     LD    A,B
890     SUB   C
900     LD    (SA),A
910     LD    B,0
920     LD    C,A
930     ADD   HL,BC
940     LD    (REH),HL
950     XOR   A
960     LD    (REE),A
970     JR    HD1
980HE2: LD    A,E;キャラハミダシチェック(ミギ)
990     ADD   A,B
1000    CP    145
1010    JR    C,HD1
1020    SUB   144
1030    LD    (SA),A
1040    LD    C,A
1050    LD    A,B
1060    SUB   C
1070    LD    (REB),A
1080HD1:LD    A,D;キャラハミダシチェック(シタ)
1090    CP    48
1100    JR    NC,HD2
1110    LD    A,(REC)
1120    LD    B,A
1130    LD    A,D
1140L2: ADD   A,8
1150    DJNZ  L2
1160MD: CP    56
1170    JR    C,NEX
1180    LD    HL,REC
1190    DEC   (HL)
1200    SUB   8
1210    JR    MD
1220HD2:DEC   A;キャラハミダシチェック(ウエ)
1230MD2:ADD   A,8
1240    CP    48
1250    JR    C,NEX
1260    LD    HL,REC
1270    DEC   (HL)
1280    PUSH  AF
1290    LD    A,(RED)
1300    ADD   A,8
1310    LD    (RED),A
1320    LD    A,(REB)
1330    LD    B,A
1340    LD    A,(SA)
1350    ADD   A,B
1360    LD    C,A
1370    LD    B,0
1380    LD    HL,(REH)
1390    ADD   HL,BC
1400    LD    (REH),HL
1410    POP   AF
1420    JR    MD2
1430NEX:LD    BC,(REC);ビットパタ−ンカクノウ
1440    LD    IX,D1
1450    LD    HL,(REH)
1460L3: PUSH  IX
1470    POP   DE
1480    PUSH  BC
1490    LD    C,B
1500    LD    B,0
1510    LDIR
1520    LD    A,(SA)
1530    LD    C,A
1540    LD    B,0
1550    ADD   HL,BC
1560    LD    C,32
1570    ADD   IX,BC
1580    POP   BC
1590    DEC   C
1600    DEC   C
1610    INC   C
1620    JR    NZ,L3
1630UME:PUSH  IX;ゲダンヲ0マタハ255デウメル
1640    POP   HL
1650JU: LD    (HL),0;0マタハ255
1660    INC   HL
1670    DJNZ  JU
1680ZA: LD    A,(RED);ハイチザヒョウキメル(Y)
1690    LD    B,1
1700    ADD   A,8
1710L4: CP    8
1720    JR    C,NE2
1730    INC   B
1740    SUB   8
1750    JR    L4
1760NE2:LD    C,A;ビットパタ−ンスライド
1770    LD    (ZU),BC
1780    OR    A
1790    JR    Z,PU2
1800    LD    B,A
1810L5: PUSH  BC
1820    LD    A,(REB)
1830    LD    B,A
1840    LD    IX,D1
1850L6: LD    A,(REC)
1860    LD    C,A
1870    SCF
1880JU2:DB    3FH;CCF=3FH/NOP=00H
1890    RL    (IX)
1900    RL    (IX+32)
1910    DEC   C
1920    JR    Z,SAI
1930    RL    (IX+64)
1940    DEC   C
1950    JR    Z,SAI
1960    RL    (IX+96)
1970    DEC   C
1980    JR    Z,SAI
1990    INC   IX
2000    RL    (IX+127)
2010    JR    TB
2020SAI:INC   IX
2030TB: DJNZ  L6
2040    POP   BC
2050    DJNZ  L5
2060PU2:LD    A,(YZA);キャラPUTアドレスケッテイ(Y)
2070    LD    B,A
2080    LD    HL,V1−288
2090    LD    DE,144
2100L7: ADD   HL,DE
2110    DJNZ  L7
2120    LD    A,(RED)
2130    CP    −7
2140    JR    C,PU3
2150    ADD   HL,DE
2160    JR    PU5
2170PU3:OR    A
2180    JR    Z,PU5
2190    CP    8
2200    JR    Z,PU5
2210    CP    16
2220    JR    Z,PU5
2230    CP    24
2240    JR    Z,PU5
2250    CP    32
2260    JR    Z,PU5
2270    CP    40
2280    JR    Z,PU5
2290    LD    A,(REC)
2300    LD    B,A
2310    LD    A,(RED)
2320    CP    17
2330    JR    C,PU4
2340L8: ADD   A,8
2350    DJNZ  L8
2360    CP    48
2370    JR    NC,PU5
2380PU4:LD    A,(REC)
2390    INC   A
2400    LD    (REC),A
2410PU5:LD    A,(REE);キャラPUTアドレスケッテイ(X)
2420    LD    C,A
2430    LD    B,0
2440    ADD   HL,BC
2450    LD    DE,D1
2460    LD    A,(RED)
2470    CP    −7
2480    JR    C,PU6
2490    LD    DE,D1+32
2500PU6:LD    A,(REC)
2510    LD    B,A
2520L9: PUSH  BC
2530    LD    A,(REB)
2540    LD    B,A
2550    PUSH  HL
2560    PUSH  DE
2570L10:LD    A,(DE)
2580JU3:OR    (HL);OR=0B6H/AND=0A6H
2590    LD    (HL),A
2600    INC   HL
2610    INC   DE
2620    DJNZ  L10
2630    LD    C,32
2640    POP   HL
2650    ADD   HL,BC
2660    PUSH  HL
2670    POP   DE
2680    LD    C,144
2690    POP   HL
2700    ADD   HL,BC
2710    POP   BC
2720    DJNZ  L9
2730    POP   HL
2740    POP   DE
2750    POP   BC
2760    RET
2770;=========================
2780; カソウVRAMニマスクパタ−ン&キャラPUT
2790;=========================
2800MUS:CALL  MU2;63DH
2810    LD    A,(BOX)
2820    OR    A
2830    RET   NZ
2840    PUSH  IX
2850    CALL  HO
2860    POP   IX
2870    RET
2880;=======================
2890; カソウVRAMニマスクパタ−ンノミPUT
2900;=======================
2910MU2:PUSH  HL;64DH
2920    PUSH  IX
2930    POP   HL
2940KA: LD    A,255;プログラムカキカエ
2950    LD    (JU+1),A
2960    XOR   A
2970    LD    (JU2),A
2980    LD    A,0A6H
2990    LD    (JU3),A
3000    CALL  PUT
3010KA2:XOR   A;プログラムモドス
3020    LD    (JU+1),A
3030    LD    A,3FH
3040    LD    (JU2),A
3050    LD    A,0B6H
3060    LD    (JU3),A
3070    PUSH  HL
3080    POP   IX
3090    POP   HL
3100    RET
3110;====================
3120; カソウVRAM0クリア(ゼンタイ)
3130;====================
3140CLE:DI;675H
3150    LD    (SP1+1),SP
3160    LD    SP,V1+864
3170    LD    HL,0;”0000”デウメル
3180    LD    B,36
3190L11:PUSH  HL;24バイトズツテンソウ
3200    PUSH  HL
3210    PUSH  HL
3220    PUSH  HL
3230    PUSH  HL
3240    PUSH  HL
3250    PUSH  HL
3260    PUSH  HL
3270    PUSH  HL
3280    PUSH  HL
3290    PUSH  HL
3300    PUSH  HL
3310    DJNZ  L11
3320SP1:LD    SP,0
3330    EI
3340    RET
3350;============================
3360; カソウVRAM0クリア(ヒョウジハンイレンドウ)
3370;============================
3380CL2:CALL  WA;695H
3390    LD    B,6
3400    LD    HL,V1
3410    LD    DE,H1
3420L12:PUSH  BC
3430    PUSH  DE
3440    PUSH  HL
3450    LD    A,(DE)
3460    OR    A
3470    JR    Z,CL4
3480    SRL   A
3490    JR    NC,CL3
3500    LD    (HL),0;”00”デウメル
3510    OR    A
3520    JR    Z,CL4
3530    INC   HL
3540CL3:LD    C,A
3550    LD    B,0
3560    ADD   HL,BC
3570    ADD   HL,BC
3580    LD    B,A
3590    DI
3600    LD    (SP2+1),SP
3610    LD    SP,HL
3620    LD    HL,0;”0000”デウメル
3630L13:PUSH  HL
3640    DJNZ  L13
3650SP2:LD    SP,0
3660    EI
3670CL4:POP   HL
3680    LD    DE,144
3690    ADD   HL,DE
3700    POP   DE
3710    INC   DE
3720    POP   BC
3730    DJNZ  L12
3740    RET
3750;=========================
3760; VRAMヒョウジ(カソウVARMヲテンソウ)
3770;=========================
3780HYO:CALL  WA;6D2H
3790HY1:LD    A,(790DH)
3800    OR    A
3810    JR    Z,HY2
3820    CALL  0BFEBH;スクロ−ルUP
3830    JR    HY1
3840HY2:LD    IX,H1
3850    LD    D,A
3860    LD    E,6
3870    LD    C,41H
3880    LD    HL,V1
3890L14:PUSH  HL
3900    LD    A,(IX)
3910    OR    A
3920    JR    Z,SA2
3930ADR:LD    A,0B0H
3940    ADD   A,D
3950    AND   0B7H
3960    OUT   (40H),A
3970    LD    A,10H
3980    OUT   (40H),A
3990    XOR   A
4000    OUT   (40H),A
4010    LD    B,(IX)
4020    OTIR
4030SA2:LD    A,(ADR+1)
4040    INC   A
4050    LD    (ADR+1),A
4060    POP   HL
4070    PUSH  DE
4080    LD    DE,144
4090    ADD   HL,DE
4100    POP   DE
4110    INC   IX
4120    DEC   E
4130    JR    NZ,L14
4140    LD    A,0B0H
4150    LD    (ADR+1),A
4160    RET
4170WA: LD    A,144;ヒョウジハンイハミダシチェック
4180    LD    HL,H1
4190    LD    B,6
4200L15:CP    (HL)
4210    JR    NC,WA2
4220    POP   AF;ハミダシテイタラSPズラシテモドル
4230    RET
4240WA2:INC   HL
4250    DJNZ  L15
4260    RET
4270;==================
4280; カクシュ デ−タ
4290;==================
4300BOX:DB    0;ハンイナイカ?;72FH
4310BO2:DB    0,0;オフセットゴノザヒョウ;730H
4320REC:DB    0;Cレジスタホゾン;732H
4330REB:DB    0;Bレジスタホゾン;733H
4340REE:DB    0;Eレジスタホゾン;734H
4350RED:DB    0;Dレジスタホゾン;735H
4360REH:DW    0;HLレジスタホゾン;736H
4370SA: DB    0;ヨコハバノサ;738H
4380ZU: DB    0;ズラスザヒョウ;739H
4390YZA:DB    0;PUTザヒョウキテン(Y);73AH
4400D1: DS    32*5;ビットパタ−ンテンソウバショ;73BH
4410YO2:DS    5;ヨビ;7DBH
4420;==================
4430; OBJECT:100H−7DFH 
4440; ラベル:87コ
4450; 2023/11/18 Ver.
4460;==================
========================
  copyright(c)2022-2024 咳止組(咳めぐ)
========================


 FOR G850/G850S/G850V/G850VS  lzh形式   zip形式 
 FOR E200/G801/G802/G803/G805 
     G811/G813/G815/G820/G830 
非対応

ゲーム一覧に戻る  TOPページへ戻る
 
inserted by FC2 system