Difference between revisions of "Disassembly:Videocart 4"

From veswiki
Jump to: navigation, search
 
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Incomplete Disassembly}}
 
{{Incomplete Disassembly}}
  
This is the disassembly of the [[Channel F]] [[Videocart 4]] made with Peter Trauner's [[f8tool]]. Original code is copyright © 1977 Fairchild Semiconductor.
+
This is the disassembly, made with Peter Trauner's [[f8tool]], of the [[Channel F]] [[Videocart 4]]. Original code is copyright © 1977 Fairchild Semiconductor.
  
 
<pre>Reset: equ $0000
 
<pre>Reset: equ $0000
Line 9: Line 9:
 
CartridgeStart: LR  $5,A                ; 0800 55
 
CartridgeStart: LR  $5,A                ; 0800 55
 
                 NOP                      ; 0801 2b
 
                 NOP                      ; 0801 2b
CartridgeEntry: LIS  $0                  ; 0802 70
+
CartridgeEntry: LIS  $0                  ; 0802 70         Set ports to 0
 
                 OUTS 0                  ; 0803 b0
 
                 OUTS 0                  ; 0803 b0
 
                 OUTS 1                  ; 0804 b1
 
                 OUTS 1                  ; 0804 b1
 
                 OUTS 4                  ; 0805 b4
 
                 OUTS 4                  ; 0805 b4
 
                 OUTS 5                  ; 0806 b5
 
                 OUTS 5                  ; 0806 b5
                 LISU 7                  ; 0807 67
+
                 LISU 7                  ; 0807 67         Set ISAR tp 'O'73       
 
                 LISL 3                  ; 0808 6b
 
                 LISL 3                  ; 0808 6b
 
                 LI  $3c                ; 0809 20 3c
 
                 LI  $3c                ; 0809 20 3c
                 LR  (IS),A              ; 080b 5c
+
                 LR  (IS),A              ; 080b 5c         register 'O'73 = $3C
 
                 LI  $d0                ; 080c 20 d0
 
                 LI  $d0                ; 080c 20 d0
 
                 LR  $3,A                ; 080e 53
 
                 LR  $3,A                ; 080e 53
                 PI  $00d0              ; 080f 28 00 d0
+
                 PI  $00d0              ; 080f 28 00 d0   Calls BIOS clear screen routine, clear to grey background
A0812:         LI  $8a                ; 0812 20 8a
+
PROMPT:         LI  $8a                ; 0812 20 8a     Loads character $8A in r0
 
                 LR  $0,A                ; 0814 50
 
                 LR  $0,A                ; 0814 50
                 PI  $0099              ; 0815 28 00 99
+
                 PI  $0099              ; 0815 28 00 99   Calls BIOS prompt, draws character and waits for keypress
                 LR  A,$4                ; 0818 44
+
                 LR  A,$4                ; 0818 44         Button result returned in r4
                 CI  $04                ; 0819 25 04
+
                 CI  $04                ; 0819 25 04     Compare to %00000100 - Button 3
 
                 BF  $4,A0820            ; 081b 94 04
 
                 BF  $4,A0820            ; 081b 94 04
                 JMP  A0e99              ; 081d 29 0e 99
+
                 JMP  A0e99              ; 081d 29 0e 99   Button 3 makes a jump to A0e99
A0820:          LR  A,$4                ; 0820 44
+
A0820:          LR  A,$4                ; 0820 44         Not button 3...
                 CI  $01                ; 0821 25 01
+
                 CI  $01                ; 0821 25 01     Button 1?
                 BT  4,A082d             ; 0823 84 09
+
                 BT  4,GAME1             ; 0823 84 09     If it is, jump
                 CI  $02                ; 0825 25 02
+
                 CI  $02                ; 0825 25 02     Button 2?
                 BF  $4,A0812            ; 0827 94 ea
+
                 BF  $4,PROMPT          ; 0827 94 ea     If not, go back to wait for button press A0812
                 LR  A,$b                ; 0829 4b
+
                 LR  A,$b                ; 0829 4b         Game 2 selected
 
                 OI  $20                ; 082a 22 20
 
                 OI  $20                ; 082a 22 20
                 LR  $b,A                ; 082c 5b
+
                 LR  $b,A                ; 082c 5b         Change bit 5 in r11 to 1
A082d:          LI  $93                ; 082d 20 93
+
GAME1:          LI  $93                ; 082d 20 93
 
                 LR  $3,A                ; 082f 53
 
                 LR  $3,A                ; 082f 53
                 PI  $00d0              ; 0830 28 00 d0
+
                 PI  $00d0              ; 0830 28 00 d0   Clear screen to lt.blue using BIOS routine.
                 BF  $0,A0861            ; 0833 90 2d
+
                 BF  $0,STARTGAME        ; 0833 90 2d     Branch (unconditionally) to A0861
 
A0835:          LR  K,P                ; 0835 08
 
A0835:          LR  K,P                ; 0835 08
 
                 LIS  $3                  ; 0836 73
 
                 LIS  $3                  ; 0836 73
Line 71: Line 71:
 
                 LR  P,K                ; 085f 09
 
                 LR  P,K                ; 085f 09
 
                 POP                      ; 0860 1c
 
                 POP                      ; 0860 1c
A0861:         LISU 2                  ; 0861 62
+
STARTGAME:     LISU 2                  ; 0861 62
 
                 LISL 0                  ; 0862 68
 
                 LISL 0                  ; 0862 68
 
                 LI  $18                ; 0863 20 18
 
                 LI  $18                ; 0863 20 18
Line 1,278: Line 1,278:
 
                 DS  $4                  ; 0e97 34
 
                 DS  $4                  ; 0e97 34
 
A0e98:          LR  A,$4                ; 0e98 44
 
A0e98:          LR  A,$4                ; 0e98 44
A0e99:          DCI  A0fd0              ; 0e99 2a 0f d0
+
A0e99:          DCI  A0fd0              ; 0e99 2a 0f d0 Jumps here after button 3 is pressed at prompt, set keypress data pointer
 
A0e9c:          LI  $8a                ; 0e9c 20 8a
 
A0e9c:          LI  $8a                ; 0e9c 20 8a
                 LR  $0,A                ; 0e9e 50
+
                 LR  $0,A                ; 0e9e 50       $8A in r0 (RED G)
                 LR  Q,DC                ; 0e9f 0e
+
                 LR  Q,DC                ; 0e9f 0e       Load DC0 address in Q,backup address
                 PI  $0099              ; 0ea0 28 00 99
+
                 PI  $0099              ; 0ea0 28 00 99 Jump to BIOS subroutine prompt + read buttons
                 LR  DC,Q                ; 0ea3 0f
+
                 LR  DC,Q                ; 0ea3 0f       Restore address to DC again
                 LR  A,$4                ; 0ea4 44
+
                 LR  A,$4                ; 0ea4 44       Fetch collected button press
                 CM                      ; 0ea5 8d
+
                 CM                      ; 0ea5 8d       Compare memory and A by doing ((DC0))-A but only set flags, A is untouched. DC0 is increased
                 BF  $4,A0ed3            ; 0ea6 94 2c
+
                 BF  $4,A0ed3            ; 0ea6 94 2c     If they're not the same, reboot the cartridge
                 LR  H,DC                ; 0ea8 11
+
                 LR  H,DC                ; 0ea8 11       Store current DC0 address in H this time (r10 and r11)
                 LR  A,$a                ; 0ea9 4a
+
                 LR  A,$a                ; 0ea9 4a       Load upper part of H in A
                 CI  $10                ; 0eaa 25 10
+
                 CI  $10                ; 0eaa 25 10    Check if DC0 address rolled over from $0F to $10
                 BF  $4,A0e9c            ; 0eac 94 ef
+
                 BF  $4,A0e9c            ; 0eac 94 ef     If it didn't, repeat the above (press the button same as the data) until you do.
                 LI  $10                ; 0eae 20 10
+
                 LI  $10                ; 0eae 20 10     *****    DRAW SECRET MESSAGE    *****
                 LR  $1,A                ; 0eb0 51
+
                 LR  $1,A                ; 0eb0 51       X coordinate $10 in r1
 
A0eb1:          LI  $13                ; 0eb1 20 13
 
A0eb1:          LI  $13                ; 0eb1 20 13
A0eb3:          LR  $2,A                ; 0eb3 52
+
A0eb3:          LR  $2,A                ; 0eb3 52       Y coordinate $13 in r2
                 DCI  A0ed6              ; 0eb4 2a 0e d6
+
                 DCI  A0ed6              ; 0eb4 2a 0e d6 Point data counter to graphics
 
                 LIS  $7                  ; 0eb7 77
 
                 LIS  $7                  ; 0eb7 77
                 LR  $4,A                ; 0eb8 54
+
                 LR  $4,A                ; 0eb8 54       8 letters, amount in r4 (DONE BY )
 
A0eb9:          LI  $80                ; 0eb9 20 80
 
A0eb9:          LI  $80                ; 0eb9 20 80
                 LR  $0,A                ; 0ebb 50
+
                 LR  $0,A                ; 0ebb 50       $80 in 0 - RED color   
                 PI  $067c              ; 0ebc 28 06 7c
+
                 PI  $067c              ; 0ebc 28 06 7c Subroutine jump to BIOS drawchar...
 
                 DS  $4                  ; 0ebf 34
 
                 DS  $4                  ; 0ebf 34
                 BF  $4,A0eb9            ; 0ec0 94 f8
+
                 BF  $4,A0eb9            ; 0ec0 94 f8     Loop if there's letters left
 
A0ec2:          LI  $10                ; 0ec2 20 10
 
A0ec2:          LI  $10                ; 0ec2 20 10
                 LR  $1,A                ; 0ec4 51
+
                 LR  $1,A                ; 0ec4 51       X coordinate $10
 
                 LI  $1a                ; 0ec5 20 1a
 
                 LI  $1a                ; 0ec5 20 1a
A0ec7:          LR  $2,A                ; 0ec7 52
+
A0ec7:          LR  $2,A                ; 0ec7 52       Y coordinate $1A
 
                 LIS  $f                  ; 0ec8 7f
 
                 LIS  $f                  ; 0ec8 7f
                 LR  $4,A                ; 0ec9 54
+
                 LR  $4,A                ; 0ec9 54       16 letters to write, loaded in r4 (MICHAEL K GLASS)
 
A0eca:          LI  $40                ; 0eca 20 40
 
A0eca:          LI  $40                ; 0eca 20 40
                 LR  $0,A                ; 0ecc 50
+
                 LR  $0,A                ; 0ecc 50       Blue color set in r0
                 PI  $067c              ; 0ecd 28 06 7c
+
                 PI  $067c              ; 0ecd 28 06 7c Subroutine jump to BIOS drawchar...
                 DS  $4                  ; 0ed0 34
+
                 DS  $4                  ; 0ed0 34       Decrease r4
                 BF  $4,A0eca            ; 0ed1 94 f8
+
                 BF  $4,A0eca            ; 0ed1 94 f8     Repeat if not yet 0
A0ed3:          JMP  CartridgeEntry      ; 0ed3 29 08 02
+
A0ed3:          JMP  CartridgeEntry      ; 0ed3 29 08 02 Reboot cartridge
A0ed6:         XS   $0                  ; 0ed6 e0
+
 
                 BF  $0,A0e60            ; 0ed7 90 88
+
;        Graphics data starts here 5x5 pixels, one row per byte.
                 BF  $0,-32              ; 0ed9 90 e0
+
A0ed6:   
                 NS  $8                  ; 0edb f8
+
                 .byte %11100000
                 AM                      ; 0edc 88
+
                .byte %10010000
                 AM                      ; 0edd 88
+
                .byte %10001000
                 AM                      ; 0ede 88
+
                .byte %10010000
                 NS  $8                  ; 0edf f8
+
                 .byte %11100000          ; D
                 AM                      ; 0ee0 88
+
 
A0ee1:          AS  $8                  ; 0ee1 c8
+
                 .byte %11111000
                 INS  8                  ; 0ee2 a8
+
                 .byte %10001000
                 BF  $8,A0e6c            ; 0ee3 98 88
+
                 .byte %10001000
A0ee5:          NS  $8                  ; 0ee5 f8
+
                 .byte %10001000
                 BT  0,A0ec7            ; 0ee6 80 e0
+
                 .byte %11111000          ; O
                 BT  0,A0ee1            ; 0ee8 80 f8
+
 
                 LR  A,KU               ; 0eea 00
+
                 .byte $88
                 LR  A,KU                ; 0eeb 00
+
                .byte $c8
                 LR  A,KU                ; 0eec 00
+
                 .byte $a8
                 LR  A,KU                ; 0eed 00
+
                 .byte $98
                 LR  A,KU               ; 0eee 00
+
                .byte $88               ; N
                 NS  $0                  ; 0eef f0
+
 
                 AM                      ; 0ef0 88
+
                .byte $f8
                 NS  $0                  ; 0ef1 f0
+
                 .byte $80
                 AM                      ; 0ef2 88
+
                .byte $e0
                 NS  $0                  ; 0ef3 f0
+
                 .byte $80
A0ef4:          AM                      ; 0ef4 88
+
                 .byte $f8               ; E
                 LR  $0,A                ; 0ef5 50
+
 
                 LI  $20                ; 0ef6 20 20
+
                .byte $00
                 LI  $88                ; 0ef8 20 88
+
                 .byte $00
                 ASD  $8                  ; 0efa d8
+
                 .byte $00
                 INS  8                  ; 0efb a8
+
                 .byte $00
                 AM                      ; 0efc 88
+
                 .byte $00               ; space
                 AM                      ; 0efd 88
+
 
                 NS  $8                  ; 0efe f8
+
                 .byte $f0
A0eff:          LI  $20                ; 0eff 20 20
+
                 .byte $88
                 LI  $f8                 ; 0f01 20 f8
+
                 .byte $f0
                 NS  $8                  ; 0f03 f8
+
                 .byte $88
                 BT  0,A0e85            ; 0f04 80 80
+
                 .byte $f0                ; B
                 BT  0,A0eff            ; 0f06 80 f8
+
 
                 AM                      ; 0f08 88
+
                .byte $88
                 AM                      ; 0f09 88
+
                 .byte $50
                 NS  $8                  ; 0f0a f8
+
                 .byte $20
                 AM                      ; 0f0b 88
+
                 .byte $20
                 AM                      ; 0f0c 88
+
                .byte $20               ; Y
                 NS  $8                  ; 0f0d f8
+
 
A0f0e:          AM                      ; 0f0e 88
+
                 .byte $88
                 NS  $8                  ; 0f0f f8
+
                 .byte $d8
                 AM                      ; 0f10 88
+
                 .byte $a8
                 AM                      ; 0f11 88
+
                 .byte $88
                 NS  $8                  ; 0f12 f8
+
                 .byte $88                ; M
                 BT  0,A0ef4            ; 0f13 80 e0
+
 
                 BT  0,A0f0e            ; 0f15 80 f8
+
                 .byte $f8
                 BT  0,A0e98            ; 0f17 80 80
+
                .byte $20
                 BT  0,-128              ; 0f19 80 80
+
                 .byte $20
                 NS  $8                  ; 0f1b f8
+
                .byte $20
                 LR  A,KU                ; 0f1c 00
+
                 .byte $f8               ; I
                 LR  A,KU                ; 0f1d 00
+
 
                 LR  A,KU                ; 0f1e 00
+
                 .byte $f8
                 LR  A,KU                ; 0f1f 00
+
                 .byte $80
                 LR  A,KU               ; 0f20 00
+
                .byte $80
                 BF  $0,A0ec2            ; 0f21 90 a0
+
                 .byte $80
                 AS  $0                  ; 0f23 c0
+
                .byte $f8               ; C
                 INS  0                  ; 0f24 a0
+
 
                 BF  $0,0               ; 0f25 90 00
+
                 .byte $88
                 LR  A,KU                ; 0f27 00
+
                 .byte $88
                 LR  A,KU                ; 0f28 00
+
                 .byte $f8
                 LR  A,KU                ; 0f29 00
+
                 .byte $88
                 LR  A,KU               ; 0f2a 00
+
                 .byte $88                ; H
                 NS  $8                  ; 0f2b f8
+
 
                 BT  0,A0ee5            ; 0f2c 80 b8
+
                 .byte $f8
                 AM                      ; 0f2e 88
+
                .byte $88
                 NS  $8                  ; 0f2f f8
+
                 .byte $f8
                 BT  0,A0eb1            ; 0f30 80 80
+
                 .byte $88
                 BT  0,A0eb3            ; 0f32 80 80
+
                 .byte $88                ; A
A0f34:          NS  $0                  ; 0f34 f0
+
 
                 NS  $8                  ; 0f35 f8
+
                 .byte $f8
                 AM                      ; 0f36 88
+
                 .byte $80
                 NS  $8                  ; 0f37 f8
+
                .byte $e0
                 AM                      ; 0f38 88
+
                 .byte $80
A0f39:          AM                      ; 0f39 88
+
                .byte $f8               ; E
                 NS  $8                  ; 0f3a f8
+
 
                 BT  0,A0f34            ; 0f3b 80 f8
+
                 .byte $80
                 LR  K,P                ; 0f3d 08
+
                .byte $80
                 NS  $8                  ; 0f3e f8
+
                 .byte $80
                 NS  $8                  ; 0f3f f8
+
                .byte $80
                 BT  0,A0f39            ; 0f40 80 f8
+
                 .byte $f8                ; L
                 LR  K,P                ; 0f42 08
+
 
                 NS  $8                  ; 0f43 f8
+
                 .byte $00
                 db  $ff               
+
                 .byte $00
                db  $ff               
+
                 .byte $00
                db  $ff               
+
                 .byte $00
                db  $ff               
+
                 .byte $00               ; space
                db  $ff               
+
 
                db  $ff               
+
                 .byte $90
                db  $ff               
+
                .byte $a0
                db  $ff               
+
                 .byte $c0
                db  $ff               
+
                 .byte $a0
                 db  $ff               
+
                 .byte $90               ; K
                db  $ff               
+
 
                db  $ff               
+
                .byte $00
                db  $ff               
+
                 .byte $00
                db  $ff               
+
                 .byte $00
                db  $ff               
+
                 .byte $00
                db  $ff               
+
                 .byte $00               ; space
                db  $ff               
+
 
                db  $ff               
+
                 .byte $f8
                db  $ff               
+
                 .byte $80
                db  $ff               
+
                .byte $b8
                db  $ff               
+
                 .byte $88
                db  $ff               
+
                 .byte $f8                ; G
                db  $ff               
+
 
                db  $ff               
+
                 .byte $80
                db  $ff               
+
                .byte $80
                 db  $ff               
+
                 .byte $80
                db  $ff               
+
                .byte $80
                db  $ff               
+
                .byte $f0                ; L
                db  $ff               
+
 
                db  $ff               
+
                 .byte $f8
                db  $ff               
+
                 .byte $88
                db  $ff               
+
                 .byte $f8
                db  $ff               
+
                 .byte $88
                db  $ff               
+
                .byte $88                ; A
                db  $ff               
+
 
                db  $ff               
+
                 .byte $f8
                db  $ff               
+
                 .byte $80
                db  $ff               
+
                .byte $f8
                db  $ff               
+
                 .byte $08
                db  $ff               
+
                 .byte $f8                ; S
                db  $ff               
+
 
                 db  $ff               
+
                 .byte $f8
                db  $ff               
+
                 .byte $80
                db  $ff               
+
                .byte $f8
                db  $ff               
+
                 .byte $08
                db  $ff               
+
                 .byte $f8                ; S
                db  $ff               
+
 
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                db  $ff               
+
                 .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF             
                db  $ff               
+
 
                 db  $ff               
+
; Easter Egg keypresses needed after selecting the backdoor option with button 3
                db  $ff               
+
; $01 means button 1, $02 means button 2, $04 means button 3, $08 means button 4
                db  $ff               
+
 
                db  $ff               
+
A0fd0:
                db  $ff               
+
                 .byte $04,$08,$04,$02,$08,$02,$01,$02,$08,$01,$04,$04,$02,$04,$01,$08  
                db  $ff               
+
                 .byte $04,$02,$01,$08,$02,$04,$01,$08,$04,$02,$02,$01,$04,$02,$04,$08  
                db  $ff               
+
                 .byte $02,$04,$04,$08,$01,$01,$01,$02,$02,$04,$04,$02,$08,$08,$08,$04
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                 db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                 db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                 db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                 db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
                db  $ff               
 
A0fd0:         LR  KU,A                ; 0fd0 04
 
                 LR  K,P                ; 0fd1 08
 
                LR  KU,A                ; 0fd2 04
 
                LR  A,QU                ; 0fd3 02
 
                LR  K,P                ; 0fd4 08
 
                LR  A,QU                ; 0fd5 02
 
                LR  A,KL                ; 0fd6 01
 
                LR  A,QU                ; 0fd7 02
 
                LR  K,P                ; 0fd8 08
 
                LR  A,KL                ; 0fd9 01
 
                LR  KU,A                ; 0fda 04
 
                LR  KU,A                ; 0fdb 04
 
                LR  A,QU                ; 0fdc 02
 
                LR  KU,A                ; 0fdd 04
 
                LR  A,KL                ; 0fde 01
 
                LR  K,P                ; 0fdf 08
 
                 LR  KU,A                ; 0fe0 04
 
                LR  A,QU                ; 0fe1 02
 
                LR  A,KL                ; 0fe2 01
 
                LR  K,P                ; 0fe3 08
 
                LR  A,QU                ; 0fe4 02
 
                LR  KU,A                ; 0fe5 04
 
                LR  A,KL                ; 0fe6 01
 
                LR  K,P                ; 0fe7 08
 
                LR  KU,A                ; 0fe8 04
 
                LR  A,QU                ; 0fe9 02
 
                LR  A,QU                ; 0fea 02
 
                LR  A,KL                ; 0feb 01
 
                LR  KU,A                ; 0fec 04
 
                LR  A,QU                ; 0fed 02
 
                LR  KU,A                ; 0fee 04
 
                LR  K,P                ; 0fef 08
 
                 LR  A,QU                ; 0ff0 02
 
                LR  KU,A                ; 0ff1 04
 
                LR  KU,A                ; 0ff2 04
 
                LR  K,P                ; 0ff3 08
 
                LR  A,KL                ; 0ff4 01
 
                LR  A,KL                ; 0ff5 01
 
                LR  A,KL                ; 0ff6 01
 
                LR  A,QU                ; 0ff7 02
 
                LR  A,QU                ; 0ff8 02
 
                LR  KU,A                ; 0ff9 04
 
                LR  KU,A                ; 0ffa 04
 
                LR  A,QU                ; 0ffb 02
 
                LR  K,P                ; 0ffc 08
 
                LR  K,P                ; 0ffd 08
 
                LR  K,P                ; 0ffe 08
 
                LR  KU,A                ; 0fff 04
 
  
 +
; Decodes to sequence: 343 242 124 133 231 432 142 314 322 132 342 334 111 223 324 443 (after first pressing button 3)
  
 
</pre>
 
</pre>

Latest revision as of 13:34, 13 August 2019

Template:Incomplete Disassembly

This is the disassembly, made with Peter Trauner's f8tool, of the Channel F Videocart 4. Original code is copyright © 1977 Fairchild Semiconductor.

Reset: equ $0000

org $0800

CartridgeStart: LR   $5,A                ; 0800 55
                NOP                      ; 0801 2b
CartridgeEntry: LIS  $0                  ; 0802 70         Set ports to 0
                OUTS 0                   ; 0803 b0
                OUTS 1                   ; 0804 b1
                OUTS 4                   ; 0805 b4
                OUTS 5                   ; 0806 b5
                LISU 7                   ; 0807 67         Set ISAR tp 'O'73         
                LISL 3                   ; 0808 6b
                LI   $3c                 ; 0809 20 3c
                LR   (IS),A              ; 080b 5c         register 'O'73 = $3C
                LI   $d0                 ; 080c 20 d0
                LR   $3,A                ; 080e 53
                PI   $00d0               ; 080f 28 00 d0   Calls BIOS clear screen routine, clear to grey background
PROMPT:         LI   $8a                 ; 0812 20 8a      Loads character $8A in r0
                LR   $0,A                ; 0814 50
                PI   $0099               ; 0815 28 00 99   Calls BIOS prompt, draws character and waits for keypress
                LR   A,$4                ; 0818 44         Button result returned in r4
                CI   $04                 ; 0819 25 04      Compare to %00000100 - Button 3
                BF   $4,A0820            ; 081b 94 04
                JMP  A0e99               ; 081d 29 0e 99   Button 3 makes a jump to A0e99
A0820:          LR   A,$4                ; 0820 44         Not button 3...
                CI   $01                 ; 0821 25 01      Button 1?
                BT   4,GAME1             ; 0823 84 09      If it is, jump 
                CI   $02                 ; 0825 25 02      Button 2?
                BF   $4,PROMPT           ; 0827 94 ea      If not, go back to wait for button press A0812
                LR   A,$b                ; 0829 4b         Game 2 selected
                OI   $20                 ; 082a 22 20
                LR   $b,A                ; 082c 5b         Change bit 5 in r11 to 1
GAME1:          LI   $93                 ; 082d 20 93
                LR   $3,A                ; 082f 53
                PI   $00d0               ; 0830 28 00 d0   Clear screen to lt.blue using BIOS routine.
                BF   $0,STARTGAME        ; 0833 90 2d      Branch (unconditionally) to A0861
A0835:          LR   K,P                 ; 0835 08
                LIS  $3                  ; 0836 73
                LR   $9,A                ; 0837 59
                DCI  A0dd7               ; 0838 2a 0d d7
                BF   $0,A083e            ; 083b 90 02
A083d:          LR   DC,Q                ; 083d 0f
A083e:          LI   $08                 ; 083e 20 08
                LR   $3,A                ; 0840 53
                LR   $6,A                ; 0841 56
                LR   $5,A                ; 0842 55
                LM                       ; 0843 16
                LR   $0,A                ; 0844 50
                LM                       ; 0845 16
                LR   $1,A                ; 0846 51
                LM                       ; 0847 16
                LR   $2,A                ; 0848 52
                LR   Q,DC                ; 0849 0e
                LI   $c0                 ; 084a 20 c0
                LR   $4,A                ; 084c 54
                DCI  A0e60               ; 084d 2a 0e 60
                LR   A,$b                ; 0850 4b
                SL   1                   ; 0851 13
                BT   1,A0859             ; 0852 81 06
                LIS  $0                  ; 0854 70
                LR   $0,A                ; 0855 50
                DCI  $0e88               ; 0856 2a 0e 88
A0859:          PI   A0ca8               ; 0859 28 0c a8
                DS   $9                  ; 085c 39
                BF   $4,A083d            ; 085d 94 df
                LR   P,K                 ; 085f 09
                POP                      ; 0860 1c
STARTGAME:      LISU 2                   ; 0861 62
                LISL 0                   ; 0862 68
                LI   $18                 ; 0863 20 18
                LR   (IS)+,A             ; 0865 5d
                LI   $5a                 ; 0866 20 5a
                LR   (IS)+,A             ; 0868 5d
                LI   $34                 ; 0869 20 34
                LR   (IS)+,A             ; 086b 5d
                LISU 3                   ; 086c 63
                LIS  $0                  ; 086d 70
                LR   (IS)+,A             ; 086e 5d
                LI   $09                 ; 086f 20 09
                LR   (IS)+,A             ; 0871 5d
                LI   $34                 ; 0872 20 34
                LR   (IS)+,A             ; 0874 5d
                PI   A0835               ; 0875 28 08 35
                DCI  A0de0               ; 0878 2a 0d e0
                PI   A0c8e               ; 087b 28 0c 8e
                PI   A0ca8               ; 087e 28 0c a8
                LIS  $8                  ; 0881 78
                SL   4                   ; 0882 15
                PI   A0c9f               ; 0883 28 0c 9f
                DCI  A0de0               ; 0886 2a 0d e0
                PI   A0ca8               ; 0889 28 0c a8
                LR   A,$b                ; 088c 4b
                NI   $f7                 ; 088d 21 f7
                LR   $b,A                ; 088f 5b
                LISU 6                   ; 0890 66
                LISL 0                   ; 0891 68
                LI   $ff                 ; 0892 20 ff
                LR   (IS),A              ; 0894 5c
                LISL 3                   ; 0895 6b
                LR   (IS),A              ; 0896 5c
                LR   A,$b                ; 0897 4b
                SL   4                   ; 0898 15
                SR   1                   ; 0899 12
                SL   4                   ; 089a 15
                BT   1,A08a0             ; 089b 81 04
                JMP  A0bde               ; 089d 29 0b de
A08a0:          LISU 7                   ; 08a0 67
                LISL 0                   ; 08a1 68
                LIS  $f                  ; 08a2 7f
                LR   (IS),A              ; 08a3 5c
                LR   A,$b                ; 08a4 4b
                SL   1                   ; 08a5 13
                SL   1                   ; 08a6 13
                BF   $1,A08d1            ; 08a7 91 29
A08a9:          LI   $85                 ; 08a9 20 85
                LR   $0,A                ; 08ab 50
                PI   $0099               ; 08ac 28 00 99
                LR   A,$4                ; 08af 44
                CI   $08                 ; 08b0 25 08
                BF   $4,A08b6            ; 08b2 94 03
                BF   $0,A08d1            ; 08b4 90 1c
A08b6:          CI   $02                 ; 08b6 25 02
                BF   $4,A08a9            ; 08b8 94 f0
                LI   $8e                 ; 08ba 20 8e
                LR   $0,A                ; 08bc 50
                PI   $0099               ; 08bd 28 00 99
                LISU 7                   ; 08c0 67
                LISL 0                   ; 08c1 68
                DCI  A0e90               ; 08c2 2a 0e 90
                LR   A,$4                ; 08c5 44
                SR   1                   ; 08c6 12
                ADC                      ; 08c7 8e
                LM                       ; 08c8 16
                LR   (IS),A              ; 08c9 5c
                BF   $0,A08a9            ; 08ca 90 de
                LR   A,$b                ; 08cc 4b
                SL   1                   ; 08cd 13
                SL   1                   ; 08ce 13
                BF   $1,A08d1            ; 08cf 91 01
A08d1:          LI   $83                 ; 08d1 20 83
                LISU 7                   ; 08d3 67
                LISL 2                   ; 08d4 6a
                LR   (IS),A              ; 08d5 5c
A08d6:          LR   A,(IS)              ; 08d6 4c
                LR   $0,A                ; 08d7 50
                LI   $33                 ; 08d8 20 33
                LR   $1,A                ; 08da 51
                LI   $13                 ; 08db 20 13
                LR   $2,A                ; 08dd 52
                PI   $0679               ; 08de 28 06 79
                LIS  $0                  ; 08e1 70
                LR   $6,A                ; 08e2 56
                PI   $008f               ; 08e3 28 00 8f
                DS   (IS)                ; 08e6 3c
                LR   A,(IS)              ; 08e7 4c
                SL   1                   ; 08e8 13
                BF   $4,A08d6            ; 08e9 94 ec
                LI   $0d                 ; 08eb 20 0d
                LR   $0,A                ; 08ed 50
                LI   $33                 ; 08ee 20 33
                LR   $1,A                ; 08f0 51
                LI   $13                 ; 08f1 20 13
                LR   $2,A                ; 08f3 52
                PI   $0679               ; 08f4 28 06 79
A08f7:          LR   A,$b                ; 08f7 4b
                SL   4                   ; 08f8 15
                LISU 2                   ; 08f9 62
                LISL 0                   ; 08fa 68
                BT   1,A08ff             ; 08fb 81 03
                LISU 3                   ; 08fd 63
                LISL 3                   ; 08fe 6b
A08ff:          PI   A0c56               ; 08ff 28 0c 56
                LR   A,(IS)              ; 0902 4c
                CI   $7f                 ; 0903 25 7f
                BF   $4,A090b            ; 0905 94 05
                LI   $68                 ; 0907 20 68
                BF   $0,A091b            ; 0909 90 11
A090b:          CI   $69                 ; 090b 25 69
                BF   $4,A0913            ; 090d 94 05
                LI   $00                 ; 090f 20 00
                BF   $0,A091b            ; 0911 90 09
A0913:          DCI  A0de0               ; 0913 2a 0d e0
                LR   A,(IS)              ; 0916 4c
                LR   $9,A                ; 0917 59
                LIS  $1                  ; 0918 71
                BF   $0,A0920            ; 0919 90 06
A091b:          LR   $9,A                ; 091b 59
                DCI  $0e88               ; 091c 2a 0e 88
                LIS  $0                  ; 091f 70
A0920:          LR   $7,A                ; 0920 57
                LR   A,$b                ; 0921 4b
                SL   4                   ; 0922 15
                PI   A0c9f               ; 0923 28 0c 9f
                LR   A,$9                ; 0926 49
                LR   (IS),A              ; 0927 5c
                LIS  $0                  ; 0928 70
                AS   $7                  ; 0929 c7
                BF   $4,A092d            ; 092a 94 02
                LR   $0,A                ; 092c 50
A092d:          PI   A0ca8               ; 092d 28 0c a8
                LR   A,$b                ; 0930 4b
                XI   $08                 ; 0931 23 08
                LR   $b,A                ; 0933 5b
                SL   4                   ; 0934 15
                BF   $1,A08f7            ; 0935 91 c1
                LR   A,$b                ; 0937 4b
                SL   1                   ; 0938 13
                BF   $1,A0954            ; 0939 91 1a
                LISU 2                   ; 093b 62
                LISL 2                   ; 093c 6a
                LR   A,(IS)              ; 093d 4c
                COM                      ; 093e 18
                INC                      ; 093f 1f
                AI   $2e                 ; 0940 24 2e
                BT   1,A094d             ; 0942 81 0a
                LISU 3                   ; 0944 63
                LISL 5                   ; 0945 6d
                LR   A,(IS)              ; 0946 4c
                COM                      ; 0947 18
                INC                      ; 0948 1f
                AI   $2e                 ; 0949 24 2e
                BF   $1,A0954            ; 094b 91 08
A094d:          LR   A,$b                ; 094d 4b
                OI   $40                 ; 094e 22 40
                LR   $b,A                ; 0950 5b
                PI   A0835               ; 0951 28 08 35
A0954:          LISU 7                   ; 0954 67
                LISL 0                   ; 0955 68
                LR   A,(IS)              ; 0956 4c
                NI   $0f                 ; 0957 21 0f
                LR   $5,A                ; 0959 55
                PI   $008f               ; 095a 28 00 8f
                INS  0                   ; 095d a0
                CI   $0b                 ; 095e 25 0b
                BF   $4,A0965            ; 0960 94 04
                JMP  A08a9               ; 0962 29 08 a9
A0965:          LR   A,$b                ; 0965 4b
                XI   $80                 ; 0966 23 80
                LR   $b,A                ; 0968 5b
                LISU 7                   ; 0969 67
                LISL 1                   ; 096a 69
                LR   A,(IS)              ; 096b 4c
                INC                      ; 096c 1f
                CI   $03                 ; 096d 25 03
                BT   4,A0974             ; 096f 84 04
                LR   (IS),A              ; 0971 5c
                BF   $0,A09bf            ; 0972 90 4c
A0974:          LIS  $0                  ; 0974 70
                LR   (IS),A              ; 0975 5c
                LR   A,$b                ; 0976 4b
                SL   1                   ; 0977 13
                SL   1                   ; 0978 13
                BT   1,A097e             ; 0979 81 04
                JMP  A0d02               ; 097b 29 0d 02
A097e:          LIS  $0                  ; 097e 70
                OUTS 0                   ; 097f b0
                OUTS 1                   ; 0980 b1
                OUTS 4                   ; 0981 b4
                OUTS 5                   ; 0982 b5
                INS  1                   ; 0983 a1
                LISU 6                   ; 0984 66
                LISL 0                   ; 0985 68
                LR   (IS),A              ; 0986 5c
                LISL 3                   ; 0987 6b
                LR   A,$b                ; 0988 4b
                SL   1                   ; 0989 13
                SL   1                   ; 098a 13
                BF   $1,A098f            ; 098b 91 03
                INS  4                   ; 098d a4
                LR   (IS),A              ; 098e 5c
A098f:          LR   A,(IS)              ; 098f 4c
                SL   4                   ; 0990 15
                BF   $1,A099b            ; 0991 91 09
                LISU 3                   ; 0993 63
                DS   (IS)                ; 0994 3c
                LR   A,(IS)              ; 0995 4c
                NI   $0f                 ; 0996 21 0f
                LR   (IS),A              ; 0998 5c
                BF   $0,A09a4            ; 0999 90 0a
A099b:          SL   1                   ; 099b 13
                BF   $1,A09a4            ; 099c 91 07
                LISU 3                   ; 099e 63
                LR   A,(IS)              ; 099f 4c
                INC                      ; 09a0 1f
                NI   $0f                 ; 09a1 21 0f
                LR   (IS),A              ; 09a3 5c
A09a4:          LISU 6                   ; 09a4 66
                LISL 0                   ; 09a5 68
                LR   A,(IS)              ; 09a6 4c
                SL   4                   ; 09a7 15
                BF   $1,A09b4            ; 09a8 91 0b
                LISU 2                   ; 09aa 62
                DS   (IS)                ; 09ab 3c
                LR   A,(IS)              ; 09ac 4c
                NI   $0f                 ; 09ad 21 0f
                OI   $10                 ; 09af 22 10
                LR   (IS),A              ; 09b1 5c
A09b2:          BF   $0,A09bf            ; 09b2 90 0c
A09b4:          SL   1                   ; 09b4 13
                BF   $1,A09b2            ; 09b5 91 fc
                LISU 2                   ; 09b7 62
                LR   A,(IS)              ; 09b8 4c
                INC                      ; 09b9 1f
                NI   $0f                 ; 09ba 21 0f
                OI   $10                 ; 09bc 22 10
                LR   (IS),A              ; 09be 5c
A09bf:          LR   A,$b                ; 09bf 4b
                SL   1                   ; 09c0 13
                BF   $1,A09c6            ; 09c1 91 04
                JMP  A08f7               ; 09c3 29 08 f7
A09c6:          LISU 6                   ; 09c6 66
                LISL 1                   ; 09c7 69
                LIS  $0                  ; 09c8 70
                AS   (IS)-               ; 09c9 ce
                BF   $1,A0a0c            ; 09ca 91 41
                LIS  $0                  ; 09cc 70
                AS   (IS)+               ; 09cd cd
                BT   1,A09d5             ; 09ce 81 06
                LIS  $0                  ; 09d0 70
                LR   (IS)+,A             ; 09d1 5d
A09d2:          JMP  A0b6b               ; 09d2 29 0b 6b
A09d5:          LR   A,(IS)              ; 09d5 4c
                SL   1                   ; 09d6 13
                BF   $1,A09d2            ; 09d7 91 fa
                LI   $80                 ; 09d9 20 80
                AS   (IS)                ; 09db cc
                LR   (IS)-,A             ; 09dc 5e
                LISU 2                   ; 09dd 62
A09de:          PI   A0c98               ; 09de 28 0c 98
                LR   A,$b                ; 09e1 4b
                SL   4                   ; 09e2 15
                LISL 0                   ; 09e3 68
                BF   $1,A09e7            ; 09e4 91 02
                LISL 3                   ; 09e6 6b
A09e7:          LR   A,$0                ; 09e7 40
                LR   (IS)+,A             ; 09e8 5d
                LR   A,$1                ; 09e9 41
                LR   (IS)+,A             ; 09ea 5d
                LR   A,$2                ; 09eb 42
                LR   (IS)+,A             ; 09ec 5d
                LR   A,$b                ; 09ed 4b
                SL   4                   ; 09ee 15
                LISL 0                   ; 09ef 68
                BF   $1,A09f3            ; 09f0 91 02
                LISL 3                   ; 09f2 6b
A09f3:          DCI  A0e95               ; 09f3 2a 0e 95
                LR   A,(IS)              ; 09f6 4c
                NI   $10                 ; 09f7 21 10
                LR   A,(IS)+             ; 09f9 4d
                BT   4,A09fd             ; 09fa 84 02
                COM                      ; 09fc 18
A09fd:          NI   $0f                 ; 09fd 21 0f
                SR   1                   ; 09ff 12
                SR   1                   ; 0a00 12
                ADC                      ; 0a01 8e
                LM                       ; 0a02 16
                LR   $8,A                ; 0a03 58
                NI   $0f                 ; 0a04 21 0f
                AS   (IS)                ; 0a06 cc
                LR   (IS)+,A             ; 0a07 5d
                LR   A,$8                ; 0a08 48
                SR   4                   ; 0a09 14
                AS   (IS)                ; 0a0a cc
                LR   (IS)+,A             ; 0a0b 5d
A0a0c:          LIS  $0                  ; 0a0c 70
                BF   $0,A0a54            ; 0a0d 90 46
A0a0f:          LR   A,$b                ; 0a0f 4b
                SL   4                   ; 0a10 15
                LISU 6                   ; 0a11 66
                LISL 1                   ; 0a12 69
                BT   1,A0a16             ; 0a13 81 02
                LISL 2                   ; 0a15 6a
A0a16:          LIS  $0                  ; 0a16 70
                AS   (IS)                ; 0a17 cc
                BT   1,A0a7c             ; 0a18 81 63
                LIS  $a                  ; 0a1a 7a
                LR   $5,A                ; 0a1b 55
A0a1c:          LR   A,$b                ; 0a1c 4b
                SL   4                   ; 0a1d 15
                LISU 2                   ; 0a1e 62
                LISL 3                   ; 0a1f 6b
                BT   1,A0a24             ; 0a20 81 03
                LISU 3                   ; 0a22 63
                LISL 0                   ; 0a23 68
A0a24:          PI   A0a8a               ; 0a24 28 0a 8a
                PI   A0c56               ; 0a27 28 0c 56
                LR   A,(IS)+             ; 0a2a 4d
                NI   $70                 ; 0a2b 21 70
                CI   $70                 ; 0a2d 25 70
                BT   4,A0a36             ; 0a2f 84 06
                LR   A,(IS)+             ; 0a31 4d
                NI   $3f                 ; 0a32 21 3f
                BF   $4,A0a4b            ; 0a34 94 16
A0a36:          LISU 6                   ; 0a36 66
                LR   A,$b                ; 0a37 4b
                SL   4                   ; 0a38 15
                LISL 0                   ; 0a39 68
                LIS  $0                  ; 0a3a 70
                BT   1,A0a41             ; 0a3b 81 05
                LISL 3                   ; 0a3d 6b
                AS   (IS)-               ; 0a3e ce
                BF   $0,A0a42            ; 0a3f 90 02
A0a41:          AS   (IS)+               ; 0a41 cd
A0a42:          LIS  $0                  ; 0a42 70
                BF   $1,A0a47            ; 0a43 91 03
                LI   $40                 ; 0a45 20 40
A0a47:          LR   (IS),A              ; 0a47 5c
                LIS  $0                  ; 0a48 70
                BF   $0,A0a54            ; 0a49 90 0a
A0a4b:          LR   A,$b                ; 0a4b 4b
                XI   $80                 ; 0a4c 23 80
                LR   $b,A                ; 0a4e 5b
                DS   $5                  ; 0a4f 35
                BF   $4,A0a1c            ; 0a50 94 cb
                LI   $80                 ; 0a52 20 80
A0a54:          LR   K,P                 ; 0a54 08
                LR   $0,A                ; 0a55 50
                LIS  $1                  ; 0a56 71
                LR   $5,A                ; 0a57 55
                LR   $6,A                ; 0a58 56
                LR   $3,A                ; 0a59 53
                LR   A,$b                ; 0a5a 4b
                SL   4                   ; 0a5b 15
                LISU 3                   ; 0a5c 63
                LISL 1                   ; 0a5d 69
                BF   $1,A0a62            ; 0a5e 91 03
                LISU 2                   ; 0a60 62
                LISL 4                   ; 0a61 6c
A0a62:          LR   A,(IS)+             ; 0a62 4d
                LR   $1,A                ; 0a63 51
                LR   A,(IS)-             ; 0a64 4e
                LR   $2,A                ; 0a65 52
                LI   $c0                 ; 0a66 20 c0
                LR   $4,A                ; 0a68 54
                LISU 0                   ; 0a69 60
                LISL 0                   ; 0a6a 68
                PI   A0cc4               ; 0a6b 28 0c c4
                LR   A,$b                ; 0a6e 4b
                SL   4                   ; 0a6f 15
                SR   1                   ; 0a70 12
                SL   4                   ; 0a71 15
                BT   1,A0a76             ; 0a72 81 03
                LR   P,K                 ; 0a74 09
                POP                      ; 0a75 1c
A0a76:          LIS  $0                  ; 0a76 70
                AS   $0                  ; 0a77 c0
                BF   $1,A0a7c            ; 0a78 91 03
                BF   $0,A0a0f            ; 0a7a 90 94
A0a7c:          LR   A,$b                ; 0a7c 4b
                SL   4                   ; 0a7d 15
                BF   $1,A0a83            ; 0a7e 91 04
                JMP  A0b6b               ; 0a80 29 0b 6b
A0a83:          LR   A,$b                ; 0a83 4b
                NI   $f7                 ; 0a84 21 f7
                LR   $b,A                ; 0a86 5b
                JMP  A08f7               ; 0a87 29 08 f7
A0a8a:          LR   K,P                 ; 0a8a 08
                LR   A,$5                ; 0a8b 45
                LR   $8,A                ; 0a8c 58
                LR   A,(IS)+             ; 0a8d 4d
                LR   A,(IS)+             ; 0a8e 4d
                LR   $0,A                ; 0a8f 50
                LR   A,(IS)-             ; 0a90 4e
                LR   $1,A                ; 0a91 51
                LR   A,IS                ; 0a92 0a
                XI   $08                 ; 0a93 23 08
                LR   IS,A                ; 0a95 0b
                LR   A,(IS)+             ; 0a96 4d
                COM                      ; 0a97 18
                INC                      ; 0a98 1f
                AS   $0                  ; 0a99 c0
                BF   $1,A0ace            ; 0a9a 91 33
                LR   $9,A                ; 0a9c 59
                SL   1                   ; 0a9d 13
                SR   4                   ; 0a9e 14
                BF   $4,A0ace            ; 0a9f 94 2e
                LR   A,(IS)-             ; 0aa1 4e
                COM                      ; 0aa2 18
                INC                      ; 0aa3 1f
                AS   $1                  ; 0aa4 c1
                BF   $1,A0ace            ; 0aa5 91 28
                LR   $a,A                ; 0aa7 5a
                SL   1                   ; 0aa8 13
                SR   4                   ; 0aa9 14
                BF   $4,A0ace            ; 0aaa 94 23
                LIS  $8                  ; 0aac 78
                XS   $b                  ; 0aad eb
                SL   4                   ; 0aae 15
                PI   A0c9f               ; 0aaf 28 0c 9f
                LR   A,(IS)-             ; 0ab2 4e
                LR   A,(IS)              ; 0ab3 4c
                SL   4                   ; 0ab4 15
                SR   1                   ; 0ab5 12
                DCI  A0de0               ; 0ab6 2a 0d e0
                ADC                      ; 0ab9 8e
                LR   A,(IS)              ; 0aba 4c
                NI   $10                 ; 0abb 21 10
                LR   A,$a                ; 0abd 4a
                BT   4,A0ac2             ; 0abe 84 03
                XI   $07                 ; 0ac0 23 07
A0ac2:          ADC                      ; 0ac2 8e
                LI   $80                 ; 0ac3 20 80
A0ac5:          DS   $9                  ; 0ac5 39
                BF   $1,A0acb            ; 0ac6 91 04
                SR   1                   ; 0ac8 12
                BF   $0,A0ac5            ; 0ac9 90 fb
A0acb:          NM                       ; 0acb 8a
                BF   $4,A0ada            ; 0acc 94 0d
A0ace:          LR   A,$b                ; 0ace 4b
                SL   4                   ; 0acf 15
                LISU 2                   ; 0ad0 62
                LISL 3                   ; 0ad1 6b
                BT   1,A0ad6             ; 0ad2 81 03
                LISU 3                   ; 0ad4 63
                LISL 0                   ; 0ad5 68
A0ad6:          LR   A,$8                ; 0ad6 48
                LR   $5,A                ; 0ad7 55
                LR   P,K                 ; 0ad8 09
                POP                      ; 0ad9 1c
A0ada:          LR   A,$b                ; 0ada 4b
                NI   $bf                 ; 0adb 21 bf
                LR   $b,A                ; 0add 5b
                PI   A0835               ; 0ade 28 08 35
                LISU 3                   ; 0ae1 63
                LISL 0                   ; 0ae2 68
                PI   A0c93               ; 0ae3 28 0c 93
                LIS  $9                  ; 0ae6 79
                XS   $b                  ; 0ae7 eb
                LR   $b,A                ; 0ae8 5b
                PI   A0a54               ; 0ae9 28 0a 54
                LISU 2                   ; 0aec 62
                LISL 3                   ; 0aed 6b
                PI   A0c93               ; 0aee 28 0c 93
                LIS  $8                  ; 0af1 78
                XS   $b                  ; 0af2 eb
                LR   $b,A                ; 0af3 5b
                PI   A0a54               ; 0af4 28 0a 54
                LIS  $1                  ; 0af7 71
                XS   $b                  ; 0af8 eb
                LR   $b,A                ; 0af9 5b
A0afa:          LR   A,$b                ; 0afa 4b
                SL   4                   ; 0afb 15
                COM                      ; 0afc 18
                LI   $80                 ; 0afd 20 80
                BT   1,A0b03             ; 0aff 81 03
                LI   $40                 ; 0b01 20 40
A0b03:          OUTS 5                   ; 0b03 b5
                PI   A0c9f               ; 0b04 28 0c 9f
                DCI  A0de0               ; 0b07 2a 0d e0
                PI   A0ca8               ; 0b0a 28 0c a8
                LR   A,$b                ; 0b0d 4b
                SL   4                   ; 0b0e 15
                LISU 2                   ; 0b0f 62
                LISL 0                   ; 0b10 68
                BF   $1,A0b15            ; 0b11 91 03
                LISU 3                   ; 0b13 63
                LISL 3                   ; 0b14 6b
A0b15:          LR   A,(IS)              ; 0b15 4c
                INC                      ; 0b16 1f
                NI   $0f                 ; 0b17 21 0f
                LR   $0,A                ; 0b19 50
                LI   $10                 ; 0b1a 20 10
                NS   (IS)                ; 0b1c fc
                AS   $0                  ; 0b1d c0
                LR   (IS),A              ; 0b1e 5c
                LIS  $4                  ; 0b1f 74
                LR   $5,A                ; 0b20 55
                PI   $008f               ; 0b21 28 00 8f
                LR   A,$b                ; 0b24 4b
                SL   4                   ; 0b25 15
                COM                      ; 0b26 18
                DCI  $0e88               ; 0b27 2a 0e 88
                PI   A0c9f               ; 0b2a 28 0c 9f
                LIS  $0                  ; 0b2d 70
                LR   $0,A                ; 0b2e 50
                OUTS 5                   ; 0b2f b5
                PI   A0ca8               ; 0b30 28 0c a8
                LR   A,$b                ; 0b33 4b
                SL   4                   ; 0b34 15
                LISU 2                   ; 0b35 62
                LISL 2                   ; 0b36 6a
                BF   $1,A0b3b            ; 0b37 91 03
                LISU 3                   ; 0b39 63
                LISL 5                   ; 0b3a 6d
A0b3b:          LR   A,(IS)              ; 0b3b 4c
                CI   $33                 ; 0b3c 25 33
                BT   4,A0b46             ; 0b3e 84 07
                INC                      ; 0b40 1f
                NI   $3f                 ; 0b41 21 3f
                LR   (IS),A              ; 0b43 5c
                BF   $0,A0afa            ; 0b44 90 b5
A0b46:          LR   A,(IS)-             ; 0b46 4e
                LR   A,(IS)              ; 0b47 4c
                CI   $33                 ; 0b48 25 33
                BT   4,A0b55             ; 0b4a 84 0a
                LIS  $1                  ; 0b4c 71
                BT   1,A0b51             ; 0b4d 81 03
                COM                      ; 0b4f 18
                INC                      ; 0b50 1f
A0b51:          AS   (IS)                ; 0b51 cc
                LR   (IS),A              ; 0b52 5c
                BF   $0,A0afa            ; 0b53 90 a6
A0b55:          INS  5                   ; 0b55 a5
                NI   $3f                 ; 0b56 21 3f
                OUTS 5                   ; 0b58 b5
                LISU 6                   ; 0b59 66
                LISL 1                   ; 0b5a 69
                LR   A,(IS)              ; 0b5b 4c
                SL   1                   ; 0b5c 13
                SR   1                   ; 0b5d 12
                LR   (IS)+,A             ; 0b5e 5d
                LR   A,(IS)              ; 0b5f 4c
                SL   1                   ; 0b60 13
                SR   1                   ; 0b61 12
                LR   (IS),A              ; 0b62 5c
                LR   A,$b                ; 0b63 4b
                SL   4                   ; 0b64 15
                LISU 2                   ; 0b65 62
                BT   1,A0b69             ; 0b66 81 02
                LISU 3                   ; 0b68 63
A0b69:          BF   $0,A0b91            ; 0b69 90 27
A0b6b:          LR   A,$b                ; 0b6b 4b
                OI   $08                 ; 0b6c 22 08
                LR   $b,A                ; 0b6e 5b
                LISU 6                   ; 0b6f 66
                LISL 2                   ; 0b70 6a
                LIS  $0                  ; 0b71 70
                AS   (IS)+               ; 0b72 cd
                BT   1,A0b78             ; 0b73 81 04
                JMP  A0a0c               ; 0b75 29 0a 0c
A0b78:          LIS  $0                  ; 0b78 70
                AS   (IS)-               ; 0b79 ce
                BT   1,A0b85             ; 0b7a 81 0a
                LIS  $0                  ; 0b7c 70
                LR   (IS),A              ; 0b7d 5c
A0b7e:          LR   A,$b                ; 0b7e 4b
                NI   $f7                 ; 0b7f 21 f7
                LR   $b,A                ; 0b81 5b
                JMP  A08f7               ; 0b82 29 08 f7
A0b85:          LR   A,(IS)              ; 0b85 4c
                SL   1                   ; 0b86 13
                BF   $1,A0b7e            ; 0b87 91 f6
                LI   $80                 ; 0b89 20 80
                AS   (IS)                ; 0b8b cc
                LR   (IS)+,A             ; 0b8c 5d
                LISU 3                   ; 0b8d 63
                JMP  A09de               ; 0b8e 29 09 de
A0b91:          LR   A,IS                ; 0b91 0a
                LR   $0,A                ; 0b92 50
                LR   A,$b                ; 0b93 4b
                SL   1                   ; 0b94 13
                SL   1                   ; 0b95 13
                BT   1,A0baf             ; 0b96 81 18
                LR   A,IS                ; 0b98 0a
                SL   1                   ; 0b99 13
                SR   4                   ; 0b9a 14
                CI   $02                 ; 0b9b 25 02
                LISU 7                   ; 0b9d 67
                LISL 0                   ; 0b9e 68
                BF   $4,A0ba8            ; 0b9f 94 08
                DS   (IS)                ; 0ba1 3c
                BF   $4,A0baf            ; 0ba2 94 0c
                LIS  $1                  ; 0ba4 71
                LR   (IS),A              ; 0ba5 5c
                BF   $0,A0baf            ; 0ba6 90 08
A0ba8:          LR   A,(IS)              ; 0ba8 4c
                INC                      ; 0ba9 1f
                CI   $10                 ; 0baa 25 10
                BT   4,A0baf             ; 0bac 84 02
                LR   (IS),A              ; 0bae 5c
A0baf:          LR   A,$0                ; 0baf 40
                LR   IS,A                ; 0bb0 0b
                LISL 6                   ; 0bb1 6e
                LI   $67                 ; 0bb2 20 67
                ASD  (IS)                ; 0bb4 dc
                LR   (IS),A              ; 0bb5 5c
                CI   $00                 ; 0bb6 25 00
                BF   $4,A0bbf            ; 0bb8 94 06
                LR   (IS)+,A             ; 0bba 5d
                LI   $67                 ; 0bbb 20 67
                ASD  (IS)                ; 0bbd dc
                LR   (IS),A              ; 0bbe 5c
A0bbf:          LR   A,$b                ; 0bbf 4b
                OI   $01                 ; 0bc0 22 01
                LR   $b,A                ; 0bc2 5b
                DCI  $0e88               ; 0bc3 2a 0e 88
                PI   A0c8e               ; 0bc6 28 0c 8e
                LIS  $0                  ; 0bc9 70
                LR   $0,A                ; 0bca 50
                PI   A0ca8               ; 0bcb 28 0c a8
                DCI  $0e88               ; 0bce 2a 0e 88
                LIS  $8                  ; 0bd1 78
                SL   4                   ; 0bd2 15
                PI   A0c9f               ; 0bd3 28 0c 9f
                LIS  $0                  ; 0bd6 70
                LR   $0,A                ; 0bd7 50
                PI   A0ca8               ; 0bd8 28 0c a8
                PI   A0861               ; 0bdb 28 08 61
A0bde:          LR   A,$b                ; 0bde 4b
                NI   $20                 ; 0bdf 21 20
                LR   $b,A                ; 0be1 5b
A0be2:          LR   A,$b                ; 0be2 4b
                SL   4                   ; 0be3 15
                LISU 7                   ; 0be4 67
                BF   $1,A0be8            ; 0be5 91 02
                LISU 3                   ; 0be7 63
A0be8:          LISL 7                   ; 0be8 6f
                LI   $1b                 ; 0be9 20 1b
                LR   $1,A                ; 0beb 51
                LI   $33                 ; 0bec 20 33
                LR   $2,A                ; 0bee 52
                LR   A,(IS)-             ; 0bef 4e
                NI   $0f                 ; 0bf0 21 0f
                AI   $80                 ; 0bf2 24 80
                LR   $0,A                ; 0bf4 50
                PI   $0679               ; 0bf5 28 06 79
                LR   A,(IS)              ; 0bf8 4c
                SR   4                   ; 0bf9 14
                AI   $80                 ; 0bfa 24 80
                LR   $0,A                ; 0bfc 50
                PI   $0679               ; 0bfd 28 06 79
                LR   A,(IS)              ; 0c00 4c
                NI   $0f                 ; 0c01 21 0f
                AI   $80                 ; 0c03 24 80
                LR   $0,A                ; 0c05 50
                PI   $0679               ; 0c06 28 06 79
                LR   A,$b                ; 0c09 4b
                SL   4                   ; 0c0a 15
                LISU 7                   ; 0c0b 67
                BF   $1,A0c0f            ; 0c0c 91 02
                LISU 2                   ; 0c0e 62
A0c0f:          LISL 7                   ; 0c0f 6f
                LI   $47                 ; 0c10 20 47
                LR   $1,A                ; 0c12 51
                LI   $33                 ; 0c13 20 33
                LR   $2,A                ; 0c15 52
                LR   A,(IS)-             ; 0c16 4e
                NI   $0f                 ; 0c17 21 0f
                AI   $40                 ; 0c19 24 40
                LR   $0,A                ; 0c1b 50
                PI   $0679               ; 0c1c 28 06 79
                LR   A,(IS)              ; 0c1f 4c
                SR   4                   ; 0c20 14
                AI   $40                 ; 0c21 24 40
                LR   $0,A                ; 0c23 50
                PI   $0679               ; 0c24 28 06 79
                LR   A,(IS)              ; 0c27 4c
                NI   $0f                 ; 0c28 21 0f
                AI   $40                 ; 0c2a 24 40
                LR   $0,A                ; 0c2c 50
                PI   $0679               ; 0c2d 28 06 79
                LR   A,$b                ; 0c30 4b
                SL   4                   ; 0c31 15
                BF   $1,A0c4f            ; 0c32 91 1c
                LIS  $0                  ; 0c34 70
                LR   $6,A                ; 0c35 56
                PI   $008f               ; 0c36 28 00 8f
                LIS  $0                  ; 0c39 70
                LR   $6,A                ; 0c3a 56
                PI   $008f               ; 0c3b 28 00 8f
                LIS  $0                  ; 0c3e 70
                LR   $6,A                ; 0c3f 56
                PI   $008f               ; 0c40 28 00 8f
                LISU 7                   ; 0c43 67
                LISL 7                   ; 0c44 6f
                LI   $dd                 ; 0c45 20 dd
                LR   (IS)-,A             ; 0c47 5e
                LR   (IS),A              ; 0c48 5c
                LR   A,$b                ; 0c49 4b
                OI   $08                 ; 0c4a 22 08
                LR   $b,A                ; 0c4c 5b
                BF   $0,A0be2            ; 0c4d 90 94
A0c4f:          LR   A,$b                ; 0c4f 4b
                NI   $20                 ; 0c50 21 20
                LR   $b,A                ; 0c52 5b
                JMP  A08d1               ; 0c53 29 08 d1
A0c56:          DCI  A0e78               ; 0c56 2a 0e 78
                LR   A,(IS)              ; 0c59 4c
                NI   $0f                 ; 0c5a 21 0f
                ADC                      ; 0c5c 8e
                LR   A,(IS)+             ; 0c5d 4d
                NI   $10                 ; 0c5e 21 10
                SR   1                   ; 0c60 12
                SL   4                   ; 0c61 15
                AM                       ; 0c62 88
                LR   $0,A                ; 0c63 50
                LR   A,(IS)+             ; 0c64 4d
                LR   J,W                 ; 0c65 1e
                LIS  $0                  ; 0c66 70
                AS   $b                  ; 0c67 cb
                LR   A,$0                ; 0c68 40
                BT   1,A0c6c             ; 0c69 81 02
                SR   1                   ; 0c6b 12
A0c6c:          SR   4                   ; 0c6c 14
                NI   $01                 ; 0c6d 21 01
                LR   W,J                 ; 0c6f 1d
                BT   1,A0c74             ; 0c70 81 03
                COM                      ; 0c72 18
                INC                      ; 0c73 1f
A0c74:          AS   (IS)                ; 0c74 cc
                NI   $3f                 ; 0c75 21 3f
                LR   (IS)-,A             ; 0c77 5e
                LR   A,$0                ; 0c78 40
                SL   4                   ; 0c79 15
                LR   J,W                 ; 0c7a 1e
                SR   4                   ; 0c7b 14
                LIS  $0                  ; 0c7c 70
                AS   $b                  ; 0c7d cb
                LR   A,$0                ; 0c7e 40
                BT   1,A0c82             ; 0c7f 81 02
                SR   1                   ; 0c81 12
A0c82:          NI   $01                 ; 0c82 21 01
                LR   W,J                 ; 0c84 1d
                BT   1,A0c89             ; 0c85 81 03
                COM                      ; 0c87 18
                INC                      ; 0c88 1f
A0c89:          AS   (IS)                ; 0c89 cc
                NI   $7f                 ; 0c8a 21 7f
                LR   (IS),A              ; 0c8c 5c
                POP                      ; 0c8d 1c
A0c8e:          LI   $40                 ; 0c8e 20 40
                LR   $4,A                ; 0c90 54
                LISU 2                   ; 0c91 62
                LISL 0                   ; 0c92 68
A0c93:          LI   $08                 ; 0c93 20 08
                LR   $5,A                ; 0c95 55
                LR   $6,A                ; 0c96 56
                LR   $3,A                ; 0c97 53
A0c98:          LR   A,(IS)+             ; 0c98 4d
                LR   $0,A                ; 0c99 50
                LR   A,(IS)+             ; 0c9a 4d
                LR   $1,A                ; 0c9b 51
                LR   A,(IS)-             ; 0c9c 4e
                LR   $2,A                ; 0c9d 52
                POP                      ; 0c9e 1c
A0c9f:          BT   1,A0c8e             ; 0c9f 81 ee
                LI   $80                 ; 0ca1 20 80
                LR   $4,A                ; 0ca3 54
                LISU 3                   ; 0ca4 63
                LISL 3                   ; 0ca5 6b
                BF   $0,A0c93            ; 0ca6 90 ec
A0ca8:          LISU 4                   ; 0ca8 64
                LISL 0                   ; 0ca9 68
                LR   A,$0                ; 0caa 40
                SL   4                   ; 0cab 15
                SR   1                   ; 0cac 12
                ADC                      ; 0cad 8e
                LR   A,$0                ; 0cae 40
                NI   $10                 ; 0caf 21 10
                BF   $4,A0cbb            ; 0cb1 94 09
A0cb3:          LM                       ; 0cb3 16
                LR   (IS)+,A             ; 0cb4 5d
                BR7  A0cb3               ; 0cb5 8f fd
                LM                       ; 0cb7 16
                LR   (IS)+,A             ; 0cb8 5d
                BF   $0,A0cc4            ; 0cb9 90 0a
A0cbb:          LISL 7                   ; 0cbb 6f
A0cbc:          LM                       ; 0cbc 16
                LR   (IS)-,A             ; 0cbd 5e
                BR7  A0cbc               ; 0cbe 8f fd
                LISL 0                   ; 0cc0 68
                BF   $0,A0cc4            ; 0cc1 90 02
A0cc3:          LR   $5,A                ; 0cc3 55
A0cc4:          LR   A,$2                ; 0cc4 42
                COM                      ; 0cc5 18
                NI   $3f                 ; 0cc6 21 3f
                LR   $8,A                ; 0cc8 58
                INS  5                   ; 0cc9 a5
                NI   $c0                 ; 0cca 21 c0
                AS   $8                  ; 0ccc c8
                OUTS 5                   ; 0ccd b5
                LR   A,(IS)+             ; 0cce 4d
                LR   $7,A                ; 0ccf 57
A0cd0:          LR   A,$1                ; 0cd0 41
                COM                      ; 0cd1 18
                OUTS 4                   ; 0cd2 b4
                LR   A,$7                ; 0cd3 47
                OI   $00                 ; 0cd4 22 00
                LR   A,$4                ; 0cd6 44
                BF   $1,A0cda            ; 0cd7 91 02
                LIS  $0                  ; 0cd9 70
A0cda:          COM                      ; 0cda 18
                OUTS 1                   ; 0cdb b1
                LR   A,$7                ; 0cdc 47
                SL   1                   ; 0cdd 13
                LR   $7,A                ; 0cde 57
                LI   $60                 ; 0cdf 20 60
                OUTS 0                   ; 0ce1 b0
                LI   $50                 ; 0ce2 20 50
                OUTS 0                   ; 0ce4 b0
                LR   A,$1                ; 0ce5 41
                INC                      ; 0ce6 1f
                LR   $1,A                ; 0ce7 51
                LIS  $4                  ; 0ce8 74
                LR   $8,A                ; 0ce9 58
A0cea:          DS   $8                  ; 0cea 38
                BF   $4,A0cea            ; 0ceb 94 fe
                DS   $5                  ; 0ced 35
                BF   $4,A0cd0            ; 0cee 94 e1
                LR   A,$2                ; 0cf0 42
                INC                      ; 0cf1 1f
                LR   $2,A                ; 0cf2 52
                LR   A,$3                ; 0cf3 43
                NI   $0f                 ; 0cf4 21 0f
                COM                      ; 0cf6 18
                INC                      ; 0cf7 1f
                AS   $1                  ; 0cf8 c1
                LR   $1,A                ; 0cf9 51
                LR   A,$3                ; 0cfa 43
                DS   $6                  ; 0cfb 36
                BF   $4,A0cc3            ; 0cfc 94 c6
                LIS  $0                  ; 0cfe 70
                OUTS 1                   ; 0cff b1
                OUTS 0                   ; 0d00 b0
                POP                      ; 0d01 1c
A0d02:          LR   A,$b                ; 0d02 4b
                SL   1                   ; 0d03 13
                BT   1,A0d73             ; 0d04 81 6e
                SL   4                   ; 0d06 15
                BF   $1,A0d73            ; 0d07 91 6b
                LISU 6                   ; 0d09 66
                LISL 2                   ; 0d0a 6a
                LIS  $0                  ; 0d0b 70
                AS   (IS)+               ; 0d0c cd
                BT   1,A0d15             ; 0d0d 81 07
                LI   $ff                 ; 0d0f 20 ff
                LR   (IS),A              ; 0d11 5c
                JMP  A0da8               ; 0d12 29 0d a8
A0d15:          LR   A,$b                ; 0d15 4b
                SL   1                   ; 0d16 13
                SL   1                   ; 0d17 13
                SL   4                   ; 0d18 15
                BT   1,A0d1e             ; 0d19 81 04
                JMP  A0dbe               ; 0d1b 29 0d be
A0d1e:          LISU 3                   ; 0d1e 63
                LISL 5                   ; 0d1f 6d
                LR   A,(IS)-             ; 0d20 4e
                COM                      ; 0d21 18
                INC                      ; 0d22 1f
                LR   $0,A                ; 0d23 50
                LR   A,(IS)+             ; 0d24 4d
                COM                      ; 0d25 18
                INC                      ; 0d26 1f
                LR   $1,A                ; 0d27 51
                LISU 2                   ; 0d28 62
                LISL 2                   ; 0d29 6a
                LR   A,(IS)-             ; 0d2a 4e
                AS   $0                  ; 0d2b c0
                LR   $0,A                ; 0d2c 50
                LR   A,(IS)-             ; 0d2d 4e
                AS   $1                  ; 0d2e c1
                LR   $1,A                ; 0d2f 51
                LIS  $0                  ; 0d30 70
                AS   $0                  ; 0d31 c0
                BF   $1,A0d36            ; 0d32 91 03
                COM                      ; 0d34 18
                INC                      ; 0d35 1f
A0d36:          AI   $02                 ; 0d36 24 02
                BF   $1,A0d40            ; 0d38 91 07
                LISU 3                   ; 0d3a 63
                LISL 3                   ; 0d3b 6b
                LIS  $7                  ; 0d3c 77
                NS   (IS)                ; 0d3d fc
                BT   4,A0dab             ; 0d3e 84 6c
A0d40:          LIS  $0                  ; 0d40 70
                AS   $1                  ; 0d41 c1
                BF   $1,A0d46            ; 0d42 91 03
                COM                      ; 0d44 18
                INC                      ; 0d45 1f
A0d46:          AI   $02                 ; 0d46 24 02
                BF   $1,A0d54            ; 0d48 91 0b
                LISU 3                   ; 0d4a 63
                LISL 3                   ; 0d4b 6b
                LIS  $4                  ; 0d4c 74
                XS   (IS)                ; 0d4d ec
                LIS  $c                  ; 0d4e 7c
                BT   4,A0dab             ; 0d4f 84 5b
                XS   (IS)                ; 0d51 ec
                BT   4,A0dab             ; 0d52 84 58
A0d54:          LISL 0                   ; 0d54 68
                LISU 5                   ; 0d55 65
                LR   A,$0                ; 0d56 40
                LR   (IS)+,A             ; 0d57 5d
                LR   A,$1                ; 0d58 41
                LR   (IS)-,A             ; 0d59 5e
                LIS  $0                  ; 0d5a 70
                AS   (IS)+               ; 0d5b cd
                LIS  $4                  ; 0d5c 74
                BT   1,A0d84             ; 0d5d 81 26
                LR   $0,A                ; 0d5f 50
                LIS  $0                  ; 0d60 70
                AS   (IS)                ; 0d61 cc
                LR   J,W                 ; 0d62 1e
                COM                      ; 0d63 18
                INC                      ; 0d64 1f
                LR   (IS)-,A             ; 0d65 5e
                LR   W,J                 ; 0d66 1d
                LIS  $2                  ; 0d67 72
                BF   $1,A0d95            ; 0d68 91 2c
                LR   A,(IS)              ; 0d6a 4c
                COM                      ; 0d6b 18
                INC                      ; 0d6c 1f
                LR   (IS),A              ; 0d6d 5c
                LIS  $2                  ; 0d6e 72
                COM                      ; 0d6f 18
                INC                      ; 0d70 1f
                BF   $0,A0d95            ; 0d71 90 23
A0d73:          LR   A,$b                ; 0d73 4b
                OI   $04                 ; 0d74 22 04
                LR   $b,A                ; 0d76 5b
                LIS  $0                  ; 0d77 70
                LR   $0,A                ; 0d78 50
                LISU 3                   ; 0d79 63
                LISL 1                   ; 0d7a 69
                LR   A,(IS)              ; 0d7b 4c
                ASD  (IS)+               ; 0d7c dd
                AS   (IS)                ; 0d7d cc
                LISU 1                   ; 0d7e 61
                AS   (IS)                ; 0d7f cc
                NI   $0f                 ; 0d80 21 0f
                BF   $0,A0d95            ; 0d82 90 12
A0d84:          LIS  $c                  ; 0d84 7c
                LR   $0,A                ; 0d85 50
                LIS  $0                  ; 0d86 70
                AS   (IS)-               ; 0d87 ce
                LR   J,W                 ; 0d88 1e
                LR   A,(IS)              ; 0d89 4c
                COM                      ; 0d8a 18
                INC                      ; 0d8b 1f
                LR   W,J                 ; 0d8c 1d
                BF   $1,A0d90            ; 0d8d 91 02
                LR   (IS),A              ; 0d8f 5c
A0d90:          LIS  $2                  ; 0d90 72
                BT   1,A0d95             ; 0d91 81 03
                COM                      ; 0d93 18
                INC                      ; 0d94 1f
A0d95:          AS   $0                  ; 0d95 c0
                LISU 5                   ; 0d96 65
                LISL 3                   ; 0d97 6b
                LR   (IS),A              ; 0d98 5c
                COM                      ; 0d99 18
                INC                      ; 0d9a 1f
                LISU 3                   ; 0d9b 63
                AS   (IS)                ; 0d9c cc
                BT   4,A0dab             ; 0d9d 84 0d
                SL   4                   ; 0d9f 15
                LI   $f7                 ; 0da0 20 f7
                BT   1,A0da6             ; 0da2 81 03
                XI   $0c                 ; 0da4 23 0c
A0da6:          LISU 6                   ; 0da6 66
                LR   (IS),A              ; 0da7 5c
A0da8:          JMP  A097e               ; 0da8 29 09 7e
A0dab:          LR   A,$b                ; 0dab 4b
                SL   1                   ; 0dac 13
                SL   4                   ; 0dad 15
                LR   A,$b                ; 0dae 4b
                BF   $1,A0db9            ; 0daf 91 09
                LISU 6                   ; 0db1 66
                LISL 3                   ; 0db2 6b
                LI   $7f                 ; 0db3 20 7f
                LR   (IS),A              ; 0db5 5c
                LR   A,$b                ; 0db6 4b
                OI   $02                 ; 0db7 22 02
A0db9:          NI   $fb                 ; 0db9 21 fb
                LR   $b,A                ; 0dbb 5b
                BF   $0,A0da8            ; 0dbc 90 eb
A0dbe:          LISU 5                   ; 0dbe 65
                LISL 0                   ; 0dbf 68
                LR   A,(IS)+             ; 0dc0 4d
                AS   (IS)                ; 0dc1 cc
                LIS  $1                  ; 0dc2 71
                BT   1,A0dc7             ; 0dc3 81 03
                COM                      ; 0dc5 18
                INC                      ; 0dc6 1f
A0dc7:          LISU 3                   ; 0dc7 63
                LISL 3                   ; 0dc8 6b
                AS   (IS)                ; 0dc9 cc
                NI   $0f                 ; 0dca 21 0f
                LR   (IS),A              ; 0dcc 5c
                LISU 6                   ; 0dcd 66
                LI   $7f                 ; 0dce 20 7f
                LR   (IS),A              ; 0dd0 5c
                LR   A,$b                ; 0dd1 4b
                NI   $fd                 ; 0dd2 21 fd
                LR   $b,A                ; 0dd4 5b
                BF   $0,A0da8            ; 0dd5 90 d2
A0dd7:          LR   A,KU                ; 0dd7 00
                DS   $0                  ; 0dd8 30
                db   $2e                 
                LR   A,KL                ; 0dda 01
                DS   $3                  ; 0ddb 33
                db   $2e                 
                LR   A,QU                ; 0ddd 02
                DS   $1                  ; 0dde 31
                DS   $3                  ; 0ddf 33
A0de0:          LR   A,KU                ; 0de0 00
                LR   A,$0                ; 0de1 40
                LISU 0                   ; 0de2 60
                LIS  $d                  ; 0de3 7d
                LIS  $f                  ; 0de4 7f
                LIS  $d                  ; 0de5 7d
                LR   A,KU                ; 0de6 00
                LR   A,KU                ; 0de7 00
                LR   A,KU                ; 0de8 00
                LR   A,QU                ; 0de9 02
                LR   DC,Q                ; 0dea 0f
                LR   (IS)+,A             ; 0deb 5d
                LIS  $8                  ; 0dec 78
                LIS  $0                  ; 0ded 70
                LR   A,KU                ; 0dee 00
                LR   A,KU                ; 0def 00
                LR   KU,A                ; 0df0 04
                LR   A,QU                ; 0df1 02
                LR   P0,Q                ; 0df2 0d
                LR   (IS),A              ; 0df3 5c
                LIS  $8                  ; 0df4 78
                LIS  $0                  ; 0df5 70
                LI   $00                 ; 0df6 20 00
                PK                       ; 0df8 0c
                LR   QU,A                ; 0df9 06
                PK                       ; 0dfa 0c
                POP                      ; 0dfb 1c
                LR   $8,A                ; 0dfc 58
                LIS  $8                  ; 0dfd 78
                DS   $0                  ; 0dfe 30
                LR   A,KU                ; 0dff 00
                POP                      ; 0e00 1c
                LR   K,P                 ; 0e01 08
                POP                      ; 0e02 1c
                POP                      ; 0e03 1c
                POP                      ; 0e04 1c
                DS   (IS)                ; 0e05 3c
                LIS  $c                  ; 0e06 7c
                LR   A,KU                ; 0e07 00
                DS   $0                  ; 0e08 30
                LISU 0                   ; 0e09 60
                DS   $0                  ; 0e0a 30
                DS   $8                  ; 0e0b 38
                POP                      ; 0e0c 1c
                PK                       ; 0e0d 0c
                POP                      ; 0e0e 1c
                LR   A,KU                ; 0e0f 00
                LI   $40                 ; 0e10 20 40
                OUTS 0                   ; 0e12 b0
                DS   $8                  ; 0e13 38
                POP                      ; 0e14 1c
                LR   Q,DC                ; 0e15 0e
                POP                      ; 0e16 1c
                LR   A,KU                ; 0e17 00
                LR   A,KU                ; 0e18 00
                LR   A,$0                ; 0e19 40
                NS   $0                  ; 0e1a f0
                OUTS 12                  ; 0e1b bc
                LR   J,W                 ; 0e1c 1e
                LR   Q,DC                ; 0e1d 0e
                POP                      ; 0e1e 1c
                LR   A,KU                ; 0e1f 00
                LR   A,KU                ; 0e20 00
                LR   A,KU                ; 0e21 00
                OUTS 14                  ; 0e22 be
                NS   (IS)-               ; 0e23 fe
                OUTS 14                  ; 0e24 be
                LR   QU,A                ; 0e25 06
                LR   A,QU                ; 0e26 02
                LR   A,KU                ; 0e27 00
                LR   A,KU                ; 0e28 00
                LR   A,KU                ; 0e29 00
                LR   Q,DC                ; 0e2a 0e
                LR   J,W                 ; 0e2b 1e
                OUTS 10                  ; 0e2c ba
                NS   $0                  ; 0e2d f0
                LR   A,$0                ; 0e2e 40
                LR   A,KU                ; 0e2f 00
                LR   A,KU                ; 0e30 00
                LR   KU,A                ; 0e31 04
                LR   Q,DC                ; 0e32 0e
                LR   J,W                 ; 0e33 1e
                DS   $a                  ; 0e34 3a
                OUTS 0                   ; 0e35 b0
                LR   A,$0                ; 0e36 40
                LI   $00                 ; 0e37 20 00
                PK                       ; 0e39 0c
                LR   J,W                 ; 0e3a 1e
                DI                       ; 0e3b 1a
                DS   $8                  ; 0e3c 38
                DS   $0                  ; 0e3d 30
                LISU 0                   ; 0e3e 60
                DS   $0                  ; 0e3f 30
                LR   A,KU                ; 0e40 00
                DS   (IS)-               ; 0e41 3e
                DS   (IS)                ; 0e42 3c
                DS   $8                  ; 0e43 38
                DS   $8                  ; 0e44 38
                DS   $8                  ; 0e45 38
                LR   DC,H                ; 0e46 10
                DS   $8                  ; 0e47 38
                LR   A,KU                ; 0e48 00
                DS   $8                  ; 0e49 38
                DS   $0                  ; 0e4a 30
                DS   $8                  ; 0e4b 38
                POP                      ; 0e4c 1c
                PK                       ; 0e4d 0c
                LR   QU,A                ; 0e4e 06
                PK                       ; 0e4f 0c
                LR   A,KU                ; 0e50 00
                DS   $8                  ; 0e51 38
                LIS  $0                  ; 0e52 70
                DS   $8                  ; 0e53 38
                POP                      ; 0e54 1c
                LR   P0,Q                ; 0e55 0d
                LR   A,QU                ; 0e56 02
                LR   KU,A                ; 0e57 04
                LR   A,KU                ; 0e58 00
                DS   $0                  ; 0e59 30
                LISU 0                   ; 0e5a 60
                LIS  $8                  ; 0e5b 78
                DS   (IS)+               ; 0e5c 3d
                LR   DC,Q                ; 0e5d 0f
                LR   A,QU                ; 0e5e 02
                LR   A,KU                ; 0e5f 00
A0e60:          LR   Q,DC                ; 0e60 0e
                db   $ff                 
                db   $ff                 
                db   $3f                 
                DCI  $2e2a               ; 0e64 2a 2e 2a
                db   $2e                 
                LIS  $0                  ; 0e68 70
                db   $ff                 
                db   $ff                 
                NS   (IS)                ; 0e6b fc
A0e6c:          LR   $4,A                ; 0e6c 54
                LIS  $4                  ; 0e6d 74
                LR   $4,A                ; 0e6e 54
                LIS  $4                  ; 0e6f 74
                LR   (IS)+,A             ; 0e70 5d
                LR   $5,A                ; 0e71 55
                LR   (IS)+,A             ; 0e72 5d
                LR   $5,A                ; 0e73 55
                LR   (IS)+,A             ; 0e74 5d
                LR   $5,A                ; 0e75 55
                LR   (IS)+,A             ; 0e76 5d
                LR   $5,A                ; 0e77 55
A0e78:          LR   A,QL                ; 0e78 03
                db   $a3                 
                db   $b3                 
                db   $b2                 
                OUTS 0                   ; 0e7c b0
                OUTS 10                  ; 0e7d ba
                OUTS 11                  ; 0e7e bb
                INS  11                  ; 0e7f ab
                LR   IS,A                ; 0e80 0b
                NOP                      ; 0e81 2b
                DS   $b                  ; 0e82 3b
                DS   $a                  ; 0e83 3a
                DS   $0                  ; 0e84 30
A0e85:          DS   $2                  ; 0e85 32
                DS   $3                  ; 0e86 33
                XI   $00                 ; 0e87 23 00
                LR   A,KU                ; 0e89 00
                LR   A,KU                ; 0e8a 00
                LR   A,KU                ; 0e8b 00
                LR   A,KU                ; 0e8c 00
                LR   A,KU                ; 0e8d 00
                LR   A,KU                ; 0e8e 00
                LR   A,KU                ; 0e8f 00
A0e90:          PK                       ; 0e90 0c
                LR   P,K                 ; 0e91 09
                LR   QU,A                ; 0e92 06
                NOP                      ; 0e93 2b
                LR   A,QL                ; 0e94 03
A0e95:          LR   A,$3                ; 0e95 43
                DS   $3                  ; 0e96 33
                DS   $4                  ; 0e97 34
A0e98:          LR   A,$4                ; 0e98 44
A0e99:          DCI  A0fd0               ; 0e99 2a 0f d0  Jumps here after button 3 is pressed at prompt, set keypress data pointer
A0e9c:          LI   $8a                 ; 0e9c 20 8a
                LR   $0,A                ; 0e9e 50        $8A in r0 (RED G)
                LR   Q,DC                ; 0e9f 0e        Load DC0 address in Q,backup address
                PI   $0099               ; 0ea0 28 00 99  Jump to BIOS subroutine prompt + read buttons
                LR   DC,Q                ; 0ea3 0f        Restore address to DC again
                LR   A,$4                ; 0ea4 44        Fetch collected button press
                CM                       ; 0ea5 8d        Compare memory and A by doing ((DC0))-A but only set flags, A is untouched. DC0 is increased
                BF   $4,A0ed3            ; 0ea6 94 2c     If they're not the same, reboot the cartridge
                LR   H,DC                ; 0ea8 11        Store current DC0 address in H this time (r10 and r11)
                LR   A,$a                ; 0ea9 4a        Load upper part of H in A
                CI   $10                 ; 0eaa 25 10     Check if DC0 address rolled over from $0F to $10
                BF   $4,A0e9c            ; 0eac 94 ef     If it didn't, repeat the above (press the button same as the data) until you do. 
                LI   $10                 ; 0eae 20 10     *****    DRAW SECRET MESSAGE     *****
                LR   $1,A                ; 0eb0 51        X coordinate $10 in r1
A0eb1:          LI   $13                 ; 0eb1 20 13
A0eb3:          LR   $2,A                ; 0eb3 52        Y coordinate $13 in r2
                DCI  A0ed6               ; 0eb4 2a 0e d6  Point data counter to graphics
                LIS  $7                  ; 0eb7 77
                LR   $4,A                ; 0eb8 54        8 letters, amount in r4 (DONE BY )
A0eb9:          LI   $80                 ; 0eb9 20 80
                LR   $0,A                ; 0ebb 50        $80 in 0 - RED color    
                PI   $067c               ; 0ebc 28 06 7c  Subroutine jump to BIOS drawchar...
                DS   $4                  ; 0ebf 34
                BF   $4,A0eb9            ; 0ec0 94 f8     Loop if there's letters left
A0ec2:          LI   $10                 ; 0ec2 20 10
                LR   $1,A                ; 0ec4 51        X coordinate $10
                LI   $1a                 ; 0ec5 20 1a
A0ec7:          LR   $2,A                ; 0ec7 52        Y coordinate $1A
                LIS  $f                  ; 0ec8 7f
                LR   $4,A                ; 0ec9 54        16 letters to write, loaded in r4 (MICHAEL K GLASS)
A0eca:          LI   $40                 ; 0eca 20 40
                LR   $0,A                ; 0ecc 50        Blue color set in r0
                PI   $067c               ; 0ecd 28 06 7c  Subroutine jump to BIOS drawchar...
                DS   $4                  ; 0ed0 34        Decrease r4
                BF   $4,A0eca            ; 0ed1 94 f8     Repeat if not yet 0
A0ed3:          JMP  CartridgeEntry      ; 0ed3 29 08 02  Reboot cartridge

;        Graphics data starts here 5x5 pixels, one row per byte.
A0ed6:   
                .byte %11100000
                .byte %10010000
                .byte %10001000
                .byte %10010000
                .byte %11100000          ; D

                .byte %11111000
                .byte %10001000
                .byte %10001000
                .byte %10001000
                .byte %11111000          ; O

                .byte $88
                .byte $c8
                .byte $a8
                .byte $98
                .byte $88                ; N

                .byte $f8
                .byte $80
                .byte $e0
                .byte $80
                .byte $f8                ; E

                .byte $00
                .byte $00
                .byte $00
                .byte $00
                .byte $00                ; space

                .byte $f0
                .byte $88
                .byte $f0
                .byte $88
                .byte $f0                ; B

                .byte $88
                .byte $50
                .byte $20
                .byte $20
                .byte $20                ; Y

                .byte $88
                .byte $d8
                .byte $a8
                .byte $88
                .byte $88                ; M

                .byte $f8
                .byte $20
                .byte $20
                .byte $20
                .byte $f8                ; I

                .byte $f8
                .byte $80
                .byte $80
                .byte $80
                .byte $f8                ; C

                .byte $88
                .byte $88
                .byte $f8
                .byte $88
                .byte $88                ; H

                .byte $f8
                .byte $88
                .byte $f8
                .byte $88
                .byte $88                ; A

                .byte $f8
                .byte $80
                .byte $e0
                .byte $80
                .byte $f8                ; E

                .byte $80
                .byte $80
                .byte $80
                .byte $80
                .byte $f8                ; L

                .byte $00
                .byte $00
                .byte $00
                .byte $00
                .byte $00                ; space

                .byte $90
                .byte $a0
                .byte $c0
                .byte $a0
                .byte $90                ; K

                .byte $00
                .byte $00
                .byte $00
                .byte $00
                .byte $00                ; space

                .byte $f8
                .byte $80
                .byte $b8
                .byte $88
                .byte $f8                ; G

                .byte $80
                .byte $80
                .byte $80
                .byte $80
                .byte $f0                ; L

                .byte $f8
                .byte $88
                .byte $f8
                .byte $88
                .byte $88                ; A

                .byte $f8
                .byte $80
                .byte $f8
                .byte $08
                .byte $f8                ; S

                .byte $f8
                .byte $80
                .byte $f8
                .byte $08
                .byte $f8                ; S

                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
                .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF              

; Easter Egg keypresses needed after selecting the backdoor option with button 3
; $01 means button 1, $02 means button 2, $04 means button 3, $08 means button 4

A0fd0:
                .byte $04,$08,$04,$02,$08,$02,$01,$02,$08,$01,$04,$04,$02,$04,$01,$08 
                .byte $04,$02,$01,$08,$02,$04,$01,$08,$04,$02,$02,$01,$04,$02,$04,$08 
                .byte $02,$04,$04,$08,$01,$01,$01,$02,$02,$04,$04,$02,$08,$08,$08,$04

; Decodes to sequence: 343 242 124 133 231 432 142 314 322 132 342 334 111 223 324 443 (after first pressing button 3)