OpenCores
URL https://opencores.org/ocsvn/wb_z80/wb_z80/trunk

Subversion Repositories wb_z80

[/] [wb_z80/] [trunk/] [asm/] [BJS80TST.ASM] - Rev 36

Go to most recent revision | Compare with Previous | Blame | View Log

; bjp   modified to assemble on as80 assembler (needs different syntax).
; minor mods to account for changes in interrupt structure  and I/O
; all such are flagged with my initials..... 
;
; The origional code used operators <   and  >  on symbols to extract the 
; lower and higher bytes respectively.   It appears that as80 has no equivalent.
; I have hand coded such ---- hopefully correctly.   
; This is only a significant issue with such constructs as <stack_end.   
; My solution forces the stack to remain in its present location.   
;
; WARNING   If you must move the stack  --   check comments and fix code for my kludges
;
; Origional Code also had a pretty strange "passed" macro.  Removed it and 
; output a more useful message. along with the bist controls
;
;z80 simulator test routine
;total error count is left in a at end of test routine
;

                code
                org     #0000
;
rst_0000:       jp      rst_0000_1
;
                org     #0008
;
rst_0008:       ld      a,2
                ret
;
                org     #0010
;
rst_0010:       ld      a,3
                ret
;
                org     #0018
;
rst_0018:       ld      a,4
                ret
;
                org     #0020
;
rst_0020:       ld      a,5
                ret
;
                org     #0028
;
rst_0028:       ld      a,6
                ret
;
                org     #0030
;
rst_0030:       ld      a,7
                ret
;
                org     #0038
;
rst_0038:       ld      a,8
                ret
;
                code
;

in_port:        equ     #20
out_port:       equ     #20
bist_adr:       equ     #ffff   ;last memory address for bist controll register
bist_ack:       equ     #01
bist_err:       equ     #02
bist_ei:        equ     #04     ;interrupt enable register for bist 
;
data_55:        equ     #55
data_7f:        equ     #7f
data_80:        equ     #80
data_aa:        equ     #aa
data_ff:        equ     #ff
;
data_1234:      equ     #1234
data_55aa:      equ     #55aa
data_7fff:      equ     #7fff
data_8000:      equ     #8000
data_aa55:      equ     #aa55
data_ffff:      equ     #ffff
cr:             equ     #0d
lf:             equ     #0a
bell:           equ     #07
;
;inc_error_cnt  macro        ;bjp   change for initial test to halt on error
;               ld      hl,error_cnt
;               inc     (hl)
;               endm
inc_error_cnt   macro
                halt
                endm

;
;passed         macro
;               push    bc
;               ld      bc,(pass)
;               ld      (message_addr),bc
;               ld      bc,(pass+2)
;               ld      (message_addr+2),bc
;               ld      bc,(pass+4)
;               ld      (message_addr+4),bc
;               pop     bc
;               endm
;
;failed         macro
;               push    bc
;               ld      bc,(fail)
;               ld      (message_addr),bc
;               ld      bc,(fail+2)
;               ld      (message_addr+2),bc
;               ld      bc,(fail+4)
;               ld      (message_addr+4),bc
;               pop     bc
;               endm
;
;

start:          xor     a
                ld      (pass_count),a
                ld      hl,error_cnt
                ld      (hl),a                  ;clear error count
nop_1:          nop
                nop

ld_167:         ld      a,data_55
                cp      data_55
                jr      z,ld_1
                inc_error_cnt
ld_1:           ld      b,data_7f
                ld      a,data_7f
                cp      b
                jr      z,ld_2
                inc_error_cnt
ld_2:           ld      c,data_80
                ld      a,data_80
                cp      c
                jr      z,ld_3
                inc_error_cnt
ld_3:           ld      d,data_aa
                ld      a,data_aa
                cp      d
                jr      z,ld_4
                inc_error_cnt
ld_4:           ld      e,data_55
                ld      a,data_55
                cp      e
                jr      z,ld_5
                inc_error_cnt
ld_5:           ld      h,data_7f
                ld      a,data_7f
                cp      h
                jr      z,ld_6
                inc_error_cnt
ld_6:           ld      l,data_80
                ld      a,data_80
                cp      l
                jr      z,ld_7
                inc_error_cnt
ld_7:           ld      a,data_55
                ld      b,a
                cp      b
                jr      z,ld_8
                inc_error_cnt
ld_8:           ld      c,b
                cp      c
                jr      z,ld_9
                inc_error_cnt
ld_9:           ld      d,c
                cp      d
                jr      z,ld_10
                inc_error_cnt
ld_10:          ld      e,d
                cp      e
                jr      z,ld_11
                inc_error_cnt
ld_11:          ld      h,e
                cp      h
                jr      z,ld_12
                inc_error_cnt
ld_12:          ld      l,h
                cp      l
                jr      z,ld_13
                inc_error_cnt
ld_13:          ld      l,data_80
                ld      a,l
                cp      l
                jr      z,ld_14
                inc_error_cnt
ld_14:          ld      h,l
                cp      h
                jr      z,ld_15
                inc_error_cnt
ld_15:          ld      e,h
                cp      e
                jr      z,ld_16
                inc_error_cnt
ld_16:          ld      d,e
                cp      d
                jr      z,ld_17
                inc_error_cnt
ld_17:          ld      c,d
                cp      c
                jr      z,ld_18
                inc_error_cnt
ld_18:          ld      b,c
                cp      b
                jr      z,ld_19
                inc_error_cnt
ld_19:          ld      hl,var1
                ld      a,(hl)
                cp      data_ff
                jr      z,ld_20
                inc_error_cnt
ld_20:          ld      hl,var2
                ld      a,data_55
                ld      b,(hl)
                cp      b
                jr      z,ld_21
                inc_error_cnt
ld_21:          ld      hl,var1
                ld      c,(hl)
                ld      a,(hl)
                cp      c
                jr      z,ld_22
                inc_error_cnt
ld_22:          ld      hl,var2
                ld      d,(hl)
                ld      a,(hl)
                cp      d
                jr      z,ld_23
                inc_error_cnt
ld_23:          ld      hl,var1
                ld      e,(hl)
                ld      a,(hl)
                cp      e
                jr      z,ld_24
                inc_error_cnt
ld_24:          ld      hl,var2
                ld      a,(hl)
                ld      h,(hl)
                cp      h
                jr      z,ld_25
                inc_error_cnt
ld_25:          ld      hl,var1
                ld      a,(hl)
                ld      l,(hl)
                cp      l
                jr      z,ld_26
                inc_error_cnt
ld_26:          ld      ix,var3
                ld      a,(ix-2)
                cp      data_ff
                jr      z,ld_27
                inc_error_cnt
ld_27:          ld      a,(ix+2)
                cp      data_7f
                jr      z,ld_28
                inc_error_cnt
ld_28:          ld      a,(ix-1)
                ld      b,(ix-1)
                cp      b
                jr      z,ld_29
                inc_error_cnt
ld_29:          cp      data_55
                jr      z,ld_30
                inc_error_cnt
ld_30:          ld      a,(ix+1)
                ld      c,(ix+1)
                cp      c
                jr      z,ld_31
                inc_error_cnt
ld_31:          cp      data_aa
                jr      z,ld_32
                inc_error_cnt
ld_32:          ld      d,(ix-2)
                ld      a,(ix-2)
                cp      d
                jr      z,ld_33
                inc_error_cnt
ld_33:          cp      data_ff
                jr      z,ld_34
                inc_error_cnt
ld_34:          ld      e,(ix+2)
                ld      a,(ix+2)
                cp      e
                jr      z,ld_35
                inc_error_cnt
ld_35:          cp      data_7f
                jr      z,ld_36
                inc_error_cnt
ld_36:          ld      h,(ix+0)
                ld      a,(ix+0)
                cp      h
                jr      z,ld_37
                inc_error_cnt
ld_37:          cp      data_80
                jr      z,ld_38
                inc_error_cnt
ld_38:          ld      l,(ix-1)
                ld      a,(ix-1)
                cp      l
                jr      z,ld_39
                inc_error_cnt
ld_39:          cp      data_55
                jr      z,ld_40
                inc_error_cnt
ld_40:          ld      iy,var3
                ld      a,(iy-2)
                cp      data_ff
                jr      z,ld_41
                inc_error_cnt
ld_41:          ld      a,(iy+2)
                cp      data_7f
                jr      z,ld_42
                inc_error_cnt
ld_42:          ld      b,(iy-1)
                ld      a,(iy-1)
                cp      b
                jr      z,ld_43
                inc_error_cnt
ld_43:          cp      data_55
                jr      z,ld_44
                inc_error_cnt
ld_44:          ld      c,(iy+1)
                ld      a,(iy+1)
                cp      c
                jr      z,ld_45
                inc_error_cnt
ld_45:          cp      data_aa
                jr      z,ld_46
                inc_error_cnt
ld_46:          ld      d,(iy-2)
                ld      a,(iy-2)
                cp      d
                jr      z,ld_47
                inc_error_cnt
ld_47:          cp      data_ff
                jr      z,ld_48
                inc_error_cnt
ld_48:          ld      e,(iy+2)
                ld      a,(iy+2)
                cp      e
                jr      z,ld_49
                inc_error_cnt
ld_49:          cp      data_7f
                jr      z,ld_50
                inc_error_cnt
ld_50:          ld      h,(iy+0)
                ld      a,(iy+0)
                cp      h
                jr      z,ld_51
                inc_error_cnt
ld_51:          cp      data_80
                jr      z,ld_52
                inc_error_cnt
ld_52:          ld      l,(iy-2)
                ld      a,(iy-2)
                cp      l
                jr      z,ld_53
                inc_error_cnt
ld_53:          cp      data_ff
                jr      z,ld_54
                inc_error_cnt
ld_54:          ld      hl,t_var1
                ld      a,data_aa+1
                ld      (hl),a
                ld      b,(hl)
                cp      b
                jr      z,ld_55
                inc_error_cnt
ld_55:          cp      data_aa+1
                jr      z,ld_56
                inc_error_cnt
ld_56:          ld      b,data_80+1
                ld      (hl),b
                ld      a,(hl)
                cp      b
                jr      z,ld_57
                inc_error_cnt
ld_57:          cp      data_80+1
                jr      z,ld_58
                inc_error_cnt
ld_58:          ld      c,data_55-1
                ld      (hl),c
                ld      a,(hl)
                cp      c
                jr      z,ld_59
                inc_error_cnt
ld_59:          cp      data_55-1
                jr      z,ld_60
                inc_error_cnt
ld_60:          ld      d,data_ff-1
                ld      (hl),d
                ld      a,(hl)
                cp      d
                jr      z,ld_61
                inc_error_cnt
ld_61:          cp      data_ff-1
                jr      z,ld_62
                inc_error_cnt
ld_62:          ld      e,data_55+1
                ld      (hl),e
                ld      a,(hl)
                cp      e
                jr      z,ld_63
                inc_error_cnt
ld_63:          cp      data_55+1
                jr      z,ld_64
                inc_error_cnt
ld_64:          ld      (hl),h
                ld      a,(hl)
                cp      h
                jr      z,ld_65
                inc_error_cnt
ld_65:          cp      #70             ;bjp  guess  >t_var1
                jr      z,ld_66
                inc_error_cnt
ld_66:          ld      (hl),l
                ld      a,(hl)
                cp      l
                jr      z,ld_67
                inc_error_cnt
ld_67:          cp      a, #00          ;bjp  guess <t_var1
                jr      z,ld_68
                inc_error_cnt
ld_68:          ld      ix,t_var3
                ld      a,data_55
                ld      (ix-2),a
                ld      a,0
                ld      a,(ix-2)
                cp      data_55
                jr      z,ld_69
                inc_error_cnt
ld_69:          ld      a,data_80
                ld      (ix+2),a
                ld      a,0
                ld      a,(ix+2)
                cp      data_80
                jr      z,ld_70
                inc_error_cnt
ld_70:          ld      b,data_7f
                ld      (ix-1),b
                ld      a,(ix-1)
                cp      b
                jr      z,ld_71
                inc_error_cnt
ld_71:          cp      data_7f
                jr      z,ld_72
                inc_error_cnt
ld_72:          ld      c,data_aa
                ld      (ix+1),c
                ld      a,(ix+1)
                cp      c
                jr      z,ld_73
                inc_error_cnt
ld_73:          cp      data_aa
                jr      z,ld_74
                inc_error_cnt
ld_74:          ld      d,data_80
                ld      (ix+0),d
                ld      a,(ix+0)
                cp      d
                jr      z,ld_75
                inc_error_cnt
ld_75:          cp      data_80
                jr      z,ld_76
                inc_error_cnt
ld_76:          ld      e,data_55+2
                ld      (ix-2),e
                ld      a,(ix-2)
                cp      e
                jr      z,ld_77
                inc_error_cnt
ld_77:          cp      data_55+2
                jr      z,ld_78
                inc_error_cnt
ld_78:          ld      h,data_aa-2
                ld      (ix+2),h
                ld      a,(ix+2)
                cp      h
                jr      z,ld_79
                inc_error_cnt
ld_79:          cp      data_aa-2
                jr      z,ld_80
                inc_error_cnt
ld_80:          ld      l,data_aa+2
                ld      (ix-1),l
                ld      a,(ix-1)
                cp      l
                jr      z,ld_81
                inc_error_cnt
ld_81:          cp      data_aa+2
                jr      z,ld_82
                inc_error_cnt
ld_82:          ld      iy,t_var3
                ld      a,data_ff
                ld      (iy-2),a
                ld      a,0
                ld      a,(iy-2)
                cp      data_ff
                jr      z,ld_83
                inc_error_cnt
ld_83:          ld      a,data_7f
                ld      (iy+2),a
                ld      a,0
                ld      a,(iy+2)
                cp      data_7f
                jr      z,ld_84
                inc_error_cnt
ld_84:          ld      b,data_55
                ld      (iy-1),b
                ld      a,(iy-1)
                cp      b
                jr      z,ld_85
                inc_error_cnt
ld_85:          cp      data_55
                jr      z,ld_86
                inc_error_cnt
ld_86:          ld      c,data_aa
                ld      (iy+1),c
                ld      a,(iy+1)
                cp      c
                jr      z,ld_87
                inc_error_cnt
ld_87:          cp      data_aa
                jr      z,ld_88
                inc_error_cnt
ld_88:          ld      d,data_80
                ld      (iy+0),d
                ld      a,(iy+0)
                cp      d
                jr      z,ld_89
                inc_error_cnt
ld_89:          cp      data_80
                jr      z,ld_90
                inc_error_cnt
ld_90:          ld      e,data_ff-2
                ld      (iy-2),e
                ld      a,(iy-2)
                cp      e
                jr      z,ld_91
                inc_error_cnt
ld_91:          cp      data_ff-2
                jr      z,ld_92
                inc_error_cnt
ld_92:          ld      h,data_7f-3
                ld      (iy+2),h
                ld      a,(iy+2)
                cp      h
                jr      z,ld_93
                inc_error_cnt
ld_93:          cp      data_7f-3
                jr      z,ld_94
                inc_error_cnt
ld_94:          ld      l,data_55-5
                ld      (iy-1),l
                ld      a,(iy-1)
                cp      l
                jr      z,ld_95
                inc_error_cnt
ld_95:          cp      data_55-5
                jr      z,ld_96
                inc_error_cnt
ld_96:          ld      hl,t_var1
                ld      (hl),data_80+10
                ld      a,(hl)
                cp      data_80+10
                jr      z,ld_97
                inc_error_cnt
ld_97:          ld      ix,t_var3
                ld      (ix-2),data_55-10
                ld      a,(ix-2)
                cp      data_55-10
                jr      z,ld_98
                inc_error_cnt
ld_98:          ld      (ix+2),data_55+10
                ld      a,(ix+2)
                cp      data_55+10
                jr      z,ld_99
                inc_error_cnt
ld_99:          ld      iy,t_var2
                ld      (iy-1),data_80+17
                ld      a,(iy-1)
                cp      data_80+17
                jr      z,ld_100
                inc_error_cnt
ld_100:         ld      (iy+1),data_80-17
                ld      a,(iy+1)
                cp      data_80-17
                jr      z,ld_101
                inc_error_cnt
ld_101:         ld      hl,t_var5
                ld      bc,t_var5
                ld      (hl),data_aa-10
                ld      a,(bc)
                cp      data_aa-10
                jr      z,ld_102
                inc_error_cnt
ld_102:         ld      hl,t_var3
                ld      de,t_var3
                ld      (hl),data_aa+10
                ld      a,(de)
                cp      data_aa+10
                jr      z,ld_103
                inc_error_cnt
ld_103:         ld      hl,t_var2
                ld      (hl),data_7f-25
                ld      a,(t_var2)
                cp      data_7f-25
                jr      z,ld_104
                inc_error_cnt
ld_104:         ld      hl,t_var4
                ld      bc,t_var4
                ld      a,data_55-20
                ld      (bc),a
                ld      b,(hl)
                cp      b
                jr      z,ld_105
                inc_error_cnt
ld_105:         ld      a,b
                cp      data_55-20
                jr      z,ld_106
                inc_error_cnt
ld_106:         ld      hl,t_var5
                ld      de,t_var5
                ld      a,data_55+20
                ld      (de),a
                ld      c,(hl)
                cp      c
                jr      z,ld_107
                inc_error_cnt
ld_107:         ld      a,c
                cp      data_55+20
                jr      z,ld_108
                inc_error_cnt
ld_108:         ld      hl,t_var4
                ld      a,data_ff-24
                ld      (t_var4),a
                ld      e,(hl)
                cp      e
                jr      z,ld_109
                inc_error_cnt
ld_109:         ld      a,e
                cp      data_ff-24
                jr      z,ld_110
                inc_error_cnt
ld_110:         ld      a,data_55
                ld      i,a
                ld      a,0
                ld      a,i
                jr      nz,ld_111
                inc_error_cnt
ld_111:         jp      p,ld_112
                inc_error_cnt
ld_112:         cp      data_55
                jr      z,ld_113
                inc_error_cnt
ld_113:         ld      a,data_80
                ld      i,a
                ld      a,0
                ld      a,i
                jr      nz,ld_114
                inc_error_cnt
ld_114:         jp      m,ld_115
                inc_error_cnt
ld_115:         cp      data_80
                jr      z,ld_116
                inc_error_cnt
ld_116:         ld      a,0
                ld      i,a
                ld      a,data_55
                ld      a,i
                jr      z,ld_125
                inc_error_cnt
;   refresh register not implemented    
;   test for ie ?  
;ld_117:                ld      a,data_55
;               ld      r,a
;               ld      a,0
;               ld      a,r
;               jp      p,ld_118
;               inc_error_cnt
;ld_118:                jr      nz,ld_119
;               inc_error_cnt
;ld_119:                ld      a,data_ff
;               ld      r,a
;               ld      a,0
;               ld      a,r
;               jp      m,ld_120
;               inc_error_cnt
;ld_120:                ld      a,4                     ;totally sequence dependent
;               ld      r,a
;               ld      a,data_55
;               ld      a,r
;               jr      z,ld_121
;               inc_error_cnt
;ld_121:                ei                              ;set iff2
;               ld      a,i
;               jp      pe,ld_122               ;iff2 was set
;               inc_error_cnt
;ld_122:                di                              ;clear iff2
;               ld      a,i
;               jp      po,ld_123               ;iff2 was cleared
;               inc_error_cnt
;ld_123:                ei                              ;set iff2
;               ld      a,r
;               jp      pe,ld_124               ;iff2 was set
;               inc_error_cnt
;ld_124:                di                              ;clear iff2
;               ld      a,r
;               jp      po,ld_125               ;iff2 was cleared
;               inc_error_cnt
;
ld_125:         ld      bc,data_1234
                ld      a, #12                  ;bjp  guess >data_1234
                cp      b
                jr      z,ld_126
                inc_error_cnt
ld_126:         ld      a, #34                  ;bjp  guess  <data_1234
                cp      c
                jr      z,ld_127
                inc_error_cnt
ld_127:         ld      de,data_55aa
                ld      a,data_55
                cp      d
                jr      z,ld_128
                inc_error_cnt
ld_128:         ld      a,data_aa
                cp      e
                jr      z,ld_129
                inc_error_cnt
ld_129:         ld      hl,data_7fff
                ld      a,data_7f
                cp      h
                jr      z,ld_130
                inc_error_cnt
ld_130:         ld      a,data_ff
                cp      l
                jr      z,ld_131
                inc_error_cnt
ld_131:         ld      sp,data_aa55
                ld      hl,0
                add     hl,sp
                ld      a,data_aa
                cp      h
                jr      z,ld_132
                inc_error_cnt
ld_132:         ld      a,data_55
                cp      l
                jr      z,ld_133
                inc_error_cnt
ld_133:         ld      ix,data_ffff
                ld      hl,0
                ld      sp,ix
                add     hl,sp
                ld      a,data_ff
                cp      h
                jr      z,ld_134
                inc_error_cnt
ld_134:         cp      l
                jr      z,ld_135
                inc_error_cnt
ld_135:         ld      iy,data_1234
                ld      hl,0
                ld      sp,iy
                add     hl,sp
                ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,ld_136
                inc_error_cnt
ld_136:         ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,ld_137
                inc_error_cnt
ld_137:         ld      hl,(w_var2)
                ld      a,data_55
                cp      h
                jr      z,ld_138
                inc_error_cnt
ld_138:         ld      a,data_aa
                cp      l
                jr      z,ld_139
                inc_error_cnt
ld_139:         ld      bc,(w_var1)
                ld      a,#12      ;bjp was >data_1234
                cp      b
                jr      z,ld_140
                inc_error_cnt
ld_140:         ld      a,#34      ;bjp was >data_1234
                cp      c
                jr      z,ld_141
                inc_error_cnt
ld_141:         ld      de,(w_var3)
                ld      a,data_7f
                cp      d
                jr      z,ld_142
                inc_error_cnt
ld_142:         ld      a,data_ff
                cp      e
                jr      z,ld_143
                inc_error_cnt
ld_143:         ld      hl,(w_var4)
                ld      a,data_80
                cp      h
                jr      z,ld_144
                inc_error_cnt
ld_144:         ld      a,0
                cp      l
                jr      z,ld_145
                inc_error_cnt
ld_145:         ld      sp,(w_var5)
                ld      hl,0
                add     hl,sp
                ld      a,data_aa
                cp      h
                jr      z,ld_146
                inc_error_cnt
ld_146:         ld      a,data_55
                cp      l
                jr      z,ld_147
                inc_error_cnt
ld_147:         ld      ix,(w_var6)
                ld      hl,0
                ld      sp,ix
                add     hl,sp
                ld      a,data_ff
                cp      h
                jr      z,ld_148
                inc_error_cnt
ld_148:         cp      l
                jr      z,ld_149
                inc_error_cnt
ld_149:         ld      iy,(w_var1)
                ld      hl,0
                ld      sp,iy
                add     hl,sp
                ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,ld_150
                inc_error_cnt
ld_150:         ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,ld_151
                inc_error_cnt
ld_151:         ld      hl,data_1234
                ld      (tw_var1),hl
                ld      bc,(tw_var1)
                ld      a,#12      ;bjp was >data_1234
                cp      b
                jr      z,ld_152
                inc_error_cnt
ld_152:         ld      a,#34      ;bjp was >data_1234
                cp      c
                jr      z,ld_153
                inc_error_cnt
ld_153:         ld      bc,data_55aa
                ld      (tw_var2),bc
                ld      hl,(tw_var2)
                ld      a,data_55
                cp      h
                jr      z,ld_154
                inc_error_cnt
ld_154:         ld      a,data_aa
                cp      l
                jr      z,ld_155
                inc_error_cnt
ld_155:         ld      de,data_7fff
                ld      (tw_var3),de
                ld      hl,(tw_var3)
                ld      a,data_7f
                cp      h
                jr      z,ld_156
                inc_error_cnt
ld_156:         ld      a,data_ff
                cp      l
                jr      z,ld_157
                inc_error_cnt
ld_157:         ld      hl,data_8000
                ld      (tw_var4),hl
                ld      bc,(tw_var4)
                ld      a,data_80
                cp      b
                jr      z,ld_158
                inc_error_cnt
ld_158:         ld      a,0
                cp      c
                jr      z,ld_159
                inc_error_cnt
ld_159:         ld      sp,data_aa55
                ld      (tw_var5),sp
                ld      hl,(tw_var5)
                ld      a,data_aa
                cp      h
                jr      z,ld_160
                inc_error_cnt
ld_160:         ld      a,data_55
                cp      l
                jr      z,ld_161
                inc_error_cnt
ld_161:         ld      ix,data_ffff
                ld      (tw_var6),ix
                ld      hl,(tw_var6)
                ld      a,data_ff
                cp      h
                jr      z,ld_162
                inc_error_cnt
ld_162:         cp      l
                jr      z,ld_163
                inc_error_cnt
ld_163:         ld      iy,data_1234
                ld      (tw_var7),iy
                ld      hl,(tw_var7)
                ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,ld_164
                inc_error_cnt
ld_164:         ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,ld_165
                inc_error_cnt
ld_165:         ld      hl,data_55aa
                ld      sp,hl
                ld      hl,0
                add     hl,sp
                ld      a,data_55
                cp      h
                jr      z,ld_166
                inc_error_cnt
ld_166:         ld      a,data_aa
                cp      l
                jr      z,push_0
                inc_error_cnt
push_0:         ld      sp,stack_end
                ld      bc,data_1234
                push    bc
                ld      bc,0
                pop     bc
                ld      a,#12      ;bjp was >data_1234
                cp      b
                jr      z,push_1
                inc_error_cnt
push_1:         ld      a,#34      ;bjp was >data_1234
                cp      c
                jr      z,push_2
                inc_error_cnt
push_2:         ld      de,data_55aa
                push    de
                ld      de,0
                pop     de
                ld      a,data_55
                cp      d
                jr      z,push_3
                inc_error_cnt
push_3:         ld      a,data_aa
                cp      e
                jr      z,push_4
                inc_error_cnt
push_4:         ld      hl,data_7fff
                push    hl
                ld      hl,0
                pop     hl
                ld      a,data_7f
                cp      h
                jr      z,push_5
                inc_error_cnt
push_5:         ld      a,data_ff
                cp      l
                jr      z,push_6
                inc_error_cnt
push_6:         ld      a,data_80
                push    af                      ;f depends on previous compare
                ld      hl,0
                pop     hl
                cp      h
                jr      z,push_7
                inc_error_cnt
push_7:         ld      a,l
                cp      #42
                jr      z,push_8
push_8:         ld      h,data_55
                ld      l,data_80+#41
                ld      a,0
                push    hl
                pop     af
                jp      m,push_9
                inc_error_cnt
push_9:         jr      z,push_10
                inc_error_cnt
push_10:        jr      c,push_11
                inc_error_cnt
push_11:        cp      data_55
                jr      z,push_12
                inc_error_cnt
push_12:        ld      ix,data_aa55
                ld      bc,0
                push    ix
                pop     bc
                ld      a,data_aa
                cp      b
                jr      z,push_13
                inc_error_cnt
push_13:        ld      a,data_55
                cp      c
                jr      z,push_14
                inc_error_cnt
push_14:        ld      iy,data_7fff
                ld      de,0
                push    iy
                pop     de
                ld      a,data_7f
                cp      d
                jr      z,push_15
                inc_error_cnt
push_15:        ld      a,data_ff
                cp      e
                jr      z,push_16
                inc_error_cnt
push_16:        ld      de,data_1234
                ld      ix,0
                ld      hl,0
                push    de
                pop     ix
                ld      sp,ix
                add     hl,sp
                ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,push_17
                inc_error_cnt
push_17:        ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,push_18
                inc_error_cnt
push_18:        ld      sp,stack_end
                ld      bc,data_55aa
                ld      iy,0
                ld      hl,0
                push    bc
                pop     iy
                ld      sp,iy
                add     hl,sp
                ld      a,data_55
                cp      h
                jr      z,push_19
                inc_error_cnt
push_19:        ld      a,data_aa
                cp      l
                jr      z,push_20
                inc_error_cnt
push_20:        ld      sp,stack_end
ex_0:           ld      de,data_1234
                ld      hl,data_55aa   ; 10/2/2007 was ffff  need to check all bytes (missed a bug)
                ex      de,hl
                ld      a,data_55
                cp      d
                jr      z,ex_1
                inc_error_cnt
ex_1:           ld      a,data_aa
                cp      e
                jr      z,ex_2
                inc_error_cnt
ex_2:           ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,ex_3
                inc_error_cnt
ex_3:           ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,ex_4
                inc_error_cnt
ex_4:           ld      h,0
                ld      l,0
                push    hl
                pop     af
                ex      af,af'
                ld      h,data_7f
                ld      l,data_80+#41
                push    hl
                pop     af
                ex      af,af'
                cp      0
                jr      z,ex_5
                inc_error_cnt
ex_5:           ex      af,af'
                jp      m,ex_6
                inc_error_cnt
ex_6:           jr      z,ex_7
                inc_error_cnt
ex_7:           cp      data_7f
                jr      z,ex_8
                inc_error_cnt
ex_8:           ld      hl,0
                ld      bc,0
                ld      de,0
                exx
                ld      hl,data_1234
                ld      bc,data_7fff
                ld      de,data_aa55
                exx
                ld      a,0
                cp      h
                jr      z,ex_9
                inc_error_cnt
ex_9:           cp      l
                jr      z,ex_10
                inc_error_cnt
ex_10:          cp      d
                jr      z,ex_11
                inc_error_cnt
ex_11:          cp      e
                jr      z,ex_12
                inc_error_cnt
ex_12:          cp      b
                jr      z,ex_13
                inc_error_cnt
ex_13:          cp      c
                jr      z,ex_14
                inc_error_cnt
ex_14:          exx
                ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,ex_15
                inc_error_cnt
ex_15:          ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,ex_16
                inc_error_cnt
ex_16:          ld      a,data_aa
                cp      d
                jr      z,ex_17
                inc_error_cnt
ex_17:          ld      a,data_55
                cp      e
                jr      z,ex_18
                inc_error_cnt
ex_18:          ld      a,data_7f
                cp      b
                jr      z,ex_19
                inc_error_cnt
ex_19:          ld      a,data_ff
                cp      c
                jr      z,ex_20
                inc_error_cnt
ex_20:          ld      bc,data_55aa
                ld      hl,data_7fff
                push    bc
                ex      (sp),hl
                pop     bc
                ld      a,data_7f
                cp      b
                jr      z,ex_21
                inc_error_cnt
ex_21:          ld      a,data_ff
                cp      c
                jr      z,ex_22
                inc_error_cnt
ex_22:          ld      a,data_55
                cp      h
                jr      z,ex_23
                inc_error_cnt
ex_23:          ld      a,data_aa
                cp      l
                jr      z,ex_24
                inc_error_cnt
ex_24:          ld      bc,data_ffff
                ld      ix,data_8000
                ld      hl,0
                push    bc
                ex      (sp),ix
                pop     bc
                ld      sp,ix
                add     hl,sp
                ld      a,data_80
                cp      b
                jr      z,ex_25
                inc_error_cnt
ex_25:          ld      a,0
                cp      c
                jr      z,ex_26
                inc_error_cnt
ex_26:          ld      a,data_ff
                cp      h
                jr      z,ex_27
                inc_error_cnt
ex_27:          cp      l
                jr      z,ex_28
                inc_error_cnt
ex_28:          ld      sp,stack_end
                ld      bc,data_1234
                ld      iy,data_7fff
                ld      hl,0
                push    bc
                ex      (sp),iy
                pop     bc
                ld      sp,iy
                add     hl,sp
                ld      a,data_7f
                cp      b
                jr      z,ex_29
                inc_error_cnt
ex_29:          ld      a,data_ff
                cp      c
                jr      z,ex_30
                inc_error_cnt
ex_30:          ld      a,#12      ;bjp was >data_1234
                cp      h
                jr      z,ex_31
                inc_error_cnt
ex_31:          ld      a,#34      ;bjp was >data_1234
                cp      l
                jr      z,add_0
                inc_error_cnt
add_0:          ld      a,0
                ld      b,data_7f
                add     a,b
                cp      data_7f
                jr      z,add_1
                inc_error_cnt
add_1:          ld      a,0
                ld      b,0
                add     a,b
                jr      z,add_2
                inc_error_cnt
add_2:          ld      b,data_55
                add     a,b
                jr      nz,add_3
                inc_error_cnt
add_3:          cp      data_55
                jr      z,add_4
                inc_error_cnt
add_4:          ld      a,data_ff
                ld      b,1
                add     a,b
                jr      c,add_5
                inc_error_cnt
add_5:          add     a,b
                jr      nc,add_6
                inc_error_cnt
add_6:          ld      a,data_ff
                ld      b,0
                add     a,b
                jp      m,add_7
                inc_error_cnt
add_7:          ld      b,1
                add     a,b
                jp      p,add_8
                inc_error_cnt
add_8:          ld      a,data_7f
                ld      b,1
                add     a,b
                jp      pe,add_9
                inc_error_cnt
add_9:          add     a,b
                jp      po,add_10
                inc_error_cnt
add_10:         ld      a,data_55
                ld      c,2
                add     a,c
                cp      data_55+2
                jr      z,add_11
                inc_error_cnt
add_11:         ld      a,data_80
                add     a,c
                cp      data_80+2
                jr      z,add_12
                inc_error_cnt
add_12:         ld      a,data_aa
                ld      d,data_55
                add     a,d
                cp      data_aa+data_55
                jr      z,add_13
                inc_error_cnt
add_13:         ld      a,data_aa
                ld      e,2
                add     a,e
                cp      data_aa+2
                jr      z,add_14
                inc_error_cnt
add_14:         ld      a,data_55
                ld      h,24
                add     a,h
                cp      data_55+24
                jr      z,add_15
                inc_error_cnt
add_15:         ld      a,data_7f-10
                ld      l,10
                add     a,l
                cp      data_7f
                jr      z,add_16
                inc_error_cnt
add_16:         ld      a,1
                add     a,data_7f
                jp      pe,add_17
                inc_error_cnt
add_17:         jp      m,add_18
                inc_error_cnt
add_18:         jr      nz,add_19
                inc_error_cnt
add_19:         cp      data_80
                jr      z,add_20
                inc_error_cnt
add_20:         ld      a,data_55
                add     a,1
                jp      po,add_21
                inc_error_cnt
add_21:         jp      p,add_22
                inc_error_cnt
add_22:         jr      nc,add_23
                inc_error_cnt
add_23:         cp      data_55+1
                jr      z,add_24
                inc_error_cnt
add_24:         ld      a,data_ff
                add     a,1
                jr      c,add_25
                inc_error_cnt
add_25:         jr      z,add_26
                inc_error_cnt
add_26:         add     a,1
                jr      nc,add_27
                inc_error_cnt
add_27:         jr      nz,add_28
                inc_error_cnt
add_28:         cp      1
                jr      z,add_29
                inc_error_cnt
add_29:         ld      hl,var2
                ld      a,2
                add     a,(hl)
                jp      po,add_30
                inc_error_cnt
add_30:         jp      p,add_31
                inc_error_cnt
add_31:         jr      nz,add_32
                inc_error_cnt
add_32:         jr      nc,add_33
                inc_error_cnt
add_33:         cp      data_55+2
                jr      z,add_34
                inc_error_cnt
add_34:         ld      hl,var1
                ld      a,1
                add     a,(hl)
                jr      c,add_35
                inc_error_cnt
add_35:         jr      z,add_36
                inc_error_cnt
add_36:         ld      hl,var5
                ld      a,1
                add     a,(hl)
                jp      m,add_37
                inc_error_cnt
add_37:         jp      pe,add_38
                inc_error_cnt
add_38:         cp      data_80
                jr      z,add_39
                inc_error_cnt
add_39:         ld      ix,var3
                ld      a,1
                add     a,(ix-1)
                jp      po,add_40
                inc_error_cnt
add_40:         jp      p,add_41
                inc_error_cnt
add_41:         jr      nz,add_42
                inc_error_cnt
add_42:         jr      nc,add_43
                inc_error_cnt
add_43:         cp      data_55+1
                jr      z,add_44
                inc_error_cnt
add_44:         ld      a,1
                add     a,(ix+2)
                jp      pe,add_45
                inc_error_cnt
add_45:         jp      m,add_46
                inc_error_cnt
add_46:         cp      data_80
                jr      z,add_47
                inc_error_cnt
add_47:         ld      a,1
                add     a,(ix-2)
                jr      c,add_48
                inc_error_cnt
add_48:         jr      z,add_49
                inc_error_cnt
add_49:         add     a,1
                jr      nc,add_50
                inc_error_cnt
add_50:         jr      nz,add_51
                inc_error_cnt
add_51:         cp      1
                jr      z,add_52
                inc_error_cnt
add_52:         ld      iy,var3
                ld      a,10
                add     a,(iy-1)
                jp      po,add_53
                inc_error_cnt
add_53:         jp      p,add_54
                inc_error_cnt
add_54:         jr      nz,add_55
                inc_error_cnt
add_55:         jr      nc,add_56
                inc_error_cnt
add_56:         cp      data_55+10
                jr      z,add_57
                inc_error_cnt
add_57:         ld      a,1
                add     a,(iy+2)
                jp      pe,add_58
                inc_error_cnt
add_58:         jp      m,add_59
                inc_error_cnt
add_59:         add     a,1
                jp      po,add_60
                inc_error_cnt
add_60:         cp      data_80+1
                jr      z,add_61
                inc_error_cnt
add_61:         ld      a,1
                add     a,(iy-2)
                jr      z,add_62
                inc_error_cnt
add_62:         jr      c,add_63
                inc_error_cnt
add_63:         add     a,1
                jr      nc,add_64
                inc_error_cnt
add_64:         jr      nz,add_65
                inc_error_cnt
add_65:         cp      1
                jr      z,add_66
                inc_error_cnt
add_66:         ld      a,data_ff
                add     a,data_80
                jp      p,add_67
                inc_error_cnt
add_67:         jp      pe,add_68
                inc_error_cnt
add_68:         jr      c,add_69
                inc_error_cnt
add_69:         add     a,1
                jp      pe,add_70
                inc_error_cnt
add_70:         jp      m,add_71
                inc_error_cnt
add_71:         jr      nc,add_72
                inc_error_cnt
add_72:         add     a,1
                jp      po,add_73
                inc_error_cnt
add_73:         cp      data_80+1
                jr      z,adc_0
                inc_error_cnt
adc_0:          ld      a,0                 ;clear cry 
                add     a,0
                ld      b,data_7f
                adc     a,b                  ;a=7f cry=0
                jp      p,adc_1
                inc_error_cnt
adc_1:          jp      po,adc_2
                inc_error_cnt
adc_2:          jr      nc,adc_3
                inc_error_cnt
adc_3:          jr      nz,adc_4
                inc_error_cnt
adc_4:          ld      b,1
                adc     a,b                     ;a=80 cry=0  
                jp      pe,adc_5                ;jp  ofl
                inc_error_cnt
adc_5:          jp      m,adc_6
                inc_error_cnt
adc_6:          cp      data_80
                jr      z,adc_7                 ;z=0  ofl=0 cry=0 (borrow)
                inc_error_cnt
adc_7:          ld      a,data_ff
                ld      b,1
                adc     a,b                      ;ff+1+0
                jr      c,adc_8
                inc_error_cnt
adc_8:          jr      z,adc_9
                inc_error_cnt
adc_9:          adc     a,b
                jr      nc,adc_10
                inc_error_cnt
adc_10:         jr      nz,adc_11
                inc_error_cnt
adc_11:         cp      2
                jr      z,adc_12
                inc_error_cnt
adc_12:         ld      a,data_ff
                ld      c,0
                adc     a,c
                jp      m,adc_13
                inc_error_cnt
adc_13:         jr      nc,adc_14
                inc_error_cnt
adc_14:         ld      c,2
                adc     a,c
                jp      p,adc_15
                inc_error_cnt
adc_15:         jr      c,adc_16
                inc_error_cnt
adc_16:         ld      c,0
                adc     a,c
                cp      2
                jr      z,adc_17
                inc_error_cnt
adc_17:         ld      a,data_ff
                ld      d,1
                adc     a,d
                jr      c,adc_18
                inc_error_cnt
adc_18:         ld      d,0
                adc     a,d
                jr      nc,adc_19
                inc_error_cnt
adc_19:         cp      1
                jr      z,adc_20
                inc_error_cnt
adc_20:         ld      a,data_aa
                ld      e,data_7f
                adc     a,e
                jr      c,adc_21
                inc_error_cnt
adc_21:         ld      e,#2b
                adc     a,e
                cp      data_55
                jr      z,adc_22
                inc_error_cnt
adc_22:         ld      a,data_ff
                ld      h,1
                adc     a,h
                jr      c,adc_23
                inc_error_cnt
adc_23:         adc     a,h
                cp      2
                jr      z,adc_24
                inc_error_cnt
adc_24:         ld      a,data_ff
                ld      l,1
                adc     a,l
                jr      c,adc_25
                inc_error_cnt
adc_25:         adc     a,l
                cp      2
                jr      z,adc_26
                inc_error_cnt
adc_26:         ld      a,0
                adc     a,data_7f
                jp      po,adc_27
                inc_error_cnt
adc_27:         jp      p,adc_28
                inc_error_cnt
adc_28:         jr      nc,adc_29
                inc_error_cnt
adc_29:         jr      nz,adc_30
                inc_error_cnt
adc_30:         adc     a,1
                jp      pe,adc_31
                inc_error_cnt
adc_31:         jp      m,adc_32
                inc_error_cnt
adc_32:         cp      data_80
                jr      z,adc_33
                inc_error_cnt
adc_33:         ld      a,data_ff
                adc     a,1
                jr      c,adc_34
                inc_error_cnt
adc_34:         jr      z,adc_35
                inc_error_cnt
adc_35:         adc     a,1
                jr      nc,adc_36
                inc_error_cnt
adc_36:         jr      nz,adc_37
                inc_error_cnt
adc_37:         cp      2
                jr      z,adc_38
                inc_error_cnt
adc_38:         ld      hl,var5
                ld      a,0
                adc     a,(hl)
                jp      p,adc_39
                inc_error_cnt
adc_39:         jp      po,adc_40
                inc_error_cnt
adc_40:         jr      nz,adc_41
                inc_error_cnt
adc_41:         jr      nc,adc_42
                inc_error_cnt
adc_42:         ld      a,1
                adc     a,(hl)
                jp      m,adc_43
                inc_error_cnt
adc_43:         jp      pe,adc_44
                inc_error_cnt
adc_44:         cp      data_80
                jr      z,adc_45
                inc_error_cnt
adc_45:         ld      hl,var1
                ld      a,1
                adc     a,(hl)
                jr      z,adc_46
                inc_error_cnt
adc_46:         jr      c,adc_47
                inc_error_cnt
adc_47:         ld      hl,var2
                adc     a,(hl)
                jr      nc,adc_48
                inc_error_cnt
adc_48:         jr      nz,adc_49
                inc_error_cnt
adc_49:         cp      data_55+1
                jr      z,adc_50
                inc_error_cnt
adc_50:         ld      ix,var3
                ld      a,0
                adc     a,(ix+2)
                jp      p,adc_51
                inc_error_cnt
adc_51:         jp      po,adc_52
                inc_error_cnt
adc_52:         jr      nc,adc_53
                inc_error_cnt
adc_53:         jr      nz,adc_54
                inc_error_cnt
adc_54:         ld      a,1
                adc     a,(ix+2)
                jp      m,adc_55
                inc_error_cnt
adc_55:         jp      pe,adc_56
                inc_error_cnt
adc_56:         cp      data_80
                jr      z,adc_57
                inc_error_cnt
adc_57:         ld      a,1
                adc     a,(ix-2)
                jr      c,adc_58
                inc_error_cnt
adc_58:         jr      z,adc_59
                inc_error_cnt
adc_59:         adc     a,(ix-1)
                jr      nc,adc_60
                inc_error_cnt
adc_60:         jr      nz,adc_61
                inc_error_cnt
adc_61:         cp      data_55+1
                jr      z,adc_62
                inc_error_cnt
adc_62:         ld      iy,var3
                ld      a,0
                adc     a,(ix+2)
                jp      p,adc_63
                inc_error_cnt
adc_63:         jp      po,adc_64
                inc_error_cnt
adc_64:         jr      nc,adc_65
                inc_error_cnt
adc_65:         jr      nz,adc_66
                inc_error_cnt
adc_66:         ld      a,1
                adc     a,(iy+2)
                jp      m,adc_67
                inc_error_cnt
adc_67:         jp      pe,adc_68
                inc_error_cnt
adc_68:         cp      data_80
                jr      z,adc_69
                inc_error_cnt
adc_69:         ld      a,1
                adc     a,(iy-2)
                jr      c,adc_70
                inc_error_cnt
adc_70:         jr      z,adc_71
                inc_error_cnt
adc_71:         adc     a,(iy-1)
                jr      nc,adc_72
                inc_error_cnt
adc_72:         jr      nz,adc_73
                inc_error_cnt
adc_73:         cp      data_55+1
                jr      z,adc_74
                inc_error_cnt
adc_74:         ld      a,data_ff
                add     a,0
                adc     a,data_80
                jp      p,adc_75
                inc_error_cnt
adc_75:         jp      pe,adc_76
                inc_error_cnt
adc_76:         jr      nz,adc_77
                inc_error_cnt
adc_77:         adc     a,0
                jp      m,adc_78
                inc_error_cnt
adc_78:         jp      pe,adc_79
                inc_error_cnt
adc_79:         adc     a,1
                jp      po,adc_80
                inc_error_cnt
adc_80:         cp      data_80+1
                jr      z,sub_0
                inc_error_cnt
sub_0:          ld      a,0
                ld      b,1
                sub     a,b
                jp      m,sub_1
                inc_error_cnt
sub_1:          jp      po,sub_2
                inc_error_cnt
sub_2:          jr      c,sub_3
                inc_error_cnt
sub_3:          jr      nz,sub_4
                inc_error_cnt
sub_4:          sub     a,b
                jr      nc,sub_5
                inc_error_cnt
sub_5:          cp      data_ff-1
                jr      z,sub_6
                inc_error_cnt
sub_6:          ld      a,1
                ld      b,0
                sub     a,b
                jr      nz,sub_7
                inc_error_cnt
sub_7:          jp      p,sub_8
                inc_error_cnt
sub_8:          ld      b,1
                sub     a,b
                jr      z,sub_9
                inc_error_cnt
sub_9:          sub     a,b
                jp      m,sub_10
                inc_error_cnt
sub_10:         cp      data_ff
                jr      z,sub_11
                inc_error_cnt
sub_11:         ld      a,data_80
                ld      b,data_7f
                sub     a,b
                jp      pe,sub_12
                inc_error_cnt
sub_12:         sub     a,b
                jp      po,sub_13
                inc_error_cnt
sub_13:         cp      data_80+2
                jr      z,sub_14
                inc_error_cnt
sub_14:         ld      a,data_55
                ld      c,data_55
                sub     a,c
                jr      z,sub_15
                inc_error_cnt
sub_15:         ld      c,1
                sub     a,c
                jp      m,sub_16
                inc_error_cnt
sub_16:         jr      c,sub_17
                inc_error_cnt
sub_17:         cp      data_ff
                jr      z,sub_18
                inc_error_cnt
sub_18:         ld      a,data_55
                ld      d,data_7f
                sub     a,d
                jr      c,sub_19
                inc_error_cnt
sub_19:         cp      data_55-data_7f
                jr      z,sub_20
                inc_error_cnt
sub_20:         ld      a,0
                ld      e,data_ff
                sub     a,e
                jr      c,sub_21
                inc_error_cnt
sub_21:         cp      1
                jr      z,sub_22
                inc_error_cnt
sub_22:         ld      a,data_ff
                ld      h,data_80
                sub     a,h
                jp      p,sub_23
                inc_error_cnt
sub_23:         cp      data_7f
                jr      z,sub_24
                inc_error_cnt
sub_24:         ld      a,data_aa
                ld      l,data_ff
                sub     a,l
                jr      c,sub_25
                inc_error_cnt
sub_25:         cp      data_aa+1
                jr      z,sub_26
                inc_error_cnt
sub_26:         ld      a,data_7f
                sub     a,data_ff
                jp      pe,sub_27
                inc_error_cnt
sub_27:         jp      m,sub_28
                inc_error_cnt
sub_28:         sub     a,1
                jp      p,sub_29
                inc_error_cnt
sub_29:         sub     a,1
                jp      po,sub_30
                inc_error_cnt
sub_30:         jr      nz,sub_31
                inc_error_cnt
sub_31:         sub     a,data_7f-1
                jr      z,sub_32
                inc_error_cnt
sub_32:         ld      a,0
                sub     a,data_ff
                jr      c,sub_33
                inc_error_cnt
sub_33:         sub     a,1
                jr      z,sub_34
                inc_error_cnt
sub_34:         jr      nc,sub_35
                inc_error_cnt
sub_35:         ld      hl,var1
                ld      a,data_7f
                sub     a,(hl)
                jp      m,sub_36
                inc_error_cnt
sub_36:         jp      pe,sub_37
                inc_error_cnt
sub_37:         jr      c,sub_38
                inc_error_cnt
sub_38:         ld      hl,var3
                sub     a,(hl)
                jp      p,sub_39
                inc_error_cnt
sub_39:         jp      po,sub_40
                inc_error_cnt
sub_40:         jr      nc,sub_41
                inc_error_cnt
sub_41          jr      z,sub_42
                inc_error_cnt
sub_42:         ld      hl,var2
                sub     a,(hl)
                jr      nz,sub_43
                inc_error_cnt
sub_43:         cp      data_aa+1
                jr      z,sub_44
                inc_error_cnt
sub_44:         ld      ix,var3
                ld      a,data_7f
                sub     a,(ix-2)
                jp      m,sub_45
                inc_error_cnt
sub_45:         jp      pe,sub_46
                inc_error_cnt
sub_46:         jr      c,sub_47
                inc_error_cnt
sub_47:         sub     a,(ix+0)
                jp      p,sub_48
                inc_error_cnt
sub_48:         jp      po,sub_49
                inc_error_cnt
sub_49:         jr      nc,sub_50
                inc_error_cnt
sub_50:         jr      z,sub_51
                inc_error_cnt
sub_51:         sub     a,(ix+2)
                jr      nz,sub_52
                inc_error_cnt
sub_52:         cp      data_80+1
                jr      z,sub_53
                inc_error_cnt
sub_53:         ld      iy,var3
                ld      a,data_7f
                sub     a,(iy-2)
                jp      m,sub_54
                inc_error_cnt
sub_54:         jp      pe,sub_55
                inc_error_cnt
sub_55:         jr      c,sub_56
                inc_error_cnt
sub_56:         jr      nz,sub_57
                inc_error_cnt
sub_57:         sub     a,(iy+0)
                jp      p,sub_58
                inc_error_cnt
sub_58:         jp      po,sub_59
                inc_error_cnt
sub_59:         jr      nc,sub_60
                inc_error_cnt
sub_60:         jr      z,sub_61
                inc_error_cnt
sub_61:         sub     a,(iy+2)
                jr      nz,sub_62
                inc_error_cnt
sub_62:         cp      data_80+1
                jr      z,sbc_0
                inc_error_cnt
sbc_0:          ld      a,data_7f
                ld      b,0
                sub     a,b                     ;clear carry flag
                ld      b,data_ff
                sbc     a,b
                jp      m,sbc_1
                inc_error_cnt
sbc_1:          jp      pe,sbc_2
                inc_error_cnt
sbc_2:          jr      c,sbc_3
                inc_error_cnt
sbc_3:          jr      nz,sbc_4
                inc_error_cnt
sbc_4:          ld      b,data_7f
                sbc     a,b
                jp      p,sbc_5
                inc_error_cnt
sbc_5:          jp      pe,sbc_6
                inc_error_cnt
sbc_6:          jr      nc,sbc_7
                inc_error_cnt
sbc_7:          jr      z,sbc_8
                inc_error_cnt
sbc_8:          ld      b,data_ff
                sbc     a,b
                jp      po,sbc_9
                inc_error_cnt
sbc_9:          jr      nz,sbc_10
                inc_error_cnt
sbc_10:         ld      b,0
                sbc     a,b
                jr      z,sbc_11
                inc_error_cnt
sbc_11:         ld      a,data_aa
                ld      c,data_ff
                sbc     a,c
                jr      c,sbc_12
                inc_error_cnt
sbc_12:         ld      c,0
                sbc     a,c
                jr      nc,sbc_13
                inc_error_cnt
sbc_13:         cp      data_aa
                jr      z,sbc_14
                inc_error_cnt
sbc_14:         ld      a,data_55
                ld      d,data_ff
                sbc     a,d
                jr      c,sbc_15
                inc_error_cnt
sbc_15:         ld      d,0
                sbc     a,d
                jr      nc,sbc_16
                inc_error_cnt
sbc_16:         cp      data_55
                jr      z,sbc_17
                inc_error_cnt
sbc_17:         ld      a,data_aa
                ld      e,data_ff
                sbc     a,e
                jr      c,sbc_18
                inc_error_cnt
sbc_18:         ld      e,0
                sbc     a,e
                jr      nc,sbc_19
                inc_error_cnt
sbc_19:         cp      data_aa
                jr      z,sbc_20
                inc_error_cnt
sbc_20:         ld      a,data_55
                ld      h,data_ff
                sbc     a,h
                jr      c,sbc_21
                inc_error_cnt
sbc_21:         ld      h,0
                sbc     a,h
                jr      nc,sbc_22
                inc_error_cnt
sbc_22:         cp      data_55
                jr      z,sbc_23
                inc_error_cnt
sbc_23:         ld      a,data_aa
                ld      l,data_ff
                sbc     a,l
                jr      c,sbc_24
                inc_error_cnt
sbc_24:         ld      l,0
                sbc     a,l
                jr      nc,sbc_25
                inc_error_cnt
sbc_25:         cp      data_aa
                jr      z,sbc_26
                inc_error_cnt
sbc_26:         ld      a,data_7f
                sbc     a,data_ff
                jp      m,sbc_27
                inc_error_cnt
sbc_27:         jp      pe,sbc_28
                inc_error_cnt
sbc_28:         jr      c,sbc_29
                inc_error_cnt
sbc_29:         jr      nz,sbc_30
                inc_error_cnt
sbc_30:         sbc     a,data_7f
                jp      p,sbc_31
                inc_error_cnt
sbc_31:         jp      pe,sbc_32
                inc_error_cnt
sbc_32:         jr      nc,sbc_33
                inc_error_cnt
sbc_33:         jr      z,sbc_34
                inc_error_cnt
sbc_34:         sbc     a,data_ff
                jr      nz,sbc_35
                inc_error_cnt
sbc_35:         cp      1
                jr      z,sbc_36
                inc_error_cnt
sbc_36:         ld      hl,var1
                ld      a,data_7f
                sbc     a,(hl)
                jp      m,sbc_37
                inc_error_cnt
sbc_37:         jp      pe,sbc_38
                inc_error_cnt
sbc_38:         jr      c,sbc_39
                inc_error_cnt
sbc_39:         jr      nz,sbc_40
                inc_error_cnt
sbc_40:         ld      hl,var5
                sbc     a,(hl)
                jp      p,sbc_41
                inc_error_cnt
sbc_41:         jp      pe,sbc_42
                inc_error_cnt
sbc_42:         jr      nc,sbc_43
                inc_error_cnt
sbc_43:         jr      z,sbc_44
                inc_error_cnt
sbc_44:         ld      hl,var2
                sbc     a,(hl)
                jr      nz,sbc_45
                inc_error_cnt
sbc_45:         cp      data_aa+1
                jr      z,sbc_46
                inc_error_cnt
sbc_46:         ld      ix,var3
                ld      a,data_7f
                sbc     a,(ix-2)
                jp      m,sbc_47
                inc_error_cnt
sbc_47:         jp      pe,sbc_48
                inc_error_cnt
sbc_48:         jr      c,sbc_49
                inc_error_cnt
sbc_49:         jr      nz,sbc_50
                inc_error_cnt
sbc_50:         sbc     a,(ix+2)
                jp      p,sbc_51
                inc_error_cnt
sbc_51:         jp      pe,sbc_52
                inc_error_cnt
sbc_52:         jr      nc,sbc_53
                inc_error_cnt
sbc_53:         jr      z,sbc_54
                inc_error_cnt
sbc_54:         sbc     a,(ix-1)
                jr      nz,sbc_55
                inc_error_cnt
sbc_55:         cp      data_aa+1
                jr      z,sbc_56
                inc_error_cnt
sbc_56:         ld      iy,var3
                ld      a,data_7f
                sbc     a,(ix-2)
                jp      m,sbc_57
                inc_error_cnt
sbc_57:         jp      pe,sbc_58
                inc_error_cnt
sbc_58:         jr      c,sbc_59
                inc_error_cnt
sbc_59:         jr      nz,sbc_60
                inc_error_cnt
sbc_60:         sbc     a,(ix+2)
                jp      p,sbc_61
                inc_error_cnt
sbc_61:         jp      pe,sbc_62
                inc_error_cnt
sbc_62:         jr      nc,sbc_63
                inc_error_cnt
sbc_63:         jr      z,sbc_64
                inc_error_cnt
sbc_64:         sbc     a,(ix+1)
                jr      nz,sbc_65
                inc_error_cnt
sbc_65:         cp      data_55+1
                jr      z,and_0
                inc_error_cnt
and_0:          ld      a,data_ff
                add     a,1                     ;set carry
                ld      a,data_ff
                ld      b,data_aa
                and     a,b
                jr      nc,and_1
                inc_error_cnt
and_1:          jp      m,and_2
                inc_error_cnt
and_2:          jp      pe,and_3
                inc_error_cnt
and_3:          jr      nz,and_4
                inc_error_cnt
and_4:          ld      b,data_55
                and     a,b
                jp      p,and_5
                inc_error_cnt
and_5:          jr      z,and_6
                inc_error_cnt
and_6:          ld      a,data_ff
                ld      b,data_7f
                and     a,b
                jp      po,and_7
                inc_error_cnt
and_7:          ld      b,data_55
                and     a,b
                jp      pe,and_8
                inc_error_cnt
and_8:          ld      a,data_ff
                ld      c,data_80
                and     a,c
                jp      m,and_9
                inc_error_cnt
and_9:          cp      data_80
                jr      z,and_10
                inc_error_cnt
and_10:         ld      a,data_ff
                ld      d,data_7f
                and     a,d
                jp      p,and_11
                inc_error_cnt
and_11:         cp      data_7f
                jr      z,and_12
                inc_error_cnt
and_12:         ld      a,data_ff
                ld      e,data_aa
                and     a,e
                jp      m,and_13
                inc_error_cnt
and_13:         cp      data_aa
                jr      z,and_14
                inc_error_cnt
and_14:         ld      a,data_ff
                ld      h,data_55
                and     a,h
                jp      p,and_15
                inc_error_cnt
and_15:         cp      data_55
                jr      z,and_16
                inc_error_cnt
and_16:         ld      a,data_ff
                ld      l,data_aa
                and     a,l
                jp      m,and_17
                inc_error_cnt
and_17:         cp      data_aa
                jr      z,and_18
                inc_error_cnt
and_18:         ld      a,data_ff
                and     a,data_aa
                jp      m,and_19
                inc_error_cnt
and_19:         jr      nz,and_20
                inc_error_cnt
and_20:         and     a,data_55
                jp      p,and_21
                inc_error_cnt
and_21:         jr      z,and_22
                inc_error_cnt
and_22:         ld      a,data_ff
                and     a,data_7f
                jp      po,and_23
                inc_error_cnt
and_23:         and     a,data_55
                jp      pe,and_24
                inc_error_cnt
and_24:         jr      nz,and_25
                inc_error_cnt
and_25:         and     a,data_aa
                jr      z,and_26
                inc_error_cnt
and_26:         ld      a,data_ff
                and     a,data_aa
                cp      data_aa
                jr      z,and_27
                inc_error_cnt
and_27:         ld      hl,var4
                ld      a,data_ff
                and     a,(hl)
                jp      m,and_28
                inc_error_cnt
and_28:         jr      nz,and_29
                inc_error_cnt
and_29:         ld      hl,var2
                and     a,(hl)
                jp      p,and_30
                inc_error_cnt
and_30:         jr      z,and_31
                inc_error_cnt
and_31:         ld      a,data_ff
                ld      hl,var5
                and     a,(hl)
                jp      po,and_32
                inc_error_cnt
and_32:         ld      hl,var2
                and     a,(hl)
                jp      pe,and_33
                inc_error_cnt
and_33:         cp      data_55
                jr      z,and_34
                inc_error_cnt
and_34:         ld      ix,var3
                ld      a,data_ff
                and     a,(ix+1)
                jp      m,and_35
                inc_error_cnt
and_35:         jr      nz,and_36
                inc_error_cnt
and_36:         and     a,(ix-1)
                jp      p,and_37
                inc_error_cnt
and_37:         jr      z,and_38
                inc_error_cnt
and_38:         ld      a,data_ff
                and     a,(ix+2)
                jp      po,and_39
                inc_error_cnt
and_39:         and     a,(ix-1)
                jp      pe,and_40
                inc_error_cnt
and_40:         cp      data_55
                jr      z,and_41
                inc_error_cnt
and_41:         ld      iy,var3
                ld      a,data_ff
                and     a,(iy+1)
                jp      m,and_42
                inc_error_cnt
and_42:         jr      nz,and_43
                inc_error_cnt
and_43:         and     a,(iy-1)
                jp      p,and_44
                inc_error_cnt
and_44:         jr      z,and_45
                inc_error_cnt
and_45:         ld      a,data_ff
                and     a,(iy+2)
                jp      po,and_46
                inc_error_cnt
and_46:         and     a,(iy-1)
                jp      pe,and_47
                inc_error_cnt
and_47:         cp      data_55
                jr      z,or_0
                inc_error_cnt
or_0:           ld      a,0
                ld      b,data_7f
                or      a,b
                jp      p,or_1
                inc_error_cnt
or_1:           jp      po,or_2
                inc_error_cnt
or_2:           ld      b,data_80
                or      a,b
                jp      m,or_3
                inc_error_cnt
or_3:           jp      pe,or_4
                inc_error_cnt
or_4:           cp      data_ff
                jr      z,or_5
                inc_error_cnt
or_5:           ld      a,0
                ld      b,0
                or      a,b
                jr      z,or_6
                inc_error_cnt
or_6:           ld      b,data_55
                or      a,b
                jr      nz,or_7
                inc_error_cnt
or_7:           cp      data_55
                jr      z,or_8
                inc_error_cnt
or_8:           ld      a,data_ff
                add     a,1
                jr      c,or_9
                inc_error_cnt
or_9:           ld      b,data_7f
                or      a,b
                jr      nc,or_10
                inc_error_cnt
or_10:          cp      data_7f
                jr      z,or_11
                inc_error_cnt
or_11:          ld      a,0
                ld      c,data_55
                or      a,c
                cp      data_55
                jr      z,or_12
                inc_error_cnt
or_12:          ld      c,data_aa
                or      a,c
                cp      data_ff
                jr      z,or_13
                inc_error_cnt
or_13:          ld      a,0
                ld      d,data_aa
                or      a,d
                cp      data_aa
                jr      z,or_14
                inc_error_cnt
or_14:          ld      e,data_55
                or      a,e
                cp      data_ff
                jr      z,or_15
                inc_error_cnt
or_15:          ld      a,0
                ld      h,data_80
                or      a,h
                cp      data_80
                jr      z,or_16
                inc_error_cnt
or_16:          ld      l,data_7f
                or      a,l
                cp      data_ff
                jr      z,or_17
                inc_error_cnt
or_17:          ld      a,0
                or      a,data_7f
                jp      p,or_18
                inc_error_cnt
or_18:          jp      po,or_19
                inc_error_cnt
or_19:          or      a,data_80
                jp      m,or_20
                inc_error_cnt
or_20:          jp      pe,or_21
                inc_error_cnt
or_21:          cp      data_ff
                jr      z,or_22
                inc_error_cnt
or_22:          ld      a,0
                or      a,0
                jr      z,or_23
                inc_error_cnt
or_23:          or      a,data_7f
                jr      nz,or_24
                inc_error_cnt
or_24:          ld      a,data_ff
                add     a,1
                jr      c,or_25
                inc_error_cnt
or_25:          or      a,data_55
                jr      nc,or_26
                inc_error_cnt
or_26:          cp      data_55
                jr      z,or_27
                inc_error_cnt
or_27:          ld      hl,var5
                ld      a,0
                or      a,(hl)
                jp      p,or_28
                inc_error_cnt
or_28:          jp      po,or_29
                inc_error_cnt
or_29:          ld      hl,var3
                or      a,(hl)
                jp      m,or_30
                inc_error_cnt
or_30:          jp      pe,or_31
                inc_error_cnt
or_31:          cp      data_ff
                jr      z,or_32
                inc_error_cnt
or_32:          ld      hl,t_var1
                ld      a,0
                ld      (hl),a
                or      a,(hl)
                jr      z,or_33
                inc_error_cnt
or_33:          ld      hl,var2
                or      a,(hl)
                jr      nz,or_34
                inc_error_cnt
or_34:          cp      data_55
                jr      z,or_35
                inc_error_cnt
or_35:          ld      ix,var3
                ld      a,0
                or      a,(ix+2)
                jp      p,or_36
                inc_error_cnt
or_36:          jp      po,or_37
                inc_error_cnt
or_37:          or      a,(ix+0)
                jp      m,or_38
                inc_error_cnt
or_38:          jp      pe,or_39
                inc_error_cnt
or_39:          cp      data_ff
                jr      z,or_40
                inc_error_cnt
or_40:          ld      ix,t_var3
                ld      a,0
                ld      (ix-2),a
                or      a,(ix-2)
                jr      z,or_41
                inc_error_cnt
or_41:          ld      (ix+2),data_aa
                or      a,(ix+2)
                jr      nz,or_42
                inc_error_cnt
or_42:          cp      data_aa
                jr      z,or_43
                inc_error_cnt
or_43:          ld      iy,var3
                ld      a,0
                or      a,(iy+2)
                jp      p,or_44
                inc_error_cnt
or_44:          jp      po,or_45
                inc_error_cnt
or_45:          or      a,(iy+0)
                jp      m,or_46
                inc_error_cnt
or_46:          jp      pe,or_47
                inc_error_cnt
or_47:          cp      data_ff
                jr      z,or_48
                inc_error_cnt
or_48:          ld      iy,t_var3
                ld      a,0
                ld      (iy-2),a
                or      a,(iy-2)
                jr      z,or_49
                inc_error_cnt
or_49:          ld      (iy+2),data_55
                or      a,(iy+2)
                jr      nz,or_50
                inc_error_cnt
or_50:          cp      data_55
                jr      z,xor_0
                inc_error_cnt
xor_0:          ld      a,data_ff
                ld      b,data_55
                xor     a,b
                jp      m,xor_1
                inc_error_cnt
xor_1:          jp      pe,xor_2
                inc_error_cnt
xor_2:          ld      b,data_80
                xor     a,b
                jp      p,xor_3
                inc_error_cnt
xor_3:          jp      po,xor_4
                inc_error_cnt
xor_4:          cp      #2a
                jr      z,xor_5
                inc_error_cnt
xor_5:          ld      a,data_ff
                ld      b,data_ff
                xor     a,b
                jr      z,xor_6
                inc_error_cnt
xor_6:          ld      b,data_55
                xor     a,b
                jr      nz,xor_7
                inc_error_cnt
xor_7:          cp      data_55
                jr      z,xor_8
                inc_error_cnt
xor_8:          ld      a,data_ff
                add     a,1
                jr      c,xor_9
                inc_error_cnt
xor_9:          ld      b,data_aa
                xor     a,b
                jr      nc,xor_10
                inc_error_cnt
xor_10:         cp      data_aa
                jr      z,xor_11
                inc_error_cnt
xor_11:         ld      a,data_ff
                ld      c,data_7f
                xor     a,c
                jp      m,xor_12
                inc_error_cnt
xor_12:         cp      data_80
                jr      z,xor_13
                inc_error_cnt
xor_13:         ld      a,data_ff
                ld      d,data_55
                xor     a,d
                jp      m,xor_14
                inc_error_cnt
xor_14:         cp      data_aa
                jr      z,xor_15
                inc_error_cnt
xor_15:         ld      e,data_55
                xor     a,e
                jp      m,xor_16
                inc_error_cnt
xor_16:         cp      data_ff
                jr      z,xor_17
                inc_error_cnt
xor_17:         ld      a,data_ff
                ld      h,data_7f
                xor     a,h
                jp      po,xor_18
                inc_error_cnt
xor_18:         ld      l,data_7f
                xor     a,l
                jp      pe,xor_19
                inc_error_cnt
xor_19:         cp      data_ff
                jr      z,xor_20
                inc_error_cnt
xor_20:         ld      a,data_ff
                add     a,1
                jr      c,xor_21
                inc_error_cnt
xor_21:         ld      b,data_7f
                xor     a,b
                jr      nc,xor_22
                inc_error_cnt
xor_22:         cp      data_7f
                jr      z,xor_23
                inc_error_cnt
xor_23:         ld      a,data_ff
                xor     a,data_7f
                jp      po,xor_24
                inc_error_cnt
xor_24:         jp      m,xor_25
                inc_error_cnt
xor_25:         xor     a,data_7f
                jp      pe,xor_26
                inc_error_cnt
xor_26:         jp      m,xor_27
                inc_error_cnt
xor_27:         xor     a,data_aa
                jp      p,xor_28
                inc_error_cnt
xor_28:         cp      data_55
                jr      z,xor_29
                inc_error_cnt
xor_29:         ld      a,data_ff
                xor     a,data_ff
                jr      z,xor_30
                inc_error_cnt
xor_30:         xor     a,data_80
                jr      nz,xor_31
                inc_error_cnt
xor_31:         cp      data_80
                jr      z,xor_32
                inc_error_cnt
xor_32:         ld      hl,var5
                ld      a,data_ff
                xor     a,(hl)
                jp      m,xor_33
                inc_error_cnt
xor_33:         jp      po,xor_34
                inc_error_cnt
xor_34:         xor     a,(hl)
                jp      m,xor_35
                inc_error_cnt
xor_35:         jp      pe,xor_36
                inc_error_cnt
xor_36:         ld      hl,var3
                xor     a,(hl)
                jp      p,xor_37
                inc_error_cnt
xor_37:         cp      data_7f
                jr      z,xor_38
                inc_error_cnt
xor_38:         ld      hl,var1
                ld      a,data_ff
                xor     a,(hl)
                jr      z,xor_39
                inc_error_cnt
xor_39:         ld      hl,var2
                xor     a,(hl)
                jr      nz,xor_40
                inc_error_cnt
xor_40:         cp      data_55
                jr      z,xor_41
                inc_error_cnt
xor_41:         ld      ix,var3
                ld      a,data_ff
                xor     a,(ix+2)
                jp      m,xor_42
                inc_error_cnt
xor_42:         jp      po,xor_43
                inc_error_cnt
xor_43:         xor     a,(ix+2)
                jp      m,xor_44
                inc_error_cnt
xor_44:         jp      pe,xor_45
                inc_error_cnt
xor_45:         xor     a,(ix+1)
                jp      p,xor_46
                inc_error_cnt
xor_46:         cp      data_55
                jr      z,xor_47
                inc_error_cnt
xor_47:         ld      a,data_ff
                xor     a,(ix-2)
                jr      z,xor_48
                inc_error_cnt
xor_48:         xor     a,(ix+1)
                jr      nz,xor_49
                inc_error_cnt
xor_49:         cp      data_aa
                jr      z,xor_50
                inc_error_cnt
xor_50:         ld      iy,var3
                ld      a,data_ff
                xor     a,(iy+2)
                jp      m,xor_51
                inc_error_cnt
xor_51:         jp      po,xor_52
                inc_error_cnt
xor_52:         xor     a,(iy+2)
                jp      m,xor_53
                inc_error_cnt
xor_53:         jp      pe,xor_54
                inc_error_cnt
xor_54:         xor     a,(iy+1)
                jp      p,xor_55
                inc_error_cnt
xor_55:         cp      data_55
                jr      z,xor_56
                inc_error_cnt
xor_56:         ld      a,data_ff
                xor     a,(iy-2)
                jr      z,xor_57
                inc_error_cnt
xor_57:         xor     a,(iy-1)
                jr      nz,xor_58
                inc_error_cnt
xor_58:         cp      data_55
                jr      z,cp_0
                inc_error_cnt
cp_0:           ld      a,0
                ld      b,0
                cp      a,b
                jr      z,cp_1
                inc_error_cnt
cp_1:           jp      p,cp_2
                inc_error_cnt
cp_2:           jr      nc,cp_3
                inc_error_cnt
cp_3:           ld      b,data_55
                cp      a,b
                jr      nz,cp_4
                inc_error_cnt
cp_4:           jp      m,cp_5
                inc_error_cnt
cp_5:           jr      c,cp_6
                inc_error_cnt
cp_6:           ld      a,data_80
                ld      b,data_7f
                cp      a,b
                jp      pe,cp_7
                inc_error_cnt
cp_7:           jr      nc,cp_8
                inc_error_cnt
cp_8:           ld      a,data_7f
                ld      b,data_80
                cp      a,b
                jp      pe,cp_9
                inc_error_cnt
cp_9:           jr      c,cp_10
                inc_error_cnt
cp_10:          ld      b,0
                cp      a,b
                jp      po,cp_11
                inc_error_cnt
cp_11:          jr      nc,cp_12
                inc_error_cnt
cp_12:          ld      a,data_80
                ld      c,0
                cp      a,c
                jp      m,cp_13
                inc_error_cnt
cp_13:          ld      c,data_80
                cp      a,c
                jr      z,cp_14
                inc_error_cnt
cp_14:          ld      a,data_7f
                ld      d,data_55
                cp      a,d
                jp      p,cp_15
                inc_error_cnt
cp_15:          jr      nz,cp_16
                inc_error_cnt
cp_16:          ld      e,data_7f
                cp      a,e
                jr      z,cp_17
                inc_error_cnt
cp_17:          ld      a,data_80
                ld      h,data_ff
                cp      a,h
                jp      m,cp_18
                inc_error_cnt
cp_18:          jr      c,cp_19
                inc_error_cnt
cp_19:          ld      l,data_80
                cp      a,l
                jr      z,cp_20
                inc_error_cnt
cp_20:          ld      a,data_80
                cp      a,data_7f
                jp      p,cp_21
                inc_error_cnt
cp_21:          jp      pe,cp_22
                inc_error_cnt
cp_22:          jr      nz,cp_23
                inc_error_cnt
cp_23:          cp      a,data_80
                jp      p,cp_24
                inc_error_cnt
cp_24:          jp      po,cp_25
                inc_error_cnt
cp_25:          jr      z,cp_26
                inc_error_cnt
cp_26:          ld      a,data_55
                cp      a,data_7f
                jr      c,cp_27
                inc_error_cnt
cp_27:          jp      m,cp_28
                inc_error_cnt
cp_28:          cp      a,data_55
                jr      nc,cp_29
                inc_error_cnt
cp_29:          jr      z,cp_30
                inc_error_cnt
cp_30:          ld      a,data_80
                ld      hl,var5
                cp      a,(hl)
                jp      p,cp_31
                inc_error_cnt
cp_31:          jp      pe,cp_32
                inc_error_cnt
cp_32:          jr      nz,cp_33
                inc_error_cnt
cp_33:          ld      hl,var3
                cp      a,(hl)
                jp      p,cp_34
                inc_error_cnt
cp_34:          jp      po,cp_35
                inc_error_cnt
cp_35:          jr      z,cp_36
                inc_error_cnt
cp_36:          ld      a,data_55
                ld      hl,var5
                cp      a,(hl)
                jr      c,cp_37
                inc_error_cnt
cp_37:          jp      m,cp_38
                inc_error_cnt
cp_38:          ld      hl,var2
                cp      a,(hl)
                jr      nc,cp_39
                inc_error_cnt
cp_39:          jp      p,cp_40
                inc_error_cnt
cp_40:          jr      z,cp_41
                inc_error_cnt
cp_41:          ld      a,data_80
                ld      ix,var3
                cp      a,(ix+2)
                jp      p,cp_42
                inc_error_cnt
cp_42:          jp      pe,cp_43
                inc_error_cnt
cp_43:          jr      nz,cp_44
                inc_error_cnt
cp_44:          cp      a,(ix+0)
                jp      p,cp_45
                inc_error_cnt
cp_45:          jp      po,cp_46
                inc_error_cnt
cp_46:          jr      z,cp_47
                inc_error_cnt
cp_47:          ld      a,data_55
                cp      a,(ix-2)
                jr      nz,cp_48
                inc_error_cnt
cp_48:          jr      c,cp_49
                inc_error_cnt
cp_49:          cp      a,(ix-1)
                jr      z,cp_50
                inc_error_cnt
cp_50:          jr      nc,cp_51
                inc_error_cnt
cp_51:          ld      iy,var3
                ld      a,data_80
                cp      a,(iy+2)
                jp      p,cp_52
                inc_error_cnt
cp_52:          jp      pe,cp_53
                inc_error_cnt
cp_53:          jr      nz,cp_54
                inc_error_cnt
cp_54:          cp      a,(iy+0)
                jp      p,cp_55
                inc_error_cnt
cp_55:          jp      po,cp_56
                inc_error_cnt
cp_56:          jr      z,cp_57
                inc_error_cnt
cp_57:          ld      a,data_55
                cp      a,(iy-2)
                jr      nz,cp_58
                inc_error_cnt
cp_58:          jr      c,cp_59
                inc_error_cnt
cp_59:          cp      a,(iy-1)
                jr      z,cp_60
                inc_error_cnt
cp_60:          jr      nc,inc_0
                inc_error_cnt
inc_0:          ld      a,data_7f
                cp      a,data_7f
                jr      z,inc_1
                inc_error_cnt
inc_1:          inc     a
                jp      pe,inc_2
                inc_error_cnt
inc_2:          jp      m,inc_3
                inc_error_cnt
inc_3:          jr      nz,inc_4
                inc_error_cnt
inc_4:          ld      a,data_55
                inc     a
                jp      po,inc_5
                inc_error_cnt
inc_5:          jp      p,inc_6
                inc_error_cnt
inc_6:          cp      a,data_55+1
                jr      z,inc_7
                inc_error_cnt
inc_7:          ld      a,data_ff-1
                inc     a
                jr      nz,inc_8
                inc_error_cnt
inc_8:          jp      m,inc_9
                inc_error_cnt
inc_9:          inc     a
                jr      z,inc_10
                inc_error_cnt
inc_10:         ld      b,data_aa
                inc     b
                jp      m,inc_11
                inc_error_cnt
inc_11:         ld      a,b
                cp      a,data_aa+1
                jr      z,inc_12
                inc_error_cnt
inc_12:         ld      c,data_80
                inc     c
                jp      m,inc_13
                inc_error_cnt
inc_13:         ld      a,c
                cp      a,data_80+1
                jr      z,inc_14
                inc_error_cnt
inc_14:         ld      d,data_ff
                inc     d
                jr      z,inc_15
                inc_error_cnt
inc_15:         ld      e,data_55
                inc     e
                jp      p,inc_16
                inc_error_cnt
inc_16:         ld      a,e
                cp      a,data_55+1
                jr      z,inc_17
                inc_error_cnt
inc_17:         ld      h,data_7f
                inc     h
                jp      pe,inc_18
                inc_error_cnt
inc_18:         ld      a,h
                cp      a,data_80
                jr      z,inc_19
                inc_error_cnt
inc_19:         ld      l,data_aa
                inc     l
                jp      m,inc_20
                inc_error_cnt
inc_20:         ld      a,l
                cp      a,data_aa+1
                jr      z,inc_21
                inc_error_cnt
inc_21:         ld      hl,t_var1
                ld      a,data_7f
                ld      (hl),a
                cp      a,(hl)
                jr      z,inc_22
                inc_error_cnt
inc_22:         inc     (hl)
                jp      m,inc_23
                inc_error_cnt
inc_23:         jp      pe,inc_24
                inc_error_cnt
inc_24:         ld      a,data_55
                ld      (hl),a
                inc     (hl)
                jp      p,inc_25
                inc_error_cnt
inc_25:         jp      po,inc_26
                inc_error_cnt
inc_26:         ld      a,(hl)
                cp      a,data_55+1
                jr      z,inc_27
                inc_error_cnt
inc_27:         ld      a,data_ff
                ld      (hl),a
                inc     (hl)
                jr      z,inc_28
                inc_error_cnt
inc_28:         inc     (hl)
                jr      nz,inc_29
                inc_error_cnt
inc_29:         ld      a,(hl)
                cp      a,1
                jr      z,inc_30
                inc_error_cnt
inc_30:         ld      a,data_aa
                ld      (hl),a
                inc     (hl)
                jp      m,inc_31
                inc_error_cnt
inc_31:         ld      a,(hl)
                cp      a,data_aa+1
                jr      z,inc_32
                inc_error_cnt
inc_32:         ld      ix,t_var3
                ld      a,data_7f
                ld      (ix-2),a
                cp      a,data_7f
                jr      z,inc_33
                inc_error_cnt
inc_33:         inc     (ix-2)
                jp      m,inc_34
                inc_error_cnt
inc_34:         jp      pe,inc_35
                inc_error_cnt
inc_35:         ld      a,data_55
                ld      (ix+2),a
                inc     (ix+2)
                jp      p,inc_36
                inc_error_cnt
inc_36:         jp      po,inc_37
                inc_error_cnt
inc_37:         ld      a,(ix+2)
                cp      a,data_55+1
                jr      z,inc_38
                inc_error_cnt
inc_38:         ld      a,data_ff
                ld      (ix-1),a
                inc     (ix-1)
                jr      z,inc_39
                inc_error_cnt
inc_39:         inc     (ix-1)
                jr      nz,inc_40
                inc_error_cnt
inc_40:         ld      a,(ix-1)
                cp      a,1
                jr      z,inc_41
                inc_error_cnt
inc_41:         ld      a,data_aa
                ld      (ix+1),a
                inc     (ix+1)
                jp      m,inc_42
                inc_error_cnt
inc_42:         ld      a,(ix+1)
                cp      a,data_aa+1
                jr      z,inc_43
                inc_error_cnt
inc_43:         ld      iy,t_var3
                ld      a,data_7f
                ld      (iy+2),a
                cp      a,data_7f
                jr      z,inc_44
                inc_error_cnt
inc_44:         inc     (iy+2)
                jp      m,inc_45
                inc_error_cnt
inc_45:         jp      pe,inc_46
                inc_error_cnt
inc_46:         ld      a,data_55
                ld      (iy-2),a
                inc     (iy-2)
                jp      p,inc_47
                inc_error_cnt
inc_47:         jp      po,inc_48
                inc_error_cnt
inc_48:         ld      a,(iy-2)
                cp      a,data_55+1
                jr      z,inc_49
                inc_error_cnt
inc_49:         ld      a,data_ff
                ld      (iy+1),a
                inc     (iy+1)
                jr      z,inc_50
                inc_error_cnt
inc_50:         inc     (iy+1)
                jr      nz,inc_51
                inc_error_cnt
inc_51:         ld      a,(iy+1)
                cp      a,1
                jr      z,inc_52
                inc_error_cnt
inc_52:         ld      a,data_80
                ld      (iy-1),a
                inc     (iy-1)
                jp      m,inc_53
                inc_error_cnt
inc_53:         ld      a,(iy-1)
                cp      a,data_80+1
                jr      z,dec_0
                inc_error_cnt
dec_0:          ld      a,data_80
                cp      a,data_80
                jr      z,dec_1
                inc_error_cnt
dec_1:          dec     a
                jp      p,dec_2
                inc_error_cnt
dec_2:          jp      pe,dec_3
                inc_error_cnt
dec_3:          ld      a,0
                dec     a
                jp      m,dec_4
                inc_error_cnt
dec_4:          jp      po,dec_5
                inc_error_cnt
dec_5:          cp      a,data_ff
                jr      z,dec_6
                inc_error_cnt
dec_6:          ld      a,1
                dec     a
                jr      z,dec_7
                inc_error_cnt
dec_7:          dec     a
                jr      nz,dec_8
                inc_error_cnt
dec_8:          cp      a,data_ff
                jr      z,dec_9
                inc_error_cnt
dec_9:          ld      a,data_aa
                dec     a
                cp      a,data_aa-1
                jr      z,dec_10
                inc_error_cnt
dec_10:         ld      b,data_7f
                dec     b
                ld      a,b
                cp      a,data_7f-1
                jr      z,dec_11
                inc_error_cnt
dec_11:         ld      c,data_55
                dec     c
                ld      a,c
                cp      a,data_55-1
                jr      z,dec_12
                inc_error_cnt
dec_12:         ld      d,data_aa
                dec     d
                ld      a,d
                cp      a,data_aa-1
                jr      z,dec_13
                inc_error_cnt
dec_13:         ld      e,data_80
                dec     e
                ld      a,e
                cp      a,data_80-1
                jr      z,dec_14
                inc_error_cnt
dec_14:         ld      h,data_ff
                dec     h
                ld      a,h
                cp      a,data_ff-1
                jr      z,dec_15
                inc_error_cnt
dec_15:         ld      l,data_55
                dec     l
                ld      a,l
                cp      a,data_55-1
                jr      z,dec_16
                inc_error_cnt
dec_16:         ld      hl,t_var5
                ld      a,data_80
                ld      (hl),a
                cp      a,(hl)
                jr      z,dec_17
                inc_error_cnt
dec_17:         dec     (hl)
                jp      p,dec_18
                inc_error_cnt
dec_18:         jp      pe,dec_19
                inc_error_cnt
dec_19:         ld      a,0
                ld      (hl),a
                dec     (hl)
                jp      m,dec_20
                inc_error_cnt
dec_20:         jp      po,dec_21
                inc_error_cnt
dec_21:         ld      a,(hl)
                cp      a,data_ff
                jr      z,dec_22
                inc_error_cnt
dec_22:         ld      a,1
                ld      (hl),a
                dec     (hl)
                jr      z,dec_23
                inc_error_cnt
dec_23:         dec     (hl)
                jr      nz,dec_24
                inc_error_cnt
dec_24:         ld      a,(hl)
                cp      a,data_ff
                jr      z,dec_25
                inc_error_cnt
dec_25:         ld      a,data_aa
                ld      (hl),a
                dec     (hl)
                ld      a,(hl)
                cp      a,data_aa-1
                jr      z,dec_26
                inc_error_cnt
dec_26:         ld      ix,t_var3
                ld      a,data_80
                ld      (ix-2),a
                cp      a,(ix-2)
                jr      z,dec_27
                inc_error_cnt
dec_27:         dec     (ix-2)
                jp      p,dec_28
                inc_error_cnt
dec_28:         jp      pe,dec_29
                inc_error_cnt
dec_29:         ld      a,0
                ld      (ix+2),a
                dec     (ix+2)
                jp      m,dec_30
                inc_error_cnt
dec_30:         jp      po,dec_31
                inc_error_cnt
dec_31:         ld      a,(ix+2)
                cp      a,data_ff
                jr      z,dec_32
                inc_error_cnt
dec_32:         ld      a,1
                ld      (ix-1),a
                dec     (ix-1)
                jr      z,dec_33
                inc_error_cnt
dec_33:         dec     (ix-1)
                jr      nz,dec_34
                inc_error_cnt
dec_34:         ld      a,(ix-1)
                cp      a,data_ff
                jr      z,dec_35
                inc_error_cnt
dec_35:         ld      a,data_7f
                ld      (ix+1),a
                dec     (ix+1)
                ld      a,(ix+1)
                cp      a,data_7f-1
                jr      z,dec_36
                inc_error_cnt
dec_36:         ld      iy,t_var3
                ld      a,data_80
                ld      (iy-2),a
                cp      a,(iy-2)
                jr      z,dec_37
                inc_error_cnt
dec_37:         dec     (iy-2)
                jp      p,dec_38
                inc_error_cnt
dec_38:         jp      pe,dec_39
                inc_error_cnt
dec_39:         ld      a,0
                ld      (iy+2),a
                dec     (iy+2)
                jp      m,dec_40
                inc_error_cnt
dec_40:         jp      po,dec_41
                inc_error_cnt
dec_41:         ld      a,(iy+2)
                cp      a,data_ff
                jr      z,dec_42
                inc_error_cnt
dec_42:         ld      a,1
                ld      (iy+1),a
                dec     (iy+1)
                jr      z,dec_43
                inc_error_cnt
dec_43:         dec     (iy+1)
                jr      nz,dec_44
                inc_error_cnt
dec_44:         ld      a,(iy+1)
                cp      a,data_ff
                jr      z,dec_45
                inc_error_cnt
dec_45:         ld      a,data_aa
                ld      (iy-1),a
                dec     (iy-1)
                ld      a,(iy-1)
                cp      a,data_aa-1
                jr      z,cpl_0
                inc_error_cnt
cpl_0:          ld      a,data_ff
                cpl
                cp      a,0
                jr      z,cpl_1
                inc_error_cnt
cpl_1:          ld      a,data_aa
                cpl
                cp      a,data_55
                jr      z,cpl_2
                inc_error_cnt
cpl_2:          cpl
                cp      a,data_aa
                jr      z,neg_0
                inc_error_cnt
neg_0:          ld      a,data_80
                cp      a,data_80
                jp      po,neg_1
                inc_error_cnt
neg_1:          neg
                jp      pe,neg_2
                inc_error_cnt
neg_2:          jr      nz,neg_3
                inc_error_cnt
neg_3:          jr      c,neg_4
                inc_error_cnt
neg_4:          ld      a,0
                neg
                jp      po,neg_5
                inc_error_cnt
neg_5:          jr      z,neg_6
                inc_error_cnt
neg_6:          jr      nc,neg_7
                inc_error_cnt
neg_7:          ld      a,data_55
                cp      a,data_55
                jp      p,neg_8
                inc_error_cnt
neg_8:          neg
                jp      m,neg_9
                inc_error_cnt
neg_9:          neg
                jp      p,neg_10
                inc_error_cnt
neg_10:         cp      a,data_55
                jr      z,ccf_0
                inc_error_cnt
ccf_0:          scf
                jr      c,ccf_1
                inc_error_cnt
ccf_1:          ccf
                jr      nc,ccf_2
                inc_error_cnt
ccf_2:          ccf
                jr      c,im_0
                inc_error_cnt
im_0:           im      0
                im      1
                im      2
daa_0:          ld      a,#99
                ld      b,#1
                add     a,b
                daa
                jr      c,daa_1
                inc_error_cnt
daa_1:          jr      z,daa_2
                inc_error_cnt
daa_2:          add     a,b
                jr      nc,daa_3
                inc_error_cnt
daa_3:          jr      nz,daa_4
                inc_error_cnt
daa_4:          cp      a,1
                jr      z,daa_5
                inc_error_cnt
daa_5:          ld      a,#98
                ld      b,1
                add     a,b
                daa
                jp      m,daa_6
                inc_error_cnt
daa_6:          add     a,b
                daa
                jp      p,daa_7
                inc_error_cnt
daa_7:          ld      a,1
                ld      b,1
                add     a,b
                daa
                jp      po,daa_8
                inc_error_cnt
daa_8:          add     a,b
                daa
                jp      pe,daa_9
                inc_error_cnt
daa_9:          cp      a,3
                jr      z,add_74
                inc_error_cnt
add_74:         ld      hl,data_1234
                add     hl,hl
                jr      nc,add_75
                inc_error_cnt
add_75:         ld      a,h
                cp      a,#24
                jr      z,add_76
                inc_error_cnt
add_76:         ld      a,l
                cp      a,#68
                jr      z,add_77
                inc_error_cnt
add_77:         ld      hl,data_7fff
                ld      bc,data_8000
                add     hl,bc
                jr      nc,add_78
                inc_error_cnt
add_78:         ld      bc,1
                add     hl,bc
                jr      c,add_79
                inc_error_cnt
add_79:         ld      a,h
                cp      a,0
                jr      z,add_80
                inc_error_cnt
add_80:         ld      a,l
                cp      a,0
                jr      z,add_81
                inc_error_cnt
add_81:         ld      hl,data_aa55
                ld      de,data_ffff
                add     hl,de
                jr      c,add_82
                inc_error_cnt
add_82:         ld      a,h
                cp      a,data_aa
                jr      z,add_83
                inc_error_cnt
add_83:         ld      a,l
                cp      a,data_55-1
                jr      z,add_84
                inc_error_cnt
add_84:         ld      hl,data_aa55
                ld      sp,data_8000
                add     hl,sp
                jr      c,add_85
                inc_error_cnt
add_85:         ld      a,h
                cp      a,#2a
                jr      z,add_86
                inc_error_cnt
add_86:         ld      a,l
                cp      a,data_55
                jr      z,add_87
                inc_error_cnt
add_87:         ld      sp,stack_end
                ld      hl,data_1234
                scf
                ccf
                adc     hl,hl
                jr      nz,add_88
                inc_error_cnt
add_88:         jr      nc,add_89
                inc_error_cnt
add_89:         jp      p,add_90
                inc_error_cnt
add_90:         jp      po,add_91
                inc_error_cnt
add_91:         ld      bc,data_8000
                adc     hl,bc
                jp      m,add_92
                inc_error_cnt
add_92:         jr      nc,add_93
                inc_error_cnt
add_93:         jp      po,add_94
                inc_error_cnt
add_94:         jp      nz,add_95
                inc_error_cnt
add_95:         adc     hl,bc
                jp      p,add_96
                inc_error_cnt
add_96:         jp      pe,add_97
                inc_error_cnt
add_97:         jr      c,add_98
                inc_error_cnt
add_98:         jr      nz,add_99
                inc_error_cnt
add_99:         ld      de,#db97
                adc     hl,de
                jr      z,add_100
                inc_error_cnt
add_100:        jr      c,add_101
                inc_error_cnt
add_101:        jp      po,add_102
                inc_error_cnt
add_102:        ld      de,0
                adc     hl,de
                jr      nc,add_103
                inc_error_cnt
add_103:        jr      nz,add_104
                inc_error_cnt
add_104:        ld      a,h
                cp      a,0
                jr      z,add_105
                inc_error_cnt
add_105:        ld      a,l
                cp      a,1
                jr      z,add_106
                inc_error_cnt
add_106:        ld      hl,data_1234
                ld      sp,data_ffff
                adc     hl,sp
                jr      c,add_107
                inc_error_cnt
add_107:        ld      a,h
                cp      a,#12
                jr      z,add_108
                inc_error_cnt
add_108:        ld      a,l
                cp      a,#33
                jr      z,sbc_66
                inc_error_cnt
sbc_66:         ld      sp,stack_end
                scf
                ccf
                ld      hl,data_1234
                sbc     hl,hl
                jr      z,sbc_67
                inc_error_cnt
sbc_67:         jp      p,sbc_68
                inc_error_cnt
sbc_68:         jp      po,sbc_69
                inc_error_cnt
sbc_69:         jr      nc,sbc_70
                inc_error_cnt
sbc_70:         ld      bc,data_1234
                sbc     hl,bc
                jr      nz,sbc_71
                inc_error_cnt
sbc_71:         jr      c,sbc_72
                inc_error_cnt
sbc_72:         jp      m,sbc_73
                inc_error_cnt
sbc_73:         jp      po,sbc_74
                inc_error_cnt
sbc_74:         ld      de,data_7fff
                sbc     hl,de
                jr      nz,sbc_75
                inc_error_cnt
sbc_75:         jr      nc,sbc_76
                inc_error_cnt
sbc_76:         jp      p,sbc_77
                inc_error_cnt
sbc_77:         jp      pe,sbc_78
                inc_error_cnt
sbc_78:         ld      sp,data_1234
                sbc     hl,sp
                jr      nz,sbc_79
                inc_error_cnt
sbc_79:         ld      a,h
                cp      a,#5b
                jr      z,sbc_80
                inc_error_cnt
sbc_80:         ld      a,l
                cp      a,#98
                jr      z,add_109
                inc_error_cnt
add_109:        ld      sp,stack_end
                ld      ix,0
                add     ix,sp
                jr      nc,add_110
                inc_error_cnt
add_110:        push    ix
                pop     hl
                ld      a,h
                cp      a,#71           ; >stack_end
                jr      z,add_111
                inc_error_cnt
add_111:        ld      a,l
                cp      a,#80           ; <stack_end
                jr      z,add_112
                inc_error_cnt
add_112:        ld      ix,data_7fff
                ld      bc,data_aa55
                add     ix,bc
                jr      c,add_113
                inc_error_cnt
add_113:        add     ix,bc
                jr      nc,add_114
                inc_error_cnt
add_114:        push    ix
                pop     hl
                ld      a,h
                cp      a,#d4
                jr      z,add_115
                inc_error_cnt
add_115:        ld      a,l
                cp      a,#a9
                jr      z,add_116
                inc_error_cnt
add_116:        ld      ix,data_1234
                ld      de,data_1234
                add     ix,de
                push    ix
                pop     hl
                ld      a,h
                cp      a,#24           ;>(data_1234+data_1234)
                jr      z,add_117
                inc_error_cnt
add_117:        ld      a,l
                cp      a,#68           ;<(data_1234+data_1234)
                jr      z,add_118
                inc_error_cnt
add_118:        ld      ix,data_1234
                add     ix,ix
                push    ix
                pop     bc
                ld      a,b
                cp      a,#24           ;>(data_1234+data_1234)
                jr      z,add_119
                inc_error_cnt
add_119:        ld      a,c
                cp      a,#68           ;<(data_1234+data_1234)
                jr      z,add_120
                inc_error_cnt
add_120:        ld      sp,stack_end
                ld      iy,0
                add     iy,sp
                jr      nc,add_121
                inc_error_cnt
add_121:        push    iy
                pop     hl
                ld      a,h
                cp      a,#71           ;>stack_end
                jr      z,add_122
                inc_error_cnt
add_122:        ld      a,l
                cp      a,#80           ;<stack_end
                jr      z,add_123
                inc_error_cnt
add_123:        ld      iy,data_7fff
                ld      bc,data_aa55
                add     iy,bc
                jr      c,add_124
                inc_error_cnt
add_124:        add     iy,bc
                jr      nc,add_125
                inc_error_cnt
add_125:        push    iy
                pop     hl
                ld      a,h
                cp      a,#d4
                jr      z,add_126
                inc_error_cnt
add_126:        ld      a,l
                cp      a,#a9
                jr      z,add_127
                inc_error_cnt
add_127:        ld      iy,data_1234
                ld      de,data_1234
                add     iy,de
                push    iy
                pop     hl
                ld      a,h
                cp      a,#24           ;>(data_1234+data_1234)
                jr      z,add_128
                inc_error_cnt
add_128:        ld      a,l
                cp      a,#68           ;<(data_1234+data_1234)
                jr      z,add_129
                inc_error_cnt
add_129:        ld      iy,data_1234
                add     iy,iy
                push    iy
                pop     bc
                ld      a,b
                cp      a,#24           ;>(data_1234+data_1234)
                jr      z,add_130
                inc_error_cnt
add_130:        ld      a,c
                cp      a,#68           ;<(data_1234+data_1234)
                jr      z,inc_54
                inc_error_cnt
inc_54:         ld      bc,data_1234
                inc     bc
                ld      a,b
                cp      a,#12      ;bjp was >data_1234
                jr      z,inc_55
                inc_error_cnt
inc_55:         ld      a,c
                cp      a,#34+1      ;bjp was >data_1234+1
                jr      z,inc_56
                inc_error_cnt
inc_56:         ld      de,data_55aa
                inc     de
                ld      a,d
                cp      a,#55           ;>data_55aa
                jr      z,inc_57
                inc_error_cnt
inc_57:         ld      a,e
                cp      a,#ab           ;<data_55aa+1
                jr      z,inc_58
                inc_error_cnt
inc_58:         ld      hl,data_7fff
                inc     hl
                ld      a,h
                cp      a,#80           ;>data_7fff+1
                jr      z,inc_59
                inc_error_cnt
inc_59:         ld      a,l
                cp      a,#00           ;<data_7fff+1
                jr      z,inc_60
                inc_error_cnt
inc_60:         ld      hl,0
                inc     sp
                add     hl,sp
                ld      sp,stack_end
                ld      a,h
                cp      a,#71           ;>stack_end+1
                jr      z,inc_61
                inc_error_cnt
inc_61:         ld      a,l
                cp      a,#81           ;<stack_end+1
                jr      z,inc_62
                inc_error_cnt
inc_62:         ld      ix,data_8000
                inc     ix
                push    ix
                pop     de
                ld      a,d
                cp      a,#80           ;>data_8000
                jr      z,inc_63
                inc_error_cnt
inc_63:         ld      a,e
                cp      a,#01           ;<data_8000+1
                jr      z,inc_64
                inc_error_cnt
inc_64:         ld      iy,data_7fff
                inc     iy
                push    iy
                pop     bc
                ld      a,b
                cp      a,#80           ;>data_7fff+1
                jr      z,inc_65
                inc_error_cnt
inc_65:         ld      a,c
                cp      a,#00           ;<data_7fff+1
                jr      z,dec_46
                inc_error_cnt
dec_46:         ld      bc,data_1234
                dec     bc
                ld      a,b
                cp      a,#12      ;bjp was >data_1234
                jr      z,dec_47
                inc_error_cnt
dec_47:         ld      a,c
                cp      a,#34-1      ;bjp was >data_1234-1
                jr      z,dec_48
                inc_error_cnt
dec_48:         ld      de,data_8000
                dec     de
                ld      a,d
                cp      a,#7f           ;>data_7fff
                jr      z,dec_49
                inc_error_cnt
dec_49:         ld      a,e
                cp      a,#ff           ;<data_7fff
                jr      z,dec_50
                inc_error_cnt
dec_50:         ld      hl,data_aa55
                dec     hl
                ld      a,h
                cp      a,#aa           ;>data_aa55
                jr      z,dec_51
                inc_error_cnt
dec_51:         ld      a,l
                cp      a,#54           ;<data_aa55-1
                jr      z,dec_52
                inc_error_cnt
dec_52:         ld      hl,0
                dec     sp
                add     hl,sp
                ld      a,h
                cp      a,#71           ;>stack_end-1
                jr      z,dec_53
                inc_error_cnt
dec_53:         ld      a,l
                cp      a,#7f           ;<stack_end-1
                jr      z,dec_54
                inc_error_cnt
dec_54:         ld      sp,stack_end
                ld      ix,data_ffff
                dec     ix
                push    ix
                pop     bc
                ld      a,b
                cp      a,#ff           ;>data_ffff
                jr      z,dec_55
                inc_error_cnt
dec_55:         ld      a,c
                cp      a,#fe           ;<data_ffff-1
                jr      z,dec_56
                inc_error_cnt
dec_56:         ld      iy,data_aa55
                dec     iy
                push    iy
                pop     de
                ld      a,d
                cp      a,#aa           ;>data_aa55
                jr      z,dec_57
                inc_error_cnt
dec_57:         ld      a,e
                cp      a,#54           ;<data_aa55-1
                jr      z,rlca_0
                inc_error_cnt
                ; bjp  don't see any further mucking with sp after the load above.
                ; perhaps it is now safe to enable interrupts. and test them a little
rlca_0:         ld      hl, bist_adr      ; enable interrupts
                ld      (hl), bist_ei
                ld      a, #72         ;bjp  this is >int_tbl  - if you move int_tbl change
                ld      i, a
                ei
                
                ld      a,data_80
                rlca
                jr      c,rlca_1
                inc_error_cnt
rlca_1:         rlca
                jr      nc,rlca_2
                inc_error_cnt
rlca_2:         cp      a,2
                jr      z,rlca_3
                inc_error_cnt
rlca_3:         ld      a,data_55
                rlca
                cp      a,data_aa
                jr      z,rla_0
                inc_error_cnt
rla_0:          scf
                ccf
                ld      a,data_80
                rla
                jr      c,rla_1
                inc_error_cnt
rla_1:          rla
                jr      nc,rla_2
                inc_error_cnt
rla_2:          cp      a,1
                jr      z,rla_3
                inc_error_cnt
rla_3:          ld      a,data_7f
                rla
                cp      a,data_ff-1
                jr      z,rrca_0
                inc_error_cnt
rrca_0:         di                 ; disable interrupts  we want to enable at specific pts
                scf
                ccf
                ld      a,1
                rrca
                jr      c,rrca_1
                inc_error_cnt
rrca_1:         rrca
                jr      nc,rrca_2
                inc_error_cnt
rrca_2:         cp      a,data_7f-#3f
                jr      z,rrca_3
                inc_error_cnt
rrca_3:         ld      a,data_aa
                rrca
                cp      a,data_55
                jr      z,rra_0
                inc_error_cnt
rra_0:          scf
                ccf
                ld      a,1
                rra
                jr      c,rra_1
                inc_error_cnt
rra_1:          rra
                jr      nc,rra_2
                inc_error_cnt
rra_2:          cp      a,data_80
                jr      z,rra_3
                inc_error_cnt
rra_3:          ld      a,data_aa
                rra
                cp      a,data_55
                jr      z,rlc_0
                inc_error_cnt
rlc_0:          ld      a,data_80
                rlc     a
                jr      c,rlc_1
                inc_error_cnt
rlc_1:          jp      p,rlc_2
                inc_error_cnt
rlc_2:          jr      nz,rlc_3
                inc_error_cnt
rlc_3:          jp      po,rlc_4
                inc_error_cnt
rlc_4:          rlc     a
                jr      nc,rlc_5
                inc_error_cnt
rlc_5:          rlc     a
                rlc     a
                rlc     a
                rlc     a
                rlc     a
                rlc     a
                jp      m,rlc_6
                inc_error_cnt
rlc_6:          ld      a,data_55
                rlc     a
                jp      m,rlc_7
                inc_error_cnt
rlc_7:          jp      pe,rlc_8
                inc_error_cnt
rlc_8:          cp      a,data_aa
                jr      z,rlc_9
                inc_error_cnt
rlc_9:          ld      a,0
                rlc     a
                jr      z,rlc_10
                inc_error_cnt
rlc_10:         ld      b,data_7f
                rlc     b
                ld      a,b
                cp      a,data_ff-1
                jr      z,rlc_11
                inc_error_cnt
rlc_11:         ld      c,data_aa
                rlc     c
                jr      c,rlc_12
                inc_error_cnt
rlc_12:         ld      a,c
                cp      a,data_55
                jr      z,rlc_13
                inc_error_cnt
rlc_13:         ld      d,data_80
                rlc     d
                jr      c,rlc_14
                inc_error_cnt
rlc_14:         ld      a,d
                cp      a,1
                jr      z,rlc_15
                inc_error_cnt
rlc_15:         ld      e,data_ff
                rlc     e
                jr      c,rlc_16
                inc_error_cnt
rlc_16:         ld      a,e
                cp      a,data_ff
                jr      z,rlc_17
                inc_error_cnt
rlc_17:         ld      h,data_55
                rlc     h
                jp      m,rlc_18
                inc_error_cnt
rlc_18:         ld      a,h
                cp      a,data_aa
                jr      z,rlc_19
                inc_error_cnt
rlc_19:         ld      l,data_80
                rlc     l
                jp      p,rlc_20
                inc_error_cnt
rlc_20:         ld      a,l
                cp      a,1
                jr      z,rlc_21
                inc_error_cnt
rlc_21:         ld      hl,t_var1
                ld      a,data_55
                ld      (hl),a
                rlc     (hl)
                jp      m,rlc_22
                inc_error_cnt
rlc_22:         jp      pe,rlc_23
                inc_error_cnt
rlc_23:         jr      nc,rlc_24
                inc_error_cnt
rlc_24:         jr      nz,rlc_25
                inc_error_cnt
rlc_25:         rlc     (hl)
                jp      p,rlc_26
                inc_error_cnt
rlc_26:         jr      c,rlc_27
                inc_error_cnt
rlc_27:         ld      a,(hl)
                cp      a,data_55
                jr      z,rlc_28
                inc_error_cnt
rlc_28:         ld      a,data_7f
                ld      (hl),a
                rlc     (hl)
                jp      po,rlc_29
                inc_error_cnt
rlc_29:         ld      a,(hl)
                cp      a,data_ff-1
                jr      z,rlc_30
                inc_error_cnt
rlc_30:         ld      a,0
                ld      (hl),a
                rlc     (hl)
                jr      z,rlc_31
                inc_error_cnt
rlc_31:         ld      ix,t_var3
                ld      a,data_55
                ld      (ix-2),a
                rlc     (ix-2)
                jp      m,rlc_32
                inc_error_cnt
rlc_32:         jp      pe,rlc_33
                inc_error_cnt
rlc_33:         jr      nz,rlc_34
                inc_error_cnt
rlc_34:         jr      nc,rlc_35
                inc_error_cnt
rlc_35:         rlc     (ix-2)
                jp      p,rlc_36
                inc_error_cnt
rlc_36:         jr      c,rlc_37
                inc_error_cnt
rlc_37:         ld      a,(ix-2)
                cp      a,data_55
                jr      z,rlc_38
                inc_error_cnt
rlc_38:         ld      a,data_7f
                ld      (ix+2),a
                rlc     (ix+2)
                jp      po,rlc_39
                inc_error_cnt
rlc_39:         ld      a,(ix+2)
                cp      a,data_ff-1
                jr      z,rlc_40
                inc_error_cnt
rlc_40:         ld      a,0
                ld      (ix-1),a
                rlc     (ix-1)
                jr      z,rlc_41
                inc_error_cnt
rlc_41:         ld      iy,t_var3
                ld      a,data_55
                ld      (iy+2),a
                rlc     (iy+2)
                jp      m,rlc_42
                inc_error_cnt
rlc_42:         jp      pe,rlc_43
                inc_error_cnt
rlc_43:         jr      nc,rlc_44
                inc_error_cnt
rlc_44:         jr      nz,rlc_45
                inc_error_cnt
rlc_45:         rlc     (iy+2)
                jp      p,rlc_46
                inc_error_cnt
rlc_46:         jr      c,rlc_47
                inc_error_cnt
rlc_47:         ld      a,(iy+2)
                cp      a,data_55
                jr      z,rlc_48
                inc_error_cnt
rlc_48:         ld      a,data_7f
                ld      (iy-2),a
                rlc     (iy-2)
                jp      po,rlc_49
                inc_error_cnt
rlc_49:         ld      a,(iy-2)
                cp      a,data_ff-1
                jr      z,rlc_50
                inc_error_cnt
rlc_50:         ld      a,0
                ld      (iy+1),a
                rlc     (iy+1)
                jr      z,rl_0
                inc_error_cnt
rl_0:           scf
                ccf
                ld      a,data_55
                rl      a
                jp      m,rl_1
                inc_error_cnt
rl_1:           jp      pe,rl_2
                inc_error_cnt
rl_2:           jr      nc,rl_3
                inc_error_cnt
rl_3:           jr      nz,rl_4
                inc_error_cnt
rl_4:           rl      a
                jp      p,rl_5
                inc_error_cnt
rl_5:           jp      po,rl_6
                inc_error_cnt
rl_6:           jr      c,rl_7
                inc_error_cnt
rl_7:           rl      a
                cp      a,data_aa-1
                jr      z,rl_8
                inc_error_cnt
rl_8:           ld      a,0
                rl      a
                jr      z,rl_9
                inc_error_cnt
rl_9:           ld      b,data_aa
                ld      c,data_7f
                rl      b
                jr      c,rl_10
                inc_error_cnt
rl_10:          rl      c
                jr      nc,rl_11
                inc_error_cnt
rl_11:          ld      a,b
                cp      a,data_55-1
                jr      z,rl_12
                inc_error_cnt
rl_12:          ld      a,c
                cp      a,data_ff
                jr      z,rl_13
                inc_error_cnt
rl_13:          ld      d,data_ff
                ld      e,data_80
                rl      e
                jr      c,rl_14
                inc_error_cnt
rl_14:          rl      d
                jr      c,rl_15
                inc_error_cnt
rl_15:          ld      a,d
                cp      a,data_ff
                jr      z,rl_16
                inc_error_cnt
rl_16:          ld      a,e
                cp      a,0
                jr      z,rl_17
                inc_error_cnt
rl_17:          ld      h,data_7f
                ld      l,data_55
                rl      h
                jp      m,rl_18
                inc_error_cnt
rl_18:          rl      l
                jp      m,rl_19
                inc_error_cnt
rl_19:          ld      a,h
                cp      a,data_ff-1
                jr      z,rl_20
                inc_error_cnt
rl_20:          ld      a,l
                cp      a,data_aa
                jr      z,rl_21
                inc_error_cnt
rl_21:          ld      hl,t_var5
                ld      a,data_55
                ld      (hl),a
                rl      (hl)
                jp      m,rl_22
                inc_error_cnt
rl_22:          jp      pe,rl_23
                inc_error_cnt
rl_23:          jr      nc,rl_24
                inc_error_cnt
rl_24:          jr      nz,rl_25
                inc_error_cnt
rl_25:          rl      (hl)
                jp      p,rl_26
                inc_error_cnt
rl_26:          jp      po,rl_27
                inc_error_cnt
rl_27:          jr      c,rl_28
                inc_error_cnt
rl_28:          ld      a,(hl)
                cp      a,data_55-1
                jr      z,rl_29
                inc_error_cnt
rl_29:          ld      a,0
                ld      (hl),a
                rl      (hl)
                jr      z,rl_30
                inc_error_cnt
rl_30:          ld      ix,t_var3
                ld      a,data_55
                ld      (ix-2),a
                rl      (ix-2)
                jp      m,rl_31
                inc_error_cnt
rl_31:          jp      pe,rl_32
                inc_error_cnt
rl_32:          jr      nc,rl_33
                inc_error_cnt
rl_33:          jr      nz,rl_34
                inc_error_cnt
rl_34:          rl      (ix-2)
                jp      p,rl_35
                inc_error_cnt
rl_35:          jp      po,rl_36
                inc_error_cnt
rl_36:          jr      c,rl_37
                inc_error_cnt
rl_37:          ld      a,(ix-2)
                cp      a,data_55-1
                jr      z,rl_38
                inc_error_cnt
rl_38:          ld      a,0
                ld      (ix+2),a
                rl      (ix+2)
                jr      z,rl_39
rl_39:          ld      iy,t_var3
                ld      a,data_55
                ld      (iy-1),a
                rl      (iy-1)
                jp      m,rl_40
                inc_error_cnt
rl_40:          jp      pe,rl_41
                inc_error_cnt
rl_41:          jr      nc,rl_42
                inc_error_cnt
rl_42:          jr      nz,rl_43
                inc_error_cnt
rl_43:          rl      (iy-1)
                jp      p,rl_44
                inc_error_cnt
rl_44:          jp      po,rl_45
                inc_error_cnt
rl_45:          jr      c,rl_46
                inc_error_cnt
rl_46:          ld      a,(iy-1)
                cp      a,data_55-1
                jr      z,rl_47
                inc_error_cnt
rl_47:          ld      a,0
                ld      (iy+1),a
                rl      (iy+1)
                jr      z,rrc_0
                inc_error_cnt
rrc_0:          ld      a,data_aa
                rrc     a
                jp      p,rrc_1
                inc_error_cnt
rrc_1:          jp      pe,rrc_2
                inc_error_cnt
rrc_2:          jr      nz,rrc_3
                inc_error_cnt
rrc_3:          jr      nc,rrc_4
                inc_error_cnt
rrc_4:          rrc     a
                jp      m,rrc_5
                inc_error_cnt
rrc_5:          jr      c,rrc_6
                inc_error_cnt
rrc_6:          cp      a,data_aa
                jr      z,rrc_7
                inc_error_cnt
rrc_7:          ld      a,1
                rrc     a
                jr      c,rrc_8
                inc_error_cnt
rrc_8:          cp      a,data_80
                jr      z,rrc_9
                inc_error_cnt
rrc_9:          ld      a,data_7f
                rrc     a
                jp      po,rrc_10
                inc_error_cnt
rrc_10:         cp      a,#bf
                jr      z,rrc_11
                inc_error_cnt
rrc_11:         ld      b,data_80
                ld      c,data_55
                rrc     b
                jr      nc,rrc_12
                inc_error_cnt
rrc_12:         rrc     c
                jr      c,rrc_13
                inc_error_cnt
rrc_13:         ld      a,b
                cp      a,#40
                jr      z,rrc_14
                inc_error_cnt
rrc_14:         ld      a,c
                cp      a,data_aa
                jr      z,rrc_15
                inc_error_cnt
rrc_15:         ld      d,data_aa
                ld      e,1
                rrc     d
                jp      p,rrc_16
                inc_error_cnt
rrc_16:         rrc     e
                jp      m,rrc_17
                inc_error_cnt
rrc_17:         ld      a,d
                cp      a,data_55
                jr      z,rrc_18
                inc_error_cnt
rrc_18:         ld      a,e
                cp      a,data_80
                jr      z,rrc_19
                inc_error_cnt
rrc_19:         ld      h,data_55
                ld      l,data_ff
                rrc     h
                jr      c,rrc_20
                inc_error_cnt
rrc_20:         rrc     l
                jr      c,rrc_21
                inc_error_cnt
rrc_21:         ld      a,h
                cp      a,data_aa
                jr      z,rrc_22
                inc_error_cnt
rrc_22:         ld      a,l
                cp      a,data_ff
                jr      z,rrc_23
                inc_error_cnt
rrc_23:         ld      hl,t_var4
                ld      (hl),data_aa
                rrc      (hl)
                jp      p,rrc_24
                inc_error_cnt
rrc_24:         jp      pe,rrc_25
                inc_error_cnt
rrc_25:         jr      nz,rrc_26
                inc_error_cnt
rrc_26:         jr      nc,rrc_27
                inc_error_cnt
rrc_27:         rrc     (hl)
                jp      m,rrc_28
                inc_error_cnt
rrc_28:         jr      c,rrc_29
                inc_error_cnt
rrc_29:         ld      a,(hl)
                cp      a,data_aa
                jr      z,rrc_30
                inc_error_cnt
rrc_30:         ld      (hl),data_7f
                rrc     (hl)
                jp      po,rrc_31
                inc_error_cnt
rrc_31:         ld      a,(hl)
                cp      a,#bf
                jr      z,rrc_32
                inc_error_cnt
rrc_32:         ld      (hl),0
                rrc     (hl)
                jr      z,rrc_33
                inc_error_cnt
rrc_33:         ld      ix,t_var3
                ld      a,data_aa
                ld      (ix+2),a
                rrc     (ix+2)
                jp      p,rrc_34
                inc_error_cnt
rrc_34:         jp      pe,rrc_35
                inc_error_cnt
rrc_35:         jr      nc,rrc_36
                inc_error_cnt
rrc_36:         jr      nz,rrc_37
                inc_error_cnt
rrc_37:         rrc     (ix+2)
                jp      m,rrc_38
                inc_error_cnt
rrc_38:         jr      c,rrc_39
                inc_error_cnt
rrc_39:         ld      a,(ix+2)
                cp      a,data_aa
                jr      z,rrc_40
                inc_error_cnt
rrc_40:         ld      a,1
                ld      (ix-2),a
                rrc     (ix-2)
                jp      po,rrc_41
                inc_error_cnt
rrc_41:         ld      a,(ix-2)
                cp      a,data_80
                jr      z,rrc_42
                inc_error_cnt
rrc_42:         ld      a,0
                ld      (ix+1),a
                rrc     (ix+1)
                jr      z,rrc_43
                inc_error_cnt
rrc_43:         ld      iy,t_var3
                ld      a,data_aa
                ld      (iy+2),a
                rrc     (iy+2)
                jp      p,rrc_44
                inc_error_cnt
rrc_44:         jp      pe,rrc_45
                inc_error_cnt
rrc_45:         jr      nc,rrc_46
                inc_error_cnt
rrc_46:         jr      nz,rrc_47
                inc_error_cnt
rrc_47:         rrc     (iy+2)
                jp      m,rrc_48
                inc_error_cnt
rrc_48:         jr      c,rrc_49
                inc_error_cnt
rrc_49:         ld      a,(iy+2)
                cp      a,data_aa
                jr      z,rrc_50
                inc_error_cnt
rrc_50:         ld      a,1
                ld      (iy-2),a
                rrc     (iy-2)
                jp      po,rrc_51
                inc_error_cnt
rrc_51:         ld      a,(iy-2)
                cp      a,data_80
                jr      z,rrc_52
                inc_error_cnt
rrc_52:         ld      a,0
                ld      (iy+1),a
                rrc     (iy+1)
                jr      z,rr_0
                inc_error_cnt
rr_0:           scf
                ccf
                ld      a,data_aa
                rr      a
                jp      p,rr_1
                inc_error_cnt
rr_1:           jp      pe,rr_2
                inc_error_cnt
rr_2:           jr      nc,rr_3
                inc_error_cnt
rr_3:           jr      nz,rr_4
                inc_error_cnt
rr_4:           rr      a
                jr      c,rr_5
                inc_error_cnt
rr_5:           jp      po,rr_6
                inc_error_cnt
rr_6:           cp      a,#2a
                jr      z,rr_7
                inc_error_cnt
rr_7:           scf
                ld      a,0
                rr      a
                jp      m,rr_8
                inc_error_cnt
rr_8:           cp      a,data_80
                jr      z,rr_9
                inc_error_cnt
rr_9:           ld      a,0
                rr      a
                jr      z,rr_10
                inc_error_cnt
rr_10:          ld      b,data_55
                ld      c,data_aa
                rr      b
                jr      c,rr_11
                inc_error_cnt
rr_11:          rr      c
                jr      nc,rr_12
                inc_error_cnt
rr_12:          ld      a,b
                cp      a,#2a
                jr      z,rr_13
                inc_error_cnt
rr_13:          ld      a,c
                cp      a,#d5
                jr      z,rr_14
                inc_error_cnt
rr_14:          ld      d,data_7f
                ld      e,data_80
                rr      d
                jr      c,rr_15
                inc_error_cnt
rr_15:          rr      e
                jr      nc,rr_16
                inc_error_cnt
rr_16:          ld      a,d
                cp      a,#3f
                jr      z,rr_17
                inc_error_cnt
rr_17:          ld      a,e
                cp      a,#c0
                jr      z,rr_18
                inc_error_cnt
rr_18:          ld      hl,t_var2
                ld      (hl),data_55
                rr      (hl)
                jp      p,rr_19
                inc_error_cnt
rr_19:          jp      po,rr_20
                inc_error_cnt
rr_20:          jr      c,rr_21
                inc_error_cnt
rr_21:          jr      nz,rr_22
                inc_error_cnt
rr_22:          rr      (hl)
                jp      m,rr_23
                inc_error_cnt
rr_23:          jp      pe,rr_24
                inc_error_cnt
rr_24:          jr      nc,rr_25
                inc_error_cnt
rr_25:          ld      a,(hl)
                cp      a,#95
                jr      z,rr_26
                inc_error_cnt
rr_26:          ld      (hl),0
                rr      (hl)
                jr      z,rr_27
                inc_error_cnt
rr_27:          ld      ix,t_var3
                ld      a,data_55
                ld      (ix-2),a
                rr      (ix-2)
                jp      p,rr_28
                inc_error_cnt
rr_28:          jp      po,rr_29
                inc_error_cnt
rr_29:          jr      c,rr_30
                inc_error_cnt
rr_30:          jr      nz,rr_31
                inc_error_cnt
rr_31:          rr      (ix-2)
                jp      m,rr_32
                inc_error_cnt
rr_32:          jp      pe,rr_33
                inc_error_cnt
rr_33:          jr      nc,rr_34
                inc_error_cnt
rr_34:          ld      a,(ix-2)
                cp      a,#95
                jr      z,rr_35
                inc_error_cnt
rr_35:          ld      a,0
                ld      (ix+2),a
                rr      (ix+2)
                jr      z,rr_36
                inc_error_cnt
rr_36:          ld      iy,t_var3
                ld      a,data_55
                ld      (iy+2),a
                rr      (iy+2)
                jp      p,rr_37
                inc_error_cnt
rr_37:          jp      po,rr_38
                inc_error_cnt
rr_38:          jr      c,rr_39
                inc_error_cnt
rr_39:          jr      nz,rr_40
                inc_error_cnt
rr_40:          rr      (iy+2)
                jp      m,rr_41
                inc_error_cnt
rr_41:          jp      pe,rr_42
                inc_error_cnt
rr_42:          jr      nc,rr_43
                inc_error_cnt
rr_43:          ld      a,(iy+2)
                cp      a,#95
                jr      z,rr_44
                inc_error_cnt
rr_44:          ld      a,0
                ld      (iy-1),a
                rr      (iy-1)
                jr      z,sla_0
                inc_error_cnt
sla_0:          ld      a,data_55
                sla     a
                jp      m,sla_1
                inc_error_cnt
sla_1:          jp      pe,sla_2
                inc_error_cnt
sla_2:          jr      nc,sla_3
                inc_error_cnt
sla_3:          jr      nz,sla_4
                inc_error_cnt
sla_4:          sla     a
                jp      p,sla_5
                inc_error_cnt
sla_5:          jp      po,sla_6
                inc_error_cnt
sla_6:          jr      c,sla_7
                inc_error_cnt
sla_7:          cp      a,data_55-1
                jr      z,sla_8
                inc_error_cnt
sla_8:          ld      a,0
                sla     a
                jr      z,sla_9
                inc_error_cnt
sla_9:          ld      b,data_80
                ld      c,data_7f
                sla     b
                jr      c,sla_10
                inc_error_cnt
sla_10:         ld      a,b
                cp      a,0
                jr      z,sla_11
                inc_error_cnt
sla_11:         sla     c
                jp      m,sla_12
                inc_error_cnt
sla_12:         ld      a,c
                cp      a,data_ff-1
                jr      z,sla_13
                inc_error_cnt
sla_13:         ld      d,data_aa
                ld      e,data_55
                sla     d
                jr      c,sla_14
                inc_error_cnt
sla_14:         ld      a,d
                cp      a,data_55-1
                jr      z,sla_15
                inc_error_cnt
sla_15:         sla     e
                jp      m,sla_16
                inc_error_cnt
sla_16:         ld      a,e
                cp      a,data_aa
                jr      z,sla_17
                inc_error_cnt
sla_17:         ld      h,#12      ;bjp was >data_1234
                ld      l,#34      ;bjp was >data_1234
                sla     h
                jp      p,sla_18
                inc_error_cnt
sla_18:         ld      a,h
                cp      a,#24
                jr      z,sla_19
                inc_error_cnt
sla_19:         sla     l
                jp      p,sla_20
                inc_error_cnt
sla_20:         ld      a,l
                cp      a,#68
                jr      z,sla_21
                inc_error_cnt
sla_21:         ld      hl,t_var3
                ld      (hl),data_55
                sla     (hl)
                jp      m,sla_22
                inc_error_cnt
sla_22:         jp      pe,sla_23
                inc_error_cnt
sla_23:         jr      nc,sla_24
                inc_error_cnt
sla_24:         jr      nz,sla_25
                inc_error_cnt
sla_25:         sla     (hl)
                jp      p,sla_26
                inc_error_cnt
sla_26:         jp      po,sla_27
                inc_error_cnt
sla_27:         jr      c,sla_28
                inc_error_cnt
sla_28:         ld      a,(hl)
                cp      a,data_55-1
                jr      z,sla_29
                inc_error_cnt
sla_29:         ld      (hl),0
                sla     (hl)
                jr      z,sla_30
                inc_error_cnt
sla_30:         ld      ix,t_var3
                ld      a,data_55
                ld      (ix-2),a
                sla     (ix-2)
                jp      m,sla_31
                inc_error_cnt
sla_31:         jp      pe,sla_32
                inc_error_cnt
sla_32:         jr      nc,sla_33
                inc_error_cnt
sla_33:         jr      nz,sla_34
                inc_error_cnt
sla_34:         sla     (ix-2)
                jp      p,sla_35
                inc_error_cnt
sla_35:         jp      po,sla_36
                inc_error_cnt
sla_36:         jr      c,sla_37
                inc_error_cnt
sla_37:         ld      a,(ix-2)
                cp      a,data_55-1
                jr      z,sla_38
                inc_error_cnt
sla_38:         ld      a,data_80
                ld      (ix+2),a
                sla     (ix+2)
                jr      z,sla_39
                inc_error_cnt
sla_39:         jr      c,sla_40
                inc_error_cnt
sla_40:         ld      iy,t_var3
                ld      a,data_55
                ld      (iy+2),a
                sla     (iy+2)
                jp      m,sla_41
                inc_error_cnt
sla_41:         jp      pe,sla_42
                inc_error_cnt
sla_42:         jr      nc,sla_43
                inc_error_cnt
sla_43:         jr      nz,sla_44
                inc_error_cnt
sla_44:         sla     (iy+2)
                jp      p,sla_45
                inc_error_cnt
sla_45:         jp      po,sla_46
                inc_error_cnt
sla_46:         jr      c,sla_47
                inc_error_cnt
sla_47:         ld      a,(iy+2)
                cp      a,data_55-1
                jr      z,sla_48
                inc_error_cnt
sla_48:         ld      a,data_80
                ld      (iy-2),a
                sla     (iy-2)
                jr      z,sla_49
                inc_error_cnt
sla_49:         jr      c,sra_0
                inc_error_cnt
sra_0:          ld      a,data_55
                sra     a
                jp      p,sra_1
                inc_error_cnt
sra_1:          jp      po,sra_2
                inc_error_cnt
sra_2:          jr      c,sra_3
                inc_error_cnt
sra_3:          jr      nz,sra_4
                inc_error_cnt
sra_4:          sra     a
                jp      po,sra_5
                inc_error_cnt
sra_5:          jr      nc,sra_6
                inc_error_cnt
sra_6:          sra     a
                jp      pe,sra_7
                inc_error_cnt
sra_7:          cp      a,#0a                   ;data_aa.and.#0f
                jr      z,sra_8
                inc_error_cnt
sra_8:          ld      a,1
                sra     a
                jr      c,sra_9
                inc_error_cnt
sra_9:          jr      z,sra_10
                inc_error_cnt
sra_10:         ld      a,data_80
                sra     a
                jp      m,sra_11
                inc_error_cnt
sra_11:         cp      a,#c0
                jr      z,sra_12
                inc_error_cnt
sra_12:         ld      b,data_7f
                ld      c,data_aa
                sra     b
                jr      c,sra_13
                inc_error_cnt
sra_13:         ld      a,b
                cp      a,#3f
                jr      z,sra_14
                inc_error_cnt
sra_14:         sra     c
                jr      nc,sra_15
                inc_error_cnt
sra_15:         ld      a,c
                cp      a,#d5
                jr      z,sra_16
                inc_error_cnt
sra_16:         ld      d,data_55
                ld      e,data_ff
                sra     d
                jr      c,sra_17
                inc_error_cnt
sra_17:         ld      a,d
                cp      a,#2a
                jr      z,sra_18
                inc_error_cnt
sra_18:         sra     e
                jp      m,sra_19
                inc_error_cnt
sra_19:         ld      a,e
                cp      a,data_ff
                jr      z,sra_20
                inc_error_cnt
sra_20:         ld      h,data_aa
                ld      l,data_7f
                sra     h
                jp      m,sra_21
                inc_error_cnt
sra_21:         ld      a,h
                cp      a,#d5
                jr      z,sra_22
                inc_error_cnt
sra_22:         sra     l
                jr      c,sra_23
                inc_error_cnt
sra_23:         ld      a,l
                cp      a,#3f
                jr      z,sra_24
                inc_error_cnt
sra_24:         ld      hl,t_var1
                ld      (hl),data_55
                sra     (hl)
                jp      p,sra_25
                inc_error_cnt
sra_25:         jp      po,sra_26
                inc_error_cnt
sra_26:         jr      c,sra_27
                inc_error_cnt
sra_27:         jr      nz,sra_28
                inc_error_cnt
sra_28:         sra     (hl)
                jr      nc,sra_29
                inc_error_cnt
sra_29:         sra     (hl)
                jp      pe,sra_30
                inc_error_cnt
sra_30:         ld      a,(hl)
                cp      a,#0a                   ;data_aa.and.#0f
                jr      z,sra_31
                inc_error_cnt
sra_31:         ld      (hl),data_80
                sra     (hl)
                jp      m,sra_32
                inc_error_cnt
sra_32:         ld      a,(hl)
                cp      a,#c0
                jr      z,sra_33
                inc_error_cnt
sra_33:         ld      (hl),1
                sra     (hl)
                jr      c,sra_34
                inc_error_cnt
sra_34:         jr      z,sra_35
                inc_error_cnt
sra_35:         ld      ix,t_var3
                ld      a,data_55
                ld      (ix-2),a
                sra     (ix-2)
                jp      p,sra_36
                inc_error_cnt
sra_36:         jp      po,sra_37
                inc_error_cnt
sra_37:         jr      c,sra_38
                inc_error_cnt
sra_38:         jr      nz,sra_39
                inc_error_cnt
sra_39:         sra     (ix-2)
                jr      nc,sra_40
                inc_error_cnt
sra_40:         sra     (ix-2)
                jp      pe,sra_41
                inc_error_cnt
sra_41:         ld      a,(ix-2)
                cp      a,#0a           ;data_aa.and.#0f
                jr      z,sra_42
                inc_error_cnt
sra_42:         ld      a,data_80
                ld      (ix+2),a
                sra     (ix+2)
                jp      m,sra_43
                inc_error_cnt
sra_43:         ld      a,(ix+2)
                cp      a,#c0
                jr      z,sra_44
                inc_error_cnt
sra_44:         ld      a,1
                ld      (ix-1),a
                sra     (ix-1)
                jr      c,sra_45
                inc_error_cnt
sra_45:         jr      z,sra_46
                inc_error_cnt
sra_46:         ld      iy,t_var3
                ld      a,data_55
                ld      (iy-2),a
                sra     (iy-2)
                jp      p,sra_47
                inc_error_cnt
sra_47:         jp      po,sra_48
                inc_error_cnt
sra_48:         jr      c,sra_49
                inc_error_cnt
sra_49:         jr      nz,sra_50
                inc_error_cnt
sra_50:         sra     (iy-2)
                jr      nc,sra_51
                inc_error_cnt
sra_51:         sra     (iy-2)
                jp      pe,sra_52
                inc_error_cnt
sra_52:         ld      a,(iy-2)
                cp      a,#0a           ;data_aa.and.#0f
                jr      z,sra_53
                inc_error_cnt
sra_53:         ld      a,data_80
                ld      (iy+2),a
                sra     (iy+2)
                jp      m,sra_54
                inc_error_cnt
sra_54:         ld      a,(iy+2)
                cp      a,#c0
                jr      z,sra_55
                inc_error_cnt
sra_55:         ld      a,1
                ld      (iy-1),a
                sra     (iy-1)
                jr      c,sra_56
                inc_error_cnt
sra_56:         jr      z,srl_0
                inc_error_cnt
srl_0:          ld      a,data_55
                srl     a
                jr      c,srl_1
                inc_error_cnt
srl_1:          jp      po,srl_2
                inc_error_cnt
srl_2:          srl     a
                jr      nc,srl_3
                inc_error_cnt
srl_3:          srl     a
                jp      pe,srl_4
                inc_error_cnt
srl_4:          cp      a,#0a                   ;data_aa.and.#0f
                jr      z,srl_5
                inc_error_cnt
srl_5:          ld      a,data_80
                and     a
                jp      m,srl_6
                inc_error_cnt
srl_6:          srl     a
                jp      p,srl_7
                inc_error_cnt
srl_7:          ld      a,2
                srl     a
                jr      nz,srl_8
                inc_error_cnt
srl_8:          srl     a
                jr      z,srl_9
                inc_error_cnt
srl_9:          jr      c,srl_10
                inc_error_cnt
srl_10:         ld      b,data_aa
                srl     b
                jp      p,srl_11
                inc_error_cnt
srl_11:         ld      a,b
                cp      a,data_55
                jr      z,srl_12
                inc_error_cnt
srl_12:         ld      c,data_7f
                srl     c
                jr      c,srl_13
                inc_error_cnt
srl_13:         ld      a,c
                cp      a,#3f
                jr      z,srl_14
                inc_error_cnt
srl_14:         ld      d,data_55
                srl     d
                jr      c,srl_15
                inc_error_cnt
srl_15:         ld      a,d
                cp      a,#2a
                jr      z,srl_16
                inc_error_cnt
srl_16:         ld      e,data_ff
                srl     e
                jr      c,srl_17
                inc_error_cnt
srl_17:         ld      a,e
                cp      a,data_7f
                jr      z,srl_18
                inc_error_cnt
srl_18:         ld      h,#12      ;bjp was >data_1234
                srl     h
                jr      nc,srl_19
                inc_error_cnt
srl_19:         ld      a,h
                cp      a,9
                jr      z,srl_20
                inc_error_cnt
srl_20:         ld      l,#34      ;bjp was >data_1234
                srl     l
                jr      nc,srl_21
                inc_error_cnt
srl_21:         ld      a,l
                cp      a,#1a
                jr      z,srl_22
                inc_error_cnt
srl_22:         ld      hl,t_var1
                ld      (hl),data_55
                srl     (hl)
                jr      c,srl_23
                inc_error_cnt
srl_23:         jp      po,srl_24
                inc_error_cnt
srl_24:         srl     (hl)
                jr      nc,srl_25
                inc_error_cnt
srl_25:         srl     (hl)
                jp      pe,srl_26
                inc_error_cnt
srl_26:         ld      a,(hl)
                cp      a,#0a                   ;data_aa.and.#0f
                jr      z,srl_27
                inc_error_cnt
srl_27:         ld      (hl),data_80
                and     (hl)
                jp      z,srl_28
                inc_error_cnt
srl_28:         srl     (hl)
                jp      p,srl_29
                inc_error_cnt
srl_29:         ld      a,(hl)
                cp      a,#40
                jr      z,srl_30
                inc_error_cnt
srl_30:         ld      (hl),2
                srl     (hl)
                jr      nz,srl_31
                inc_error_cnt
srl_31:         srl     (hl)
                jr      z,srl_32
                inc_error_cnt
srl_32:         jr      c,srl_33
                inc_error_cnt
srl_33:         ld      ix,t_var3
                ld      a,data_55
                ld      (ix+2),a
                srl     (ix+2)
                jr      c,srl_34
                inc_error_cnt
srl_34:         jp      po,srl_35
                inc_error_cnt
srl_35:         srl     (ix+2)
                jr      nc,srl_36
                inc_error_cnt
srl_36:         srl     (ix+2)
                jp      pe,srl_37
                inc_error_cnt
srl_37:         ld      a,(ix+2)
                cp      a,#0a                   ;data_aa.and.#0f
                jr      z,srl_38
                inc_error_cnt
srl_38:         ld      a,data_80
                ld      (ix-2),a
                and     (ix-2)
                jp      m,srl_39
                inc_error_cnt
srl_39:         srl     (ix-2)
                jp      p,srl_40
                inc_error_cnt
srl_40:         ld      a,(ix-2)
                cp      a,#40
                jr      z,srl_41
                inc_error_cnt
srl_41:         ld      a,2
                ld      (ix+1),a
                srl     (ix+1)
                jr      nz,srl_42
                inc_error_cnt
srl_42:         srl     (ix+1)
                jr      z,srl_43
                inc_error_cnt
srl_43:         jr      c,srl_44
                inc_error_cnt
srl_44:         ld      iy,t_var3
                ld      a,data_55
                ld      (iy+2),a
                srl     (iy+2)
                jr      c,srl_45
                inc_error_cnt
srl_45:         jp      po,srl_46
                inc_error_cnt
srl_46:         srl     (iy+2)
                jr      nc,srl_47
                inc_error_cnt
srl_47:         srl     (iy+2)
                jp      pe,srl_48
                inc_error_cnt
srl_48:         ld      a,(iy+2)
                cp      a,#0a                   ;data_aa.and.#0f
                jr      z,srl_49
                inc_error_cnt
srl_49:         ld      a,data_80
                ld      (iy-2),a
                and     (iy-2)
                jp      m,srl_50
                inc_error_cnt
srl_50:         srl     (iy-2)
                jp      p,srl_51
                inc_error_cnt
srl_51:         ld      a,(iy-2)
                cp      a,#40
                jr      z,srl_52
                inc_error_cnt
srl_52:         ld      a,2
                ld      (iy+1),a
                srl     (iy+1)
                jr      nz,srl_53
                inc_error_cnt
srl_53:         srl     (iy+1)
                jr      z,srl_54
                inc_error_cnt
srl_54:         jr      c,rld_0
                inc_error_cnt
rld_0:          ld      hl,t_var5
                ld      a,data_55
                ld      (hl),data_aa
                rld
                jp      p,rld_1
                inc_error_cnt
rld_1:          cp      a,data_55+5
                jr      z,rld_2
                inc_error_cnt
rld_2:          ld      a,(hl)
                cp      a,data_aa-5
                jr      z,rld_3
                inc_error_cnt
rld_3:          ld      (hl),data_7f
                ld      a,data_80
                rld
                jp      m,rld_4
                inc_error_cnt
rld_4:          jp      pe,rld_5
                inc_error_cnt
rld_5:          rld
                jp      po,rld_6
                inc_error_cnt
rld_6:          cp      a,data_80+15
                jr      z,rld_7
                inc_error_cnt
rld_7:          ld      a,(hl)
                cp      a,7
                jr      z,rld_8
                inc_error_cnt
rld_8:          ld      a,#05                   ;data_55.and.#0f
                ld      (hl),#0a                        ;data_aa.and.#0f
                rld
                jr      z,rld_9
                inc_error_cnt
rld_9:          ld      a,(hl)
                cp      a,#a5
                jr      z,rrd_0
                inc_error_cnt
rrd_0:          ld      hl,t_var3
                ld      a,data_55
                ld      (hl),data_aa
                rrd
                jp      p,rrd_1
                inc_error_cnt
rrd_1:          jp      pe,rrd_2
                inc_error_cnt
rrd_2:          jr      nz,rrd_3
                inc_error_cnt
rrd_3:          cp      a,data_55+5
                jr      z,rrd_4
                inc_error_cnt
rrd_4:          ld      a,(hl)
                cp      a,data_55+5
                jr      z,rrd_5
                inc_error_cnt
rrd_5:          ld      (hl),data_7f
                ld      a,data_80
                rrd
                jp      m,rrd_6
                inc_error_cnt
rrd_6:          jp      po,rrd_7
                inc_error_cnt
rrd_7:          cp      a,data_80+15
                jr      z,rrd_8
                inc_error_cnt
rrd_8:          ld      a,(hl)
                cp      a,7
                jr      z,rrd_9
                inc_error_cnt
rrd_9:          ld      a,8
                ld      (hl),0
                rrd
                jr      z,rrd_10
                inc_error_cnt
rrd_10:         ld      a,(hl)
                cp      a,data_80
                jr      z,bit_0
                inc_error_cnt
bit_0:          ld      a,data_ff
                bit     0,a
                jr      nz,bit_1
                inc_error_cnt
bit_1:          bit     1,a
                jr      nz,bit_2
                inc_error_cnt
bit_2:          bit     2,a
                jr      nz,bit_3
                inc_error_cnt
bit_3:          bit     3,a
                jr      nz,bit_4
                inc_error_cnt
bit_4:          bit     4,a
                jr      nz,bit_5
                inc_error_cnt
bit_5:          bit     5,a
                jr      nz,bit_6
                inc_error_cnt
bit_6:          bit     6,a
                jr      nz,bit_7
                inc_error_cnt
bit_7:          bit     7,a
                jr      nz,bit_8
                inc_error_cnt
bit_8:          ld      a,0
                bit     0,a
                jr      z,bit_9
                inc_error_cnt
bit_9:          bit     1,a
                jr      z,bit_10
                inc_error_cnt
bit_10:         bit     2,a
                jr      z,bit_11
                inc_error_cnt
bit_11:         bit     3,a
                jr      z,bit_12
                inc_error_cnt
bit_12:         bit     4,a
                jr      z,bit_13
                inc_error_cnt
bit_13:         bit     5,a
                jr      z,bit_14
                inc_error_cnt
bit_14:         bit     6,a
                jr      z,bit_15
                inc_error_cnt
bit_15:         bit     7,a
                jr      z,bit_16
                inc_error_cnt
bit_16:         ld      b,data_80
                bit     2,b
                jr      z,bit_17
                inc_error_cnt
bit_17:         bit     7,b
                jr      nz,bit_18
                inc_error_cnt
bit_18:         ld      c,data_55
                bit     7,c
                jr      z,bit_19
                inc_error_cnt
bit_19:         bit     0,c
                jr      nz,bit_20
                inc_error_cnt
bit_20:         ld      d,data_aa
                bit     7,d
                jr      nz,bit_21
                inc_error_cnt
bit_21:         bit     4,d
                jr      z,bit_22
                inc_error_cnt
bit_22:         ld      e,data_7f
                bit     7,e
                jr      z,bit_23
                inc_error_cnt
bit_23:         bit     3,e
                jr      nz,bit_24
                inc_error_cnt
bit_24:         ld      h,#12      ;bjp was >data_1234
                bit     4,h
                jr      nz,bit_25
                inc_error_cnt
bit_25:         bit     2,h
                jr      z,bit_26
                inc_error_cnt
bit_26:         ld      l,#34      ;bjp was >data_1234
                bit     3,l
                jr      z,bit_27
                inc_error_cnt
bit_27:         bit     2,l
                jr      nz,bit_28
                inc_error_cnt
bit_28:         ld      hl,t_var4
                ld      (hl),data_55
                bit     0,(hl)
                jr      nz,bit_29
                inc_error_cnt
bit_29:         bit     1,(hl)
                jr      z,bit_30
                inc_error_cnt
bit_30:         bit     2,(hl)
                jr      nz,bit_31
                inc_error_cnt
bit_31:         bit     3,(hl)
                jr      z,bit_32
                inc_error_cnt
bit_32:         bit     4,(hl)
                jr      nz,bit_33
                inc_error_cnt
bit_33:         bit     5,(hl)
                jr      z,bit_34
                inc_error_cnt
bit_34:         bit     6,(hl)
                jr      nz,bit_35
                inc_error_cnt
bit_35:         bit     7,(hl)
                jr      z,bit_36
                inc_error_cnt
bit_36:         ld      ix,t_var3
                ld      a,data_aa
                ld      (ix-2),a
                bit     0,(ix-2)
                jr      z,bit_37
                inc_error_cnt
bit_37:         bit     1,(ix-2)
                jr      nz,bit_38
                inc_error_cnt
bit_38:         bit     2,(ix-2)
                jr      z,bit_39
                inc_error_cnt
bit_39:         bit     3,(ix-2)
                jr      nz,bit_40
                inc_error_cnt
bit_40:         bit     4,(ix-2)
                jr      z,bit_41
                inc_error_cnt
bit_41:         bit     5,(ix-2)
                jr      nz,bit_42
                inc_error_cnt
bit_42:         bit     6,(ix-2)
                jr      z,bit_43
                inc_error_cnt
bit_43:         bit     7,(ix-2)
                jr      nz,bit_44
                inc_error_cnt
bit_44:         ld      iy,t_var3
                ld      a,data_55
                ld      (iy+2),a
                bit     0,(iy+2)
                jr      nz,bit_45
                inc_error_cnt
bit_45:         bit     1,(iy+2)
                jr      z,bit_46
                inc_error_cnt
bit_46:         bit     2,(iy+2)
                jr      nz,bit_47
                inc_error_cnt
bit_47:         bit     3,(iy+2)
                jr      z,bit_48
                inc_error_cnt
bit_48:         bit     4,(iy+2)
                jr      nz,bit_49
                inc_error_cnt
bit_49:         bit     5,(iy+2)
                jr      z,bit_50
                inc_error_cnt
bit_50:         bit     6,(iy+2)
                jr      nz,bit_51
                inc_error_cnt
bit_51:         bit     7,(iy+2)
                jr      z,set_0
                inc_error_cnt
set_0:          ld      a,0
                set     0,a
                set     2,a
                set     4,a
                set     6,a
                cp      a,data_55
                jr      z,set_1
                inc_error_cnt
set_1:          set     1,a
                set     3,a
                set     5,a
                set     7,a
                cp      a,data_ff
                jr      z,set_2
                inc_error_cnt
set_2:          ld      b,0
                set     1,b
                set     3,b
                ld      a,b
                cp      a,#0a                   ;data_aa.and.#0f
                jr      z,set_3
                inc_error_cnt
set_3:          ld      c,0
                set     1,c
                set     4,c
                ld      a,c
                cp      a,#12      ;bjp was >data_1234
                jr      z,set_4
                inc_error_cnt
set_4:          ld      d,0
                set     2,d
                set     4,d
                set     5,d
                ld      a,d
                cp      a,#34      ;bjp was >data_1234
                jr      z,set_5
                inc_error_cnt
set_5:          ld      e,0
                set     7,e
                ld      a,e
                cp      a,data_80
                jr      z,set_6
                inc_error_cnt
set_6:          ld      h,0
                set     0,h
                set     2,h
                set     4,h
                set     6,h
                ld      a,h
                cp      a,data_55
                jr      z,set_7
                inc_error_cnt
set_7:          ld      l,0
                set     1,l
                set     3,l
                set     5,l
                set     7,l
                ld      a,l
                cp      a,data_aa
                jr      z,set_8
                inc_error_cnt
set_8:          ld      hl,t_var5
                ld      (hl),0
                set     0,(hl)
                set     2,(hl)
                set     4,(hl)
                set     6,(hl)
                ld      a,(hl)
                cp      a,data_55
                jr      z,set_9
                inc_error_cnt
set_9:          ld      (hl),0
                set     1,(hl)
                set     3,(hl)
                set     5,(hl)
                set     7,(hl)
                ld      a,(hl)
                cp      a,data_aa
                jr      z,set_10
                inc_error_cnt
set_10:         ld      ix,t_var3
                ld      a,0
                ld      (ix-2),a
                ld      (ix+2),a
                set     0,(ix-2)
                set     2,(ix-2)
                set     4,(ix-2)
                set     6,(ix-2)
                ld      a,(ix-2)
                cp      a,data_55
                jr      z,set_11
                inc_error_cnt
set_11:         set     1,(ix+2)
                set     3,(ix+2)
                set     5,(ix+2)
                set     7,(ix+2)
                ld      a,(ix+2)
                cp      a,data_aa
                jr      z,set_12
                inc_error_cnt
set_12:         ld      iy,t_var3
                ld      a,0
                ld      (iy-1),a
                ld      (iy+1),a
                set     0,(iy-1)
                set     2,(iy-1)
                set     4,(iy-1)
                set     6,(iy-1)
                ld      a,(iy-1)
                cp      a,data_55
                jr      z,set_13
                inc_error_cnt
set_13:         set     1,(iy+1)
                set     3,(iy+1)
                set     5,(iy+1)
                set     7,(iy+1)
                ld      a,(iy+1)
                cp      a,data_aa
                jr      z,res_0
                inc_error_cnt
res_0:          ld      a,data_ff
                res     7,a
                cp      a,data_7f
                jr      z,res_1
                inc_error_cnt
res_1:          res     5,a
                res     3,a
                res     1,a
                cp      a,data_55
                jr      z,res_2
                inc_error_cnt
res_2:          ld      a,data_ff
                res     0,a
                res     2,a
                res     4,a
                res     6,a
                cp      a,data_aa
                jr      z,res_3
                inc_error_cnt
res_3:          ld      b,data_ff
                res     7,b
                ld      a,b
                cp      a,data_7f
                jr      z,res_4
                inc_error_cnt
res_4:          ld      c,data_ff
                res     0,c
                res     1,c
                res     2,c
                res     3,c
                res     4,c
                res     5,c
                res     6,c
                ld      a,c
                cp      a,data_80
                jr      z,res_5
                inc_error_cnt
res_5:          ld      d,data_ff
                res     0,d
                res     2,d
                res     4,d
                res     6,d
                ld      a,d
                cp      a,data_aa
                jr      z,res_6
                inc_error_cnt
res_6:          ld      e,data_ff
                res     1,e
                res     3,e
                res     5,e
                res     7,e
                ld      a,e
                cp      a,data_55
                jr      z,res_7
                inc_error_cnt
res_7:          ld      h,data_ff
                res     0,h
                res     2,h
                res     3,h
                res     5,h
                res     6,h
                res     7,h
                ld      a,h
                cp      a,#12      ;bjp was >data_1234
                jr      z,res_8
                inc_error_cnt
res_8:          ld      l,data_ff
                res     0,l
                res     1,l
                res     3,l
                res     6,l
                res     7,l
                ld      a,l
                cp      a,#34      ;bjp was >data_1234
                jr      z,res_9
                inc_error_cnt
res_9:          ld      hl,t_var3
                ld      (hl),data_ff
                res     0,(hl)
                res     2,(hl)
                res     4,(hl)
                res     6,(hl)
                ld      a,(hl)
                cp      a,data_aa
                jr      z,res_10
                inc_error_cnt
res_10:         res     1,(hl)
                res     3,(hl)
                res     5,(hl)
                res     7,(hl)
                ld      a,(hl)
                cp      a,0
                jr      z,res_11
                inc_error_cnt
res_11:         ld      ix,t_var3
                ld      a,data_ff
                ld      (ix-2),a
                ld      (ix+2),a
                res     1,(ix-2)
                res     3,(ix-2)
                res     5,(ix-2)
                res     7,(ix-2)
                ld      a,(ix-2)
                cp      a,data_55
                jr      z,res_12
                inc_error_cnt
res_12:         res     0,(ix+2)
                res     2,(ix+2)
                res     4,(ix+2)
                res     6,(ix+2)
                ld      a,(ix+2)
                cp      a,data_aa
                jr      z,res_13
                inc_error_cnt
res_13:         ld      iy,t_var3
                ld      a,data_ff
                ld      (iy-1),a
                ld      (iy+1),a
                res     1,(iy-1)
                res     3,(iy-1)
                res     5,(iy-1)
                res     7,(iy-1)
                ld      a,(iy-1)
                cp      a,data_55
                jr      z,res_14
                inc_error_cnt
res_14:         res     0,(iy+1)
                res     2,(iy+1)
                res     4,(iy+1)
                res     6,(iy+1)
                ld      a,(iy+1)
                cp      a,data_aa
                jr      z,jp_0
                inc_error_cnt
jp_0:           jp      jp_1
                nop
                nop
                inc_error_cnt
jp_1:           ld      a,0
                and     a
                jp      z,jp_2
                inc_error_cnt
jp_2:           jp      nc,jp_3
                inc_error_cnt
jp_3:           ld      b,1
                sub     a,b
                jp      nz,jp_4
                inc_error_cnt
jp_4:           jp      c,jp_5
                inc_error_cnt
jp_5:           jp      jp_7
                inc_error_cnt
jp_6:           jp      jr_0
                inc_error_cnt
jp_7:           jp      jp_6
                inc_error_cnt
jr_0:           jr      jr_2
                inc_error_cnt
jr_1:           jr      jr_3
                inc_error_cnt
jr_2:           jr      jr_1
                inc_error_cnt
jr_3:           ld      hl,jp_9
                jp      (hl)
                inc_error_cnt
jp_8:           ld      ix,jp_10
                jp      (ix)
                inc_error_cnt
jp_9:           jp      jp_8
                inc_error_cnt
jp_10:          ld      iy,djnz_0
                jp      (iy)
                inc_error_cnt
djnz_0:         ld      b,5
                ld      a,0
djnz_1:         inc     a
                djnz    djnz_1
                cp      a,5
                jr      z,call_0
                inc_error_cnt
call_0:         ld      a,0
                call    sub1
                cp      a,data_7f
                jr      z,call_1
                inc_error_cnt
call_1:         ld      a,0
                and     a
                call    z,sub2
                cp      a,data_55
                jr      z,call_2
                inc_error_cnt
call_2:         ld      a,data_aa
                and     a
                call    nz,sub3
                cp      a,data_aa+1
                jr      z,call_3
                inc_error_cnt
call_3:         ld      a,0
                cp      a,0
                call    nc,sub4
                cp      a,data_ff
                jr      z,call_4
                inc_error_cnt
call_4:         ld      a,0
                sub     a,1
                call    c,sub5
                cp      a,data_ff-1
                jr      z,call_5
                inc_error_cnt
call_5:         ld      a,data_7f
                sla     a
                call    po,sub6
                cp      a,data_7f
                jr      z,call_6
                inc_error_cnt
call_6:         ld      a,data_aa
                srl     a
                call    pe,sub7
                cp      a,data_aa
                jr      z,call_7
                inc_error_cnt
call_7:         ld      a,data_80
                sra     a
                call    m,sub8
                cp      a,data_80
                jr      z,call_8
                inc_error_cnt
call_8:         ld      a,data_7f
                sra     a
                call    p,sub9
                cp      a,data_7f
                jr      z,rst_0
                inc_error_cnt
rst_0:          rst     #00
                cp      a,1
                jr      z,rst_1
                inc_error_cnt
rst_1:          rst     #08
                cp      a,2
                jr      z,rst_2
                inc_error_cnt
rst_2:          rst     #10
                cp      a,3
                jr      z,rst_3
                inc_error_cnt
rst_3:          rst     #18
                cp      a,4
                jr      z,rst_4
                inc_error_cnt
rst_4:          rst     #20
                cp      a,5
                jr      z,rst_5
                inc_error_cnt
rst_5:          rst     #28
                cp      a,6
                jr      z,rst_6
                inc_error_cnt
rst_6:          rst     #30
                cp      a,7
                jr      z,rst_7
                inc_error_cnt
rst_7:          rst     #38
                cp      a,8
                jr      z,in_0
                inc_error_cnt
in_0:           in      a,(in_port)
                cp      a,data_7f
                jr      z,in_1
                inc_error_cnt
in_1:           ld      c,in_port
                in      a,(c)
                jr      nz,in_2
                inc_error_cnt
in_2:           jp      p,in_3
                inc_error_cnt
in_3:           jp      pe,in_4
                inc_error_cnt
in_4:           cp      a,data_55
                jr      z,in_5
                inc_error_cnt
in_5:           in      a,(c)
                jp      m,in_6
                inc_error_cnt
in_6:           jp      po,in_7
                inc_error_cnt
in_7:           jr      nz,in_8
                inc_error_cnt
in_8:           cp      a,data_80
                jr      z,in_9
                inc_error_cnt
in_9:           in      a,(c)
                jr      z,in_10
                inc_error_cnt
in_10:          in      b,(c)
                jp      m,in_11
                inc_error_cnt
in_11:          ld      a,b
                cp      a,data_ff
                jr      z,in_12
                inc_error_cnt
in_12:          in      d,(c)
                jp      pe,in_13
                inc_error_cnt
in_13:          ld      a,d
                cp      a,data_aa
                jr      z,in_14
                inc_error_cnt
in_14:          in      e,(c)
                jp      p,in_15
                inc_error_cnt
in_15:          ld      a,e
                cp      a,data_7f
                jr      z,in_16
                inc_error_cnt
in_16:          in      h,(c)
                jp      pe,in_17
                inc_error_cnt
in_17:          ld      a,h
                cp      a,data_55
                jr      z,in_18
                inc_error_cnt
in_18:          in      l,(c)
                jp      m,in_19
                inc_error_cnt
in_19:          ld      a,l
                cp      a,data_80
                jr      z,in_20
                inc_error_cnt
in_20:          in      c,(c)
                jr      z,in_21
                inc_error_cnt
in_21:          ld      c,in_port
                ld      b,2
                ld      hl,t_var1
                ini
                jr      nz,in_22
                inc_error_cnt
in_22:          ini
                jr      z,in_23
                inc_error_cnt
in_23:          ld      hl,t_var1
                ld      a,(hl)
                cp      a,data_ff
                jr      z,in_24
                inc_error_cnt
in_24:          inc     hl
                ld      a,(hl)
                cp      a,data_aa
                jr      z,in_25
                inc_error_cnt
in_25:          ld      b,5
                ld      c,in_port
                ld      hl,t_var1
                inir
                jr      z,in_26
                inc_error_cnt
in_26:          ld      hl,t_var1
                ld      a,(hl)
                cp      a,data_7f
                jr      z,in_27
                inc_error_cnt
in_27:          inc     hl
                ld      a,(hl)
                cp      a,data_55
                jr      z,in_28
                inc_error_cnt
in_28:          inc     hl
                ld      a,(hl)
                cp      a,data_80
                jr      z,in_29
                inc_error_cnt
in_29:          inc     hl
                ld      a,(hl)
                cp      a,0
                jr      z,in_30
                inc_error_cnt
in_30:          inc     hl
                ld      a,(hl)
                cp      a,data_ff
                jr      z,in_31
                inc_error_cnt
in_31:          ld      b,2
                ld      c,in_port
                ld      hl,t_var5
                ind
                jr      nz,in_32
                inc_error_cnt
in_32:          ind
                jr      z,in_33
                inc_error_cnt
in_33:          ld      hl,t_var5
                ld      a,(hl)
                cp      a,data_aa
                jr      z,in_34
                inc_error_cnt
in_34:          dec     hl
                ld      a,(hl)
                cp      a,data_7f
                jr      z,in_35
                inc_error_cnt
in_35:          ld      b,5
                ld      c,in_port
                ld      hl,t_var5
                indr
                jr      z,in_36
                inc_error_cnt
in_36:          ld      hl,t_var5
                ld      a,(hl)
                cp      a,data_55
                jr      z,in_37
                inc_error_cnt
in_37:          dec     hl
                ld      a,(hl)
                cp      a,data_80
                jr      z,in_38
                inc_error_cnt
in_38:          dec     hl
                ld      a,(hl)
                cp      a,0
                jr      z,in_39
                inc_error_cnt
in_39:          dec     hl
                ld      a,(hl)
                cp      a,data_ff
                jr      z,in_40
                inc_error_cnt
in_40:          dec     hl
                ld      a,(hl)
                cp      a,data_aa
                jr      z,in_41
                inc_error_cnt
                ; 10,09,2007  Test for Howard Hart's IN bug
in_41:          ld      hl, t_var1
                ld      a, #34       ; something not in the input sequencer
                in      a,(in_port)
                ld      (hl), a      ; 10/12/2007 previously this instruction got skipped
                ld      a, #34
                ld      a,(hl)
                cp      a,data_7f
                jr      z,ldi_0
                inc_error_cnt
ldi_0:          ld      hl,t_var1
                ld      a,#12      ;bjp was >data_1234
                ld      (hl),a
                inc     hl
                ld      a,#34      ;bjp was >data_1234
                ld      (hl),a
                dec     hl
                ld      de,t_var3
                ld      bc,2
                ldi
                jp      pe,ldi_1
                inc_error_cnt
ldi_1:          ldi
                jp      po,ldi_2
                inc_error_cnt
ldi_2:          ld      hl,t_var3
                ld      a,(hl)
                cp      a,#12      ;bjp was >data_1234
                jr      z,ldi_3
                inc_error_cnt
ldi_3:          inc     hl
                ld      a,(hl)
                cp      a,#34      ;bjp was >data_1234
                jr      z,ldir_0
                inc_error_cnt
ldir_0:         ld      hl,var1
                ld      de,t_var1
                ld      bc,5
                ei                 ;bjp  be sure we can interrupt this instruction
                ldir
                jp      po,ldir_1
                inc_error_cnt
ldir_1:         ld      hl,t_var1
                ld      a,(hl)
                cp      a,data_ff
                jr      z,ldir_2
                inc_error_cnt
ldir_2:         inc     hl
                ld      a,(hl)
                cp      a,data_55
                jr      z,ldir_3
                inc_error_cnt
ldir_3:         inc     hl
                ld      a,(hl)
                cp      a,data_80
                jr      z,ldir_4
                inc_error_cnt
ldir_4:         inc     hl
                ld      a,(hl)
                cp      a,data_aa
                jr      z,ldir_5
                inc_error_cnt
ldir_5:         inc     hl
                ld      a,(hl)
                cp      a,data_7f
                jr      z,ldd_0
                inc_error_cnt
ldd_0:          ld      hl,t_var5
                ld      a,#12      ;bjp was >data_1234
                ld      (hl),a
                dec     hl
                ld      a,#34      ;bjp was >data_1234
                ld      (hl),a
                inc     hl
                ld      bc,2
                ld      de,t_var3
                ldd
                jp      pe,ldd_1
                inc_error_cnt
ldd_1:          ldd
                jp      po,ldd_2
                inc_error_cnt
ldd_2:          ld      hl,t_var3
                ld      a,(hl)
                cp      a,#12      ;bjp was >data_1234
                jr      z,ldd_3
                inc_error_cnt
ldd_3:          dec     hl
                ld      a,(hl)
                cp      a,#34      ;bjp was >data_1234
                jr      z,lddr_0
                inc_error_cnt
lddr_0:         ld      bc,5
                ld      hl,var5
                ld      de,t_var5
                lddr
                jp      po,lddr_1
                inc_error_cnt
lddr_1:         ld      hl,t_var1
                ld      a,(hl)
                cp      a,data_ff
                jr      z,lddr_2
                inc_error_cnt
lddr_2:         inc     hl
                ld      a,(hl)
                cp      a,data_55
                jr      z,lddr_3
                inc_error_cnt
lddr_3:         inc     hl
                ld      a,(hl)
                cp      a,data_80
                jr      z,lddr_4
                inc_error_cnt
lddr_4:         inc     hl
                ld      a,(hl)
                cp      a,data_aa
                jr      z,lddr_5
                inc_error_cnt
lddr_5:         inc     hl
                ld      a,(hl)
                cp      a,data_7f
                jr      z,cpi_0
                inc_error_cnt
cpi_0:          ld      hl,t_var1
                ld      bc,5
                ld      a,data_7f
                cpi
                jp      pe,cpi_1
                inc_error_cnt
cpi_1:          jp      m,cpi_2
                inc_error_cnt
cpi_2:          jr      nz,cpi_3
                inc_error_cnt
cpi_3:          cpi
                jp      pe,cpi_4
                inc_error_cnt
cpi_4:          jp      p,cpi_5
                inc_error_cnt
cpi_5:          jr      nz,cpi_6
                inc_error_cnt
cpi_6:          cpi
                jp      pe,cpi_7
                inc_error_cnt
cpi_7:          jp      m,cpi_8
                inc_error_cnt
cpi_8:          jr      nz,cpi_9
                inc_error_cnt
cpi_9:          cpi
                jp      pe,cpi_10
                inc_error_cnt
cpi_10:         jp      m,cpi_11
                inc_error_cnt
cpi_11:         jr      nz,cpi_12
                inc_error_cnt
cpi_12:         cpi
                jp      po,cpi_13
                inc_error_cnt
cpi_13:         jp      p,cpi_14
                inc_error_cnt
cpi_14:         jr      z,cpir_0
                inc_error_cnt
cpir_0:         ld      a,data_aa
                ld      hl,var1
                ld      bc,5
                cpir
                jr      z,cpir_1
                inc_error_cnt
cpir_1:         jp      pe,cpir_2
                inc_error_cnt
cpir_2:         ld      a,b
                cp      a,0
                jr      z,cpir_3
                inc_error_cnt
cpir_3:         ld      a,c
                cp      a,1
                jr      z,cpir_4
                inc_error_cnt
cpir_4:         ld      a,data_7f
                ld      hl,var1
                ld      bc,5
                cpir
                jp      po,cpir_5
                inc_error_cnt
cpir_5:         jr      z,cpir_6
                inc_error_cnt
cpir_6:         ld      a,#34      ;bjp was >data_1234
                ld      hl,var1
                ld      bc,5
                cpir
                jp      po,cpir_7
                inc_error_cnt
cpir_7:         jr      nz,cpir_8
                inc_error_cnt
cpir_8:         jp      m,cpir_9
                inc_error_cnt
cpir_9:         ld      a,data_aa
                ld      hl,var1
                ld      bc,3
                cpir
                jp      po,cpir_10
                inc_error_cnt
cpir_10:        jp      p,cpir_11
                inc_error_cnt
cpir_11:        jr      nz,cpd_0
                inc_error_cnt
cpd_0:          ld      a,data_ff
                ld      hl,var5
                ld      bc,5
                cpd
                jp      m,cpd_1
                inc_error_cnt
cpd_1:          jp      pe,cpd_2
                inc_error_cnt
cpd_2:          jr      nz,cpd_3
                inc_error_cnt
cpd_3:          cpd
                jp      p,cpd_4
                inc_error_cnt
cpd_4:          jp      pe,cpd_5
                inc_error_cnt
cpd_5:          jr      nz,cpd_6
                inc_error_cnt
cpd_6:          cpd
                jp      p,cpd_7
                inc_error_cnt
cpd_7:          jp      pe,cpd_8
                inc_error_cnt
cpd_8:          jr      nz,cpd_9
                inc_error_cnt
cpd_9:          cpd
                jp      m,cpd_10
                inc_error_cnt
cpd_10:         jp      pe,cpd_11
                inc_error_cnt
cpd_11:         jr      nz,cpd_12
                inc_error_cnt
cpd_12:         cpd
                jp      p,cpd_13
                inc_error_cnt
cpd_13:         jp      po,cpd_14
                inc_error_cnt
cpd_14:         jr      z,cpdr_0
                inc_error_cnt
cpdr_0:         ld      a,data_80
                ld      hl,var5
                ld      bc,5
                cpdr
                jp      pe,cpdr_1
                inc_error_cnt
cpdr_1:         jp      p,cpdr_2
                inc_error_cnt
cpdr_2:         jr      z,cpdr_3
                inc_error_cnt
cpdr_3:         ld      a,b
                cp      a,0
                jr      z,cpdr_4
                inc_error_cnt
cpdr_4:         ld      a,c
                cp      a,2
                jr      z,cpdr_5
                inc_error_cnt
cpdr_5:         ld      a,#34      ;bjp was >data_1234
                ld      hl,var5
                ld      bc,5
                cpdr
                jp      po,cpdr_6
                inc_error_cnt
cpdr_6:         jr      nz,cpdr_7
                inc_error_cnt
cpdr_7:         jp      p,cpdr_8
                inc_error_cnt
cpdr_8:         ld      a,#34      ;bjp was >data_1234
                ld      hl,var5
                ld      bc,3
                cpdr
                jp      po,cpdr_9
                inc_error_cnt
cpdr_9:         jr      nz,cpdr_10
                inc_error_cnt
cpdr_10:        jp      m,c_ret_f
                inc_error_cnt

;add a test for the Stephen Warren bug
;  first cut didn't do it. Lots of insts actually work. Gotta be something
;  basically executed from ir1  - like push
c_ret_f:        di
                ld      de, #1122
                push    de
                pop     af
                ld      hl, 0xaa55
                ld      a,7
                cp      0
                ret     z
                push    hl
                pop     af 
                cp      a, data_aa
                jp      z, out_0
                inc_error_cnt



;
;the file portfe.xxx must be examined to see if the proper output is generated
;
out_0:          di              ; interrupts are tested, don't muck up output
                ld      a,#30
                out     (out_port),a
                ld      c,out_port
                ld      a,#31
                out     (c),a
                ld      b,#32
                out     (c),b
                ld      d,#33
                out     (c),d
                ld      e,#34
                out     (c),e
                ld      h,#35
                out     (c),h
                ld      l,#36
                out     (c),l
                out     (c),c                   ;output value divider
outi_0:         ld      a,#31                   ;set up output values
                ld      b,5
                ld      hl,t_var1
outi_1:         ld      (hl),a
                inc     a
                inc     hl
                djnz    outi_1
outi_2:         ld      c,out_port
                ld      b,5
                ld      hl,t_var1
outi_3:         outi
                jr      nz,outi_3
otir_0:         out     (c),c                   ;output value divider
                ld      hl,t_var1
                ld      b,5
                otir
                jr      z,outd_0
                inc_error_cnt
outd_0:         out     (c),c
                ld      hl,t_var5
                ld      b,5
outd_1:         outd
                jr      nz,outd_1
otdr_0:         out     (c),c
                ld      b,5
                ld      hl,t_var5
                otdr
                jr      z,otdr_1
                inc_error_cnt
otdr_1:         out     (c),c
                ld      a,#0d
                out     (c),a
                ld      a,#0a
                out     (c),a
inc_pass:       ld      a,(pass_count)
                inc     a
                ld      (pass_count),a
                ld      hl,error_cnt
                ld      a,(hl)
                cp      a,0
                jr      z,worked
failed:         ld      hl,fail_msg
                ld      b,27
                otir
                ld      hl, bist_adr
                ld      (hl), bist_ack+bist_err
                halt
                nop
                nop
;worked:                passed           ;???? bjp
worked:         ld      hl,match_msg
                ld      b,33
                otir
                ld      hl,pass_msg
                ld      b,45
                otir
                ld      hl, bist_adr
                ld      (hl), bist_ack
                


stop:           halt
                nop
                nop
                nop

int_start:      push    hl
                push    bc
                push    af      ; bj  -- this stuff gronks f as well 
                ld      hl, int_msg
                ld      b, 1
                ld      c, out_port
                otir
                pop     af
                pop     bc
                pop     hl
                reti
                
;subroutine 1, must load a with #7f
;
sub1:           ld      a,data_7f
                ret
;
;
;subroutine 2, must load a with #55
;
sub2:           ld      a,data_55
                cp      a,data_55
                ret     z
;
;subroutine 3, increments a
;
sub3:           inc     a
                and     a
                ret     nz
;
;subroutine 4, subtracts 1 from a
;
sub4:           sub     a,1
                ret     c
;
;subroutine 5, subtracts 1 from a
;
sub5:           sub     a,1
                ret     nc
;
;subroutine 6, shifts a right logically
;
sub6:           srl     a
                ret     po
;
;subroutine 7, shifts a left arithmetically
;
sub7:           sla     a
                ret     pe
;
;subroutine 8, shifts a left arithmetically
;
sub8:           sla     a
                ret     m
;
;subroutine 9, rotates a left
;
sub9:           rl      a
                ret     p
;
;restart 0 routine
;
rst_0000_1:     ld      a,(pass_count)
                or      a
                jp      nz,start
                ld      a,1
                ret
;
;               data
;

fail_msg:               db      cr,lf,'instruction test failed',cr,lf
match_msg:              db      lf,'0123456 12345 12345 54321 54321',lf
pass_msg:               db      'If above lines match instruction test passed',lf
int_msg:                db      bell
;message_addr:  equ     #be58

var1:           db      data_ff
var2:           db      data_55
var3:           db      data_80
var4:           db      data_aa
var5:           db      data_7f
;

                org     #7000
t_var1:         db      0
t_var2:         db      0
t_var3:         db      0
t_var4:         db      0
t_var5:         db      0
;
w_var1:         dw      data_1234
w_var2:         dw      data_55aa
w_var3:         dw      data_7fff
w_var4:         dw      data_8000
w_var5:         dw      data_aa55
w_var6:         dw      data_ffff
;
tw_var1:        dw      0
tw_var2:        dw      0
tw_var3:        dw      0
tw_var4:        dw      0
tw_var5:        dw      0
tw_var6:        dw      0
tw_var7:        dw      0
;
error_cnt:      db      0
pass_count:     db      1
;
                org     #7100
stack:          ds      128
stack_end:      equ     $
;
                end start
; only a single pointer in the interrupt table               
                org     #7200
int_tbl:        dw      0
                org     #72fe
int_ptr:        dw      int_start











































































































































































































































































































Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.