URL
https://opencores.org/ocsvn/tv80/tv80/trunk
Subversion Repositories tv80
[/] [tv80/] [trunk/] [tests/] [tvs80/] [tvs80tst.asm] - Rev 84
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_locodeorg #0000;rst_0000: jp rst_0000_1;org #0008;rst_0008: ld a,2ret;org #0010;rst_0010: ld a,3ret;org #0018;rst_0018: ld a,4ret;org #0020;rst_0020: ld a,5ret;org #0028;rst_0028: ld a,6ret;org #0030;rst_0030: ld a,7ret;org #0038;rst_0038: ld a,8ret;code;fail: db 'failed'pass: db 'passed'message_addr: equ #be58in_port: equ #ffout_port: equ #10;data_55: equ #55data_7f: equ #7fdata_80: equ #80data_aa: equ #aadata_ff: equ #ff;data_1234: equ #1234data_55aa: equ #55aadata_7fff: equ #7fffdata_8000: equ #8000data_aa55: equ #aa55data_ffff: equ #ffffstack: equ #8100stack_end: equ #8180stack_end_hi: equ #81stack_end_lo: equ #80ctl_port: equ #80print_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; endmpassed macrold a, 1out (ctl_port), ahalt;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 bcendm;failed macrold a, 2out (ctl_port), ahalt;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 bcendm;;;; subroutine to print a message;; called from within the "print" macro;; expects address to be printed in hl;; preserves all other registersprint_sub:push bcld b, aprint_sub_loop:ld a, (hl)cp #0jp z, print_sub_exitout (print_port), ainc hljp print_sub_loopprint_sub_exit:ld a, bpop bcret;; macro to print out a message;; calls print_sub to do grunt work and minimize code impact of;; stringsprint macro messagepush hl ; preserve existing regsld hl, msg\?call print_subpop hljp exit\?msg\? db messagedb #0adb #00exit\?:endm;; print a hex number between 0-255, stored in the A registerprint_number:push bcld b, a ; store number to be printed in band #f0sra asra asra asra acp a, 10jp p, alpha_0add 48 ; ordinal value of '0'out (print_port), ajp second_digitalpha_0:add 55 ; 'A' - 10out (print_port), asecond_digit:ld a, band #0fcp a, 10jp p, alpha_1add 48out (print_port), ajp print_number_exitalpha_1:add 55 ; 'A' - 10out (print_port), aprint_number_exit:pop bcretfail_text db "Test failed at checkpoint #"db #00fail_routine:ld hl, fail_textcall print_sub ; print out boilerplate textld a, bcall print_number ; print out error numberld a, #0a ; print carriage returnout (print_port), afailed;; macro to print out failure checkpoint numberfail_msg macro number ; fail with checkpoint numberld b, numberjp fail_routineendmprint_ns macro message ; print w/o using subroutinepush hl ; preserve existing regsld hl, msg\?push bcld b, aloop\?:ld a, (hl)cp #0jp z, exit\?out (print_port), ainc hljp loop\?pop hljp exit\?msg\? db messagedb #0adb #00exit\?:ld a, bpop bcpop hlendmstart:print "Starting test"ld a, 1ld (pass_count),ald hl,error_cntld (hl),a ;clear error countcall mem_initnop_1: nopnopprint "Starting ld tests"ld_167: ld a,data_55cp data_55jr z,ld_1fail_msg 167ld_1: ld b,data_7fld a,data_7fcp bjr z,ld_2fail_msg 1ld_2: ld c,data_80ld a,data_80cp cjr z,ld_3fail_msg 2ld_3: ld d,data_aald a,data_aacp djr z,ld_4fail_msg 3ld_4: ld e,data_55ld a,data_55cp ejr z,ld_5fail_msg 4ld_5: ld h,data_7fld a,data_7fcp hjr z,ld_6fail_msg 5ld_6: ld l,data_80ld a,data_80cp ljr z,ld_7fail_msg 6ld_7: ld a,data_55ld b,acp bjr z,ld_8fail_msg 7ld_8: ld c,bcp cjr z,ld_9fail_msg 8ld_9: ld d,ccp djr z,ld_10fail_msg 9ld_10: ld e,dcp ejr z,ld_11fail_msg 10ld_11: ld h,ecp hjr z,ld_12fail_msg 11ld_12: ld l,hcp ljr z,ld_13fail_msg 12ld_13: ld l,data_80ld a,lcp ljr z,ld_14fail_msg 13ld_14: ld h,lcp hjr z,ld_15fail_msg 14ld_15: ld e,hcp ejr z,ld_16fail_msg 15ld_16: ld d,ecp djr z,ld_17fail_msg 16ld_17: ld c,dcp cjr z,ld_18fail_msg 17ld_18: ld b,ccp bjr z,ld_19fail_msg 18ld_19: ld hl,var1ld a,(hl)cp data_ffjr z,ld_20fail_msg 19ld_20: ld hl,var2ld a,data_55ld b,(hl)cp bjr z,ld_21fail_msg 20ld_21: ld hl,var1ld c,(hl)ld a,(hl)cp cjr z,ld_22fail_msg 21ld_22: ld hl,var2ld d,(hl)ld a,(hl)cp djr z,ld_23fail_msg 22ld_23: ld hl,var1ld e,(hl)ld a,(hl)cp ejr z,ld_24fail_msg 23ld_24: ld hl,var2ld a,(hl)ld h,(hl)cp hjr z,ld_25fail_msg 24ld_25: ld hl,var1ld a,(hl)ld l,(hl)cp ljr z,ld_26fail_msg 25ld_26: ld ix,var3ld a,(ix-2)cp data_ffjr z,ld_27fail_msg 26ld_27: ld a,(ix+2)cp data_7fjr z,ld_28fail_msg 27ld_28: ld a,(ix-1)ld b,(ix-1)cp bjr z,ld_29fail_msg 28ld_29: cp data_55jr z,ld_30fail_msg 29ld_30: ld a,(ix+1)ld c,(ix+1)cp cjr z,ld_31fail_msg 30ld_31: cp data_aajr z,ld_32fail_msg 31ld_32: ld d,(ix-2)ld a,(ix-2)cp djr z,ld_33fail_msg 32ld_33: cp data_ffjr z,ld_34fail_msg 33ld_34: ld e,(ix+2)ld a,(ix+2)cp ejr z,ld_35fail_msg 34ld_35: cp data_7fjr z,ld_36fail_msg 35ld_36: ld h,(ix+0)ld a,(ix+0)cp hjr z,ld_37fail_msg 36ld_37: cp data_80jr z,ld_38fail_msg 37ld_38: ld l,(ix-1)ld a,(ix-1)cp ljr z,ld_39fail_msg 38ld_39: cp data_55jr z,ld_40fail_msg 39ld_40: ld iy,var3ld a,(iy-2)cp data_ffjr z,ld_41fail_msg 40ld_41: ld a,(iy+2)cp data_7fjr z,ld_42fail_msg 41ld_42: ld b,(iy-1)ld a,(iy-1)cp bjr z,ld_43fail_msg 42ld_43: cp data_55jr z,ld_44fail_msg 43ld_44: ld c,(iy+1)ld a,(iy+1)cp cjr z,ld_45fail_msg 44ld_45: cp data_aajr z,ld_46fail_msg 45ld_46: ld d,(iy-2)ld a,(iy-2)cp djr z,ld_47fail_msg 46ld_47: cp data_ffjr z,ld_48fail_msg 47ld_48: ld e,(iy+2)ld a,(iy+2)cp ejr z,ld_49fail_msg 48ld_49: cp data_7fjr z,ld_50fail_msg 49ld_50:ld h,(iy+0)ld a,(iy+0)cp hjr z,ld_51fail_msg 50ld_51: cp data_80jr z,ld_52fail_msg 51ld_52: ld l,(iy-2)ld a,(iy-2)cp ljr z,ld_53fail_msg 52ld_53: cp data_ffjr z,ld_54fail_msg 53ld_54: ld hl,t_var1ld a,data_aa+1ld (hl),ald b,(hl)cp bjr z,ld_55fail_msg 54ld_55: cp data_aa+1jr z,ld_56fail_msg 55ld_56: ld b,data_80+1ld (hl),bld a,(hl)cp bjr z,ld_57fail_msg 56ld_57: cp data_80+1jr z,ld_58fail_msg 57ld_58: ld c,data_55-1ld (hl),cld a,(hl)cp cjr z,ld_59fail_msg 58ld_59: cp data_55-1jr z,ld_60fail_msg 59ld_60: ld d,data_ff-1ld (hl),dld a,(hl)cp djr z,ld_61fail_msg 60ld_61: cp data_ff-1jr z,ld_62fail_msg 61ld_62: ld e,data_55+1ld (hl),eld a,(hl)cp ejr z,ld_63fail_msg 62ld_63: cp data_55+1jr z,ld_64fail_msg 63ld_64: ld (hl),hld a,(hl)cp hjr z,ld_65fail_msg 64ld_65: cp #80 ;bjp guess >t_var1jr z,ld_66fail_msg 65ld_66: ld (hl),lld a,(hl)cp ljr z,ld_67fail_msg 66ld_67: cp a, #00 ;bjp guess <t_var1jr z,ld_68fail_msg 67ld_68: ld ix,t_var3ld a,data_55ld (ix-2),ald a,0ld a,(ix-2)cp data_55jr z,ld_69fail_msg 68ld_69: ld a,data_80ld (ix+2),ald a,0ld a,(ix+2)cp data_80jr z,ld_70fail_msg 69ld_70: ld b,data_7fld (ix-1),bld a,(ix-1)cp bjr z,ld_71fail_msg 70ld_71: cp data_7fjr z,ld_72fail_msg 71ld_72: ld c,data_aald (ix+1),cld a,(ix+1)cp cjr z,ld_73fail_msg 72ld_73: cp data_aajr z,ld_74fail_msg 73ld_74: ld d,data_80ld (ix+0),dld a,(ix+0)cp djr z,ld_75fail_msg 74ld_75: cp data_80jr z,ld_76fail_msg 75ld_76: ld e,data_55+2ld (ix-2),eld a,(ix-2)cp ejr z,ld_77fail_msg 76ld_77: cp data_55+2jr z,ld_78fail_msg 77ld_78: ld h,data_aa-2ld (ix+2),hld a,(ix+2)cp hjr z,ld_79fail_msg 78ld_79: cp data_aa-2jr z,ld_80fail_msg 79ld_80: ld l,data_aa+2ld (ix-1),lld a,(ix-1)cp ljr z,ld_81fail_msg 80ld_81: cp data_aa+2jr z,ld_82fail_msg 81ld_82: ld iy,t_var3ld a,data_ffld (iy-2),ald a,0ld a,(iy-2)cp data_ffjr z,ld_83fail_msg 82ld_83: ld a,data_7fld (iy+2),ald a,0ld a,(iy+2)cp data_7fjr z,ld_84fail_msg 83ld_84: ld b,data_55ld (iy-1),bld a,(iy-1)cp bjr z,ld_85fail_msg 84ld_85: cp data_55jr z,ld_86fail_msg 85ld_86: ld c,data_aald (iy+1),cld a,(iy+1)cp cjr z,ld_87fail_msg 86ld_87: cp data_aajr z,ld_88fail_msg 87ld_88: ld d,data_80ld (iy+0),dld a,(iy+0)cp djr z,ld_89fail_msg 88ld_89: cp data_80jr z,ld_90fail_msg 89ld_90: ld e,data_ff-2ld (iy-2),eld a,(iy-2)cp ejr z,ld_91fail_msg 90ld_91: cp data_ff-2jr z,ld_92fail_msg 91ld_92: ld h,data_7f-3ld (iy+2),hld a,(iy+2)cp hjr z,ld_93fail_msg 92ld_93: cp data_7f-3jr z,ld_94fail_msg 93ld_94: ld l,data_55-5ld (iy-1),lld a,(iy-1)cp ljr z,ld_95fail_msg 94ld_95: cp data_55-5jr z,ld_96fail_msg 95ld_96: ld hl,t_var1ld (hl),data_80+10ld a,(hl)cp data_80+10jr z,ld_97fail_msg 96ld_97: ld ix,t_var3ld (ix-2),data_55-10ld a,(ix-2)cp data_55-10jr z,ld_98fail_msg 97ld_98: ld (ix+2),data_55+10ld a,(ix+2)cp data_55+10jr z,ld_99fail_msg 98ld_99: ld iy,t_var2ld (iy-1),data_80+17ld a,(iy-1)cp data_80+17jr z,ld_100fail_msg 99ld_100:ld (iy+1),data_80-17ld a,(iy+1)cp data_80-17jr z,ld_101fail_msg 100ld_101: ld hl,t_var5ld bc,t_var5ld (hl),data_aa-10ld a,(bc)cp data_aa-10jr z,ld_102fail_msg 101ld_102: ld hl,t_var3ld de,t_var3ld (hl),data_aa+10ld a,(de)cp data_aa+10jr z,ld_103fail_msg 102ld_103: ld hl,t_var2ld (hl),data_7f-25ld a,(t_var2)cp data_7f-25jr z,ld_104fail_msg 103ld_104: ld hl,t_var4ld bc,t_var4ld a,data_55-20ld (bc),ald b,(hl)cp bjr z,ld_105fail_msg 104ld_105: ld a,bcp data_55-20jr z,ld_106fail_msg 105ld_106: ld hl,t_var5ld de,t_var5ld a,data_55+20ld (de),ald c,(hl)cp cjr z,ld_107fail_msg 106ld_107: ld a,ccp data_55+20jr z,ld_108fail_msg 107ld_108: ld hl,t_var4ld a,data_ff-24ld (t_var4),ald e,(hl)cp ejr z,ld_109fail_msg 108ld_109: ld a,ecp data_ff-24jr z,ld_110fail_msg 109; commented out ld_110 so test can continue; may depend on side-effect in original Z80ld_110: ld a, data_55jp 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_1234ld a, #12 ;bjp guess >data_1234cp bjr z,ld_126fail_msg 125ld_126: ld a, #34 ;bjp guess <data_1234cp cjr z,ld_127fail_msg 126ld_127: ld de,data_55aald a,data_55cp djr z,ld_128fail_msg 127ld_128: ld a,data_aacp ejr z,ld_129fail_msg 128ld_129: ld hl,data_7fffld a,data_7fcp hjr z,ld_130fail_msg 129ld_130: ld a,data_ffcp ljr z,ld_131fail_msg 130ld_131: ld sp,data_aa55ld hl,0add hl,spld a,data_aacp hjr z,ld_132fail_msg 131ld_132: ld a,data_55cp ljr z,ld_133fail_msg 132ld_133: ld ix,data_ffffld hl,0ld sp,ixadd hl,spld a,data_ffcp hjr z,ld_134fail_msg 133ld_134: cp ljr z,ld_135fail_msg 134ld_135: ld iy,data_1234ld hl,0ld sp,iyadd hl,spld a,#12 ;bjp was >data_1234cp hjr z,ld_136fail_msg 135ld_136: ld a,#34 ;bjp was >data_1234cp ljr z,ld_137fail_msg 136ld_137: ld hl,(w_var2)ld a,data_55cp hjr z,ld_138fail_msg 137ld_138: ld a,data_aacp ljr z,ld_139fail_msg 138ld_139: ld bc,(w_var1)ld a,#12 ;bjp was >data_1234cp bjr z,ld_140fail_msg 139ld_140: ld a,#34 ;bjp was >data_1234cp cjr z,ld_141fail_msg 140ld_141: ld de,(w_var3)ld a,data_7fcp djr z,ld_142fail_msg 141ld_142: ld a,data_ffcp ejr z,ld_143fail_msg 142ld_143: ld hl,(w_var4)ld a,data_80cp hjr z,ld_144fail_msg 143ld_144: ld a,0cp ljr z,ld_145fail_msg 144ld_145: ld sp,(w_var5)ld hl,0add hl,spld a,data_aacp hjr z,ld_146fail_msg 145ld_146: ld a,data_55cp ljr z,ld_147fail_msg 146ld_147: ld ix,(w_var6)ld hl,0ld sp,ixadd hl,spld a,data_ffcp hjr z,ld_148fail_msg 147ld_148: cp ljr z,ld_149fail_msg 148ld_149: ld iy,(w_var1)ld hl,0ld sp,iyadd hl,spld a,#12 ;bjp was >data_1234cp hjr z,ld_150fail_msg 149ld_150:ld sp, stack_end ; reset stack pointer to EOMld a,#34 ;bjp was >data_1234cp ljr z,ld_151fail_msg 150ld_151: ld hl,data_1234ld (tw_var1),hlld bc,(tw_var1)ld a,#12 ;bjp was >data_1234cp bjr z,ld_152fail_msg 151ld_152: ld a,#34 ;bjp was >data_1234cp cjr z,ld_153fail_msg 152ld_153: ld bc,data_55aald (tw_var2),bcld hl,(tw_var2)ld a,data_55cp hjr z,ld_154fail_msg 153ld_154: ld a,data_aacp ljr z,ld_155fail_msg 154ld_155: ld de,data_7fffld (tw_var3),deld hl,(tw_var3)ld a,data_7fcp hjr z,ld_156fail_msg 155ld_156: ld a,data_ffcp ljr z,ld_157fail_msg 156ld_157: ld hl,data_8000ld (tw_var4),hlld bc,(tw_var4)ld a,data_80cp bjr z,ld_158fail_msg 157ld_158: ld a,0cp cjr z,ld_159fail_msg 158ld_159: ld sp,data_aa55ld (tw_var5),spld hl,(tw_var5)ld a,data_aacp hjr z,ld_160fail_msg 159ld_160: ld a,data_55cp ljr z,ld_161fail_msg 160ld_161: ld ix,data_ffffld (tw_var6),ixld hl,(tw_var6)ld a,data_ffcp hjr z,ld_162fail_msg 161ld_162: cp ljr z,ld_163fail_msg 162ld_163: ld iy,data_1234ld (tw_var7),iyld hl,(tw_var7)ld a,#12 ;bjp was >data_1234cp hjr z,ld_164fail_msg 163ld_164: ld a,#34 ;bjp was >data_1234cp ljr z,ld_165fail_msg 164ld_165: ld hl,data_55aald sp,hlld hl,0add hl,spld a,data_55cp hjr z,ld_166fail_msg 165ld_166: ld a,data_aacp ljr z,push_0fail_msg 166push_0: ld sp,stack_endprint "push_0"ld bc,data_1234push bcld bc,0pop bcld a,#12 ;bjp was >data_1234cp bjr z,push_1fail_msg 0push_1: ld a,#34 ;bjp was >data_1234cp cjr z,push_2fail_msg 1push_2: ld de,data_55aapush deld de,0pop deld a,data_55cp djr z,push_3fail_msg 2push_3: ld a,data_aacp ejr z,push_4fail_msg 3push_4: ld hl,data_7fffpush hlld hl,0pop hlld a,data_7fcp hjr z,push_5fail_msg 4push_5: ld a,data_ffcp ljr z,push_6fail_msg 5push_6: ld a,data_80push af ;f depends on previous compareld hl,0pop hlcp hjr z,push_7fail_msg 6push_7: ld a,lcp #42jr z,push_8push_8: ld h,data_55ld l,data_80+#41ld a,0push hlpop afjp m,push_9fail_msg 8push_9: jr z,push_10fail_msg 9push_10: jr c,push_11fail_msg 10push_11: cp data_55jr z,push_12fail_msg 11push_12: ld ix,data_aa55ld bc,0push ixpop bcld a,data_aacp bjr z,push_13fail_msg 12push_13: ld a,data_55cp cjr z,push_14fail_msg 13push_14: ld iy,data_7fffld de,0push iypop deld a,data_7fcp djr z,push_15fail_msg 14push_15: ld a,data_ffcp ejr z,push_16fail_msg 15push_16: ld de,data_1234ld ix,0ld hl,0push depop ixld sp,ixadd hl,spld a,#12 ;bjp was >data_1234cp hjr z,push_17fail_msg 16push_17: ld a,#34 ;bjp was >data_1234cp ljr z,push_18fail_msg 17push_18: ld sp,stack_endld bc,data_55aald iy,0ld hl,0push bcpop iyld sp,iyadd hl,spld a,data_55cp hjr z,push_19fail_msg 18push_19: ld a,data_aacp ljr z,push_20fail_msg 19push_20: ld sp,stack_endprint "ex_0"ex_0: ld de,data_1234ld hl,data_ffffex de,hlld a,data_ffcp djr z,ex_1fail_msg 0ex_1: cp ejr z,ex_2fail_msg 1ex_2: ld a,#12 ;bjp was >data_1234cp hjr z,ex_3fail_msg 2ex_3: ld a,#34 ;bjp was >data_1234cp ljr z,ex_4fail_msg 3ex_4: ld h,0ld l,0push hlpop afex af,af'ld h,data_7fld l,data_80+#41push hlpop afex af,af'cp 0jr z,ex_5fail_msg 4ex_5: ex af,af'jp m,ex_6fail_msg 5ex_6: jr z,ex_7fail_msg 6ex_7: cp data_7fjr z,ex_8fail_msg 7ex_8: ld hl,0ld bc,0ld de,0exxld hl,data_1234ld bc,data_7fffld de,data_aa55exxld a,0cp hjr z,ex_9fail_msg 8ex_9: cp ljr z,ex_10fail_msg 9ex_10: cp djr z,ex_11fail_msg 10ex_11: cp ejr z,ex_12fail_msg 11ex_12: cp bjr z,ex_13fail_msg 12ex_13: cp cjr z,ex_14fail_msg 13ex_14: exxld a,#12 ;bjp was >data_1234cp hjr z,ex_15fail_msg 14ex_15: ld a,#34 ;bjp was >data_1234cp ljr z,ex_16fail_msg 15ex_16: ld a,data_aacp djr z,ex_17fail_msg 16ex_17: ld a,data_55cp ejr z,ex_18fail_msg 17ex_18: ld a,data_7fcp bjr z,ex_19fail_msg 18ex_19: ld a,data_ffcp cjr z,ex_20fail_msg 19ex_20: ld bc,data_55aald hl,data_7fffpush bcex (sp),hlpop bcld a,data_7fcp bjr z,ex_21fail_msg 20ex_21: ld a,data_ffcp cjr z,ex_22fail_msg 21ex_22: ld a,data_55cp hjr z,ex_23fail_msg 22ex_23: ld a,data_aacp ljr z,ex_24fail_msg 23ex_24: ld bc,data_ffffld ix,data_8000ld hl,0push bcex (sp),ixpop bcld sp,ixadd hl,spld a,data_80cp bjr z,ex_25fail_msg 24ex_25: ld a,0cp cjr z,ex_26fail_msg 25ex_26: ld a,data_ffcp hjr z,ex_27fail_msg 26ex_27: cp ljr z,ex_28fail_msg 27ex_28: ld sp,stack_endld bc,data_1234ld iy,data_7fffld hl,0push bcex (sp),iypop bcld sp,iyadd hl,spld a,data_7fcp bjr z,ex_29fail_msg 28ex_29: ld a,data_ffcp cjr z,ex_30fail_msg 29ex_30: ld a,#12 ;bjp was >data_1234cp hjr z,ex_31fail_msg 30ex_31: ld a,#34 ;bjp was >data_1234cp ljr z,add_0fail_msg 31add_0: ld sp,stack_end ; reset stack after EX operationsprint "add_0"ld a,0ld b,data_7fadd a,bcp data_7fjr z,add_1fail_msg 0add_1: ld a,0ld b,0add a,bjr z,add_2fail_msg 1add_2: ld b,data_55add a,bjr nz,add_3fail_msg 2add_3: cp data_55jr z,add_4fail_msg 3add_4: ld a,data_ffld b,1add a,bjr c,add_5fail_msg 4add_5: add a,bjr nc,add_6fail_msg 5add_6: ld a,data_ffld b,0add a,bjp m,add_7fail_msg 6add_7: ld b,1add a,bjp p,add_8fail_msg 7add_8: ld a,data_7fld b,1add a,bjp pe,add_9fail_msg 8add_9: add a,bjp po,add_10fail_msg 9add_10: ld a,data_55ld c,2add a,ccp data_55+2jr z,add_11fail_msg 10add_11: ld a,data_80add a,ccp data_80+2jr z,add_12fail_msg 11add_12: ld a,data_aald d,data_55add a,dcp data_aa+data_55jr z,add_13fail_msg 12add_13: ld a,data_aald e,2add a,ecp data_aa+2jr z,add_14fail_msg 13add_14: ld a,data_55ld h,24add a,hcp data_55+24jr z,add_15fail_msg 14add_15: ld a,data_7f-10ld l,10add a,lcp data_7fjr z,add_16fail_msg 15add_16: ld a,1add a,data_7fjp pe,add_17fail_msg 16add_17: jp m,add_18fail_msg 17add_18: jr nz,add_19fail_msg 18add_19: cp data_80jr z,add_20fail_msg 19add_20: ld a,data_55add a,1jp po,add_21fail_msg 20add_21: jp p,add_22fail_msg 21add_22: jr nc,add_23fail_msg 22add_23: cp data_55+1jr z,add_24fail_msg 23add_24: ld a,data_ffadd a,1jr c,add_25fail_msg 24add_25: jr z,add_26fail_msg 25add_26: add a,1jr nc,add_27fail_msg 26add_27: jr nz,add_28fail_msg 27add_28: cp 1jr z,add_29fail_msg 28add_29: ld hl,var2ld a,2add a,(hl)jp po,add_30fail_msg 29add_30: jp p,add_31fail_msg 30add_31: jr nz,add_32fail_msg 31add_32: jr nc,add_33fail_msg 32add_33: cp data_55+2jr z,add_34fail_msg 33add_34: ld hl,var1ld a,1add a,(hl)jr c,add_35fail_msg 34add_35: jr z,add_36fail_msg 35add_36: ld hl,var5ld a,1add a,(hl)jp m,add_37fail_msg 36add_37: jp pe,add_38fail_msg 37add_38: cp data_80jr z,add_39fail_msg 38add_39: ld ix,var3ld a,1add a,(ix-1)jp po,add_40fail_msg 39add_40: jp p,add_41fail_msg 40add_41: jr nz,add_42fail_msg 41add_42: jr nc,add_43fail_msg 42add_43: cp data_55+1jr z,add_44fail_msg 43add_44: ld a,1add a,(ix+2)jp pe,add_45fail_msg 44add_45: jp m,add_46fail_msg 45add_46: cp data_80jr z,add_47fail_msg 46add_47: ld a,1add a,(ix-2)jr c,add_48fail_msg 47add_48: jr z,add_49fail_msg 48add_49: add a,1jr nc,add_50fail_msg 49add_50: jr nz,add_51fail_msg 50add_51: cp 1jr z,add_52fail_msg 51add_52: ld iy,var3ld a,10add a,(iy-1)jp po,add_53fail_msg 52add_53: jp p,add_54fail_msg 53add_54: jr nz,add_55fail_msg 54add_55: jr nc,add_56fail_msg 55add_56: cp data_55+10jr z,add_57fail_msg 56add_57: ld a,1add a,(iy+2)jp pe,add_58fail_msg 57add_58: jp m,add_59fail_msg 58add_59: add a,1jp po,add_60fail_msg 59add_60: cp data_80+1jr z,add_61fail_msg 60add_61: ld a,1add a,(iy-2)jr z,add_62fail_msg 61add_62: jr c,add_63fail_msg 62add_63: add a,1jr nc,add_64fail_msg 63add_64: jr nz,add_65fail_msg 64add_65: cp 1jr z,add_66fail_msg 65add_66: ld a,data_ffadd a,data_80jp p,add_67fail_msg 66add_67: jp pe,add_68fail_msg 67add_68: jr c,add_69fail_msg 68add_69: add a,1jp pe,add_70fail_msg 69add_70: jp m,add_71fail_msg 70add_71: jr nc,add_72fail_msg 71add_72: add a,1jp po,add_73fail_msg 72add_73: cp data_80+1jr z,adc_0fail_msg 73adc_0: nopprint "adc_0"ld a,0 ;clear cryadd a,0ld b,data_7fadc a,b ;a=7f cry=0jp p,adc_1fail_msg 0adc_1: jp po,adc_2fail_msg 1adc_2: jr nc,adc_3fail_msg 2adc_3: jr nz,adc_4fail_msg 3adc_4: ld b,1adc a,b ;a=80 cry=0jp pe,adc_5 ;jp oflfail_msg 4adc_5: jp m,adc_6fail_msg 5adc_6: cp data_80jr z,adc_7 ;z=0 ofl=0 cry=0 (borrow)fail_msg 6adc_7: ld a,data_ffld b,1adc a,b ;ff+1+0jr c,adc_8fail_msg 7adc_8: jr z,adc_9fail_msg 8adc_9: adc a,bjr nc,adc_10fail_msg 9adc_10: jr nz,adc_11fail_msg 10adc_11: cp 2jr z,adc_12fail_msg 11adc_12: ld a,data_ffld c,0adc a,cjp m,adc_13fail_msg 12adc_13: jr nc,adc_14fail_msg 13adc_14: ld c,2adc a,cjp p,adc_15fail_msg 14adc_15: jr c,adc_16fail_msg 15adc_16: ld c,0adc a,ccp 2jr z,adc_17fail_msg 16adc_17: ld a,data_ffld d,1adc a,djr c,adc_18fail_msg 17adc_18: ld d,0adc a,djr nc,adc_19fail_msg 18adc_19: cp 1jr z,adc_20fail_msg 19adc_20: ld a,data_aald e,data_7fadc a,ejr c,adc_21fail_msg 20adc_21: ld e,#2badc a,ecp data_55jr z,adc_22fail_msg 21adc_22: ld a,data_ffld h,1adc a,hjr c,adc_23fail_msg 22adc_23: adc a,hcp 2jr z,adc_24fail_msg 23adc_24: ld a,data_ffld l,1adc a,ljr c,adc_25fail_msg 24adc_25: adc a,lcp 2jr z,adc_26fail_msg 25adc_26: ld a,0adc a,data_7fjp po,adc_27fail_msg 26adc_27: jp p,adc_28fail_msg 27adc_28: jr nc,adc_29fail_msg 28adc_29: jr nz,adc_30fail_msg 29adc_30: adc a,1jp pe,adc_31fail_msg 30adc_31: jp m,adc_32fail_msg 31adc_32: cp data_80jr z,adc_33fail_msg 32adc_33: ld a,data_ffadc a,1jr c,adc_34fail_msg 33adc_34: jr z,adc_35fail_msg 34adc_35: adc a,1jr nc,adc_36fail_msg 35adc_36: jr nz,adc_37fail_msg 36adc_37: cp 2jr z,adc_38fail_msg 37adc_38: ld hl,var5ld a,0adc a,(hl)jp p,adc_39fail_msg 38adc_39: jp po,adc_40fail_msg 39adc_40: jr nz,adc_41fail_msg 40adc_41: jr nc,adc_42fail_msg 41adc_42: ld a,1adc a,(hl)jp m,adc_43fail_msg 42adc_43: jp pe,adc_44fail_msg 43adc_44: cp data_80jr z,adc_45fail_msg 44adc_45: ld hl,var1ld a,1adc a,(hl)jr z,adc_46fail_msg 45adc_46: jr c,adc_47fail_msg 46adc_47: ld hl,var2adc a,(hl)jr nc,adc_48fail_msg 47adc_48: jr nz,adc_49fail_msg 48adc_49: cp data_55+1jr z,adc_50fail_msg 49adc_50: ld ix,var3ld a,0adc a,(ix+2)jp p,adc_51fail_msg 50adc_51: jp po,adc_52fail_msg 51adc_52: jr nc,adc_53fail_msg 52adc_53: jr nz,adc_54fail_msg 53adc_54: ld a,1adc a,(ix+2)jp m,adc_55fail_msg 54adc_55: jp pe,adc_56fail_msg 55adc_56: cp data_80jr z,adc_57fail_msg 56adc_57: ld a,1adc a,(ix-2)jr c,adc_58fail_msg 57adc_58: jr z,adc_59fail_msg 58adc_59: adc a,(ix-1)jr nc,adc_60fail_msg 59adc_60: jr nz,adc_61fail_msg 60adc_61: cp data_55+1jr z,adc_62fail_msg 61adc_62: ld iy,var3ld a,0adc a,(ix+2)jp p,adc_63fail_msg 62adc_63: jp po,adc_64fail_msg 63adc_64: jr nc,adc_65fail_msg 64adc_65: jr nz,adc_66fail_msg 65adc_66: ld a,1adc a,(iy+2)jp m,adc_67fail_msg 66adc_67: jp pe,adc_68fail_msg 67adc_68: cp data_80jr z,adc_69fail_msg 68adc_69: ld a,1adc a,(iy-2)jr c,adc_70fail_msg 69adc_70: jr z,adc_71fail_msg 70adc_71: adc a,(iy-1)jr nc,adc_72fail_msg 71adc_72: jr nz,adc_73fail_msg 72adc_73: cp data_55+1jr z,adc_74fail_msg 73adc_74: ld a,data_ffadd a,0adc a,data_80jp p,adc_75fail_msg 74adc_75: jp pe,adc_76fail_msg 75adc_76: jr nz,adc_77fail_msg 76adc_77: adc a,0jp m,adc_78fail_msg 77adc_78: jp pe,adc_79fail_msg 78adc_79: adc a,1jp po,adc_80fail_msg 79adc_80: cp data_80+1jr z,sub_0fail_msg 80sub_0: nopprint "sub_0"ld a,0ld b,1sub a,bjp m,sub_1fail_msg 0sub_1: jp po,sub_2fail_msg 1sub_2: jr c,sub_3fail_msg 2sub_3: jr nz,sub_4fail_msg 3sub_4: sub a,bjr nc,sub_5fail_msg 4sub_5: cp data_ff-1jr z,sub_6fail_msg 5sub_6: ld a,1ld b,0sub a,bjr nz,sub_7fail_msg 6sub_7: jp p,sub_8fail_msg 7sub_8: ld b,1sub a,bjr z,sub_9fail_msg 8sub_9: sub a,bjp m,sub_10fail_msg 9sub_10: cp data_ffjr z,sub_11fail_msg 10sub_11: ld a,data_80ld b,data_7fsub a,bjp pe,sub_12fail_msg 11sub_12: sub a,bjp po,sub_13fail_msg 12sub_13: cp data_80+2jr z,sub_14fail_msg 13sub_14: ld a,data_55ld c,data_55sub a,cjr z,sub_15fail_msg 14sub_15: ld c,1sub a,cjp m,sub_16fail_msg 15sub_16: jr c,sub_17fail_msg 16sub_17: cp data_ffjr z,sub_18fail_msg 17sub_18: ld a,data_55ld d,data_7fsub a,djr c,sub_19fail_msg 18sub_19: cp data_55-data_7fjr z,sub_20fail_msg 19sub_20: ld a,0ld e,data_ffsub a,ejr c,sub_21fail_msg 20sub_21: cp 1jr z,sub_22fail_msg 21sub_22: ld a,data_ffld h,data_80sub a,hjp p,sub_23fail_msg 22sub_23: cp data_7fjr z,sub_24fail_msg 23sub_24: ld a,data_aald l,data_ffsub a,ljr c,sub_25fail_msg 24sub_25: cp data_aa+1jr z,sub_26fail_msg 25sub_26: ld a,data_7fsub a,data_ffjp pe,sub_27fail_msg 26sub_27: jp m,sub_28fail_msg 27sub_28: sub a,1jp p,sub_29fail_msg 28sub_29: sub a,1jp po,sub_30fail_msg 29sub_30: jr nz,sub_31fail_msg 30sub_31: sub a,data_7f-1jr z,sub_32fail_msg 31sub_32: ld a,0sub a,data_ffjr c,sub_33fail_msg 32sub_33: sub a,1jr z,sub_34fail_msg 33sub_34: jr nc,sub_35fail_msg 34sub_35: ld hl,var1ld a,data_7fsub a,(hl)jp m,sub_36fail_msg 35sub_36: jp pe,sub_37fail_msg 36sub_37: jr c,sub_38fail_msg 37sub_38: ld hl,var3sub a,(hl)jp p,sub_39fail_msg 38sub_39: jp po,sub_40fail_msg 39sub_40: jr nc,sub_41fail_msg 40sub_41 jr z,sub_42fail_msg 40sub_42: ld hl,var2sub a,(hl)jr nz,sub_43fail_msg 42sub_43: cp data_aa+1jr z,sub_44fail_msg 43sub_44: ld ix,var3ld a,data_7fsub a,(ix-2)jp m,sub_45fail_msg 44sub_45: jp pe,sub_46fail_msg 45sub_46: jr c,sub_47fail_msg 46sub_47: sub a,(ix+0)jp p,sub_48fail_msg 47sub_48: jp po,sub_49fail_msg 48sub_49: jr nc,sub_50fail_msg 49sub_50: jr z,sub_51fail_msg 50sub_51: sub a,(ix+2)jr nz,sub_52fail_msg 51sub_52: cp data_80+1jr z,sub_53fail_msg 52sub_53: ld iy,var3ld a,data_7fsub a,(iy-2)jp m,sub_54fail_msg 53sub_54: jp pe,sub_55fail_msg 54sub_55: jr c,sub_56fail_msg 55sub_56: jr nz,sub_57fail_msg 56sub_57: sub a,(iy+0)jp p,sub_58fail_msg 57sub_58: jp po,sub_59fail_msg 58sub_59: jr nc,sub_60fail_msg 59sub_60: jr z,sub_61fail_msg 60sub_61: sub a,(iy+2)jr nz,sub_62fail_msg 61sub_62: cp data_80+1jr z,sbc_0fail_msg 62sbc_0: nopprint "sbc_0"ld a,data_7fld b,0sub a,b ;clear carry flagld b,data_ffsbc a,bjp m,sbc_1fail_msg 0sbc_1: jp pe,sbc_2fail_msg 1sbc_2: jr c,sbc_3fail_msg 2sbc_3: jr nz,sbc_4fail_msg 3sbc_4: ld b,data_7fsbc a,bjp p,sbc_5fail_msg 4sbc_5: jp pe,sbc_6fail_msg 5sbc_6: jr nc,sbc_7fail_msg 6sbc_7: jr z,sbc_8fail_msg 7sbc_8: ld b,data_ffsbc a,bjp po,sbc_9fail_msg 8sbc_9: jr nz,sbc_10fail_msg 9sbc_10: ld b,0sbc a,bjr z,sbc_11fail_msg 10sbc_11: ld a,data_aald c,data_ffsbc a,cjr c,sbc_12fail_msg 11sbc_12: ld c,0sbc a,cjr nc,sbc_13fail_msg 12sbc_13: cp data_aajr z,sbc_14fail_msg 13sbc_14: ld a,data_55ld d,data_ffsbc a,djr c,sbc_15fail_msg 14sbc_15: ld d,0sbc a,djr nc,sbc_16fail_msg 15sbc_16: cp data_55jr z,sbc_17fail_msg 16sbc_17: ld a,data_aald e,data_ffsbc a,ejr c,sbc_18fail_msg 17sbc_18: ld e,0sbc a,ejr nc,sbc_19fail_msg 18sbc_19: cp data_aajr z,sbc_20fail_msg 19sbc_20: ld a,data_55ld h,data_ffsbc a,hjr c,sbc_21fail_msg 20sbc_21: ld h,0sbc a,hjr nc,sbc_22fail_msg 21sbc_22: cp data_55jr z,sbc_23fail_msg 22sbc_23: ld a,data_aald l,data_ffsbc a,ljr c,sbc_24fail_msg 23sbc_24: ld l,0sbc a,ljr nc,sbc_25fail_msg 24sbc_25: cp data_aajr z,sbc_26fail_msg 25sbc_26: ld a,data_7fsbc a,data_ffjp m,sbc_27fail_msg 26sbc_27: jp pe,sbc_28fail_msg 27sbc_28: jr c,sbc_29fail_msg 28sbc_29: jr nz,sbc_30fail_msg 29sbc_30: sbc a,data_7fjp p,sbc_31fail_msg 30sbc_31: jp pe,sbc_32fail_msg 31sbc_32: jr nc,sbc_33fail_msg 32sbc_33: jr z,sbc_34fail_msg 33sbc_34: sbc a,data_ffjr nz,sbc_35fail_msg 34sbc_35: cp 1jr z,sbc_36fail_msg 35sbc_36: ld hl,var1ld a,data_7fsbc a,(hl)jp m,sbc_37fail_msg 36sbc_37: jp pe,sbc_38fail_msg 37sbc_38: jr c,sbc_39fail_msg 38sbc_39: jr nz,sbc_40fail_msg 39sbc_40: ld hl,var5sbc a,(hl)jp p,sbc_41fail_msg 40sbc_41: jp pe,sbc_42fail_msg 41sbc_42: jr nc,sbc_43fail_msg 42sbc_43: jr z,sbc_44fail_msg 43sbc_44: ld hl,var2sbc a,(hl)jr nz,sbc_45fail_msg 44sbc_45: cp data_aa+1jr z,sbc_46fail_msg 45sbc_46: ld ix,var3ld a,data_7fsbc a,(ix-2)jp m,sbc_47fail_msg 46sbc_47: jp pe,sbc_48fail_msg 47sbc_48: jr c,sbc_49fail_msg 48sbc_49: jr nz,sbc_50fail_msg 49sbc_50: sbc a,(ix+2)jp p,sbc_51fail_msg 50sbc_51: jp pe,sbc_52fail_msg 51sbc_52: jr nc,sbc_53fail_msg 52sbc_53: jr z,sbc_54fail_msg 53sbc_54: sbc a,(ix-1)jr nz,sbc_55fail_msg 54sbc_55: cp data_aa+1jr z,sbc_56fail_msg 55sbc_56: ld iy,var3ld a,data_7fsbc a,(ix-2)jp m,sbc_57fail_msg 56sbc_57: jp pe,sbc_58fail_msg 57sbc_58: jr c,sbc_59fail_msg 58sbc_59: jr nz,sbc_60fail_msg 59sbc_60: sbc a,(ix+2)jp p,sbc_61fail_msg 60sbc_61: jp pe,sbc_62fail_msg 61sbc_62: jr nc,sbc_63fail_msg 62sbc_63: jr z,sbc_64fail_msg 63sbc_64: sbc a,(ix+1)jr nz,sbc_65fail_msg 64sbc_65: cp data_55+1jr z,and_0fail_msg 65and_0: nopprint "and_0"ld a,data_ffadd a,1 ;set carryld a,data_ffld b,data_aaand a,bjr nc,and_1fail_msg 0and_1: jp m,and_2fail_msg 1and_2: jp pe,and_3fail_msg 2and_3: jr nz,and_4fail_msg 3and_4: ld b,data_55and a,bjp p,and_5fail_msg 4and_5: jr z,and_6fail_msg 5and_6: ld a,data_ffld b,data_7fand a,bjp po,and_7fail_msg 6and_7: ld b,data_55and a,bjp pe,and_8fail_msg 7and_8: ld a,data_ffld c,data_80and a,cjp m,and_9fail_msg 8and_9: cp data_80jr z,and_10fail_msg 9and_10: ld a,data_ffld d,data_7fand a,djp p,and_11fail_msg 10and_11: cp data_7fjr z,and_12fail_msg 11and_12: ld a,data_ffld e,data_aaand a,ejp m,and_13fail_msg 12and_13: cp data_aajr z,and_14fail_msg 13and_14: ld a,data_ffld h,data_55and a,hjp p,and_15fail_msg 14and_15: cp data_55jr z,and_16fail_msg 15and_16: ld a,data_ffld l,data_aaand a,ljp m,and_17fail_msg 16and_17: cp data_aajr z,and_18fail_msg 17and_18: ld a,data_ffand a,data_aajp m,and_19fail_msg 18and_19: jr nz,and_20fail_msg 19and_20: and a,data_55jp p,and_21fail_msg 20and_21: jr z,and_22fail_msg 21and_22: ld a,data_ffand a,data_7fjp po,and_23fail_msg 22and_23: and a,data_55jp pe,and_24fail_msg 23and_24: jr nz,and_25fail_msg 24and_25: and a,data_aajr z,and_26fail_msg 25and_26: ld a,data_ffand a,data_aacp data_aajr z,and_27fail_msg 26and_27: ld hl,var4ld a,data_ffand a,(hl)jp m,and_28fail_msg 27and_28: jr nz,and_29fail_msg 28and_29: ld hl,var2and a,(hl)jp p,and_30fail_msg 29and_30: jr z,and_31fail_msg 30and_31: ld a,data_ffld hl,var5and a,(hl)jp po,and_32fail_msg 31and_32: ld hl,var2and a,(hl)jp pe,and_33fail_msg 32and_33: cp data_55jr z,and_34fail_msg 33and_34: ld ix,var3ld a,data_ffand a,(ix+1)jp m,and_35fail_msg 34and_35: jr nz,and_36fail_msg 35and_36: and a,(ix-1)jp p,and_37fail_msg 36and_37: jr z,and_38fail_msg 37and_38: ld a,data_ffand a,(ix+2)jp po,and_39fail_msg 38and_39: and a,(ix-1)jp pe,and_40fail_msg 39and_40: cp data_55jr z,and_41fail_msg 40and_41: ld iy,var3ld a,data_ffand a,(iy+1)jp m,and_42fail_msg 41and_42: jr nz,and_43fail_msg 42and_43: and a,(iy-1)jp p,and_44fail_msg 43and_44: jr z,and_45fail_msg 44and_45: ld a,data_ffand a,(iy+2)jp po,and_46fail_msg 45and_46: and a,(iy-1)jp pe,and_47fail_msg 46and_47: cp data_55jr z,or_0fail_msg 47or_0: nopprint "or_0"ld a,0ld b,data_7for a,bjp p,or_1fail_msg 0or_1: jp po,or_2fail_msg 1or_2: ld b,data_80or a,bjp m,or_3fail_msg 2or_3: jp pe,or_4fail_msg 3or_4: cp data_ffjr z,or_5fail_msg 4or_5: ld a,0ld b,0or a,bjr z,or_6fail_msg 5or_6: ld b,data_55or a,bjr nz,or_7fail_msg 6or_7: cp data_55jr z,or_8fail_msg 7or_8: ld a,data_ffadd a,1jr c,or_9fail_msg 8or_9: ld b,data_7for a,bjr nc,or_10fail_msg 9or_10: cp data_7fjr z,or_11fail_msg 10or_11: ld a,0ld c,data_55or a,ccp data_55jr z,or_12fail_msg 11or_12: ld c,data_aaor a,ccp data_ffjr z,or_13fail_msg 12or_13: ld a,0ld d,data_aaor a,dcp data_aajr z,or_14fail_msg 13or_14: ld e,data_55or a,ecp data_ffjr z,or_15fail_msg 14or_15: ld a,0ld h,data_80or a,hcp data_80jr z,or_16fail_msg 15or_16: ld l,data_7for a,lcp data_ffjr z,or_17fail_msg 16or_17: ld a,0or a,data_7fjp p,or_18fail_msg 17or_18: jp po,or_19fail_msg 18or_19: or a,data_80jp m,or_20fail_msg 19or_20: jp pe,or_21fail_msg 20or_21: cp data_ffjr z,or_22fail_msg 21or_22: ld a,0or a,0jr z,or_23fail_msg 22or_23: or a,data_7fjr nz,or_24fail_msg 23or_24: ld a,data_ffadd a,1jr c,or_25fail_msg 24or_25: or a,data_55jr nc,or_26fail_msg 25or_26: cp data_55jr z,or_27fail_msg 26or_27: ld hl,var5ld a,0or a,(hl)jp p,or_28fail_msg 27or_28: jp po,or_29fail_msg 28or_29: ld hl,var3or a,(hl)jp m,or_30fail_msg 29or_30: jp pe,or_31fail_msg 30or_31: cp data_ffjr z,or_32fail_msg 31or_32: ld hl,t_var1ld a,0ld (hl),aor a,(hl)jr z,or_33fail_msg 32or_33: ld hl,var2or a,(hl)jr nz,or_34fail_msg 33or_34: cp data_55jr z,or_35fail_msg 34or_35: ld ix,var3ld a,0or a,(ix+2)jp p,or_36fail_msg 35or_36: jp po,or_37fail_msg 36or_37: or a,(ix+0)jp m,or_38fail_msg 37or_38: jp pe,or_39fail_msg 38or_39: cp data_ffjr z,or_40fail_msg 39or_40: ld ix,t_var3ld a,0ld (ix-2),aor a,(ix-2)jr z,or_41fail_msg 40or_41: ld (ix+2),data_aaor a,(ix+2)jr nz,or_42fail_msg 41or_42: cp data_aajr z,or_43fail_msg 42or_43: ld iy,var3ld a,0or a,(iy+2)jp p,or_44fail_msg 43or_44: jp po,or_45fail_msg 44or_45: or a,(iy+0)jp m,or_46fail_msg 45or_46: jp pe,or_47fail_msg 46or_47: cp data_ffjr z,or_48fail_msg 47or_48: ld iy,t_var3ld a,0ld (iy-2),aor a,(iy-2)jr z,or_49fail_msg 48or_49: ld (iy+2),data_55or a,(iy+2)jr nz,or_50fail_msg 49or_50: cp data_55jr z,xor_0fail_msg 50xor_0: nopprint "xor_0"ld a,data_ffld b,data_55xor a,bjp m,xor_1fail_msg 0xor_1: jp pe,xor_2fail_msg 1xor_2: ld b,data_80xor a,bjp p,xor_3fail_msg 2xor_3: jp po,xor_4fail_msg 3xor_4: cp #2ajr z,xor_5fail_msg 4xor_5: ld a,data_ffld b,data_ffxor a,bjr z,xor_6fail_msg 5xor_6: ld b,data_55xor a,bjr nz,xor_7fail_msg 6xor_7: cp data_55jr z,xor_8fail_msg 7xor_8: ld a,data_ffadd a,1jr c,xor_9fail_msg 8xor_9: ld b,data_aaxor a,bjr nc,xor_10fail_msg 9xor_10: cp data_aajr z,xor_11fail_msg 10xor_11: ld a,data_ffld c,data_7fxor a,cjp m,xor_12fail_msg 11xor_12: cp data_80jr z,xor_13fail_msg 12xor_13: ld a,data_ffld d,data_55xor a,djp m,xor_14fail_msg 13xor_14: cp data_aajr z,xor_15fail_msg 14xor_15: ld e,data_55xor a,ejp m,xor_16fail_msg 15xor_16: cp data_ffjr z,xor_17fail_msg 16xor_17: ld a,data_ffld h,data_7fxor a,hjp po,xor_18fail_msg 17xor_18: ld l,data_7fxor a,ljp pe,xor_19fail_msg 18xor_19: cp data_ffjr z,xor_20fail_msg 19xor_20: ld a,data_ffadd a,1jr c,xor_21fail_msg 20xor_21: ld b,data_7fxor a,bjr nc,xor_22fail_msg 21xor_22: cp data_7fjr z,xor_23fail_msg 22xor_23: ld a,data_ffxor a,data_7fjp po,xor_24fail_msg 23xor_24: jp m,xor_25fail_msg 24xor_25: xor a,data_7fjp pe,xor_26fail_msg 25xor_26: jp m,xor_27fail_msg 26xor_27: xor a,data_aajp p,xor_28fail_msg 27xor_28: cp data_55jr z,xor_29fail_msg 28xor_29: ld a,data_ffxor a,data_ffjr z,xor_30fail_msg 29xor_30: xor a,data_80jr nz,xor_31fail_msg 30xor_31: cp data_80jr z,xor_32fail_msg 31xor_32: ld hl,var5ld a,data_ffxor a,(hl)jp m,xor_33fail_msg 32xor_33: jp po,xor_34fail_msg 33xor_34: xor a,(hl)jp m,xor_35fail_msg 34xor_35: jp pe,xor_36fail_msg 35xor_36: ld hl,var3xor a,(hl)jp p,xor_37fail_msg 36xor_37: cp data_7fjr z,xor_38fail_msg 37xor_38: ld hl,var1ld a,data_ffxor a,(hl)jr z,xor_39fail_msg 38xor_39: ld hl,var2xor a,(hl)jr nz,xor_40fail_msg 39xor_40: cp data_55jr z,xor_41fail_msg 40xor_41: ld ix,var3ld a,data_ffxor a,(ix+2)jp m,xor_42fail_msg 41xor_42: jp po,xor_43fail_msg 42xor_43: xor a,(ix+2)jp m,xor_44fail_msg 43xor_44: jp pe,xor_45fail_msg 44xor_45: xor a,(ix+1)jp p,xor_46fail_msg 45xor_46: cp data_55jr z,xor_47fail_msg 46xor_47: ld a,data_ffxor a,(ix-2)jr z,xor_48fail_msg 47xor_48: xor a,(ix+1)jr nz,xor_49fail_msg 48xor_49: cp data_aajr z,xor_50fail_msg 49xor_50: ld iy,var3ld a,data_ffxor a,(iy+2)jp m,xor_51fail_msg 50xor_51: jp po,xor_52fail_msg 51xor_52: xor a,(iy+2)jp m,xor_53fail_msg 52xor_53: jp pe,xor_54fail_msg 53xor_54: xor a,(iy+1)jp p,xor_55fail_msg 54xor_55: cp data_55jr z,xor_56fail_msg 55xor_56: ld a,data_ffxor a,(iy-2)jr z,xor_57fail_msg 56xor_57: xor a,(iy-1)jr nz,xor_58fail_msg 57xor_58: cp data_55jr z,cp_0fail_msg 58cp_0: nopprint "cp_0"ld a,0ld b,0cp a,bjr z,cp_1fail_msg 0cp_1: jp p,cp_2fail_msg 1cp_2: jr nc,cp_3fail_msg 2cp_3: ld b,data_55cp a,bjr nz,cp_4fail_msg 3cp_4: jp m,cp_5fail_msg 4cp_5: jr c,cp_6fail_msg 5cp_6: ld a,data_80ld b,data_7fcp a,bjp pe,cp_7fail_msg 6cp_7: jr nc,cp_8fail_msg 7cp_8: ld a,data_7fld b,data_80cp a,bjp pe,cp_9fail_msg 8cp_9: jr c,cp_10fail_msg 9cp_10: ld b,0cp a,bjp po,cp_11fail_msg 10cp_11: jr nc,cp_12fail_msg 11cp_12: ld a,data_80ld c,0cp a,cjp m,cp_13fail_msg 12cp_13: ld c,data_80cp a,cjr z,cp_14fail_msg 13cp_14: ld a,data_7fld d,data_55cp a,djp p,cp_15fail_msg 14cp_15: jr nz,cp_16fail_msg 15cp_16: ld e,data_7fcp a,ejr z,cp_17fail_msg 16cp_17: ld a,data_80ld h,data_ffcp a,hjp m,cp_18fail_msg 17cp_18: jr c,cp_19fail_msg 18cp_19: ld l,data_80cp a,ljr z,cp_20fail_msg 19cp_20: ld a,data_80cp a,data_7fjp p,cp_21fail_msg 20cp_21: jp pe,cp_22fail_msg 21cp_22: jr nz,cp_23fail_msg 22cp_23: cp a,data_80jp p,cp_24fail_msg 23cp_24: jp po,cp_25fail_msg 24cp_25: jr z,cp_26fail_msg 25cp_26: ld a,data_55cp a,data_7fjr c,cp_27fail_msg 26cp_27: jp m,cp_28fail_msg 27cp_28: cp a,data_55jr nc,cp_29fail_msg 28cp_29: jr z,cp_30fail_msg 29cp_30: ld a,data_80ld hl,var5cp a,(hl)jp p,cp_31fail_msg 30cp_31: jp pe,cp_32fail_msg 31cp_32: jr nz,cp_33fail_msg 32cp_33: ld hl,var3cp a,(hl)jp p,cp_34fail_msg 33cp_34: jp po,cp_35fail_msg 34cp_35: jr z,cp_36fail_msg 35cp_36: ld a,data_55ld hl,var5cp a,(hl)jr c,cp_37fail_msg 36cp_37: jp m,cp_38fail_msg 37cp_38: ld hl,var2cp a,(hl)jr nc,cp_39fail_msg 38cp_39: jp p,cp_40fail_msg 39cp_40: jr z,cp_41fail_msg 40cp_41: ld a,data_80ld ix,var3cp a,(ix+2)jp p,cp_42fail_msg 41cp_42: jp pe,cp_43fail_msg 42cp_43: jr nz,cp_44fail_msg 43cp_44: cp a,(ix+0)jp p,cp_45fail_msg 44cp_45: jp po,cp_46fail_msg 45cp_46: jr z,cp_47fail_msg 46cp_47: ld a,data_55cp a,(ix-2)jr nz,cp_48fail_msg 47cp_48: jr c,cp_49fail_msg 48cp_49: cp a,(ix-1)jr z,cp_50fail_msg 49cp_50: jr nc,cp_51fail_msg 50cp_51: ld iy,var3ld a,data_80cp a,(iy+2)jp p,cp_52fail_msg 51cp_52: jp pe,cp_53fail_msg 52cp_53: jr nz,cp_54fail_msg 53cp_54: cp a,(iy+0)jp p,cp_55fail_msg 54cp_55: jp po,cp_56fail_msg 55cp_56: jr z,cp_57fail_msg 56cp_57: ld a,data_55cp a,(iy-2)jr nz,cp_58fail_msg 57cp_58: jr c,cp_59fail_msg 58cp_59: cp a,(iy-1)jr z,cp_60fail_msg 59cp_60: jr nc,inc_0fail_msg 60inc_0: nopprint "inc"ld a,data_7fcp a,data_7fjr z,inc_1fail_msg 0inc_1: inc ajp pe,inc_2fail_msg 1inc_2: jp m,inc_3fail_msg 2inc_3: jr nz,inc_4fail_msg 3inc_4: ld a,data_55inc ajp po,inc_5fail_msg 4inc_5: jp p,inc_6fail_msg 5inc_6: cp a,data_55+1jr z,inc_7fail_msg 6inc_7: ld a,data_ff-1inc ajr nz,inc_8fail_msg 7inc_8: jp m,inc_9fail_msg 8inc_9: inc ajr z,inc_10fail_msg 9inc_10: ld b,data_aainc bjp m,inc_11fail_msg 10inc_11: ld a,bcp a,data_aa+1jr z,inc_12fail_msg 11inc_12: ld c,data_80inc cjp m,inc_13fail_msg 12inc_13: ld a,ccp a,data_80+1jr z,inc_14fail_msg 13inc_14: ld d,data_ffinc djr z,inc_15fail_msg 14inc_15: ld e,data_55inc ejp p,inc_16fail_msg 15inc_16: ld a,ecp a,data_55+1jr z,inc_17fail_msg 16inc_17: ld h,data_7finc hjp pe,inc_18fail_msg 17inc_18: ld a,hcp a,data_80jr z,inc_19fail_msg 18inc_19: ld l,data_aainc ljp m,inc_20fail_msg 19inc_20: ld a,lcp a,data_aa+1jr z,inc_21fail_msg 20inc_21: ld hl,t_var1ld a,data_7fld (hl),acp a,(hl)jr z,inc_22fail_msg 21inc_22: inc (hl)jp m,inc_23fail_msg 22inc_23: jp pe,inc_24fail_msg 23inc_24: ld a,data_55ld (hl),ainc (hl)jp p,inc_25fail_msg 24inc_25: jp po,inc_26fail_msg 25inc_26: ld a,(hl)cp a,data_55+1jr z,inc_27fail_msg 26inc_27: ld a,data_ffld (hl),ainc (hl)jr z,inc_28fail_msg 27inc_28: inc (hl)jr nz,inc_29fail_msg 28inc_29: ld a,(hl)cp a,1jr z,inc_30fail_msg 29inc_30: ld a,data_aald (hl),ainc (hl)jp m,inc_31fail_msg 30inc_31: ld a,(hl)cp a,data_aa+1jr z,inc_32fail_msg 31inc_32: ld ix,t_var3ld a,data_7fld (ix-2),acp a,data_7fjr z,inc_33fail_msg 32inc_33: inc (ix-2)jp m,inc_34fail_msg 33inc_34: jp pe,inc_35fail_msg 34inc_35: ld a,data_55ld (ix+2),ainc (ix+2)jp p,inc_36fail_msg 35inc_36: jp po,inc_37fail_msg 36inc_37: ld a,(ix+2)cp a,data_55+1jr z,inc_38fail_msg 37inc_38: ld a,data_ffld (ix-1),ainc (ix-1)jr z,inc_39fail_msg 38inc_39: inc (ix-1)jr nz,inc_40fail_msg 39inc_40: ld a,(ix-1)cp a,1jr z,inc_41fail_msg 40inc_41: ld a,data_aald (ix+1),ainc (ix+1)jp m,inc_42fail_msg 41inc_42: ld a,(ix+1)cp a,data_aa+1jr z,inc_43fail_msg 42inc_43: ld iy,t_var3ld a,data_7fld (iy+2),acp a,data_7fjr z,inc_44fail_msg 43inc_44: inc (iy+2)jp m,inc_45fail_msg 44inc_45: jp pe,inc_46fail_msg 45inc_46: ld a,data_55ld (iy-2),ainc (iy-2)jp p,inc_47fail_msg 46inc_47: jp po,inc_48fail_msg 47inc_48: ld a,(iy-2)cp a,data_55+1jr z,inc_49fail_msg 48inc_49: ld a,data_ffld (iy+1),ainc (iy+1)jr z,inc_50fail_msg 49inc_50: inc (iy+1)jr nz,inc_51fail_msg 50inc_51: ld a,(iy+1)cp a,1jr z,inc_52fail_msg 51inc_52: ld a,data_80ld (iy-1),ainc (iy-1)jp m,inc_53fail_msg 52inc_53: ld a,(iy-1)cp a,data_80+1jr z,dec_0fail_msg 53dec_0: nopprint "dec"ld a,data_80cp a,data_80jr z,dec_1fail_msg 0dec_1: dec ajp p,dec_2fail_msg 1dec_2: jp pe,dec_3fail_msg 2dec_3: ld a,0dec ajp m,dec_4fail_msg 3dec_4: jp po,dec_5fail_msg 4dec_5: cp a,data_ffjr z,dec_6fail_msg 5dec_6: ld a,1dec ajr z,dec_7fail_msg 6dec_7: dec ajr nz,dec_8fail_msg 7dec_8: cp a,data_ffjr z,dec_9fail_msg 8dec_9: ld a,data_aadec acp a,data_aa-1jr z,dec_10fail_msg 9dec_10: ld b,data_7fdec bld a,bcp a,data_7f-1jr z,dec_11fail_msg 10dec_11: ld c,data_55dec cld a,ccp a,data_55-1jr z,dec_12fail_msg 11dec_12: ld d,data_aadec dld a,dcp a,data_aa-1jr z,dec_13fail_msg 12dec_13: ld e,data_80dec eld a,ecp a,data_80-1jr z,dec_14fail_msg 13dec_14: ld h,data_ffdec hld a,hcp a,data_ff-1jr z,dec_15fail_msg 14dec_15: ld l,data_55dec lld a,lcp a,data_55-1jr z,dec_16fail_msg 15dec_16: ld hl,t_var5ld a,data_80ld (hl),acp a,(hl)jr z,dec_17fail_msg 16dec_17: dec (hl)jp p,dec_18fail_msg 17dec_18: jp pe,dec_19fail_msg 18dec_19: ld a,0ld (hl),adec (hl)jp m,dec_20fail_msg 19dec_20: jp po,dec_21fail_msg 20dec_21: ld a,(hl)cp a,data_ffjr z,dec_22fail_msg 21dec_22: ld a,1ld (hl),adec (hl)jr z,dec_23fail_msg 22dec_23: dec (hl)jr nz,dec_24fail_msg 23dec_24: ld a,(hl)cp a,data_ffjr z,dec_25fail_msg 24dec_25: ld a,data_aald (hl),adec (hl)ld a,(hl)cp a,data_aa-1jr z,dec_26fail_msg 25dec_26: ld ix,t_var3ld a,data_80ld (ix-2),acp a,(ix-2)jr z,dec_27fail_msg 26dec_27: dec (ix-2)jp p,dec_28fail_msg 27dec_28: jp pe,dec_29fail_msg 28dec_29: ld a,0ld (ix+2),adec (ix+2)jp m,dec_30fail_msg 29dec_30: jp po,dec_31fail_msg 30dec_31: ld a,(ix+2)cp a,data_ffjr z,dec_32fail_msg 31dec_32: ld a,1ld (ix-1),adec (ix-1)jr z,dec_33fail_msg 32dec_33: dec (ix-1)jr nz,dec_34fail_msg 33dec_34: ld a,(ix-1)cp a,data_ffjr z,dec_35fail_msg 34dec_35: ld a,data_7fld (ix+1),adec (ix+1)ld a,(ix+1)cp a,data_7f-1jr z,dec_36fail_msg 35dec_36: ld iy,t_var3ld a,data_80ld (iy-2),acp a,(iy-2)jr z,dec_37fail_msg 36dec_37: dec (iy-2)jp p,dec_38fail_msg 37dec_38: jp pe,dec_39fail_msg 38dec_39: ld a,0ld (iy+2),adec (iy+2)jp m,dec_40fail_msg 39dec_40: jp po,dec_41fail_msg 40dec_41: ld a,(iy+2)cp a,data_ffjr z,dec_42fail_msg 41dec_42: ld a,1ld (iy+1),adec (iy+1)jr z,dec_43fail_msg 42dec_43: dec (iy+1)jr nz,dec_44fail_msg 43dec_44: ld a,(iy+1)cp a,data_ffjr z,dec_45fail_msg 44dec_45: ld a,data_aald (iy-1),adec (iy-1)ld a,(iy-1)cp a,data_aa-1jr z,cpl_0fail_msg 45cpl_0: ld a,data_ffcplcp a,0jr z,cpl_1fail_msg 0cpl_1: ld a,data_aacplcp a,data_55jr z,cpl_2fail_msg 1cpl_2: cplcp a,data_aajr z,neg_0fail_msg 2neg_0: nopprint "neg"ld a,data_80cp a,data_80jp po,neg_1fail_msg 0neg_1: negjp pe,neg_2fail_msg 1neg_2: jr nz,neg_3fail_msg 2neg_3: jr c,neg_4fail_msg 3neg_4: ld a,0negjp po,neg_5fail_msg 4neg_5: jr z,neg_6fail_msg 5neg_6: jr nc,neg_7fail_msg 6neg_7: ld a,data_55cp a,data_55jp p,neg_8fail_msg 7neg_8: negjp m,neg_9fail_msg 8neg_9: negjp p,neg_10fail_msg 9neg_10: cp a,data_55jr z,ccf_0fail_msg 10ccf_0: nopprint "ccf/im"scfjr c,ccf_1fail_msg 0ccf_1: ccfjr nc,ccf_2fail_msg 1ccf_2: ccfjr c,im_0fail_msg 2im_0: im 0im 1im 2daa_0: nopprint "daa"ld a,#99ld b,#1add a,bdaajr c,daa_1fail_msg 0daa_1: jr z,daa_2fail_msg 1daa_2: add a,bjr nc,daa_3fail_msg 2daa_3: jr nz,daa_4fail_msg 3daa_4: cp a,1jr z,daa_5fail_msg 4daa_5: ld a,#98ld b,1add a,bdaajp m,daa_6fail_msg 5daa_6: add a,bdaajp p,daa_7fail_msg 6daa_7: ld a,1ld b,1add a,bdaajp po,daa_8fail_msg 7daa_8: add a,bdaajp pe,daa_9fail_msg 8daa_9: cp a,3jr z,add_74fail_msg 9add_74: nopprint "add"ld hl,data_1234add hl,hljr nc,add_75fail_msg 74add_75: ld a,hcp a,#24jr z,add_76fail_msg 75add_76: ld a,lcp a,#68jr z,add_77fail_msg 76add_77: ld hl,data_7fffld bc,data_8000add hl,bcjr nc,add_78fail_msg 77add_78: ld bc,1add hl,bcjr c,add_79fail_msg 78add_79: ld a,hcp a,0jr z,add_80fail_msg 79add_80: ld a,lcp a,0jr z,add_81fail_msg 80add_81: ld hl,data_aa55ld de,data_ffffadd hl,dejr c,add_82fail_msg 81add_82: ld a,hcp a,data_aajr z,add_83fail_msg 82add_83: ld a,lcp a,data_55-1jr z,add_84fail_msg 83add_84: ld hl,data_aa55ld sp,data_8000add hl,spjr c,add_85fail_msg 84add_85: ld a,hcp a,#2ajr z,add_86fail_msg 85add_86: ld a,lcp a,data_55jr z,add_87fail_msg 86add_87: ld sp,stack_endld hl,data_1234scfccfadc hl,hljr nz,add_88fail_msg 87add_88: jr nc,add_89fail_msg 88add_89: jp p,add_90fail_msg 89add_90: jp po,add_91fail_msg 90add_91: ld bc,data_8000adc hl,bcjp m,add_92fail_msg 91add_92: jr nc,add_93fail_msg 92add_93: jp po,add_94fail_msg 93add_94: jp nz,add_95fail_msg 94add_95: adc hl,bcjp p,add_96fail_msg 95add_96: jp pe,add_97fail_msg 96add_97: jr c,add_98fail_msg 97add_98: jr nz,add_99fail_msg 98add_99: ld de,#db97adc hl,dejr z,add_100fail_msg 99add_100: jr c,add_101fail_msg 100add_101: jp po,add_102fail_msg 101add_102: ld de,0adc hl,dejr nc,add_103fail_msg 102add_103: jr nz,add_104fail_msg 103add_104: ld a,hcp a,0jr z,add_105fail_msg 104add_105: ld a,lcp a,1jr z,add_106fail_msg 105add_106: ld hl,data_1234ld sp,data_ffffadc hl,spjr c,add_107fail_msg 106add_107: ld a,hcp a,#12jr z,add_108fail_msg 107add_108: ld a,lcp a,#33jr z,sbc_66fail_msg 108sbc_66: ld sp,stack_endprint "sbc"scfccfld hl,data_1234sbc hl,hljr z,sbc_67fail_msg 66sbc_67: jp p,sbc_68fail_msg 67sbc_68: jp po,sbc_69fail_msg 68sbc_69: jr nc,sbc_70fail_msg 69sbc_70: ld bc,data_1234sbc hl,bcjr nz,sbc_71fail_msg 70sbc_71: jr c,sbc_72fail_msg 71sbc_72: jp m,sbc_73fail_msg 72sbc_73: jp po,sbc_74fail_msg 73sbc_74: ld de,data_7fffsbc hl,dejr nz,sbc_75fail_msg 74sbc_75: jr nc,sbc_76fail_msg 75sbc_76: jp p,sbc_77fail_msg 76sbc_77: jp pe,sbc_78fail_msg 77sbc_78: ld sp,data_1234sbc hl,spjr nz,sbc_79fail_msg 78sbc_79: ld a,hcp a,#5bjr z,sbc_80fail_msg 79sbc_80: ld a,lcp a,#98jr z,add_109fail_msg 80add_109: ld sp,stack_endprint "add"ld ix,0add ix,spjr nc,add_110fail_msg 109add_110: push ixpop hlld a,hcp a,stack_end_hi ; >stack_endjr z,add_111fail_msg 110add_111: ld a,lcp a,stack_end_lo ; <stack_endjr z,add_112fail_msg 111add_112: ld ix,data_7fffld bc,data_aa55add ix,bcjr c,add_113fail_msg 112add_113: add ix,bcjr nc,add_114fail_msg 113add_114: push ixpop hlld a,hcp a,#d4jr z,add_115fail_msg 114add_115: ld a,lcp a,#a9jr z,add_116fail_msg 115add_116: ld ix,data_1234ld de,data_1234add ix,depush ixpop hlld a,hcp a,#24 ;>(data_1234+data_1234)jr z,add_117fail_msg 116add_117: ld a,lcp a,#68 ;<(data_1234+data_1234)jr z,add_118fail_msg 117add_118: ld ix,data_1234add ix,ixpush ixpop bcld a,bcp a,#24 ;>(data_1234+data_1234)jr z,add_119fail_msg 118add_119: ld a,ccp a,#68 ;<(data_1234+data_1234)jr z,add_120fail_msg 119add_120: ld sp,stack_endld iy,0add iy,spjr nc,add_121fail_msg 120add_121: push iypop hlld a,hcp a,stack_end_hi ;>stack_endjr z,add_122fail_msg 121add_122: ld a,lcp a,stack_end_lo ;<stack_endjr z,add_123fail_msg 122add_123: ld iy,data_7fffld bc,data_aa55add iy,bcjr c,add_124fail_msg 123add_124: add iy,bcjr nc,add_125fail_msg 124add_125: push iypop hlld a,hcp a,#d4jr z,add_126fail_msg 125add_126: ld a,lcp a,#a9jr z,add_127fail_msg 126add_127: ld iy,data_1234ld de,data_1234add iy,depush iypop hlld a,hcp a,#24 ;>(data_1234+data_1234)jr z,add_128fail_msg 127add_128: ld a,lcp a,#68 ;<(data_1234+data_1234)jr z,add_129fail_msg 128add_129: ld iy,data_1234add iy,iypush iypop bcld a,bcp a,#24 ;>(data_1234+data_1234)jr z,add_130fail_msg 129add_130: ld a,ccp a,#68 ;<(data_1234+data_1234)jr z,inc_54fail_msg 130inc_54: ld sp,stack_endprint "inc"ld bc,data_1234inc bcld a,bcp a,#12 ;bjp was >data_1234jr z,inc_55fail_msg 54inc_55: ld a,ccp a,#34+1 ;bjp was >data_1234+1jr z,inc_56fail_msg 55inc_56: ld de,data_55aainc deld a,dcp a,#55 ;>data_55aajr z,inc_57fail_msg 56inc_57: ld a,ecp a,#ab ;<data_55aa+1jr z,inc_58fail_msg 57inc_58: ld hl,data_7fffinc hlld a,hcp a,#80 ;>data_7fff+1jr z,inc_59fail_msg 58inc_59: ld a,lcp a,#00 ;<data_7fff+1jr z,inc_60fail_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,0inc spadd hl,spld sp,stack_endld a,hcp a,stack_end_hi+1 ;>stack_end+1jr z,inc_61fail_msg 60inc_61: ld a,lcp a,stack_end_lo+1 ;<stack_end+1jr z,inc_62fail_msg 61inc_62: ld ix,data_8000inc ixpush ixpop deld a,dcp a,#80 ;>data_8000jr z,inc_63fail_msg 62inc_63: ld a,ecp a,#01 ;<data_8000+1jr z,inc_64fail_msg 63inc_64: ld iy,data_7fffinc iypush iypop bcld a,bcp a,#80 ;>data_7fff+1jr z,inc_65fail_msg 64inc_65: ld a,ccp a,#00 ;<data_7fff+1jr z,dec_46fail_msg 65dec_46: nopprint "dec"ld bc,data_1234dec bcld a,bcp a,#12 ;bjp was >data_1234jr z,dec_47fail_msg 46dec_47: ld a,ccp a,#34-1 ;bjp was >data_1234-1jr z,dec_48fail_msg 47dec_48: ld de,data_8000dec deld a,dcp a,#7f ;>data_7fffjr z,dec_49fail_msg 48dec_49: ld a,ecp a,#ff ;<data_7fffjr z,dec_50fail_msg 49dec_50: ld hl,data_aa55dec hlld a,hcp a,#aa ;>data_aa55jr z,dec_51fail_msg 50dec_51: ld a,lcp a,#54 ;<data_aa55-1jr z,dec_52fail_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,0dec spadd hl,spld a,hcp a,stack_end_hi-1 ;>stack_end-1jr z,dec_53fail_msg 52dec_53: ld a,lcp a,stack_end_lo-1 ;<stack_end-1jr z,dec_54fail_msg 53dec_54: ld sp,stack_endld ix,data_ffffdec ixpush ixpop bcld a,bcp a,#ff ;>data_ffffjr z,dec_55fail_msg 54dec_55: ld a,ccp a,#fe ;<data_ffff-1jr z,dec_56fail_msg 55dec_56: ld iy,data_aa55dec iypush iypop deld a,dcp a,#aa ;>data_aa55jr z,dec_57fail_msg 56dec_57: ld a,ecp a,#54 ;<data_aa55-1jr z,rlca_0fail_msg 57rlca_0: nopprint "rlca/rla"ld a,data_80rlcajr c,rlca_1fail_msg 0rlca_1: rlcajr nc,rlca_2fail_msg 1rlca_2: cp a,2jr z,rlca_3fail_msg 2rlca_3: ld a,data_55rlcacp a,data_aajr z,rla_0fail_msg 3rla_0:scfccfld a,data_80rlajr c,rla_1fail_msg 0rla_1: rlajr nc,rla_2fail_msg 1rla_2: cp a,1jr z,rla_3fail_msg 2rla_3: ld a,data_7frlacp a,data_ff-1jr z,rrca_0fail_msg 3rrca_0: nopprint "rrca/rra"scfccfld a,1rrcajr c,rrca_1fail_msg 0rrca_1: rrcajr nc,rrca_2fail_msg 1rrca_2: cp a,data_7f-#3fjr z,rrca_3fail_msg 2rrca_3: ld a,data_aarrcacp a,data_55jr z,rra_0fail_msg 3rra_0: scfccfld a,1rrajr c,rra_1fail_msg 0rra_1: rrajr nc,rra_2fail_msg 1rra_2: cp a,data_80jr z,rra_3fail_msg 2rra_3: ld a,data_aarracp a,data_55jr z,rlc_0fail_msg 3rlc_0: nopprint "rlc"ld a,data_80rlc ajr c,rlc_1fail_msg 0rlc_1: jp p,rlc_2fail_msg 1rlc_2: jr nz,rlc_3fail_msg 2rlc_3: jp po,rlc_4fail_msg 3rlc_4: rlc ajr nc,rlc_5fail_msg 4rlc_5: rlc arlc arlc arlc arlc arlc ajp m,rlc_6fail_msg 5rlc_6: ld a,data_55rlc ajp m,rlc_7fail_msg 6rlc_7: jp pe,rlc_8fail_msg 7rlc_8: cp a,data_aajr z,rlc_9fail_msg 8rlc_9: ld a,0rlc ajr z,rlc_10fail_msg 9rlc_10: ld b,data_7frlc bld a,bcp a,data_ff-1jr z,rlc_11fail_msg 10rlc_11: ld c,data_aarlc cjr c,rlc_12fail_msg 11rlc_12: ld a,ccp a,data_55jr z,rlc_13fail_msg 12rlc_13: ld d,data_80rlc djr c,rlc_14fail_msg 13rlc_14: ld a,dcp a,1jr z,rlc_15fail_msg 14rlc_15: ld e,data_ffrlc ejr c,rlc_16fail_msg 15rlc_16: ld a,ecp a,data_ffjr z,rlc_17fail_msg 16rlc_17: ld h,data_55rlc hjp m,rlc_18fail_msg 17rlc_18: ld a,hcp a,data_aajr z,rlc_19fail_msg 18rlc_19: ld l,data_80rlc ljp p,rlc_20fail_msg 19rlc_20: ld a,lcp a,1jr z,rlc_21fail_msg 20rlc_21: ld hl,t_var1ld a,data_55ld (hl),arlc (hl)jp m,rlc_22fail_msg 21rlc_22: jp pe,rlc_23fail_msg 22rlc_23: jr nc,rlc_24fail_msg 23rlc_24: jr nz,rlc_25fail_msg 24rlc_25: rlc (hl)jp p,rlc_26fail_msg 25rlc_26: jr c,rlc_27fail_msg 26rlc_27: ld a,(hl)cp a,data_55jr z,rlc_28fail_msg 27rlc_28: ld a,data_7fld (hl),arlc (hl)jp po,rlc_29fail_msg 28rlc_29: ld a,(hl)cp a,data_ff-1jr z,rlc_30fail_msg 29rlc_30: ld a,0ld (hl),arlc (hl)jr z,rlc_31fail_msg 30rlc_31: ld ix,t_var3ld a,data_55ld (ix-2),arlc (ix-2)jp m,rlc_32fail_msg 31rlc_32: jp pe,rlc_33fail_msg 32rlc_33: jr nz,rlc_34fail_msg 33rlc_34: jr nc,rlc_35fail_msg 34rlc_35: rlc (ix-2)jp p,rlc_36fail_msg 35rlc_36: jr c,rlc_37fail_msg 36rlc_37: ld a,(ix-2)cp a,data_55jr z,rlc_38fail_msg 37rlc_38: ld a,data_7fld (ix+2),arlc (ix+2)jp po,rlc_39fail_msg 38rlc_39: ld a,(ix+2)cp a,data_ff-1jr z,rlc_40fail_msg 39rlc_40: ld a,0ld (ix-1),arlc (ix-1)jr z,rlc_41fail_msg 40rlc_41: ld iy,t_var3ld a,data_55ld (iy+2),arlc (iy+2)jp m,rlc_42fail_msg 41rlc_42: jp pe,rlc_43fail_msg 42rlc_43: jr nc,rlc_44fail_msg 43rlc_44: jr nz,rlc_45fail_msg 44rlc_45: rlc (iy+2)jp p,rlc_46fail_msg 45rlc_46: jr c,rlc_47fail_msg 46rlc_47: ld a,(iy+2)cp a,data_55jr z,rlc_48fail_msg 47rlc_48: ld a,data_7fld (iy-2),arlc (iy-2)jp po,rlc_49fail_msg 48rlc_49: ld a,(iy-2)cp a,data_ff-1jr z,rlc_50fail_msg 49rlc_50: ld a,0ld (iy+1),arlc (iy+1)jr z,rl_0fail_msg 50rl_0: nopprint "rl"scfccfld a,data_55rl ajp m,rl_1fail_msg 0rl_1: jp pe,rl_2fail_msg 1rl_2: jr nc,rl_3fail_msg 2rl_3: jr nz,rl_4fail_msg 3rl_4: rl ajp p,rl_5fail_msg 4rl_5: jp po,rl_6fail_msg 5rl_6: jr c,rl_7fail_msg 6rl_7: rl acp a,data_aa-1jr z,rl_8fail_msg 7rl_8: ld a,0rl ajr z,rl_9fail_msg 8rl_9: ld b,data_aald c,data_7frl bjr c,rl_10fail_msg 9rl_10: rl cjr nc,rl_11fail_msg 10rl_11: ld a,bcp a,data_55-1jr z,rl_12fail_msg 11rl_12: ld a,ccp a,data_ffjr z,rl_13fail_msg 12rl_13: ld d,data_ffld e,data_80rl ejr c,rl_14fail_msg 13rl_14: rl djr c,rl_15fail_msg 14rl_15: ld a,dcp a,data_ffjr z,rl_16fail_msg 15rl_16: ld a,ecp a,0jr z,rl_17fail_msg 16rl_17: ld h,data_7fld l,data_55rl hjp m,rl_18fail_msg 17rl_18: rl ljp m,rl_19fail_msg 18rl_19: ld a,hcp a,data_ff-1jr z,rl_20fail_msg 19rl_20: ld a,lcp a,data_aajr z,rl_21fail_msg 20rl_21: ld hl,t_var5ld a,data_55ld (hl),arl (hl)jp m,rl_22fail_msg 21rl_22: jp pe,rl_23fail_msg 22rl_23: jr nc,rl_24fail_msg 23rl_24: jr nz,rl_25fail_msg 24rl_25: rl (hl)jp p,rl_26fail_msg 25rl_26: jp po,rl_27fail_msg 26rl_27: jr c,rl_28fail_msg 27rl_28: ld a,(hl)cp a,data_55-1jr z,rl_29fail_msg 28rl_29: ld a,0ld (hl),arl (hl)jr z,rl_30fail_msg 29rl_30: ld ix,t_var3ld a,data_55ld (ix-2),arl (ix-2)jp m,rl_31fail_msg 30rl_31: jp pe,rl_32fail_msg 31rl_32: jr nc,rl_33fail_msg 32rl_33: jr nz,rl_34fail_msg 33rl_34: rl (ix-2)jp p,rl_35fail_msg 34rl_35: jp po,rl_36fail_msg 35rl_36: jr c,rl_37fail_msg 36rl_37: ld a,(ix-2)cp a,data_55-1jr z,rl_38fail_msg 37rl_38: ld a,0ld (ix+2),arl (ix+2)jr z,rl_39rl_39: ld iy,t_var3ld a,data_55ld (iy-1),arl (iy-1)jp m,rl_40fail_msg 39rl_40: jp pe,rl_41fail_msg 40rl_41: jr nc,rl_42fail_msg 41rl_42: jr nz,rl_43fail_msg 42rl_43: rl (iy-1)jp p,rl_44fail_msg 43rl_44: jp po,rl_45fail_msg 44rl_45: jr c,rl_46fail_msg 45rl_46: ld a,(iy-1)cp a,data_55-1jr z,rl_47fail_msg 46rl_47: ld a,0ld (iy+1),arl (iy+1)jr z,rrc_0fail_msg 47rrc_0: nopprint "rrc"ld a,data_aarrc ajp p,rrc_1fail_msg 0rrc_1: jp pe,rrc_2fail_msg 1rrc_2: jr nz,rrc_3fail_msg 2rrc_3: jr nc,rrc_4fail_msg 3rrc_4: rrc ajp m,rrc_5fail_msg 4rrc_5: jr c,rrc_6fail_msg 5rrc_6: cp a,data_aajr z,rrc_7fail_msg 6rrc_7: ld a,1rrc ajr c,rrc_8fail_msg 7rrc_8: cp a,data_80jr z,rrc_9fail_msg 8rrc_9: ld a,data_7frrc ajp po,rrc_10fail_msg 9rrc_10: cp a,#bfjr z,rrc_11fail_msg 10rrc_11: ld b,data_80ld c,data_55rrc bjr nc,rrc_12fail_msg 11rrc_12: rrc cjr c,rrc_13fail_msg 12rrc_13: ld a,bcp a,#40jr z,rrc_14fail_msg 13rrc_14: ld a,ccp a,data_aajr z,rrc_15fail_msg 14rrc_15: ld d,data_aald e,1rrc djp p,rrc_16fail_msg 15rrc_16: rrc ejp m,rrc_17fail_msg 16rrc_17: ld a,dcp a,data_55jr z,rrc_18fail_msg 17rrc_18: ld a,ecp a,data_80jr z,rrc_19fail_msg 18rrc_19: ld h,data_55ld l,data_ffrrc hjr c,rrc_20fail_msg 19rrc_20: rrc ljr c,rrc_21fail_msg 20rrc_21: ld a,hcp a,data_aajr z,rrc_22fail_msg 21rrc_22: ld a,lcp a,data_ffjr z,rrc_23fail_msg 22rrc_23: ld hl,t_var4ld (hl),data_aarrc (hl)jp p,rrc_24fail_msg 23rrc_24: jp pe,rrc_25fail_msg 24rrc_25: jr nz,rrc_26fail_msg 25rrc_26: jr nc,rrc_27fail_msg 26rrc_27: rrc (hl)jp m,rrc_28fail_msg 27rrc_28: jr c,rrc_29fail_msg 28rrc_29: ld a,(hl)cp a,data_aajr z,rrc_30fail_msg 29rrc_30: ld (hl),data_7frrc (hl)jp po,rrc_31fail_msg 30rrc_31: ld a,(hl)cp a,#bfjr z,rrc_32fail_msg 31rrc_32: ld (hl),0rrc (hl)jr z,rrc_33fail_msg 32rrc_33: ld ix,t_var3ld a,data_aald (ix+2),arrc (ix+2)jp p,rrc_34fail_msg 33rrc_34: jp pe,rrc_35fail_msg 34rrc_35: jr nc,rrc_36fail_msg 35rrc_36: jr nz,rrc_37fail_msg 36rrc_37: rrc (ix+2)jp m,rrc_38fail_msg 37rrc_38: jr c,rrc_39fail_msg 38rrc_39: ld a,(ix+2)cp a,data_aajr z,rrc_40fail_msg 39rrc_40: ld a,1ld (ix-2),arrc (ix-2)jp po,rrc_41fail_msg 40rrc_41: ld a,(ix-2)cp a,data_80jr z,rrc_42fail_msg 41rrc_42: ld a,0ld (ix+1),arrc (ix+1)jr z,rrc_43fail_msg 42rrc_43: ld iy,t_var3ld a,data_aald (iy+2),arrc (iy+2)jp p,rrc_44fail_msg 43rrc_44: jp pe,rrc_45fail_msg 44rrc_45: jr nc,rrc_46fail_msg 45rrc_46: jr nz,rrc_47fail_msg 46rrc_47: rrc (iy+2)jp m,rrc_48fail_msg 47rrc_48: jr c,rrc_49fail_msg 48rrc_49: ld a,(iy+2)cp a,data_aajr z,rrc_50fail_msg 49rrc_50: ld a,1ld (iy-2),arrc (iy-2)jp po,rrc_51fail_msg 50rrc_51: ld a,(iy-2)cp a,data_80jr z,rrc_52fail_msg 51rrc_52: ld a,0ld (iy+1),arrc (iy+1)jr z,rr_0fail_msg 52rr_0: nopprint "rr"scfccfld a,data_aarr ajp p,rr_1fail_msg 0rr_1: jp pe,rr_2fail_msg 1rr_2: jr nc,rr_3fail_msg 2rr_3: jr nz,rr_4fail_msg 3rr_4: rr ajr c,rr_5fail_msg 4rr_5: jp po,rr_6fail_msg 5rr_6: cp a,#2ajr z,rr_7fail_msg 6rr_7: scfld a,0rr ajp m,rr_8fail_msg 7rr_8: cp a,data_80jr z,rr_9fail_msg 8rr_9: ld a,0rr ajr z,rr_10fail_msg 9rr_10: ld b,data_55ld c,data_aarr bjr c,rr_11fail_msg 10rr_11: rr cjr nc,rr_12fail_msg 11rr_12: ld a,bcp a,#2ajr z,rr_13fail_msg 12rr_13: ld a,ccp a,#d5jr z,rr_14fail_msg 13rr_14: ld d,data_7fld e,data_80rr djr c,rr_15fail_msg 14rr_15: rr ejr nc,rr_16fail_msg 15rr_16: ld a,dcp a,#3fjr z,rr_17fail_msg 16rr_17: ld a,ecp a,#c0jr z,rr_18fail_msg 17rr_18: ld hl,t_var2ld (hl),data_55rr (hl)jp p,rr_19fail_msg 18rr_19: jp po,rr_20fail_msg 19rr_20: jr c,rr_21fail_msg 20rr_21: jr nz,rr_22fail_msg 21rr_22: rr (hl)jp m,rr_23fail_msg 22rr_23: jp pe,rr_24fail_msg 23rr_24: jr nc,rr_25fail_msg 24rr_25: ld a,(hl)cp a,#95jr z,rr_26fail_msg 25rr_26: ld (hl),0rr (hl)jr z,rr_27fail_msg 26rr_27: ld ix,t_var3ld a,data_55ld (ix-2),arr (ix-2)jp p,rr_28fail_msg 27rr_28: jp po,rr_29fail_msg 28rr_29: jr c,rr_30fail_msg 29rr_30: jr nz,rr_31fail_msg 30rr_31: rr (ix-2)jp m,rr_32fail_msg 31rr_32: jp pe,rr_33fail_msg 32rr_33: jr nc,rr_34fail_msg 33rr_34: ld a,(ix-2)cp a,#95jr z,rr_35fail_msg 34rr_35: ld a,0ld (ix+2),arr (ix+2)jr z,rr_36fail_msg 35rr_36: ld iy,t_var3ld a,data_55ld (iy+2),arr (iy+2)jp p,rr_37fail_msg 36rr_37: jp po,rr_38fail_msg 37rr_38: jr c,rr_39fail_msg 38rr_39: jr nz,rr_40fail_msg 39rr_40: rr (iy+2)jp m,rr_41fail_msg 40rr_41: jp pe,rr_42fail_msg 41rr_42: jr nc,rr_43fail_msg 42rr_43: ld a,(iy+2)cp a,#95jr z,rr_44fail_msg 43rr_44: ld a,0ld (iy-1),arr (iy-1)jr z,sla_0fail_msg 44sla_0: nopprint "sla"ld a,data_55sla ajp m,sla_1fail_msg 0sla_1: jp pe,sla_2fail_msg 1sla_2: jr nc,sla_3fail_msg 2sla_3: jr nz,sla_4fail_msg 3sla_4: sla ajp p,sla_5fail_msg 4sla_5: jp po,sla_6fail_msg 5sla_6: jr c,sla_7fail_msg 6sla_7: cp a,data_55-1jr z,sla_8fail_msg 7sla_8: ld a,0sla ajr z,sla_9fail_msg 8sla_9: ld b,data_80ld c,data_7fsla bjr c,sla_10fail_msg 9sla_10: ld a,bcp a,0jr z,sla_11fail_msg 10sla_11: sla cjp m,sla_12fail_msg 11sla_12: ld a,ccp a,data_ff-1jr z,sla_13fail_msg 12sla_13: ld d,data_aald e,data_55sla djr c,sla_14fail_msg 13sla_14: ld a,dcp a,data_55-1jr z,sla_15fail_msg 14sla_15: sla ejp m,sla_16fail_msg 15sla_16: ld a,ecp a,data_aajr z,sla_17fail_msg 16sla_17: ld h,#12 ;bjp was >data_1234ld l,#34 ;bjp was >data_1234sla hjp p,sla_18fail_msg 17sla_18: ld a,hcp a,#24jr z,sla_19fail_msg 18sla_19: sla ljp p,sla_20fail_msg 19sla_20: ld a,lcp a,#68jr z,sla_21fail_msg 20sla_21: ld hl,t_var3ld (hl),data_55sla (hl)jp m,sla_22fail_msg 21sla_22: jp pe,sla_23fail_msg 22sla_23: jr nc,sla_24fail_msg 23sla_24: jr nz,sla_25fail_msg 24sla_25: sla (hl)jp p,sla_26fail_msg 25sla_26: jp po,sla_27fail_msg 26sla_27: jr c,sla_28fail_msg 27sla_28: ld a,(hl)cp a,data_55-1jr z,sla_29fail_msg 28sla_29: ld (hl),0sla (hl)jr z,sla_30fail_msg 29sla_30: ld ix,t_var3ld a,data_55ld (ix-2),asla (ix-2)jp m,sla_31fail_msg 30sla_31: jp pe,sla_32fail_msg 31sla_32: jr nc,sla_33fail_msg 32sla_33: jr nz,sla_34fail_msg 33sla_34: sla (ix-2)jp p,sla_35fail_msg 34sla_35: jp po,sla_36fail_msg 35sla_36: jr c,sla_37fail_msg 36sla_37: ld a,(ix-2)cp a,data_55-1jr z,sla_38fail_msg 37sla_38: ld a,data_80ld (ix+2),asla (ix+2)jr z,sla_39fail_msg 38sla_39: jr c,sla_40fail_msg 39sla_40: ld iy,t_var3ld a,data_55ld (iy+2),asla (iy+2)jp m,sla_41fail_msg 40sla_41: jp pe,sla_42fail_msg 41sla_42: jr nc,sla_43fail_msg 42sla_43: jr nz,sla_44fail_msg 43sla_44: sla (iy+2)jp p,sla_45fail_msg 44sla_45: jp po,sla_46fail_msg 45sla_46: jr c,sla_47fail_msg 46sla_47: ld a,(iy+2)cp a,data_55-1jr z,sla_48fail_msg 47sla_48: ld a,data_80ld (iy-2),asla (iy-2)jr z,sla_49fail_msg 48sla_49: jr c,sra_0fail_msg 49sra_0: nopprint "sra"ld a,data_55sra ajp p,sra_1fail_msg 0sra_1: jp po,sra_2fail_msg 1sra_2: jr c,sra_3fail_msg 2sra_3: jr nz,sra_4fail_msg 3sra_4: sra ajp po,sra_5fail_msg 4sra_5: jr nc,sra_6fail_msg 5sra_6: sra ajp pe,sra_7fail_msg 6sra_7: cp a,#0a ;data_aa.and.#0fjr z,sra_8fail_msg 7sra_8: ld a,1sra ajr c,sra_9fail_msg 8sra_9: jr z,sra_10fail_msg 9sra_10: ld a,data_80sra ajp m,sra_11fail_msg 10sra_11: cp a,#c0jr z,sra_12fail_msg 11sra_12: ld b,data_7fld c,data_aasra bjr c,sra_13fail_msg 12sra_13: ld a,bcp a,#3fjr z,sra_14fail_msg 13sra_14: sra cjr nc,sra_15fail_msg 14sra_15: ld a,ccp a,#d5jr z,sra_16fail_msg 15sra_16: ld d,data_55ld e,data_ffsra djr c,sra_17fail_msg 16sra_17: ld a,dcp a,#2ajr z,sra_18fail_msg 17sra_18: sra ejp m,sra_19fail_msg 18sra_19: ld a,ecp a,data_ffjr z,sra_20fail_msg 19sra_20: ld h,data_aald l,data_7fsra hjp m,sra_21fail_msg 20sra_21: ld a,hcp a,#d5jr z,sra_22fail_msg 21sra_22: sra ljr c,sra_23fail_msg 22sra_23: ld a,lcp a,#3fjr z,sra_24fail_msg 23sra_24: ld hl,t_var1ld (hl),data_55sra (hl)jp p,sra_25fail_msg 24sra_25: jp po,sra_26fail_msg 25sra_26: jr c,sra_27fail_msg 26sra_27: jr nz,sra_28fail_msg 27sra_28: sra (hl)jr nc,sra_29fail_msg 28sra_29: sra (hl)jp pe,sra_30fail_msg 29sra_30: ld a,(hl)cp a,#0a ;data_aa.and.#0fjr z,sra_31fail_msg 30sra_31: ld (hl),data_80sra (hl)jp m,sra_32fail_msg 31sra_32: ld a,(hl)cp a,#c0jr z,sra_33fail_msg 32sra_33: ld (hl),1sra (hl)jr c,sra_34fail_msg 33sra_34: jr z,sra_35fail_msg 34sra_35: ld ix,t_var3ld a,data_55ld (ix-2),asra (ix-2)jp p,sra_36fail_msg 35sra_36: jp po,sra_37fail_msg 36sra_37: jr c,sra_38fail_msg 37sra_38: jr nz,sra_39fail_msg 38sra_39: sra (ix-2)jr nc,sra_40fail_msg 39sra_40: sra (ix-2)jp pe,sra_41fail_msg 40sra_41: ld a,(ix-2)cp a,#0a ;data_aa.and.#0fjr z,sra_42fail_msg 41sra_42: ld a,data_80ld (ix+2),asra (ix+2)jp m,sra_43fail_msg 42sra_43: ld a,(ix+2)cp a,#c0jr z,sra_44fail_msg 43sra_44: ld a,1ld (ix-1),asra (ix-1)jr c,sra_45fail_msg 44sra_45: jr z,sra_46fail_msg 45sra_46: ld iy,t_var3ld a,data_55ld (iy-2),asra (iy-2)jp p,sra_47fail_msg 46sra_47: jp po,sra_48fail_msg 47sra_48: jr c,sra_49fail_msg 48sra_49: jr nz,sra_50fail_msg 49sra_50: sra (iy-2)jr nc,sra_51fail_msg 50sra_51: sra (iy-2)jp pe,sra_52fail_msg 51sra_52: ld a,(iy-2)cp a,#0a ;data_aa.and.#0fjr z,sra_53fail_msg 52sra_53: ld a,data_80ld (iy+2),asra (iy+2)jp m,sra_54fail_msg 53sra_54: ld a,(iy+2)cp a,#c0jr z,sra_55fail_msg 54sra_55: ld a,1ld (iy-1),asra (iy-1)jr c,sra_56fail_msg 55sra_56: jr z,srl_0fail_msg 56srl_0: nopprint "srl"ld a,data_55srl ajr c,srl_1fail_msg 0srl_1: jp po,srl_2fail_msg 1srl_2: srl ajr nc,srl_3fail_msg 2srl_3: srl ajp pe,srl_4fail_msg 3srl_4: cp a,#0a ;data_aa.and.#0fjr z,srl_5fail_msg 4srl_5: ld a,data_80and ajp m,srl_6fail_msg 5srl_6: srl ajp p,srl_7fail_msg 6srl_7: ld a,2srl ajr nz,srl_8fail_msg 7srl_8: srl ajr z,srl_9fail_msg 8srl_9: jr c,srl_10fail_msg 9srl_10: ld b,data_aasrl bjp p,srl_11fail_msg 10srl_11: ld a,bcp a,data_55jr z,srl_12fail_msg 11srl_12: ld c,data_7fsrl cjr c,srl_13fail_msg 12srl_13: ld a,ccp a,#3fjr z,srl_14fail_msg 13srl_14: ld d,data_55srl djr c,srl_15fail_msg 14srl_15: ld a,dcp a,#2ajr z,srl_16fail_msg 15srl_16: ld e,data_ffsrl ejr c,srl_17fail_msg 16srl_17: ld a,ecp a,data_7fjr z,srl_18fail_msg 17srl_18: ld h,#12 ;bjp was >data_1234srl hjr nc,srl_19fail_msg 18srl_19: ld a,hcp a,9jr z,srl_20fail_msg 19srl_20: ld l,#34 ;bjp was >data_1234srl ljr nc,srl_21fail_msg 20srl_21: ld a,lcp a,#1ajr z,srl_22fail_msg 21srl_22: ld hl,t_var1ld (hl),data_55srl (hl)jr c,srl_23fail_msg 22srl_23: jp po,srl_24fail_msg 23srl_24: srl (hl)jr nc,srl_25fail_msg 24srl_25: srl (hl)jp pe,srl_26fail_msg 25srl_26: ld a,(hl)cp a,#0a ;data_aa.and.#0fjr z,srl_27fail_msg 26srl_27: ld (hl),data_80and (hl)jp z,srl_28fail_msg 27srl_28: srl (hl)jp p,srl_29fail_msg 28srl_29: ld a,(hl)cp a,#40jr z,srl_30fail_msg 29srl_30: ld (hl),2srl (hl)jr nz,srl_31fail_msg 30srl_31: srl (hl)jr z,srl_32fail_msg 31srl_32: jr c,srl_33fail_msg 32srl_33: ld ix,t_var3ld a,data_55ld (ix+2),asrl (ix+2)jr c,srl_34fail_msg 33srl_34: jp po,srl_35fail_msg 34srl_35: srl (ix+2)jr nc,srl_36fail_msg 35srl_36: srl (ix+2)jp pe,srl_37fail_msg 36srl_37: ld a,(ix+2)cp a,#0a ;data_aa.and.#0fjr z,srl_38fail_msg 37srl_38: ld a,data_80ld (ix-2),aand (ix-2)jp m,srl_39fail_msg 38srl_39: srl (ix-2)jp p,srl_40fail_msg 39srl_40: ld a,(ix-2)cp a,#40jr z,srl_41fail_msg 40srl_41: ld a,2ld (ix+1),asrl (ix+1)jr nz,srl_42fail_msg 41srl_42: srl (ix+1)jr z,srl_43fail_msg 42srl_43: jr c,srl_44fail_msg 43srl_44: ld iy,t_var3ld a,data_55ld (iy+2),asrl (iy+2)jr c,srl_45fail_msg 44srl_45: jp po,srl_46fail_msg 45srl_46: srl (iy+2)jr nc,srl_47fail_msg 46srl_47: srl (iy+2)jp pe,srl_48fail_msg 47srl_48: ld a,(iy+2)cp a,#0a ;data_aa.and.#0fjr z,srl_49fail_msg 48srl_49: ld a,data_80ld (iy-2),aand (iy-2)jp m,srl_50fail_msg 49srl_50: srl (iy-2)jp p,srl_51fail_msg 50srl_51: ld a,(iy-2)cp a,#40jr z,srl_52fail_msg 51srl_52: ld a,2ld (iy+1),asrl (iy+1)jr nz,srl_53fail_msg 52srl_53: srl (iy+1)jr z,srl_54fail_msg 53srl_54: jr c,rld_0fail_msg 54rld_0: nopprint "rld/rrd"ld hl,t_var5ld a,data_55ld (hl),data_aarldjp p,rld_1fail_msg 0rld_1: cp a,data_55+5jr z,rld_2fail_msg 1rld_2: ld a,(hl)cp a,data_aa-5jr z,rld_3fail_msg 2rld_3: ld (hl),data_7fld a,data_80rldjp m,rld_4fail_msg 3rld_4: jp pe,rld_5fail_msg 4rld_5: rldjp po,rld_6fail_msg 5rld_6: cp a,data_80+15jr z,rld_7fail_msg 6rld_7: ld a,(hl)cp a,7jr z,rld_8fail_msg 7rld_8: ld a,#05 ;data_55.and.#0fld (hl),#0a ;data_aa.and.#0frldjr z,rld_9fail_msg 8rld_9: ld a,(hl)cp a,#a5jr z,rrd_0fail_msg 9rrd_0: ld hl,t_var3ld a,data_55ld (hl),data_aarrdjp p,rrd_1fail_msg 0rrd_1: jp pe,rrd_2fail_msg 1rrd_2: jr nz,rrd_3fail_msg 2rrd_3: cp a,data_55+5jr z,rrd_4fail_msg 3rrd_4: ld a,(hl)cp a,data_55+5jr z,rrd_5fail_msg 4rrd_5: ld (hl),data_7fld a,data_80rrdjp m,rrd_6fail_msg 5rrd_6: jp po,rrd_7fail_msg 6rrd_7: cp a,data_80+15jr z,rrd_8fail_msg 7rrd_8: ld a,(hl)cp a,7jr z,rrd_9fail_msg 8rrd_9: ld a,8ld (hl),0rrdjr z,rrd_10fail_msg 9rrd_10: ld a,(hl)cp a,data_80jr z,bit_0fail_msg 10bit_0: nopprint "bit"ld a,data_ffbit 0,ajr nz,bit_1fail_msg 0bit_1: bit 1,ajr nz,bit_2fail_msg 1bit_2: bit 2,ajr nz,bit_3fail_msg 2bit_3: bit 3,ajr nz,bit_4fail_msg 3bit_4: bit 4,ajr nz,bit_5fail_msg 4bit_5: bit 5,ajr nz,bit_6fail_msg 5bit_6: bit 6,ajr nz,bit_7fail_msg 6bit_7: bit 7,ajr nz,bit_8fail_msg 7bit_8: ld a,0bit 0,ajr z,bit_9fail_msg 8bit_9: bit 1,ajr z,bit_10fail_msg 9bit_10: bit 2,ajr z,bit_11fail_msg 10bit_11: bit 3,ajr z,bit_12fail_msg 11bit_12: bit 4,ajr z,bit_13fail_msg 12bit_13: bit 5,ajr z,bit_14fail_msg 13bit_14: bit 6,ajr z,bit_15fail_msg 14bit_15: bit 7,ajr z,bit_16fail_msg 15bit_16: ld b,data_80bit 2,bjr z,bit_17fail_msg 16bit_17: bit 7,bjr nz,bit_18fail_msg 17bit_18: ld c,data_55bit 7,cjr z,bit_19fail_msg 18bit_19: bit 0,cjr nz,bit_20fail_msg 19bit_20: ld d,data_aabit 7,djr nz,bit_21fail_msg 20bit_21: bit 4,djr z,bit_22fail_msg 21bit_22: ld e,data_7fbit 7,ejr z,bit_23fail_msg 22bit_23: bit 3,ejr nz,bit_24fail_msg 23bit_24: ld h,#12 ;bjp was >data_1234bit 4,hjr nz,bit_25fail_msg 24bit_25: bit 2,hjr z,bit_26fail_msg 25bit_26: ld l,#34 ;bjp was >data_1234bit 3,ljr z,bit_27fail_msg 26bit_27: bit 2,ljr nz,bit_28fail_msg 27bit_28: ld hl,t_var4ld (hl),data_55bit 0,(hl)jr nz,bit_29fail_msg 28bit_29: bit 1,(hl)jr z,bit_30fail_msg 29bit_30: bit 2,(hl)jr nz,bit_31fail_msg 30bit_31: bit 3,(hl)jr z,bit_32fail_msg 31bit_32: bit 4,(hl)jr nz,bit_33fail_msg 32bit_33: bit 5,(hl)jr z,bit_34fail_msg 33bit_34: bit 6,(hl)jr nz,bit_35fail_msg 34bit_35: bit 7,(hl)jr z,bit_36fail_msg 35bit_36: ld ix,t_var3ld a,data_aald (ix-2),abit 0,(ix-2)jr z,bit_37fail_msg 36bit_37: bit 1,(ix-2)jr nz,bit_38fail_msg 37bit_38: bit 2,(ix-2)jr z,bit_39fail_msg 38bit_39: bit 3,(ix-2)jr nz,bit_40fail_msg 39bit_40: bit 4,(ix-2)jr z,bit_41fail_msg 40bit_41: bit 5,(ix-2)jr nz,bit_42fail_msg 41bit_42: bit 6,(ix-2)jr z,bit_43fail_msg 42bit_43: bit 7,(ix-2)jr nz,bit_44fail_msg 43bit_44: ld iy,t_var3ld a,data_55ld (iy+2),abit 0,(iy+2)jr nz,bit_45fail_msg 44bit_45: bit 1,(iy+2)jr z,bit_46fail_msg 45bit_46: bit 2,(iy+2)jr nz,bit_47fail_msg 46bit_47: bit 3,(iy+2)jr z,bit_48fail_msg 47bit_48: bit 4,(iy+2)jr nz,bit_49fail_msg 48bit_49: bit 5,(iy+2)jr z,bit_50fail_msg 49bit_50: bit 6,(iy+2)jr nz,bit_51fail_msg 50bit_51: bit 7,(iy+2)jr z,set_0fail_msg 51set_0: nopprint "set"ld a,0set 0,aset 2,aset 4,aset 6,acp a,data_55jr z,set_1fail_msg 0set_1: set 1,aset 3,aset 5,aset 7,acp a,data_ffjr z,set_2fail_msg 1set_2: ld b,0set 1,bset 3,bld a,bcp a,#0a ;data_aa.and.#0fjr z,set_3fail_msg 2set_3: ld c,0set 1,cset 4,cld a,ccp a,#12 ;bjp was >data_1234jr z,set_4fail_msg 3set_4: ld d,0set 2,dset 4,dset 5,dld a,dcp a,#34 ;bjp was >data_1234jr z,set_5fail_msg 4set_5: ld e,0set 7,eld a,ecp a,data_80jr z,set_6fail_msg 5set_6: ld h,0set 0,hset 2,hset 4,hset 6,hld a,hcp a,data_55jr z,set_7fail_msg 6set_7: ld l,0set 1,lset 3,lset 5,lset 7,lld a,lcp a,data_aajr z,set_8fail_msg 7set_8: ld hl,t_var5ld (hl),0set 0,(hl)set 2,(hl)set 4,(hl)set 6,(hl)ld a,(hl)cp a,data_55jr z,set_9fail_msg 8set_9: ld (hl),0set 1,(hl)set 3,(hl)set 5,(hl)set 7,(hl)ld a,(hl)cp a,data_aajr z,set_10fail_msg 9set_10: ld ix,t_var3ld a,0ld (ix-2),ald (ix+2),aset 0,(ix-2)set 2,(ix-2)set 4,(ix-2)set 6,(ix-2)ld a,(ix-2)cp a,data_55jr z,set_11fail_msg 10set_11: set 1,(ix+2)set 3,(ix+2)set 5,(ix+2)set 7,(ix+2)ld a,(ix+2)cp a,data_aajr z,set_12fail_msg 11set_12: ld iy,t_var3ld a,0ld (iy-1),ald (iy+1),aset 0,(iy-1)set 2,(iy-1)set 4,(iy-1)set 6,(iy-1)ld a,(iy-1)cp a,data_55jr z,set_13fail_msg 12set_13: set 1,(iy+1)set 3,(iy+1)set 5,(iy+1)set 7,(iy+1)ld a,(iy+1)cp a,data_aajr z,res_0fail_msg 13res_0: nopprint "res"ld a,data_ffres 7,acp a,data_7fjr z,res_1fail_msg 0res_1: res 5,ares 3,ares 1,acp a,data_55jr z,res_2fail_msg 1res_2: ld a,data_ffres 0,ares 2,ares 4,ares 6,acp a,data_aajr z,res_3fail_msg 2res_3: ld b,data_ffres 7,bld a,bcp a,data_7fjr z,res_4fail_msg 3res_4: ld c,data_ffres 0,cres 1,cres 2,cres 3,cres 4,cres 5,cres 6,cld a,ccp a,data_80jr z,res_5fail_msg 4res_5: ld d,data_ffres 0,dres 2,dres 4,dres 6,dld a,dcp a,data_aajr z,res_6fail_msg 5res_6: ld e,data_ffres 1,eres 3,eres 5,eres 7,eld a,ecp a,data_55jr z,res_7fail_msg 6res_7: ld h,data_ffres 0,hres 2,hres 3,hres 5,hres 6,hres 7,hld a,hcp a,#12 ;bjp was >data_1234jr z,res_8fail_msg 7res_8: ld l,data_ffres 0,lres 1,lres 3,lres 6,lres 7,lld a,lcp a,#34 ;bjp was >data_1234jr z,res_9fail_msg 8res_9: ld hl,t_var3ld (hl),data_ffres 0,(hl)res 2,(hl)res 4,(hl)res 6,(hl)ld a,(hl)cp a,data_aajr z,res_10fail_msg 9res_10: res 1,(hl)res 3,(hl)res 5,(hl)res 7,(hl)ld a,(hl)cp a,0jr z,res_11fail_msg 10res_11: ld ix,t_var3ld a,data_ffld (ix-2),ald (ix+2),ares 1,(ix-2)res 3,(ix-2)res 5,(ix-2)res 7,(ix-2)ld a,(ix-2)cp a,data_55jr z,res_12fail_msg 11res_12: res 0,(ix+2)res 2,(ix+2)res 4,(ix+2)res 6,(ix+2)ld a,(ix+2)cp a,data_aajr z,res_13fail_msg 12res_13: ld iy,t_var3ld a,data_ffld (iy-1),ald (iy+1),ares 1,(iy-1)res 3,(iy-1)res 5,(iy-1)res 7,(iy-1)ld a,(iy-1)cp a,data_55jr z,res_14fail_msg 13res_14: res 0,(iy+1)res 2,(iy+1)res 4,(iy+1)res 6,(iy+1)ld a,(iy+1)cp a,data_aajr z,jp_0fail_msg 14jp_0: nopprint "jp"jp jp_1nopnopfail_msg 0jp_1: ld a,0and ajp z,jp_2fail_msg 1jp_2: jp nc,jp_3fail_msg 2jp_3: ld b,1sub a,bjp nz,jp_4fail_msg 3jp_4: jp c,jp_5fail_msg 4jp_5: jp jp_7fail_msg 5jp_6: jp jr_0fail_msg 6jp_7: jp jp_6fail_msg 7jr_0: jr jr_2fail_msg 0jr_1: jr jr_3fail_msg 1jr_2: jr jr_1fail_msg 2jr_3: ld hl,jp_9jp (hl)fail_msg 3jp_8: ld ix,jp_10jp (ix)fail_msg 8jp_9: jp jp_8fail_msg 9jp_10: ld iy,djnz_0jp (iy)fail_msg 10djnz_0: ld b,5ld a,0djnz_1: inc adjnz djnz_1cp a,5jr z,call_0fail_msg 1call_0: nopprint "call"ld a,0call sub1cp a,data_7fjr z,call_1fail_msg 0call_1: ld a,0and acall z,sub2cp a,data_55jr z,call_2fail_msg 1call_2: ld a,data_aaand acall nz,sub3cp a,data_aa+1jr z,call_3fail_msg 2call_3: ld a,0cp a,0call nc,sub4cp a,data_ffjr z,call_4fail_msg 3call_4: ld a,0sub a,1call c,sub5cp a,data_ff-1jr z,call_5fail_msg 4call_5: ld a,data_7fsla acall po,sub6cp a,data_7fjr z,call_6fail_msg 5call_6: ld a,data_aasrl acall pe,sub7cp a,data_aajr z,call_7fail_msg 6call_7: ld a,data_80sra acall m,sub8cp a,data_80jr z,call_8fail_msg 7call_8: ld a,data_7fsra acall p,sub9cp a,data_7fjr z,rst_0fail_msg 8rst_0: ld a, 1ld (rst_state),aprint "rst"rst #00cp a,1jr z,rst_1fail_msg 0rst_1: rst #08cp a,2jr z,rst_2fail_msg 1rst_2: rst #10cp a,3jr z,rst_3fail_msg 2rst_3: rst #18cp a,4jr z,rst_4fail_msg 3rst_4: rst #20cp a,5jr z,rst_5fail_msg 4rst_5: rst #28cp a,6jr z,rst_6fail_msg 5rst_6: rst #30cp a,7jr z,rst_7fail_msg 6rst_7: rst #38cp a,8jp z,ldi_opsfail_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_7fjr z,in_1fail_msg 0in_1: ld c,in_portin a,(c)jr nz,in_2fail_msg 1in_2: jp p,in_3fail_msg 2in_3: jp pe,in_4fail_msg 3in_4: cp a,data_55jr z,in_5fail_msg 4in_5: in a,(c)jp m,in_6fail_msg 5in_6: jp po,in_7fail_msg 6in_7: jr nz,in_8fail_msg 7in_8: cp a,data_80jr z,in_9fail_msg 8in_9: in a,(c)jr z,in_10fail_msg 9in_10: in b,(c)jp m,in_11fail_msg 10in_11: ld a,bcp a,data_ffjr z,in_12fail_msg 11in_12: in d,(c)jp pe,in_13fail_msg 12in_13: ld a,dcp a,data_aajr z,in_14fail_msg 13in_14: in e,(c)jp p,in_15fail_msg 14in_15: ld a,ecp a,data_7fjr z,in_16fail_msg 15in_16: in h,(c)jp pe,in_17fail_msg 16in_17: ld a,hcp a,data_55jr z,in_18fail_msg 17in_18: in l,(c)jp m,in_19fail_msg 18in_19: ld a,lcp a,data_80jr z,in_20fail_msg 19in_20: in c,(c)jr z,in_21fail_msg 20in_21: ld c,in_portld b,2ld hl,t_var1inijr nz,in_22fail_msg 21in_22: inijr z,in_23fail_msg 22in_23: ld hl,t_var1ld a,(hl)cp a,data_ffjr z,in_24fail_msg 23in_24: inc hlld a,(hl)cp a,data_aajr z,in_25fail_msg 24in_25: ld b,5ld c,in_portld hl,t_var1inirjr z,in_26fail_msg 25in_26: ld hl,t_var1ld a,(hl)cp a,data_7fjr z,in_27fail_msg 26in_27: inc hlld a,(hl)cp a,data_55jr z,in_28fail_msg 27in_28: inc hlld a,(hl)cp a,data_80jr z,in_29fail_msg 28in_29: inc hlld a,(hl)cp a,0jr z,in_30fail_msg 29in_30: inc hlld a,(hl)cp a,data_ffjr z,in_31fail_msg 30in_31: ld b,2ld c,in_portld hl,t_var5indjr nz,in_32fail_msg 31in_32: indjr z,in_33fail_msg 32in_33: ld hl,t_var5ld a,(hl)cp a,data_aajr z,in_34fail_msg 33in_34: dec hlld a,(hl)cp a,data_7fjr z,in_35fail_msg 34in_35: ld b,5ld c,in_portld hl,t_var5indrjr z,in_36fail_msg 35in_36: ld hl,t_var5ld a,(hl)cp a,data_55jr z,in_37fail_msg 36in_37: dec hlld a,(hl)cp a,data_80jr z,in_38fail_msg 37in_38: dec hlld a,(hl)cp a,0jr z,in_39fail_msg 38in_39: dec hlld a,(hl)cp a,data_ffjr z,in_40fail_msg 39in_40: dec hlld a,(hl)cp a,data_aajr z,ldi_0fail_msg 40ldi_ops: nopprint "ldi"ldi_0: ld hl,t_var1ld a,#12 ;bjp was >data_1234ld (hl),ainc hlld a,#34 ;bjp was >data_1234ld (hl),adec hlld de,t_var3ld bc,2ldijp pe,ldi_1fail_msg 0ldi_1: ldijp po,ldi_2fail_msg 1ldi_2: ld hl,t_var3ld a,(hl)cp a,#12 ;bjp was >data_1234jr z,ldi_3fail_msg 2ldi_3: inc hlld a,(hl)cp a,#34 ;bjp was >data_1234jr z,ldir_0fail_msg 3ldir_0: ld hl,var1ld de,t_var1ld bc,5ldirjp po,ldir_1fail_msg 0ldir_1: ld hl,t_var1ld a,(hl)cp a,data_ffjr z,ldir_2fail_msg 1ldir_2: inc hlld a,(hl)cp a,data_55jr z,ldir_3fail_msg 2ldir_3: inc hlld a,(hl)cp a,data_80jr z,ldir_4fail_msg 3ldir_4: inc hlld a,(hl)cp a,data_aajr z,ldir_5fail_msg 4ldir_5: inc hlld a,(hl)cp a,data_7fjr z,ldd_0fail_msg 5ldd_0: ld hl,t_var5ld a,#12 ;bjp was >data_1234ld (hl),adec hlld a,#34 ;bjp was >data_1234ld (hl),ainc hlld bc,2ld de,t_var3lddjp pe,ldd_1fail_msg 0ldd_1: lddjp po,ldd_2fail_msg 1ldd_2: ld hl,t_var3ld a,(hl)cp a,#12 ;bjp was >data_1234jr z,ldd_3fail_msg 2ldd_3: dec hlld a,(hl)cp a,#34 ;bjp was >data_1234jr z,lddr_0fail_msg 3lddr_0: ld bc,5ld hl,var5ld de,t_var5lddrjp po,lddr_1fail_msg 0lddr_1: ld hl,t_var1ld a,(hl)cp a,data_ffjr z,lddr_2fail_msg 1lddr_2: inc hlld a,(hl)cp a,data_55jr z,lddr_3fail_msg 2lddr_3: inc hlld a,(hl)cp a,data_80jr z,lddr_4fail_msg 3lddr_4: inc hlld a,(hl)cp a,data_aajr z,lddr_5fail_msg 4lddr_5: inc hlld a,(hl)cp a,data_7fjr z,cpi_0fail_msg 5cpi_0: ld hl,t_var1ld bc,5ld a,data_7fcpijp pe,cpi_1fail_msg 0cpi_1: jp m,cpi_2fail_msg 1cpi_2: jr nz,cpi_3fail_msg 2cpi_3: cpijp pe,cpi_4fail_msg 3cpi_4: jp p,cpi_5fail_msg 4cpi_5: jr nz,cpi_6fail_msg 5cpi_6: cpijp pe,cpi_7fail_msg 6cpi_7: jp m,cpi_8fail_msg 7cpi_8: jr nz,cpi_9fail_msg 8cpi_9: cpijp pe,cpi_10fail_msg 9cpi_10: jp m,cpi_11fail_msg 10cpi_11: jr nz,cpi_12fail_msg 11cpi_12: cpijp po,cpi_13fail_msg 12cpi_13: jp p,cpi_14fail_msg 13cpi_14: jr z,cpir_0fail_msg 14cpir_0: ld a,data_aald hl,var1ld bc,5cpirjr z,cpir_1fail_msg 0cpir_1: jp pe,cpir_2fail_msg 1cpir_2: ld a,bcp a,0jr z,cpir_3fail_msg 2cpir_3: ld a,ccp a,1jr z,cpir_4fail_msg 3cpir_4: ld a,data_7fld hl,var1ld bc,5cpirjp po,cpir_5fail_msg 4cpir_5: jr z,cpir_6fail_msg 5cpir_6: ld a,#34 ;bjp was >data_1234ld hl,var1ld bc,5cpirjp po,cpir_7fail_msg 6cpir_7: jr nz,cpir_8fail_msg 7cpir_8: jp m,cpir_9fail_msg 8cpir_9: ld a,data_aald hl,var1ld bc,3cpirjp po,cpir_10fail_msg 9cpir_10: jp p,cpir_11fail_msg 10cpir_11: jr nz,cpd_0fail_msg 11cpd_0: ld a,data_ffld hl,var5ld bc,5cpdjp m,cpd_1fail_msg 0cpd_1: jp pe,cpd_2fail_msg 1cpd_2: jr nz,cpd_3fail_msg 2cpd_3: cpdjp p,cpd_4fail_msg 3cpd_4: jp pe,cpd_5fail_msg 4cpd_5: jr nz,cpd_6fail_msg 5cpd_6: cpdjp p,cpd_7fail_msg 6cpd_7: jp pe,cpd_8fail_msg 7cpd_8: jr nz,cpd_9fail_msg 8cpd_9: cpdjp m,cpd_10fail_msg 9cpd_10: jp pe,cpd_11fail_msg 10cpd_11: jr nz,cpd_12fail_msg 11cpd_12: cpdjp p,cpd_13fail_msg 12cpd_13: jp po,cpd_14fail_msg 13cpd_14: jr z,cpdr_0fail_msg 14cpdr_0: ld a,data_80ld hl,var5ld bc,5cpdrjp pe,cpdr_1fail_msg 0cpdr_1: jp p,cpdr_2fail_msg 1cpdr_2: jr z,cpdr_3fail_msg 2cpdr_3: ld a,bcp a,0jr z,cpdr_4fail_msg 3cpdr_4: ld a,ccp a,2jr z,cpdr_5fail_msg 4cpdr_5: ld a,#34 ;bjp was >data_1234ld hl,var5ld bc,5cpdrjp po,cpdr_6fail_msg 5cpdr_6: jr nz,cpdr_7fail_msg 6cpdr_7: jp p,cpdr_8fail_msg 7cpdr_8: ld a,#34 ;bjp was >data_1234ld hl,var5ld bc,3cpdrjp po,cpdr_9fail_msg 8cpdr_9: jr nz,cpdr_10fail_msg 9cpdr_10: jp m,test_exitfail_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,#30out (out_port),ald c,out_portld a,#31out (c),ald b,#32out (c),bld d,#33out (c),dld e,#34out (c),eld h,#35out (c),hld l,#36out (c),lout (c),c ;output value dividerouti_0: ld a,#31 ;set up output valuesld b,5ld hl,t_var1outi_1: ld (hl),ainc ainc hldjnz outi_1outi_2: ld c,out_portld b,5ld hl,t_var1outi_3: outijr nz,outi_3otir_0: out (c),c ;output value dividerld hl,t_var1ld b,5otirjr z,outd_0fail_msg 0outd_0: out (c),cld hl,t_var5ld b,5outd_1: outdjr nz,outd_1otdr_0: out (c),cld b,5ld hl,t_var5otdrjr z,otdr_1fail_msg 0otdr_1: out (c),cld a,#0dout (c),ald a,#0aout (c),atest_exit:;; complicated pass/fail computation no longer necessary;; if we got here, we passedpassed;;subroutine 1, must load a with #7f;sub1: ld a,data_7fret;;;subroutine 2, must load a with #55;sub2: ld a,data_55cp a,data_55ret z;;subroutine 3, increments a;sub3: inc aand aret nz;;subroutine 4, subtracts 1 from a;sub4: sub a,1ret c;;subroutine 5, subtracts 1 from a;sub5: sub a,1ret nc;;subroutine 6, shifts a right logically;sub6: srl aret po;;subroutine 7, shifts a left arithmetically;sub7: sla aret pe;;subroutine 8, shifts a left arithmetically;sub8: sla aret m;;subroutine 9, rotates a left;sub9: rl aret p;;restart 0 routine;rst_0000_1:ld a, (rst_state)cp 1jp z,rst_test_retld a, 0out (#82), a ; disable timeout countld a,(pass_count)or ajp z,startld a,1retrst_test_ret: ret;; data;var1: db data_ffvar2: db data_55var3: db data_80var4: db data_aavar5: db data_7f;mem_init_vals:dw data_1234dw data_55aadw data_7fffdw data_8000dw data_aa55dw data_ffffmem_init:push bcpush depush hl;; initialize region from 8000 to 80FFld hl, #8000ld b, #ffmem_init_loop_1:ld (hl), 0inc hldjnz mem_init_loop_1;; initialize region from 8100 to 81FFld hl, #8100ld b, #ffmem_init_loop_2:ld (hl), 0inc hldjnz mem_init_loop_2;; populate special values from 8005ld de, #8005ld hl, mem_init_valsld b, 12mem_init_loop_3:ld a, (hl)inc hlex de, hlld (hl), ainc hlex de, hldjnz mem_init_loop_3;; exitpop hlpop depop bcrett_var1: equ #8000t_var2: equ #8001t_var3: equ #8002t_var4: equ #8003t_var5: equ #8004w_var1: equ #8005w_var2: equ #8007w_var3: equ #8009w_var4: equ #800Bw_var5: equ #800Dw_var6: equ #800Ftw_var1: equ #8011tw_var2: equ #8013tw_var3: equ #8015tw_var4: equ #8017tw_var5: equ #8019tw_var6: equ #801Btw_var7: equ #801Derror_cnt: equ #801Epass_count: equ #801Ffail_num: equ #8020rst_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
