CYCLES 890P

2009年3月3日

PJ'94年4月号に載ってたMOR氏のE200シリーズの「CYCLES」をFX-890Pシリーズに移植しました。
残念ながら私はE200系を持っているのに(作者怠慢のゆえ)、オリジナルの移植版(E200版)をプレイしたことはありません。 「おそらくこんなゲームなんだろうなぁ」と仮定して、強引に移植しました。MORさん怒らないでくださいねっ!

ちなみにタイトルの「890P」はFX-890P上で制作したということで付けました。もちろん、Z-1GRでも遊べます。

入力方法

すべて、マシン語のゲームです。まず、BASICかCALモードから

CLEAR 1024,&HA4D,6144

としてマシン語エリアを確保して、「CYCLES.BIN」を転送してください。「CYCLES.BAS」を転送、実行してもかまいません。
実行は2000H番地なのでBASICで、

10 DEFSEG=0:CALL&H2000

として使うと便利です。

遊び方

ルール

矢印型のブロックが左から流れてくるので、「8」、「2」で上下移動、「6」で加速させブロックを積んでいきます。
ブロックはいっぺんに2つ流れてくるので「A」で左右を入れ替えます。「S」で矢印の向きを時計回りに回転させます。
矢印をどうしたらいいのかって言うと「サイクルにする」、つまり、1つの「輪っか」にすればいいのです。
このとき、図1の(3)のように矢印を向かい合わせてもサイクルだと認められます(簡単に消せるのでおすすめです)。
サイクルになったブロックは当然消えます。
このとき、得点はブロックの数や連鎖数によって高くなります。
さらに、流れてくるブロックを積むたびに得点が....加算されません。(^^;)

プライマー

上下左右のブロックの他に「プライマー(P)」(50回に1回登場)というのがあります。
このブロックは矢印の通り道に沿ってブロックを全部消してってくれるという、お助けブロックです。
なお、プライマーで消したブロックは得点にはなりませんが、その後に連鎖的に消えるブロックについては、得点になります。

ポーズ

いつものように、ゲーム中は「P」でPAUSE、「RET」でPAUSE解除です。 PAUSE中にも現在の得点が表示されます。

開発言語

今回からMASMを使うようになりました。なぜか、ポケコンのアセンブラでアセンブルできないことがあるので、開発環境を変えました。
とはいっても、MASM(Ver3.00)は中学校の先生にもらったパソコンのおまけみたいなMS-DOS Ver3.1の付属品。おまけにマニュアルがない....
ですから、ポケコンではアセンブルできません、とはいっても、ちょっといじれはアセンブルできますが。
MASMはいいですよ。SAL AL,3をちゃんとアセンブルしてくれるし、アセンブルは速いし。

参考文献

MOR:「CYCLES」、PJ'94年4月号P.62

---------------------------------------------------------------------
図1:サイクルの例

(1)   (2)    (3)

→↓   →→→↓  →←
↑←   ↑← ↓
↑←←
---------------------------------------------------------------------

プログラムリスト

100 CLS:CLEAR:L=1000:FOR I=&H2000 TO &H2942 STEP 8
110 READ A$:C=0:LOCATE 0,0:PRINT "LINE:";STR$(L)
120 FOR J=0 TO 7
130 P$=MID$(A$,J*2+1,2):IF P$="##" THEN 150
140 P=VAL("&H"+P$):POKE I+J,P:C=C+P*(J+1)
150 NEXT:READ A$:IF VAL("&H"+A$)-(C AND 255) THEN PRINT "ERROR IN ";L:END
160 L=L+10:NEXT
170 PRINT "COMPLETED END!":END
1000 DATA 33FF8EDFB410CD41,DE
1010 DATA BE7327B800A08EC0,9B
1020 DATA B023AAB035AAB204,B7
1030 DATA B021AA8AC2AAB022,BE
1040 DATA AAB003AAB020AAB9,59
1050 DATA 1200ACC0E804AA47,94
1060 DATA E2F8FEC247B021AA,8E
1070 DATA 8AC2AAB022AAB003,5A
1080 DATA AAB020AAB1128A64,D9
1090 DATA EEACC1E804AA47E2,3A
1100 DATA F580FA1075DC83EE,99
1110 DATA 12B203FEC247B021,C3
1120 DATA AA8AC2AAB022AAB0,0E
1130 DATA 23AAB020AAB1128A,4D
1140 DATA 64EEACC1E804AA47,C6
1150 DATA E2F580FA1075DC47,7E
1160 DATA B023AAB075AAB020,C9
1170 DATA AA8EC1BB0903BF2A,BD
1180 DATA 29E8F404E80D06B8,A5
1190 DATA 1000E83B06248074,CA
1200 DATA F3B410CD41B95000,8A
1210 DATA 33C08EC0BF4C29F3,97
1220 DATA AAA24629A24729C6,87
1230 DATA 06402A33A3432AA3,CF
1240 DATA 452AB20C32FFB3FE,A8
1250 DATA E80D04FEC30ADB75,B6
1260 DATA F7FEC780FF0274F9,43
1270 DATA 80FF0575E9BB1000,C0
1280 DATA E8F503FEC780FF05,D7
1290 DATA 75F6BB1401BF2329,9E
1300 DATA E8950433C033D2E8,DA
1310 DATA 1B03E86B03C60643,7A
1320 DATA 2900C606442902E8,2B
1330 DATA 5E03C606452900E8,5D
1340 DATA DA05B864008B1643,90
1350 DATA 2A83FA007515A145,74
1360 DATA 2AB93200F7F13DC8,96
1370 DATA 007203B8C800F7D8,36
1380 DATA 052C01A33C2AE877,24
1390 DATA 03E86805E87605E8,CE
1400 DATA 5704803E3E2A0074,A9
1410 DATA 03E8AC058A3E4429,35
1420 DATA 023E3E2A883E4429,20
1430 DATA E89105832E3C2A01,A1
1440 DATA 73D4E89305803E43,02
1450 DATA 290F74338A1E4329,F2
1460 DATA 8A3E4429E8FE0380,07
1470 DATA 7D01007522FE0643,33
1480 DATA 29803E4329017214,80
1490 DATA B3FFB7028A164A29,62
1500 DATA E84503FECB8A164B,98
1510 DATA 29E83C03E970FFE8,1F
1520 DATA 4A058A1E43298A3E,65
1530 DATA 4429E8C803A04829,7D
1540 DATA 88050ADB74078A26,80
1550 DATA 49298865FF3C0B75,1F
1560 DATA 568A1E43298A3E44,AB
1570 DATA 29E8A903C60502B2,9A
1580 DATA 05E80403B90020E2,7A
1590 DATA FEFEC280FA0B75F1,1F
1600 DATA E892038A05C60500,1D
1610 DATA 0AC075028AC68AF0,8D
1620 DATA 32E48BF88A8D1B27,70
1630 DATA 8AAD202702D902FD,F6
1640 DATA 80FB00720F80FB0F,DE
1650 DATA 770A80FF00720580,D6
1660 DATA FF0476BBE8B601E8,68
1670 DATA 500033C9E2FEBB00,88
1680 DATA 02E85103803D0075,67
1690 DATA 03E9D1FEB20532FF,2E
1700 DATA 32DBE8A30247FEC3,EA
1710 DATA 80FB1075F5FEC780,A8
1720 DATA FF0575ECB90008E2,FD
1730 DATA FEFEC280FA0B75DE,87
1740 DATA BB0501BF3929E82F,A7
1750 DATA 03E84804B88000E8,93
1760 DATA 760480E40274F2E9,36
1770 DATA 37FEC7064B2A0100,1A
1780 DATA 33C08EC08ED8BF9C,4C
1790 DATA 29B95000F3AAC606,E0
1800 DATA 3F2A00C706412A00,79
1810 DATA 0032FF32DB53BFEC,FB
1820 DATA 29B95000F3AAE8DC,7E
1830 DATA 0281EF4C2981C7EC,A5
1840 DATA 29C605FFE8CE028A,7A
1850 DATA 0D32ED8BF98A8D1B,30
1860 DATA 278AAD202702D902,90
1870 DATA FD80FB00724A80FB,3C
1880 DATA 0F774580FF007240,E5
1890 DATA 80FF04773BE8A502,90
1900 DATA 803D00743381EF4C,B8
1910 DATA 2981C7EC29803D01,B0
1920 DATA 7426803DFFC60501,FE
1930 DATA 75BABE9C29BFEC29,96
1940 DATA B950008A050AC074,B6
1950 DATA 04FF06412A080446,66
1960 DATA 47E2F0C6063F2A01,B9
1970 DATA 5BFEC380FB107403,2B
1980 DATA E97AFFFEC780FF05,D6
1990 DATA 7403E96EFF803E3F,92
2000 DATA 2A017403E98E00BB,4D
2010 DATA 1802B22BE8F901A1,4B
2020 DATA 4B2AF7264B2AF726,80
2030 DATA 4B2AF726412A8916,CC
2040 DATA 472AA3492AB91027,78
2050 DATA F7F1E8C8008B1647,C5
2060 DATA 2AA1492A0106452A,4B
2070 DATA 1116432AB91027F7,74
2080 DATA F13DE803720DBA98,8D
2090 DATA 00B87F968916432A,9B
2100 DATA A3452AB20532FF32,41
2110 DATA DBE8F9018BF781EF,1A
2120 DATA 4C2981C79C29803D,A7
2130 DATA 007406E84A01C604,9C
2140 DATA 00FEC380FB1075E1,C7
2150 DATA FEC780FF0575D8B9,8F
2160 DATA 0030E2FEFEC280FA,D0
2170 DATA 0B75CAE81F00FF06,B7
2180 DATA 4B2AE9BBFEBB1802,56
2190 DATA B220E86B018B1643,4F
2200 DATA 2AA1452AB91027F7,A9
2210 DATA F1E84900C332FFB3,28
2220 DATA 01E8A101803D0075,4E
2230 DATA 0E8ACB32ED8A45FF,03
2240 DATA 88054FE2F8880DFE,5A
2250 DATA C380FB1075E3FEC7,B9
2260 DATA 80FF0575DAE80100,1A
2270 DATA C3BF4C2932FF32DB,F3
2280 DATA 8A15E8D30047FEC3,6C
2290 DATA 80FB1075F3FEC780,9E
2300 DATA FF0575EAC3B319B7,78
2310 DATA 0252B164F6F18AD0,03
2320 DATA E83C008AC432E4B1,4C
2330 DATA 0AF6F18AD0E82F00,BA
2340 DATA 8AD4E82A005A8BC2,8B
2350 DATA 33D2B9E803F7F192,A2
2360 DATA E81C00B164F6F18A,83
2370 DATA D0E813008AC432E4,A1
2380 DATA B10AF6F18AD0E806,85
2390 DATA 008AD4E80100C380,8A
2400 DATA C230E8C300FEC3C3,47
2410 DATA A04A29A24829A04B,4D
2420 DATA 29A24929E839008A,1A
2430 DATA F2E8340081E20303,5C
2440 DATA 81C2010188164A29,86
2450 DATA 88364B29FE0E402A,D3
2460 DATA 750FC606402A32C6,C7
2470 DATA 064A290BC6064B29,98
2480 DATA 00B3FEB702B200E8,B2
2490 DATA 2E00FEC3E82900C3,CA
2500 DATA 505351B8DB02BB83,51
2510 DATA 0333C9B20A03C9D0,CF
2520 DATA E4D0D0720203CB80,65
2530 DATA EA0175F187D9891E,77
2540 DATA B4248AD7595B58C3,55
2550 DATA 60061E80C30233FF,FE
2560 DATA 8EDFB800A08EC0B0,A8
2570 DATA 21AA8AC3240F0406,79
2580 DATA AAB022AA8AC7D0E7,5C
2590 DATA C0E00202C7D0E380,86
2600 DATA E32002C3FEC0AA32,E1
2610 DATA F6D1E28BCAD1E203,88
2620 DATA D181C225278BF2B9,18
2630 DATA 0600B020AAAC535B,0D
2640 DATA AA4FE2F91F0761C3,56
2650 DATA 60061E33C08ED8B4,2E
2660 DATA 3ACD418CC08ED88B,1B
2670 DATA F780EA2032F6C1E2,4A
2680 DATA 0303F2B800A08EC0,61
2690 DATA 33FFB021AA8AC324,C8
2700 DATA 0F0406AAB022AA8A,03
2710 DATA C7C0E003F6C31074,63
2720 DATA 020420AAB020AAB9,B0
2730 DATA 0700AC535BAA4FE2,53
2740 DATA F91F0761C35053C0,C4
2750 DATA E70402DF32FF8BFB,0A
2760 DATA B84C2903F85B58C3,51
2770 DATA 608A15470AD27407,51
2780 DATA E895FFFEC3EBF261,FE
2790 DATA C38A0E4529C6063E,A0
2800 DATA 2A00B80001E83001,1F
2810 DATA 251000742EFE0645,41
2820 DATA 29803E4529327223,26
2830 DATA C606452900803E44,17
2840 DATA 290074178A1E4329,64
2850 DATA 8A3E4429FECFE8A4,BE
2860 DATA FF803D007505C606,B7
2870 DATA 3E2AFFB80001E8F7,85
2880 DATA 00254000742EFE06,84
2890 DATA 4529803E45293272,4C
2900 DATA 23C606452900803E,12
2910 DATA 44290474178A1E43,0B
2920 DATA 298A3E4429FEC7E8,79
2930 DATA 6BFF803D007505C6,EE
2940 DATA 063E2A01B80002E8,EA
2950 DATA BE002540007416FE,6F
2960 DATA 064529803E452914,9E
2970 DATA 720BC606452900C7,79
2980 DATA 063C2A00003A0E45,E2
2990 DATA 297505C606452900,15
3000 DATA B80200E892002510,B9
3010 DATA 007419803E462900,2C
3020 DATA 7517C606462901A0,68
3030 DATA 482986064929A248,55
3040 DATA 29EB0690C6064629,85
3050 DATA 00B80400E8690025,A2
3060 DATA 0800742A803E4729,39
3070 DATA 007528C606472901,69
3080 DATA 803E48290B741CA0,2B
3090 DATA 48298A2649292503,4E
3100 DATA 03050101A2482988,4D
3110 DATA 264929EB0690C606,F7
3120 DATA 472900C3B80100E8,83
3130 DATA 2E0032C4A8417404,EE
3140 DATA B47FCD41C3B84000,FC
3150 DATA E81D0024027418B8,DC
3160 DATA 4000E81300240275,D2
3170 DATA F6E8D8FFB88000E8,22
3180 DATA 060080E40274F2C3,8E
3190 DATA BA0002EFE80500BA,F2
3200 DATA 0202EDC351B90900,03
3210 DATA E2FE59C38A164829,6B
3220 DATA 8A364929E80700C3,3F
3230 DATA 33D2E80100C38A1E,DB
3240 DATA 43298A3E4429E8CF,45
3250 DATA FD80FB00750580FF,CD
3260 DATA 027507FECB8AD6E8,46
3270 DATA BEFDC300000100FF,FF
3280 DATA 00FF000100000000,02
3290 DATA 000000081C2A0808,20
3300 DATA 0008043E04080008,98
3310 DATA 082A1C080008103E,60
3320 DATA 10080000000C0C00,BC
3330 DATA 00000C12120C0000,0E
3340 DATA 1E12121E001E2121,93
3350 DATA 21211E3F21212121,13
3360 DATA 3F0000000000003C,1F
3370 DATA 223C2020003D3D00,93
3380 DATA 2F2F000000000001,95
3390 DATA 0303070707070703,D0
3400 DATA 0100000000001F70,5A
3410 DATA E0C0808080000000,60
3420 DATA 000183FC00000000,7B
3430 DATA 27E3E34141010100,EC
3440 DATA 0001018103070000,42
3450 DATA 0000E7C382C4C8C8,9B
3460 DATA D0E0E0C0C0C0C0F0,30
3470 DATA 00000000830E1C38,67
3480 DATA 7070F0E0E0E0E060,60
3490 DATA 301F00000000E41C,8A
3500 DATA 1C08080000000001,4C
3510 DATA 0131638700000000,A8
3520 DATA FE78707070E0E0E0,8E
3530 DATA E0C0C0C1C7FF0000,81
3540 DATA 0000070303030307,8F
3550 DATA 0707070E8E8E1E7F,46
3560 DATA 00000000FFC38180,14
3570 DATA 8818F81010000206,6E
3580 DATA 1CFC00000000878E,35
3590 DATA 1C1C1E0F07030140,26
3600 DATA 4060F18F00000000,0F
3610 DATA C8783810100080C0,70
3620 DATA E0E0E0E0C0800000,80
3630 DATA 0000000000000000,00
3640 DATA 0000000101010000,0F
3650 DATA 000000001F337373,8A
3660 DATA 733A1C6ECFC7C7C7,51
3670 DATA CE78000000000386,03
3680 DATA 8E9C1C1C1C1C0F01,2F
3690 DATA 01030E1800000000,91
3700 DATA C060707173F3F3E7,62
3710 DATA E7C7860602010000,2F
3720 DATA 00003864C6C68E8E,0C
3730 DATA 8E1C1C1C383070C1,DA
3740 DATA 000000003F1E1C1C,93
3750 DATA 1C38383F38707070,78
3760 DATA F0F800000000E070,80
3770 DATA 38383870E0C00000,F0
3780 DATA 0000000000000000,00
3790 DATA 0000000000000000,00
3800 DATA 3910111214181010,B8
3810 DATA 0000000000000000,00
3820 DATA 0000C080003653E2,D9
3830 DATA 84E4000000000000,4C
3840 DATA 00000000041C0888,34
3850 DATA 0808103900000000,2C
3860 DATA 000000000000020E,7E
3870 DATA 04040404081C0000,F8
3880 DATA 0000000000000000,00
3890 DATA 3148090911224AF3,BF
3900 DATA 0000000000000000,00
3910 DATA 0000808000E02020,A0
3920 DATA 40800053434F5245,1B
3930 DATA 3A00505553482053,45
3940 DATA 50414345204B4559,BC
3950 DATA 0047414D45204F56,77
3960 DATA 455200##########,E9

ソースリスト

;******************************************************************************
;CYCLES 890P by ABCP software. Ver.1.12b
;1997 (C) COPYRIGHT BY ABCP software
;******************************************************************************

	.186
CODE	SEGMENT
	ASSUME	CS:CODE,DS:CODE,SS:CODE,ES:CODE

	ORG	0100H
START:
	ORG	2000H

;**************************************
;タイトル表示
;**************************************

TITLE:
	XOR	DI,DI
	MOV	DS,DI
	MOV	AH,10H
	INT	41H
BDISP1:
	MOV	SI,OFFSET TITLE_GRAPH
BDISP:
	MOV	AX,0A000H
	MOV	ES,AX
	MOV	AL,23H
	STOSB
	MOV	AL,35H
	STOSB
	MOV	DL,4
	MOV	AL,21H
	STOSB
	MOV	AL,DL
	STOSB
	MOV	AL,22H
	STOSB
	MOV	AL,3
	STOSB
	MOV	AL,20H
	STOSB
	MOV	CX,18
BDILP0:
	LODSB
	SHR	AL,4
	STOSB
	INC	DI
	LOOP	BDILP0
BDILP1:
	INC	DL
	INC	DI
	MOV	AL,21H
	STOSB
	MOV	AL,DL
	STOSB
	MOV	AL,22H
	STOSB
	MOV	AL,3
	STOSB
	MOV	AL,20H
	STOSB
	MOV	CL,18
BDILP2:
	MOV	AH,[SI-18]
	LODSB
	SHR	AX,4
	STOSB
	INC	DI
	LOOP	BDILP2
	CMP	DL,16
	JNZ	BDILP1
	SUB	SI,18
	MOV	DL,3
BDILP3:
	INC	DL
	INC	DI
	MOV	AL,21H
	STOSB
	MOV	AL,DL
	STOSB
	MOV	AL,22H
	STOSB
	MOV	AL,35
	STOSB
	MOV	AL,20H
	STOSB
	MOV	CL,18
BDILP4:
	MOV	AH,[SI-18]
	LODSB
	SHR	AX,4
	STOSB
	INC	DI
	LOOP	BDILP4
	CMP	DL,16
	JNZ	BDILP3
	INC	DI
	MOV	AL,23H
	STOSB
	MOV	AL,75H
	STOSB
	MOV	AL,20H
	STOSB
	MOV	ES,CX

	MOV	BX,0309H
	MOV	DI,OFFSET MOJI_PUSH_SPACE_KEY
	CALL	MOJI_PRINT
TITLE_BREAK_CHK:
	CALL	POWEROFF_CHECK
	MOV	AX,0010H
	CALL	KEY
	AND	AL,80H
	JZ	TITLE_BREAK_CHK

;**************************************
;ゲーム前の初期設定
;**************************************

INIT:
	MOV	AH,10H
	INT	41H
	MOV	CX,80
	XOR	AX,AX
	MOV	ES,AX
	MOV	DI,OFFSET BRAM
	REP	STOSB
	MOV	BYTE PTR KEY_REPEAT_2,AL
	MOV	BYTE PTR KEY_REPEAT_3,AL
	MOV	BYTE PTR UNTIL_PRIMER,51
	MOV	WORD PTR SCORE1,AX
	MOV	WORD PTR SCORE2,AX

	MOV	DL,12
	XOR	BH,BH
WALL_Y_LOOP:
	MOV	BL,-2
WALL_X_LOOP:
	CALL	PRINT
	INC	BL
	OR	BL,BL
	JNZ	WALL_X_LOOP
WALL_Y_INC:
	INC	BH
	CMP	BH,2
	JZ	WALL_Y_INC
	CMP	BH,5
	JNZ	WALL_Y_LOOP

	MOV	BX,16
WALL_BOTTOM_LOOP:
	CALL	PRINT
	INC	BH
	CMP	BH,5
	JNZ	WALL_BOTTOM_LOOP
	MOV	BX,0114H
	MOV	DI,OFFSET MOJI_SCORE
	CALL	MOJI_PRINT
	XOR	AX,AX
	XOR	DX,DX
	CALL	SCORE_PRINT
	CALL	NEXT

;**************************************
;メインルーチン
;**************************************

SET:
	MOV	BYTE PTR ARROW_X,0
	MOV	BYTE PTR ARROW_Y,2
	CALL	NEXT
	MOV	BYTE PTR KEY_REPEAT,0
DOWN_CONT:
	CALL	ARROW_PRINT

	MOV	AX,100			;スコアによって落下速度を変化
	MOV	DX,SCORE1
	CMP	DX,0
	JNZ	FASTEST
	MOV	AX,SCORE2
	MOV	CX,50
	DIV	CX
	CMP	AX,200
	JC	SLOW
	MOV	AX,200
SLOW:
	NEG	AX
	ADD	AX,300
FASTEST:
	MOV	WORD PTR DOWN_WAIT,AX

DOWN_LOOP:
	CALL	RND
	CALL	POWEROFF_CHECK
	CALL	PAUSE_CHECK
	CALL	CHK			;Yの変化量を返す
	CMP	BYTE PTR DELTA_Y,0	;DELTA_Y=Yの変化量
	JZ	RE_CHR_PUT
	CALL	ARROW_DISPRINT
RE_CHR_PUT:
	MOV	BH,ARROW_Y
	ADD	BH,BYTE PTR DELTA_Y
	MOV	BYTE PTR ARROW_Y,BH
	CALL	ARROW_PRINT
DOWN_LOOP_END:
	SUB	WORD PTR DOWN_WAIT,1
	JNC	DOWN_LOOP
	CALL	ARROW_DISPRINT

	CMP	BYTE PTR ARROW_X,15
	JZ	BOTTOM
	MOV	BL,ARROW_X
	MOV	BH,ARROW_Y
	CALL	XY
	CMP	BYTE PTR [DI+1],0
	JNZ	BOTTOM

	INC	BYTE PTR ARROW_X
	CMP	BYTE PTR ARROW_X,1
	JC	TO_DOWN_CONT
	MOV	BL,-1
	MOV	BH,2
	MOV	DL,NEXT_ARROW_DERECTION
	CALL	PRINT
	DEC	BL
	MOV	DL,NEXT_ARROW_DERECTION2
	CALL	PRINT
TO_DOWN_CONT:
	JMP	DOWN_CONT

BOTTOM:					;これ以上落ちられないとき
	CALL	ARROW_PRINT
	MOV	BL,ARROW_X
	MOV	BH,ARROW_Y
	CALL	XY
	MOV	AL,ARROW_DERECTION
	MOV	[DI],AL
	OR	BL,BL
	JZ	BOTTOM_2
	MOV	AH,ARROW_DERECTION2
	MOV	[DI-1],AH
BOTTOM_2:
	CMP	AL,11
	JNZ	VANISHING

;**************************************
;プライマーの処理
;**************************************

PRIMER:
	MOV	BL,ARROW_X
	MOV	BH,ARROW_Y
	CALL	XY
	MOV	BYTE PTR [DI],2
PRIMER_LOOP:
	MOV	DL,5
PRIMER_ANIME_LOOP:
	CALL	PRINT
	MOV	CX,02000H
	LOOP	$
	INC	DL
	CMP	DL,11
	JNZ	PRIMER_ANIME_LOOP
	CALL	XY
	MOV	AL,[DI]
	MOV	BYTE PTR [DI],0
	OR	AL,AL
	JNZ	PRIMER_MOVE
	MOV	AL,DH
PRIMER_MOVE:
	MOV	DH,AL
	XOR	AH,AH
	MOV	DI,AX
	MOV	CL,[OFFSET VECTOR_X+DI]
	MOV	CH,[OFFSET VECTOR_Y+DI]
	ADD	BL,CL			;座標の変化
	ADD	BH,CH
	CMP	BL,0
	JC	PRIMER_E
	CMP	BL,15
	JA	PRIMER_E
	CMP	BH,0
	JC	PRIMER_E
	CMP	BH,4
	JNA	PRIMER_LOOP
PRIMER_E:
	CALL	GRAVITY			;ブロックの落下
VANISHING:
	CALL	VANISH
OVER_CHECK:
	XOR	CX,CX
	LOOP	$
	MOV	BX,0200H
	CALL	XY
	CMP	BYTE PTR [DI],0
	JNZ	END
	JMP	SET

;**************************************
;ゲームオーバー
;**************************************

END:
	MOV	DL,5
END_LOOP:
	XOR	BH,BH
CLS_Y:
	XOR	BL,BL
CLS_X:
	CALL	PRINT
	INC	DI
	INC	BL
	CMP	BL,16
	JNZ	CLS_X
	INC	BH
	CMP	BH,5
	JNZ	CLS_Y
	MOV	CX,0800H
	LOOP	$
	INC	DL
	CMP	DL,11
	JNZ	END_LOOP

	MOV	BX,0105H
	MOV	DI,OFFSET MOJI_GAMEOVER
	CALL	MOJI_PRINT
END_CR_WAIT:
	CALL	POWEROFF_CHECK
	MOV	AX,0080H
	CALL	KEY
	AND	AH,02H
	JZ	END_CR_WAIT
	JMP	INIT

;**************************************
;消去判定
;**************************************

VANISH:
	MOV	WORD PTR RENSA_NUMBER,1
VANISH_START:
	XOR	AX,AX
	MOV	ES,AX
	MOV	DS,AX
	MOV	DI,OFFSET VANISH_BLOCK
	MOV	CX,80
	REP	STOSB
VANISH_1:
	MOV	BYTE PTR [VANISH_THIS_TIME],0
	MOV	WORD PTR VANISH_NUMBER,0
	XOR	BH,BH
VANISH_Y_LOOP:
	XOR	BL,BL
VANISH_X_LOOP:
	PUSH	BX
	MOV	DI,OFFSET VANISH_CHECK_WORK
	MOV	CX,80
	REP	STOSB
	CALL	XY
	SUB	DI,OFFSET BRAM
	ADD	DI,OFFSET VANISH_CHECK_WORK
	MOV	BYTE PTR [DI],-1	;輪の最初にフラグ
VANISH_MAIN_LOOP:
	CALL	XY
	MOV	CL,[DI]
	XOR	CH,CH
	MOV	DI,CX
	MOV	CL,[OFFSET VECTOR_X+DI]
	MOV	CH,[OFFSET VECTOR_Y+DI]
	ADD	BL,CL
	ADD	BH,CH
	CMP	BL,0
	JC	VANISH_E
	CMP	BL,15
	JA	VANISH_E
	CMP	BH,0
	JC	VANISH_E
	CMP	BH,4
	JA	VANISH_E
	CALL	XY			;そのマスが空っぽか
	CMP	BYTE PTR [DI],0
	JZ	VANISH_E
	SUB	DI,OFFSET BRAM		;一回通ったところならダメ
	ADD	DI,OFFSET VANISH_CHECK_WORK
	CMP	BYTE PTR [DI],1
	JZ	VANISH_E
	CMP	BYTE PTR [DI],-1
	MOV	BYTE PTR [DI],1		;「通った」というフラグを立てる
	JNZ	VANISH_MAIN_LOOP
	MOV	SI,OFFSET VANISH_BLOCK
	MOV	DI,OFFSET VANISH_CHECK_WORK
	MOV	CX,80
TRANS_LOOP:
	MOV	AL,[DI]
	OR	AL,AL
	JZ	TRANS_SCORE
	INC	WORD PTR VANISH_NUMBER	;VANISH_NUMBER=消したブロック数の2乗
TRANS_SCORE:
	OR	[SI],AL
	INC	SI
	INC	DI
	LOOP	TRANS_LOOP
	MOV	BYTE PTR [VANISH_THIS_TIME],1
VANISH_E:
	POP	BX
	INC	BL
	CMP	BL,16
	JZ	$+5
	JMP	VANISH_X_LOOP
	INC	BH
	CMP	BH,5
	JZ	$+5
	JMP	VANISH_Y_LOOP
	CMP	BYTE PTR [VANISH_THIS_TIME],1
	JZ	$+5
	JMP	VANISH_NO_ANIME
	MOV	BX,0218H
	MOV	DL,'+'
	CALL	LCDC

	MOV	AX,RENSA_NUMBER
	MUL	WORD PTR RENSA_NUMBER
	MUL	WORD PTR RENSA_NUMBER
	MUL	WORD PTR VANISH_NUMBER
	MOV	WORD PTR SCORE_PLUS1,DX
	MOV	WORD PTR SCORE_PLUS2,AX
	MOV	CX,10000
	DIV	CX
	CALL	SCORE_PRINT
	MOV	DX,WORD PTR SCORE_PLUS1
	MOV	AX,WORD PTR SCORE_PLUS2
	ADD	SCORE2,AX
	ADC	SCORE1,DX
	MOV	CX,10000
	DIV	CX
	CMP	AX,1000
	JC	NOT_OVERFLOW
	MOV	DX,0098H
	MOV	AX,967FH
	MOV	SCORE1,DX
	MOV	SCORE2,AX
NOT_OVERFLOW:
	MOV	DL,5
ANIME_CHR_LOOP:
	XOR	BH,BH
ANIME_Y_LOOP:
	XOR	BL,BL
ANIME_X_LOOP:
	CALL	XY
	MOV	SI,DI
	SUB	DI,OFFSET BRAM
	ADD	DI,OFFSET VANISH_BLOCK
	CMP	BYTE PTR [DI],0
	JZ	ANIME_LOOP_END
	CALL	PRINT
	MOV	BYTE PTR [SI],0		;BRAMから消す。
ANIME_LOOP_END:
	INC	BL
	CMP	BL,16
	JNZ	ANIME_X_LOOP
	INC	BH
	CMP	BH,5
	JNZ	ANIME_Y_LOOP
	MOV	CX,03000H
	LOOP	$
	INC	DL
	CMP	DL,11
	JNZ	ANIME_CHR_LOOP
	CALL	GRAVITY
	INC	WORD PTR RENSA_NUMBER
	JMP	VANISH_START
VANISH_NO_ANIME:
	MOV	BX,0218H
	MOV	DL,' '
	CALL	LCDC
	MOV	DX,SCORE1
	MOV	AX,SCORE2
	MOV	CX,10000
	DIV	CX
	CALL	SCORE_PRINT
	RET

;**************************************
;重力が働きます
;**************************************

GRAVITY:
	XOR	BH,BH
GRAVITY_Y_LOOP:
	MOV	BL,1
GRAVITY_X_LOOP:
	CALL	XY
	CMP	BYTE PTR [DI],0
	JNZ	GRAVITY_LOOP_END
	MOV	CL,BL
	XOR	CH,CH
GRAVITY_DOWN_LOOP:
	MOV	AL,[DI-1]
	MOV	[DI],AL
	DEC	DI
	LOOP	GRAVITY_DOWN_LOOP
	MOV	[DI],CL			;先頭を0にする。
GRAVITY_LOOP_END:
	INC	BL
	CMP	BL,16
	JNZ	GRAVITY_X_LOOP
	INC	BH
	CMP	BH,5
	JNZ	GRAVITY_Y_LOOP
	CALL	BRAM_PUT
	RET

;**************************************
;画面表示のサブルーチン
;**************************************

BRAM_PUT:
	MOV	DI,OFFSET BRAM
	XOR	BH,BH
BRAM_PUT_Y:
	XOR	BL,BL
BRAM_PUT_X:
	MOV	DL,[DI]
	CALL	PRINT
	INC	DI
	INC	BL
	CMP	BL,16
	JNZ	BRAM_PUT_X
	INC	BH
	CMP	BH,5
	JNZ	BRAM_PUT_Y
	RET

;**************************************
;スコア表示
;**************************************

SCORE_PRINT:
	MOV	BL,25
	MOV	BH,2
	PUSH	DX
	MOV	CL,100
	DIV	CL
	MOV	DL,AL
	CALL	SCORE_NUMBER
	MOV	AL,AH
	XOR	AH,AH
	MOV	CL,10
	DIV	CL
	MOV	DL,AL
	CALL	SCORE_NUMBER
	MOV	DL,AH
	CALL	SCORE_NUMBER
	POP	DX

	MOV	AX,DX
	XOR	DX,DX
	MOV	CX,1000
	DIV	CX
	XCHG	AX,DX
	CALL	SCORE_NUMBER
	MOV	CL,100
	DIV	CL
	MOV	DL,AL
	CALL	SCORE_NUMBER
	MOV	AL,AH
	XOR	AH,AH
	MOV	CL,10
	DIV	CL
	MOV	DL,AL
	CALL	SCORE_NUMBER
	MOV	DL,AH
	CALL	SCORE_NUMBER
	RET

SCORE_NUMBER:
	ADD	DL,48
	CALL	LCDC
	INC	BL
	RET

;**************************************
;NEXT表示ルーチン
;**************************************

NEXT:
	MOV	AL,NEXT_ARROW_DERECTION
	MOV	ARROW_DERECTION,AL
	MOV	AL,NEXT_ARROW_DERECTION2
	MOV	ARROW_DERECTION2,AL
	CALL	RND
	MOV	DH,DL
	CALL	RND
	AND	DX,0303H
	ADD	DX,0101H
	MOV	BYTE PTR NEXT_ARROW_DERECTION,DL
	MOV	BYTE PTR NEXT_ARROW_DERECTION2,DH
	DEC	BYTE PTR UNTIL_PRIMER
	JNZ	NEXT_RET
	MOV	BYTE PTR UNTIL_PRIMER,50
	MOV	BYTE PTR NEXT_ARROW_DERECTION,11
	MOV	BYTE PTR NEXT_ARROW_DERECTION2,0
NEXT_RET:
	MOV	BL,-2
	MOV	BH,2
	MOV	DL,0
	CALL	PRINT
	INC	BL
	CALL	PRINT
	RET

;**************************************
;乱数発生
;**************************************

RND:
	PUSH	AX
	PUSH	BX
	PUSH	CX
RNDDT:
	MOV	AX,02DBH
	MOV	BX,0383H
	XOR	CX,CX
	MOV	DL,10
RNDLP:
	ADD	CX,CX
	SAL	AH,1
	RCL	AL,1
	JC	RNDSK
	ADD	CX,BX
RNDSK:
	SUB	DL,1
	JNZ	RNDLP
	XCHG	BX,CX
	MOV	WORD PTR [RNDDT+1],BX
	MOV	DL,BH
	POP	CX
	POP	BX
	POP	AX
	RET

;**************************************
;1文字表示
;**************************************

PRINT:
	PUSHA
	PUSH	ES
	PUSH	DS
	ADD	BL,2
	XOR	DI,DI
	MOV	DS,DI
	MOV	AX,0A000H
	MOV	ES,AX
	MOV	AL,21H
	STOSB
	MOV	AL,BL
	AND	AL,0FH
	ADD	AL,6
	STOSB
	MOV	AL,22H
	STOSB
	MOV	AL,BH
	SAL	BH,1
	SAL 	AL,2
	ADD	AL,BH
	SAL	BL,1
	AND	BL,20H
	ADD	AL,BL
	INC	AL
	STOSB
	XOR	DH,DH
	SAL	DX,1
	MOV	CX,DX
	SAL	DX,1
	ADD	DX,CX
	ADD	DX,OFFSET ARROW_FONT
	MOV	SI,DX
	MOV	CX,6
WRITE_S:
	MOV	AL,20H
	STOSB
WRITE_L:
	LODSB
	PUSH	BX
	POP	BX
	STOSB
	DEC	DI
	LOOP	WRITE_L
	POP	DS
	POP	ES
	POPA
	RET

LCDC:
	PUSHA
	PUSH	ES
	PUSH	DS
	XOR	AX,AX
	MOV	DS,AX
	MOV	AH,3AH
	INT	41H
	MOV	AX,ES
	MOV	DS,AX
	MOV	SI,DI
	SUB	DL,32
	XOR	DH,DH
	SHL	DX,3
	ADD	SI,DX
	MOV	AX,0A000H
	MOV	ES,AX
	XOR	DI,DI
	MOV	AL,21H
	STOSB
	MOV	AL,BL
	AND	AL,0FH
	ADD	AL,6
	STOSB
	MOV	AL,22H
	STOSB
	MOV	AL,BH
	SHL	AL,3
	TEST	BL,10H
	JE	OK
	ADD	AL,20H
OK:
	STOSB
	MOV	AL,20H
	STOSB
	MOV	CX,7
P_LP:
	LODSB
	PUSH	BX
	POP	BX
	STOSB
	DEC	DI
	LOOP	P_LP
	POP	DS
	POP	ES
	POPA
	RET

;**************************************
;仮想配列変数
;**************************************

XY:
	PUSH	AX
	PUSH	BX
	SHL	BH,4
	ADD	BL,BH
	XOR	BH,BH
	MOV	DI,BX
	MOV	AX,OFFSET BRAM
	ADD	DI,AX
	POP	BX
	POP	AX
	RET

;**************************************
;文字列表示
;**************************************

MOJI_PRINT:
	PUSHA
MOJI_PRINT_LOOP:
	MOV	DL,[DI]
	INC	DI
	OR	DL,DL
	JZ	MOJI_PRINT_END
	CALL	LCDC
	INC	BL
	JMP	SHORT MOJI_PRINT_LOOP
MOJI_PRINT_END:
	POPA
	RET

;**************************************
;キー入力チェック
;**************************************

CHK:
	MOV	CL,BYTE PTR KEY_REPEAT
	MOV	BYTE PTR DELTA_Y,0
	MOV	AX,0100H		;8
	CALL	KEY
	AND	AX,0010H
	JZ	CHK_A
	INC	BYTE PTR KEY_REPEAT
	CMP	BYTE PTR KEY_REPEAT,50
	JC	CHK_A
	MOV	BYTE PTR KEY_REPEAT,0
	CMP	BYTE PTR ARROW_Y,0
	JE	CHK_A
	MOV	BL,ARROW_X
	MOV	BH,ARROW_Y
	DEC	BH
	CALL	XY
	CMP	BYTE PTR [DI],0
	JNE	CHK_A
	MOV	BYTE PTR DELTA_Y,255
CHK_A:
	MOV	AX,0100H
	CALL	KEY
	AND	AX,0040H
	JZ	CHK_B
	INC	BYTE PTR KEY_REPEAT
	CMP	BYTE PTR KEY_REPEAT,50
	JC	CHK_B
	MOV	BYTE PTR KEY_REPEAT,0
	CMP	BYTE PTR ARROW_Y,4
	JE	CHK_B
	MOV	BL,ARROW_X
	MOV	BH,ARROW_Y
	INC	BH
	CALL	XY
	CMP	BYTE PTR [DI],0
	JNE	CHK_B
	MOV	BYTE PTR DELTA_Y,1
CHK_B:
	MOV	AX,0200H
	CALL	KEY
	AND	AX,0040H
	JZ	CHK_C
	INC	BYTE PTR KEY_REPEAT
	CMP	BYTE PTR KEY_REPEAT,20
	JC	CHK_C
	MOV	BYTE PTR KEY_REPEAT,0
	MOV	WORD PTR DOWN_WAIT,0
CHK_C:
	CMP	CL,BYTE PTR KEY_REPEAT
	JNZ	CHK_D
	MOV	BYTE PTR KEY_REPEAT,0
CHK_D:
	MOV	AX,0002H		;A
	CALL	KEY
	AND	AX,0010H
	JZ	CHK_E
	CMP	BYTE PTR KEY_REPEAT_2,0
	JNZ	CHK_F
	MOV	BYTE PTR KEY_REPEAT_2,1
	MOV	AL,BYTE PTR ARROW_DERECTION
	XCHG	AL,BYTE PTR ARROW_DERECTION2
	MOV	BYTE PTR ARROW_DERECTION,AL
	JMP	CHK_F
CHK_E:
	MOV	BYTE PTR KEY_REPEAT_2,0
CHK_F:
	MOV	AX,0004H		;S
	CALL	KEY
	AND	AX,0008H
	JZ	CHK_G
	CMP	BYTE PTR KEY_REPEAT_3,0
	JNZ	CHK_H
	MOV	BYTE PTR KEY_REPEAT_3,1
	CMP	BYTE PTR ARROW_DERECTION,11
	JZ	CHK_H
	MOV	AL,ARROW_DERECTION
	MOV	AH,ARROW_DERECTION2
	AND	AX,0303H
	ADD	AX,0101H
	MOV	ARROW_DERECTION,AL
	MOV	ARROW_DERECTION2,AH
	JMP	CHK_H
CHK_G:
	MOV	BYTE PTR KEY_REPEAT_3,0
CHK_H:
	RET

;**************************************
;キー入力のサブルーチン
;**************************************

POWEROFF_CHECK:
	MOV	AX,0001H
	CALL	KEY
	XOR	AL,AH
	TEST	AL,41H
	JZ	NOT_POWEROFF
	MOV	AH,7FH
	INT	41H
NOT_POWEROFF:
	RET

PAUSE_CHECK:
	MOV	AX,0040H		;P
	CALL	KEY
	AND	AL,02H
	JZ	PAUSE_CHECK_END
WHILE_P_PUSHED:
	MOV	AX,0040H		;P
	CALL	KEY
	AND	AL,02H
	JNZ	WHILE_P_PUSHED
UNTIL_CR_PUSH:
	CALL	POWEROFF_CHECK
	MOV	AX,0080H		;CR
	CALL	KEY
	AND	AH,02H
	JZ	UNTIL_CR_PUSH
PAUSE_CHECK_END:
	RET

KEY:
	MOV	DX,200H
	OUT	DX,AX
	CALL	K_WAIT
	MOV	DX,202H
	IN	AX,DX
	RET
K_WAIT:
	PUSH	CX
	MOV	CX,0009H
K_LOOP:
	LOOP	K_LOOP
	POP	CX
	RET

;**************************************
;矢印表示サブ
;**************************************

ARROW_PRINT:
	MOV	DL,ARROW_DERECTION
	MOV	DH,ARROW_DERECTION2
	CALL	ARROW_PRINT_MAIN
	RET
ARROW_DISPRINT:
	XOR	DX,DX
	CALL	ARROW_PRINT_MAIN
	RET

ARROW_PRINT_MAIN:
	MOV	BL,ARROW_X
	MOV	BH,ARROW_Y
	CALL	PRINT
	CMP	BL,0
	JNZ	ARROW_PRINT_0
	CMP	BH,2
	JNZ	ARROW_PRINT_RET
ARROW_PRINT_0:
	DEC	BL
	MOV	DL,DH
	CALL	PRINT
ARROW_PRINT_RET:
	RET

;**************************************
;各種データ
;**************************************

VECTOR_X:
	DB	0,0,1,0,-1
VECTOR_Y:
	DB	0,-1,0,1,0
ARROW_FONT:
	DB	0,0,0,0,0,0
	DB	008H,01CH,02AH,008H,008H,000H	;矢印(上)
	DB	008H,004H,03EH,004H,008H,000H	;矢印(右)
	DB	008H,008H,02AH,01CH,008H,000H	;矢印(下)
	DB	008H,010H,03EH,010H,008H,000H	;矢印(左)

	DB	000H,000H,00CH,00CH,000H,000H
	DB	000H,00CH,012H,012H,00CH,000H
	DB	000H,01EH,012H,012H,01EH,000H
	DB	01EH,021H,021H,021H,021H,01EH
	DB	03FH,021H,021H,021H,021H,03FH
	DB	000H,000H,000H,000H,000H,000H

	DB	03CH,022H,03CH,020H,020H,000H
	DB	03DH,03DH,000H,02FH,02FH,000H

TITLE_GRAPH:
	DB	000H,000H,000H,000H,001H,003H,003H,007H,007H
	DB	007H,007H,007H,003H,001H,000H,000H,000H,000H
	DB	000H,01FH,070H,0E0H,0C0H,080H,080H,080H,000H
	DB	000H,000H,000H,001H,083H,0FCH,000H,000H,000H
	DB	000H,027H,0E3H,0E3H,041H,041H,001H,001H,000H
	DB	000H,001H,001H,081H,003H,007H,000H,000H,000H
	DB	000H,0E7H,0C3H,082H,0C4H,0C8H,0C8H,0D0H,0E0H
	DB	0E0H,0C0H,0C0H,0C0H,0C0H,0F0H,000H,000H,000H
	DB	000H,083H,00EH,01CH,038H,070H,070H,0F0H,0E0H
	DB	0E0H,0E0H,0E0H,060H,030H,01FH,000H,000H,000H
	DB	000H,0E4H,01CH,01CH,008H,008H,000H,000H,000H
	DB	000H,001H,001H,031H,063H,087H,000H,000H,000H
	DB	000H,0FEH,078H,070H,070H,070H,0E0H,0E0H,0E0H
	DB	0E0H,0C0H,0C0H,0C1H,0C7H,0FFH,000H,000H,000H
	DB	000H,007H,003H,003H,003H,003H,007H,007H,007H
	DB	007H,00EH,08EH,08EH,01EH,07FH,000H,000H,000H
	DB	000H,0FFH,0C3H,081H,080H,088H,018H,0F8H,010H
	DB	010H,000H,002H,006H,01CH,0FCH,000H,000H,000H
	DB	000H,087H,08EH,01CH,01CH,01EH,00FH,007H,003H
	DB	001H,040H,040H,060H,0F1H,08FH,000H,000H,000H
	DB	000H,0C8H,078H,038H,010H,010H,000H,080H,0C0H
	DB	0E0H,0E0H,0E0H,0E0H,0C0H,080H,000H,000H,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	000H,001H,001H,001H,000H,000H,000H,000H,000H
	DB	000H,01FH,033H,073H,073H,073H,03AH,01CH,06EH
	DB	0CFH,0C7H,0C7H,0C7H,0CEH,078H,000H,000H,000H
	DB	000H,003H,086H,08EH,09CH,01CH,01CH,01CH,01CH
	DB	00FH,001H,001H,003H,00EH,018H,000H,000H,000H
	DB	000H,0C0H,060H,070H,071H,073H,0F3H,0F3H,0E7H
	DB	0E7H,0C7H,086H,006H,002H,001H,000H,000H,000H
	DB	000H,038H,064H,0C6H,0C6H,08EH,08EH,08EH,01CH
	DB	01CH,01CH,038H,030H,070H,0C1H,000H,000H,000H
	DB	000H,03FH,01EH,01CH,01CH,01CH,038H,038H,03FH
	DB	038H,070H,070H,070H,0F0H,0F8H,000H,000H,000H
	DB	000H,0E0H,070H,038H,038H,038H,070H,0E0H,0C0H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	039H,010H,011H,012H,014H,018H,010H,010H,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	0C0H,080H,000H,036H,053H,0E2H,084H,0E4H,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	004H,01CH,008H,088H,008H,008H,010H,039H,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	002H,00EH,004H,004H,004H,004H,008H,01CH,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	031H,048H,009H,009H,011H,022H,04AH,0F3H,000H
	DB	000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB	080H,080H,000H,0E0H,020H,020H,040H,080H,000H

MOJI_SCORE		DB	'SCORE:',0
MOJI_PUSH_SPACE_KEY	DB	'PUSH SPACE KEY',0
MOJI_GAMEOVER		DB	'GAME OVER',0

;**************************************
;ワークエリア
;**************************************

ARROW_X			DB	1 DUP(?)
ARROW_Y			DB	1 DUP(?)
KEY_REPEAT		DB	1 DUP(?)
KEY_REPEAT_2		DB	1 DUP(?)
KEY_REPEAT_3		DB	1 DUP(?)
ARROW_DERECTION		DB	1 DUP(?)
ARROW_DERECTION2	DB	1 DUP(?)
NEXT_ARROW_DERECTION	DB	1 DUP(?)
NEXT_ARROW_DERECTION2	DB	1 DUP(?)
BRAM			DB	80 DUP(?)
VANISH_BLOCK		DB	80 DUP(?)
VANISH_CHECK_WORK	DB	80 DUP(?)
DOWN_WAIT		DW	1 DUP(?)
DELTA_Y			DB	1 DUP(?)
VANISH_THIS_TIME	DB	1 DUP(?)
UNTIL_PRIMER		DB	1 DUP(?)
VANISH_NUMBER		DW	1 DUP(?)
SCORE1			DW	1 DUP(?)
SCORE2			DW	1 DUP(?)
SCORE_PLUS1		DW	1 DUP(?)
SCORE_PLUS2		DW	1 DUP(?)
RENSA_NUMBER		DW	1 DUP(?)

CODE	ENDS
	END	START

このカテゴリのページ

コメント

コメント(0件)

コメントする

トラックバック

トラックバック(0件)

トラックバック先

当サイトについて

栃木県宇都宮市在住のWeb屋さんのブログ。サイト設計からコーディング、プログラミングまで幅広く担当します。Web標準,WordPress,jQueryあたりに興味があります。≫PROFILE

Get Adobe Flash playerPlugin by wpburn.com wordpress themes