Rev 539 | Blame | Compare with Previous | Last modification | View Log | Download
# file opened: z80cover100.asm1 0000 ;; few more test cases not covered by regular tests,2 0000 ;; but were discovered by code coverage as code not executed in tests3 00004 0000 ; some tests need more strict syntax rules to hit specific code paths5 0000 OPT reset --syntax=ab6 0000z80cover100.asm(7): error: Operand expected: [12347 0000 EE 00 xor [1234 ; "Operand expected" error when parsing of no-memory argument fails8 0002z80cover100.asm(9): error: Operand expected9 0002 CD 00 00 call ; "Operand expected" error10 000511 0005 7F ld a,high af ; tricky way to write "ld a,a" :) ("high af" covered)12 000613 0006 ED 70 in low af,(c) ; tricky way to write "in f,(c)" ("low af" covered)14 000815 0008 ; nonexistent register pairs (with possible match) in `GetRegister` functionz80cover100.asm(16): error: Illegal instruction: pop az16 0008 pop azz80cover100.asm(16): error: Illegal instruction: pop ha16 0008 pop haz80cover100.asm(16): error: Illegal instruction: pop xa16 0008 pop xaz80cover100.asm(16): error: Illegal instruction: pop ya16 0008 pop yaz80cover100.asm(16): error: Illegal instruction: pop YA16 0008 pop YA17 000818 0008 ; invalid registers in common ALU instructionsz80cover100.asm(19): error: Illegal instruction: xor af19 0008 xor afz80cover100.asm(19): error: Illegal instruction: xor sp19 0008 xor spz80cover100.asm(19): error: Illegal instruction: xor i19 0008 xor iz80cover100.asm(19): error: Illegal instruction: xor r19 0008 xor rz80cover100.asm(19): error: Illegal instruction: xor f19 0008 xor f20 0008z80cover100.asm(21): error: [ADC] Comma expected21 0008 adc hl ; "Comma expected" errorz80cover100.asm(22): error: Illegal instruction: adc hl,ix ; invalid instr.22 0008 adc hl,ix ; invalid instr.23 0008 88 89 adc b ,, c ; multiarg24 000Az80cover100.asm(25): error: [ADD] Comma expected25 000A add hl ; "Comma expected" errorz80cover100.asm(26): error: [EX] Comma expected26 000A ex hl ; "Comma expected" errorz80cover100.asm(27): error: [EX] Comma expected27 000A ex (sp) ; "Comma expected" error28 000A29 000A A0 A1 and b ,, c ; multiarg30 000C CB 69 DD CB bit 5,c ,, 3,(ix+4) ; multiarg30 0010 04 5E31 0012 B8 B9 cp b ,, c ; multiarg32 0014 04 0C inc b ,, c ; multiarg33 0016 DB 01 ED 50 in a,(1) ,, d,(c) ; multiarg34 001A 10 FE 10 FE djnz $ ,, $ ; multiarg35 001E 18 FE 18 FE jr $ ,, $ ; multiarg36 0022 7E 2B 46 2B ldd a,(hl) ,, b,(hl); multiarg37 0026 7E 23 46 23 ldi a,(hl) ,, b,(hl); multiarg38 002A ED A8 ED A8 ldd ,, ; freaking multiarg syntax allows for this!39 002E ED A0 ED A0 ldi ,, ; freaking multiarg syntax allows for this!40 0032z80cover100.asm(41): error: Operand expected41 0032 10 00 djnz ; "Operand expected" errorz80cover100.asm(42): error: [DJNZ] Target out of range (-129)42 0034 10 00 djnz $+2-128-1 ; just outside of rangez80cover100.asm(43): error: [DJNZ] Target out of range (+128)43 0036 10 00 djnz $+2+127+1 ; just outside of range44 0038z80cover100.asm(45): error: Illegal instruction: dec r ; illegal dec/inc instruction45 0038 dec r ; illegal dec/inc instructionz80cover100.asm(46): error: Illegal instruction: inc r46 0038 inc rz80cover100.asm(47): error: Illegal instruction: dec af47 0038 dec afz80cover100.asm(48): error: Illegal instruction: inc af48 0038 inc af49 0038z80cover100.asm(50): error: [JR] Illegal condition: jr p,$50 0038 jr p,$ ; illegal JR conditionsz80cover100.asm(51): error: [JR] Illegal condition: jr ns,$51 0038 jr ns,$z80cover100.asm(52): error: [JR] Illegal condition: jr m,$52 0038 jr m,$z80cover100.asm(53): error: [JR] Illegal condition: jr s,$53 0038 jr s,$z80cover100.asm(54): error: [JR] Illegal condition: jr po,$54 0038 jr po,$z80cover100.asm(55): error: [JR] Illegal condition: jr pe,$55 0038 jr pe,$56 003857 0038 ; illegal instructions (exercising all code paths)z80cover100.asm(58): error: Illegal instruction: ld (1234),af58 0038 ld (1234),afz80cover100.asm(59): error: Illegal instruction: ld (1234),r59 0038 ld (1234),rz80cover100.asm(60): error: Illegal instruction: ld (af),a60 0038 ld (af),az80cover100.asm(61): error: Illegal instruction: ldd a,(af)61 0038 ldd a,(af)z80cover100.asm(62): error: Illegal instruction: ldi a,(af)62 0038 ldi a,(af)z80cover100.asm(63): error: Illegal instruction: ldd b,c63 0038 ldd b,cz80cover100.asm(64): error: Illegal instruction: ldi b,c64 0038 ldi b,cz80cover100.asm(65): error: Illegal instruction: ldd (hl),i65 0038 ldd (hl),iz80cover100.asm(66): error: Illegal instruction: ldi (hl),i66 0038 ldi (hl),iz80cover100.asm(67): error: Illegal instruction: ldd (ix),i67 0038 ldd (ix),iz80cover100.asm(68): error: Illegal instruction: ldi (iy),i68 0038 ldi (iy),iz80cover100.asm(69): error: Illegal instruction: ldi b,(af)69 0038 ldi b,(af)z80cover100.asm(70): error: Illegal instruction: ldi bc,a70 0038 ldi bc,az80cover100.asm(71): error: Illegal instruction: ldi de,a71 0038 ldi de,az80cover100.asm(72): error: Illegal instruction: ldi hl,a72 0038 ldi hl,a73 003874 0038 ; normal instructions, different syntax (not used yet by any test)75 0038 08 exa75 0039 08 ex af,af' ; "ex af,af'" shortcut76 003A EB exd76 003B EB ex de,hl ; "ex de,hl" shortcut77 003C ED 70 inf77 003E ED 70 in f,(c) ; "in f,(c)" shortcut78 004079 0040 OPT reset --syntax=abF ; no fakes allowed80 0040 ED A8 ldd ; regular ldd81 0042 ED A0 ldi ; regular ldiz80cover100.asm(82): error: Unexpected: a,(hl)82 0044 ED A8 ldd a,(hl) ; regular ldd with "unexpected ...." error when fakes are OFFz80cover100.asm(83): error: Unexpected: a,(hl)83 0046 ED A0 ldi a,(hl) ; regular ldi with "unexpected ...." error when fakes are OFF84 004885 0048 ;; part 2 (new commit)86 0048 ; illegal instructions (exercising all code paths)z80cover100.asm(87): error: Illegal instruction: in hl,(c)87 0048 in hl,(c)z80cover100.asm(88): error: Illegal instruction: out (c),hl88 0048 out (c),hlz80cover100.asm(89): error: Illegal instruction: bit -1,a89 0048 bit -1,az80cover100.asm(90): error: Illegal instruction: bit 8,b90 0048 bit 8,bz80cover100.asm(91): error: Illegal instruction: res -1,a91 0048 res -1,az80cover100.asm(92): error: Illegal instruction: res 8,b92 0048 res 8,bz80cover100.asm(93): error: Illegal instruction: set -1,a93 0048 set -1,az80cover100.asm(94): error: Illegal instruction: set 8,b94 0048 set 8,bz80cover100.asm(95): error: Illegal instruction: rl sp95 0048 rl spz80cover100.asm(96): error: Illegal instruction: rlc sp96 0048 rlc spz80cover100.asm(97): error: Illegal instruction: rr sp97 0048 rr spz80cover100.asm(98): error: Illegal instruction: rrc sp98 0048 rrc spz80cover100.asm(99): error: Illegal instruction: sla sp99 0048 sla spz80cover100.asm(100): error: Illegal instruction: sli sp100 0048 sli spz80cover100.asm(101): error: Illegal instruction: sra sp101 0048 sra spz80cover100.asm(102): error: Illegal instruction: srl sp102 0048 srl sp103 0048104 0048 ; multiarg105 0048 B0 B1 F6 7B or b ,, c ,, 123106 004C A8 A9 EE 7B xor b ,, c ,, 123107 0050 ED 41 D3 FE out (c),b ,, (254),a108 0054 CB A9 DD CB res 5,c ,, 3,(ix+4),d108 0058 04 9A109 005A CB E9 DD CB set 5,c ,, 3,(ix+4),d109 005E 04 DA110 0060 CB 17 CB 10 rl a ,, b111 0064 CB 07 CB 00 rlc a ,, b112 0068 CB 1F CB 18 rr a ,, b113 006C CB 0F CB 08 rrc a ,, b114 0070 CF FF rst $08 ,, $38115 0072 9F 98 sbc a ,, b116 0074 CB 27 CB 20 sla a ,, b117 0078 CB 37 CB 30 sli a ,, b118 007C CB 2F CB 28 sra a ,, b119 0080 CB 3F CB 38 srl a ,, b120 0084121 0084 ; no fakes allowedz80cover100.asm(122): error: Fake instructions are not enabled: rl bc122 0084 rl bcz80cover100.asm(123): error: Fake instructions are not enabled: rr bc123 0084 rr bcz80cover100.asm(124): error: Fake instructions are not enabled: sla hl124 0084 sla hlz80cover100.asm(125): error: Fake instructions are not enabled: sla bc125 0084 sla bcz80cover100.asm(126): error: Fake instructions are not enabled: sli bc126 0084 sli bcz80cover100.asm(127): error: Fake instructions are not enabled: sra bc127 0084 sra bcz80cover100.asm(128): error: Fake instructions are not enabled: srl bc128 0084 srl bc129 0084130 0084 ; "Comma expected" errorz80cover100.asm(131): error: [SBC] Comma expected131 0084 sbc hlz80cover100.asm(132): error: [SUB] Comma expected132 0084 sub hl133 0084134 0084 ; reverse pop code path exercise135 0084 OPT reset --syntax=ab --reversepop136 0084 FD E1 DD E1 pop af,,bc,,de,,hl,,ix,,iy ;; regular + multiarg136 0088 E1 D1 C1 F1z80cover100.asm(137): error: Illegal instruction: pop sp ; illegal137 008C pop sp ; illegal138 008C139 008C ;; part 3 (new commit, focusing on branching in the code, exercising more combinations and code paths)140 008C ; these tests (whole this file) are unfortunately very implementation based, in case of major refactorings they may141 008C ; quickly lose their functionality (the machine code produced should be the same, but code coverage may regress).142 008C143 008C ; illegal instructions (exercising all code paths)z80cover100.asm(144): error: Illegal instruction: sbc hl,af144 008C sbc hl,afz80cover100.asm(145): error: Illegal instruction: sub hl,af145 008C sub hl,af146 008C147 008C ;; no fakes allowed148 008C OPT reset --syntax=abFz80cover100.asm(149): error: Fake instructions are not enabled: sub hl,bc149 008C sub hl,bc150 008C151 008C ;; branches extra coverage - not going to comment on each one, as these exercise very specific code paths152 008C ;; of current implementation (based on v1.13.3) and there's nothing special about them in general way153 008Cz80cover100.asm(154): error: Unexpected: np154 008C C9 ret npz80cover100.asm(155): error: Unexpected: px155 008D C9 ret pxz80cover100.asm(156): error: Label not found: ixn156 008E 3E 00 ld a,ixnz80cover100.asm(157): error: Label not found: ixhn157 0090 3E 00 ld a,ixhnz80cover100.asm(158): error: Label not found: ixln158 0092 3E 00 ld a,ixlnz80cover100.asm(159): error: Label not found: iyn159 0094 3E 00 ld a,iynz80cover100.asm(160): error: Label not found: iyhn160 0096 3E 00 ld a,iyhnz80cover100.asm(161): error: Label not found: iyln161 0098 3E 00 ld a,iylnz80cover100.asm(162): error: Label not found: IXN162 009A 3E 00 ld a,IXNz80cover100.asm(163): error: Label not found: IXHN163 009C 3E 00 ld a,IXHNz80cover100.asm(164): error: Label not found: IXLN164 009E 3E 00 ld a,IXLNz80cover100.asm(165): error: Label not found: IYN165 00A0 3E 00 ld a,IYNz80cover100.asm(166): error: Label not found: IYHN166 00A2 3E 00 ld a,IYHNz80cover100.asm(167): error: Label not found: IYLN167 00A4 3E 00 ld a,IYLNz80cover100.asm(168): error: Illegal instruction: ex af,bc168 00A6 ex af,bcz80cover100.asm(169): error: Illegal instruction: jp [hl169 00A6 jp [hlz80cover100.asm(170): error: Illegal instruction: jp [123]170 00A6 jp [123]z80cover100.asm(171): error: Illegal instruction: ld a171 00A6 ld az80cover100.asm(172): error: Fake instructions are not enabled: ld hl,bc172 00A6 ld hl,bcz80cover100.asm(173): error: Fake instructions are not enabled: ld hl,de173 00A6 ld hl,dez80cover100.asm(174): error: Fake instructions are not enabled: ld (ix),bc174 00A6 ld (ix),bcz80cover100.asm(175): error: Fake instructions are not enabled: ld (ix),de175 00A6 ld (ix),dez80cover100.asm(176): error: Fake instructions are not enabled: ld (ix),hl176 00A6 ld (ix),hlz80cover100.asm(177): error: Fake instructions are not enabled: ld (hl),bc177 00A6 ld (hl),bcz80cover100.asm(178): error: Fake instructions are not enabled: ld (hl),de178 00A6 ld (hl),dez80cover100.asm(179): error: Illegal instruction: ld (hl),hl179 00A6 ld (hl),hlz80cover100.asm(180): error: Fake instructions are not enabled: ld bc,(hl)180 00A6 ld bc,(hl)z80cover100.asm(181): error: Fake instructions are not enabled: ld bc,(ix)181 00A6 ld bc,(ix)z80cover100.asm(182): error: Illegal instruction: ld 1,bc182 00A6 ld 1,bcz80cover100.asm(183): error: Illegal instruction: ld (bc183 00A6 ld (bcz80cover100.asm(184): error: Illegal instruction: ld (bc)184 00A6 ld (bc)z80cover100.asm(185): error: Illegal instruction: ld (bc),b185 00A6 ld (bc),b186 00A6187 00A6 OPT reset --syntax=abz80cover100.asm(188): error: Offset out of range188 00A6 ld (ix+127),bcz80cover100.asm(189): error: Offset out of range189 00A6 ld (ix+127),dez80cover100.asm(190): error: Offset out of range190 00A6 ld (ix+127),hlz80cover100.asm(191): error: Offset out of range191 00A6 ld bc,(ix+127)192 00A6193 00A6 OPT reset --syntax=abfz80cover100.asm(194): error: Illegal instruction: ldd a194 00A6 ldd az80cover100.asm(195): error: Illegal instruction: ldd a,195 00A6 ldd a,z80cover100.asm(196): warning[fake]: Fake instruction: ldd a,(hl)196 00A6 7E 2B ldd a,(hl)z80cover100.asm(197): error: Illegal instruction: ldd b197 00A8 ldd bz80cover100.asm(198): error: Illegal instruction: ldd b,198 00A8 ldd b,z80cover100.asm(199): warning[fake]: Fake instruction: ldd b,(hl)199 00A8 46 2B ldd b,(hl)z80cover100.asm(200): error: Illegal instruction: ldd (hl)200 00AA ldd (hl)z80cover100.asm(201): warning[fake]: Fake instruction: ldd (hl),z80cover100.asm(201): error: Operand expected:201 00AA 36 00 2B ldd (hl),z80cover100.asm(202): warning[fake]: Fake instruction: ldd (hl),a202 00AD 77 2B ldd (hl),az80cover100.asm(203): error: Illegal instruction: ldd (iy)203 00AF ldd (iy)z80cover100.asm(204): warning[fake]: Fake instruction: ldd (iy),z80cover100.asm(204): error: Operand expected:204 00AF FD 36 00 00 ldd (iy),204 00B3 FD 2Bz80cover100.asm(205): warning[fake]: Fake instruction: ldd (iy),a205 00B5 FD 77 00 FD ldd (iy),a205 00B9 2Bz80cover100.asm(206): error: Illegal instruction: ldd (de)206 00BA ldd (de)z80cover100.asm(207): error: Illegal instruction: ldd (de),207 00BA ldd (de),z80cover100.asm(208): warning[fake]: Fake instruction: ldd (de),a208 00BA 12 1B ldd (de),az80cover100.asm(209): error: Illegal instruction: ldd (de),b209 00BC ldd (de),b210 00BCz80cover100.asm(211): error: Illegal instruction: ldi a211 00BC ldi az80cover100.asm(212): error: Illegal instruction: ldi a,212 00BC ldi a,z80cover100.asm(213): warning[fake]: Fake instruction: ldi a,(hl)213 00BC 7E 23 ldi a,(hl)z80cover100.asm(214): error: Illegal instruction: ldi b214 00BE ldi bz80cover100.asm(215): error: Illegal instruction: ldi bc215 00BE ldi bcz80cover100.asm(216): error: Illegal instruction: ldi b,216 00BE ldi b,z80cover100.asm(217): warning[fake]: Fake instruction: ldi b,(hl)217 00BE 46 23 ldi b,(hl)z80cover100.asm(218): error: Illegal instruction: ldi (hl)218 00C0 ldi (hl)z80cover100.asm(219): warning[fake]: Fake instruction: ldi (hl),z80cover100.asm(219): error: Operand expected:219 00C0 36 00 23 ldi (hl),z80cover100.asm(220): warning[fake]: Fake instruction: ldi (hl),a220 00C3 77 23 ldi (hl),az80cover100.asm(221): error: Illegal instruction: ldi (iy)221 00C5 ldi (iy)z80cover100.asm(222): warning[fake]: Fake instruction: ldi (iy),z80cover100.asm(222): error: Operand expected:222 00C5 FD 36 00 00 ldi (iy),222 00C9 FD 23z80cover100.asm(223): warning[fake]: Fake instruction: ldi (iy),a223 00CB FD 77 00 FD ldi (iy),a223 00CF 23z80cover100.asm(224): error: Illegal instruction: ldi (de)224 00D0 ldi (de)z80cover100.asm(225): error: Illegal instruction: ldi (de),225 00D0 ldi (de),z80cover100.asm(226): warning[fake]: Fake instruction: ldi (de),a226 00D0 12 13 ldi (de),az80cover100.asm(227): error: Illegal instruction: ldi (de),b227 00D2 ldi (de),bz80cover100.asm(228): error: Illegal instruction: ldi hl,(hl)228 00D2 ldi hl,(hl)229 00D2230 00D2 ;; part 4 (more of the branching stuff, handpicked from local detailed coverage report)231 00D2 DD 7E 00 ld a,[ix]z80cover100.asm(232): error: Illegal instruction: ex (bc),hl232 00D5 ex (bc),hlz80cover100.asm(233): error: Illegal instruction: ex (sp233 00D5 ex (spz80cover100.asm(234): error: Illegal instruction: in b234 00D5 in b235 00D5 ED 70 in (c)z80cover100.asm(236): error: [JR] Target out of range (-129)236 00D7 18 00 jr $+2-129z80cover100.asm(237): error: [JR] Target out of range (+128)237 00D9 18 00 jr $+2+128z80cover100.asm(238): error: Illegal instruction: xor hl,0238 00DB xor hl,0z80cover100.asm(239): error: Illegal instruction: adc bc,hl239 00DB adc bc,hl240 00DB241 00DB OPT reset --syntax=abFz80cover100.asm(242): error: Fake instructions are not enabled: ld de,(ix)242 00DB ld de,(ix)243 00DB244 00DB OPT reset --syntax=az80cover100.asm(245): error: Illegal instruction: bit -1,a245 00DB bit -1,az80cover100.asm(246): error: [CALL cc] Comma expected: call nz246 00DB call nzz80cover100.asm(247): error: Illegal instruction: ex (sp),de247 00DB ex (sp),dez80cover100.asm(248): error: Illegal instruction: im 3248 00DB im 3z80cover100.asm(249): error: Illegal instruction: in b,(254)249 00DB in b,(254)z80cover100.asm(250): error: [JP cc] Comma expected: jp nz250 00DB jp nzz80cover100.asm(251): error: [JR cc] Comma expected: jr nz251 00DB jr nzz80cover100.asm(252): error: Illegal instruction: ld a,(bc252 00DB ld a,(bcz80cover100.asm(253): error: Illegal instruction: ld a,(de253 00DB ld a,(dez80cover100.asm(254): error: Illegal instruction: ld a,[1234254 00DB ld a,[1234z80cover100.asm(255): error: Illegal instruction: ld (ix),ix255 00DB ld (ix),ixz80cover100.asm(256): error: Illegal instruction: ld sp,(iy+13)256 00DB ld sp,(iy+13)z80cover100.asm(257): error: Illegal instruction: ld de,[1234257 00DB ld de,[1234z80cover100.asm(258): error: Illegal instruction: ld ix,[1234258 00DB ld ix,[1234z80cover100.asm(259): error: Illegal instruction: ldd a,[de259 00DB ldd a,[dez80cover100.asm(260): error: Illegal instruction: ldd a,[hl260 00DB ldd a,[hlz80cover100.asm(261): error: Illegal instruction: ldd a,[ix+3261 00DB ldd a,[ix+3z80cover100.asm(262): error: Illegal instruction: ldd [hl262 00DB ldd [hlz80cover100.asm(263): error: Illegal instruction: ldd [sp],a263 00DB ldd [sp],az80cover100.asm(264): error: Illegal instruction: ldi a,[de264 00DB ldi a,[dez80cover100.asm(265): error: Illegal instruction: ldi a,[hl265 00DB ldi a,[hlz80cover100.asm(266): error: Illegal instruction: ldi a,[ix+3266 00DB ldi a,[ix+3z80cover100.asm(267): error: Illegal instruction: ldi [hl267 00DB ldi [hlz80cover100.asm(268): error: Illegal instruction: ldi [sp],a268 00DB ldi [sp],az80cover100.asm(269): error: Illegal instruction: ldi l,[hl269 00DB ldi l,[hlz80cover100.asm(270): error: Illegal instruction: ldi l,[ix+3270 00DB ldi l,[ix+3z80cover100.asm(271): error: Illegal instruction: out (c)271 00DB out (c)z80cover100.asm(272): error: Illegal instruction: out (c),1272 00DB out (c),1z80cover100.asm(273): error: Illegal instruction: out (254),h273 00DB out (254),hz80cover100.asm(274): error: Illegal instruction: push e274 00DB push ez80cover100.asm(275): error: Illegal instruction: sub bc,bc275 00DB sub bc,bc276 00DB277 00DB ;; part 5 - improving coverage after adding new fake instructionsz80cover100.asm(278): error: Illegal instruction: adc de,af278 00DB adc de,afz80cover100.asm(279): error: Illegal instruction: adc de,1279 00DB adc de,1z80cover100.asm(280): error: Illegal instruction: adc af,hl280 00DB adc af,hlz80cover100.asm(281): error: Illegal instruction: add de,af281 00DB add de,afz80cover100.asm(282): error: Illegal instruction: add de,2282 00DB add de,2z80cover100.asm(283): error: Illegal instruction: add af,hl283 00DB add af,hlz80cover100.asm(284): error: Illegal instruction: sbc de,af284 00DB sbc de,afz80cover100.asm(285): error: Illegal instruction: sbc de,3285 00DB sbc de,3z80cover100.asm(286): error: Illegal instruction: sbc af,hl286 00DB sbc af,hlz80cover100.asm(287): error: Illegal instruction: sub de,af287 00DB sub de,afz80cover100.asm(288): error: Illegal instruction: sub de,4288 00DB sub de,4z80cover100.asm(289): error: Illegal instruction: sub af,hl289 00DB sub af,hl290 00DB# file closed: z80cover100.asmValue Label------ - -----------------------------------------------------------