home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug044.arc / DISSAMBR.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  4KB  |  82 lines

  1. 100 REM  8080 DISASSEMBLER  D. NIXON/ B. PARHAM 4-20-77
  2. 110 DEFINT A-Z
  3. 120 DIM M$(255),N1(255)
  4. 130 PA=59:PC=0
  5. 140 FOR I = O TO 255:READ M$(I),N1(I):NEXT
  6. 150 INPUT "STARTING ADDRESS";S
  7. 160 INPUT "ENDING ADDRESS";E
  8. 170 PRINT:PRINT:PRINT
  9. 180 FOR N=S TO E
  10. 190 X=PEEK(N):L$=HEX$(X):GOSUB 440:B$=L$:A$=HEX$(N)
  11. 200 A$=STRING$(4-LEN(A$),"0")+A$
  12. 210 N2$="":N3$=""
  13. 220 IF N1(X)>1 THEN L$=HEX$(PEEK(N+1)):GOSUB 440:N2$=L$
  14. 230 IF N1(X)=3 THEN L$=HEX$(PEEK(N+2)):GOSUB 440:N3$=L$
  15. 240 PRINT A$;TAB(6);B$;
  16. 250 IF N1(X)>1 THEN PRINT " ";N2$;
  17. 260 IF N1(X)>2 THEN PRINT " ";N3$;
  18. 270 LM=LEN(M$(X))
  19. 280 IF LM<2 THEN 340
  20. 290 P=INSTR(M$(X)," ")
  21. 300 IF P=0 THEN PRINT TAB(20);M$(X);TAB(25);:GOTO320
  22. 310 PRINT TAB(20);LEFT$(M$(X),P-1);TAB(26);RIGHT$(M$(X),LM-P);
  23. 320 IF N1(X)>1 AND LM >4 THEN C$="," ELSE C$=" "
  24. 330 IFN1(X)>1 THEN PRINT C$+"0";N3$;N2$;"H";
  25. 340 PRINT TAB(40);:Y=X:GOSUB 450
  26. 350 IF N1(X)>1 THEN Y=PEEK(N+1):GOSUB  450
  27. 360 IF N1(X)=3 THEN Y=PEEK(N+2):GOSUB 450
  28. 370 IF N1(X)>1 THEN PRINT TAB(50);M$(PEEK(N+1));
  29. 380 IF N1(X)=3 THEN PRINT TAB(60);M$(PEEK(N+2));
  30. 390 PRINT
  31. 400 N=N+N1(X)-1
  32. 410 PC=PC+1:IF PC>PA THEN PC=0:FOR I=1 TO 8:PRINT:NEXT I
  33. 420 NEXT N
  34. 430 END
  35. 440 L$=STRING$(2-LEN(L$),"0")+L$:RETURN
  36. 450 Z$=" ":IF Y> 127 THEN Y=Y-128:Z$="*"
  37. 460 IF Y<32 OR Y>126 THEN Y=42:Z$="*"
  38. 470 PRINT CHR$(Y);Z$;" ";
  39. 480 RETURN
  40. 490 DATA NOP,1,LXI B,3,STAX B,3,INX B,1,INR B,1,DCR B,1,MVI B,2,RCL
  41. 500 DATA1," ",1,DAD B,1,LDAX B,1,DCX B,1,INR C,1,DCR C,1,MVI C,2,RRC
  42. 510 DATA1," ",1,LXI D,3,STAX D,1,INX D,1,INR D,1,DCR D,1,MVI D,2,RAL,1
  43. 520 DATA" ",1,DAD D,1,LDAX D,1,DCX D,1,INR E,1,DCR E,1,MVI E,2,RAR,1
  44. 530 DATA" ",1,LXI H,3,SHLD,3,INX H,1,INR H,1,DCR H,1,MVI H,2,DAA,1
  45. 540 DATA" ",1,DAD H,1,LHLD,3,DCX H,1,INR L,1,DCR L,1,MVI L,2,CMA,1
  46. 550 DATA" ",1,LXI SP,3,STA,3,INX SP,1,INR M,1,DCR M,1,MVI M,2,STC,1
  47. 560 DATA" ",1,DAD SP,1,LDA,3,DCX SP,1,INR A,1,DCR A,1,MVI A,2,CMC,1
  48. 570 DATA "MOV B,B",1,"MOV B,C",1,"MOV B,D",1,"MOV B,E",1
  49. 580 DATA"MOV B,H",1,"MOV B,L",1,"MOV B,M",1,"MOV B,A",1
  50. 590 DATA"MOV C,B",1,"MOV C,C",1,"MOV C,D",1,"MOV C,E",1
  51. 600 DATA"MOV C,H",1,"MOV C,L",1,"MOV C,M",1,"MOV C,A",1
  52. 610 DATA"MOV D,B",1,"MOV D,C",1,"MOV D,D",1,"MOV D,E",1
  53. 620 DATA"MOV D,H",1,"MOV D,L",1,"MOV D,M",1,"MOV D,A",1
  54. 630 DATA"MOV E,B",1,"MOV E,C",1,"MOV E,D",1,"MOV E,E",1
  55. 640 DATA"MOV E,H",1,"MOV E,L",1,"MOV E,M",1,"MOV E,A",1
  56. 650 DATA"MOV H,B",1,"MOV H,C",1,"MOV H,D",1,"MOV H,E",1
  57. 660 DATA"MOV H,H",1,"MOV H,L",1,"MOV H,M",1,"MOV H,A",1
  58. 670 DATA"MOV L,B",1,"MOV L,C",1,"MOV L,D",1,"MOV L,E",1
  59. 680 DATA"MOV L,H",1,"MOV L,L",1,"MOV L,M",1,"MOV L,A",1
  60. 690 DATA"MOV M,B",1,"MOV M,C",1,"MOV M,D",1,"MOV M,E",1
  61. 700 DATA"MOV M,H",1,"MOV M,L",1,"HLT",1,"MOV M,A",1
  62. 710 DATA"MOV A,B",1,"MOV A,C",1,"MOV A,D",1,"MOV A,E",1
  63. 720 DATA"MOV A,H",1,"MOV A,L",1,"MOV A,M",1,"MOV A,A",1
  64. 730 DATAADD B,1,ADD C,1,ADD D,1,ADD E,1,ADD H,1,ADD L,1,ADD M,1,ADD A,1
  65. 740 DATAADC B,1,ADC C,1,ADC D,1,ADC E,1,ADC H,1,ADC L,1,ADC M,1,ADC A,1
  66. 750 DATASUB B,1,SUB C,1,SUB D,1,SUB E,1,SUB H,1,SUB L,1,SUB M,1,SUB A,1
  67. 760 DATASBB B,1,SBB C,1,SBB D,1,SBB E,1,SBB H,1,SBB L,1,SBB M,1,SBB A,1
  68. 770 DATAANA B,1,ANA C,1,ANA D,1,ANA E,1,ANA H,1,ANA L,1,ANA M,1,ANA A,1
  69. 780 DATAXRA B,1,XRA C,1,XRA D,1,XRA E,1,XRA H,1,XRA L,1,XRA M,1,XRA A,1
  70. 790 DATAORA B,1,ORA C,1,ORA D,1,ORA E,1,ORA H,1,ORA L,1,ORA M,1,ORA A,1
  71. 800 DATACMP B,1,CMP C,1,CMP D,1,CMP E,1,CMP H,1,CMP L,1,CMP M,1,CMP A,1
  72. 810 DATA RNZ,1,POP B,1,JNZ,3,JMP,3,CNZ,3,PUSH B,1,ADI,2,RST 0,1
  73. 820 DATA RZ,1,RET,1,JZ,3," ",1,CZ,3,CALL,3,ACI,2,RST 1,1
  74. 830 DATA RNC,1,POP D,1,JNC,3,OUT,2,CNC,3,PUSH D,1,SUI,2,RST 2,1
  75. 840 DATA RC,1," ",1,JC,3,IN,2,CC,3," ",1,SBI,2,RST 3,1
  76. 850 DATA"RPO",1,POP H,1,JPO,3,XTHL,1,CPO,3,PUSH H,1,ANI,2,RST 4,1
  77. 860 DATA RPE,1,PCHL,1,JPE,3,XCHG,1,CPE,3," ",1,XRI,2,RST 5,1
  78. 870 DATA RP,1,POP PSW,1,JP,3,DI,1,CP,3,PUSH PSW,1,ORI,2,PST 6,1
  79. 880 DATA RM,1,SPHL,1,JM,3,EI,1,CM,3," ",1,CPI,2,RST 7,1
  80. 5,1
  81. 870 DATA RP,1,POP PSW,1,JP,3,DI,1,CP,3,PUSH PSW,1,ORI,2,PST 6,1
  82. 880 DATA