Difference between revisions of "Disassembly:Bios"

From veswiki
Jump to: navigation, search
 
m (1 revision)
(No difference)

Revision as of 21:22, 16 November 2012

Template:Incomplete Disassembly

This is the disassembly of the Channel F bios made and partially annotated by Sean Riddle. This code is copyright © 1976 Fairchild Semiconductor. The original disassembly can be found here: [1]

cartridgeStart = $0800
cartridgeEntry = $0802

;=======;
; Reset ;
;=======;

; this is the code executed when the cartridge first
; starts up. it clears the registers, sets the K stack
; pointer, and checks to see if a cartridge is inserted

reset:
	clr
reset.clrRegs:				; clear all the registers to 0
	lr	IS, A			; set the ISAR
	clr
	lr	S, A			; clear the current register
	lr	A, IS
	inc				; increase the ISAR
	ci	$40
	bnz	reset.clrRegs		; if we're not finished, loop

	; set K stack pointer (see pushk/popk)
	lisu	7			; K stack pointer (r59)
	lisl	3
	li	$28
	lr	S, A			; pointer is set to r40

	; check to see if a cartridge is inserted
	dci	cartridgeStart
	lm
	ci	$55			; compare the first cartridge byte to $55
	bnz	noCart			; if it's false, there's no valid cartridge inserted
	jmp	cartridgeEntry		; otherwise, play the cartridge

;==============;
; No Cartridge ;
;==============;

; no cartridge is inserted, so play the internal games
                
noCart:
	; clear screen to gray
	li	$d6
	lr	3, A
	pi	clrscrn

A0020:          LI   $4a                 ; blue G
                LR   $0,A                ; 
                PI   prompt              ; 
                LISU 3                   ; 0026 63
                LISL 4                   ; 0027 6c
                LIS  $4                  ; 0028 74
                LR   S,A              ; 0029 5c
                LR   A,$4                ; 002a 44
                LISL 7                   ; 002b 6f
                LR   S,A              ; 002c 5c
                CI   $03                 ; 002d 25 03
                BF   $1,A0020            ; 002f 91 f0
                PI   A0135               ; 0031 28 01 35
                PI   prompts             ; 0034 28 02 24
A0037:          PI   A0088               ; 0037 28 00 88
                PI   A02da               ; 003a 28 02 da
                PI   A0088               ; 003d 28 00 88
                PI   A02e8               ; 0040 28 02 e8
                PI   A0088               ; 0043 28 00 88
                NI   $04                 ; 0046 21 04
                BT   4,A0050             ; 0048 84 07
                PI   A038c               ; 004a 28 03 8c
                PI   A0399               ; 004d 28 03 99
A0050:          PI   A0658               ; 0050 28 06 58
                PI   A0467               ; 0053 28 04 67
                PI   A03d3               ; 0056 28 03 d3
                LISU 3                   ; 0059 63
                LISL 7                   ; 005a 6f
                LR   A,S              ; 005b 4c
                CI   $02                 ; 005c 25 02
                BNZ  A0063            ; 005e 94 04
                PI   A0447               ; 0060 28 04 47
A0063:          LISU 4                   ; 0063 64
                LISL 7                   ; 0064 6f
                LR   A,S              ; 0065 4c
                INC                      ; 0066 1f
                LR   S,A              ; 0067 5c
                LIS  $0                  ; 0068 70
                OUTS 0                   ; 0069 b0
                INS  0                   ; read buttons
                NI   $04                 ; hold button hit?
                BNZ  A0072            ; nope
                PI   prompts             ; yes, print S? and wait
A0072:          LISU 3                   ; 0072 63
                LISL 4                   ; 0073 6c
                DCI  speeds              ; 0074 2a 00 83
                LR   A,S              ; 0077 4c
                SR   1                   ; 0078 12
                ADC                      ; 0079 8e
                LM                       ; 007a 16
                LR   $5,A                ; 007b 55
                PI   delay               ; 007c 28 00 8f
                LIS  $0                  ; turn off sound
                OUTS 5                   ; 0080 b5
                BF   $0,A0037            ; 0081 90 b5
                
speeds:			db	$22,$13,$07,$03,$03		; mode speeds

A0088:          LISU 4                   ;
                LISL 6                   ; 
                LR   A,D             ; 
                LR   $1,A                ; r1=r38
                LR   A,S              ; 
                LR   $0,A                ; r0=r37
                POP                      ; 
                
delay:          LI   $ff                 ;$008f - parameter in r5, uses r6
                LR   $6,A                ;
dlyloop:        DS   $6                  ;
                BNZ  dlyloop          ;
                DS   $5                  ;
                BNZ  delay            ;
                POP                      ;
                
prompt:         LR   K,P                 ; $0099 - prints char r0 at row r1, col r2, waits for button
                PI   pushk               ; 
                LI   $33                 ; r1=$33
                LR   $1,A                ; 
                LI   $13                 ; r2=$13
                LR   $2,A                ; 
                PI   drawchar            ; 
                
                LI   $8b                 ; r0=8b	red ?
                LR   $0,A                ; 
                PI   drawchar            ; 
                
                PI   readbuts            ; 
                LI   $33                 ; r1=$33
                LR   $1,A                ; 
                LI   $13                 ; r2=$13
                LR   $2,A                ; 
                LIS  $d                  ; r0=$d
                LR   $0,A                ; 
                PI   drawchar            ; 
                PI   drawchar            ; 
                PI   popk                ; 
                PK                       ; 
                
readbuts:       INS  0                   ; $00c1 - read buttons
                COM                      ; 
                NI   $0f                 ; 
                BT   4,readbuts          ; 
                LR   $4,A                ; 
                LI   $ff                 ; 
                LR   $5,A                ; 
debounce:       DS   $5                  ; 
                BNZ  debounce         ; 
                BF   $0,delay            ; 

;==============;
; Clear Screen ;
;==============;

; clears the screen to a color and palette specified in r3

clrscrn:
	; save return address
	lr	K, P
	pi	pushk

	lis	0
	lr	2, A
clrscrn.loop2:
	li	$7e
	lr	1, A
	lr	A, 3
	oi	10
	lr	0, A
	pi	drawchar
	lis	5			; this is LIS 4 in other BIOS!!!
	lr	1, A
clrscrn.loop1:
	lis	13
	lr	0, A
	pi	drawchar	
	ds	1
	lr	A, 1
	ci	$70
	bc	clrscrn.loop1
	lr	A, 2
	ai	5
	lr	2, A
	lisu	3
	lisl	7
	lis	3
	ns	S
	bz	A00fe
	lr	A, 2
	ci	$30
	bc	csloop2
	lis	0
	lr	3, A
A00fe:
	lr	A, 2
	ci	$40
	bc	clrscrn.loop2

	; return from the subroutine
	pi	popk
	pk

;==================;
; Register K Stack ;
;==================;

; the K stack is an emulated stack using the register r59
; as a stack pointer, which holds the register number for
; the top of the stack, which first points at r40. when
; pushk is called, K is pushed to the first two registers
; on the stack, and the pointer is increased.
;
; the K stack can hold 9 copies of K (r40-58) before 
; the stack pointer itself is overwritten (r59)

;--------;
; Push K ;
;--------;

; pushes register K (r12-13) onto a stack using r59 as
; the stack pointer
;
; modifies: r7

pushk:
	; backup the ISAR
	lr	A, IS
	lr	7, A

	; get the top of the stack
	lisu	7
	lisl	3			; r59, stack pointer
	lr	A, S
	lr	IS, A			; load the referenced register
	; push K onto the stack
	lr	A, Ku
	lr	S, A			; push high byte of K
	lr	A, IS
	inc
	lr	IS, A			; increase ISAR (they could've used lr I, A)
	lr	A, Kl
	lr	S, A			; push low byte of K
	; adjust pointer to the top of the stack
	lr	A, IS
	inc
	lr	IS, A			; increase ISAR to the top of the stack
	lr	A, IS			; redundantly, get back the register number
	lisu	7
	lisl	3
	lr	S, A			; save the register number to the stack pointer

	; restore the ISAR
	lr	A, 7
	lr	IS, A

	; return from the subroutine
	pop

;--------;
; Pop K ;
;--------;

; retrieves a 16-bit value from the K stack and
; stores it in K, using r59 as the stack pointer
;
; modifies: r7
                
popk:
	; backup the ISAR
	lr	A, IS
	lr	7, A

	; retrieve K from the stack
	lisu	7
	lisl	3
	lr	A, S			; load the stack pointer
	ai	$ff			; "subtract" 1 to get the first register on the stack
	lr	IS, A			; set the ISAR to this register
	lr	A, S
	lr	Kl, A			; load lower byte of K 
	lr	A, IS
	ai	$ff			; get previous register (they could've used lr A, D)
	lr	IS, A
	lr	A, S
	lr	Ku, A			; load upper byte of K
	; adjust pointer to the top of the stack
	lr	A, IS
	lisu	7
	lisl	3
	lr	S, A			; save the register number to the stack pointer

	; restore the ISAR
	lr	A, 7
	lr	IS, A

	; return from the subroutine
	pop

;===================;
                
A0135:          LR   K,P                 ; 0135 08
                PI   pushk               ; 0136 28 01 07
                LISU 3                   ; 0139 63
                LISL 7                   ; 013a 6f
                LR   A,S              ; 013b 4c
                LISU 4                   ; 013c 64
                LISL 5                   ; 013d 6d
                CI   $01                 ; 013e 25 01
                BT   4,A014f             ; 0140 84 0e
                LI   $53                 ; 0142 20 53
                LR   I,A             ; 0144 5d
                LIS  $c                  ; 0145 7c	!!! this is 7F in other BIOS
                LR   D,A             ; 0146 5e
                LI   $d0                 ; 0147 20 d0
                LR   $3,A                ; 0149 53
                PI   clrscrn             ; 014a 28 00 d0
                BF   $0,A017d            ; 014d 90 2f
                
A014f:          LI   $17                 ; 014f 20 17
                LR   I,A             ; 0151 5d
                LI   $ff                 ; 0152 20 ff
                LR   S,A              ; 0154 5c
                LI   $d6                 ; 0155 20 d6
                LR   $3,A                ; 0157 53
                PI   clrscrn             ; 0158 28 00 d0
                LI   $11                 ; 015b 20 11
                LR   $1,A                ; 015d 51
                LIS  $8                  ; 015e 78
                LR   $2,A                ; 015f 52
                PI   A01f6               ; 0160 28 01 f6
                LI   $11                 ; 0163 20 11
                LR   $1,A                ; 0165 51
                LI   $25                 ; 0166 20 25
                LR   $2,A                ; 0168 52
                PI   A01f6               ; 0169 28 01 f6
                LI   $5c                 ; 016c 20 5c
                LR   $1,A                ; 016e 51
                LIS  $8                  ; 016f 78
                LR   $2,A                ; 0170 52
                PI   A01f6               ; 0171 28 01 f6
                LI   $5c                 ; 0174 20 5c
                LR   $1,A                ; 0176 51
                LI   $25                 ; 0177 20 25
                LR   $2,A                ; 0179 52
                PI   A01f6               ; 017a 28 01 f6
A017d:          LI   $14                 ; 017d 20 14
                LR   $1,A                ; 017f 51
                LIS  $6                  ; 0180 76
                LR   $2,A                ; 0181 52
                PI   A020e               ; 0182 28 02 0e
                LI   $14                 ; 0185 20 14
                LR   $1,A                ; 0187 51
                LI   $2e                 ; 0188 20 2e
                LR   $2,A                ; 018a 52
                PI   A020e               ; 018b 28 02 0e
                LI   $99                 ; 018e 20 99
                LISU 2                   ; 0190 62
                LISL 6                   ; 0191 6e
                LR   I,A             ; 0192 5d
                LR   S,A              ; 0193 5c
                PI   A02ac               ; 0194 28 02 ac
                PI   A02b5               ; 0197 28 02 b5
                LISU 4                   ; 019a 64
                LISL 2                   ; 019b 6a
                LIS  $2                  ; 019c 72
                LR   S,A              ; 019d 5c
                BF   $0,A01a4            ; 019e 90 05
                
A01a0:          LR   K,P                 ; 01a0 08
                PI   pushk               ; 01a1 28 01 07
A01a4:          LISU 2                   ; 01a4 62
                LISL 0                   ; 01a5 68
                LI   $17                 ; 01a6 20 17
                LR   S,A              ; 01a8 5c
                LISL 3                   ; 01a9 6b
                LR   S,A              ; 01aa 5c
                LI   $1c                 ; 01ab 20 1c
                LR   $1,A                ; 01ad 51
                LI   $1a                 ; 01ae 20 1a
                LR   $2,A                ; 01b0 52
                LI   $b0                 ; 01b1 20 b0
                LR   $0,A                ; 01b3 50
                PI   drawchar            ; 01b4 28 06 79
                LI   $38                 ; 01b7 20 38
                LR   $1,A                ; 01b9 51
                LI   $1b                 ; 01ba 20 1b
                LR   $2,A                ; 01bc 52
                LI   $55                 ; 01bd 20 55
                LR   $0,A                ; 01bf 50
                PI   drawchar            ; 01c0 28 06 79
                LI   $52                 ; 01c3 20 52
                LR   $1,A                ; 01c5 51
                LI   $1a                 ; 01c6 20 1a
                LR   $2,A                ; 01c8 52
                LI   $71                 ; 01c9 20 71
                LR   $0,A                ; 01cb 50
                PI   drawchar            ; 01cc 28 06 79
                LISU 4                   ; 01cf 64
                LISL 5                   ; 01d0 6d
                LR   A,S              ; 01d1 4c
                SL   1                   ; 01d2 13
                BT   1,A01da             ; 01d3 81 06
                PI   A0447               ; 01d5 28 04 47
                BF   $0,A01f2            ; 01d8 90 19
                
A01da:          LI   $11                 ; 01da 20 11
                LR   $1,A                ; 01dc 51
                LI   $1a                 ; 01dd 20 1a
                LR   $2,A                ; 01df 52
                LI   $b2                 ; 01e0 20 b2
                LR   $0,A                ; 01e2 50
                PI   drawchar            ; 01e3 28 06 79
                LI   $5e                 ; 01e6 20 5e
                LR   $1,A                ; 01e8 51
                LI   $1a                 ; 01e9 20 1a
                LR   $2,A                ; 01eb 52
                LI   $73                 ; 01ec 20 73
                LR   $0,A                ; 01ee 50
                PI   drawchar            ; 01ef 28 06 79
A01f2:          PI   popk                ; 01f2 28 01 1e
                PK                       ; 01f5 0c
                
A01f6:          LR   K,P                 ; 01f6 08
                PI   pushk               ; 01f7 28 01 07
                LIS  $8                  ; 01fa 78
                LR   $3,A                ; 01fb 53
A01fc:          LI   $81                 ; 01fc 20 81
                LR   $0,A                ; 01fe 50
                PI   drawchar            ; 01ff 28 06 79
                LR   A,$1                ; 0202 41
                AI   $fa                 ; 0203 24 fa
                LR   $1,A                ; 0205 51
                LR   A,$2                ; 0206 42
                INC                      ; 0207 1f
                LR   $2,A                ; 0208 52
                DS   $3                  ; 0209 33
                BNZ  A01fc            ; 020a 94 f1
                BF   $0,A01f2            ; 020c 90 e5
                
A020e:          LR   K,P                 ; 020e 08
                PI   pushk               ; 020f 28 01 07
                LI   $46                 ; 0212 20 46
                LR   $3,A                ; 0214 53
A0215:          LI   $92                 ; 0215 20 92
                LR   $0,A                ; 0217 50
                PI   drawchar            ; 0218 28 06 79
                LR   A,$1                ; 021b 41
                AI   $fb                 ; 021c 24 fb
                LR   $1,A                ; 021e 51
                DS   $3                  ; 021f 33
                BNZ  A0215            ; 0220 94 f4
                BF   $0,A01f2            ; 0222 90 cf
                
prompts:        LR   K,P                 ; 
                PI   pushk               ; 
prompts2:       LI   $85                 ; red 5 (S)
                LR   $0,A                ; 
                PI   prompt              ; 
                LR   A,$4                ; 
                CI   $08                 ; is it button 4, Start?
                BNZ  notbut4          ; no, check others
                PI   popk                ; yes, return
                PK                       ; 
                
notbut4:        CI   $02                 ; is it button 2, Mode?
                BNZ  notbut2          ; 
                LI   $8e                 ; red M
                LR   $0,A                ; 
                PI   prompt              ; 
                LISU 3                   ; 
                LISL 4                   ; 
                LR   A,$4                ; 
                LR   S,A              ; 
                BF   $0,prompts2         ; 
                
notbut2:        CI   $01                 ; is it button 1, Time?
                BNZ  prompts2         ; 
                LI   $8c                 ; red T
                LR   $0,A                ; 
                PI   prompt              ; 
                DCI  minutes             ; 
                LR   A,$4                ; 
                SR   1                   ; 
                ADC                      ; 
                LM                       ; 
                LISU 7                   ; 
                LISL 1                   ; 
                LR   I,A             ; 
                LIS  $0                  ; 
                LR   S,A              ; 
                LISU 6                   ; 
                LISL 7                   ; 
                LIS  $f                  ; 
                LR   S,A              ; 
                PI   A0271               ; 
                LISU 4                   ; 
                LISL 5                   ; 
                LR   A,S              ; 
                OI   $20                 ; 
                LR   S,A              ; 
                BF   $0,prompts2         ; 
                
minutes:		db $02,$05,$10,$10,$20		; minutes of play
                
A0271:			LR   K,P                 ; 0271 08
                PI   pushk               ; 0272 28 01 07
                LISU 7                   ; 0275 67
                LISL 2                   ; 0276 6a
                LR   A,D             ; 0277 4e
                LR   $4,A                ; 0278 54
                LR   A,S              ; 0279 4c
                LR   $3,A                ; 027a 53
                SR   4                   ; 027b 14
                OI   $80                 ; 027c 22 80
                LR   $0,A                ; 027e 50
                LI   $2a                 ; 027f 20 2a
                LR   $1,A                ; 0281 51
                LI   $33                 ; 0282 20 33
                LR   $2,A                ; 0284 52
                PI   drawchar            ; 0285 28 06 79
                LR   A,$3                ; 0288 43
                NI   $0f                 ; 0289 21 0f
                OI   $80                 ; 028b 22 80
                LR   $0,A                ; 028d 50
                PI   drawchar            ; 028e 28 06 79
                LI   $91                 ; 0291 20 91
                LR   $0,A                ; 0293 50
                PI   drawchar            ; 0294 28 06 79
                LR   A,$4                ; 0297 44
                SR   4                   ; 0298 14
                OI   $80                 ; 0299 22 80
                LR   $0,A                ; 029b 50
                PI   drawchar            ; 029c 28 06 79
                LR   A,$4                ; 029f 44
                NI   $0f                 ; 02a0 21 0f
                OI   $80                 ; 02a2 22 80
                LR   $0,A                ; 02a4 50
                PI   drawchar            ; 02a5 28 06 79
                PI   popk                ; 02a8 28 01 1e
                PK                       ; 02ab 0c
                
A02ac:          LR   K,P                 ; 02ac 08
                PI   pushk               ; 02ad 28 01 07
                LISL 6                   ; 02b0 6e
                LI   $17                 ; 02b1 20 17
                BF   $0,A02bc            ; 02b3 90 08
                
A02b5:          LR   K,P                 ; 02b5 08
                PI   pushk               ; 02b6 28 01 07
                LISL 7                   ; 02b9 6f
                LI   $50                 ; 02ba 20 50
A02bc:          LISU 2                   ; 02bc 62
                LR   $1,A                ; 02bd 51
                LI   $33                 ; 02be 20 33
                LR   $2,A                ; 02c0 52
                LIS  $1                  ; 02c1 71
                AI   $66                 ; 02c2 24 66
                ASD  S                ; 02c4 dc
                LR   S,A              ; 02c5 5c
                SR   4                   ; 02c6 14
                OI   $40                 ; 02c7 22 40
                LR   $0,A                ; 02c9 50
                PI   drawchar            ; 02ca 28 06 79
                LR   A,S              ; 02cd 4c
                NI   $0f                 ; 02ce 21 0f
                OI   $40                 ; 02d0 22 40
                LR   $0,A                ; 02d2 50
                PI   drawchar            ; 02d3 28 06 79
                PI   popk                ; 02d6 28 01 1e
                PK                       ; 02d9 0c
                
A02da:          LR   K,P                 ; 02da 08
                PI   pushk               ; 02db 28 01 07
                LI   $b0                 ; 02de 20 b0
                LR   $4,A                ; 02e0 54
                LISU 2                   ; 02e1 62
                LISL 1                   ; 02e2 69
                
                LIS  $0                  ; 02e3 70
                OUTS 4                   ; 02e4 b4
                INS  4                   ; read hand controller
                BF   $0,A02f4            ; 02e6 90 0d
                
A02e8:          LR   K,P                 ; 02e8 08
                PI   pushk               ; 02e9 28 01 07
                LI   $71                 ; 02ec 20 71
                LR   $4,A                ; 02ee 54
                LISU 2                   ; 02ef 62
                LISL 4                   ; 02f0 6c
                
                LIS  $0                  ; 02f1 70
                OUTS 1                   ; 02f2 b1
                INS  1                   ; read hand controller
A02f4:          COM                      ; 02f4 18
                NS   $1                  ; 02f5 f1
                LR   $0,A                ; 02f6 50
                LR   A,I             ; 02f7 4d
                LR   $1,A                ; 02f8 51
                LR   A,S              ; 02f9 4c
                LR   $2,A                ; 02fa 52
                LIS  $1                  ; 02fb 71
                NS   $0                  ; 02fc f0
                BT   4,A0303             ; 02fd 84 05
                LR   A,$1                ; 02ff 41
                AI   $02                 ; 0300 24 02
                LR   $1,A                ; 0302 51
A0303:          LIS  $2                  ; 0303 72
                NS   $0                  ; 0304 f0
                BT   4,A030b             ; 0305 84 05
                LR   A,$1                ; 0307 41
                AI   $fe                 ; 0308 24 fe
                LR   $1,A                ; 030a 51
A030b:          LIS  $4                  ; 030b 74
                NS   $0                  ; 030c f0
                BT   4,A0313             ; 030d 84 05
                LR   A,$2                ; 030f 42
                AI   $02                 ; 0310 24 02
                LR   $2,A                ; 0312 52
A0313:          LIS  $8                  ; 0313 78
                NS   $0                  ; 0314 f0
                BT   4,A031b             ; 0315 84 05
                LR   A,$2                ; 0317 42
                AI   $fe                 ; 0318 24 fe
                LR   $2,A                ; 031a 52
A031b:          LISU 3                   ; 031b 63
                LISL 7                   ; 031c 6f
                LR   A,S              ; 031d 4c
                CI   $02                 ; 031e 25 02
                BF   $1,A0357            ; 0320 91 36
                BNZ  A033a            ; 0322 94 17
                LIS  $1                  ; 0324 71
                NS   $4                  ; 0325 f4
                BNZ  A0332            ; 0326 94 0b
                LR   A,$1                ; 0328 41
                CI   $2d                 ; 0329 25 2d
                BT   1,A0330             ; 032b 81 04
                LI   $2d                 ; 032d 20 2d
                LR   $1,A                ; 032f 51
A0330:          BF   $0,A033a            ; 0330 90 09

A0332:          LR   A,$1                ; 0332 41
                CI   $3d                 ; 0333 25 3d
                BF   $1,A033a            ; 0335 91 04
                LI   $3d                 ; 0337 20 3d
                LR   $1,A                ; 0339 51
A033a:          LR   A,$1                ; 033a 41
                CI   $52                 ; 033b 25 52
                BT   1,A0342             ; 033d 81 04
                LI   $52                 ; 033f 20 52
                LR   $1,A                ; 0341 51
A0342:          CI   $1a                 ; 0342 25 1a
                BF   $1,A0349            ; 0344 91 04
                LI   $1a                 ; 0346 20 1a
                LR   $1,A                ; 0348 51
A0349:          LR   A,$2                ; 0349 42
                CI   $2b                 ; 034a 25 2b
                BT   1,A0351             ; 034c 81 04
                LI   $2b                 ; 034e 20 2b
                LR   $2,A                ; 0350 52
A0351:          CI   $09                 ; 0351 25 09
                BF   $1,A0357            ; 0353 91 03
                LIS  $9                  ; 0355 79
                LR   $2,A                ; 0356 52
A0357:          LISU 4                   ; 0357 64
                LISL 7                   ; 0358 6f
                LR   A,S              ; 0359 4c
                NI   $03                 ; 035a 21 03
                CI   $03                 ; 035c 25 03
                BNZ  A0383            ; 035e 94 24
                LISU 2                   ; 0360 62
                LISL 0                   ; 0361 68
                LIS  $1                  ; 0362 71
                NS   $4                  ; 0363 f4
                BT   4,A0367             ; 0364 84 02
                LISL 3                   ; 0366 6b
A0367:          LI   $10                 ; 0367 20 10
                NS   $0                  ; 0369 f0
                BT   4,A036d             ; 036a 84 02
                DS   S                ; 036c 3c
A036d:          LI   $20                 ; 036d 20 20
                NS   $0                  ; 036f f0
                BT   4,A0375             ; 0370 84 04
                LR   A,S              ; 0372 4c
                INC                      ; 0373 1f
                LR   S,A              ; 0374 5c
A0375:          LR   A,S              ; 0375 4c
                CI   $16                 ; 0376 25 16
                BNZ  A037c            ; 0378 94 03
                LI   $1d                 ; 037a 20 1d
A037c:          CI   $1e                 ; 037c 25 1e
                BNZ  A0382            ; 037e 94 03
                LI   $17                 ; 0380 20 17
A0382:          LR   S,A              ; 0382 5c
A0383:          LR   A,$4                ; 0383 44
                LR   $0,A                ; 0384 50
                PI   drawchar            ; 0385 28 06 79
                PI   popk                ; 0388 28 01 1e
                PK                       ; 038b 0c
                
A038c:          LR   K,P                 ; 038c 08
                PI   pushk               ; 038d 28 01 07
                LISL 0                   ; 0390 68
                LI   $b2                 ; 0391 20 b2
                LR   $3,A                ; 0393 53
                LIS  $0                  ; 0394 70
                OUTS 4                   ; 0395 b4
                INS  4                   ; read hand controller
                BF   $0,A03a4            ; 0397 90 0c
                
A0399:          LR   K,P                 ; 0399 08
                PI   pushk               ; 039a 28 01 07
                LISL 2                   ; 039d 6a
                LI   $73                 ; 039e 20 73
                LR   $3,A                ; 03a0 53
                
                LIS  $0                  ; 03a1 70
                OUTS 1                   ; 03a2 b1
                INS  1                   ; read hand controller
A03a4:          COM                      ; 03a4 18
                LR   $0,A                ; 03a5 50
                LISU 3                   ; 03a6 63
                LR   A,I             ; 03a7 4d
                LR   $1,A                ; 03a8 51
                LR   A,S              ; 03a9 4c
                LR   $2,A                ; 03aa 52
                LR   A,$0                ; 03ab 40
                NI   $80                 ; 03ac 21 80
                BT   4,A03b4             ; 03ae 84 05
                LR   A,$2                ; 03b0 42
                AI   $02                 ; 03b1 24 02
                LR   $2,A                ; 03b3 52
A03b4:          LR   A,$0                ; 03b4 40
                NI   $40                 ; 03b5 21 40
                BT   4,A03bb             ; 03b7 84 03
                DS   $2                  ; 03b9 32
                DS   $2                  ; 03ba 32
A03bb:          LR   A,$2                ; 03bb 42
                CI   $14                 ; 03bc 25 14
                BF   $1,A03c3            ; 03be 91 04
                LI   $14                 ; 03c0 20 14
                LR   $2,A                ; 03c2 52
A03c3:          CI   $20                 ; 03c3 25 20
                BT   1,A03ca             ; 03c5 81 04
                LI   $20                 ; 03c7 20 20
                LR   $2,A                ; 03c9 52
A03ca:          LR   A,$3                ; 03ca 43
                LR   $0,A                ; 03cb 50
                PI   drawchar            ; 03cc 28 06 79
                PI   popk                ; 03cf 28 01 1e
                PK                       ; 03d2 0c
                
A03d3:          LR   K,P                 ; 03d3 08
                PI   pushk               ; 03d4 28 01 07
                LISU 4                   ; 03d7 64
                LISL 0                   ; 03d8 68
                LR   A,I             ; 03d9 4d
                LR   $1,A                ; 03da 51
                LR   A,I             ; 03db 4d
                LR   $2,A                ; 03dc 52
                LR   A,I             ; 03dd 4d
                LR   $3,A                ; 03de 53
                LR   A,I             ; 03df 4d
                LR   $4,A                ; 03e0 54
                LR   A,S              ; 03e1 4c
                CI   $00                 ; 03e2 25 00
                BT   4,A03f2             ; 03e4 84 0d
                LIS  $0                  ; 03e6 70
                LR   S,A              ; 03e7 5c
                LR   A,$3                ; 03e8 43
                SL   1                   ; 03e9 13
                AS   $3                  ; 03ea c3
                AS   $3                  ; 03eb c3
                LR   $3,A                ; 03ec 53
                LR   A,$4                ; 03ed 44
                SL   1                   ; 03ee 13
                AS   $4                  ; 03ef c4
                AS   $4                  ; 03f0 c4
                LR   $4,A                ; 03f1 54
A03f2:          LR   A,$1                ; 03f2 41
                AS   $3                  ; 03f3 c3
                LR   $1,A                ; 03f4 51
                LR   A,$2                ; 03f5 42
                AS   $4                  ; 03f6 c4
                LR   $2,A                ; 03f7 52
                LISU 4                   ; 03f8 64
                LISL 5                   ; 03f9 6d
                LI   $44                 ; 03fa 20 44
                NS   S                ; 03fc fc
                BT   4,A043b             ; 03fd 84 3d
                PI   A049c               ; 03ff 28 04 9c
                LISU 4                   ; 0402 64
                LISL 2                   ; 0403 6a
                LR   A,$1                ; 0404 41
                LR   $0,A                ; 0405 50
                CI   $5c                 ; 0406 25 5c
                BT   1,A0410             ; 0408 81 07
                PI   A043f               ; 040a 28 04 3f
                LI   $5c                 ; 040d 20 5c
                LR   $1,A                ; 040f 51
A0410:          LR   A,$1                ; 0410 41
                LR   $0,A                ; 0411 50
                CI   $14                 ; 0412 25 14
                BF   $1,A041c            ; 0414 91 07
                PI   A043f               ; 0416 28 04 3f
                LI   $14                 ; 0419 20 14
                LR   $1,A                ; 041b 51
A041c:          LISL 3                   ; 041c 6b
                LR   A,$2                ; 041d 42
                LR   $0,A                ; 041e 50
                CI   $08                 ; 041f 25 08
                BF   $1,A0429            ; 0421 91 07
                PI   A043f               ; 0423 28 04 3f
                LI   $09                 ; 0426 20 09
                LR   $2,A                ; 0428 52
A0429:          LR   A,$2                ; 0429 42
                LR   $0,A                ; 042a 50
                CI   $2e                 ; 042b 25 2e
                BT   1,A0435             ; 042d 81 07
                PI   A043f               ; 042f 28 04 3f
                LI   $2e                 ; 0432 20 2e
                LR   $2,A                ; 0434 52
A0435:          LI   $55                 ; 0435 20 55
                LR   $0,A                ; 0437 50
                PI   drawchar            ; 0438 28 06 79
A043b:          PI   popk                ; 043b 28 01 1e
                PK                       ; 043e 0c
                
A043f:          LR   A,S              ; 043f 4c
                COM                      ; 0440 18
                INC                      ; 0441 1f
                LR   S,A              ; 0442 5c
                LI   $40                 ; beep
                OUTS 5                   ; 0445 b5
                POP                      ; 0446 1c
                
A0447:          LR   K,P                 ; 0447 08
                PI   pushk               ; 0448 28 01 07
                LI   $36                 ; 044b 20 36
                LR   $1,A                ; 044d 51
                LIS  $a                  ; 044e 7a
                LR   $2,A                ; 044f 52
                LIS  $5                  ; 0450 75
                LR   $4,A                ; 0451 54
A0452:          LI   $81                 ; 0452 20 81
                LR   $0,A                ; 0454 50
                PI   drawchar            ; 0455 28 06 79
                LR   A,$1                ; 0458 41
                AI   $fa                 ; 0459 24 fa
                LR   $1,A                ; 045b 51
                LR   A,$2                ; 045c 42
                AI   $08                 ; 045d 24 08
                LR   $2,A                ; 045f 52
                DS   $4                  ; 0460 34
                BNZ  A0452            ; 0461 94 f0
                PI   popk                ; 0463 28 01 1e
                PK                       ; 0466 0c
                
A0467:          LR   K,P                 ; 0467 08
                PI   pushk               ; 0468 28 01 07
                LISU 7                   ; 046b 67
                LISL 0                   ; 046c 68
                LR   A,S              ; 046d 4c
                OI   $00                 ; 046e 22 00
                BT   4,A0498             ; 0470 84 27
                LIS  $0                  ; 0472 70
                LR   S,A              ; 0473 5c
                LISL 2                   ; 0474 6a
                LIS  $1                  ; 0475 71
                LR   $0,A                ; 0476 50
                COM                      ; 0477 18
                ASD  S                ; 0478 dc
                AI   $66                 ; 0479 24 66
                ASD  $0                  ; 047b d0
                LR   S,A              ; 047c 5c
                CI   $99                 ; 047d 25 99
                BNZ  A0495            ; 047f 94 15
                LI   $59                 ; 0481 20 59
                LR   D,A             ; 0483 5e
                LIS  $1                  ; 0484 71
                LR   $0,A                ; 0485 50
                COM                      ; 0486 18
                ASD  S                ; 0487 dc
                AI   $66                 ; 0488 24 66
                ASD  $0                  ; 048a d0
                CI   $99                 ; 048b 25 99
                BNZ  A0494            ; 048d 94 06
                PI   prompts             ; time expired, print S?
                BF   $0,A0498            ; 0492 90 05
                
A0494:          LR   S,A              ; 0494 5c
A0495:          PI   $0271               ; 0495 28 02 71
A0498:          PI   popk                ; 0498 28 01 1e
                PK                       ; 049b 0c
                
A049c:          LR   K,P                 ; 049c 08
                PI   pushk               ; 049d 28 01 07
                LISU 4                   ; 04a0 64
                LISL 7                   ; 04a1 6f
                LIS  $1                  ; 04a2 71
                NS   S                ; 04a3 fc
                BT   4,A04b8             ; 04a4 84 13
                LISU 2                   ; 04a6 62
                LISL 4                   ; 04a7 6c
                PI   A05fc               ; 04a8 28 05 fc
                DS   $0                  ; 04ab 30
                BT   4,A04e8             ; 04ac 84 3b
                LISU 2                   ; 04ae 62
                LISL 1                   ; 04af 69
                PI   A05fc               ; 04b0 28 05 fc
                DS   $0                  ; 04b3 30
                BT   4,A04e5             ; 04b4 84 30
                BF   $0,A04c8            ; 04b6 90 11
                
A04b8:          LISU 2                   ; 04b8 62
                LISL 1                   ; 04b9 69
                PI   A05fc               ; 04ba 28 05 fc
                DS   $0                  ; 04bd 30
                BT   4,A04e5             ; 04be 84 26
                LISU 2                   ; 04c0 62
                LISL 4                   ; 04c1 6c
                PI   A05fc               ; 04c2 28 05 fc
                DS   $0                  ; 04c5 30
                BT   4,A04e8             ; 04c6 84 21
A04c8:          LISU 4                   ; 04c8 64
                LISL 5                   ; 04c9 6d
                LR   A,S              ; 04ca 4c
                NI   $04                 ; 04cb 21 04
                BNZ  A04d2            ; 04cd 94 04
                JMP  A059d               ; 04cf 29 05 9d
                
A04d2:          LISU 3                   ; 04d2 63
                LISL 0                   ; 04d3 68
                PI   A05fc               ; 04d4 28 05 fc
                DS   $0                  ; 04d7 30
                BT   4,A0555             ; 04d8 84 7c
                LISU 3                   ; 04da 63
                LISL 2                   ; 04db 6a
                PI   A05fc               ; 04dc 28 05 fc
                DS   $0                  ; 04df 30
                BT   4,A0559             ; 04e0 84 78
                JMP  A0588               ; 04e2 29 05 88
                
A04e5:          LISL 0                   ; 04e5 68
                BF   $0,A04e9            ; 04e6 90 02
                
A04e8:          LISL 3                   ; 04e8 6b
A04e9:          LISU 2                   ; 04e9 62
                LR   A,I             ; 04ea 4d
                LR   $4,A                ; 04eb 54
                LR   A,I             ; 04ec 4d
                LR   A,S              ; 04ed 4c
                LR   $7,A                ; 04ee 57
                LISU 4                   ; 04ef 64
                LISL 5                   ; 04f0 6d
                LR   A,S              ; 04f1 4c
                SL   1                   ; 04f2 13
                LR   A,$4                ; 04f3 44
                BT   1,A0516             ; 04f4 81 21
                DCI  A050e               ; 04f6 2a 05 0e
                LIS  $7                  ; 04f9 77
                LR   $4,A                ; 04fa 54
                DS   $7                  ; 04fb 37
                DS   $7                  ; 04fc 37
A04fd:          LR   A,$4                ; 04fd 44
                AS   $7                  ; 04fe c7
                LR   $3,A                ; 04ff 53
                LR   A,$2                ; 0500 42
                COM                      ; 0501 18
                INC                      ; 0502 1f
                AS   $3                  ; 0503 c3
                BT   4,A0509             ; 0504 84 04
                DS   $4                  ; 0506 34
                BT   1,A04fd             ; 0507 81 f5
A0509:          LR   A,$4                ; 0509 44
                ADC                      ; 050a 8e
                LM                       ; 050b 16
                BF   $0,A0518            ; 050c 90 0b

A050e:			db	$04,$04,$05,$06,$00,$01,$02,$03                

A0516:          AI   $e9                 ; 0516 24 e9
A0518:          DCI  A0547               ; 0518 2a 05 47
                SL   1                   ; 051b 13
                ADC                      ; 051c 8e
                LM                       ; 051d 16
                LR   $5,A                ; 051e 55
                LM                       ; 051f 16
                LR   $6,A                ; 0520 56
                LISU 4                   ; 0521 64
                LISL 2                   ; 0522 6a
                LR   A,S              ; 0523 4c
                OI   $00                 ; 0524 22 00
                BF   $1,A053a            ; 0526 91 13
                LR   A,$5                ; 0528 45
                COM                      ; 0529 18
                INC                      ; 052a 1f
                LR   $5,A                ; 052b 55
                LISL 5                   ; 052c 6d
                LR   A,S              ; 052d 4c
                SL   1                   ; 052e 13
                LISL 2                   ; 052f 6a
                BF   $1,A0536            ; 0530 91 05
                LR   A,$6                ; 0532 46
                COM                      ; 0533 18
                INC                      ; 0534 1f
                LR   $6,A                ; 0535 56
A0536:          LR   A,$1                ; 0536 41
                AI   $02                 ; 0537 24 02
                LR   $1,A                ; 0539 51
A053a:          LR   A,$5                ; 053a 45
                LR   I,A             ; 053b 5d
                LR   A,$6                ; 053c 46
                LR   I,A             ; 053d 5d
                LIS  $2                  ; 053e 72
                LR   S,A              ; 053f 5c
                LI   $80                 ; beep
                OUTS 5                   ; 0542 b5
A0543:          PI   popk                ; 0543 28 01 1e
                PK                       ; 0546 0c

A0547:			db	$02,$00,$02,$01,$02,$02,$01,$02,$01,$FE,$02,$FE,$02,$FF	

A0555:          LIS  $1                  ; 0555 71
                LR   $3,A                ; 0556 53
                BF   $0,A055b            ; 0557 90 03
                
A0559:          LIS  $2                  ; 0559 72
                LR   $3,A                ; 055a 53
A055b:          LISU 4                   ; 055b 64
                LISL 2                   ; 055c 6a
                LR   A,S              ; 055d 4c
                DS   $3                  ; 055e 33
                BT   4,A0567             ; 055f 84 07
                OI   $00                 ; 0561 22 00
                BT   1,A056b             ; 0563 81 07
                BF   $0,A056e            ; 0565 90 08
                
A0567:          OI   $00                 ; 0567 22 00
                BT   1,A056e             ; 0569 81 04
A056b:          COM                      ; 056b 18
                INC                      ; 056c 1f
                LR   S,A              ; 056d 5c
A056e:          LI   $80                 ; beep
                OUTS 5                   ; 0570 b5
                LISL 3                   ; 0571 6b
                LR   A,S              ; 0572 4c
                OI   $00                 ; 0573 22 00
                BNZ  A0586            ; 0575 94 10
                LISU 2                   ; 0577 62
                LISL 1                   ; 0578 69
                LR   A,S              ; 0579 4c
                NI   $01                 ; 057a 21 01
                BT   4,A0581             ; 057c 84 04
                LIS  $2                  ; 057e 72
                BF   $0,A0583            ; 057f 90 03
                
A0581:          LI   $fe                 ; 0581 20 fe
A0583:          LISU 4                   ; 0583 64
                LISL 3                   ; 0584 6b
                LR   S,A              ; 0585 5c
A0586:          BF   $0,A05f3            ; 0586 90 6c

A0588:          LR   A,$2                ; 0588 42
                CI   $14                 ; 0589 25 14
                BT   1,A059a             ; 058b 81 0e
                CI   $24                 ; 058d 25 24
                BF   $1,A059a            ; 058f 91 0a
                LR   A,$1                ; 0591 41
                CI   $14                 ; 0592 25 14
                BT   1,A05a9             ; 0594 81 14
                CI   $5c                 ; 0596 25 5c
                BF   $1,A05a9            ; 0598 91 10
A059a:          JMP  A0543               ; 059a 29 05 43

A059d:          LR   A,$1                ; 059d 41
                CI   $14                 ; 059e 25 14
                BT   1,A05a9             ; 05a0 81 08
                CI   $5c                 ; 05a2 25 5c
                BF   $1,A05a9            ; 05a4 91 04
                JMP  A0543               ; 05a6 29 05 43
                
A05a9:          LISU 4                   ; 05a9 64
                LISL 2                   ; 05aa 6a
                LR   A,I             ; 05ab 4d
                SL   1                   ; 05ac 13
                BF   $1,A05b3            ; 05ad 91 05
                AI   $02                 ; 05af 24 02
                BF   $0,A05b5            ; 05b1 90 03
                
A05b3:          AI   $fe                 ; 05b3 24 fe
A05b5:          AS   $1                  ; 05b5 c1
                LR   $1,A                ; 05b6 51
                LISL 3                   ; 05b7 6b
                LR   A,S              ; 05b8 4c
                AS   $2                  ; 05b9 c2
                LR   $2,A                ; 05ba 52
                LI   $55                 ; 05bb 20 55
                LR   $0,A                ; 05bd 50
                PI   drawchar            ; 05be 28 06 79
                LISU 4                   ; 05c1 64
                LISL 3                   ; 05c2 6b
                LIS  $0                  ; 05c3 70
                LR   S,A              ; 05c4 5c
                LISU 4                   ; 05c5 64
                LISL 0                   ; 05c6 68
                LR   A,S              ; 05c7 4c
                CI   $30                 ; 05c8 25 30
                BF   $1,A05d1            ; 05ca 91 06
                PI   A02b5               ; 05cc 28 02 b5
                BF   $0,A05d4            ; 05cf 90 04
                
A05d1:          PI   A02ac               ; 05d1 28 02 ac
A05d4:          LI   $ff                 ; 05d4 20 ff
                LR   $5,A                ; 05d6 55
                PI   delay               ; 05d7 28 00 8f
                LISU 3                   ; 05da 63
                LISL 7                   ; 05db 6f
                LR   A,S              ; 05dc 4c
                CI   $02                 ; 05dd 25 02
                BNZ  A05f0            ; 05df 94 10
                LISU 2                   ; 05e1 62
                LISL 6                   ; 05e2 6e
                LR   A,I             ; 05e3 4d
                CI   $15                 ; 05e4 25 15
                BT   4,A05ed             ; 05e6 84 06
                LR   A,S              ; 05e8 4c
                CI   $15                 ; 05e9 25 15
                BNZ  A05f0            ; 05eb 94 04
A05ed:          PI   prompts             ; 05ed 28 02 24
A05f0:          PI   A01a0               ; 05f0 28 01 a0
A05f3:          PI   popk                ; 05f3 28 01 1e
                PI   popk                ; 05f6 28 01 1e
                JMP  A0037               ; 05f9 29 00 37
                
A05fc:          LR   K,P                 ; 05fc 08
                PI   pushk               ; 05fd 28 01 07
                LR   A,S              ; 0600 4c
                COM                      ; 0601 18
                INC                      ; 0602 1f
                AS   $1                  ; 0603 c1
                BF   $1,A0610            ; 0604 91 0b
                LR   A,S              ; 0606 4c
                AI   $05                 ; 0607 24 05
                LR   $6,A                ; 0609 56
                LR   A,$1                ; 060a 41
                COM                      ; 060b 18
                INC                      ; 060c 1f
                AS   S                ; 060d cc
                BT   1,A0626             ; 060e 81 17
A0610:          LR   A,S              ; 0610 4c
                COM                      ; 0611 18
                INC                      ; 0612 1f
                LR   $6,A                ; 0613 56
                LR   A,$1                ; 0614 41
                AI   $02                 ; 0615 24 02
                AS   $6                  ; 0617 c6
                BF   $1,A064f            ; 0618 91 36
                LR   A,$1                ; 061a 41
                AI   $02                 ; 061b 24 02
                COM                      ; 061d 18
                INC                      ; 061e 1f
                LR   $6,A                ; 061f 56
                LR   A,S              ; 0620 4c
                AI   $05                 ; 0621 24 05
                AS   $6                  ; 0623 c6
                BF   $1,A064f            ; 0624 91 2a
A0626:          LR   A,I             ; 0626 4d
                LR   A,S              ; 0627 4c
                COM                      ; 0628 18
                INC                      ; 0629 1f
                LR   $6,A                ; 062a 56
                LR   A,$2                ; 062b 42
                AS   $6                  ; 062c c6
                BF   $1,A0639            ; 062d 91 0b
                LR   A,$2                ; 062f 42
                COM                      ; 0630 18
                INC                      ; 0631 1f
                LR   $6,A                ; 0632 56
                LR   A,S              ; 0633 4c
                AI   $05                 ; 0634 24 05
                AS   $6                  ; 0636 c6
                BT   1,A0655             ; 0637 81 1d
A0639:          LR   A,S              ; 0639 4c
                COM                      ; 063a 18
                INC                      ; 063b 1f
                LR   $6,A                ; 063c 56
                LR   A,$2                ; 063d 42
                AI   $02                 ; 063e 24 02
                AS   $6                  ; 0640 c6
                BF   $1,A064f            ; 0641 91 0d
                LR   A,$2                ; 0643 42
                AI   $02                 ; 0644 24 02
                COM                      ; 0646 18
                INC                      ; 0647 1f
                LR   $6,A                ; 0648 56
                LR   A,S              ; 0649 4c
                AI   $05                 ; 064a 24 05
                AS   $6                  ; 064c c6
                BT   1,A0655             ; 064d 81 07
A064f:          LIS  $0                  ; 064f 70
A0650:          LR   $0,A                ; 0650 50
                PI   popk                ; 0651 28 01 1e
                PK                       ; 0654 0c
                
A0655:          LIS  $1                  ; 0655 71
                BF   $0,A0650            ; 0656 90 f9
                
A0658:          DCI  A0674               ; 0658 2a 06 74
                LISU 4                   ; 065b 64
                LISL 5                   ; 065c 6d
                LR   A,S              ; 065d 4c
                NI   $20                 ; 065e 21 20
                BT   4,A0673             ; 0660 84 12
                LISU 6                   ; 0662 66
                LISL 7                   ; 0663 6f
                DS   S                ; 0664 3c
                BNZ  A0673            ; 0665 94 0d
                LISU 3                   ; 0667 63
                LISL 4                   ; 0668 6c
                LR   A,S              ; 0669 4c
                SR   1                   ; 066a 12
                ADC                      ; 066b 8e
                LM                       ; 066c 16
                LISU 6                   ; 066d 66
                LISL 7                   ; 066e 6f
                LR   I,A             ; 066f 5d
                LISU 7                   ; 0670 67
                LIS  $1                  ; 0671 71
                LR   S,A              ; 0672 5c
A0673:          POP                      ; 0673 1c

A0674:			db $09,$0d,$15,$1c,$1c
                
drawchar:       DCI  bitmaps             ; $679
                LR   K,P                 ; 067c 08
                PI   pushk               ; 067d 28 01 07
                LR   A,IS                ; 0680 0a
                LISU 6                   ; 0681 66
                LISL 4                   ; 0682 6c
                LR   I,A             ; 0683 5d
                LR   A,$3                ; 0684 43
                LR   I,A             ; 0685 5d
                LR   A,$4                ; 0686 44
                LR   S,A              ; 0687 5c
                LIS  $5                  ; 0688 75
                LR   $4,A                ; 0689 54
                LI   $c0                 ; 068a 20 c0
                NS   $0                  ; 068c f0
                LR   $3,A                ; 068d 53
                LI   $3f                 ; 068e 20 3f
                NS   $0                  ; 0690 f0
                LR   $0,A                ; 0691 50
                CI   $15                 ; 0692 25 15
                BNZ  A06b4            ; 0694 94 1f
                LISU 4                   ; 0696 64
                LISL 0                   ; 0697 68
                LIS  $2                  ; 0698 72
                LR   $4,A                ; 0699 54
                PI   A06ec               ; 069a 28 06 ec
                LI   $15                 ; 069d 20 15
                LR   $0,A                ; 069f 50
A06a0:          PI   A0718               ; 06a0 28 07 18
                LR   A,$1                ; 06a3 41
                AI   $06                 ; 06a4 24 06
                LR   $1,A                ; 06a6 51
                LISU 6                   ; 06a7 66
                LISL 5                   ; 06a8 6d
                LR   A,I             ; 06a9 4d
                LR   $3,A                ; 06aa 53
                LR   A,S              ; 06ab 4c
                LR   $4,A                ; 06ac 54
                LISL 4                   ; 06ad 6c
                LR   A,S              ; 06ae 4c
                LR   IS,A                ; 06af 0b
                PI   popk                ; 06b0 28 01 1e
                PK                       ; 06b3 0c
                
A06b4:          CI   $30                 ; 06b4 25 30
                BNZ  A06c2            ; 06b6 94 0b
                LISU 2                   ; 06b8 62
                LISL 1                   ; 06b9 69
                PI   A06ec               ; 06ba 28 06 ec
                LISL 0                   ; 06bd 68
                LR   A,I             ; 06be 4d
                LR   $0,A                ; 06bf 50
                BF   $0,A06a0            ; 06c0 90 df
                
A06c2:          CI   $31                 ; 06c2 25 31
                BNZ  A06d0            ; 06c4 94 0b
                LISU 2                   ; 06c6 62
                LISL 4                   ; 06c7 6c
                PI   A06ec               ; 06c8 28 06 ec
                LISL 3                   ; 06cb 6b
                LR   A,I             ; 06cc 4d
                LR   $0,A                ; 06cd 50
                BF   $0,A06a0            ; 06ce 90 d1
                
A06d0:          CI   $32                 ; 06d0 25 32
                BNZ  A06de            ; 06d2 94 0b
                LISU 3                   ; 06d4 63
                LISL 0                   ; 06d5 68
                PI   A06ec               ; 06d6 28 06 ec
                LI   $14                 ; 06d9 20 14
                LR   $0,A                ; 06db 50
                BF   $0,A06a0            ; 06dc 90 c3
                
A06de:          CI   $33                 ; 06de 25 33
                BNZ  A06a0            ; 06e0 94 bf
                LISU 3                   ; 06e2 63
                LISL 2                   ; 06e3 6a
                PI   A06ec               ; 06e4 28 06 ec
                LI   $14                 ; 06e7 20 14
                LR   $0,A                ; 06e9 50
                BF   $0,A06a0            ; 06ea 90 b5
                
A06ec:          LR   K,P                 ; 06ec 08
                PI   pushk               ; 06ed 28 01 07
                LR   A,S              ; 06f0 4c
                XS   $1                  ; 06f1 e1
                BNZ  A06f9            ; 06f2 94 06
                LR   A,I             ; 06f4 4d
                LR   A,D             ; 06f5 4e
                XS   $2                  ; 06f6 e2
                BT   4,A0714             ; 06f7 84 1c
A06f9:          LR   A,$1                ; 06f9 41
                LR   $5,A                ; 06fa 55
                LR   A,$2                ; 06fb 42
                LR   $6,A                ; 06fc 56
                LR   A,S              ; 06fd 4c
                LR   $1,A                ; 06fe 51
                LR   A,$5                ; 06ff 45
                LR   I,A             ; 0700 5d
                LR   A,S              ; 0701 4c
                LR   $2,A                ; 0702 52
                LR   A,$6                ; 0703 46
                LR   D,A             ; 0704 5e
                LIS  $d                  ; 0705 7d
                LR   $0,A                ; 0706 50
                DCI  bitmaps             ; 0707 2a 07 67
                PI   A0718               ; 070a 28 07 18
                DCI  bitmaps             ; 070d 2a 07 67
                LR   A,I             ; 0710 4d
                LR   $1,A                ; 0711 51
                LR   A,D             ; 0712 4e
                LR   $2,A                ; 0713 52
A0714:          PI   popk                ; 0714 28 01 1e
                PK                       ; 0717 0c
                
A0718:          LR   A,$0                ; 0718 40
                SL   1                   ; 0719 13
                ADC                      ; 071a 8e
                AS   $0                  ; 071b c0
                ADC                      ; 071c 8e
                LI   $40                 ; 071d 20 40
                OUTS 0                   ; 071f b0
                LR   A,$4                ; 0720 44
                LR   $6,A                ; 0721 56
A0722:          LR   $5,A                ; 0722 55
                LM                       ; 0723 16
                LR   $7,A                ; 0724 57
                LR   A,$2                ; 0725 42
                AI   $00                 ; 0726 24 00
                COM                      ; 0728 18
                NI   $3f                 ; 0729 21 3f
                LR   $8,A                ; 072b 58
                INS  5                   ; 072c a5
                NI   $c0                 ; 072d 21 c0
                AS   $8                  ; 072f c8
                OUTS 5                   ; 0730 b5
A0731:          LR   A,$1                ; 0731 41
                AI   $fc                 ; 0732 24 fc
                COM                      ; 0734 18
                OUTS 4                   ; 0735 b4
                LR   A,$7                ; 0736 47
                OI   $00                 ; 0737 22 00
                LR   A,$3                ; 0739 43
                BF   $1,A073d            ; 073a 91 02
                LIS  $0                  ; 073c 70
A073d:          COM                      ; 073d 18
                OUTS 1                   ; 073e b1
                LR   A,$7                ; 073f 47
                SL   1                   ; 0740 13
                LR   $7,A                ; 0741 57
                LI   $60                 ; 0742 20 60
                OUTS 0                   ; 0744 b0
                LI   $50                 ; 0745 20 50
                OUTS 0                   ; 0747 b0
                LR   A,$1                ; 0748 41
                INC                      ; 0749 1f
                LR   $1,A                ; 074a 51
                LIS  $4                  ; 074b 74
                LR   $8,A                ; 074c 58
A074d:          DS   $8                  ; 074d 38
                BNZ  A074d            ; 074e 94 fe
                DS   $5                  ; 0750 35
                BNZ  A0731            ; 0751 94 df
                LR   A,$2                ; 0753 42
                INC                      ; 0754 1f
                LR   $2,A                ; 0755 52
                LR   A,$4                ; 0756 44
                COM                      ; 0757 18
                INC                      ; 0758 1f
                AS   $1                  ; 0759 c1
                LR   $1,A                ; 075a 51
                LR   A,$4                ; 075b 44
                DS   $6                  ; 075c 36
                BNZ  A0722            ; 075d 94 c4
                LR   A,$4                ; 075f 44
                COM                      ; 0760 18
                INC                      ; 0761 1f
                AS   $2                  ; 0762 c2
                LR   $2,A                ; 0763 52
                LIS  $0                  ; 0764 70
                OUTS 0                   ; 0765 b0
                POP                      ; 0766 1c

;=========;
; Bitmaps ;
;=========;

; a series of 5x8 bitmaps used by the internal games,
; the prompt routine, and several cartridges

bitmaps:
	; 0
	.byte	%11111000
	.byte	%10001000
	.byte	%10001000
	.byte	%10001000
	.byte	%11111000

	; 1
	.byte	%00100000
	.byte	%00100000
	.byte	%00100000
	.byte	%00100000
	.byte	%00100000

	; 2
	.byte	%11111000
	.byte	%00001000
	.byte	%11111000
	.byte	%10000000
	.byte	%11111000

	; 3
	.byte	%11111000
	.byte	%00001000
	.byte	%11111000
	.byte	%00001000
	.byte	%11111000

	; 4
	.byte	%10001000
	.byte	%10001000
	.byte	%11111000
	.byte	%00001000
	.byte	%00001000

	; 5
	.byte	%11111000
	.byte	%10000000
	.byte	%11111000
	.byte	%00001000
	.byte	%11111000

	; 6
	.byte	%11111000
	.byte	%10000000
	.byte	%11111000
	.byte	%10001000
	.byte	%11111000

	; 7
	.byte	%11111000
	.byte	%00001000
	.byte	%00010000
	.byte	%00010000
	.byte	%00010000

	; 8
	.byte	%11111000
	.byte	%10001000
	.byte	%11111000
	.byte	%10001000
	.byte	%11111000

	; 9
	.byte	%11111000
	.byte	%10001000
	.byte	%11111000
	.byte	%00001000
	.byte	%11111000

	; G
	.byte	%11111000
	.byte	%10000000
	.byte	%10011000
	.byte	%10001000
	.byte	%11111000

	; ?
	.byte	%11111000
	.byte	%00001000
	.byte	%00111000
	.byte	%00000000
	.byte	%00100000

	; T
	.byte	%11111000
	.byte	%00100000
	.byte	%00100000
	.byte	%00100000
	.byte	%00100000

	; (space)
	.byte	%00000000
	.byte	%00000000
	.byte	%00000000
	.byte	%00000000
	.byte	%00000000

	; M
	.byte	%11111000
	.byte	%10101000
	.byte	%10101000
	.byte	%10101000
	.byte	%10101000

	; X
	.byte	%10001000
	.byte	%01010000
	.byte	%00100000
	.byte	%01010000
	.byte	%10001000

	; (block)
	.byte	%11111111
	.byte	%11111111
	.byte	%11111111
	.byte	%11111111
	.byte	%11111111

	; :
	.byte	%00000000
	.byte	%00100000
	.byte	%00000000
	.byte	%00100000
	.byte	%00000000

	; -
	.byte	%00000000
	.byte	%00000000
	.byte	%11111000
	.byte	%00000000
	.byte	%00000000

	; || (center)
	.byte	%01010000
	.byte	%01010000
	.byte	%01010000
	.byte	%01010000
	.byte	%01010000

	; || (left)
	.byte	%10100000
	.byte	%10100000
	.byte	%10100000
	.byte	%10100000
	.byte	%10100000

	; '
	.byte	%11000000
	.byte	%11000000
	.byte	%00000000
	.byte	%00000000
	.byte	%00000000

				db $08,$08,$08,$08,$08	;|
				db $20,$20,$20,$20,$20	;|
				db $10,$10,$20,$40,$40	; rest are slanted lines
				db $08,$10,$20,$40,$80
				db $00,$18,$20,$C0,$00
				db $00,$C0,$20,$18,$00
				db $80,$40,$20,$10,$08
				db $40,$40,$20,$10,$10
				
				db $00,$00,$00