Listing of file='DASM.BAS;01' on disk='vmedia/utility-sector.ccvf'
10 REM 8080 DISASSEMBLER - OUTPUT TO CRT 20 PLOT 12 50 DATA "0","1","2","3","4","5","6","7" 53 DATA "8","9","A","B","C","D","E","F" 100 DATA "NOP",1,"LXI B,",3 102 DATA "STAX B",1,"INX B",1 104 DATA "INR B",1,"DCR B",1 106 DATA "MVI B,",2,"RLC",1 108 DATA "??=08",1,"DAD B",1 110 DATA "LDAX B",1,"DCX B",1 112 DATA "INR C",1,"DCR C",1 114 DATA "MVI C,",2,"RRC",1 116 DATA "??=10",1,"LXI D,",3 118 DATA "STAX D",1,"INX D",1 120 DATA "INR D",1,"DCR D",1 122 DATA "MVI D,",2,"RAL",1 124 DATA "??=18",1,"DAD D",1 126 DATA "LDAX D",1,"DCX D",1 128 DATA "INR E",1,"DCR E",1 130 DATA "MVI E,",2,"RAR",1 132 DATA "??=20",1,"LXI H,",3 134 DATA "SHLD ",3,"INX H",1 136 DATA "INR R",1,"DCR H",1 138 DATA "MVI H,",2,"DAA",1 140 DATA "??=28",1,"DAD H",1 142 DATA "LHLD ",3,"DCX H",1 144 DATA "INR L",1,"DCR L",1 146 DATA "MVI L,",2,"CMA",1 148 DATA "??=30",1,"LXI SP,",3 150 DATA "STA ",3,"INX SP",1 152 DATA "INR M",1,"DCR M",1 154 DATA "MVI M,",2,"STC",1 156 DATA "??=38",1,"DAD SP",1 158 DATA "LDA ",3,"DCX SP",1 160 DATA "INR A",1,"DCR A",1 162 DATA "MVI A,",2,"CMC",1 164 DATA "MOV B,B",1,"MOV B,C",1 166 DATA "MOV B,D",1,"MOV B,E",1 168 DATA "MOV B,H",1,"MOV B,L",1 170 DATA "MOV B,M",1,"MOV B,A",1 172 DATA "MOV C,B",1,"MOV C,C",1 174 DATA "MOV C,D",1,"MOV C,E",1 176 DATA "MOV C,H",1,"MOV C,L",1 178 DATA "MOV C,M",1,"MOV C,A",1 180 DATA "MOV D,B",1,"MOV D,C",1 182 DATA "MOV D,D",1,"MOV D,E",1 184 DATA "MOV D,H",1,"MOV D,L",1 186 DATA "MOV D,M",1,"MOV D,A",1 188 DATA "MOV E,B",1,"MOV E,C",1 190 DATA "MOV E,D",1,"MOV E,E",1 192 DATA "MOV E,H",1,"MOV E,L",1 194 DATA "MOV E,M",1,"MOV E,A",1 196 DATA "MOV H,B",1,"MOV H,C",1 198 DATA "MOV H,D",1,"MOV H,E",1 200 DATA "MOV H,H",1,"MOV H,L",1 202 DATA "MOV H,M",1,"MOV H,A",1 204 DATA "MOV L,B",1,"MOV L,C",1 206 DATA "MOV L,D",1,"MOV L,E",1 208 DATA "MOV L,H",1,"MOV L,L",1 210 DATA "MOV L,M",1,"MOV L,A",1 212 DATA "MOV M,B",1,"MOV M,C",1 214 DATA "MOV M,D",1,"MOV M,E",1 216 DATA "MOV M,H",1,"MOV M,L",1 218 DATA "HALT",1,"MOV M,A",1 220 DATA "MOV A,B",1,"MOV A,C",1 222 DATA "MOV A,D",1,"MOV A,E",1 224 DATA "MOV A,H",1,"MOV A,L",1 226 DATA "MOV A,M",1,"MOV A,A",1 228 DATA "ADD B",1,"ADD C",1 230 DATA "ADD D",1,"ADD E",1 232 DATA "ADD H",1,"ADD L",1 234 DATA "ADD M",1,"ADD A",1 236 DATA "ADC B",1,"ADC C",1 238 DATA "ADC D",1,"ADC E",1 240 DATA "ADC H",1,"ADC L",1 242 DATA "ADC M",1,"ADC A",1 244 DATA "SUB B",1,"SUB C",1 246 DATA "SUB D",1,"SUB E",1 248 DATA "SUB H",1,"SUB L",1 250 DATA "SUB M",1,"SUB A",1 252 DATA "SBB B",1,"SBB C",1 254 DATA "SBB D",1,"SBB E",1 256 DATA "SBB H",1,"SBB L",1 258 DATA "SBB M",1,"SBB A",1 408 DATA "ANA B",1,"ANA C",1 410 DATA "ANA D",1,"ANA E",1 412 DATA "ANA H",1,"ANA L",1 414 DATA "ANA M",1,"ANA A",1 416 DATA "XRA B",1,"XRA C",1 418 DATA "XRA D",1,"XRA E",1 420 DATA "XRA H",1,"XRA L",1 422 DATA "XRA M",1,"XRA A",1 424 DATA "ORA B",1,"ORA C",1 426 DATA "ORA D",1,"ORA E",1 428 DATA "ORA H",1,"ORA L",1 430 DATA "ORA M",1,"ORA A",1 432 DATA "CMP B",1,"CMP C",1 434 DATA "CMP D",1,"CMP E",1 436 DATA "CMP H",1,"CMP L",1 438 DATA "CMP M",1,"CMP A",1 440 DATA "RNZ",1,"POP B",1 442 DATA "JNZ ",3,"JMP ",3 444 DATA "CNZ ",3,"PUSH B",1 446 DATA "ADI ",2,"RST 00H",1 448 DATA "RZ",1,"RET",1 450 DATA "JZ ",3,"??=CB",1 452 DATA "CZ ",3,"CALL ",3 454 DATA "ACI ",2,"RST 08H",1 456 DATA "RNZ",1,"POP D",1 458 DATA "JNC ",3,"OUT ",2 460 DATA "CNC ",3,"PUSH D",1 462 DATA "SUI ",2,"RST 10H",1 464 DATA "RC",1,"??=D9",1 466 DATA "JC ",3,"IN ",2 468 DATA "CC ",3,"??=DD",1 470 DATA "SBI ",2,"RST 18H",1 472 DATA "RPO",1,"POP H",1 474 DATA "JPO ",3,"XTHL",1 476 DATA "CPO ",3,"PUSH H",1 478 DATA "ANI ",2,"RST 20H",1 480 DATA "RPE",1,"PCHL",1 482 DATA "JPE ",3,"XCHG",1 484 DATA "CPE ",3,"??=ED",1 486 DATA "XRI ",2,"RST 28H",1 488 DATA "RP",1,"POP PSW",1 490 DATA "JP ",3,"DI",1 492 DATA "CP ",3,"PUSH PSW",1 494 DATA "ORI ",2,"RST 30H",1 496 DATA "RM",1,"SPHL",1 498 DATA "JM ",3,"EI",1 500 DATA "CM ",3,"??=FD",1 502 DATA "CPI ",2,"RST 38H",1 1010 PRINT "8080 DISASSEMBLER - OUTPUT TO CRT" 1011 CLEAR 100 1012 DIM N1$(255),NB(255) 1014 DIM HX$(15) 1016 FOR J= 0TO 15 1017 READ HX$(J) 1018 NEXT J 1020 INPUT "START ADDRESS (HEX)? ";ST$ 1022 AD$= ST$ 1024 GOSUB 3300 1026 ST= AD 1030 INPUT "END ADDRESS (HEX)? ";ND$ 1032 AD$= ND$ 1034 GOSUB 3300 1036 ND= AD 1038 FOR I= 0TO 255 1040 READ N1$(I),NB(I) 1042 NEXT I 1048 I= ST 1050 B= PEEK (I) 1052 AD= B:GOSUB 3006:C1$= AD$:C2$= " ":C3$= " " 1054 AD= I 1056 GOSUB 3000 1058 LOCN$= AD$ 1060 N1$= N1$(B) 1062 N2$= "" 1070 NO= NB(B) 1080 IF NO= 1THEN 2000 1090 I= I+ 1 1100 B= PEEK (I) 1112 AD= B 1114 GOSUB 3006:C2$= AD$ 1116 IF NO= 2THEN 1170 1120 I= I+ 1 1130 C= PEEK (I) 1132 AD= C:GOSUB 3006:C3$= AD$ 1140 B= B+ 256* C 1150 AD= B 1160 GOSUB 3000 1170 N2$= AD$+ "H" 2000 REM 2008 PRINT LOCN$;"H ";C1$;C2$;C3$;" ";N1$;N2$ 2010 I= I+ 1 2020 IF I< = NDGOTO 1050 2999 END 3000 REM *** CONVERT ADDRESS AD TO HEX 3005 AD$= "":GOTO 3010 3006 AD$= "":GOTO 3070 3010 V= INT (AD/ 4096) 3020 AD= AD- V* 4096 3030 GOSUB 3200 3040 V= INT (AD/ 256) 3050 AD= AD- V* 256 3060 GOSUB 3200 3070 V= INT (AD/ 16) 3080 AD= AD- V* 16 3090 GOSUB 3200 3100 V= INT (AD) 3110 AD= AD- V 3120 GOSUB 3200 3130 RETURN 3200 IF V< 10THEN AD$= AD$+ RIGHT$ (STR$ (V),1) 3210 IF V= 10THEN AD$= AD$+ "A" 3220 IF V= 11THEN AD$= AD$+ "B" 3230 IF V= 12THEN AD$= AD$+ "C" 3240 IF V= 13THEN AD$= AD$+ "D" 3250 IF V= 14THEN AD$= AD$+ "E" 3260 IF V= 15THEN AD$= AD$+ "F" 3270 RETURN 3300 REM *** CONVERT HEX ADDRESS TO DECIMAL 3310 AD= 0 3320 FOR KA= 1TO 4 3330 C$= MID$ (AD$,KA,1) 3340 FOR KB= 0TO 15 3350 IF C$= HX$(KB)THEN 3390 3360 NEXT KB 3370 PRINT "ADDRESS NOT IN HEX" 3380 RUN 3390 AD= INT (AD+ KB* 16^ (4- KA)+ 0.5) 3400 NEXT KA 3410 RETURN