changeset 5:ff6eaa09bb56

Decode additional data and variables Decoded the keyword table, the move table for the demo game, and several variables. Also decoded several initializers. Added more mneumonic macros for several more SWI calls.
author William Astle <lost@l-w.ca>
date Sat, 25 May 2013 14:51:37 -0600
parents dc07cebba65c
children 2011ab76f008
files Makefile dod.s
diffstat 2 files changed, 212 insertions(+), 156 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Fri May 24 23:07:53 2013 -0600
+++ b/Makefile	Sat May 25 14:51:37 2013 -0600
@@ -1,2 +1,2 @@
 dod.rom: dod.s
-	lwasm --raw -o dod.rom dod.s
+	lwasm --list=dod.list --symbols --raw -o dod.rom dod.s
--- a/dod.s	Fri May 24 23:07:53 2013 -0600
+++ b/dod.s	Sat May 25 14:51:37 2013 -0600
@@ -72,14 +72,26 @@
 		fcb \1
 		endm
 
-; decode a 5 bit packed string from (X) to (U)
-decodestr	macro noexpand
-		dod S06
+; render a packed string (immediate data)
+renderstrimmp	macro noexpand
+		dod S02
+		endm
+; render a packed string from (X)
+renderstr	macro noexpand
+		dod S03
+		endm
+; render character in A
+renderchar	macro noexpand
+		dod S04
 		endm
 ; decode a 5 bit packed string from (X) to V335
 decodestrsb	macro noexpand
 		dod S05
 		endm
+; decode a 5 bit packed string from (X) to (U)
+decodestr	macro noexpand
+		dod S06
+		endm
 
 ; ROM call numbers
 POLCAT		equ 0
@@ -96,7 +108,7 @@
 
 RESVEC		equ $A027
 
-; SWI routines - some of these might not actually be used
+; SWI routines
 S00		equ 0
 S01		equ 1
 S02		equ 2
@@ -143,9 +155,9 @@
 V206		rmb 1
 V207		rmb 1
 V208		rmb 1
-V209		rmb 2
-V20B		rmb 2
-V20D		rmb 2
+V209		rmb 2				pointer to primary screen parameter block
+V20B		rmb 2				pointer to secondary screen parameter block
+V20D		rmb 2				
 V20F		rmb 2
 V211		rmb 2
 V213		rmb 1
@@ -269,19 +281,24 @@
 V311		rmb 2
 V313		rmb 32
 V333		rmb 2
-V335		rmb 1
-V336		rmb 33
+V335		rmb 34				temporary buffer used for decoding immediate packed strings
 V357		rmb 10				temporary buffer used for decoding font data
 V361		rmb 31
-V380		rmb 6
-V386		rmb 2
-V388		rmb 6
-V38E		rmb 2
-V390		rmb 2				current start offset of the text area
-V392		rmb 2				current end of offset of text area (character cell)
-V394		rmb 2				current text cursor position (character cell)
-V396		rmb 1				current screen background color mask
-V397		rmb 1				nonzero if text should NOT be rendered to secondary screen
+V380		rmb 2				screen start address of info text area
+V382		rmb 2				number of character cells in info text area
+V384		rmb 2				current cursor position in info text area
+V386		rmb 1				background colour mask for info text area
+V387		rmb 1				nonzero if info text area should not be rendered on secondary screen
+V388		rmb 2				screen start address of status line area
+V38A		rmb 2				number of character cells in status line area
+V38C		rmb 2				cursor position in status line area
+V38E		rmb 1				background colour mask for status line area
+V38F		rmb 1				nonzero if status line text should not be rendered on secondary screen
+V390		rmb 2				start offset of the command entry area
+V392		rmb 2				numer of character cells in command entry area
+V394		rmb 2				current cursor position in entry area
+V396		rmb 1				background colour mask of background area
+V397		rmb 1				nonzero if main text should not be rendered on secondary screen
 V398		rmb 43
 V3C3		rmb 17
 V3D4		rmb 20
@@ -290,7 +307,8 @@
 V9F4		rmb 9
 V9FD		rmb $10a
 VB07		rmb 10
-VB11		rmb $3f4
+VB11		rmb 4
+VB15		rmb $3f0
 VF05		equ *
 
 
@@ -377,28 +395,28 @@
 		cmpu #LDAA3
 		blo LC08C
 		ldu #V388
-		dec V2B7
+		dec V2B7				indicate nonstandard text area
 		dod S0A
-		dod S02			display copyright message
-		fcb $f8,$df,$0c,$c9
+		renderstrimmp				display copyright message
+		fcb $f8,$df,$0c,$c9			packed string "COPYRIGHT  DYNA MICRO  MCMLXXXII"
 		fcb $27,$45,$00,$02
 		fcb $65,$c1,$03,$52
 		fcb $39,$3c,$00,$68
 		fcb $da,$cc,$63,$09
 		fcb $48
-		clr <$b7
-		rts
+		clr <V2B7				reset text rendering to standard mode
+		rts					
 LC0D1		dec V277
 		bsr LC114
 		ldx #LDF10
 		dec V29E
 		dod S14
-		dod S02			display "I DARE YE ENTER..."
+		renderstrimmp			display "I DARE YE ENTER..."
 		fcb $9f,$d2,$02,$06
 		fcb $45,$06,$4a,$02
 		fcb $ba,$85,$97,$bd
 		fcb $ef,$80
-		dod S02			display "THE DUNGEONS OF DAGGORATH!!!!"
+		renderstrimmp			display "THE DUNGEONS OF DAGGORATH!!!!"
 		fcb $f7,$bd,$ea,$20
 		fcb $a0,$25,$5c,$72
 		fcb $bd,$d3,$03,$cc
@@ -822,7 +840,7 @@
 		stx 12,s			save new return address - after string
 		ldx #V335			point to decoded string
 		skip2
-LC452		dod S04				display character in A
+LC452		renderchar				display character in A
 ; swi 3 routine
 ; display an unpacked string pointed to by X
 LC454		lda ,x+				fetch byte from string
@@ -1033,7 +1051,7 @@
 LC5B5		ldx #LDF10
 		dec V29E
 		dod S13
-		dod S02
+		renderstrimmp
 		fcb $ff,$c1,$92,$d0		"YET ANOTHER DOES NOT RETURN..."
 		fcb $01,$73,$e8,$82
 		fcb $c8,$04,$79,$66
@@ -1055,7 +1073,7 @@
 		std 4,u
 		ldx V21D
 		bsr LC617
-		dod S03
+		renderstr
 		ldd #17
 		bsr LC609
 		ldx V21F
@@ -1066,13 +1084,13 @@
 		tst ,y+
 		bpl LC5FD
 		std 4,u
-		dod S03
+		renderstr
 		clr V2B7
 		rts
 LC609		pshs a,b
 		std 4,u
 		ldd #15
-LC610		dod S04
+LC610		renderchar
 		decb
 		bne LC610
 		puls a,b,pc
@@ -1097,7 +1115,7 @@
 LC640		decodestrsb
 		deca
 		bpl LC640
-		ldx #V336
+		ldx #V335+1
 LC648		lda ,x+
 		sta ,u+
 		bpl LC648
@@ -1122,7 +1140,7 @@
 		puls a,b,x,y,u,pc
 ; swi 15 routine
 LC674		ldx #LC67A
-		dod S03
+		renderstr
 		rts
 LC67A		fcb $1f,$1e,$1c,$24		unpacked string...
 		fcb $ff
@@ -1200,7 +1218,7 @@
 LC6E6		jsr LD489
 		ldd #$12c
 		std 4,u
-		dod S02
+		renderstrimmp
 		fcb $3c,$24,$58,$06	packed string "PREPARE!"
 		fcb $45,$d8
 		clr V2B7
@@ -1902,8 +1920,8 @@
 		bne LCBDF
 		rts
 LCBDF		leas 2,s
-LCBE1		dod S02
-		fcb $17,$7b,$d0			packed string
+LCBE1		renderstrimmp
+		fcb $17,$7b,$d0			packed "???" string
 		rts
 LCBE7		pshs a,b,x,y,u
 		clra
@@ -1919,7 +1937,7 @@
 		stb V279
 LCBFC		ldu #V313
 		decodestrsb
-		ldy #V336
+		ldy #V335+1
 LCC05		ldb ,u+
 		bmi LCC17
 		cmpb ,y+
@@ -2696,14 +2714,14 @@
 		beq LD26F
 		cmpa #$24
 		beq LD27D
-		dod S04
+		renderchar
 		sta ,u+
 		ldx #LC67C
-		dod S03
+		renderstr
 		cmpu #V311
 		bne LD2B4
 LD26F		clra
-		dod S04
+		renderchar
 		ldd V203
 		std ,u++
 		ldu #V2F1
@@ -2713,7 +2731,7 @@
 		beq LD2B4
 		leau -1,u
 		ldx #LD28C
-		dod S03
+		renderstr
 		bra LD2B4
 LD28C		fcb $00,$24,$24,$1c
 		fcb $24,$ff
@@ -2784,7 +2802,7 @@
 		anda #3
 		bne LD375
 LD31F		dod S1B,$12
-		dod S02
+		renderstrimmp
 		fcb $16,$f7,$b0			packed "!!!" string
 		jsr LD40C
 		bhi LD375
@@ -2841,14 +2859,14 @@
 		rts
 LD386		ldx #LDF10
 		dod S13
-		dod S02
+		renderstrimmp
 		fcb $ff,$c0,$57,$3e		packed string "ENOUGH! I TIRE OF THIS PLAY..."
 		fcb $a7,$46,$c0,$90
 		fcb $51,$32,$28,$1e
 		fcb $60,$51,$09,$98
 		fcb $20,$c0,$e7,$de
 		fcb $f0
-		dod S02
+		renderstrimmp
 		fcb $e8,$00,$08,$48		packed string "PREPARE TO MEET THY DOOM!!!"
 		fcb $b0,$0c,$8a,$0a
 		fcb $3c,$0d,$29,$68
@@ -2970,7 +2988,7 @@
 		clr V2B6
 		ldd #10
 		std 4,u
-		dod S02
+		renderstrimmp
 		fcb $62,$5c,$0a,$21		packed string "IN THIS ROOM"
 		fcb $33,$04,$9e,$f6
 		fcb $fc
@@ -2980,7 +2998,7 @@
 		ldx 4,u
 		leax 11,x
 		stx 4,u
-		dod S02
+		renderstrimmp
 		fcb $56,$c7,$22,$86		packed string "!CREATURE!"
 		fcb $95,$91,$77,$f0
 LD4C0		clr V291
@@ -2993,13 +3011,13 @@
 		beq LD4D3
 		bsr LD4FE
 LD4D3		ldd #$1b20
-LD4D6		dod S04
+LD4D6		renderchar
 		decb
 		bne LD4D6
 		ldx 4,u
 		leax 12,x
 		stx 4,u
-		dod S02
+		renderstrimmp
 		fcb $40,$82,$35,$c0		packed string "BACKPACK"
 		fcb $23,$5f,$c0
 		ldx #V229
@@ -3013,12 +3031,12 @@
 LD4FB		clr V2B7
 		rts
 LD4FE		lda #$1f
-		dod S04
+		renderchar
 		clr V2B6
 		rts
 LD505		pshs a,b,x
 		jsr LC617
-		dod S03
+		renderstr
 		lda V22C
 		sta 6,u
 		com V2B6
@@ -3136,14 +3154,14 @@
 LD5F0		ldx #LDF39
 		dec V29E
 		dod S13
-		dod S02
+		renderstrimmp
 		fcb $ff,$c4,$54,$3d		packed string victory message line 1
 		fcb $84,$d8,$08,$59
 		fcb $D1,$2e,$c8,$03
 		fcb $70,$a6,$93,$05
 		fcb $10,$50,$20,$2e
 		fcb $20
-		dod S02
+		renderstrimmp
 		fcb $c8,$00,$00,$00		packed string victory message line 2
 		fcb $00,$03,$cc,$00
 		fcb $81,$c5,$b8,$2e
@@ -3379,20 +3397,36 @@
 		fdb V202
 		fcb $01				V202
 		fdb $ffff			V203 - 16 bit all ones value, or -1
-		fcb $00
-		fcb $80,$00,$4c,$d8
-		fcb $70,$d8,$76,$d9
-		fcb $88,$0b,$15,$02
-		fcb $f1,$0c,$16,$00
-		fcb $23,$17,$a0
-		fcb $54
+		fcb $00				V205
+		fcb $80				V206
+		fcb 0				V207
+		fcb $4c				V208
+		fdb LD870			V209
+		fdb LD876			V20B
+		fdb LD988			V20D
+		fdb VB15			V20F
+		fdb V2F1			V211
+		fcb $0c				V213
+		fcb $16				V214
+		fdb $23				V215
+		fdb $17a0			V217
+		fcb $54	
 		fdb V380
-		fcb $10,$00,$02,$60
-		fcb $00,$00,$00,$FF
-		fcb $23,$00,$00,$40
-		fcb $00,$00,$FF,$00
-		fcb $24,$00,$00,$80
-		fcb $00,$00,$00,$00
+		fdb $1000			V380 - text area starts at top of screen
+		fdb $0260			V382 - text area ends after 19 lines
+		fdb 0				V384 - text cursor position at top of screen
+		fcb 0				V386 - black background
+		fcb $ff				V387 - do not render on secondary screen
+		fdb $2300			V388 - text area starts at row 19 on screen
+		fdb $40				V38A - text area goes for two lines
+		fdb 0				V38C - text cursor is at top of area
+		fcb $ff				V38E - background is white
+		fcb 0				V38F - do render on secondary screen
+		fdb $2400			V390 - text area starts at row 20 on screen
+		fdb $80				V392 - text area goes for four lines
+		fdb 0				V394 - text cursor is at top of area
+		fcb 0				V396 - background is black
+		fcb 0				V397 - do render on secondary screen
 		fcb $09,$09,$04,$02
 		fcb $00,$00,$00,$00
 		fcb $00,$00,$00,$00
@@ -3413,104 +3447,126 @@
 		fcb $04,$00,$00,$05
 		fcb 0
 
-LD870		fcb $10,$00,$23,$00
-LD874		fcb $20,$46,$28,$00
-LD878		fcb $3B,$00,$20,$A6
+LD870		fdb $1000			primary screen start address
+		fdb $2300			primary screen gfx area end address
+		fdb $2046			primary screen SAM register value
+LD876		fdb $2800			secondary screen start address
+		fdb $3b00			secondary screen gfx area end address
+		fdb $20a6			secondary screen SAM register value
+
 LD87C		fcb $23,$00,$24,$00
 LD880		fcb $00,$00,$3B,$00
 LD884		fcb $3C,$00,$00,$00
 LD888		fcb $24,$00,$28,$00
 LD88C		fcb $00,$00,$3C,$00
 LD890		fcb $40,$00,$00,$00
-LD894		fcb $0F,$30,$03,$4A
-LD898		fcb $04,$6B,$28,$06
-LD89C		fcb $C4,$B4,$40,$20
-LD8A0		fcb $09,$27,$C0,$38
-LD8A4		fcb $0B,$80,$B5,$2E
-LD8A8		fcb $28,$18,$0E,$5A
-LD8AC		fcb $00,$30,$12,$E1
-LD8B0		fcb $85,$D4,$20,$18
-LD8B4		fcb $F7,$AC,$20,$1A
-LD8B8		fcb $FB,$14,$20,$21
-LD8BC		fcb $56,$30,$30,$24
-LD8C0		fcb $5B,$14,$2C,$20
-LD8C4		fcb $27,$47,$DC,$20
-LD8C8		fcb $29,$59,$38,$18
-LD8CC		fcb $2B,$32,$80,$28
-LD8D0		fcb $34,$C7,$84,$80
-LD8D4		fcb $28,$35,$30,$D8
-LD8D8		fcb $A0
-
-LD8D9		fcb $06,$20,$18
-
-LD8DC		fcb $53,$50,$28,$24
-LD8E0		fcb $93,$A2,$80,$20
-LD8E4		fcb $04,$11,$AC,$30
-LD8E8		fcb $03,$27,$D5,$C4
-LD8EC		fcb $10,$2B,$00,$20
-LD8F0		fcb $08,$FB,$B8
-
-LD8F3		fcb $19
 
-LD8F4		fcb $38,$67,$58,$48
-LD8F8		fcb $AD,$28,$28,$54
-LD8FC		fcb $FA,$B0,$A0,$31
-LD900		fcb $0A,$CB,$26,$68
-LD904		fcb $38,$DA,$9A,$22
-LD908		fcb $49,$60,$20,$A6
-LD90C		fcb $52,$C8,$28,$28
-LD910		fcb $82,$DE,$60,$20
-LD914		fcb $64,$96,$94,$30
-LD918		fcb $AC,$99,$A5,$EE
-LD91C		fcb $20,$02,$2C,$94
-LD920		fcb $20,$10,$16,$14
-LD924		fcb $29,$66,$F6,$06
-LD928		fcb $40,$30,$C5,$27
-LD92C		fcb $BB,$45,$30,$6D
-LD930		fcb $56,$0C,$2E,$21
-LD934		fcb $13,$27,$B8,$29
-LD938		fcb $59,$57,$06,$40
-LD93C		fcb $21,$60,$97,$14
-LD940		fcb $38,$D8,$50,$D1
-LD944		fcb $05,$90,$31,$2E
-LD948		fcb $F7,$90,$AE,$28
-LD94C		fcb $4C,$97,$05,$80
-LD950		fcb $30,$4A,$E2,$C8
-LD954		fcb $F9,$18,$52,$32
-LD958		fcb $80,$20,$4C,$99
-LD95C		fcb $14,$20,$4E,$F6
-LD960		fcb $10,$28,$0A,$D8
-LD964		fcb $53,$20,$21,$48
-LD968		fcb $50,$90
+; This is the keyword table used for command parsing. Each keyword is stored in packed format.
+; Each keyword is preceded by a value which indicates the object type. Where the object type is
+; not relevant, that value will be zero. The value is shown in parentheses below.
+LD894		fcb 15				15 keywords in the command list
+LD895		fcb $30,$03,$4a,$04,$6b		"ATTACK" keyword
+		fcb $28,$06,$c4,$b4,$40		"CLIMB" keyword
+		fcb $20,$09,$27,$c0		"DROP" keyword
+LD8A3		fcb $38,$0b,$80,$b5,$2e,$28	"EXAMINE" keyword
+		fcb $18,$0e,$5a,$00		"GET" keyword
+		fcb $30,$12,$e1,$85,$d4		"INCANT" keyword
+LD8B2		fcb $20,$18,$f7,$ac		"LOOK" keyword
+LD8B6		fcb $20,$1A,$fb,$14		"MOVE" keyword
+LD8BA		fcb $20,$21,$56,$30		"PULL" keyword
+		fcb $30,$24,$5b,$14,$2c		"REVEAL" keyword
+		fcb $20,$27,$47,$dc		"STOW" keyword
+LD8C7		fcb $20,$29,$59,$38		"TURN" keyword
+LD8CB		fcb $18,$2b,$32,$80		"USE" keyword
+		fcb $28,$34,$c7,$84,$80		"ZLOAD" keyword
+		fcb $28,$35,$30,$d8,$a0		"ZSAVE" keyword
+LD8D9		fcb 6				6 keywords in direction list
+LD8DA		fcb $20,$18,$53,$50		"LEFT" keyword
+LD8DE		fcb $28,$24,$93,$a2,$80		"RIGHT" keyword
+		fcb $20,$04,$11,$ac		"BACK" keyword
+		fcb $30,$03,$27,$d5,$c4		"AROUND" keyword		
+		fcb $10,$2b,$00			"UP" keyword
+		fcb $20,$08,$fb,$b8		"DOWN" keyword
+LD8F3		fcb 25				25 keywords in the misc keywords list
+LD8F4		fcb $38,$67,$58,$48,$ad,$28	"SUPREME" keyword (1)
+		fcb $28,$54,$fa,$b0,$a0		"JOULE" keyword (1)
+		fcb $31,$0a,$cb,$26,$68		"ELVISH" keyword (4)
+		fcb $38,$da,$9a,$22,$49,$60	"MITHRIL" keyword (3)
+		fcb $20,$a6,$52,$c8		"SEER" keyword (2)
+		fcb $28,$28,$82,$de,$60		"THEWS" keyword (0)
+		fcb $20,$64,$96,$94		"RIME" keyword (1)
+		fcb $30,$ac,$99,$a5,$ee		"VISION" keyword (2)
+		fcb $20,$02,$2c,$94		"ABYE" keyword (0)
+		fcb $20,$10,$16,$14		"HALE" keyword (0)
+		fcb $29,$66,$f6,$06,$40		"SOLAR" keyword (5)
+		fcb $30,$c5,$27,$bb,$45		"BRONZE" keyword (3)
+		fcb $30,$6d,$56,$0c,$2e		"VULCAN" keyword (1)
+		fcb $21,$13,$27,$b8		"IRON" keyword (4)
+		fcb $29,$59,$57,$06,$40		"LUNAR" keyword (5)
+		fcb $21,$60,$97,$14		"PINE" keyword (5)
+		fcb $38,$d8,$50,$d1,$05,$90	"LEATHER" keyword (3)
+		fcb $31,$2e,$f7,$90,$ae		"WOODEN" keyword (4)
+		fcb $28,$4c,$97,$05,$80		"FINAL" keyword (1)
+		fcb $30,$4a,$e2,$c8,$f9		"ENERGY" keyword (1)
+		fcb $18,$52,$32,$80		"ICE" keyword (1)
+		fcb $20,$4c,$99,$14		"FIRE" keyword (1)
+		fcb $20,$4e,$f6,$10		"GOLD" keyword (1)
+		fcb $28,$0a,$d8,$53,$20		"EMPTY" keyword (0)
+		fcb $21,$48,$50,$90		"DEAD" keyword (5)
+LD96A		fcb 6				6 object types in the following list
+LD96B		fcb $28,$0c,$c0,$cd,$60		"FLASK" keyword (0)
+		fcb $20,$64,$97,$1c		"RING" keyword (1)
+		fcb $30,$a6,$39,$3d,$8c		"SCROLL" keyword (2)
+LD979		fcb $30,$e6,$84,$95,$84		"SHIELD" keyword (3)
+LD97E		fcb $29,$27,$77,$c8,$80		"SWORD" keyword (4)
+LD983		fcb $29,$68,$f9,$0d,$00		"TORCH" keyword (5)
+; The following is the sequence of commands used in the demo game
+LD988		fcb 1				EXAMINE
+		fdb LD8A3
+		fcb 3				PULL RIGHT TORCH
+		fdb LD8BA
+		fdb LD8DE
+		fdb LD983
+		fcb 2				USE RIGHT
+		fdb LD8CB
+		fdb LD8DE
+		fcb 1				LOOK
+		fdb LD8B2
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 3				PULL LEFT SHIELD
+		fdb LD8BA
+		fdb LD8DA
+		fdb LD979
+		fcb 3				PULL RIGHT SWORD
+		fdb LD8BA
+		fdb LD8DE
+		fdb LD97E
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 2				ATTACK RIGHT
+		fdb LD895
+		fdb LD8DE
+		fcb 2				TURN RIGHT
+		fdb LD8C7
+		fdb LD8DE
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 2				TURN RIGHT
+		fdb LD8C7
+		fdb LD8DE
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb 1				MOVE
+		fdb LD8B6
+		fcb $ff
 
-LD96A		fcb $06
-LD96B		fcb $28
-
-LD96C		fcb $0C,$C0,$CD,$60
-LD970		fcb $20,$64,$97,$1C
-LD974		fcb $30,$A6,$39,$3D
-LD978		fcb $8C,$30,$E6,$84
-LD97C		fcb $95,$84,$29,$27
-LD980		fcb $77,$C8,$80,$29
-LD984		fcb $68,$F9,$0D,$00
-LD988		fcb $01,$D8,$A3,$03
-LD98C		fcb $D8,$BA,$D8,$DE
-LD990		fcb $D9,$83,$02,$D8
-LD994		fcb $CB,$D8,$DE,$01
-LD998		fcb $D8,$B2,$01,$D8
-LD99C		fcb $B6,$03,$D8,$BA
-LD9A0		fcb $D8,$DA,$D9,$79
-LD9A4		fcb $03,$D8,$BA,$D8
-LD9A8		fcb $DE,$D9,$7E,$01
-LD9AC		fcb $D8,$B6,$01,$D8
-LD9B0		fcb $B6,$02,$D8,$95
-LD9B4		fcb $D8,$DE,$02,$D8
-LD9B8		fcb $C7,$D8,$DE,$01
-LD9BC		fcb $D8,$B6,$01,$D8
-LD9C0		fcb $B6,$01,$D8,$B6
-LD9C4		fcb $02,$D8,$C7,$D8
-LD9C8		fcb $DE,$01,$D8,$B6
-LD9CC		fcb $01,$D8,$B6,$FF
 LD9D0		fcb $D2,$B8,$D4,$4E
 LD9D4		fcb $D5,$50,$D4,$81
 LD9D8		fcb $D5,$22,$D5,$BC