ASM80 :F1:BD1.B NOOBJECT NOSYMBOLS TITLE('TEST$RUN$1 5/20/82 2:47 PM') ISIS-II 8080/8085 MACRO ASSEMBLER, V4.0 MODULE PAGE 1 TEST$RUN$1 5/20/82 2:47 PM LOC OBJ LINE SOURCE STATEMENT 1 ;REF. NO. BD1B 2 ;PROGRAM TITLE DISASSEMBLER 3 ; 4 ; 5 ; 35B0 6 ORG 35B0H 3866 7 GO EQU 3866H 3C52 8 CO EQU 3C52H 3DF0 9 INCHL EQU 3DF0H 3CCC 10 CRLF EQU 3CCCH 3D85 11 EXPR EQU 3D85H 3E10 12 LBYTE EQU 3E10H 3DD4 13 GETAD EQU 3DD4H 3E00 14 LADR EQU 3E00H 3C50 15 BLK EQU 3C50H 3DE2 16 HILO EQU 3DE2H 3844 17 START EQU 3844H 3F34 18 SAVIT EQU 3F34H 19 ; 20 ; 35B0 CD853D 21 INICI: CALL EXPR 35B3 CDCC3C 22 DI0: CALL CRLF 35B6 CDD43D 23 CALL GETAD 35B9 CD003E 24 CALL LADR 35BC 7E 25 DI1: MOV A,M 35BD CD103E 26 CALL LBYTE ; PRINT INSTRUCTION 35C0 CD503C 27 CALL BLK 35C3 CDD43D 28 CALL GETAD 35C6 CDDB35 29 CALL UDT 35C9 CDD43D 30 CALL GETAD 35CC CDE23D 31 DT2: CALL HILO 35CF DA4438 32 JC START 35D2 CD343F 33 CALL SAVIT 35D5 CDD43D 34 CALL GETAD 35D8 C3B335 35 JMP DI0 35DB CDD43D 36 UDT: CALL GETAD 35DE 7E 37 MOV A,M 35DF F63E 38 ORI 3EH 35E1 FE7E 39 CPI 7EH 35E3 CA9A36 40 JZ TBYT ; IT IS A 3 BYTE INSTRUCTION. 35E6 FE7F 41 CPI 7FH 35E8 CA5C36 42 JZ UBYT ; IT IS A 1 BYTE INSTRUCTION. 35EB 7E 43 MOV A,M 35EC F63A 44 ORI 3AH 35EE FE3E 45 CPI 3EH 35F0 CAF636 46 JZ DBYT ; IT IS A 2 BYTE INSTRUCTION. 35F3 C35C36 47 JMP UBYT ; IT IS A 1 BYTE INSTRUCTION. 35F6 0E10 48 IMP16B: MVI C,10H 35F8 C3FD35 49 JMP BLANC 35FB 0E0B 50 IMP11B: MVI C,0BH 35FD 0620 51 BLANC: MVI B,20H 35FF CD523C 52 CALL CO 3602 0D 53 DCR C 3603 C2FD35 54 JNZ BLANC ISIS-II 8080/8085 MACRO ASSEMBLER, V4.0 MODULE PAGE 2 TEST$RUN$1 5/20/82 2:47 PM LOC OBJ LINE SOURCE STATEMENT 3606 C9 55 RET 56 ; 3607 0E03 57 IMP3B: MVI C,03H 3609 C3FD35 58 JMP BLANC 360C 0648 59 IMPRH: MVI B,48H ; PRINT 'H' 360E CD523C 60 CALL CO 3611 C9 61 RET 62 ; 3612 062C 63 IMPCO: MVI B,',' ; PRINT ',' 3614 CD523C 64 CALL CO 3617 C9 65 RET 66 ; 3618 0E0E 67 IMP14B: MVI C,0EH 361A C3FD35 68 JMP BLANC 361D CDD43D 69 IMPNEM: CALL GETAD 3620 6E 70 MOV L,M 3621 2634 71 MVI H,34H ; TABLE OF ADDRESSES 3623 6E 72 MOV L,M 3624 2635 73 MVI H,35H ; MNEMONICS TABLE 3626 CD4636 74 CALL ECO3 3629 C9 75 RET 76 ; 362A 44 77 SAVOT: MOV B,H ; STORE HL AND DE BEGINNING 362B 4D 78 MOV C,L ; AT 40H. 362C 2E40 79 MVI L,40H 362E 2600 80 MVI H,00H 3630 70 81 MOV M,B 3631 2C 82 INR L 3632 71 83 MOV M,C 3633 2C 84 INR L 3634 72 85 MOV M,D 3635 2C 86 INR L 3636 73 87 MOV M,E 3637 C9 88 RET 89 ; 3638 2E40 90 GETOD: MVI L,40H ; INVERSE ROUTINE OF SAVOT. 363A 2600 91 MVI H,00H 363C 46 92 MOV B,M 363D 2C 93 INR L 363E 4E 94 MOV C,M 363F 2C 95 INR L 3640 56 96 MOV D,M 3641 2C 97 INR L 3642 5E 98 MOV E,M 3643 60 99 MOV H,B 3644 69 100 MOV L,C 3645 C9 101 RET 102 ; 3646 0E03 103 ECO3: MVI C,03H ; 3 CHARACTER OUT FROM TTY. 3648 CD4C36 104 CALL VERO 364B C9 105 RET 106 ; 364C 46 107 VERO: MOV B,M 364D CDF03D 108 CALL INCHL 3650 54 109 MOV D,H ISIS-II 8080/8085 MACRO ASSEMBLER, V4.0 MODULE PAGE 3 TEST$RUN$1 5/20/82 2:47 PM LOC OBJ LINE SOURCE STATEMENT 3651 5D 110 MOV E,L 3652 CD523C 111 CALL CO 3655 62 112 MOV H,D 3656 6B 113 MOV L,E 3657 0D 114 DCR C 3658 C24C36 115 JNZ VERO 365B C9 116 RET 117 ; 365C CDF635 118 UBYT: CALL IMP16B ; FOR THE 1 BYTE INSTRUCTIONS. 365F CDD43D 119 CALL GETAD 3662 7E 120 MOV A,M 3663 F63F 121 ORI 3FH 3665 FE3F 122 CPI 3FH 3667 CAB237 123 JZ CEROCERO ;BITS NOS. 7 AND 6 = 0 366A FE7F 124 CPI 7FH 366C CA9737 125 JZ CEROUNO ; BITS 7 AND 6 = 01 366F FEBF 126 CPI 0BFH 3671 CA8637 127 JZ UNCERO ; BITS 7 AND 6 = 10 3674 CD1D36 128 CALL IMPNEM 3677 CDD43D 129 CALL GETAD ; TO SEE IF IT IS FF. 367A 7E 130 MOV A,M 367B FEFF 131 CPI 0FFH 367D C8 132 RZ 367E CD0736 133 CALL IMP3B 3681 CDD43D 134 CALL GETAD 3684 4E 135 MOV C,M 3685 7E 136 MOV A,M 3686 1F 137 RAR 3687 1F 138 RAR 3688 1F 139 RAR 3689 CD7037 140 CALL LETRAS 368C CD523C 141 CALL CO 368F CD1236 142 CALL IMPCO 3692 79 143 MOV A,C 3693 CD7037 144 CALL LETRAS 3696 CD523C 145 CALL CO 3699 C9 146 RET 147 ; 369A CDD43D 148 TBYT: CALL GETAD ; 3 BYT INSTRUCTION 369D CD2A36 149 CALL SAVOT 36A0 CDD43D 150 CALL GETAD 36A3 CDF03D 151 CALL INCHL 36A6 CD343F 152 CALL SAVIT 36A9 CDD43D 153 CALL GETAD 36AC 7E 154 MOV A,M 36AD CD103E 155 CALL LBYTE 36B0 CDD43D 156 CALL GETAD 36B3 CDF03D 157 CALL INCHL 36B6 CD343F 158 CALL SAVIT 36B9 CD503C 159 CALL BLK 36BC CDD43D 160 CALL GETAD 36BF 7E 161 MOV A,M 36C0 CD103E 162 CALL LBYTE 36C3 CDFB35 163 CALL IMP11B 36C6 CD3836 164 CALL GETOD ISIS-II 8080/8085 MACRO ASSEMBLER, V4.0 MODULE PAGE 4 TEST$RUN$1 5/20/82 2:47 PM LOC OBJ LINE SOURCE STATEMENT 36C9 6E 165 MOV L,M 36CA 2634 166 MVI H,34H ; TABLE OF ADDRESSES. 36CC 6E 167 MOV L,M 36CD 2635 168 MVI H,35H ; TABLE OF MNEMONICS 36CF CD4636 169 CALL ECO3 36D2 CD0736 170 CALL IMP3B 36D5 CD3836 171 CALL GETOD 36D8 CDF03D 172 CALL INCHL 36DB CD2A36 173 CALL SAVOT 36DE CD3836 174 CALL GETOD 36E1 CDF03D 175 CALL INCHL 36E4 7E 176 MOV A,M 36E5 CD103E 177 CALL LBYTE 36E8 CD3836 178 CALL GETOD 36EB 7E 179 MOV A,M 36EC CD103E 180 CALL LBYTE 36EF CD503C 181 CALL BLK 36F2 CD0C36 182 CALL IMPRH 36F5 C9 183 RET 184 ; 36F6 CDD43D 185 DBYT: CALL GETAD ; 2 BYTE INSTRUCTION. 36F9 CD2A36 186 CALL SAVOT 36FC CDD43D 187 CALL GETAD 36FF CDF03D 188 CALL INCHL 3702 CD343F 189 CALL SAVIT 3705 CDD43D 190 CALL GETAD 3708 7E 191 MOV A,M 3709 CD103E 192 CALL LBYTE 370C CD1836 193 CALL IMP14B 370F CD3836 194 CALL GETOD 3712 7E 195 MOV A,M 3713 0F 196 RRC 3714 0F 197 RRC 3715 DA3737 198 JC LMVI ; IT IS AN MVI INSTRUCTION. 3718 07 199 RLC 3719 07 200 RLC ; RECOVER THE INSTRUCTION. 371A 6E 201 MOV L,M 371B 2634 202 MVI H,34H ; TABLE OF ADDRESSES. 371D 6E 203 MOV L,M 204 ; 371E 2635 205 MVI H,35H 3720 CD4636 206 CALL ECO3 ; OUTPUT 3 CHARACT. MNEMONIC. 3723 CD0736 207 CALL IMP3B 3726 CD3836 208 CALL GETOD 3729 CDF03D 209 CALL INCHL 372C 7E 210 MOV A,M 372D CD103E 211 CALL LBYTE 3730 CD503C 212 CALL BLK 3733 CD0C36 213 CALL IMPRH 3736 C9 214 RET 215 ; 3737 CD6037 216 LMVI: CALL ESCMVI ; PRINT MVI 373A CD0736 217 CALL IMP3B 373D CD3836 218 CALL GETOD 3740 7E 219 MOV A,M ISIS-II 8080/8085 MACRO ASSEMBLER, V4.0 MODULE PAGE 5 TEST$RUN$1 5/20/82 2:47 PM LOC OBJ LINE SOURCE STATEMENT 3741 0F 220 RRC 3742 0F 221 RRC 3743 0F 222 RRC ; ROTATE 3 TIMES TO SEE WHICH CHARACT. 3744 E607 223 ANI 07H ; MASC BITS D3,D4,D5,D6,D7. 3746 CD7037 224 CALL LETRAS 3749 CD523C 225 CALL CO 374C CD1236 226 CALL IMPCO 374F CD3836 227 CALL GETOD 3752 CDF03D 228 CALL INCHL 3755 7E 229 MOV A,M 3756 CD103E 230 CALL LBYTE 3759 CD503C 231 CALL BLK 375C CD0C36 232 CALL IMPRH 375F C9 233 RET 234 ; 3760 064D 235 ESCMVI: MVI B,'M' ; PRINT MVI AT DE TTY. 3762 CD523C 236 CALL CO 3765 0656 237 MVI B,'V' 3767 CD523C 238 CALL CO 376A 0649 239 MVI B,'I' 376C CD523C 240 CALL CO 376F C9 241 RET 242 ; 3770 E607 243 LETRAS: ANI 07H ; TO COMPUTE THE LETTERS A,B,C,D,E,H 3772 FE05 244 CPI 05H ; FROM 0,1,2,3,4,5,6,7. 3774 CA7E37 245 JZ SUM43 3777 D28237 246 JNC SUM46 377A C641 247 ADI 41H 377C 47 248 MOV B,A 377D C9 249 RET 250 ; 377E C643 251 SUM43: ADI 43H 3780 47 252 MOV B,A 3781 C9 253 RET 254 ; 3782 C646 255 SUM46: ADI 46H 3784 47 256 MOV B,A 3785 C9 257 RET 258 ; 3786 CD1D36 259 UNCERO: CALL IMPNEM ; 1 BYTE INSTRUCTION WHICH BEGINS 3789 CD0736 260 CALL IMP3B ;BY 16 378C CDD43D 261 CALL GETAD 378F 7E 262 MOV A,M 3790 CD7037 263 CALL LETRAS 3793 CD523C 264 CALL CO 3796 C9 265 RET 266 ; 3797 CD1D36 267 CEROUNO: CALL IMPNEM ; RUTINE OF 1 BYTE INSTRUCTION 379A CD0736 268 CALL IMP3B ; WHICH BEGINS BY 01 379D CDD43D 269 CALL GETAD 37A0 7E 270 MOV A,M 37A1 CDA537 271 CALL NUMEROS 37A4 C9 272 RET 273 ; 37A5 1F 274 NUMEROS: RAR ISIS-II 8080/8085 MACRO ASSEMBLER, V4.0 MODULE PAGE 6 TEST$RUN$1 5/20/82 2:47 PM LOC OBJ LINE SOURCE STATEMENT 37A6 E61F 275 ANI 1FH ; PRINT A NUMBER. 37A8 CD103E 276 CALL LBYTE 37AB CD503C 277 CALL BLK 37AE CD0C36 278 CALL IMPRH 37B1 C9 279 RET 280 ; 37B2 CD1D36 281 CEROCERO: CALL IMPNEM ; 1 BYTE INSTRUCTION WHICH BEGINS 37B5 CDD43D 282 CALL GETAD ; BY 00 37B8 7E 283 MOV A,M 37B9 1F 284 RAR 37BA 1F 285 RAR ; TO SEE BIT D1 37BB D8 286 RC ; IT IS A RET INSTRUCTION 37BC 1F 287 RAR 37BD DADD37 288 JC ESRST ; BIT D2=1 RST INSTRUCTION. 37C0 CDD43D 289 CALL GETAD 37C3 7E 290 MOV A,M 37C4 E6FF 291 ANI 0FFH ; TO KNOWN IF IT IS HLT. 37C6 FE00 292 CPI 00H 37C8 C8 293 RZ ; IT IS HLT 37C9 FE01 294 CPI 01H 37CB C8 295 RZ ; IT IS HLT 37CC CD0736 296 CALL IMP3B 37CF CDD43D 297 CALL GETAD ; IT IS INC OR DCR 37D2 7E 298 MOV A,M 37D3 1F 299 RAR 37D4 1F 300 RAR 37D5 1F 301 RAR 37D6 CD7037 302 CALL LETRAS 37D9 CD523C 303 CALL CO 37DC C9 304 RET 305 ; 37DD CD0736 306 ESRST: CALL IMP3B ; IT IS RST INSTRUCTION 37E0 CDD43D 307 CALL GETAD 37E3 7E 308 MOV A,M 37E4 1F 309 RAR 37E5 1F 310 RAR 37E6 1F 311 RAR 37E7 E607 312 ANI 07H 37E9 CD103E 313 CALL LBYTE 37EC C9 314 RET 315 ; 37ED CDCC3C 316 DISAS: CALL CRLF 37F0 0E0B 317 MVI C,0BH ; NUMBER OF CHARACTERS 37F2 2635 318 MVI H,35H ; INITIAL ADDRESS 37F4 2EA5 319 MVI L,0A5H ; OF DISASSEMBLER 37F6 CD4C36 320 CALL VERO 37F9 1EB0 321 MVI E,0B0H ; ADDRES OF PROGRAM GO (MONITOR) 37FB 1635 322 MVI D,35H 37FD C36638 323 JMP GO 324 ; 325 END ASSEMBLY COMPLETE, NO ERRORS