
;; thunder blade
;; appleby 

9a91 00        nop     
9a92 00        nop     
9a93 d20053    jp      nc,$5300
9a96 b9        cp      c
9a97 14        inc     d
9a98 01d200    ld      bc,$00d2
9a9b 53        ld      d,e
9a9c b9        cp      c
9a9d 08        ex      af,af'
9a9e 52        ld      d,d
9a9f 9f        sbc     a,a
9aa0 07        rlca    
9aa1 d20053    jp      nc,$5300
9aa4 b9        cp      c
9aa5 1c        inc     e
9aa6 0a        ld      a,(bc)
9aa7 07        rlca    
9aa8 0d        dec     c
9aa9 d20053    jp      nc,$5300
9aac b9        cp      c
9aad 42        ld      b,d
9aae 10fc      djnz    $9aac            ; (-$04)
9ab0 9d        sbc     a,l
9ab1 2e9d      ld      l,$9d

;; table of screen address (generated)
defs 2*200

9c43 00        nop     
9c44 00        nop     
9c45 0a        ld      a,(bc)
9c46 00        nop     
9c47 49        ld      c,c
9c48 9c        sbc     a,h
9c49 1c        inc     e
9c4a ff        rst     $38
9c4b 1c        inc     e
9c4c ff        rst     $38
9c4d 1800      jr      $9c4f            ; (+$00)
9c4f 00        nop     
9c50 5b        ld      e,e
9c51 00        nop     
9c52 00        nop     
9c53 2a9ed0    ld      hl,($d09e)
9c56 70        ld      (hl),b
9c57 00        nop     
9c58 00        nop     
9c59 00        nop     
9c5a 40        ld      b,b

;; colours
9c5b 0b        dec     bc
9c5c 0b        dec     bc
9c5d 1818      jr      $9c77            ; (+$18)
9c5f 02        ld      (bc),a
9c60 02        ld      (bc),a
9c61 00        nop     
9c62 00        nop     
9c63 1a        ld      a,(de)
9c64 1a        ld      a,(de)
9c65 00        nop     
9c66 00        nop     
9c67 02        ld      (bc),a
9c68 02        ld      (bc),a
9c69 08        ex      af,af'
9c6a 08        ex      af,af'
9c6b 0a        ld      a,(bc)
9c6c 0a        ld      a,(bc)
9c6d 0c        inc     c
9c6e 0c        inc     c
9c6f 0e0e      ld      c,$0e
9c71 1010      djnz    $9c83            ; (+$10)
9c73 12        ld      (de),a
9c74 12        ld      (de),a
9c75 1616      ld      d,$16
9c77 011810    ld      bc,$1018
9c7a 0b        dec     bc
9c7b f3        di      
9c7c 31b39a    ld      sp,$9ab3
9c7f 31f8bf    ld      sp,$bff8
9c82 2a3400    ld      hl,($0034)
9c85 22bd9c    ld      ($9cbd),hl
9c88 2a3600    ld      hl,($0036)
9c8b 22bf9c    ld      ($9cbf),hl
9c8e 2a3800    ld      hl,($0038)
9c91 d9        exx     
9c92 af        xor     a
9c93 210000    ld      hl,$0000
9c96 013f9c    ld      bc,$9c3f
9c99 5d        ld      e,l
9c9a 54        ld      d,h
9c9b 13        inc     de
9c9c 77        ld      (hl),a
9c9d edb0      ldir    
9c9f 2193a0    ld      hl,$a093
9ca2 016d5f    ld      bc,$5f6d
9ca5 5d        ld      e,l
9ca6 54        ld      d,h
9ca7 13        inc     de
9ca8 77        ld      (hl),a
9ca9 edb0      ldir    
9cab d9        exx     
9cac 01897f    ld      bc,$7f89
9caf ed49      out     (c),c
9cb1 7c        ld      a,h
9cb2 e63f      and     $3f
9cb4 57        ld      d,a
9cb5 5d        ld      e,l
9cb6 21c19c    ld      hl,$9cc1
9cb9 0eff      ld      c,$ff
9cbb d5        push    de
9cbc c9        ret     

;; time code
defw &0021
defw &0000

9cc1 f3        di      
9cc2 2abd9c    ld      hl,($9cbd)
9cc5 ed5bbf9c  ld      de,($9cbf)		;; HL:DE = 4-byte time code
9cc9 cd10bd    call    $bd10			;; firmware function: kl time set

9ccc f3        di      
9ccd 31b39a    ld      sp,$9ab3

;; set mode 1
9cd0 3e01      ld      a,$01
9cd2 cd0ebc    call    $bc0e			;; firmware function: scr set mode

;; select pen 1 for displaying text (pen is text colour)
9cd5 3e00      ld      a,$00
9cd7 cd90bb    call    $bb90			;; firmware function: txt set pen

;; select paper 0 for displaying text (paper is text background)
9cda 3e00      ld      a,$00
9cdc cd96bb    call    $bb96			;; firmware function: txt set paper

;; set border colour
9cdf 060b      ld      b,$0b
9ce1 0e0b      ld      c,$0b
9ce3 cd38bc    call    $bc38			;; firmware function: scr set border

;; set pen colours
9ce6 215b9c    ld      hl,$9c5b
9ce9 af        xor     a
9cea 46        ld      b,(hl)			;; colour 1
9ceb 23        inc     hl
9cec 4e        ld      c,(hl)			;; colour 2
										;; colour 1 and 2 are different if colour
										;; will flash
9ced 23        inc     hl
9cee f5        push    af
9cef e5        push    hl
9cf0 cd32bc    call    $bc32			;; firmware function: scr set ink
9cf3 e1        pop     hl
9cf4 f1        pop     af
9cf5 3c        inc     a
9cf6 fe10      cp      $10
9cf8 20f0      jr      nz,$9cea         ; (-$10)

;; delay (allow firmware to set colours)
9cfa cd8e9e    call    $9e8e

;; initialise table of screen addressess
;; (line after line)
9cfd dd21b39a  ld      ix,$9ab3
9d01 2100c0    ld      hl,$c000			;; screen start base
9d04 06c8      ld      b,$c8			;; 200 lines

9d06 dd7500    ld      (ix+$00),l		;; store in table
9d09 dd23      inc     ix
9d0b dd7400    ld      (ix+$00),h
9d0e dd23      inc     ix

9d10 7c        ld      a,h				;; calculate next line down screen
9d11 c608      add     a,$08
9d13 67        ld      h,a
9d14 3004      jr      nc,$9d1a         
9d16 1150c0    ld      de,$c050
9d19 19        add     hl,de

9d1a 10ea      djnz    $9d06            


9d1c 31b39a    ld      sp,$9ab3

9d1f 3e10      ld      a,$10
9d21 06f6      ld      b,$f6
9d23 ed79      out     (c),a			;; start cassette motor

;; count 50 pilot pulses
9d25 2632      ld      h,$32			;; $32 (50)

9d27 069c      ld      b,$9c			;; timing constant
9d29 3e16      ld      a,$16			;; delay
9d2b cdf99d    call    $9df9
9d2e 30f5      jr      nc,$9d25         ; 

9d30 3ec6      ld      a,$c6			; maximum measured time factor allowed
9d32 b8        cp      b
9d33 30f0      jr      nc,$9d25         ;

;; if it gets to here, the measured time is < $c6

9d35 25        dec     h
9d36 20ef      jr      nz,$9d27         ; (-$11)



9d38 06c9      ld      b,$c9
9d3a cdfd9d    call    $9dfd
9d3d 30e6      jr      nc,$9d25         ; (-$1a)

9d3f 78        ld      a,b
9d40 fed4      cp      $d4
9d42 30f4      jr      nc,$9d38         ; (-$0c)

9d44 cdfd9d    call    $9dfd
9d47 30dc      jr      nc,$9d25         ; (-$24)
9d49 00        nop     

9d4a dd21599c  ld      ix,$9c59			
9d4e 110200    ld      de,$0002			; 


9d51 ed5f      ld      a,r

9d53 0612      ld      b,$12

;; get 8 bits
9d55 2e01      ld      l,$01			
9d57 78        ld      a,b
9d58 06d7      ld      b,$d7			; timing constant
9d5a cdf99d    call    $9df9
9d5d d2969e    jp      nc,$9e96			;; load failed
9d60 3ee7      ld      a,$e7
9d62 b8        cp      b
9d63 cb15      rl      l
9d65 3e00      ld      a,$00
9d67 00        nop     
9d68 3e15      ld      a,$15
9d6a d2589d    jp      nc,$9d58

9d6d 3a589c    ld      a,($9c58)
9d70 85        add     a,l
9d71 32589c    ld      ($9c58),a
9d74 65        ld      h,l

9d75 3af29f    ld      a,($9ff2)
9d78 aa        xor     d				;; decrypt
9d79 ab        xor     e
9d7a ddac      xor     ixh
9d7c ddad      xor     ixl
9d7e ad        xor     l
9d7f dd7700    ld      (ix+$00),a		;; store

9d82 0609      ld      b,$09

9d84 cb63      bit     4,e
9d86 280d      jr      z,$9d95          ; 

9d88 3af29f    ld      a,($9ff2)
9d8b c65b      add     a,$5b			; 91
9d8d 83        add     a,e
9d8e 92        sub     d
9d8f 32f29f    ld      ($9ff2),a
9d92 05        dec     b
9d93 05        dec     b
9d94 05        dec     b

9d95 3af29f    ld      a,($9ff2)
9d98 c617      add     a,$17			; 23
9d9a 32f29f    ld      ($9ff2),a

9d9d dd23      inc     ix				;; increment pointer
9d9f 1b        dec     de				;; decrement count
9da0 7a        ld      a,d
9da1 b3        or      e
9da2 c2559d    jp      nz,$9d55
;; load complete

9da5 c3ba9d    jp      $9dba

;;==================================================================

9da8 11e79d    ld      de,$9de7
9dab ed53a69d  ld      ($9da6),de		;; function to call after this part has loaded

9daf 81        add     a,c
9db0 0601      ld      b,$01

9db2 d1        pop     de				;; pop length from stack

9db3 7a        ld      a,d				;; if length is zero, then next address is execution address
9db4 b3        or      e
9db5 c8        ret     z

9db6 dde1      pop     ix				;; pop location from stack
9db8 189b      jr      $9d55            ;; continue loading

;;==================================================================

9dba 2a599c    ld      hl,($9c59)
9dbd 114007    ld      de,$0740
9dc0 ed52      sbc     hl,de
9dc2 c2969e    jp      nz,$9e96			;; load failed

9dc5 21d59d    ld      hl,$9dd5
9dc8 22a69d    ld      ($9da6),hl		;; function to call after this part has loaded

9dcb dde1      pop     ix				;; pop location from stack
9dcd 115000    ld      de,$0050			;; length of one scan-line
9dd0 0601      ld      b,$01
9dd2 c3559d    jp      $9d55			;; continue loading

;;==================================================================

9dd5 d1        pop     de			
9dd6 7a        ld      a,d				
9dd7 b3        or      e
9dd8 caa89d    jp      z,$9da8

9ddb d5        push    de
9ddc dde1      pop     ix
9dde 13        inc     de
9ddf 115000    ld      de,$0050			;; length of one scan-line
9de2 0603      ld      b,$03
9de4 c3559d    jp      $9d55			;; continue loading

;;==================================================================

9de7 d1        pop     de

9de8 7a        ld      a,d
9de9 b3        or      e
9dea c8        ret     z

9deb dde1      pop     ix
9ded 21349f    ld      hl,$9f34
9df0 22049e    ld      ($9e04),hl
9df3 23        inc     hl
9df4 0603      ld      b,$03
9df6 c3559d    jp      $9d55

;;============================================================
9df9 cd0d9e    call    $9e0d			; get edge
9dfc d0        ret     nc

9dfd c3009e    jp      $9e00			

9e00 7b        ld      a,e
9e01 e607      and     $07
9e03 ca069e    jp      z,$9e06

9e06 3e00      ld      a,$00
9e08 c30b9e    jp      $9e0b			; 


;;===========================================================

9e0b 3e13      ld      a,$13

9e0d 3d        dec     a
9e0e 20fd      jr      nz,$9e0d         ; (-$03)
9e10 a7        and     a


9e11 04        inc     b				; increment timer
9e12 c8        ret     z				; overflow?

9e13 3ef5      ld      a,$f5			; PPI port B

9e15 dbff      in      a,($ff)
9e17 1f        rra						; transfer bit 0 (VSYNC from CRTC) into
										; carry
9e18 c8        ret     z				

9e19 a9        xor     c				; previous level
9e1a e640      and     $40				; cassette data input changed?
9e1c 28f3      jr      z,$9e11          ; loop until it has changed

;; cassette data input has changed state
;; edge has been detected

9e1e 79        ld      a,c				; toggle level state
9e1f 2f        cpl     
9e20 4f        ld      c,a

9e21 3e00      ld      a,$00
9e23 00        nop     
9e24 00        nop     
9e25 c3289e    jp      $9e28

9e28 37        scf     
9e29 c9        ret     

9e2a 7c        ld      a,h
9e2b 21579c    ld      hl,$9c57
9e2e 86        add     a,(hl)
9e2f 23        inc     hl
9e30 be        cp      (hl)
9e31 c2969e    jp      nz,$9e96			;; load failed

9e34 217b9c    ld      hl,$9c7b
9e37 117c9c    ld      de,$9c7c
9e3a 01c201    ld      bc,$01c2
9e3d 3600      ld      (hl),$00
9e3f edb0      ldir    

9e41 af        xor     a
9e42 06f6      ld      b,$f6
9e44 ed79      out     (c),a			;; stop cassette motor

9e46 018d7f    ld      bc,$7f8d
9e49 d9        exx     
9e4a e1        pop     hl
9e4b 31f8bf    ld      sp,$bff8
9e4e e5        push    hl

;; page out lower rom
9e4f cd09b9    call    $b909			;; firmware function: kl l rom disable
;; page out upper rom
9e52 cd03b9    call    $b903			;; firmware function: kl u rom disable

;; set all colours to black
9e55 af        xor     a
9e56 0600      ld      b,$00
9e58 0e00      ld      c,$00
9e5a 23        inc     hl
9e5b f5        push    af
9e5c e5        push    hl
9e5d cd32bc    call    $bc32
9e60 e1        pop     hl
9e61 f1        pop     af
9e62 3c        inc     a
9e63 fe10      cp      $10
9e65 20ef      jr      nz,$9e56         ; (-$11)
;; delay
9e67 cd8e9e    call    $9e8e

9e6a 1820      jr      $9e8c            ; (+$20)

;;-------------------------------------------------------------
;; unused colours
9e6c 02        ld      (bc),a
9e6d 02        ld      (bc),a
9e6e 05        dec     b
9e6f 05        dec     b
9e70 0d        dec     c
9e71 0d        dec     c
9e72 00        nop     
9e73 00        nop     
9e74 1a        ld      a,(de)
9e75 1a        ld      a,(de)
9e76 0606      ld      b,$06
9e78 1818      jr      $9e92            ; (+$18)
9e7a 01010e    ld      bc,$0e01
9e7d 0e19      ld      c,$19
9e7f 19        add     hl,de
9e80 0c        inc     c
9e81 0c        inc     c
9e82 1010      djnz    $9e94            ; (+$10)
9e84 17        rla     
9e85 17        rla     
9e86 0a        ld      a,(bc)
9e87 0a        ld      a,(bc)
9e88 04        inc     b
9e89 04        inc     b
9e8a 0f        rrca    
9e8b 0f        rrca    

;;------------------------------------------------------------------------
9e8c f3        di      
9e8d c9        ret     

;;------------------------------------------------------------------------
;; delay for 10 interrupts (1 and 1/2 screens)
9e8e fb        ei      
9e8f 060a      ld      b,$0a
9e91 76        halt    
9e92 10fd      djnz    $9e91            ; (-$03)
9e94 f3        di      
9e95 c9        ret     
;;------------------------------------------------------------------------

9e96 21989e    ld      hl,$9e98
9e99 af        xor     a
9e9a 77        ld      (hl),a
9e9b 2b        dec     hl
9e9c 7c        ld      a,h
9e9d b5        or      l
9e9e c2999e    jp      nz,$9e99
9ea1 21199f    ld      hl,$9f19
9ea4 af        xor     a
9ea5 77        ld      (hl),a
9ea6 23        inc     hl
9ea7 7c        ld      a,h
9ea8 b5        or      l
9ea9 20f9      jr      nz,$9ea4         ; (-$07)

9eab af        xor     a
9eac 06f6      ld      b,$f6
9eae ed79      out     (c),a			;; stop cassette motor

9eb0 1eff      ld      e,$ff

9eb2 3e07      ld      a,$07			;; mixer
9eb4 0e3b      ld      c,$3b
9eb6 cdfb9e    call    $9efb			;; write to sound chip	

9eb9 3e05      ld      a,$05			;; noise
9ebb 0e0a      ld      c,$0a
9ebd cdfb9e    call    $9efb			;; write to sound chip

9ec0 3e0a      ld      a,$0a			;; channel B amplitude
9ec2 0e0f      ld      c,$0f
9ec4 cdfb9e    call    $9efb			;; write to sound chip

9ec7 01e204    ld      bc,$04e2
9eca cdf59e    call    $9ef5			;; delay

9ecd 3e05      ld      a,$05			;; noise
9ecf 0e05      ld      c,$05
9ed1 cdfb9e    call    $9efb			;; write to sound chip

9ed4 3e0a      ld      a,$0a			;; channel A amplitude
9ed6 0e0f      ld      c,$0f
9ed8 cdfb9e    call    $9efb			;; write to sound chip

9edb 01c409    ld      bc,$09c4
9ede cdf59e    call    $9ef5			;; delay

9ee1 1d        dec     e
9ee2 20d5      jr      nz,$9eb9         ; (-$2b)

;; copy down
9ee4 21f09e    ld      hl,$9ef0
9ee7 110000    ld      de,$0000
9eea 010500    ld      bc,$0005
9eed edb0      ldir    

;; execute (enable lower rom, and then will execute rom data to reset machine)
9eef c7        rst     $00

;; code copied down to &0000
9ef0 01897f    ld      bc,$7f89			;; enable lower rom
9ef3 ed49      out     (c),c
;;... will now execute rom data


;;--------------------------------------------------------
;; delay
9ef5 0b        dec     bc
9ef6 78        ld      a,b
9ef7 b1        or      c
9ef8 20fb      jr      nz,$9ef5         ; (-$05)
9efa c9        ret     

;; -------------------------------------------------------
;; write to sound chip (PSG)

;; A = PSG register
;; C = data
9efb 06f4      ld      b,$f4
9efd ed79      out     (c),a
9eff 06f6      ld      b,$f6
9f01 ed78      in      a,(c)
9f03 f6c0      or      $c0
9f05 ed79      out     (c),a
9f07 e63f      and     $3f
9f09 ed79      out     (c),a
9f0b 06f4      ld      b,$f4
9f0d ed49      out     (c),c
9f0f 06f6      ld      b,$f6
9f11 4f        ld      c,a
9f12 f680      or      $80
9f14 ed79      out     (c),a
9f16 ed49      out     (c),c
9f18 c9        ret     

;;----------------------------------------------------------

9f19 d9        exx     
9f1a 05        dec     b
9f1b c2689f    jp      nz,$9f68
9f1e 13        inc     de
9f1f 13        inc     de
9f20 00        nop     
9f21 00        nop     
9f22 7b        ld      a,e
9f23 fe1a      cp      $1a
9f25 2018      jr      nz,$9f3f         ; (+$18)
9f27 21979f    ld      hl,$9f97
9f2a 22fe9d    ld      ($9dfe),hl
9f2d 23        inc     hl
9f2e d9        exx     
9f2f 3e0f      ld      a,$0f
9f31 c30d9e    jp      $9e0d

9f34 d9        exx     
9f35 21199f    ld      hl,$9f19
9f38 22fe9d    ld      ($9dfe),hl
9f3b 1e14      ld      e,$14
9f3d 1802      jr      $9f41            ; (+$02)


9f3f ed5f      ld      a,r
9f41 1607      ld      d,$07
9f43 29        add     hl,hl
9f44 7b        ld      a,e
9f45 d614      sub     $14
9f47 a7        and     a
9f48 1f        rra     
9f49 4f        ld      c,a
9f4a 0600      ld      b,$00
9f4c 21ef9f    ld      hl,$9fef
9f4f 09        add     hl,bc
9f50 7e        ld      a,(hl)
9f51 01f39f    ld      bc,$9ff3
9f54 87        add     a,a
9f55 6f        ld      l,a
9f56 2600      ld      h,$00
9f58 09        add     hl,bc
9f59 1f        rra     
9f5a 4f        ld      c,a
9f5b 3e50      ld      a,$50
9f5d 91        sub     c
9f5e 4f        ld      c,a
9f5f 0605      ld      b,$05
9f61 7a        ld      a,d
9f62 16c0      ld      d,$c0
9f64 d9        exx     
9f65 c30d9e    jp      $9e0d

9f68 78        ld      a,b
9f69 328a9f    ld      ($9f8a),a

9f6c 0602      ld      b,$02


;; C = height of character
9f6e 7e        ld      a,(hl)
9f6f 12        ld      (de),a			; plot pixel data
9f70 13        inc     de
9f71 23        inc     hl
9f72 7e        ld      a,(hl)
9f73 12        ld      (de),a			; plot pixel data
9f74 1b        dec     de

9f75 7a        ld      a,d
9f76 c608      add     a,$08			; next line down screen
9f78 57        ld      d,a
9f79 23        inc     hl
9f7a 0d        dec     c
9f7b 2007      jr      nz,$9f84         ; (+$07)

9f7d 21f39f    ld      hl,$9ff3
9f80 10ec      djnz    $9f6e            ; (-$14)
9f82 1805      jr      $9f89            ; (+$05)


9f84 c8        ret     z

9f85 10e7      djnz    $9f6e            ; (-$19)
9f87 1800      jr      $9f89            ; (+$00)
9f89 0600      ld      b,$00
9f8b 3e03      ld      a,$03
9f8d cb65      bit     4,l
9f8f 3e03      ld      a,$03
9f91 3e03      ld      a,$03
9f93 d9        exx     
9f94 c30d9e    jp      $9e0d
9f97 d9        exx     
9f98 21ef9f    ld      hl,$9fef
9f9b 0602      ld      b,$02
9f9d 7e        ld      a,(hl)
9f9e e607      and     $07
9fa0 2803      jr      z,$9fa5          ; (+$03)
9fa2 35        dec     (hl)
9fa3 1805      jr      $9faa            ; (+$05)
9fa5 1e20      ld      e,$20
9fa7 1640      ld      d,$40
9fa9 3d        dec     a
9faa 23        inc     hl
9fab 10f0      djnz    $9f9d            ; (-$10)
9fad 0603      ld      b,$03
9faf 1c        inc     e
9fb0 3e08      ld      a,$08
9fb2 35        dec     (hl)
9fb3 f2ca9f    jp      p,$9fca
9fb6 3e05      ld      a,$05
9fb8 364f      ld      (hl),$4f
9fba 1c        inc     e
9fbb 2b        dec     hl
9fbc 35        dec     (hl)
9fbd f2ca9f    jp      p,$9fca
9fc0 3e02      ld      a,$02
9fc2 364f      ld      (hl),$4f
9fc4 2b        dec     hl
9fc5 35        dec     (hl)
9fc6 2600      ld      h,$00
9fc8 2ee0      ld      l,$e0
9fca 21009e    ld      hl,$9e00
9fcd 22fe9d    ld      ($9dfe),hl
9fd0 d9        exx     
9fd1 c30d9e    jp      $9e0d

9fd4 2843      jr      z,$a019          ; (+$43)
9fd6 29        add     hl,hl
9fd7 2031      jr      nz,$a00a         ; (+$31)
9fd9 39        add     hl,sp
9fda 3837      jr      c,$a013          ; (+$37)
9fdc 2041      jr      nz,$a01f         ; (+$41)
9fde 50        ld      d,b
9fdf 50        ld      d,b
9fe0 4c        ld      c,h
9fe1 45        ld      b,l
9fe2 42        ld      b,d
9fe3 59        ld      e,c
9fe4 2041      jr      nz,$a027         ; (+$41)
9fe6 53        ld      d,e
9fe7 53        ld      d,e
9fe8 4f        ld      c,a
9fe9 43        ld      b,e
9fea 49        ld      c,c
9feb 41        ld      b,c
9fec 54        ld      d,h
9fed 45        ld      b,l
9fee 53        ld      d,e

9fef 3010      jr      nc,$a001         ; (+$10)
9ff1 1f        rra     
9ff2 d470c0    call    nc,$c070
9ff5 c0        ret     nz

9ff6 60        ld      h,b
9ff7 c0        ret     nz

9ff8 e0        ret     po

9ff9 d0        ret     nc

9ffa 60        ld      h,b
9ffb e0        ret     po

9ffc 60        ld      h,b
9ffd c0        ret     nz

9ffe 60        ld      h,b
9fff 70        ld      (hl),b
a000 c0        ret     nz

a001 00        nop     
a002 00        nop     
a003 1080      djnz    $9f85            ; (-$80)
a005 3080      jr      nc,$9f87         ; (-$80)
a007 1080      djnz    $9f89            ; (-$80)
a009 1080      djnz    $9f8b            ; (-$80)
a00b 1080      djnz    $9f8d            ; (-$80)
a00d 1080      djnz    $9f8f            ; (-$80)
a00f 70        ld      (hl),b
a010 e0        ret     po

a011 00        nop     
a012 00        nop     
a013 30c0      jr      nc,$9fd5         ; (-$40)
a015 60        ld      h,b
a016 60        ld      h,b
a017 00        nop     
a018 60        ld      h,b
a019 30c0      jr      nc,$9fdb         ; (-$40)
a01b 60        ld      h,b
a01c 00        nop     
a01d 60        ld      h,b
a01e 60        ld      h,b
a01f 70        ld      (hl),b
a020 e0        ret     po

a021 00        nop     
a022 00        nop     
a023 30c0      jr      nc,$9fe5         ; (-$40)
a025 60        ld      h,b
a026 60        ld      h,b
a027 00        nop     
a028 60        ld      h,b
a029 10c0      djnz    $9feb            ; (-$40)
a02b 00        nop     
a02c 60        ld      h,b
a02d 60        ld      h,b
a02e 60        ld      h,b
a02f 30c0      jr      nc,$9ff1         ; (-$40)
a031 00        nop     
a032 00        nop     
a033 10c0      djnz    $9ff5            ; (-$40)
a035 30c0      jr      nc,$9ff7         ; (-$40)
a037 60        ld      h,b
a038 c0        ret     nz

a039 c0        ret     nz

a03a c0        ret     nz

a03b f0        ret     p

a03c e0        ret     po

a03d 00        nop     
a03e c0        ret     nz

a03f 10e0      djnz    $a021            ; (-$20)
a041 00        nop     
a042 00        nop     
a043 70        ld      (hl),b
a044 e0        ret     po

a045 60        ld      h,b
a046 2060      jr      nz,$a0a8         ; (+$60)
a048 00        nop     
a049 70        ld      (hl),b
a04a c0        ret     nz

a04b 00        nop     
a04c 60        ld      h,b
a04d 60        ld      h,b
a04e 60        ld      h,b
a04f 30c0      jr      nc,$a011         ; (-$40)
a051 00        nop     
a052 00        nop     
a053 30c0      jr      nc,$a015         ; (-$40)
a055 60        ld      h,b
a056 60        ld      h,b
a057 60        ld      h,b
a058 00        nop     
a059 70        ld      (hl),b
a05a c0        ret     nz

a05b 60        ld      h,b
a05c 60        ld      h,b
a05d 60        ld      h,b
a05e 60        ld      h,b
a05f 30c0      jr      nc,$a021         ; (-$40)
a061 00        nop     
a062 00        nop     
a063 70        ld      (hl),b
a064 e0        ret     po

a065 60        ld      h,b
a066 60        ld      h,b
a067 00        nop     
a068 60        ld      h,b
a069 00        nop     
a06a c0        ret     nz

a06b 1080      djnz    $9fed            ; (-$80)
a06d 1080      djnz    $9fef            ; (-$80)
a06f 1080      djnz    $9ff1            ; (-$80)
a071 00        nop     
a072 00        nop     
a073 30c0      jr      nc,$a035         ; (-$40)
a075 60        ld      h,b
a076 60        ld      h,b
a077 60        ld      h,b
a078 60        ld      h,b
a079 30c0      jr      nc,$a03b         ; (-$40)
a07b 60        ld      h,b
a07c 60        ld      h,b
a07d 60        ld      h,b
a07e 60        ld      h,b
a07f 30c0      jr      nc,$a041         ; (-$40)
a081 00        nop     
a082 00        nop     
a083 30c0      jr      nc,$a045         ; (-$40)
a085 60        ld      h,b
a086 60        ld      h,b
a087 60        ld      h,b
a088 60        ld      h,b
a089 30e0      jr      nc,$a06b         ; (-$20)
a08b 00        nop     
a08c 60        ld      h,b
a08d 60        ld      h,b
a08e 60        ld      h,b
a08f 30c0      jr      nc,$a051         ; (-$40)
a091 00        nop     
