URL
https://opencores.org/ocsvn/tv80/tv80/trunk
Subversion Repositories tv80
[/] [tv80/] [trunk/] [tests/] [tvs80/] [tvs80tst.asm] - Rev 103
Go to most recent revision | Compare with Previous | Blame | View Log
; bjp modified to assemble on as80.
; 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 equivaltent.
; 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
;
;z80 simulator test routine
;total error count is left in a at end of test routine
; gth modified to work in tv80 simulation environment
; moved data segment from 7000 to 8000
; replaced constants with stack_end_hi and stack_end_lo
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
;
fail: db 'failed'
pass: db 'passed'
message_addr: equ #be58
in_port: equ #ff
out_port: equ #10
;
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
stack: equ #8100
stack_end: equ #8180
stack_end_hi: equ #81
stack_end_lo: equ #80
ctl_port: equ #80
print_port: equ #81
;
;inc_error_cnt macro ;bjp change for initial test to halt on error
; ld hl,error_cnt
; inc (hl)
; endm
;inc_error_cnt macro ; gth replaced with fail_msg ###
; ld a, 2
; out (ctl_port), a
; halt
; endm
passed macro
ld a, 1
out (ctl_port), a
halt
;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
ld a, 2
out (ctl_port), a
halt
;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
;
;
;; subroutine to print a message
;; called from within the "print" macro
;; expects address to be printed in hl
;; preserves all other registers
print_sub:
push bc
ld b, a
print_sub_loop:
ld a, (hl)
cp #0
jp z, print_sub_exit
out (print_port), a
inc hl
jp print_sub_loop
print_sub_exit:
ld a, b
pop bc
ret
;; macro to print out a message
;; calls print_sub to do grunt work and minimize code impact of
;; strings
print macro message
push hl ; preserve existing regs
ld hl, msg\?
call print_sub
pop hl
jp exit\?
msg\? db message
db #0a
db #00
exit\?:
endm
;; print a hex number between 0-255, stored in the A register
print_number:
push bc
ld b, a ; store number to be printed in b
and #f0
sra a
sra a
sra a
sra a
cp a, 10
jp p, alpha_0
add 48 ; ordinal value of '0'
out (print_port), a
jp second_digit
alpha_0:
add 55 ; 'A' - 10
out (print_port), a
second_digit:
ld a, b
and #0f
cp a, 10
jp p, alpha_1
add 48
out (print_port), a
jp print_number_exit
alpha_1:
add 55 ; 'A' - 10
out (print_port), a
print_number_exit:
pop bc
ret
fail_text db "Test failed at checkpoint #"
db #00
fail_routine:
ld hl, fail_text
call print_sub ; print out boilerplate text
ld a, b
call print_number ; print out error number
ld a, #0a ; print carriage return
out (print_port), a
failed
;; macro to print out failure checkpoint number
fail_msg macro number ; fail with checkpoint number
ld b, number
jp fail_routine
endm
print_ns macro message ; print w/o using subroutine
push hl ; preserve existing regs
ld hl, msg\?
push bc
ld b, a
loop\?:
ld a, (hl)
cp #0
jp z, exit\?
out (print_port), a
inc hl
jp loop\?
pop hl
jp exit\?
msg\? db message
db #0a
db #00
exit\?:
ld a, b
pop bc
pop hl
endm
start:
print "Starting test"
ld a, 1
ld (pass_count),a
ld hl,error_cnt
ld (hl),a ;clear error count
call mem_init
nop_1: nop
nop
print "Starting ld tests"
ld_167: ld a,data_55
cp data_55
jr z,ld_1
fail_msg 167
ld_1: ld b,data_7f
ld a,data_7f
cp b
jr z,ld_2
fail_msg 1
ld_2: ld c,data_80
ld a,data_80
cp c
jr z,ld_3
fail_msg 2
ld_3: ld d,data_aa
ld a,data_aa
cp d
jr z,ld_4
fail_msg 3
ld_4: ld e,data_55
ld a,data_55
cp e
jr z,ld_5
fail_msg 4
ld_5: ld h,data_7f
ld a,data_7f
cp h
jr z,ld_6
fail_msg 5
ld_6: ld l,data_80
ld a,data_80
cp l
jr z,ld_7
fail_msg 6
ld_7: ld a,data_55
ld b,a
cp b
jr z,ld_8
fail_msg 7
ld_8: ld c,b
cp c
jr z,ld_9
fail_msg 8
ld_9: ld d,c
cp d
jr z,ld_10
fail_msg 9
ld_10: ld e,d
cp e
jr z,ld_11
fail_msg 10
ld_11: ld h,e
cp h
jr z,ld_12
fail_msg 11
ld_12: ld l,h
cp l
jr z,ld_13
fail_msg 12
ld_13: ld l,data_80
ld a,l
cp l
jr z,ld_14
fail_msg 13
ld_14: ld h,l
cp h
jr z,ld_15
fail_msg 14
ld_15: ld e,h
cp e
jr z,ld_16
fail_msg 15
ld_16: ld d,e
cp d
jr z,ld_17
fail_msg 16
ld_17: ld c,d
cp c
jr z,ld_18
fail_msg 17
ld_18: ld b,c
cp b
jr z,ld_19
fail_msg 18
ld_19: ld hl,var1
ld a,(hl)
cp data_ff
jr z,ld_20
fail_msg 19
ld_20: ld hl,var2
ld a,data_55
ld b,(hl)
cp b
jr z,ld_21
fail_msg 20
ld_21: ld hl,var1
ld c,(hl)
ld a,(hl)
cp c
jr z,ld_22
fail_msg 21
ld_22: ld hl,var2
ld d,(hl)
ld a,(hl)
cp d
jr z,ld_23
fail_msg 22
ld_23: ld hl,var1
ld e,(hl)
ld a,(hl)
cp e
jr z,ld_24
fail_msg 23
ld_24: ld hl,var2
ld a,(hl)
ld h,(hl)
cp h
jr z,ld_25
fail_msg 24
ld_25: ld hl,var1
ld a,(hl)
ld l,(hl)
cp l
jr z,ld_26
fail_msg 25
ld_26: ld ix,var3
ld a,(ix-2)
cp data_ff
jr z,ld_27
fail_msg 26
ld_27: ld a,(ix+2)
cp data_7f
jr z,ld_28
fail_msg 27
ld_28: ld a,(ix-1)
ld b,(ix-1)
cp b
jr z,ld_29
fail_msg 28
ld_29: cp data_55
jr z,ld_30
fail_msg 29
ld_30: ld a,(ix+1)
ld c,(ix+1)
cp c
jr z,ld_31
fail_msg 30
ld_31: cp data_aa
jr z,ld_32
fail_msg 31
ld_32: ld d,(ix-2)
ld a,(ix-2)
cp d
jr z,ld_33
fail_msg 32
ld_33: cp data_ff
jr z,ld_34
fail_msg 33
ld_34: ld e,(ix+2)
ld a,(ix+2)
cp e
jr z,ld_35
fail_msg 34
ld_35: cp data_7f
jr z,ld_36
fail_msg 35
ld_36: ld h,(ix+0)
ld a,(ix+0)
cp h
jr z,ld_37
fail_msg 36
ld_37: cp data_80
jr z,ld_38
fail_msg 37
ld_38: ld l,(ix-1)
ld a,(ix-1)
cp l
jr z,ld_39
fail_msg 38
ld_39: cp data_55
jr z,ld_40
fail_msg 39
ld_40: ld iy,var3
ld a,(iy-2)
cp data_ff
jr z,ld_41
fail_msg 40
ld_41: ld a,(iy+2)
cp data_7f
jr z,ld_42
fail_msg 41
ld_42: ld b,(iy-1)
ld a,(iy-1)
cp b
jr z,ld_43
fail_msg 42
ld_43: cp data_55
jr z,ld_44
fail_msg 43
ld_44: ld c,(iy+1)
ld a,(iy+1)
cp c
jr z,ld_45
fail_msg 44
ld_45: cp data_aa
jr z,ld_46
fail_msg 45
ld_46: ld d,(iy-2)
ld a,(iy-2)
cp d
jr z,ld_47
fail_msg 46
ld_47: cp data_ff
jr z,ld_48
fail_msg 47
ld_48: ld e,(iy+2)
ld a,(iy+2)
cp e
jr z,ld_49
fail_msg 48
ld_49: cp data_7f
jr z,ld_50
fail_msg 49
ld_50:
ld h,(iy+0)
ld a,(iy+0)
cp h
jr z,ld_51
fail_msg 50
ld_51: cp data_80
jr z,ld_52
fail_msg 51
ld_52: ld l,(iy-2)
ld a,(iy-2)
cp l
jr z,ld_53
fail_msg 52
ld_53: cp data_ff
jr z,ld_54
fail_msg 53
ld_54: ld hl,t_var1
ld a,data_aa+1
ld (hl),a
ld b,(hl)
cp b
jr z,ld_55
fail_msg 54
ld_55: cp data_aa+1
jr z,ld_56
fail_msg 55
ld_56: ld b,data_80+1
ld (hl),b
ld a,(hl)
cp b
jr z,ld_57
fail_msg 56
ld_57: cp data_80+1
jr z,ld_58
fail_msg 57
ld_58: ld c,data_55-1
ld (hl),c
ld a,(hl)
cp c
jr z,ld_59
fail_msg 58
ld_59: cp data_55-1
jr z,ld_60
fail_msg 59
ld_60: ld d,data_ff-1
ld (hl),d
ld a,(hl)
cp d
jr z,ld_61
fail_msg 60
ld_61: cp data_ff-1
jr z,ld_62
fail_msg 61
ld_62: ld e,data_55+1
ld (hl),e
ld a,(hl)
cp e
jr z,ld_63
fail_msg 62
ld_63: cp data_55+1
jr z,ld_64
fail_msg 63
ld_64: ld (hl),h
ld a,(hl)
cp h
jr z,ld_65
fail_msg 64
ld_65: cp #80 ;bjp guess >t_var1
jr z,ld_66
fail_msg 65
ld_66: ld (hl),l
ld a,(hl)
cp l
jr z,ld_67
fail_msg 66
ld_67: cp a, #00 ;bjp guess <t_var1
jr z,ld_68
fail_msg 67
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
fail_msg 68
ld_69: ld a,data_80
ld (ix+2),a
ld a,0
ld a,(ix+2)
cp data_80
jr z,ld_70
fail_msg 69
ld_70: ld b,data_7f
ld (ix-1),b
ld a,(ix-1)
cp b
jr z,ld_71
fail_msg 70
ld_71: cp data_7f
jr z,ld_72
fail_msg 71
ld_72: ld c,data_aa
ld (ix+1),c
ld a,(ix+1)
cp c
jr z,ld_73
fail_msg 72
ld_73: cp data_aa
jr z,ld_74
fail_msg 73
ld_74: ld d,data_80
ld (ix+0),d
ld a,(ix+0)
cp d
jr z,ld_75
fail_msg 74
ld_75: cp data_80
jr z,ld_76
fail_msg 75
ld_76: ld e,data_55+2
ld (ix-2),e
ld a,(ix-2)
cp e
jr z,ld_77
fail_msg 76
ld_77: cp data_55+2
jr z,ld_78
fail_msg 77
ld_78: ld h,data_aa-2
ld (ix+2),h
ld a,(ix+2)
cp h
jr z,ld_79
fail_msg 78
ld_79: cp data_aa-2
jr z,ld_80
fail_msg 79
ld_80: ld l,data_aa+2
ld (ix-1),l
ld a,(ix-1)
cp l
jr z,ld_81
fail_msg 80
ld_81: cp data_aa+2
jr z,ld_82
fail_msg 81
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
fail_msg 82
ld_83: ld a,data_7f
ld (iy+2),a
ld a,0
ld a,(iy+2)
cp data_7f
jr z,ld_84
fail_msg 83
ld_84: ld b,data_55
ld (iy-1),b
ld a,(iy-1)
cp b
jr z,ld_85
fail_msg 84
ld_85: cp data_55
jr z,ld_86
fail_msg 85
ld_86: ld c,data_aa
ld (iy+1),c
ld a,(iy+1)
cp c
jr z,ld_87
fail_msg 86
ld_87: cp data_aa
jr z,ld_88
fail_msg 87
ld_88: ld d,data_80
ld (iy+0),d
ld a,(iy+0)
cp d
jr z,ld_89
fail_msg 88
ld_89: cp data_80
jr z,ld_90
fail_msg 89
ld_90: ld e,data_ff-2
ld (iy-2),e
ld a,(iy-2)
cp e
jr z,ld_91
fail_msg 90
ld_91: cp data_ff-2
jr z,ld_92
fail_msg 91
ld_92: ld h,data_7f-3
ld (iy+2),h
ld a,(iy+2)
cp h
jr z,ld_93
fail_msg 92
ld_93: cp data_7f-3
jr z,ld_94
fail_msg 93
ld_94: ld l,data_55-5
ld (iy-1),l
ld a,(iy-1)
cp l
jr z,ld_95
fail_msg 94
ld_95: cp data_55-5
jr z,ld_96
fail_msg 95
ld_96: ld hl,t_var1
ld (hl),data_80+10
ld a,(hl)
cp data_80+10
jr z,ld_97
fail_msg 96
ld_97: ld ix,t_var3
ld (ix-2),data_55-10
ld a,(ix-2)
cp data_55-10
jr z,ld_98
fail_msg 97
ld_98: ld (ix+2),data_55+10
ld a,(ix+2)
cp data_55+10
jr z,ld_99
fail_msg 98
ld_99: ld iy,t_var2
ld (iy-1),data_80+17
ld a,(iy-1)
cp data_80+17
jr z,ld_100
fail_msg 99
ld_100:
ld (iy+1),data_80-17
ld a,(iy+1)
cp data_80-17
jr z,ld_101
fail_msg 100
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
fail_msg 101
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
fail_msg 102
ld_103: ld hl,t_var2
ld (hl),data_7f-25
ld a,(t_var2)
cp data_7f-25
jr z,ld_104
fail_msg 103
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
fail_msg 104
ld_105: ld a,b
cp data_55-20
jr z,ld_106
fail_msg 105
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
fail_msg 106
ld_107: ld a,c
cp data_55+20
jr z,ld_108
fail_msg 107
ld_108: ld hl,t_var4
ld a,data_ff-24
ld (t_var4),a
ld e,(hl)
cp e
jr z,ld_109
fail_msg 108
ld_109: ld a,e
cp data_ff-24
jr z,ld_110
fail_msg 109
; commented out ld_110 so test can continue
; may depend on side-effect in original Z80
ld_110: ld a, data_55
jp ld_125
;ld_110: ld a,data_55
; ld i,a
; ld a,0
; ld a,i
; jr nz,ld_111
; fail_msg 110
;ld_111: jp p,ld_112
; fail_msg 111
;ld_112: cp data_55
; jr z,ld_113
; fail_msg 112
;ld_113: ld a,data_80
; ld i,a
; ld a,0
; ld a,i
; jr nz,ld_114
; fail_msg 113
;ld_114: jp m,ld_115
; fail_msg 114
;ld_115: cp data_80
; jr z,ld_116
; fail_msg 115
;ld_116: ld a,0
; ld i,a
; ld a,data_55
; ld a,i
; jr z,ld_125
; fail_msg 116
; 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
fail_msg 125
ld_126: ld a, #34 ;bjp guess <data_1234
cp c
jr z,ld_127
fail_msg 126
ld_127: ld de,data_55aa
ld a,data_55
cp d
jr z,ld_128
fail_msg 127
ld_128: ld a,data_aa
cp e
jr z,ld_129
fail_msg 128
ld_129: ld hl,data_7fff
ld a,data_7f
cp h
jr z,ld_130
fail_msg 129
ld_130: ld a,data_ff
cp l
jr z,ld_131
fail_msg 130
ld_131: ld sp,data_aa55
ld hl,0
add hl,sp
ld a,data_aa
cp h
jr z,ld_132
fail_msg 131
ld_132: ld a,data_55
cp l
jr z,ld_133
fail_msg 132
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
fail_msg 133
ld_134: cp l
jr z,ld_135
fail_msg 134
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
fail_msg 135
ld_136: ld a,#34 ;bjp was >data_1234
cp l
jr z,ld_137
fail_msg 136
ld_137: ld hl,(w_var2)
ld a,data_55
cp h
jr z,ld_138
fail_msg 137
ld_138: ld a,data_aa
cp l
jr z,ld_139
fail_msg 138
ld_139: ld bc,(w_var1)
ld a,#12 ;bjp was >data_1234
cp b
jr z,ld_140
fail_msg 139
ld_140: ld a,#34 ;bjp was >data_1234
cp c
jr z,ld_141
fail_msg 140
ld_141: ld de,(w_var3)
ld a,data_7f
cp d
jr z,ld_142
fail_msg 141
ld_142: ld a,data_ff
cp e
jr z,ld_143
fail_msg 142
ld_143: ld hl,(w_var4)
ld a,data_80
cp h
jr z,ld_144
fail_msg 143
ld_144: ld a,0
cp l
jr z,ld_145
fail_msg 144
ld_145: ld sp,(w_var5)
ld hl,0
add hl,sp
ld a,data_aa
cp h
jr z,ld_146
fail_msg 145
ld_146: ld a,data_55
cp l
jr z,ld_147
fail_msg 146
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
fail_msg 147
ld_148: cp l
jr z,ld_149
fail_msg 148
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
fail_msg 149
ld_150:
ld sp, stack_end ; reset stack pointer to EOM
ld a,#34 ;bjp was >data_1234
cp l
jr z,ld_151
fail_msg 150
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
fail_msg 151
ld_152: ld a,#34 ;bjp was >data_1234
cp c
jr z,ld_153
fail_msg 152
ld_153: ld bc,data_55aa
ld (tw_var2),bc
ld hl,(tw_var2)
ld a,data_55
cp h
jr z,ld_154
fail_msg 153
ld_154: ld a,data_aa
cp l
jr z,ld_155
fail_msg 154
ld_155: ld de,data_7fff
ld (tw_var3),de
ld hl,(tw_var3)
ld a,data_7f
cp h
jr z,ld_156
fail_msg 155
ld_156: ld a,data_ff
cp l
jr z,ld_157
fail_msg 156
ld_157: ld hl,data_8000
ld (tw_var4),hl
ld bc,(tw_var4)
ld a,data_80
cp b
jr z,ld_158
fail_msg 157
ld_158: ld a,0
cp c
jr z,ld_159
fail_msg 158
ld_159: ld sp,data_aa55
ld (tw_var5),sp
ld hl,(tw_var5)
ld a,data_aa
cp h
jr z,ld_160
fail_msg 159
ld_160: ld a,data_55
cp l
jr z,ld_161
fail_msg 160
ld_161: ld ix,data_ffff
ld (tw_var6),ix
ld hl,(tw_var6)
ld a,data_ff
cp h
jr z,ld_162
fail_msg 161
ld_162: cp l
jr z,ld_163
fail_msg 162
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
fail_msg 163
ld_164: ld a,#34 ;bjp was >data_1234
cp l
jr z,ld_165
fail_msg 164
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
fail_msg 165
ld_166: ld a,data_aa
cp l
jr z,push_0
fail_msg 166
push_0: ld sp,stack_end
print "push_0"
ld bc,data_1234
push bc
ld bc,0
pop bc
ld a,#12 ;bjp was >data_1234
cp b
jr z,push_1
fail_msg 0
push_1: ld a,#34 ;bjp was >data_1234
cp c
jr z,push_2
fail_msg 1
push_2: ld de,data_55aa
push de
ld de,0
pop de
ld a,data_55
cp d
jr z,push_3
fail_msg 2
push_3: ld a,data_aa
cp e
jr z,push_4
fail_msg 3
push_4: ld hl,data_7fff
push hl
ld hl,0
pop hl
ld a,data_7f
cp h
jr z,push_5
fail_msg 4
push_5: ld a,data_ff
cp l
jr z,push_6
fail_msg 5
push_6: ld a,data_80
push af ;f depends on previous compare
ld hl,0
pop hl
cp h
jr z,push_7
fail_msg 6
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
fail_msg 8
push_9: jr z,push_10
fail_msg 9
push_10: jr c,push_11
fail_msg 10
push_11: cp data_55
jr z,push_12
fail_msg 11
push_12: ld ix,data_aa55
ld bc,0
push ix
pop bc
ld a,data_aa
cp b
jr z,push_13
fail_msg 12
push_13: ld a,data_55
cp c
jr z,push_14
fail_msg 13
push_14: ld iy,data_7fff
ld de,0
push iy
pop de
ld a,data_7f
cp d
jr z,push_15
fail_msg 14
push_15: ld a,data_ff
cp e
jr z,push_16
fail_msg 15
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
fail_msg 16
push_17: ld a,#34 ;bjp was >data_1234
cp l
jr z,push_18
fail_msg 17
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
fail_msg 18
push_19: ld a,data_aa
cp l
jr z,push_20
fail_msg 19
push_20: ld sp,stack_end
print "ex_0"
ex_0: ld de,data_1234
ld hl,data_ffff
ex de,hl
ld a,data_ff
cp d
jr z,ex_1
fail_msg 0
ex_1: cp e
jr z,ex_2
fail_msg 1
ex_2: ld a,#12 ;bjp was >data_1234
cp h
jr z,ex_3
fail_msg 2
ex_3: ld a,#34 ;bjp was >data_1234
cp l
jr z,ex_4
fail_msg 3
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
fail_msg 4
ex_5: ex af,af'
jp m,ex_6
fail_msg 5
ex_6: jr z,ex_7
fail_msg 6
ex_7: cp data_7f
jr z,ex_8
fail_msg 7
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
fail_msg 8
ex_9: cp l
jr z,ex_10
fail_msg 9
ex_10: cp d
jr z,ex_11
fail_msg 10
ex_11: cp e
jr z,ex_12
fail_msg 11
ex_12: cp b
jr z,ex_13
fail_msg 12
ex_13: cp c
jr z,ex_14
fail_msg 13
ex_14: exx
ld a,#12 ;bjp was >data_1234
cp h
jr z,ex_15
fail_msg 14
ex_15: ld a,#34 ;bjp was >data_1234
cp l
jr z,ex_16
fail_msg 15
ex_16: ld a,data_aa
cp d
jr z,ex_17
fail_msg 16
ex_17: ld a,data_55
cp e
jr z,ex_18
fail_msg 17
ex_18: ld a,data_7f
cp b
jr z,ex_19
fail_msg 18
ex_19: ld a,data_ff
cp c
jr z,ex_20
fail_msg 19
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
fail_msg 20
ex_21: ld a,data_ff
cp c
jr z,ex_22
fail_msg 21
ex_22: ld a,data_55
cp h
jr z,ex_23
fail_msg 22
ex_23: ld a,data_aa
cp l
jr z,ex_24
fail_msg 23
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
fail_msg 24
ex_25: ld a,0
cp c
jr z,ex_26
fail_msg 25
ex_26: ld a,data_ff
cp h
jr z,ex_27
fail_msg 26
ex_27: cp l
jr z,ex_28
fail_msg 27
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
fail_msg 28
ex_29: ld a,data_ff
cp c
jr z,ex_30
fail_msg 29
ex_30: ld a,#12 ;bjp was >data_1234
cp h
jr z,ex_31
fail_msg 30
ex_31: ld a,#34 ;bjp was >data_1234
cp l
jr z,add_0
fail_msg 31
add_0: ld sp,stack_end ; reset stack after EX operations
print "add_0"
ld a,0
ld b,data_7f
add a,b
cp data_7f
jr z,add_1
fail_msg 0
add_1: ld a,0
ld b,0
add a,b
jr z,add_2
fail_msg 1
add_2: ld b,data_55
add a,b
jr nz,add_3
fail_msg 2
add_3: cp data_55
jr z,add_4
fail_msg 3
add_4: ld a,data_ff
ld b,1
add a,b
jr c,add_5
fail_msg 4
add_5: add a,b
jr nc,add_6
fail_msg 5
add_6: ld a,data_ff
ld b,0
add a,b
jp m,add_7
fail_msg 6
add_7: ld b,1
add a,b
jp p,add_8
fail_msg 7
add_8: ld a,data_7f
ld b,1
add a,b
jp pe,add_9
fail_msg 8
add_9: add a,b
jp po,add_10
fail_msg 9
add_10: ld a,data_55
ld c,2
add a,c
cp data_55+2
jr z,add_11
fail_msg 10
add_11: ld a,data_80
add a,c
cp data_80+2
jr z,add_12
fail_msg 11
add_12: ld a,data_aa
ld d,data_55
add a,d
cp data_aa+data_55
jr z,add_13
fail_msg 12
add_13: ld a,data_aa
ld e,2
add a,e
cp data_aa+2
jr z,add_14
fail_msg 13
add_14: ld a,data_55
ld h,24
add a,h
cp data_55+24
jr z,add_15
fail_msg 14
add_15: ld a,data_7f-10
ld l,10
add a,l
cp data_7f
jr z,add_16
fail_msg 15
add_16: ld a,1
add a,data_7f
jp pe,add_17
fail_msg 16
add_17: jp m,add_18
fail_msg 17
add_18: jr nz,add_19
fail_msg 18
add_19: cp data_80
jr z,add_20
fail_msg 19
add_20: ld a,data_55
add a,1
jp po,add_21
fail_msg 20
add_21: jp p,add_22
fail_msg 21
add_22: jr nc,add_23
fail_msg 22
add_23: cp data_55+1
jr z,add_24
fail_msg 23
add_24: ld a,data_ff
add a,1
jr c,add_25
fail_msg 24
add_25: jr z,add_26
fail_msg 25
add_26: add a,1
jr nc,add_27
fail_msg 26
add_27: jr nz,add_28
fail_msg 27
add_28: cp 1
jr z,add_29
fail_msg 28
add_29: ld hl,var2
ld a,2
add a,(hl)
jp po,add_30
fail_msg 29
add_30: jp p,add_31
fail_msg 30
add_31: jr nz,add_32
fail_msg 31
add_32: jr nc,add_33
fail_msg 32
add_33: cp data_55+2
jr z,add_34
fail_msg 33
add_34: ld hl,var1
ld a,1
add a,(hl)
jr c,add_35
fail_msg 34
add_35: jr z,add_36
fail_msg 35
add_36: ld hl,var5
ld a,1
add a,(hl)
jp m,add_37
fail_msg 36
add_37: jp pe,add_38
fail_msg 37
add_38: cp data_80
jr z,add_39
fail_msg 38
add_39: ld ix,var3
ld a,1
add a,(ix-1)
jp po,add_40
fail_msg 39
add_40: jp p,add_41
fail_msg 40
add_41: jr nz,add_42
fail_msg 41
add_42: jr nc,add_43
fail_msg 42
add_43: cp data_55+1
jr z,add_44
fail_msg 43
add_44: ld a,1
add a,(ix+2)
jp pe,add_45
fail_msg 44
add_45: jp m,add_46
fail_msg 45
add_46: cp data_80
jr z,add_47
fail_msg 46
add_47: ld a,1
add a,(ix-2)
jr c,add_48
fail_msg 47
add_48: jr z,add_49
fail_msg 48
add_49: add a,1
jr nc,add_50
fail_msg 49
add_50: jr nz,add_51
fail_msg 50
add_51: cp 1
jr z,add_52
fail_msg 51
add_52: ld iy,var3
ld a,10
add a,(iy-1)
jp po,add_53
fail_msg 52
add_53: jp p,add_54
fail_msg 53
add_54: jr nz,add_55
fail_msg 54
add_55: jr nc,add_56
fail_msg 55
add_56: cp data_55+10
jr z,add_57
fail_msg 56
add_57: ld a,1
add a,(iy+2)
jp pe,add_58
fail_msg 57
add_58: jp m,add_59
fail_msg 58
add_59: add a,1
jp po,add_60
fail_msg 59
add_60: cp data_80+1
jr z,add_61
fail_msg 60
add_61: ld a,1
add a,(iy-2)
jr z,add_62
fail_msg 61
add_62: jr c,add_63
fail_msg 62
add_63: add a,1
jr nc,add_64
fail_msg 63
add_64: jr nz,add_65
fail_msg 64
add_65: cp 1
jr z,add_66
fail_msg 65
add_66: ld a,data_ff
add a,data_80
jp p,add_67
fail_msg 66
add_67: jp pe,add_68
fail_msg 67
add_68: jr c,add_69
fail_msg 68
add_69: add a,1
jp pe,add_70
fail_msg 69
add_70: jp m,add_71
fail_msg 70
add_71: jr nc,add_72
fail_msg 71
add_72: add a,1
jp po,add_73
fail_msg 72
add_73: cp data_80+1
jr z,adc_0
fail_msg 73
adc_0: nop
print "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
fail_msg 0
adc_1: jp po,adc_2
fail_msg 1
adc_2: jr nc,adc_3
fail_msg 2
adc_3: jr nz,adc_4
fail_msg 3
adc_4: ld b,1
adc a,b ;a=80 cry=0
jp pe,adc_5 ;jp ofl
fail_msg 4
adc_5: jp m,adc_6
fail_msg 5
adc_6: cp data_80
jr z,adc_7 ;z=0 ofl=0 cry=0 (borrow)
fail_msg 6
adc_7: ld a,data_ff
ld b,1
adc a,b ;ff+1+0
jr c,adc_8
fail_msg 7
adc_8: jr z,adc_9
fail_msg 8
adc_9: adc a,b
jr nc,adc_10
fail_msg 9
adc_10: jr nz,adc_11
fail_msg 10
adc_11: cp 2
jr z,adc_12
fail_msg 11
adc_12: ld a,data_ff
ld c,0
adc a,c
jp m,adc_13
fail_msg 12
adc_13: jr nc,adc_14
fail_msg 13
adc_14: ld c,2
adc a,c
jp p,adc_15
fail_msg 14
adc_15: jr c,adc_16
fail_msg 15
adc_16: ld c,0
adc a,c
cp 2
jr z,adc_17
fail_msg 16
adc_17: ld a,data_ff
ld d,1
adc a,d
jr c,adc_18
fail_msg 17
adc_18: ld d,0
adc a,d
jr nc,adc_19
fail_msg 18
adc_19: cp 1
jr z,adc_20
fail_msg 19
adc_20: ld a,data_aa
ld e,data_7f
adc a,e
jr c,adc_21
fail_msg 20
adc_21: ld e,#2b
adc a,e
cp data_55
jr z,adc_22
fail_msg 21
adc_22: ld a,data_ff
ld h,1
adc a,h
jr c,adc_23
fail_msg 22
adc_23: adc a,h
cp 2
jr z,adc_24
fail_msg 23
adc_24: ld a,data_ff
ld l,1
adc a,l
jr c,adc_25
fail_msg 24
adc_25: adc a,l
cp 2
jr z,adc_26
fail_msg 25
adc_26: ld a,0
adc a,data_7f
jp po,adc_27
fail_msg 26
adc_27: jp p,adc_28
fail_msg 27
adc_28: jr nc,adc_29
fail_msg 28
adc_29: jr nz,adc_30
fail_msg 29
adc_30: adc a,1
jp pe,adc_31
fail_msg 30
adc_31: jp m,adc_32
fail_msg 31
adc_32: cp data_80
jr z,adc_33
fail_msg 32
adc_33: ld a,data_ff
adc a,1
jr c,adc_34
fail_msg 33
adc_34: jr z,adc_35
fail_msg 34
adc_35: adc a,1
jr nc,adc_36
fail_msg 35
adc_36: jr nz,adc_37
fail_msg 36
adc_37: cp 2
jr z,adc_38
fail_msg 37
adc_38: ld hl,var5
ld a,0
adc a,(hl)
jp p,adc_39
fail_msg 38
adc_39: jp po,adc_40
fail_msg 39
adc_40: jr nz,adc_41
fail_msg 40
adc_41: jr nc,adc_42
fail_msg 41
adc_42: ld a,1
adc a,(hl)
jp m,adc_43
fail_msg 42
adc_43: jp pe,adc_44
fail_msg 43
adc_44: cp data_80
jr z,adc_45
fail_msg 44
adc_45: ld hl,var1
ld a,1
adc a,(hl)
jr z,adc_46
fail_msg 45
adc_46: jr c,adc_47
fail_msg 46
adc_47: ld hl,var2
adc a,(hl)
jr nc,adc_48
fail_msg 47
adc_48: jr nz,adc_49
fail_msg 48
adc_49: cp data_55+1
jr z,adc_50
fail_msg 49
adc_50: ld ix,var3
ld a,0
adc a,(ix+2)
jp p,adc_51
fail_msg 50
adc_51: jp po,adc_52
fail_msg 51
adc_52: jr nc,adc_53
fail_msg 52
adc_53: jr nz,adc_54
fail_msg 53
adc_54: ld a,1
adc a,(ix+2)
jp m,adc_55
fail_msg 54
adc_55: jp pe,adc_56
fail_msg 55
adc_56: cp data_80
jr z,adc_57
fail_msg 56
adc_57: ld a,1
adc a,(ix-2)
jr c,adc_58
fail_msg 57
adc_58: jr z,adc_59
fail_msg 58
adc_59: adc a,(ix-1)
jr nc,adc_60
fail_msg 59
adc_60: jr nz,adc_61
fail_msg 60
adc_61: cp data_55+1
jr z,adc_62
fail_msg 61
adc_62: ld iy,var3
ld a,0
adc a,(ix+2)
jp p,adc_63
fail_msg 62
adc_63: jp po,adc_64
fail_msg 63
adc_64: jr nc,adc_65
fail_msg 64
adc_65: jr nz,adc_66
fail_msg 65
adc_66: ld a,1
adc a,(iy+2)
jp m,adc_67
fail_msg 66
adc_67: jp pe,adc_68
fail_msg 67
adc_68: cp data_80
jr z,adc_69
fail_msg 68
adc_69: ld a,1
adc a,(iy-2)
jr c,adc_70
fail_msg 69
adc_70: jr z,adc_71
fail_msg 70
adc_71: adc a,(iy-1)
jr nc,adc_72
fail_msg 71
adc_72: jr nz,adc_73
fail_msg 72
adc_73: cp data_55+1
jr z,adc_74
fail_msg 73
adc_74: ld a,data_ff
add a,0
adc a,data_80
jp p,adc_75
fail_msg 74
adc_75: jp pe,adc_76
fail_msg 75
adc_76: jr nz,adc_77
fail_msg 76
adc_77: adc a,0
jp m,adc_78
fail_msg 77
adc_78: jp pe,adc_79
fail_msg 78
adc_79: adc a,1
jp po,adc_80
fail_msg 79
adc_80: cp data_80+1
jr z,sub_0
fail_msg 80
sub_0: nop
print "sub_0"
ld a,0
ld b,1
sub a,b
jp m,sub_1
fail_msg 0
sub_1: jp po,sub_2
fail_msg 1
sub_2: jr c,sub_3
fail_msg 2
sub_3: jr nz,sub_4
fail_msg 3
sub_4: sub a,b
jr nc,sub_5
fail_msg 4
sub_5: cp data_ff-1
jr z,sub_6
fail_msg 5
sub_6: ld a,1
ld b,0
sub a,b
jr nz,sub_7
fail_msg 6
sub_7: jp p,sub_8
fail_msg 7
sub_8: ld b,1
sub a,b
jr z,sub_9
fail_msg 8
sub_9: sub a,b
jp m,sub_10
fail_msg 9
sub_10: cp data_ff
jr z,sub_11
fail_msg 10
sub_11: ld a,data_80
ld b,data_7f
sub a,b
jp pe,sub_12
fail_msg 11
sub_12: sub a,b
jp po,sub_13
fail_msg 12
sub_13: cp data_80+2
jr z,sub_14
fail_msg 13
sub_14: ld a,data_55
ld c,data_55
sub a,c
jr z,sub_15
fail_msg 14
sub_15: ld c,1
sub a,c
jp m,sub_16
fail_msg 15
sub_16: jr c,sub_17
fail_msg 16
sub_17: cp data_ff
jr z,sub_18
fail_msg 17
sub_18: ld a,data_55
ld d,data_7f
sub a,d
jr c,sub_19
fail_msg 18
sub_19: cp data_55-data_7f
jr z,sub_20
fail_msg 19
sub_20: ld a,0
ld e,data_ff
sub a,e
jr c,sub_21
fail_msg 20
sub_21: cp 1
jr z,sub_22
fail_msg 21
sub_22: ld a,data_ff
ld h,data_80
sub a,h
jp p,sub_23
fail_msg 22
sub_23: cp data_7f
jr z,sub_24
fail_msg 23
sub_24: ld a,data_aa
ld l,data_ff
sub a,l
jr c,sub_25
fail_msg 24
sub_25: cp data_aa+1
jr z,sub_26
fail_msg 25
sub_26: ld a,data_7f
sub a,data_ff
jp pe,sub_27
fail_msg 26
sub_27: jp m,sub_28
fail_msg 27
sub_28: sub a,1
jp p,sub_29
fail_msg 28
sub_29: sub a,1
jp po,sub_30
fail_msg 29
sub_30: jr nz,sub_31
fail_msg 30
sub_31: sub a,data_7f-1
jr z,sub_32
fail_msg 31
sub_32: ld a,0
sub a,data_ff
jr c,sub_33
fail_msg 32
sub_33: sub a,1
jr z,sub_34
fail_msg 33
sub_34: jr nc,sub_35
fail_msg 34
sub_35: ld hl,var1
ld a,data_7f
sub a,(hl)
jp m,sub_36
fail_msg 35
sub_36: jp pe,sub_37
fail_msg 36
sub_37: jr c,sub_38
fail_msg 37
sub_38: ld hl,var3
sub a,(hl)
jp p,sub_39
fail_msg 38
sub_39: jp po,sub_40
fail_msg 39
sub_40: jr nc,sub_41
fail_msg 40
sub_41 jr z,sub_42
fail_msg 40
sub_42: ld hl,var2
sub a,(hl)
jr nz,sub_43
fail_msg 42
sub_43: cp data_aa+1
jr z,sub_44
fail_msg 43
sub_44: ld ix,var3
ld a,data_7f
sub a,(ix-2)
jp m,sub_45
fail_msg 44
sub_45: jp pe,sub_46
fail_msg 45
sub_46: jr c,sub_47
fail_msg 46
sub_47: sub a,(ix+0)
jp p,sub_48
fail_msg 47
sub_48: jp po,sub_49
fail_msg 48
sub_49: jr nc,sub_50
fail_msg 49
sub_50: jr z,sub_51
fail_msg 50
sub_51: sub a,(ix+2)
jr nz,sub_52
fail_msg 51
sub_52: cp data_80+1
jr z,sub_53
fail_msg 52
sub_53: ld iy,var3
ld a,data_7f
sub a,(iy-2)
jp m,sub_54
fail_msg 53
sub_54: jp pe,sub_55
fail_msg 54
sub_55: jr c,sub_56
fail_msg 55
sub_56: jr nz,sub_57
fail_msg 56
sub_57: sub a,(iy+0)
jp p,sub_58
fail_msg 57
sub_58: jp po,sub_59
fail_msg 58
sub_59: jr nc,sub_60
fail_msg 59
sub_60: jr z,sub_61
fail_msg 60
sub_61: sub a,(iy+2)
jr nz,sub_62
fail_msg 61
sub_62: cp data_80+1
jr z,sbc_0
fail_msg 62
sbc_0: nop
print "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
fail_msg 0
sbc_1: jp pe,sbc_2
fail_msg 1
sbc_2: jr c,sbc_3
fail_msg 2
sbc_3: jr nz,sbc_4
fail_msg 3
sbc_4: ld b,data_7f
sbc a,b
jp p,sbc_5
fail_msg 4
sbc_5: jp pe,sbc_6
fail_msg 5
sbc_6: jr nc,sbc_7
fail_msg 6
sbc_7: jr z,sbc_8
fail_msg 7
sbc_8: ld b,data_ff
sbc a,b
jp po,sbc_9
fail_msg 8
sbc_9: jr nz,sbc_10
fail_msg 9
sbc_10: ld b,0
sbc a,b
jr z,sbc_11
fail_msg 10
sbc_11: ld a,data_aa
ld c,data_ff
sbc a,c
jr c,sbc_12
fail_msg 11
sbc_12: ld c,0
sbc a,c
jr nc,sbc_13
fail_msg 12
sbc_13: cp data_aa
jr z,sbc_14
fail_msg 13
sbc_14: ld a,data_55
ld d,data_ff
sbc a,d
jr c,sbc_15
fail_msg 14
sbc_15: ld d,0
sbc a,d
jr nc,sbc_16
fail_msg 15
sbc_16: cp data_55
jr z,sbc_17
fail_msg 16
sbc_17: ld a,data_aa
ld e,data_ff
sbc a,e
jr c,sbc_18
fail_msg 17
sbc_18: ld e,0
sbc a,e
jr nc,sbc_19
fail_msg 18
sbc_19: cp data_aa
jr z,sbc_20
fail_msg 19
sbc_20: ld a,data_55
ld h,data_ff
sbc a,h
jr c,sbc_21
fail_msg 20
sbc_21: ld h,0
sbc a,h
jr nc,sbc_22
fail_msg 21
sbc_22: cp data_55
jr z,sbc_23
fail_msg 22
sbc_23: ld a,data_aa
ld l,data_ff
sbc a,l
jr c,sbc_24
fail_msg 23
sbc_24: ld l,0
sbc a,l
jr nc,sbc_25
fail_msg 24
sbc_25: cp data_aa
jr z,sbc_26
fail_msg 25
sbc_26: ld a,data_7f
sbc a,data_ff
jp m,sbc_27
fail_msg 26
sbc_27: jp pe,sbc_28
fail_msg 27
sbc_28: jr c,sbc_29
fail_msg 28
sbc_29: jr nz,sbc_30
fail_msg 29
sbc_30: sbc a,data_7f
jp p,sbc_31
fail_msg 30
sbc_31: jp pe,sbc_32
fail_msg 31
sbc_32: jr nc,sbc_33
fail_msg 32
sbc_33: jr z,sbc_34
fail_msg 33
sbc_34: sbc a,data_ff
jr nz,sbc_35
fail_msg 34
sbc_35: cp 1
jr z,sbc_36
fail_msg 35
sbc_36: ld hl,var1
ld a,data_7f
sbc a,(hl)
jp m,sbc_37
fail_msg 36
sbc_37: jp pe,sbc_38
fail_msg 37
sbc_38: jr c,sbc_39
fail_msg 38
sbc_39: jr nz,sbc_40
fail_msg 39
sbc_40: ld hl,var5
sbc a,(hl)
jp p,sbc_41
fail_msg 40
sbc_41: jp pe,sbc_42
fail_msg 41
sbc_42: jr nc,sbc_43
fail_msg 42
sbc_43: jr z,sbc_44
fail_msg 43
sbc_44: ld hl,var2
sbc a,(hl)
jr nz,sbc_45
fail_msg 44
sbc_45: cp data_aa+1
jr z,sbc_46
fail_msg 45
sbc_46: ld ix,var3
ld a,data_7f
sbc a,(ix-2)
jp m,sbc_47
fail_msg 46
sbc_47: jp pe,sbc_48
fail_msg 47
sbc_48: jr c,sbc_49
fail_msg 48
sbc_49: jr nz,sbc_50
fail_msg 49
sbc_50: sbc a,(ix+2)
jp p,sbc_51
fail_msg 50
sbc_51: jp pe,sbc_52
fail_msg 51
sbc_52: jr nc,sbc_53
fail_msg 52
sbc_53: jr z,sbc_54
fail_msg 53
sbc_54: sbc a,(ix-1)
jr nz,sbc_55
fail_msg 54
sbc_55: cp data_aa+1
jr z,sbc_56
fail_msg 55
sbc_56: ld iy,var3
ld a,data_7f
sbc a,(ix-2)
jp m,sbc_57
fail_msg 56
sbc_57: jp pe,sbc_58
fail_msg 57
sbc_58: jr c,sbc_59
fail_msg 58
sbc_59: jr nz,sbc_60
fail_msg 59
sbc_60: sbc a,(ix+2)
jp p,sbc_61
fail_msg 60
sbc_61: jp pe,sbc_62
fail_msg 61
sbc_62: jr nc,sbc_63
fail_msg 62
sbc_63: jr z,sbc_64
fail_msg 63
sbc_64: sbc a,(ix+1)
jr nz,sbc_65
fail_msg 64
sbc_65: cp data_55+1
jr z,and_0
fail_msg 65
and_0: nop
print "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
fail_msg 0
and_1: jp m,and_2
fail_msg 1
and_2: jp pe,and_3
fail_msg 2
and_3: jr nz,and_4
fail_msg 3
and_4: ld b,data_55
and a,b
jp p,and_5
fail_msg 4
and_5: jr z,and_6
fail_msg 5
and_6: ld a,data_ff
ld b,data_7f
and a,b
jp po,and_7
fail_msg 6
and_7: ld b,data_55
and a,b
jp pe,and_8
fail_msg 7
and_8: ld a,data_ff
ld c,data_80
and a,c
jp m,and_9
fail_msg 8
and_9: cp data_80
jr z,and_10
fail_msg 9
and_10: ld a,data_ff
ld d,data_7f
and a,d
jp p,and_11
fail_msg 10
and_11: cp data_7f
jr z,and_12
fail_msg 11
and_12: ld a,data_ff
ld e,data_aa
and a,e
jp m,and_13
fail_msg 12
and_13: cp data_aa
jr z,and_14
fail_msg 13
and_14: ld a,data_ff
ld h,data_55
and a,h
jp p,and_15
fail_msg 14
and_15: cp data_55
jr z,and_16
fail_msg 15
and_16: ld a,data_ff
ld l,data_aa
and a,l
jp m,and_17
fail_msg 16
and_17: cp data_aa
jr z,and_18
fail_msg 17
and_18: ld a,data_ff
and a,data_aa
jp m,and_19
fail_msg 18
and_19: jr nz,and_20
fail_msg 19
and_20: and a,data_55
jp p,and_21
fail_msg 20
and_21: jr z,and_22
fail_msg 21
and_22: ld a,data_ff
and a,data_7f
jp po,and_23
fail_msg 22
and_23: and a,data_55
jp pe,and_24
fail_msg 23
and_24: jr nz,and_25
fail_msg 24
and_25: and a,data_aa
jr z,and_26
fail_msg 25
and_26: ld a,data_ff
and a,data_aa
cp data_aa
jr z,and_27
fail_msg 26
and_27: ld hl,var4
ld a,data_ff
and a,(hl)
jp m,and_28
fail_msg 27
and_28: jr nz,and_29
fail_msg 28
and_29: ld hl,var2
and a,(hl)
jp p,and_30
fail_msg 29
and_30: jr z,and_31
fail_msg 30
and_31: ld a,data_ff
ld hl,var5
and a,(hl)
jp po,and_32
fail_msg 31
and_32: ld hl,var2
and a,(hl)
jp pe,and_33
fail_msg 32
and_33: cp data_55
jr z,and_34
fail_msg 33
and_34: ld ix,var3
ld a,data_ff
and a,(ix+1)
jp m,and_35
fail_msg 34
and_35: jr nz,and_36
fail_msg 35
and_36: and a,(ix-1)
jp p,and_37
fail_msg 36
and_37: jr z,and_38
fail_msg 37
and_38: ld a,data_ff
and a,(ix+2)
jp po,and_39
fail_msg 38
and_39: and a,(ix-1)
jp pe,and_40
fail_msg 39
and_40: cp data_55
jr z,and_41
fail_msg 40
and_41: ld iy,var3
ld a,data_ff
and a,(iy+1)
jp m,and_42
fail_msg 41
and_42: jr nz,and_43
fail_msg 42
and_43: and a,(iy-1)
jp p,and_44
fail_msg 43
and_44: jr z,and_45
fail_msg 44
and_45: ld a,data_ff
and a,(iy+2)
jp po,and_46
fail_msg 45
and_46: and a,(iy-1)
jp pe,and_47
fail_msg 46
and_47: cp data_55
jr z,or_0
fail_msg 47
or_0: nop
print "or_0"
ld a,0
ld b,data_7f
or a,b
jp p,or_1
fail_msg 0
or_1: jp po,or_2
fail_msg 1
or_2: ld b,data_80
or a,b
jp m,or_3
fail_msg 2
or_3: jp pe,or_4
fail_msg 3
or_4: cp data_ff
jr z,or_5
fail_msg 4
or_5: ld a,0
ld b,0
or a,b
jr z,or_6
fail_msg 5
or_6: ld b,data_55
or a,b
jr nz,or_7
fail_msg 6
or_7: cp data_55
jr z,or_8
fail_msg 7
or_8: ld a,data_ff
add a,1
jr c,or_9
fail_msg 8
or_9: ld b,data_7f
or a,b
jr nc,or_10
fail_msg 9
or_10: cp data_7f
jr z,or_11
fail_msg 10
or_11: ld a,0
ld c,data_55
or a,c
cp data_55
jr z,or_12
fail_msg 11
or_12: ld c,data_aa
or a,c
cp data_ff
jr z,or_13
fail_msg 12
or_13: ld a,0
ld d,data_aa
or a,d
cp data_aa
jr z,or_14
fail_msg 13
or_14: ld e,data_55
or a,e
cp data_ff
jr z,or_15
fail_msg 14
or_15: ld a,0
ld h,data_80
or a,h
cp data_80
jr z,or_16
fail_msg 15
or_16: ld l,data_7f
or a,l
cp data_ff
jr z,or_17
fail_msg 16
or_17: ld a,0
or a,data_7f
jp p,or_18
fail_msg 17
or_18: jp po,or_19
fail_msg 18
or_19: or a,data_80
jp m,or_20
fail_msg 19
or_20: jp pe,or_21
fail_msg 20
or_21: cp data_ff
jr z,or_22
fail_msg 21
or_22: ld a,0
or a,0
jr z,or_23
fail_msg 22
or_23: or a,data_7f
jr nz,or_24
fail_msg 23
or_24: ld a,data_ff
add a,1
jr c,or_25
fail_msg 24
or_25: or a,data_55
jr nc,or_26
fail_msg 25
or_26: cp data_55
jr z,or_27
fail_msg 26
or_27: ld hl,var5
ld a,0
or a,(hl)
jp p,or_28
fail_msg 27
or_28: jp po,or_29
fail_msg 28
or_29: ld hl,var3
or a,(hl)
jp m,or_30
fail_msg 29
or_30: jp pe,or_31
fail_msg 30
or_31: cp data_ff
jr z,or_32
fail_msg 31
or_32: ld hl,t_var1
ld a,0
ld (hl),a
or a,(hl)
jr z,or_33
fail_msg 32
or_33: ld hl,var2
or a,(hl)
jr nz,or_34
fail_msg 33
or_34: cp data_55
jr z,or_35
fail_msg 34
or_35: ld ix,var3
ld a,0
or a,(ix+2)
jp p,or_36
fail_msg 35
or_36: jp po,or_37
fail_msg 36
or_37: or a,(ix+0)
jp m,or_38
fail_msg 37
or_38: jp pe,or_39
fail_msg 38
or_39: cp data_ff
jr z,or_40
fail_msg 39
or_40: ld ix,t_var3
ld a,0
ld (ix-2),a
or a,(ix-2)
jr z,or_41
fail_msg 40
or_41: ld (ix+2),data_aa
or a,(ix+2)
jr nz,or_42
fail_msg 41
or_42: cp data_aa
jr z,or_43
fail_msg 42
or_43: ld iy,var3
ld a,0
or a,(iy+2)
jp p,or_44
fail_msg 43
or_44: jp po,or_45
fail_msg 44
or_45: or a,(iy+0)
jp m,or_46
fail_msg 45
or_46: jp pe,or_47
fail_msg 46
or_47: cp data_ff
jr z,or_48
fail_msg 47
or_48: ld iy,t_var3
ld a,0
ld (iy-2),a
or a,(iy-2)
jr z,or_49
fail_msg 48
or_49: ld (iy+2),data_55
or a,(iy+2)
jr nz,or_50
fail_msg 49
or_50: cp data_55
jr z,xor_0
fail_msg 50
xor_0: nop
print "xor_0"
ld a,data_ff
ld b,data_55
xor a,b
jp m,xor_1
fail_msg 0
xor_1: jp pe,xor_2
fail_msg 1
xor_2: ld b,data_80
xor a,b
jp p,xor_3
fail_msg 2
xor_3: jp po,xor_4
fail_msg 3
xor_4: cp #2a
jr z,xor_5
fail_msg 4
xor_5: ld a,data_ff
ld b,data_ff
xor a,b
jr z,xor_6
fail_msg 5
xor_6: ld b,data_55
xor a,b
jr nz,xor_7
fail_msg 6
xor_7: cp data_55
jr z,xor_8
fail_msg 7
xor_8: ld a,data_ff
add a,1
jr c,xor_9
fail_msg 8
xor_9: ld b,data_aa
xor a,b
jr nc,xor_10
fail_msg 9
xor_10: cp data_aa
jr z,xor_11
fail_msg 10
xor_11: ld a,data_ff
ld c,data_7f
xor a,c
jp m,xor_12
fail_msg 11
xor_12: cp data_80
jr z,xor_13
fail_msg 12
xor_13: ld a,data_ff
ld d,data_55
xor a,d
jp m,xor_14
fail_msg 13
xor_14: cp data_aa
jr z,xor_15
fail_msg 14
xor_15: ld e,data_55
xor a,e
jp m,xor_16
fail_msg 15
xor_16: cp data_ff
jr z,xor_17
fail_msg 16
xor_17: ld a,data_ff
ld h,data_7f
xor a,h
jp po,xor_18
fail_msg 17
xor_18: ld l,data_7f
xor a,l
jp pe,xor_19
fail_msg 18
xor_19: cp data_ff
jr z,xor_20
fail_msg 19
xor_20: ld a,data_ff
add a,1
jr c,xor_21
fail_msg 20
xor_21: ld b,data_7f
xor a,b
jr nc,xor_22
fail_msg 21
xor_22: cp data_7f
jr z,xor_23
fail_msg 22
xor_23: ld a,data_ff
xor a,data_7f
jp po,xor_24
fail_msg 23
xor_24: jp m,xor_25
fail_msg 24
xor_25: xor a,data_7f
jp pe,xor_26
fail_msg 25
xor_26: jp m,xor_27
fail_msg 26
xor_27: xor a,data_aa
jp p,xor_28
fail_msg 27
xor_28: cp data_55
jr z,xor_29
fail_msg 28
xor_29: ld a,data_ff
xor a,data_ff
jr z,xor_30
fail_msg 29
xor_30: xor a,data_80
jr nz,xor_31
fail_msg 30
xor_31: cp data_80
jr z,xor_32
fail_msg 31
xor_32: ld hl,var5
ld a,data_ff
xor a,(hl)
jp m,xor_33
fail_msg 32
xor_33: jp po,xor_34
fail_msg 33
xor_34: xor a,(hl)
jp m,xor_35
fail_msg 34
xor_35: jp pe,xor_36
fail_msg 35
xor_36: ld hl,var3
xor a,(hl)
jp p,xor_37
fail_msg 36
xor_37: cp data_7f
jr z,xor_38
fail_msg 37
xor_38: ld hl,var1
ld a,data_ff
xor a,(hl)
jr z,xor_39
fail_msg 38
xor_39: ld hl,var2
xor a,(hl)
jr nz,xor_40
fail_msg 39
xor_40: cp data_55
jr z,xor_41
fail_msg 40
xor_41: ld ix,var3
ld a,data_ff
xor a,(ix+2)
jp m,xor_42
fail_msg 41
xor_42: jp po,xor_43
fail_msg 42
xor_43: xor a,(ix+2)
jp m,xor_44
fail_msg 43
xor_44: jp pe,xor_45
fail_msg 44
xor_45: xor a,(ix+1)
jp p,xor_46
fail_msg 45
xor_46: cp data_55
jr z,xor_47
fail_msg 46
xor_47: ld a,data_ff
xor a,(ix-2)
jr z,xor_48
fail_msg 47
xor_48: xor a,(ix+1)
jr nz,xor_49
fail_msg 48
xor_49: cp data_aa
jr z,xor_50
fail_msg 49
xor_50: ld iy,var3
ld a,data_ff
xor a,(iy+2)
jp m,xor_51
fail_msg 50
xor_51: jp po,xor_52
fail_msg 51
xor_52: xor a,(iy+2)
jp m,xor_53
fail_msg 52
xor_53: jp pe,xor_54
fail_msg 53
xor_54: xor a,(iy+1)
jp p,xor_55
fail_msg 54
xor_55: cp data_55
jr z,xor_56
fail_msg 55
xor_56: ld a,data_ff
xor a,(iy-2)
jr z,xor_57
fail_msg 56
xor_57: xor a,(iy-1)
jr nz,xor_58
fail_msg 57
xor_58: cp data_55
jr z,cp_0
fail_msg 58
cp_0: nop
print "cp_0"
ld a,0
ld b,0
cp a,b
jr z,cp_1
fail_msg 0
cp_1: jp p,cp_2
fail_msg 1
cp_2: jr nc,cp_3
fail_msg 2
cp_3: ld b,data_55
cp a,b
jr nz,cp_4
fail_msg 3
cp_4: jp m,cp_5
fail_msg 4
cp_5: jr c,cp_6
fail_msg 5
cp_6: ld a,data_80
ld b,data_7f
cp a,b
jp pe,cp_7
fail_msg 6
cp_7: jr nc,cp_8
fail_msg 7
cp_8: ld a,data_7f
ld b,data_80
cp a,b
jp pe,cp_9
fail_msg 8
cp_9: jr c,cp_10
fail_msg 9
cp_10: ld b,0
cp a,b
jp po,cp_11
fail_msg 10
cp_11: jr nc,cp_12
fail_msg 11
cp_12: ld a,data_80
ld c,0
cp a,c
jp m,cp_13
fail_msg 12
cp_13: ld c,data_80
cp a,c
jr z,cp_14
fail_msg 13
cp_14: ld a,data_7f
ld d,data_55
cp a,d
jp p,cp_15
fail_msg 14
cp_15: jr nz,cp_16
fail_msg 15
cp_16: ld e,data_7f
cp a,e
jr z,cp_17
fail_msg 16
cp_17: ld a,data_80
ld h,data_ff
cp a,h
jp m,cp_18
fail_msg 17
cp_18: jr c,cp_19
fail_msg 18
cp_19: ld l,data_80
cp a,l
jr z,cp_20
fail_msg 19
cp_20: ld a,data_80
cp a,data_7f
jp p,cp_21
fail_msg 20
cp_21: jp pe,cp_22
fail_msg 21
cp_22: jr nz,cp_23
fail_msg 22
cp_23: cp a,data_80
jp p,cp_24
fail_msg 23
cp_24: jp po,cp_25
fail_msg 24
cp_25: jr z,cp_26
fail_msg 25
cp_26: ld a,data_55
cp a,data_7f
jr c,cp_27
fail_msg 26
cp_27: jp m,cp_28
fail_msg 27
cp_28: cp a,data_55
jr nc,cp_29
fail_msg 28
cp_29: jr z,cp_30
fail_msg 29
cp_30: ld a,data_80
ld hl,var5
cp a,(hl)
jp p,cp_31
fail_msg 30
cp_31: jp pe,cp_32
fail_msg 31
cp_32: jr nz,cp_33
fail_msg 32
cp_33: ld hl,var3
cp a,(hl)
jp p,cp_34
fail_msg 33
cp_34: jp po,cp_35
fail_msg 34
cp_35: jr z,cp_36
fail_msg 35
cp_36: ld a,data_55
ld hl,var5
cp a,(hl)
jr c,cp_37
fail_msg 36
cp_37: jp m,cp_38
fail_msg 37
cp_38: ld hl,var2
cp a,(hl)
jr nc,cp_39
fail_msg 38
cp_39: jp p,cp_40
fail_msg 39
cp_40: jr z,cp_41
fail_msg 40
cp_41: ld a,data_80
ld ix,var3
cp a,(ix+2)
jp p,cp_42
fail_msg 41
cp_42: jp pe,cp_43
fail_msg 42
cp_43: jr nz,cp_44
fail_msg 43
cp_44: cp a,(ix+0)
jp p,cp_45
fail_msg 44
cp_45: jp po,cp_46
fail_msg 45
cp_46: jr z,cp_47
fail_msg 46
cp_47: ld a,data_55
cp a,(ix-2)
jr nz,cp_48
fail_msg 47
cp_48: jr c,cp_49
fail_msg 48
cp_49: cp a,(ix-1)
jr z,cp_50
fail_msg 49
cp_50: jr nc,cp_51
fail_msg 50
cp_51: ld iy,var3
ld a,data_80
cp a,(iy+2)
jp p,cp_52
fail_msg 51
cp_52: jp pe,cp_53
fail_msg 52
cp_53: jr nz,cp_54
fail_msg 53
cp_54: cp a,(iy+0)
jp p,cp_55
fail_msg 54
cp_55: jp po,cp_56
fail_msg 55
cp_56: jr z,cp_57
fail_msg 56
cp_57: ld a,data_55
cp a,(iy-2)
jr nz,cp_58
fail_msg 57
cp_58: jr c,cp_59
fail_msg 58
cp_59: cp a,(iy-1)
jr z,cp_60
fail_msg 59
cp_60: jr nc,inc_0
fail_msg 60
inc_0: nop
print "inc"
ld a,data_7f
cp a,data_7f
jr z,inc_1
fail_msg 0
inc_1: inc a
jp pe,inc_2
fail_msg 1
inc_2: jp m,inc_3
fail_msg 2
inc_3: jr nz,inc_4
fail_msg 3
inc_4: ld a,data_55
inc a
jp po,inc_5
fail_msg 4
inc_5: jp p,inc_6
fail_msg 5
inc_6: cp a,data_55+1
jr z,inc_7
fail_msg 6
inc_7: ld a,data_ff-1
inc a
jr nz,inc_8
fail_msg 7
inc_8: jp m,inc_9
fail_msg 8
inc_9: inc a
jr z,inc_10
fail_msg 9
inc_10: ld b,data_aa
inc b
jp m,inc_11
fail_msg 10
inc_11: ld a,b
cp a,data_aa+1
jr z,inc_12
fail_msg 11
inc_12: ld c,data_80
inc c
jp m,inc_13
fail_msg 12
inc_13: ld a,c
cp a,data_80+1
jr z,inc_14
fail_msg 13
inc_14: ld d,data_ff
inc d
jr z,inc_15
fail_msg 14
inc_15: ld e,data_55
inc e
jp p,inc_16
fail_msg 15
inc_16: ld a,e
cp a,data_55+1
jr z,inc_17
fail_msg 16
inc_17: ld h,data_7f
inc h
jp pe,inc_18
fail_msg 17
inc_18: ld a,h
cp a,data_80
jr z,inc_19
fail_msg 18
inc_19: ld l,data_aa
inc l
jp m,inc_20
fail_msg 19
inc_20: ld a,l
cp a,data_aa+1
jr z,inc_21
fail_msg 20
inc_21: ld hl,t_var1
ld a,data_7f
ld (hl),a
cp a,(hl)
jr z,inc_22
fail_msg 21
inc_22: inc (hl)
jp m,inc_23
fail_msg 22
inc_23: jp pe,inc_24
fail_msg 23
inc_24: ld a,data_55
ld (hl),a
inc (hl)
jp p,inc_25
fail_msg 24
inc_25: jp po,inc_26
fail_msg 25
inc_26: ld a,(hl)
cp a,data_55+1
jr z,inc_27
fail_msg 26
inc_27: ld a,data_ff
ld (hl),a
inc (hl)
jr z,inc_28
fail_msg 27
inc_28: inc (hl)
jr nz,inc_29
fail_msg 28
inc_29: ld a,(hl)
cp a,1
jr z,inc_30
fail_msg 29
inc_30: ld a,data_aa
ld (hl),a
inc (hl)
jp m,inc_31
fail_msg 30
inc_31: ld a,(hl)
cp a,data_aa+1
jr z,inc_32
fail_msg 31
inc_32: ld ix,t_var3
ld a,data_7f
ld (ix-2),a
cp a,data_7f
jr z,inc_33
fail_msg 32
inc_33: inc (ix-2)
jp m,inc_34
fail_msg 33
inc_34: jp pe,inc_35
fail_msg 34
inc_35: ld a,data_55
ld (ix+2),a
inc (ix+2)
jp p,inc_36
fail_msg 35
inc_36: jp po,inc_37
fail_msg 36
inc_37: ld a,(ix+2)
cp a,data_55+1
jr z,inc_38
fail_msg 37
inc_38: ld a,data_ff
ld (ix-1),a
inc (ix-1)
jr z,inc_39
fail_msg 38
inc_39: inc (ix-1)
jr nz,inc_40
fail_msg 39
inc_40: ld a,(ix-1)
cp a,1
jr z,inc_41
fail_msg 40
inc_41: ld a,data_aa
ld (ix+1),a
inc (ix+1)
jp m,inc_42
fail_msg 41
inc_42: ld a,(ix+1)
cp a,data_aa+1
jr z,inc_43
fail_msg 42
inc_43: ld iy,t_var3
ld a,data_7f
ld (iy+2),a
cp a,data_7f
jr z,inc_44
fail_msg 43
inc_44: inc (iy+2)
jp m,inc_45
fail_msg 44
inc_45: jp pe,inc_46
fail_msg 45
inc_46: ld a,data_55
ld (iy-2),a
inc (iy-2)
jp p,inc_47
fail_msg 46
inc_47: jp po,inc_48
fail_msg 47
inc_48: ld a,(iy-2)
cp a,data_55+1
jr z,inc_49
fail_msg 48
inc_49: ld a,data_ff
ld (iy+1),a
inc (iy+1)
jr z,inc_50
fail_msg 49
inc_50: inc (iy+1)
jr nz,inc_51
fail_msg 50
inc_51: ld a,(iy+1)
cp a,1
jr z,inc_52
fail_msg 51
inc_52: ld a,data_80
ld (iy-1),a
inc (iy-1)
jp m,inc_53
fail_msg 52
inc_53: ld a,(iy-1)
cp a,data_80+1
jr z,dec_0
fail_msg 53
dec_0: nop
print "dec"
ld a,data_80
cp a,data_80
jr z,dec_1
fail_msg 0
dec_1: dec a
jp p,dec_2
fail_msg 1
dec_2: jp pe,dec_3
fail_msg 2
dec_3: ld a,0
dec a
jp m,dec_4
fail_msg 3
dec_4: jp po,dec_5
fail_msg 4
dec_5: cp a,data_ff
jr z,dec_6
fail_msg 5
dec_6: ld a,1
dec a
jr z,dec_7
fail_msg 6
dec_7: dec a
jr nz,dec_8
fail_msg 7
dec_8: cp a,data_ff
jr z,dec_9
fail_msg 8
dec_9: ld a,data_aa
dec a
cp a,data_aa-1
jr z,dec_10
fail_msg 9
dec_10: ld b,data_7f
dec b
ld a,b
cp a,data_7f-1
jr z,dec_11
fail_msg 10
dec_11: ld c,data_55
dec c
ld a,c
cp a,data_55-1
jr z,dec_12
fail_msg 11
dec_12: ld d,data_aa
dec d
ld a,d
cp a,data_aa-1
jr z,dec_13
fail_msg 12
dec_13: ld e,data_80
dec e
ld a,e
cp a,data_80-1
jr z,dec_14
fail_msg 13
dec_14: ld h,data_ff
dec h
ld a,h
cp a,data_ff-1
jr z,dec_15
fail_msg 14
dec_15: ld l,data_55
dec l
ld a,l
cp a,data_55-1
jr z,dec_16
fail_msg 15
dec_16: ld hl,t_var5
ld a,data_80
ld (hl),a
cp a,(hl)
jr z,dec_17
fail_msg 16
dec_17: dec (hl)
jp p,dec_18
fail_msg 17
dec_18: jp pe,dec_19
fail_msg 18
dec_19: ld a,0
ld (hl),a
dec (hl)
jp m,dec_20
fail_msg 19
dec_20: jp po,dec_21
fail_msg 20
dec_21: ld a,(hl)
cp a,data_ff
jr z,dec_22
fail_msg 21
dec_22: ld a,1
ld (hl),a
dec (hl)
jr z,dec_23
fail_msg 22
dec_23: dec (hl)
jr nz,dec_24
fail_msg 23
dec_24: ld a,(hl)
cp a,data_ff
jr z,dec_25
fail_msg 24
dec_25: ld a,data_aa
ld (hl),a
dec (hl)
ld a,(hl)
cp a,data_aa-1
jr z,dec_26
fail_msg 25
dec_26: ld ix,t_var3
ld a,data_80
ld (ix-2),a
cp a,(ix-2)
jr z,dec_27
fail_msg 26
dec_27: dec (ix-2)
jp p,dec_28
fail_msg 27
dec_28: jp pe,dec_29
fail_msg 28
dec_29: ld a,0
ld (ix+2),a
dec (ix+2)
jp m,dec_30
fail_msg 29
dec_30: jp po,dec_31
fail_msg 30
dec_31: ld a,(ix+2)
cp a,data_ff
jr z,dec_32
fail_msg 31
dec_32: ld a,1
ld (ix-1),a
dec (ix-1)
jr z,dec_33
fail_msg 32
dec_33: dec (ix-1)
jr nz,dec_34
fail_msg 33
dec_34: ld a,(ix-1)
cp a,data_ff
jr z,dec_35
fail_msg 34
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
fail_msg 35
dec_36: ld iy,t_var3
ld a,data_80
ld (iy-2),a
cp a,(iy-2)
jr z,dec_37
fail_msg 36
dec_37: dec (iy-2)
jp p,dec_38
fail_msg 37
dec_38: jp pe,dec_39
fail_msg 38
dec_39: ld a,0
ld (iy+2),a
dec (iy+2)
jp m,dec_40
fail_msg 39
dec_40: jp po,dec_41
fail_msg 40
dec_41: ld a,(iy+2)
cp a,data_ff
jr z,dec_42
fail_msg 41
dec_42: ld a,1
ld (iy+1),a
dec (iy+1)
jr z,dec_43
fail_msg 42
dec_43: dec (iy+1)
jr nz,dec_44
fail_msg 43
dec_44: ld a,(iy+1)
cp a,data_ff
jr z,dec_45
fail_msg 44
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
fail_msg 45
cpl_0: ld a,data_ff
cpl
cp a,0
jr z,cpl_1
fail_msg 0
cpl_1: ld a,data_aa
cpl
cp a,data_55
jr z,cpl_2
fail_msg 1
cpl_2: cpl
cp a,data_aa
jr z,neg_0
fail_msg 2
neg_0: nop
print "neg"
ld a,data_80
cp a,data_80
jp po,neg_1
fail_msg 0
neg_1: neg
jp pe,neg_2
fail_msg 1
neg_2: jr nz,neg_3
fail_msg 2
neg_3: jr c,neg_4
fail_msg 3
neg_4: ld a,0
neg
jp po,neg_5
fail_msg 4
neg_5: jr z,neg_6
fail_msg 5
neg_6: jr nc,neg_7
fail_msg 6
neg_7: ld a,data_55
cp a,data_55
jp p,neg_8
fail_msg 7
neg_8: neg
jp m,neg_9
fail_msg 8
neg_9: neg
jp p,neg_10
fail_msg 9
neg_10: cp a,data_55
jr z,ccf_0
fail_msg 10
ccf_0: nop
print "ccf/im"
scf
jr c,ccf_1
fail_msg 0
ccf_1: ccf
jr nc,ccf_2
fail_msg 1
ccf_2: ccf
jr c,im_0
fail_msg 2
im_0: im 0
im 1
im 2
daa_0: nop
print "daa"
ld a,#99
ld b,#1
add a,b
daa
jr c,daa_1
fail_msg 0
daa_1: jr z,daa_2
fail_msg 1
daa_2: add a,b
jr nc,daa_3
fail_msg 2
daa_3: jr nz,daa_4
fail_msg 3
daa_4: cp a,1
jr z,daa_5
fail_msg 4
daa_5: ld a,#98
ld b,1
add a,b
daa
jp m,daa_6
fail_msg 5
daa_6: add a,b
daa
jp p,daa_7
fail_msg 6
daa_7: ld a,1
ld b,1
add a,b
daa
jp po,daa_8
fail_msg 7
daa_8: add a,b
daa
jp pe,daa_9
fail_msg 8
daa_9: cp a,3
jr z,add_74
fail_msg 9
add_74: nop
print "add"
ld hl,data_1234
add hl,hl
jr nc,add_75
fail_msg 74
add_75: ld a,h
cp a,#24
jr z,add_76
fail_msg 75
add_76: ld a,l
cp a,#68
jr z,add_77
fail_msg 76
add_77: ld hl,data_7fff
ld bc,data_8000
add hl,bc
jr nc,add_78
fail_msg 77
add_78: ld bc,1
add hl,bc
jr c,add_79
fail_msg 78
add_79: ld a,h
cp a,0
jr z,add_80
fail_msg 79
add_80: ld a,l
cp a,0
jr z,add_81
fail_msg 80
add_81: ld hl,data_aa55
ld de,data_ffff
add hl,de
jr c,add_82
fail_msg 81
add_82: ld a,h
cp a,data_aa
jr z,add_83
fail_msg 82
add_83: ld a,l
cp a,data_55-1
jr z,add_84
fail_msg 83
add_84: ld hl,data_aa55
ld sp,data_8000
add hl,sp
jr c,add_85
fail_msg 84
add_85: ld a,h
cp a,#2a
jr z,add_86
fail_msg 85
add_86: ld a,l
cp a,data_55
jr z,add_87
fail_msg 86
add_87: ld sp,stack_end
ld hl,data_1234
scf
ccf
adc hl,hl
jr nz,add_88
fail_msg 87
add_88: jr nc,add_89
fail_msg 88
add_89: jp p,add_90
fail_msg 89
add_90: jp po,add_91
fail_msg 90
add_91: ld bc,data_8000
adc hl,bc
jp m,add_92
fail_msg 91
add_92: jr nc,add_93
fail_msg 92
add_93: jp po,add_94
fail_msg 93
add_94: jp nz,add_95
fail_msg 94
add_95: adc hl,bc
jp p,add_96
fail_msg 95
add_96: jp pe,add_97
fail_msg 96
add_97: jr c,add_98
fail_msg 97
add_98: jr nz,add_99
fail_msg 98
add_99: ld de,#db97
adc hl,de
jr z,add_100
fail_msg 99
add_100: jr c,add_101
fail_msg 100
add_101: jp po,add_102
fail_msg 101
add_102: ld de,0
adc hl,de
jr nc,add_103
fail_msg 102
add_103: jr nz,add_104
fail_msg 103
add_104: ld a,h
cp a,0
jr z,add_105
fail_msg 104
add_105: ld a,l
cp a,1
jr z,add_106
fail_msg 105
add_106: ld hl,data_1234
ld sp,data_ffff
adc hl,sp
jr c,add_107
fail_msg 106
add_107: ld a,h
cp a,#12
jr z,add_108
fail_msg 107
add_108: ld a,l
cp a,#33
jr z,sbc_66
fail_msg 108
sbc_66: ld sp,stack_end
print "sbc"
scf
ccf
ld hl,data_1234
sbc hl,hl
jr z,sbc_67
fail_msg 66
sbc_67: jp p,sbc_68
fail_msg 67
sbc_68: jp po,sbc_69
fail_msg 68
sbc_69: jr nc,sbc_70
fail_msg 69
sbc_70: ld bc,data_1234
sbc hl,bc
jr nz,sbc_71
fail_msg 70
sbc_71: jr c,sbc_72
fail_msg 71
sbc_72: jp m,sbc_73
fail_msg 72
sbc_73: jp po,sbc_74
fail_msg 73
sbc_74: ld de,data_7fff
sbc hl,de
jr nz,sbc_75
fail_msg 74
sbc_75: jr nc,sbc_76
fail_msg 75
sbc_76: jp p,sbc_77
fail_msg 76
sbc_77: jp pe,sbc_78
fail_msg 77
sbc_78: ld sp,data_1234
sbc hl,sp
jr nz,sbc_79
fail_msg 78
sbc_79: ld a,h
cp a,#5b
jr z,sbc_80
fail_msg 79
sbc_80: ld a,l
cp a,#98
jr z,add_109
fail_msg 80
add_109: ld sp,stack_end
print "add"
ld ix,0
add ix,sp
jr nc,add_110
fail_msg 109
add_110: push ix
pop hl
ld a,h
cp a,stack_end_hi ; >stack_end
jr z,add_111
fail_msg 110
add_111: ld a,l
cp a,stack_end_lo ; <stack_end
jr z,add_112
fail_msg 111
add_112: ld ix,data_7fff
ld bc,data_aa55
add ix,bc
jr c,add_113
fail_msg 112
add_113: add ix,bc
jr nc,add_114
fail_msg 113
add_114: push ix
pop hl
ld a,h
cp a,#d4
jr z,add_115
fail_msg 114
add_115: ld a,l
cp a,#a9
jr z,add_116
fail_msg 115
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
fail_msg 116
add_117: ld a,l
cp a,#68 ;<(data_1234+data_1234)
jr z,add_118
fail_msg 117
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
fail_msg 118
add_119: ld a,c
cp a,#68 ;<(data_1234+data_1234)
jr z,add_120
fail_msg 119
add_120: ld sp,stack_end
ld iy,0
add iy,sp
jr nc,add_121
fail_msg 120
add_121: push iy
pop hl
ld a,h
cp a,stack_end_hi ;>stack_end
jr z,add_122
fail_msg 121
add_122: ld a,l
cp a,stack_end_lo ;<stack_end
jr z,add_123
fail_msg 122
add_123: ld iy,data_7fff
ld bc,data_aa55
add iy,bc
jr c,add_124
fail_msg 123
add_124: add iy,bc
jr nc,add_125
fail_msg 124
add_125: push iy
pop hl
ld a,h
cp a,#d4
jr z,add_126
fail_msg 125
add_126: ld a,l
cp a,#a9
jr z,add_127
fail_msg 126
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
fail_msg 127
add_128: ld a,l
cp a,#68 ;<(data_1234+data_1234)
jr z,add_129
fail_msg 128
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
fail_msg 129
add_130: ld a,c
cp a,#68 ;<(data_1234+data_1234)
jr z,inc_54
fail_msg 130
inc_54: ld sp,stack_end
print "inc"
ld bc,data_1234
inc bc
ld a,b
cp a,#12 ;bjp was >data_1234
jr z,inc_55
fail_msg 54
inc_55: ld a,c
cp a,#34+1 ;bjp was >data_1234+1
jr z,inc_56
fail_msg 55
inc_56: ld de,data_55aa
inc de
ld a,d
cp a,#55 ;>data_55aa
jr z,inc_57
fail_msg 56
inc_57: ld a,e
cp a,#ab ;<data_55aa+1
jr z,inc_58
fail_msg 57
inc_58: ld hl,data_7fff
inc hl
ld a,h
cp a,#80 ;>data_7fff+1
jr z,inc_59
fail_msg 58
inc_59: ld a,l
cp a,#00 ;<data_7fff+1
jr z,inc_60
fail_msg 59
;; this test doesn't make any sense to me. it looks
;; like it increments SP, and then looks for *both*
;; SPhigh and SPlow to have been incremented by 1. The
;; only way this works is if SP started as stack_end + 100
;; added new statement accordingly. (gth)
inc_60: ld sp,stack_end+#100 ; added new initial val (gth)
ld hl,0
inc sp
add hl,sp
ld sp,stack_end
ld a,h
cp a,stack_end_hi+1 ;>stack_end+1
jr z,inc_61
fail_msg 60
inc_61: ld a,l
cp a,stack_end_lo+1 ;<stack_end+1
jr z,inc_62
fail_msg 61
inc_62: ld ix,data_8000
inc ix
push ix
pop de
ld a,d
cp a,#80 ;>data_8000
jr z,inc_63
fail_msg 62
inc_63: ld a,e
cp a,#01 ;<data_8000+1
jr z,inc_64
fail_msg 63
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
fail_msg 64
inc_65: ld a,c
cp a,#00 ;<data_7fff+1
jr z,dec_46
fail_msg 65
dec_46: nop
print "dec"
ld bc,data_1234
dec bc
ld a,b
cp a,#12 ;bjp was >data_1234
jr z,dec_47
fail_msg 46
dec_47: ld a,c
cp a,#34-1 ;bjp was >data_1234-1
jr z,dec_48
fail_msg 47
dec_48: ld de,data_8000
dec de
ld a,d
cp a,#7f ;>data_7fff
jr z,dec_49
fail_msg 48
dec_49: ld a,e
cp a,#ff ;<data_7fff
jr z,dec_50
fail_msg 49
dec_50: ld hl,data_aa55
dec hl
ld a,h
cp a,#aa ;>data_aa55
jr z,dec_51
fail_msg 50
dec_51: ld a,l
cp a,#54 ;<data_aa55-1
jr z,dec_52
fail_msg 51
;; similar mysterious test to inc_60, expecting both halves
;; of SP to be decremented. Fix by setting sp stack_end-100 (gth)
dec_52: ld sp, stack_end-#100 ; new starting SP (gth)
ld hl,0
dec sp
add hl,sp
ld a,h
cp a,stack_end_hi-1 ;>stack_end-1
jr z,dec_53
fail_msg 52
dec_53: ld a,l
cp a,stack_end_lo-1 ;<stack_end-1
jr z,dec_54
fail_msg 53
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
fail_msg 54
dec_55: ld a,c
cp a,#fe ;<data_ffff-1
jr z,dec_56
fail_msg 55
dec_56: ld iy,data_aa55
dec iy
push iy
pop de
ld a,d
cp a,#aa ;>data_aa55
jr z,dec_57
fail_msg 56
dec_57: ld a,e
cp a,#54 ;<data_aa55-1
jr z,rlca_0
fail_msg 57
rlca_0: nop
print "rlca/rla"
ld a,data_80
rlca
jr c,rlca_1
fail_msg 0
rlca_1: rlca
jr nc,rlca_2
fail_msg 1
rlca_2: cp a,2
jr z,rlca_3
fail_msg 2
rlca_3: ld a,data_55
rlca
cp a,data_aa
jr z,rla_0
fail_msg 3
rla_0:
scf
ccf
ld a,data_80
rla
jr c,rla_1
fail_msg 0
rla_1: rla
jr nc,rla_2
fail_msg 1
rla_2: cp a,1
jr z,rla_3
fail_msg 2
rla_3: ld a,data_7f
rla
cp a,data_ff-1
jr z,rrca_0
fail_msg 3
rrca_0: nop
print "rrca/rra"
scf
ccf
ld a,1
rrca
jr c,rrca_1
fail_msg 0
rrca_1: rrca
jr nc,rrca_2
fail_msg 1
rrca_2: cp a,data_7f-#3f
jr z,rrca_3
fail_msg 2
rrca_3: ld a,data_aa
rrca
cp a,data_55
jr z,rra_0
fail_msg 3
rra_0: scf
ccf
ld a,1
rra
jr c,rra_1
fail_msg 0
rra_1: rra
jr nc,rra_2
fail_msg 1
rra_2: cp a,data_80
jr z,rra_3
fail_msg 2
rra_3: ld a,data_aa
rra
cp a,data_55
jr z,rlc_0
fail_msg 3
rlc_0: nop
print "rlc"
ld a,data_80
rlc a
jr c,rlc_1
fail_msg 0
rlc_1: jp p,rlc_2
fail_msg 1
rlc_2: jr nz,rlc_3
fail_msg 2
rlc_3: jp po,rlc_4
fail_msg 3
rlc_4: rlc a
jr nc,rlc_5
fail_msg 4
rlc_5: rlc a
rlc a
rlc a
rlc a
rlc a
rlc a
jp m,rlc_6
fail_msg 5
rlc_6: ld a,data_55
rlc a
jp m,rlc_7
fail_msg 6
rlc_7: jp pe,rlc_8
fail_msg 7
rlc_8: cp a,data_aa
jr z,rlc_9
fail_msg 8
rlc_9: ld a,0
rlc a
jr z,rlc_10
fail_msg 9
rlc_10: ld b,data_7f
rlc b
ld a,b
cp a,data_ff-1
jr z,rlc_11
fail_msg 10
rlc_11: ld c,data_aa
rlc c
jr c,rlc_12
fail_msg 11
rlc_12: ld a,c
cp a,data_55
jr z,rlc_13
fail_msg 12
rlc_13: ld d,data_80
rlc d
jr c,rlc_14
fail_msg 13
rlc_14: ld a,d
cp a,1
jr z,rlc_15
fail_msg 14
rlc_15: ld e,data_ff
rlc e
jr c,rlc_16
fail_msg 15
rlc_16: ld a,e
cp a,data_ff
jr z,rlc_17
fail_msg 16
rlc_17: ld h,data_55
rlc h
jp m,rlc_18
fail_msg 17
rlc_18: ld a,h
cp a,data_aa
jr z,rlc_19
fail_msg 18
rlc_19: ld l,data_80
rlc l
jp p,rlc_20
fail_msg 19
rlc_20: ld a,l
cp a,1
jr z,rlc_21
fail_msg 20
rlc_21: ld hl,t_var1
ld a,data_55
ld (hl),a
rlc (hl)
jp m,rlc_22
fail_msg 21
rlc_22: jp pe,rlc_23
fail_msg 22
rlc_23: jr nc,rlc_24
fail_msg 23
rlc_24: jr nz,rlc_25
fail_msg 24
rlc_25: rlc (hl)
jp p,rlc_26
fail_msg 25
rlc_26: jr c,rlc_27
fail_msg 26
rlc_27: ld a,(hl)
cp a,data_55
jr z,rlc_28
fail_msg 27
rlc_28: ld a,data_7f
ld (hl),a
rlc (hl)
jp po,rlc_29
fail_msg 28
rlc_29: ld a,(hl)
cp a,data_ff-1
jr z,rlc_30
fail_msg 29
rlc_30: ld a,0
ld (hl),a
rlc (hl)
jr z,rlc_31
fail_msg 30
rlc_31: ld ix,t_var3
ld a,data_55
ld (ix-2),a
rlc (ix-2)
jp m,rlc_32
fail_msg 31
rlc_32: jp pe,rlc_33
fail_msg 32
rlc_33: jr nz,rlc_34
fail_msg 33
rlc_34: jr nc,rlc_35
fail_msg 34
rlc_35: rlc (ix-2)
jp p,rlc_36
fail_msg 35
rlc_36: jr c,rlc_37
fail_msg 36
rlc_37: ld a,(ix-2)
cp a,data_55
jr z,rlc_38
fail_msg 37
rlc_38: ld a,data_7f
ld (ix+2),a
rlc (ix+2)
jp po,rlc_39
fail_msg 38
rlc_39: ld a,(ix+2)
cp a,data_ff-1
jr z,rlc_40
fail_msg 39
rlc_40: ld a,0
ld (ix-1),a
rlc (ix-1)
jr z,rlc_41
fail_msg 40
rlc_41: ld iy,t_var3
ld a,data_55
ld (iy+2),a
rlc (iy+2)
jp m,rlc_42
fail_msg 41
rlc_42: jp pe,rlc_43
fail_msg 42
rlc_43: jr nc,rlc_44
fail_msg 43
rlc_44: jr nz,rlc_45
fail_msg 44
rlc_45: rlc (iy+2)
jp p,rlc_46
fail_msg 45
rlc_46: jr c,rlc_47
fail_msg 46
rlc_47: ld a,(iy+2)
cp a,data_55
jr z,rlc_48
fail_msg 47
rlc_48: ld a,data_7f
ld (iy-2),a
rlc (iy-2)
jp po,rlc_49
fail_msg 48
rlc_49: ld a,(iy-2)
cp a,data_ff-1
jr z,rlc_50
fail_msg 49
rlc_50: ld a,0
ld (iy+1),a
rlc (iy+1)
jr z,rl_0
fail_msg 50
rl_0: nop
print "rl"
scf
ccf
ld a,data_55
rl a
jp m,rl_1
fail_msg 0
rl_1: jp pe,rl_2
fail_msg 1
rl_2: jr nc,rl_3
fail_msg 2
rl_3: jr nz,rl_4
fail_msg 3
rl_4: rl a
jp p,rl_5
fail_msg 4
rl_5: jp po,rl_6
fail_msg 5
rl_6: jr c,rl_7
fail_msg 6
rl_7: rl a
cp a,data_aa-1
jr z,rl_8
fail_msg 7
rl_8: ld a,0
rl a
jr z,rl_9
fail_msg 8
rl_9: ld b,data_aa
ld c,data_7f
rl b
jr c,rl_10
fail_msg 9
rl_10: rl c
jr nc,rl_11
fail_msg 10
rl_11: ld a,b
cp a,data_55-1
jr z,rl_12
fail_msg 11
rl_12: ld a,c
cp a,data_ff
jr z,rl_13
fail_msg 12
rl_13: ld d,data_ff
ld e,data_80
rl e
jr c,rl_14
fail_msg 13
rl_14: rl d
jr c,rl_15
fail_msg 14
rl_15: ld a,d
cp a,data_ff
jr z,rl_16
fail_msg 15
rl_16: ld a,e
cp a,0
jr z,rl_17
fail_msg 16
rl_17: ld h,data_7f
ld l,data_55
rl h
jp m,rl_18
fail_msg 17
rl_18: rl l
jp m,rl_19
fail_msg 18
rl_19: ld a,h
cp a,data_ff-1
jr z,rl_20
fail_msg 19
rl_20: ld a,l
cp a,data_aa
jr z,rl_21
fail_msg 20
rl_21: ld hl,t_var5
ld a,data_55
ld (hl),a
rl (hl)
jp m,rl_22
fail_msg 21
rl_22: jp pe,rl_23
fail_msg 22
rl_23: jr nc,rl_24
fail_msg 23
rl_24: jr nz,rl_25
fail_msg 24
rl_25: rl (hl)
jp p,rl_26
fail_msg 25
rl_26: jp po,rl_27
fail_msg 26
rl_27: jr c,rl_28
fail_msg 27
rl_28: ld a,(hl)
cp a,data_55-1
jr z,rl_29
fail_msg 28
rl_29: ld a,0
ld (hl),a
rl (hl)
jr z,rl_30
fail_msg 29
rl_30: ld ix,t_var3
ld a,data_55
ld (ix-2),a
rl (ix-2)
jp m,rl_31
fail_msg 30
rl_31: jp pe,rl_32
fail_msg 31
rl_32: jr nc,rl_33
fail_msg 32
rl_33: jr nz,rl_34
fail_msg 33
rl_34: rl (ix-2)
jp p,rl_35
fail_msg 34
rl_35: jp po,rl_36
fail_msg 35
rl_36: jr c,rl_37
fail_msg 36
rl_37: ld a,(ix-2)
cp a,data_55-1
jr z,rl_38
fail_msg 37
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
fail_msg 39
rl_40: jp pe,rl_41
fail_msg 40
rl_41: jr nc,rl_42
fail_msg 41
rl_42: jr nz,rl_43
fail_msg 42
rl_43: rl (iy-1)
jp p,rl_44
fail_msg 43
rl_44: jp po,rl_45
fail_msg 44
rl_45: jr c,rl_46
fail_msg 45
rl_46: ld a,(iy-1)
cp a,data_55-1
jr z,rl_47
fail_msg 46
rl_47: ld a,0
ld (iy+1),a
rl (iy+1)
jr z,rrc_0
fail_msg 47
rrc_0: nop
print "rrc"
ld a,data_aa
rrc a
jp p,rrc_1
fail_msg 0
rrc_1: jp pe,rrc_2
fail_msg 1
rrc_2: jr nz,rrc_3
fail_msg 2
rrc_3: jr nc,rrc_4
fail_msg 3
rrc_4: rrc a
jp m,rrc_5
fail_msg 4
rrc_5: jr c,rrc_6
fail_msg 5
rrc_6: cp a,data_aa
jr z,rrc_7
fail_msg 6
rrc_7: ld a,1
rrc a
jr c,rrc_8
fail_msg 7
rrc_8: cp a,data_80
jr z,rrc_9
fail_msg 8
rrc_9: ld a,data_7f
rrc a
jp po,rrc_10
fail_msg 9
rrc_10: cp a,#bf
jr z,rrc_11
fail_msg 10
rrc_11: ld b,data_80
ld c,data_55
rrc b
jr nc,rrc_12
fail_msg 11
rrc_12: rrc c
jr c,rrc_13
fail_msg 12
rrc_13: ld a,b
cp a,#40
jr z,rrc_14
fail_msg 13
rrc_14: ld a,c
cp a,data_aa
jr z,rrc_15
fail_msg 14
rrc_15: ld d,data_aa
ld e,1
rrc d
jp p,rrc_16
fail_msg 15
rrc_16: rrc e
jp m,rrc_17
fail_msg 16
rrc_17: ld a,d
cp a,data_55
jr z,rrc_18
fail_msg 17
rrc_18: ld a,e
cp a,data_80
jr z,rrc_19
fail_msg 18
rrc_19: ld h,data_55
ld l,data_ff
rrc h
jr c,rrc_20
fail_msg 19
rrc_20: rrc l
jr c,rrc_21
fail_msg 20
rrc_21: ld a,h
cp a,data_aa
jr z,rrc_22
fail_msg 21
rrc_22: ld a,l
cp a,data_ff
jr z,rrc_23
fail_msg 22
rrc_23: ld hl,t_var4
ld (hl),data_aa
rrc (hl)
jp p,rrc_24
fail_msg 23
rrc_24: jp pe,rrc_25
fail_msg 24
rrc_25: jr nz,rrc_26
fail_msg 25
rrc_26: jr nc,rrc_27
fail_msg 26
rrc_27: rrc (hl)
jp m,rrc_28
fail_msg 27
rrc_28: jr c,rrc_29
fail_msg 28
rrc_29: ld a,(hl)
cp a,data_aa
jr z,rrc_30
fail_msg 29
rrc_30: ld (hl),data_7f
rrc (hl)
jp po,rrc_31
fail_msg 30
rrc_31: ld a,(hl)
cp a,#bf
jr z,rrc_32
fail_msg 31
rrc_32: ld (hl),0
rrc (hl)
jr z,rrc_33
fail_msg 32
rrc_33: ld ix,t_var3
ld a,data_aa
ld (ix+2),a
rrc (ix+2)
jp p,rrc_34
fail_msg 33
rrc_34: jp pe,rrc_35
fail_msg 34
rrc_35: jr nc,rrc_36
fail_msg 35
rrc_36: jr nz,rrc_37
fail_msg 36
rrc_37: rrc (ix+2)
jp m,rrc_38
fail_msg 37
rrc_38: jr c,rrc_39
fail_msg 38
rrc_39: ld a,(ix+2)
cp a,data_aa
jr z,rrc_40
fail_msg 39
rrc_40: ld a,1
ld (ix-2),a
rrc (ix-2)
jp po,rrc_41
fail_msg 40
rrc_41: ld a,(ix-2)
cp a,data_80
jr z,rrc_42
fail_msg 41
rrc_42: ld a,0
ld (ix+1),a
rrc (ix+1)
jr z,rrc_43
fail_msg 42
rrc_43: ld iy,t_var3
ld a,data_aa
ld (iy+2),a
rrc (iy+2)
jp p,rrc_44
fail_msg 43
rrc_44: jp pe,rrc_45
fail_msg 44
rrc_45: jr nc,rrc_46
fail_msg 45
rrc_46: jr nz,rrc_47
fail_msg 46
rrc_47: rrc (iy+2)
jp m,rrc_48
fail_msg 47
rrc_48: jr c,rrc_49
fail_msg 48
rrc_49: ld a,(iy+2)
cp a,data_aa
jr z,rrc_50
fail_msg 49
rrc_50: ld a,1
ld (iy-2),a
rrc (iy-2)
jp po,rrc_51
fail_msg 50
rrc_51: ld a,(iy-2)
cp a,data_80
jr z,rrc_52
fail_msg 51
rrc_52: ld a,0
ld (iy+1),a
rrc (iy+1)
jr z,rr_0
fail_msg 52
rr_0: nop
print "rr"
scf
ccf
ld a,data_aa
rr a
jp p,rr_1
fail_msg 0
rr_1: jp pe,rr_2
fail_msg 1
rr_2: jr nc,rr_3
fail_msg 2
rr_3: jr nz,rr_4
fail_msg 3
rr_4: rr a
jr c,rr_5
fail_msg 4
rr_5: jp po,rr_6
fail_msg 5
rr_6: cp a,#2a
jr z,rr_7
fail_msg 6
rr_7: scf
ld a,0
rr a
jp m,rr_8
fail_msg 7
rr_8: cp a,data_80
jr z,rr_9
fail_msg 8
rr_9: ld a,0
rr a
jr z,rr_10
fail_msg 9
rr_10: ld b,data_55
ld c,data_aa
rr b
jr c,rr_11
fail_msg 10
rr_11: rr c
jr nc,rr_12
fail_msg 11
rr_12: ld a,b
cp a,#2a
jr z,rr_13
fail_msg 12
rr_13: ld a,c
cp a,#d5
jr z,rr_14
fail_msg 13
rr_14: ld d,data_7f
ld e,data_80
rr d
jr c,rr_15
fail_msg 14
rr_15: rr e
jr nc,rr_16
fail_msg 15
rr_16: ld a,d
cp a,#3f
jr z,rr_17
fail_msg 16
rr_17: ld a,e
cp a,#c0
jr z,rr_18
fail_msg 17
rr_18: ld hl,t_var2
ld (hl),data_55
rr (hl)
jp p,rr_19
fail_msg 18
rr_19: jp po,rr_20
fail_msg 19
rr_20: jr c,rr_21
fail_msg 20
rr_21: jr nz,rr_22
fail_msg 21
rr_22: rr (hl)
jp m,rr_23
fail_msg 22
rr_23: jp pe,rr_24
fail_msg 23
rr_24: jr nc,rr_25
fail_msg 24
rr_25: ld a,(hl)
cp a,#95
jr z,rr_26
fail_msg 25
rr_26: ld (hl),0
rr (hl)
jr z,rr_27
fail_msg 26
rr_27: ld ix,t_var3
ld a,data_55
ld (ix-2),a
rr (ix-2)
jp p,rr_28
fail_msg 27
rr_28: jp po,rr_29
fail_msg 28
rr_29: jr c,rr_30
fail_msg 29
rr_30: jr nz,rr_31
fail_msg 30
rr_31: rr (ix-2)
jp m,rr_32
fail_msg 31
rr_32: jp pe,rr_33
fail_msg 32
rr_33: jr nc,rr_34
fail_msg 33
rr_34: ld a,(ix-2)
cp a,#95
jr z,rr_35
fail_msg 34
rr_35: ld a,0
ld (ix+2),a
rr (ix+2)
jr z,rr_36
fail_msg 35
rr_36: ld iy,t_var3
ld a,data_55
ld (iy+2),a
rr (iy+2)
jp p,rr_37
fail_msg 36
rr_37: jp po,rr_38
fail_msg 37
rr_38: jr c,rr_39
fail_msg 38
rr_39: jr nz,rr_40
fail_msg 39
rr_40: rr (iy+2)
jp m,rr_41
fail_msg 40
rr_41: jp pe,rr_42
fail_msg 41
rr_42: jr nc,rr_43
fail_msg 42
rr_43: ld a,(iy+2)
cp a,#95
jr z,rr_44
fail_msg 43
rr_44: ld a,0
ld (iy-1),a
rr (iy-1)
jr z,sla_0
fail_msg 44
sla_0: nop
print "sla"
ld a,data_55
sla a
jp m,sla_1
fail_msg 0
sla_1: jp pe,sla_2
fail_msg 1
sla_2: jr nc,sla_3
fail_msg 2
sla_3: jr nz,sla_4
fail_msg 3
sla_4: sla a
jp p,sla_5
fail_msg 4
sla_5: jp po,sla_6
fail_msg 5
sla_6: jr c,sla_7
fail_msg 6
sla_7: cp a,data_55-1
jr z,sla_8
fail_msg 7
sla_8: ld a,0
sla a
jr z,sla_9
fail_msg 8
sla_9: ld b,data_80
ld c,data_7f
sla b
jr c,sla_10
fail_msg 9
sla_10: ld a,b
cp a,0
jr z,sla_11
fail_msg 10
sla_11: sla c
jp m,sla_12
fail_msg 11
sla_12: ld a,c
cp a,data_ff-1
jr z,sla_13
fail_msg 12
sla_13: ld d,data_aa
ld e,data_55
sla d
jr c,sla_14
fail_msg 13
sla_14: ld a,d
cp a,data_55-1
jr z,sla_15
fail_msg 14
sla_15: sla e
jp m,sla_16
fail_msg 15
sla_16: ld a,e
cp a,data_aa
jr z,sla_17
fail_msg 16
sla_17: ld h,#12 ;bjp was >data_1234
ld l,#34 ;bjp was >data_1234
sla h
jp p,sla_18
fail_msg 17
sla_18: ld a,h
cp a,#24
jr z,sla_19
fail_msg 18
sla_19: sla l
jp p,sla_20
fail_msg 19
sla_20: ld a,l
cp a,#68
jr z,sla_21
fail_msg 20
sla_21: ld hl,t_var3
ld (hl),data_55
sla (hl)
jp m,sla_22
fail_msg 21
sla_22: jp pe,sla_23
fail_msg 22
sla_23: jr nc,sla_24
fail_msg 23
sla_24: jr nz,sla_25
fail_msg 24
sla_25: sla (hl)
jp p,sla_26
fail_msg 25
sla_26: jp po,sla_27
fail_msg 26
sla_27: jr c,sla_28
fail_msg 27
sla_28: ld a,(hl)
cp a,data_55-1
jr z,sla_29
fail_msg 28
sla_29: ld (hl),0
sla (hl)
jr z,sla_30
fail_msg 29
sla_30: ld ix,t_var3
ld a,data_55
ld (ix-2),a
sla (ix-2)
jp m,sla_31
fail_msg 30
sla_31: jp pe,sla_32
fail_msg 31
sla_32: jr nc,sla_33
fail_msg 32
sla_33: jr nz,sla_34
fail_msg 33
sla_34: sla (ix-2)
jp p,sla_35
fail_msg 34
sla_35: jp po,sla_36
fail_msg 35
sla_36: jr c,sla_37
fail_msg 36
sla_37: ld a,(ix-2)
cp a,data_55-1
jr z,sla_38
fail_msg 37
sla_38: ld a,data_80
ld (ix+2),a
sla (ix+2)
jr z,sla_39
fail_msg 38
sla_39: jr c,sla_40
fail_msg 39
sla_40: ld iy,t_var3
ld a,data_55
ld (iy+2),a
sla (iy+2)
jp m,sla_41
fail_msg 40
sla_41: jp pe,sla_42
fail_msg 41
sla_42: jr nc,sla_43
fail_msg 42
sla_43: jr nz,sla_44
fail_msg 43
sla_44: sla (iy+2)
jp p,sla_45
fail_msg 44
sla_45: jp po,sla_46
fail_msg 45
sla_46: jr c,sla_47
fail_msg 46
sla_47: ld a,(iy+2)
cp a,data_55-1
jr z,sla_48
fail_msg 47
sla_48: ld a,data_80
ld (iy-2),a
sla (iy-2)
jr z,sla_49
fail_msg 48
sla_49: jr c,sra_0
fail_msg 49
sra_0: nop
print "sra"
ld a,data_55
sra a
jp p,sra_1
fail_msg 0
sra_1: jp po,sra_2
fail_msg 1
sra_2: jr c,sra_3
fail_msg 2
sra_3: jr nz,sra_4
fail_msg 3
sra_4: sra a
jp po,sra_5
fail_msg 4
sra_5: jr nc,sra_6
fail_msg 5
sra_6: sra a
jp pe,sra_7
fail_msg 6
sra_7: cp a,#0a ;data_aa.and.#0f
jr z,sra_8
fail_msg 7
sra_8: ld a,1
sra a
jr c,sra_9
fail_msg 8
sra_9: jr z,sra_10
fail_msg 9
sra_10: ld a,data_80
sra a
jp m,sra_11
fail_msg 10
sra_11: cp a,#c0
jr z,sra_12
fail_msg 11
sra_12: ld b,data_7f
ld c,data_aa
sra b
jr c,sra_13
fail_msg 12
sra_13: ld a,b
cp a,#3f
jr z,sra_14
fail_msg 13
sra_14: sra c
jr nc,sra_15
fail_msg 14
sra_15: ld a,c
cp a,#d5
jr z,sra_16
fail_msg 15
sra_16: ld d,data_55
ld e,data_ff
sra d
jr c,sra_17
fail_msg 16
sra_17: ld a,d
cp a,#2a
jr z,sra_18
fail_msg 17
sra_18: sra e
jp m,sra_19
fail_msg 18
sra_19: ld a,e
cp a,data_ff
jr z,sra_20
fail_msg 19
sra_20: ld h,data_aa
ld l,data_7f
sra h
jp m,sra_21
fail_msg 20
sra_21: ld a,h
cp a,#d5
jr z,sra_22
fail_msg 21
sra_22: sra l
jr c,sra_23
fail_msg 22
sra_23: ld a,l
cp a,#3f
jr z,sra_24
fail_msg 23
sra_24: ld hl,t_var1
ld (hl),data_55
sra (hl)
jp p,sra_25
fail_msg 24
sra_25: jp po,sra_26
fail_msg 25
sra_26: jr c,sra_27
fail_msg 26
sra_27: jr nz,sra_28
fail_msg 27
sra_28: sra (hl)
jr nc,sra_29
fail_msg 28
sra_29: sra (hl)
jp pe,sra_30
fail_msg 29
sra_30: ld a,(hl)
cp a,#0a ;data_aa.and.#0f
jr z,sra_31
fail_msg 30
sra_31: ld (hl),data_80
sra (hl)
jp m,sra_32
fail_msg 31
sra_32: ld a,(hl)
cp a,#c0
jr z,sra_33
fail_msg 32
sra_33: ld (hl),1
sra (hl)
jr c,sra_34
fail_msg 33
sra_34: jr z,sra_35
fail_msg 34
sra_35: ld ix,t_var3
ld a,data_55
ld (ix-2),a
sra (ix-2)
jp p,sra_36
fail_msg 35
sra_36: jp po,sra_37
fail_msg 36
sra_37: jr c,sra_38
fail_msg 37
sra_38: jr nz,sra_39
fail_msg 38
sra_39: sra (ix-2)
jr nc,sra_40
fail_msg 39
sra_40: sra (ix-2)
jp pe,sra_41
fail_msg 40
sra_41: ld a,(ix-2)
cp a,#0a ;data_aa.and.#0f
jr z,sra_42
fail_msg 41
sra_42: ld a,data_80
ld (ix+2),a
sra (ix+2)
jp m,sra_43
fail_msg 42
sra_43: ld a,(ix+2)
cp a,#c0
jr z,sra_44
fail_msg 43
sra_44: ld a,1
ld (ix-1),a
sra (ix-1)
jr c,sra_45
fail_msg 44
sra_45: jr z,sra_46
fail_msg 45
sra_46: ld iy,t_var3
ld a,data_55
ld (iy-2),a
sra (iy-2)
jp p,sra_47
fail_msg 46
sra_47: jp po,sra_48
fail_msg 47
sra_48: jr c,sra_49
fail_msg 48
sra_49: jr nz,sra_50
fail_msg 49
sra_50: sra (iy-2)
jr nc,sra_51
fail_msg 50
sra_51: sra (iy-2)
jp pe,sra_52
fail_msg 51
sra_52: ld a,(iy-2)
cp a,#0a ;data_aa.and.#0f
jr z,sra_53
fail_msg 52
sra_53: ld a,data_80
ld (iy+2),a
sra (iy+2)
jp m,sra_54
fail_msg 53
sra_54: ld a,(iy+2)
cp a,#c0
jr z,sra_55
fail_msg 54
sra_55: ld a,1
ld (iy-1),a
sra (iy-1)
jr c,sra_56
fail_msg 55
sra_56: jr z,srl_0
fail_msg 56
srl_0: nop
print "srl"
ld a,data_55
srl a
jr c,srl_1
fail_msg 0
srl_1: jp po,srl_2
fail_msg 1
srl_2: srl a
jr nc,srl_3
fail_msg 2
srl_3: srl a
jp pe,srl_4
fail_msg 3
srl_4: cp a,#0a ;data_aa.and.#0f
jr z,srl_5
fail_msg 4
srl_5: ld a,data_80
and a
jp m,srl_6
fail_msg 5
srl_6: srl a
jp p,srl_7
fail_msg 6
srl_7: ld a,2
srl a
jr nz,srl_8
fail_msg 7
srl_8: srl a
jr z,srl_9
fail_msg 8
srl_9: jr c,srl_10
fail_msg 9
srl_10: ld b,data_aa
srl b
jp p,srl_11
fail_msg 10
srl_11: ld a,b
cp a,data_55
jr z,srl_12
fail_msg 11
srl_12: ld c,data_7f
srl c
jr c,srl_13
fail_msg 12
srl_13: ld a,c
cp a,#3f
jr z,srl_14
fail_msg 13
srl_14: ld d,data_55
srl d
jr c,srl_15
fail_msg 14
srl_15: ld a,d
cp a,#2a
jr z,srl_16
fail_msg 15
srl_16: ld e,data_ff
srl e
jr c,srl_17
fail_msg 16
srl_17: ld a,e
cp a,data_7f
jr z,srl_18
fail_msg 17
srl_18: ld h,#12 ;bjp was >data_1234
srl h
jr nc,srl_19
fail_msg 18
srl_19: ld a,h
cp a,9
jr z,srl_20
fail_msg 19
srl_20: ld l,#34 ;bjp was >data_1234
srl l
jr nc,srl_21
fail_msg 20
srl_21: ld a,l
cp a,#1a
jr z,srl_22
fail_msg 21
srl_22: ld hl,t_var1
ld (hl),data_55
srl (hl)
jr c,srl_23
fail_msg 22
srl_23: jp po,srl_24
fail_msg 23
srl_24: srl (hl)
jr nc,srl_25
fail_msg 24
srl_25: srl (hl)
jp pe,srl_26
fail_msg 25
srl_26: ld a,(hl)
cp a,#0a ;data_aa.and.#0f
jr z,srl_27
fail_msg 26
srl_27: ld (hl),data_80
and (hl)
jp z,srl_28
fail_msg 27
srl_28: srl (hl)
jp p,srl_29
fail_msg 28
srl_29: ld a,(hl)
cp a,#40
jr z,srl_30
fail_msg 29
srl_30: ld (hl),2
srl (hl)
jr nz,srl_31
fail_msg 30
srl_31: srl (hl)
jr z,srl_32
fail_msg 31
srl_32: jr c,srl_33
fail_msg 32
srl_33: ld ix,t_var3
ld a,data_55
ld (ix+2),a
srl (ix+2)
jr c,srl_34
fail_msg 33
srl_34: jp po,srl_35
fail_msg 34
srl_35: srl (ix+2)
jr nc,srl_36
fail_msg 35
srl_36: srl (ix+2)
jp pe,srl_37
fail_msg 36
srl_37: ld a,(ix+2)
cp a,#0a ;data_aa.and.#0f
jr z,srl_38
fail_msg 37
srl_38: ld a,data_80
ld (ix-2),a
and (ix-2)
jp m,srl_39
fail_msg 38
srl_39: srl (ix-2)
jp p,srl_40
fail_msg 39
srl_40: ld a,(ix-2)
cp a,#40
jr z,srl_41
fail_msg 40
srl_41: ld a,2
ld (ix+1),a
srl (ix+1)
jr nz,srl_42
fail_msg 41
srl_42: srl (ix+1)
jr z,srl_43
fail_msg 42
srl_43: jr c,srl_44
fail_msg 43
srl_44: ld iy,t_var3
ld a,data_55
ld (iy+2),a
srl (iy+2)
jr c,srl_45
fail_msg 44
srl_45: jp po,srl_46
fail_msg 45
srl_46: srl (iy+2)
jr nc,srl_47
fail_msg 46
srl_47: srl (iy+2)
jp pe,srl_48
fail_msg 47
srl_48: ld a,(iy+2)
cp a,#0a ;data_aa.and.#0f
jr z,srl_49
fail_msg 48
srl_49: ld a,data_80
ld (iy-2),a
and (iy-2)
jp m,srl_50
fail_msg 49
srl_50: srl (iy-2)
jp p,srl_51
fail_msg 50
srl_51: ld a,(iy-2)
cp a,#40
jr z,srl_52
fail_msg 51
srl_52: ld a,2
ld (iy+1),a
srl (iy+1)
jr nz,srl_53
fail_msg 52
srl_53: srl (iy+1)
jr z,srl_54
fail_msg 53
srl_54: jr c,rld_0
fail_msg 54
rld_0: nop
print "rld/rrd"
ld hl,t_var5
ld a,data_55
ld (hl),data_aa
rld
jp p,rld_1
fail_msg 0
rld_1: cp a,data_55+5
jr z,rld_2
fail_msg 1
rld_2: ld a,(hl)
cp a,data_aa-5
jr z,rld_3
fail_msg 2
rld_3: ld (hl),data_7f
ld a,data_80
rld
jp m,rld_4
fail_msg 3
rld_4: jp pe,rld_5
fail_msg 4
rld_5: rld
jp po,rld_6
fail_msg 5
rld_6: cp a,data_80+15
jr z,rld_7
fail_msg 6
rld_7: ld a,(hl)
cp a,7
jr z,rld_8
fail_msg 7
rld_8: ld a,#05 ;data_55.and.#0f
ld (hl),#0a ;data_aa.and.#0f
rld
jr z,rld_9
fail_msg 8
rld_9: ld a,(hl)
cp a,#a5
jr z,rrd_0
fail_msg 9
rrd_0: ld hl,t_var3
ld a,data_55
ld (hl),data_aa
rrd
jp p,rrd_1
fail_msg 0
rrd_1: jp pe,rrd_2
fail_msg 1
rrd_2: jr nz,rrd_3
fail_msg 2
rrd_3: cp a,data_55+5
jr z,rrd_4
fail_msg 3
rrd_4: ld a,(hl)
cp a,data_55+5
jr z,rrd_5
fail_msg 4
rrd_5: ld (hl),data_7f
ld a,data_80
rrd
jp m,rrd_6
fail_msg 5
rrd_6: jp po,rrd_7
fail_msg 6
rrd_7: cp a,data_80+15
jr z,rrd_8
fail_msg 7
rrd_8: ld a,(hl)
cp a,7
jr z,rrd_9
fail_msg 8
rrd_9: ld a,8
ld (hl),0
rrd
jr z,rrd_10
fail_msg 9
rrd_10: ld a,(hl)
cp a,data_80
jr z,bit_0
fail_msg 10
bit_0: nop
print "bit"
ld a,data_ff
bit 0,a
jr nz,bit_1
fail_msg 0
bit_1: bit 1,a
jr nz,bit_2
fail_msg 1
bit_2: bit 2,a
jr nz,bit_3
fail_msg 2
bit_3: bit 3,a
jr nz,bit_4
fail_msg 3
bit_4: bit 4,a
jr nz,bit_5
fail_msg 4
bit_5: bit 5,a
jr nz,bit_6
fail_msg 5
bit_6: bit 6,a
jr nz,bit_7
fail_msg 6
bit_7: bit 7,a
jr nz,bit_8
fail_msg 7
bit_8: ld a,0
bit 0,a
jr z,bit_9
fail_msg 8
bit_9: bit 1,a
jr z,bit_10
fail_msg 9
bit_10: bit 2,a
jr z,bit_11
fail_msg 10
bit_11: bit 3,a
jr z,bit_12
fail_msg 11
bit_12: bit 4,a
jr z,bit_13
fail_msg 12
bit_13: bit 5,a
jr z,bit_14
fail_msg 13
bit_14: bit 6,a
jr z,bit_15
fail_msg 14
bit_15: bit 7,a
jr z,bit_16
fail_msg 15
bit_16: ld b,data_80
bit 2,b
jr z,bit_17
fail_msg 16
bit_17: bit 7,b
jr nz,bit_18
fail_msg 17
bit_18: ld c,data_55
bit 7,c
jr z,bit_19
fail_msg 18
bit_19: bit 0,c
jr nz,bit_20
fail_msg 19
bit_20: ld d,data_aa
bit 7,d
jr nz,bit_21
fail_msg 20
bit_21: bit 4,d
jr z,bit_22
fail_msg 21
bit_22: ld e,data_7f
bit 7,e
jr z,bit_23
fail_msg 22
bit_23: bit 3,e
jr nz,bit_24
fail_msg 23
bit_24: ld h,#12 ;bjp was >data_1234
bit 4,h
jr nz,bit_25
fail_msg 24
bit_25: bit 2,h
jr z,bit_26
fail_msg 25
bit_26: ld l,#34 ;bjp was >data_1234
bit 3,l
jr z,bit_27
fail_msg 26
bit_27: bit 2,l
jr nz,bit_28
fail_msg 27
bit_28: ld hl,t_var4
ld (hl),data_55
bit 0,(hl)
jr nz,bit_29
fail_msg 28
bit_29: bit 1,(hl)
jr z,bit_30
fail_msg 29
bit_30: bit 2,(hl)
jr nz,bit_31
fail_msg 30
bit_31: bit 3,(hl)
jr z,bit_32
fail_msg 31
bit_32: bit 4,(hl)
jr nz,bit_33
fail_msg 32
bit_33: bit 5,(hl)
jr z,bit_34
fail_msg 33
bit_34: bit 6,(hl)
jr nz,bit_35
fail_msg 34
bit_35: bit 7,(hl)
jr z,bit_36
fail_msg 35
bit_36: ld ix,t_var3
ld a,data_aa
ld (ix-2),a
bit 0,(ix-2)
jr z,bit_37
fail_msg 36
bit_37: bit 1,(ix-2)
jr nz,bit_38
fail_msg 37
bit_38: bit 2,(ix-2)
jr z,bit_39
fail_msg 38
bit_39: bit 3,(ix-2)
jr nz,bit_40
fail_msg 39
bit_40: bit 4,(ix-2)
jr z,bit_41
fail_msg 40
bit_41: bit 5,(ix-2)
jr nz,bit_42
fail_msg 41
bit_42: bit 6,(ix-2)
jr z,bit_43
fail_msg 42
bit_43: bit 7,(ix-2)
jr nz,bit_44
fail_msg 43
bit_44: ld iy,t_var3
ld a,data_55
ld (iy+2),a
bit 0,(iy+2)
jr nz,bit_45
fail_msg 44
bit_45: bit 1,(iy+2)
jr z,bit_46
fail_msg 45
bit_46: bit 2,(iy+2)
jr nz,bit_47
fail_msg 46
bit_47: bit 3,(iy+2)
jr z,bit_48
fail_msg 47
bit_48: bit 4,(iy+2)
jr nz,bit_49
fail_msg 48
bit_49: bit 5,(iy+2)
jr z,bit_50
fail_msg 49
bit_50: bit 6,(iy+2)
jr nz,bit_51
fail_msg 50
bit_51: bit 7,(iy+2)
jr z,set_0
fail_msg 51
set_0: nop
print "set"
ld a,0
set 0,a
set 2,a
set 4,a
set 6,a
cp a,data_55
jr z,set_1
fail_msg 0
set_1: set 1,a
set 3,a
set 5,a
set 7,a
cp a,data_ff
jr z,set_2
fail_msg 1
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
fail_msg 2
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
fail_msg 3
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
fail_msg 4
set_5: ld e,0
set 7,e
ld a,e
cp a,data_80
jr z,set_6
fail_msg 5
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
fail_msg 6
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
fail_msg 7
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
fail_msg 8
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
fail_msg 9
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
fail_msg 10
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
fail_msg 11
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
fail_msg 12
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
fail_msg 13
res_0: nop
print "res"
ld a,data_ff
res 7,a
cp a,data_7f
jr z,res_1
fail_msg 0
res_1: res 5,a
res 3,a
res 1,a
cp a,data_55
jr z,res_2
fail_msg 1
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
fail_msg 2
res_3: ld b,data_ff
res 7,b
ld a,b
cp a,data_7f
jr z,res_4
fail_msg 3
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
fail_msg 4
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
fail_msg 5
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
fail_msg 6
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
fail_msg 7
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
fail_msg 8
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
fail_msg 9
res_10: res 1,(hl)
res 3,(hl)
res 5,(hl)
res 7,(hl)
ld a,(hl)
cp a,0
jr z,res_11
fail_msg 10
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
fail_msg 11
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
fail_msg 12
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
fail_msg 13
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
fail_msg 14
jp_0: nop
print "jp"
jp jp_1
nop
nop
fail_msg 0
jp_1: ld a,0
and a
jp z,jp_2
fail_msg 1
jp_2: jp nc,jp_3
fail_msg 2
jp_3: ld b,1
sub a,b
jp nz,jp_4
fail_msg 3
jp_4: jp c,jp_5
fail_msg 4
jp_5: jp jp_7
fail_msg 5
jp_6: jp jr_0
fail_msg 6
jp_7: jp jp_6
fail_msg 7
jr_0: jr jr_2
fail_msg 0
jr_1: jr jr_3
fail_msg 1
jr_2: jr jr_1
fail_msg 2
jr_3: ld hl,jp_9
jp (hl)
fail_msg 3
jp_8: ld ix,jp_10
jp (ix)
fail_msg 8
jp_9: jp jp_8
fail_msg 9
jp_10: ld iy,djnz_0
jp (iy)
fail_msg 10
djnz_0: ld b,5
ld a,0
djnz_1: inc a
djnz djnz_1
cp a,5
jr z,call_0
fail_msg 1
call_0: nop
print "call"
ld a,0
call sub1
cp a,data_7f
jr z,call_1
fail_msg 0
call_1: ld a,0
and a
call z,sub2
cp a,data_55
jr z,call_2
fail_msg 1
call_2: ld a,data_aa
and a
call nz,sub3
cp a,data_aa+1
jr z,call_3
fail_msg 2
call_3: ld a,0
cp a,0
call nc,sub4
cp a,data_ff
jr z,call_4
fail_msg 3
call_4: ld a,0
sub a,1
call c,sub5
cp a,data_ff-1
jr z,call_5
fail_msg 4
call_5: ld a,data_7f
sla a
call po,sub6
cp a,data_7f
jr z,call_6
fail_msg 5
call_6: ld a,data_aa
srl a
call pe,sub7
cp a,data_aa
jr z,call_7
fail_msg 6
call_7: ld a,data_80
sra a
call m,sub8
cp a,data_80
jr z,call_8
fail_msg 7
call_8: ld a,data_7f
sra a
call p,sub9
cp a,data_7f
jr z,rst_0
fail_msg 8
rst_0: ld a, 1
ld (rst_state),a
print "rst"
rst #00
cp a,1
jr z,rst_1
fail_msg 0
rst_1: rst #08
cp a,2
jr z,rst_2
fail_msg 1
rst_2: rst #10
cp a,3
jr z,rst_3
fail_msg 2
rst_3: rst #18
cp a,4
jr z,rst_4
fail_msg 3
rst_4: rst #20
cp a,5
jr z,rst_5
fail_msg 4
rst_5: rst #28
cp a,6
jr z,rst_6
fail_msg 5
rst_6: rst #30
cp a,7
jr z,rst_7
fail_msg 6
rst_7: rst #38
cp a,8
jp z,ldi_ops
fail_msg 7
;; skip the in instructions, as they need to be reworked
;; for TV80 environment. (gth)
in_0: in a,(in_port)
cp a,data_7f
jr z,in_1
fail_msg 0
in_1: ld c,in_port
in a,(c)
jr nz,in_2
fail_msg 1
in_2: jp p,in_3
fail_msg 2
in_3: jp pe,in_4
fail_msg 3
in_4: cp a,data_55
jr z,in_5
fail_msg 4
in_5: in a,(c)
jp m,in_6
fail_msg 5
in_6: jp po,in_7
fail_msg 6
in_7: jr nz,in_8
fail_msg 7
in_8: cp a,data_80
jr z,in_9
fail_msg 8
in_9: in a,(c)
jr z,in_10
fail_msg 9
in_10: in b,(c)
jp m,in_11
fail_msg 10
in_11: ld a,b
cp a,data_ff
jr z,in_12
fail_msg 11
in_12: in d,(c)
jp pe,in_13
fail_msg 12
in_13: ld a,d
cp a,data_aa
jr z,in_14
fail_msg 13
in_14: in e,(c)
jp p,in_15
fail_msg 14
in_15: ld a,e
cp a,data_7f
jr z,in_16
fail_msg 15
in_16: in h,(c)
jp pe,in_17
fail_msg 16
in_17: ld a,h
cp a,data_55
jr z,in_18
fail_msg 17
in_18: in l,(c)
jp m,in_19
fail_msg 18
in_19: ld a,l
cp a,data_80
jr z,in_20
fail_msg 19
in_20: in c,(c)
jr z,in_21
fail_msg 20
in_21: ld c,in_port
ld b,2
ld hl,t_var1
ini
jr nz,in_22
fail_msg 21
in_22: ini
jr z,in_23
fail_msg 22
in_23: ld hl,t_var1
ld a,(hl)
cp a,data_ff
jr z,in_24
fail_msg 23
in_24: inc hl
ld a,(hl)
cp a,data_aa
jr z,in_25
fail_msg 24
in_25: ld b,5
ld c,in_port
ld hl,t_var1
inir
jr z,in_26
fail_msg 25
in_26: ld hl,t_var1
ld a,(hl)
cp a,data_7f
jr z,in_27
fail_msg 26
in_27: inc hl
ld a,(hl)
cp a,data_55
jr z,in_28
fail_msg 27
in_28: inc hl
ld a,(hl)
cp a,data_80
jr z,in_29
fail_msg 28
in_29: inc hl
ld a,(hl)
cp a,0
jr z,in_30
fail_msg 29
in_30: inc hl
ld a,(hl)
cp a,data_ff
jr z,in_31
fail_msg 30
in_31: ld b,2
ld c,in_port
ld hl,t_var5
ind
jr nz,in_32
fail_msg 31
in_32: ind
jr z,in_33
fail_msg 32
in_33: ld hl,t_var5
ld a,(hl)
cp a,data_aa
jr z,in_34
fail_msg 33
in_34: dec hl
ld a,(hl)
cp a,data_7f
jr z,in_35
fail_msg 34
in_35: ld b,5
ld c,in_port
ld hl,t_var5
indr
jr z,in_36
fail_msg 35
in_36: ld hl,t_var5
ld a,(hl)
cp a,data_55
jr z,in_37
fail_msg 36
in_37: dec hl
ld a,(hl)
cp a,data_80
jr z,in_38
fail_msg 37
in_38: dec hl
ld a,(hl)
cp a,0
jr z,in_39
fail_msg 38
in_39: dec hl
ld a,(hl)
cp a,data_ff
jr z,in_40
fail_msg 39
in_40: dec hl
ld a,(hl)
cp a,data_aa
jr z,ldi_0
fail_msg 40
ldi_ops: nop
print "ldi"
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
fail_msg 0
ldi_1: ldi
jp po,ldi_2
fail_msg 1
ldi_2: ld hl,t_var3
ld a,(hl)
cp a,#12 ;bjp was >data_1234
jr z,ldi_3
fail_msg 2
ldi_3: inc hl
ld a,(hl)
cp a,#34 ;bjp was >data_1234
jr z,ldir_0
fail_msg 3
ldir_0: ld hl,var1
ld de,t_var1
ld bc,5
ldir
jp po,ldir_1
fail_msg 0
ldir_1: ld hl,t_var1
ld a,(hl)
cp a,data_ff
jr z,ldir_2
fail_msg 1
ldir_2: inc hl
ld a,(hl)
cp a,data_55
jr z,ldir_3
fail_msg 2
ldir_3: inc hl
ld a,(hl)
cp a,data_80
jr z,ldir_4
fail_msg 3
ldir_4: inc hl
ld a,(hl)
cp a,data_aa
jr z,ldir_5
fail_msg 4
ldir_5: inc hl
ld a,(hl)
cp a,data_7f
jr z,ldd_0
fail_msg 5
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
fail_msg 0
ldd_1: ldd
jp po,ldd_2
fail_msg 1
ldd_2: ld hl,t_var3
ld a,(hl)
cp a,#12 ;bjp was >data_1234
jr z,ldd_3
fail_msg 2
ldd_3: dec hl
ld a,(hl)
cp a,#34 ;bjp was >data_1234
jr z,lddr_0
fail_msg 3
lddr_0: ld bc,5
ld hl,var5
ld de,t_var5
lddr
jp po,lddr_1
fail_msg 0
lddr_1: ld hl,t_var1
ld a,(hl)
cp a,data_ff
jr z,lddr_2
fail_msg 1
lddr_2: inc hl
ld a,(hl)
cp a,data_55
jr z,lddr_3
fail_msg 2
lddr_3: inc hl
ld a,(hl)
cp a,data_80
jr z,lddr_4
fail_msg 3
lddr_4: inc hl
ld a,(hl)
cp a,data_aa
jr z,lddr_5
fail_msg 4
lddr_5: inc hl
ld a,(hl)
cp a,data_7f
jr z,cpi_0
fail_msg 5
cpi_0: ld hl,t_var1
ld bc,5
ld a,data_7f
cpi
jp pe,cpi_1
fail_msg 0
cpi_1: jp m,cpi_2
fail_msg 1
cpi_2: jr nz,cpi_3
fail_msg 2
cpi_3: cpi
jp pe,cpi_4
fail_msg 3
cpi_4: jp p,cpi_5
fail_msg 4
cpi_5: jr nz,cpi_6
fail_msg 5
cpi_6: cpi
jp pe,cpi_7
fail_msg 6
cpi_7: jp m,cpi_8
fail_msg 7
cpi_8: jr nz,cpi_9
fail_msg 8
cpi_9: cpi
jp pe,cpi_10
fail_msg 9
cpi_10: jp m,cpi_11
fail_msg 10
cpi_11: jr nz,cpi_12
fail_msg 11
cpi_12: cpi
jp po,cpi_13
fail_msg 12
cpi_13: jp p,cpi_14
fail_msg 13
cpi_14: jr z,cpir_0
fail_msg 14
cpir_0: ld a,data_aa
ld hl,var1
ld bc,5
cpir
jr z,cpir_1
fail_msg 0
cpir_1: jp pe,cpir_2
fail_msg 1
cpir_2: ld a,b
cp a,0
jr z,cpir_3
fail_msg 2
cpir_3: ld a,c
cp a,1
jr z,cpir_4
fail_msg 3
cpir_4: ld a,data_7f
ld hl,var1
ld bc,5
cpir
jp po,cpir_5
fail_msg 4
cpir_5: jr z,cpir_6
fail_msg 5
cpir_6: ld a,#34 ;bjp was >data_1234
ld hl,var1
ld bc,5
cpir
jp po,cpir_7
fail_msg 6
cpir_7: jr nz,cpir_8
fail_msg 7
cpir_8: jp m,cpir_9
fail_msg 8
cpir_9: ld a,data_aa
ld hl,var1
ld bc,3
cpir
jp po,cpir_10
fail_msg 9
cpir_10: jp p,cpir_11
fail_msg 10
cpir_11: jr nz,cpd_0
fail_msg 11
cpd_0: ld a,data_ff
ld hl,var5
ld bc,5
cpd
jp m,cpd_1
fail_msg 0
cpd_1: jp pe,cpd_2
fail_msg 1
cpd_2: jr nz,cpd_3
fail_msg 2
cpd_3: cpd
jp p,cpd_4
fail_msg 3
cpd_4: jp pe,cpd_5
fail_msg 4
cpd_5: jr nz,cpd_6
fail_msg 5
cpd_6: cpd
jp p,cpd_7
fail_msg 6
cpd_7: jp pe,cpd_8
fail_msg 7
cpd_8: jr nz,cpd_9
fail_msg 8
cpd_9: cpd
jp m,cpd_10
fail_msg 9
cpd_10: jp pe,cpd_11
fail_msg 10
cpd_11: jr nz,cpd_12
fail_msg 11
cpd_12: cpd
jp p,cpd_13
fail_msg 12
cpd_13: jp po,cpd_14
fail_msg 13
cpd_14: jr z,cpdr_0
fail_msg 14
cpdr_0: ld a,data_80
ld hl,var5
ld bc,5
cpdr
jp pe,cpdr_1
fail_msg 0
cpdr_1: jp p,cpdr_2
fail_msg 1
cpdr_2: jr z,cpdr_3
fail_msg 2
cpdr_3: ld a,b
cp a,0
jr z,cpdr_4
fail_msg 3
cpdr_4: ld a,c
cp a,2
jr z,cpdr_5
fail_msg 4
cpdr_5: ld a,#34 ;bjp was >data_1234
ld hl,var5
ld bc,5
cpdr
jp po,cpdr_6
fail_msg 5
cpdr_6: jr nz,cpdr_7
fail_msg 6
cpdr_7: jp p,cpdr_8
fail_msg 7
cpdr_8: ld a,#34 ;bjp was >data_1234
ld hl,var5
ld bc,3
cpdr
jp po,cpdr_9
fail_msg 8
cpdr_9: jr nz,cpdr_10
fail_msg 9
cpdr_10: jp m,test_exit
fail_msg 10
;; this section needs to be reworked for the TV80 environment.
;; Since env uses ports for all its test control, this gets
;; partially covered by normal operation. (gth)
;
;the file portfe.xxx must be examined to see if the proper output is generated
;
out_0: 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
fail_msg 0
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
fail_msg 0
otdr_1: out (c),c
ld a,#0d
out (c),a
ld a,#0a
out (c),a
test_exit:
;; complicated pass/fail computation no longer necessary
;; if we got here, we passed
passed
;
;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, (rst_state)
cp 1
jp z,rst_test_ret
ld a, 0
out (#82), a ; disable timeout count
ld a,(pass_count)
or a
jp z,start
ld a,1
ret
rst_test_ret: ret
;
; data
;
var1: db data_ff
var2: db data_55
var3: db data_80
var4: db data_aa
var5: db data_7f
;
mem_init_vals:
dw data_1234
dw data_55aa
dw data_7fff
dw data_8000
dw data_aa55
dw data_ffff
mem_init:
push bc
push de
push hl
;; initialize region from 8000 to 80FF
ld hl, #8000
ld b, #ff
mem_init_loop_1:
ld (hl), 0
inc hl
djnz mem_init_loop_1
;; initialize region from 8100 to 81FF
ld hl, #8100
ld b, #ff
mem_init_loop_2:
ld (hl), 0
inc hl
djnz mem_init_loop_2
;; populate special values from 8005
ld de, #8005
ld hl, mem_init_vals
ld b, 12
mem_init_loop_3:
ld a, (hl)
inc hl
ex de, hl
ld (hl), a
inc hl
ex de, hl
djnz mem_init_loop_3
;; exit
pop hl
pop de
pop bc
ret
t_var1: equ #8000
t_var2: equ #8001
t_var3: equ #8002
t_var4: equ #8003
t_var5: equ #8004
w_var1: equ #8005
w_var2: equ #8007
w_var3: equ #8009
w_var4: equ #800B
w_var5: equ #800D
w_var6: equ #800F
tw_var1: equ #8011
tw_var2: equ #8013
tw_var3: equ #8015
tw_var4: equ #8017
tw_var5: equ #8019
tw_var6: equ #801B
tw_var7: equ #801D
error_cnt: equ #801E
pass_count: equ #801F
fail_num: equ #8020
rst_state: equ #8021
; org #8000
;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 0
;fail_num db 0
;rst_state db 0
;
; org #8100
;stack: ds 128
;stack_end: equ $
;
end start
Go to most recent revision | Compare with Previous | Blame | View Log