902 lines
31 KiB
Plaintext
902 lines
31 KiB
Plaintext
0001 0000 ; Compiled with: Z80 Simulator IDE v9.70
|
|
0002 0000 ;
|
|
0003 0000 ; Begin
|
|
0004 0000 DD 21 00 FF LD IX,0FF00H
|
|
0005 0004 31 F4 FE LD SP,0FEF4H
|
|
0006 0007 ; The address of 'a' (single) (global) is FEFCH (IX-4)
|
|
0007 0007 a: EQU 0FEFCH
|
|
0008 0007 ; The address of 'b' (single) (global) is FEF8H (IX-8)
|
|
0009 0007 b: EQU 0FEF8H
|
|
0010 0007 ; The address of 'c' (single) (global) is FEF4H (IX-12)
|
|
0011 0007 c: EQU 0FEF4H
|
|
0012 0007 ; Begin of program
|
|
0013 0007 ; 1: Dim a As Single
|
|
0014 0007 3E 00 LD A,00H
|
|
0015 0009 DD 77 FC LD (IX-04H),A
|
|
0016 000C DD 77 FD LD (IX-03H),A
|
|
0017 000F DD 77 FE LD (IX-02H),A
|
|
0018 0012 DD 77 FF LD (IX-01H),A
|
|
0019 0015 ; 2: Dim b As Single
|
|
0020 0015 3E 00 LD A,00H
|
|
0021 0017 DD 77 F8 LD (IX-08H),A
|
|
0022 001A DD 77 F9 LD (IX-07H),A
|
|
0023 001D DD 77 FA LD (IX-06H),A
|
|
0024 0020 DD 77 FB LD (IX-05H),A
|
|
0025 0023 ; 3: Dim c As Single
|
|
0026 0023 3E 00 LD A,00H
|
|
0027 0025 DD 77 F4 LD (IX-0CH),A
|
|
0028 0028 DD 77 F5 LD (IX-0BH),A
|
|
0029 002B DD 77 F6 LD (IX-0AH),A
|
|
0030 002E DD 77 F7 LD (IX-09H),A
|
|
0031 0031 ; 4:
|
|
0032 0031 ; 5: a = 9.876543 'First number
|
|
0033 0031 01 1E 41 LD BC,411EH
|
|
0034 0034 11 52 06 LD DE,0652H
|
|
0035 0037 DD 73 FC LD (IX-04H),E
|
|
0036 003A DD 72 FD LD (IX-03H),D
|
|
0037 003D DD 71 FE LD (IX-02H),C
|
|
0038 0040 DD 70 FF LD (IX-01H),B
|
|
0039 0043 ; 6: b = 2.345678 'Second number
|
|
0040 0043 01 16 40 LD BC,4016H
|
|
0041 0046 11 97 1F LD DE,1F97H
|
|
0042 0049 DD 73 F8 LD (IX-08H),E
|
|
0043 004C DD 72 F9 LD (IX-07H),D
|
|
0044 004F DD 71 FA LD (IX-06H),C
|
|
0045 0052 DD 70 FB LD (IX-05H),B
|
|
0046 0055 ; 7: c = a * b
|
|
0047 0055 DD 5E FC LD E,(IX-04H)
|
|
0048 0058 DD 56 FD LD D,(IX-03H)
|
|
0049 005B DD 4E FE LD C,(IX-02H)
|
|
0050 005E DD 46 FF LD B,(IX-01H)
|
|
0051 0061 C5 PUSH BC
|
|
0052 0062 D5 PUSH DE
|
|
0053 0063 DD 5E F8 LD E,(IX-08H)
|
|
0054 0066 DD 56 F9 LD D,(IX-07H)
|
|
0055 0069 DD 4E FA LD C,(IX-06H)
|
|
0056 006C DD 46 FB LD B,(IX-05H)
|
|
0057 006F CD DB 02 CALL M201
|
|
0058 0072 DD 73 F4 LD (IX-0CH),E
|
|
0059 0075 DD 72 F5 LD (IX-0BH),D
|
|
0060 0078 DD 71 F6 LD (IX-0AH),C
|
|
0061 007B DD 70 F7 LD (IX-09H),B
|
|
0062 007E ; 8:
|
|
0063 007E ; 9: Print 1, "Number ", a, CrLf
|
|
0064 007E 3E 4E LD A,4EH
|
|
0065 0080 D3 01 OUT (01H),A
|
|
0066 0082 3E 75 LD A,75H
|
|
0067 0084 D3 01 OUT (01H),A
|
|
0068 0086 3E 6D LD A,6DH
|
|
0069 0088 D3 01 OUT (01H),A
|
|
0070 008A 3E 62 LD A,62H
|
|
0071 008C D3 01 OUT (01H),A
|
|
0072 008E 3E 65 LD A,65H
|
|
0073 0090 D3 01 OUT (01H),A
|
|
0074 0092 3E 72 LD A,72H
|
|
0075 0094 D3 01 OUT (01H),A
|
|
0076 0096 3E 20 LD A,20H
|
|
0077 0098 D3 01 OUT (01H),A
|
|
0078 009A 01 01 00 LD BC,0001H
|
|
0079 009D DD 71 01 LD (IX+01H),C
|
|
0080 00A0 DD 70 02 LD (IX+02H),B
|
|
0081 00A3 0E 07 LD C,07H
|
|
0082 00A5 DD 71 03 LD (IX+03H),C
|
|
0083 00A8 DD 5E FC LD E,(IX-04H)
|
|
0084 00AB DD 56 FD LD D,(IX-03H)
|
|
0085 00AE DD 4E FE LD C,(IX-02H)
|
|
0086 00B1 DD 46 FF LD B,(IX-01H)
|
|
0087 00B4 CD 61 04 CALL P401
|
|
0088 00B7 3E 0D LD A,0DH
|
|
0089 00B9 D3 01 OUT (01H),A
|
|
0090 00BB 3E 0A LD A,0AH
|
|
0091 00BD D3 01 OUT (01H),A
|
|
0092 00BF ; 10: Print 1, "multiplied by ", b, CrLf
|
|
0093 00BF 3E 6D LD A,6DH
|
|
0094 00C1 D3 01 OUT (01H),A
|
|
0095 00C3 3E 75 LD A,75H
|
|
0096 00C5 D3 01 OUT (01H),A
|
|
0097 00C7 3E 6C LD A,6CH
|
|
0098 00C9 D3 01 OUT (01H),A
|
|
0099 00CB 3E 74 LD A,74H
|
|
0100 00CD D3 01 OUT (01H),A
|
|
0101 00CF 3E 69 LD A,69H
|
|
0102 00D1 D3 01 OUT (01H),A
|
|
0103 00D3 3E 70 LD A,70H
|
|
0104 00D5 D3 01 OUT (01H),A
|
|
0105 00D7 3E 6C LD A,6CH
|
|
0106 00D9 D3 01 OUT (01H),A
|
|
0107 00DB 3E 69 LD A,69H
|
|
0108 00DD D3 01 OUT (01H),A
|
|
0109 00DF 3E 65 LD A,65H
|
|
0110 00E1 D3 01 OUT (01H),A
|
|
0111 00E3 3E 64 LD A,64H
|
|
0112 00E5 D3 01 OUT (01H),A
|
|
0113 00E7 3E 20 LD A,20H
|
|
0114 00E9 D3 01 OUT (01H),A
|
|
0115 00EB 3E 62 LD A,62H
|
|
0116 00ED D3 01 OUT (01H),A
|
|
0117 00EF 3E 79 LD A,79H
|
|
0118 00F1 D3 01 OUT (01H),A
|
|
0119 00F3 3E 20 LD A,20H
|
|
0120 00F5 D3 01 OUT (01H),A
|
|
0121 00F7 01 01 00 LD BC,0001H
|
|
0122 00FA DD 71 01 LD (IX+01H),C
|
|
0123 00FD DD 70 02 LD (IX+02H),B
|
|
0124 0100 0E 07 LD C,07H
|
|
0125 0102 DD 71 03 LD (IX+03H),C
|
|
0126 0105 DD 5E F8 LD E,(IX-08H)
|
|
0127 0108 DD 56 F9 LD D,(IX-07H)
|
|
0128 010B DD 4E FA LD C,(IX-06H)
|
|
0129 010E DD 46 FB LD B,(IX-05H)
|
|
0130 0111 CD 61 04 CALL P401
|
|
0131 0114 3E 0D LD A,0DH
|
|
0132 0116 D3 01 OUT (01H),A
|
|
0133 0118 3E 0A LD A,0AH
|
|
0134 011A D3 01 OUT (01H),A
|
|
0135 011C ; 11: Print 1, "equals ", c, "!", CrLf
|
|
0136 011C 3E 65 LD A,65H
|
|
0137 011E D3 01 OUT (01H),A
|
|
0138 0120 3E 71 LD A,71H
|
|
0139 0122 D3 01 OUT (01H),A
|
|
0140 0124 3E 75 LD A,75H
|
|
0141 0126 D3 01 OUT (01H),A
|
|
0142 0128 3E 61 LD A,61H
|
|
0143 012A D3 01 OUT (01H),A
|
|
0144 012C 3E 6C LD A,6CH
|
|
0145 012E D3 01 OUT (01H),A
|
|
0146 0130 3E 73 LD A,73H
|
|
0147 0132 D3 01 OUT (01H),A
|
|
0148 0134 3E 20 LD A,20H
|
|
0149 0136 D3 01 OUT (01H),A
|
|
0150 0138 01 01 00 LD BC,0001H
|
|
0151 013B DD 71 01 LD (IX+01H),C
|
|
0152 013E DD 70 02 LD (IX+02H),B
|
|
0153 0141 0E 07 LD C,07H
|
|
0154 0143 DD 71 03 LD (IX+03H),C
|
|
0155 0146 DD 5E F4 LD E,(IX-0CH)
|
|
0156 0149 DD 56 F5 LD D,(IX-0BH)
|
|
0157 014C DD 4E F6 LD C,(IX-0AH)
|
|
0158 014F DD 46 F7 LD B,(IX-09H)
|
|
0159 0152 CD 61 04 CALL P401
|
|
0160 0155 3E 21 LD A,21H
|
|
0161 0157 D3 01 OUT (01H),A
|
|
0162 0159 3E 0D LD A,0DH
|
|
0163 015B D3 01 OUT (01H),A
|
|
0164 015D 3E 0A LD A,0AH
|
|
0165 015F D3 01 OUT (01H),A
|
|
0166 0161 ; End of program
|
|
0167 0161 76 HALT
|
|
0168 0162 ; Long Division Routine
|
|
0169 0162 AF D104: XOR A
|
|
0170 0163 93 SUB E
|
|
0171 0164 5F LD E,A
|
|
0172 0165 3E 00 LD A,00H
|
|
0173 0167 9A SBC A,D
|
|
0174 0168 57 LD D,A
|
|
0175 0169 3E 00 LD A,00H
|
|
0176 016B 99 SBC A,C
|
|
0177 016C 4F LD C,A
|
|
0178 016D 3E 00 LD A,00H
|
|
0179 016F 98 SBC A,B
|
|
0180 0170 47 LD B,A
|
|
0181 0171 C9 RET
|
|
0182 0172 D9 D102: EXX
|
|
0183 0173 E1 POP HL
|
|
0184 0174 D1 POP DE
|
|
0185 0175 C1 POP BC
|
|
0186 0176 E5 PUSH HL
|
|
0187 0177 D9 EXX
|
|
0188 0178 E5 PUSH HL
|
|
0189 0179 CD 8B 01 CALL D103
|
|
0190 017C D9 EXX
|
|
0191 017D E1 POP HL
|
|
0192 017E C9 RET
|
|
0193 017F D9 D101: EXX
|
|
0194 0180 E1 POP HL
|
|
0195 0181 D1 POP DE
|
|
0196 0182 C1 POP BC
|
|
0197 0183 E5 PUSH HL
|
|
0198 0184 D9 EXX
|
|
0199 0185 E5 PUSH HL
|
|
0200 0186 CD 8B 01 CALL D103
|
|
0201 0189 E1 POP HL
|
|
0202 018A C9 RET
|
|
0203 018B D9 D103: EXX
|
|
0204 018C 78 LD A,B
|
|
0205 018D D9 EXX
|
|
0206 018E A8 XOR B
|
|
0207 018F D9 EXX
|
|
0208 0190 78 LD A,B
|
|
0209 0191 F5 PUSH AF
|
|
0210 0192 CB 78 BIT 7,B
|
|
0211 0194 C4 62 01 CALL NZ,D104
|
|
0212 0197 D9 EXX
|
|
0213 0198 CB 78 BIT 7,B
|
|
0214 019A C4 62 01 CALL NZ,D104
|
|
0215 019D CD B1 01 CALL D105
|
|
0216 01A0 F1 POP AF
|
|
0217 01A1 F2 A9 01 JP P,D106
|
|
0218 01A4 6F LD L,A
|
|
0219 01A5 FC 62 01 CALL M,D104
|
|
0220 01A8 7D LD A,L
|
|
0221 01A9 B7 D106: OR A
|
|
0222 01AA F0 RET P
|
|
0223 01AB D9 EXX
|
|
0224 01AC CD 62 01 CALL D104
|
|
0225 01AF D9 EXX
|
|
0226 01B0 C9 RET
|
|
0227 01B1 D9 D105: EXX
|
|
0228 01B2 C5 PUSH BC
|
|
0229 01B3 42 LD B,D
|
|
0230 01B4 4B LD C,E
|
|
0231 01B5 D9 EXX
|
|
0232 01B6 EB EX DE,HL
|
|
0233 01B7 50 LD D,B
|
|
0234 01B8 59 LD E,C
|
|
0235 01B9 C1 POP BC
|
|
0236 01BA E5 PUSH HL
|
|
0237 01BB 21 00 00 LD HL,0000H
|
|
0238 01BE D9 EXX
|
|
0239 01BF D1 POP DE
|
|
0240 01C0 21 00 00 LD HL,0000H
|
|
0241 01C3 3E 20 LD A,20H
|
|
0242 01C5 B7 OR A
|
|
0243 01C6 CB 11 D108: RL C
|
|
0244 01C8 CB 10 RL B
|
|
0245 01CA D9 EXX
|
|
0246 01CB CB 11 RL C
|
|
0247 01CD CB 10 RL B
|
|
0248 01CF D9 EXX
|
|
0249 01D0 ED 6A ADC HL,HL
|
|
0250 01D2 D9 EXX
|
|
0251 01D3 ED 6A ADC HL,HL
|
|
0252 01D5 D9 EXX
|
|
0253 01D6 ED 52 SBC HL,DE
|
|
0254 01D8 D9 EXX
|
|
0255 01D9 ED 52 SBC HL,DE
|
|
0256 01DB D9 EXX
|
|
0257 01DC 30 05 JR NC,D107
|
|
0258 01DE 19 ADD HL,DE
|
|
0259 01DF D9 EXX
|
|
0260 01E0 ED 5A ADC HL,DE
|
|
0261 01E2 D9 EXX
|
|
0262 01E3 3F D107: CCF
|
|
0263 01E4 3D DEC A
|
|
0264 01E5 20 DF JR NZ,D108
|
|
0265 01E7 CB 11 RL C
|
|
0266 01E9 CB 10 RL B
|
|
0267 01EB D9 EXX
|
|
0268 01EC CB 11 RL C
|
|
0269 01EE CB 10 RL B
|
|
0270 01F0 D9 EXX
|
|
0271 01F1 50 LD D,B
|
|
0272 01F2 59 LD E,C
|
|
0273 01F3 E5 PUSH HL
|
|
0274 01F4 D9 EXX
|
|
0275 01F5 D1 POP DE
|
|
0276 01F6 C5 PUSH BC
|
|
0277 01F7 44 LD B,H
|
|
0278 01F8 4D LD C,L
|
|
0279 01F9 D9 EXX
|
|
0280 01FA C1 POP BC
|
|
0281 01FB C9 RET
|
|
0282 01FC ; Single Precision Subtraction Routine
|
|
0283 01FC 78 S201: LD A,B
|
|
0284 01FD EE 80 XOR 80H
|
|
0285 01FF 47 LD B,A
|
|
0286 0200 D9 EXX
|
|
0287 0201 E1 POP HL
|
|
0288 0202 D1 POP DE
|
|
0289 0203 C1 POP BC
|
|
0290 0204 E5 PUSH HL
|
|
0291 0205 D9 EXX
|
|
0292 0206 E5 PUSH HL
|
|
0293 0207 CD 0F 02 CALL S202
|
|
0294 020A CD A0 02 CALL S203
|
|
0295 020D E1 POP HL
|
|
0296 020E C9 RET
|
|
0297 020F D9 S202: EXX
|
|
0298 0210 2E 00 LD L,00H
|
|
0299 0212 63 LD H,E
|
|
0300 0213 5A LD E,D
|
|
0301 0214 51 LD D,C
|
|
0302 0215 CB FA SET 7,D
|
|
0303 0217 CB 11 RL C
|
|
0304 0219 78 LD A,B
|
|
0305 021A 8F ADC A,A
|
|
0306 021B 4F LD C,A
|
|
0307 021C D9 EXX
|
|
0308 021D 2E 00 LD L,00H
|
|
0309 021F 63 LD H,E
|
|
0310 0220 5A LD E,D
|
|
0311 0221 51 LD D,C
|
|
0312 0222 CB FA SET 7,D
|
|
0313 0224 CB 11 RL C
|
|
0314 0226 78 LD A,B
|
|
0315 0227 8F ADC A,A
|
|
0316 0228 4F LD C,A
|
|
0317 0229 79 LD A,C
|
|
0318 022A D9 EXX
|
|
0319 022B 91 SUB C
|
|
0320 022C 28 11 JR Z,S204
|
|
0321 022E 30 03 JR NC,S205
|
|
0322 0230 ED 44 NEG
|
|
0323 0232 D9 EXX
|
|
0324 0233 CB 3A S205: SRL D
|
|
0325 0235 CB 1B RR E
|
|
0326 0237 CB 1C RR H
|
|
0327 0239 CB 1D RR L
|
|
0328 023B 0C INC C
|
|
0329 023C 3D DEC A
|
|
0330 023D 20 F4 JR NZ,S205
|
|
0331 023F 78 S204: LD A,B
|
|
0332 0240 D9 EXX
|
|
0333 0241 A8 XOR B
|
|
0334 0242 D9 EXX
|
|
0335 0243 FA 6E 02 JP M,S206
|
|
0336 0246 7D LD A,L
|
|
0337 0247 D9 EXX
|
|
0338 0248 85 ADD A,L
|
|
0339 0249 D9 EXX
|
|
0340 024A 6F LD L,A
|
|
0341 024B 7C LD A,H
|
|
0342 024C D9 EXX
|
|
0343 024D 8C ADC A,H
|
|
0344 024E D9 EXX
|
|
0345 024F 67 LD H,A
|
|
0346 0250 7B LD A,E
|
|
0347 0251 D9 EXX
|
|
0348 0252 8B ADC A,E
|
|
0349 0253 D9 EXX
|
|
0350 0254 5F LD E,A
|
|
0351 0255 7A LD A,D
|
|
0352 0256 D9 EXX
|
|
0353 0257 8A ADC A,D
|
|
0354 0258 D9 EXX
|
|
0355 0259 57 LD D,A
|
|
0356 025A 30 43 JR NC,S207
|
|
0357 025C 7A S210: LD A,D
|
|
0358 025D CB 1A RR D
|
|
0359 025F CB 1B RR E
|
|
0360 0261 CB 1C RR H
|
|
0361 0263 CB 1D RR L
|
|
0362 0265 B1 OR C
|
|
0363 0266 B3 OR E
|
|
0364 0267 B4 OR H
|
|
0365 0268 B5 OR L
|
|
0366 0269 28 34 JR Z,S207
|
|
0367 026B 0C INC C
|
|
0368 026C 18 31 JR S207
|
|
0369 026E 7A S206: LD A,D
|
|
0370 026F D9 EXX
|
|
0371 0270 BA CP D
|
|
0372 0271 38 16 JR C,S208
|
|
0373 0273 20 13 JR NZ,S209
|
|
0374 0275 7B LD A,E
|
|
0375 0276 D9 EXX
|
|
0376 0277 BB CP E
|
|
0377 0278 38 0F JR C,S208
|
|
0378 027A 20 0C JR NZ,S209
|
|
0379 027C 7C LD A,H
|
|
0380 027D D9 EXX
|
|
0381 027E BC CP H
|
|
0382 027F 38 08 JR C,S208
|
|
0383 0281 20 05 JR NZ,S209
|
|
0384 0283 7D LD A,L
|
|
0385 0284 D9 EXX
|
|
0386 0285 BD CP L
|
|
0387 0286 38 01 JR C,S208
|
|
0388 0288 D9 S209: EXX
|
|
0389 0289 7D S208: LD A,L
|
|
0390 028A D9 EXX
|
|
0391 028B 95 SUB L
|
|
0392 028C D9 EXX
|
|
0393 028D 6F LD L,A
|
|
0394 028E 7C LD A,H
|
|
0395 028F D9 EXX
|
|
0396 0290 9C SBC A,H
|
|
0397 0291 D9 EXX
|
|
0398 0292 67 LD H,A
|
|
0399 0293 7B LD A,E
|
|
0400 0294 D9 EXX
|
|
0401 0295 9B SBC A,E
|
|
0402 0296 D9 EXX
|
|
0403 0297 5F LD E,A
|
|
0404 0298 7A LD A,D
|
|
0405 0299 D9 EXX
|
|
0406 029A 9A SBC A,D
|
|
0407 029B D9 EXX
|
|
0408 029C 57 LD D,A
|
|
0409 029D 38 BD JR C,S210
|
|
0410 029F C9 S207: RET
|
|
0411 02A0 79 S203: LD A,C
|
|
0412 02A1 B7 OR A
|
|
0413 02A2 20 04 JR NZ,S211
|
|
0414 02A4 47 S213: LD B,A
|
|
0415 02A5 5F LD E,A
|
|
0416 02A6 57 LD D,A
|
|
0417 02A7 C9 RET
|
|
0418 02A8 CB 7A S211: BIT 7,D
|
|
0419 02AA 20 10 JR NZ,S212
|
|
0420 02AC 79 LD A,C
|
|
0421 02AD B7 OR A
|
|
0422 02AE 28 F4 JR Z,S213
|
|
0423 02B0 0D DEC C
|
|
0424 02B1 CB 25 SLA L
|
|
0425 02B3 CB 14 RL H
|
|
0426 02B5 CB 13 RL E
|
|
0427 02B7 CB 12 RL D
|
|
0428 02B9 C3 A8 02 JP S211
|
|
0429 02BC 7D S212: LD A,L
|
|
0430 02BD C6 80 ADD A,80H
|
|
0431 02BF 7C LD A,H
|
|
0432 02C0 CE 00 ADC A,00H
|
|
0433 02C2 6F LD L,A
|
|
0434 02C3 7B LD A,E
|
|
0435 02C4 CE 00 ADC A,00H
|
|
0436 02C6 67 LD H,A
|
|
0437 02C7 7A LD A,D
|
|
0438 02C8 CE 00 ADC A,00H
|
|
0439 02CA 30 01 JR NC,S214
|
|
0440 02CC 0C INC C
|
|
0441 02CD 87 S214: ADD A,A
|
|
0442 02CE CB 39 SRL C
|
|
0443 02D0 1F RRA
|
|
0444 02D1 5F LD E,A
|
|
0445 02D2 78 LD A,B
|
|
0446 02D3 E6 80 AND 80H
|
|
0447 02D5 B1 OR C
|
|
0448 02D6 57 LD D,A
|
|
0449 02D7 42 LD B,D
|
|
0450 02D8 4B LD C,E
|
|
0451 02D9 EB EX DE,HL
|
|
0452 02DA C9 RET
|
|
0453 02DB ; Single Precision Multiplication Routine
|
|
0454 02DB D9 M201: EXX
|
|
0455 02DC E1 POP HL
|
|
0456 02DD D1 POP DE
|
|
0457 02DE C1 POP BC
|
|
0458 02DF E5 PUSH HL
|
|
0459 02E0 D9 EXX
|
|
0460 02E1 E5 PUSH HL
|
|
0461 02E2 D9 EXX
|
|
0462 02E3 2E 00 LD L,00H
|
|
0463 02E5 63 LD H,E
|
|
0464 02E6 5A LD E,D
|
|
0465 02E7 51 LD D,C
|
|
0466 02E8 CB FA SET 7,D
|
|
0467 02EA CB 11 RL C
|
|
0468 02EC 78 LD A,B
|
|
0469 02ED 8F ADC A,A
|
|
0470 02EE 4F LD C,A
|
|
0471 02EF 28 12 JR Z,M202
|
|
0472 02F1 D9 EXX
|
|
0473 02F2 2E 00 LD L,00H
|
|
0474 02F4 63 LD H,E
|
|
0475 02F5 5A LD E,D
|
|
0476 02F6 51 LD D,C
|
|
0477 02F7 CB FA SET 7,D
|
|
0478 02F9 CB 11 RL C
|
|
0479 02FB 78 LD A,B
|
|
0480 02FC 8F ADC A,A
|
|
0481 02FD 4F LD C,A
|
|
0482 02FE 28 03 JR Z,M202
|
|
0483 0300 CD 08 03 CALL M203
|
|
0484 0303 CD 7B 03 M202: CALL M204
|
|
0485 0306 E1 POP HL
|
|
0486 0307 C9 RET
|
|
0487 0308 78 M203: LD A,B
|
|
0488 0309 D9 EXX
|
|
0489 030A A8 XOR B
|
|
0490 030B 47 LD B,A
|
|
0491 030C 79 LD A,C
|
|
0492 030D D9 EXX
|
|
0493 030E D6 7F SUB 7FH
|
|
0494 0310 47 LD B,A
|
|
0495 0311 79 LD A,C
|
|
0496 0312 D6 7F SUB 7FH
|
|
0497 0314 80 ADD A,B
|
|
0498 0315 E2 2A 03 JP PO,M205
|
|
0499 0318 D9 EXX
|
|
0500 0319 21 02 00 LD HL,0002H
|
|
0501 031C 22 00 FF LD (0FF00H),HL
|
|
0502 031F 0E FF LD C,0FFH
|
|
0503 0321 30 01 JR NC,M206
|
|
0504 0323 0C INC C
|
|
0505 0324 51 M206: LD D,C
|
|
0506 0325 59 LD E,C
|
|
0507 0326 61 LD H,C
|
|
0508 0327 2E 00 LD L,00H
|
|
0509 0329 C9 RET
|
|
0510 032A C6 80 M205: ADD A,80H
|
|
0511 032C D9 EXX
|
|
0512 032D 4F LD C,A
|
|
0513 032E C5 PUSH BC
|
|
0514 032F D5 PUSH DE
|
|
0515 0330 44 LD B,H
|
|
0516 0331 4D LD C,L
|
|
0517 0332 D9 EXX
|
|
0518 0333 C1 POP BC
|
|
0519 0334 E5 PUSH HL
|
|
0520 0335 D9 EXX
|
|
0521 0336 D1 POP DE
|
|
0522 0337 3E 20 LD A,20H
|
|
0523 0339 0D M208: DEC C
|
|
0524 033A 0C INC C
|
|
0525 033B 20 1A JR NZ,M207
|
|
0526 033D FE 09 CP 09H
|
|
0527 033F 38 16 JR C,M207
|
|
0528 0341 D6 08 SUB 08H
|
|
0529 0343 F5 PUSH AF
|
|
0530 0344 D9 EXX
|
|
0531 0345 79 LD A,C
|
|
0532 0346 48 LD C,B
|
|
0533 0347 06 00 LD B,00H
|
|
0534 0349 D9 EXX
|
|
0535 034A 48 LD C,B
|
|
0536 034B 47 LD B,A
|
|
0537 034C D9 EXX
|
|
0538 034D 7D LD A,L
|
|
0539 034E 6C LD L,H
|
|
0540 034F 26 00 LD H,00H
|
|
0541 0351 D9 EXX
|
|
0542 0352 6C LD L,H
|
|
0543 0353 67 LD H,A
|
|
0544 0354 F1 POP AF
|
|
0545 0355 18 E2 JR M208
|
|
0546 0357 D9 M207: EXX
|
|
0547 0358 CB 38 SRL B
|
|
0548 035A CB 19 RR C
|
|
0549 035C D9 EXX
|
|
0550 035D CB 18 RR B
|
|
0551 035F CB 19 RR C
|
|
0552 0361 30 05 JR NC,M209
|
|
0553 0363 19 ADD HL,DE
|
|
0554 0364 D9 EXX
|
|
0555 0365 ED 5A ADC HL,DE
|
|
0556 0367 D9 EXX
|
|
0557 0368 D9 M209: EXX
|
|
0558 0369 CB 1C RR H
|
|
0559 036B CB 1D RR L
|
|
0560 036D D9 EXX
|
|
0561 036E CB 1C RR H
|
|
0562 0370 CB 1D RR L
|
|
0563 0372 3D DEC A
|
|
0564 0373 20 C4 JR NZ,M208
|
|
0565 0375 D9 EXX
|
|
0566 0376 E5 PUSH HL
|
|
0567 0377 D9 EXX
|
|
0568 0378 D1 POP DE
|
|
0569 0379 C1 POP BC
|
|
0570 037A C9 RET
|
|
0571 037B 79 M204: LD A,C
|
|
0572 037C B7 OR A
|
|
0573 037D 20 04 JR NZ,M210
|
|
0574 037F 47 M212: LD B,A
|
|
0575 0380 5F LD E,A
|
|
0576 0381 57 LD D,A
|
|
0577 0382 C9 RET
|
|
0578 0383 CB 7A M210: BIT 7,D
|
|
0579 0385 20 10 JR NZ,M211
|
|
0580 0387 79 LD A,C
|
|
0581 0388 B7 OR A
|
|
0582 0389 28 F4 JR Z,M212
|
|
0583 038B 0D DEC C
|
|
0584 038C CB 25 SLA L
|
|
0585 038E CB 14 RL H
|
|
0586 0390 CB 13 RL E
|
|
0587 0392 CB 12 RL D
|
|
0588 0394 C3 83 03 JP M210
|
|
0589 0397 7D M211: LD A,L
|
|
0590 0398 C6 80 ADD A,80H
|
|
0591 039A 7C LD A,H
|
|
0592 039B CE 00 ADC A,00H
|
|
0593 039D 6F LD L,A
|
|
0594 039E 7B LD A,E
|
|
0595 039F CE 00 ADC A,00H
|
|
0596 03A1 67 LD H,A
|
|
0597 03A2 7A LD A,D
|
|
0598 03A3 CE 00 ADC A,00H
|
|
0599 03A5 30 01 JR NC,M213
|
|
0600 03A7 0C INC C
|
|
0601 03A8 87 M213: ADD A,A
|
|
0602 03A9 CB 39 SRL C
|
|
0603 03AB 1F RRA
|
|
0604 03AC 5F LD E,A
|
|
0605 03AD 78 LD A,B
|
|
0606 03AE E6 80 AND 80H
|
|
0607 03B0 B1 OR C
|
|
0608 03B1 57 LD D,A
|
|
0609 03B2 42 LD B,D
|
|
0610 03B3 4B LD C,E
|
|
0611 03B4 EB EX DE,HL
|
|
0612 03B5 C9 RET
|
|
0613 03B6 ; Single To Long Conversion Routine
|
|
0614 03B6 E5 X001: PUSH HL
|
|
0615 03B7 2E 00 LD L,00H
|
|
0616 03B9 63 LD H,E
|
|
0617 03BA 5A LD E,D
|
|
0618 03BB 51 LD D,C
|
|
0619 03BC CB FA SET 7,D
|
|
0620 03BE CB 11 RL C
|
|
0621 03C0 78 LD A,B
|
|
0622 03C1 8F ADC A,A
|
|
0623 03C2 4F LD C,A
|
|
0624 03C3 79 LD A,C
|
|
0625 03C4 D6 7F SUB 7FH
|
|
0626 03C6 30 07 JR NC,X002
|
|
0627 03C8 01 00 00 X005: LD BC,0000H
|
|
0628 03CB 51 LD D,C
|
|
0629 03CC 59 LD E,C
|
|
0630 03CD 18 1F JR X003
|
|
0631 03CF ED 44 X002: NEG
|
|
0632 03D1 C6 1F ADD A,1FH
|
|
0633 03D3 28 0F JR Z,X004
|
|
0634 03D5 FE 20 CP 20H
|
|
0635 03D7 30 EF JR NC,X005
|
|
0636 03D9 CB 3A X006: SRL D
|
|
0637 03DB CB 1B RR E
|
|
0638 03DD CB 1C RR H
|
|
0639 03DF CB 1D RR L
|
|
0640 03E1 3D DEC A
|
|
0641 03E2 20 F5 JR NZ,X006
|
|
0642 03E4 CB 78 X004: BIT 7,B
|
|
0643 03E6 42 LD B,D
|
|
0644 03E7 4B LD C,E
|
|
0645 03E8 EB EX DE,HL
|
|
0646 03E9 28 03 JR Z,X003
|
|
0647 03EB CD F0 03 CALL X007
|
|
0648 03EE E1 X003: POP HL
|
|
0649 03EF C9 RET
|
|
0650 03F0 AF X007: XOR A
|
|
0651 03F1 93 SUB E
|
|
0652 03F2 5F LD E,A
|
|
0653 03F3 3E 00 LD A,00H
|
|
0654 03F5 9A SBC A,D
|
|
0655 03F6 57 LD D,A
|
|
0656 03F7 3E 00 LD A,00H
|
|
0657 03F9 99 SBC A,C
|
|
0658 03FA 4F LD C,A
|
|
0659 03FB 3E 00 LD A,00H
|
|
0660 03FD 98 SBC A,B
|
|
0661 03FE 47 LD B,A
|
|
0662 03FF C9 RET
|
|
0663 0400 ; Long To Single Conversion Routine
|
|
0664 0400 E5 X101: PUSH HL
|
|
0665 0401 78 LD A,B
|
|
0666 0402 CB 78 BIT 7,B
|
|
0667 0404 28 05 JR Z,X102
|
|
0668 0406 CD 51 04 CALL X103
|
|
0669 0409 3E 80 LD A,80H
|
|
0670 040B EB X102: EX DE,HL
|
|
0671 040C 59 LD E,C
|
|
0672 040D 50 LD D,B
|
|
0673 040E 47 LD B,A
|
|
0674 040F 0E 9E LD C,9EH
|
|
0675 0411 CD 16 04 CALL X104
|
|
0676 0414 E1 POP HL
|
|
0677 0415 C9 RET
|
|
0678 0416 79 X104: LD A,C
|
|
0679 0417 B7 OR A
|
|
0680 0418 20 04 JR NZ,X105
|
|
0681 041A 47 X107: LD B,A
|
|
0682 041B 5F LD E,A
|
|
0683 041C 57 LD D,A
|
|
0684 041D C9 RET
|
|
0685 041E CB 7A X105: BIT 7,D
|
|
0686 0420 20 10 JR NZ,X106
|
|
0687 0422 79 LD A,C
|
|
0688 0423 B7 OR A
|
|
0689 0424 28 F4 JR Z,X107
|
|
0690 0426 0D DEC C
|
|
0691 0427 CB 25 SLA L
|
|
0692 0429 CB 14 RL H
|
|
0693 042B CB 13 RL E
|
|
0694 042D CB 12 RL D
|
|
0695 042F C3 1E 04 JP X105
|
|
0696 0432 7D X106: LD A,L
|
|
0697 0433 C6 80 ADD A,80H
|
|
0698 0435 7C LD A,H
|
|
0699 0436 CE 00 ADC A,00H
|
|
0700 0438 6F LD L,A
|
|
0701 0439 7B LD A,E
|
|
0702 043A CE 00 ADC A,00H
|
|
0703 043C 67 LD H,A
|
|
0704 043D 7A LD A,D
|
|
0705 043E CE 00 ADC A,00H
|
|
0706 0440 30 01 JR NC,X108
|
|
0707 0442 0C INC C
|
|
0708 0443 87 X108: ADD A,A
|
|
0709 0444 CB 39 SRL C
|
|
0710 0446 1F RRA
|
|
0711 0447 5F LD E,A
|
|
0712 0448 78 LD A,B
|
|
0713 0449 E6 80 AND 80H
|
|
0714 044B B1 OR C
|
|
0715 044C 57 LD D,A
|
|
0716 044D 42 LD B,D
|
|
0717 044E 4B LD C,E
|
|
0718 044F EB EX DE,HL
|
|
0719 0450 C9 RET
|
|
0720 0451 AF X103: XOR A
|
|
0721 0452 93 SUB E
|
|
0722 0453 5F LD E,A
|
|
0723 0454 3E 00 LD A,00H
|
|
0724 0456 9A SBC A,D
|
|
0725 0457 57 LD D,A
|
|
0726 0458 3E 00 LD A,00H
|
|
0727 045A 99 SBC A,C
|
|
0728 045B 4F LD C,A
|
|
0729 045C 3E 00 LD A,00H
|
|
0730 045E 98 SBC A,B
|
|
0731 045F 47 LD B,A
|
|
0732 0460 C9 RET
|
|
0733 0461 ; Single Print Routine
|
|
0734 0461 CB 78 P401: BIT 7,B
|
|
0735 0463 28 0B JR Z,P402
|
|
0736 0465 3E 2D LD A,2DH
|
|
0737 0467 C5 PUSH BC
|
|
0738 0468 DD 4E 01 LD C,(IX+01H)
|
|
0739 046B ED 79 OUT (C),A
|
|
0740 046D C1 POP BC
|
|
0741 046E CB B8 RES 7,B
|
|
0742 0470 C5 P402: PUSH BC
|
|
0743 0471 CB 01 RLC C
|
|
0744 0473 CB 10 RL B
|
|
0745 0475 3E 6A LD A,6AH
|
|
0746 0477 90 SUB B
|
|
0747 0478 F2 83 04 JP P,P403
|
|
0748 047B 3E 95 LD A,95H
|
|
0749 047D 90 SUB B
|
|
0750 047E FA 83 04 JP M,P403
|
|
0751 0481 18 0B JR P404
|
|
0752 0483 3E 45 P403: LD A,45H
|
|
0753 0485 DD 4E 01 LD C,(IX+01H)
|
|
0754 0488 ED 79 OUT (C),A
|
|
0755 048A C1 POP BC
|
|
0756 048B C3 8B 05 JP P405
|
|
0757 048E C1 P404: POP BC
|
|
0758 048F C5 PUSH BC
|
|
0759 0490 D5 PUSH DE
|
|
0760 0491 CD B6 03 CALL X001
|
|
0761 0494 C5 PUSH BC
|
|
0762 0495 D5 PUSH DE
|
|
0763 0496 01 0F 00 LD BC,000FH
|
|
0764 0499 11 40 42 LD DE,4240H
|
|
0765 049C CD 7F 01 CALL D101
|
|
0766 049F CD 8C 05 CALL P406
|
|
0767 04A2 C5 PUSH BC
|
|
0768 04A3 D5 PUSH DE
|
|
0769 04A4 01 01 00 LD BC,0001H
|
|
0770 04A7 11 A0 86 LD DE,86A0H
|
|
0771 04AA CD 7F 01 CALL D101
|
|
0772 04AD CD 8C 05 CALL P406
|
|
0773 04B0 C5 PUSH BC
|
|
0774 04B1 D5 PUSH DE
|
|
0775 04B2 01 00 00 LD BC,0000H
|
|
0776 04B5 11 10 27 LD DE,2710H
|
|
0777 04B8 CD 7F 01 CALL D101
|
|
0778 04BB CD 8C 05 CALL P406
|
|
0779 04BE C5 PUSH BC
|
|
0780 04BF D5 PUSH DE
|
|
0781 04C0 01 00 00 LD BC,0000H
|
|
0782 04C3 11 E8 03 LD DE,03E8H
|
|
0783 04C6 CD 7F 01 CALL D101
|
|
0784 04C9 CD 8C 05 CALL P406
|
|
0785 04CC C5 PUSH BC
|
|
0786 04CD D5 PUSH DE
|
|
0787 04CE 01 00 00 LD BC,0000H
|
|
0788 04D1 11 64 00 LD DE,0064H
|
|
0789 04D4 CD 7F 01 CALL D101
|
|
0790 04D7 CD 8C 05 CALL P406
|
|
0791 04DA C5 PUSH BC
|
|
0792 04DB D5 PUSH DE
|
|
0793 04DC 01 00 00 LD BC,0000H
|
|
0794 04DF 11 0A 00 LD DE,000AH
|
|
0795 04E2 CD 7F 01 CALL D101
|
|
0796 04E5 CD 8C 05 CALL P406
|
|
0797 04E8 DD 46 02 LD B,(IX+02H)
|
|
0798 04EB 7B LD A,E
|
|
0799 04EC 06 30 LD B,30H
|
|
0800 04EE 80 ADD A,B
|
|
0801 04EF DD 4E 01 LD C,(IX+01H)
|
|
0802 04F2 ED 79 OUT (C),A
|
|
0803 04F4 DD 4E 03 LD C,(IX+03H)
|
|
0804 04F7 0D DEC C
|
|
0805 04F8 CA 8B 05 JP Z,P405
|
|
0806 04FB DD 70 02 LD (IX+02H),B
|
|
0807 04FE DD 71 03 LD (IX+03H),C
|
|
0808 0501 3E 2E LD A,2EH
|
|
0809 0503 DD 4E 01 LD C,(IX+01H)
|
|
0810 0506 ED 79 OUT (C),A
|
|
0811 0508 D1 POP DE
|
|
0812 0509 C1 POP BC
|
|
0813 050A CB B8 RES 7,B
|
|
0814 050C C5 PUSH BC
|
|
0815 050D D5 PUSH DE
|
|
0816 050E CD B6 03 CALL X001
|
|
0817 0511 CD 00 04 CALL X101
|
|
0818 0514 CD FC 01 CALL S201
|
|
0819 0517 C5 PUSH BC
|
|
0820 0518 D5 PUSH DE
|
|
0821 0519 01 74 49 LD BC,4974H
|
|
0822 051C 11 00 24 LD DE,2400H
|
|
0823 051F CD DB 02 CALL M201
|
|
0824 0522 CD B6 03 CALL X001
|
|
0825 0525 C5 PUSH BC
|
|
0826 0526 D5 PUSH DE
|
|
0827 0527 01 01 00 LD BC,0001H
|
|
0828 052A 11 A0 86 LD DE,86A0H
|
|
0829 052D CD 7F 01 CALL D101
|
|
0830 0530 CD AA 05 CALL P409
|
|
0831 0533 28 56 JR Z,P405
|
|
0832 0535 D9 EXX
|
|
0833 0536 C5 PUSH BC
|
|
0834 0537 D5 PUSH DE
|
|
0835 0538 01 00 00 LD BC,0000H
|
|
0836 053B 11 10 27 LD DE,2710H
|
|
0837 053E CD 7F 01 CALL D101
|
|
0838 0541 CD AA 05 CALL P409
|
|
0839 0544 28 45 JR Z,P405
|
|
0840 0546 D9 EXX
|
|
0841 0547 C5 PUSH BC
|
|
0842 0548 D5 PUSH DE
|
|
0843 0549 01 00 00 LD BC,0000H
|
|
0844 054C 11 E8 03 LD DE,03E8H
|
|
0845 054F CD 7F 01 CALL D101
|
|
0846 0552 CD AA 05 CALL P409
|
|
0847 0555 28 34 JR Z,P405
|
|
0848 0557 D9 EXX
|
|
0849 0558 C5 PUSH BC
|
|
0850 0559 D5 PUSH DE
|
|
0851 055A 01 00 00 LD BC,0000H
|
|
0852 055D 11 64 00 LD DE,0064H
|
|
0853 0560 CD 7F 01 CALL D101
|
|
0854 0563 CD AA 05 CALL P409
|
|
0855 0566 28 23 JR Z,P405
|
|
0856 0568 D9 EXX
|
|
0857 0569 C5 PUSH BC
|
|
0858 056A D5 PUSH DE
|
|
0859 056B 01 00 00 LD BC,0000H
|
|
0860 056E 11 0A 00 LD DE,000AH
|
|
0861 0571 CD 7F 01 CALL D101
|
|
0862 0574 CD AA 05 CALL P409
|
|
0863 0577 28 12 JR Z,P405
|
|
0864 0579 D9 EXX
|
|
0865 057A DD 46 02 LD B,(IX+02H)
|
|
0866 057D 7B LD A,E
|
|
0867 057E 80 ADD A,B
|
|
0868 057F DD 4E 01 LD C,(IX+01H)
|
|
0869 0582 ED 79 OUT (C),A
|
|
0870 0584 DD 4E 03 LD C,(IX+03H)
|
|
0871 0587 0D DEC C
|
|
0872 0588 DD 71 03 LD (IX+03H),C
|
|
0873 058B P405:
|
|
0874 058B C9 RET
|
|
0875 058C DD 46 02 P406: LD B,(IX+02H)
|
|
0876 058F 7B LD A,E
|
|
0877 0590 FE 00 CP 00H
|
|
0878 0592 28 02 JR Z,P407
|
|
0879 0594 06 30 LD B,30H
|
|
0880 0596 80 P407: ADD A,B
|
|
0881 0597 DD 70 02 LD (IX+02H),B
|
|
0882 059A 28 0C JR Z,P408
|
|
0883 059C DD 4E 01 LD C,(IX+01H)
|
|
0884 059F ED 79 OUT (C),A
|
|
0885 05A1 DD 4E 03 LD C,(IX+03H)
|
|
0886 05A4 0D DEC C
|
|
0887 05A5 DD 71 03 LD (IX+03H),C
|
|
0888 05A8 D9 P408: EXX
|
|
0889 05A9 C9 RET
|
|
0890 05AA DD 46 02 P409: LD B,(IX+02H)
|
|
0891 05AD 7B LD A,E
|
|
0892 05AE 80 ADD A,B
|
|
0893 05AF DD 4E 01 LD C,(IX+01H)
|
|
0894 05B2 ED 79 OUT (C),A
|
|
0895 05B4 DD 4E 03 LD C,(IX+03H)
|
|
0896 05B7 0D DEC C
|
|
0897 05B8 DD 71 03 LD (IX+03H),C
|
|
0898 05BB C9 RET
|
|
0899 05BC ; End of listing
|
|
0900 05BC .END
|
|
Number of errors = 0
|