home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / util / disasmb.arc / DISASSEMBLER (.txt) next >
Commodore BASIC  |  1993-03-23  |  5KB  |  188 lines

  1. 10 REM COPYRIGHT 1989 COMPUTE! PUBLICATIONS, INC. - ALL RIGHTS RESERVED
  2. 20 NL=39:REM  NUMBER OF ADDRESS LABELS
  3. 30 ML=820:REM  STARTING ADDRESS
  4. 40 :
  5. 50 POKE53281,0:POKE53280,6
  6. 60 PRINT"[147][152]   COPYRIGHT 1989 COMPUTE! PUB., INC."
  7. 70 PRINTTAB(11)"ALL RIGHTS RESERVED"
  8. 80 PRINT"  S M A R T   D I S A S S E M B L E R   "
  9. 90 PRINTTAB(13)"PLEASE WAIT..."
  10. 100 DIM OP$(255),TP%(255),LC(NL),LB$(NL)
  11. 110 DG$="0123456789ABCDEF":S$=" "
  12. 120 SP$="                            "
  13. 130 CL$=SP$+"         ":FORI=0TO255:READOP$(I)
  14. 140 IF OP$(I)="" THEN OP$(I)="BYTE":TP%(I)=14:GOTO160
  15. 150 READ TP%(I)
  16. 160 NEXT
  17. 170 FORI=MLTO ML+38:READA:POKEI,A:NEXT
  18. 180 A=INT(ML/256):POKE786,A:POKE785,ML-A*256
  19. 190 FORI=1TONL:READLB$(I),LC(I):NEXT
  20. 200 INPUT" STARTING ADDRESS";SA
  21. 210 INPUT" ENDING ADDRESS";EA
  22. 220 IFEA=0THENEA=65535
  23. 230 IFEA<=SA THEN210
  24. 240 F=0:PR=0:H=0:RM=0:PRINT:GOSUB830:PRINT"[147]":PC=SA
  25. 250 A$=STR$(PC):IF H THEN GOSUB780:A$=S$+RIGHT$(A$,4)
  26. 260 P$=A$+"  ":PRINTP$;:J=USR(PC):TC=PC:PRINTOP$(J);
  27. 270 ONTP%(J)GOSUB440,470,530,550,560,580,600,620,640,660,680,700,490,720
  28. 280 PC=PC+N:PRINT A$;TAB(20);
  29. 290 IF PR THEN PRINT#3,P$;OP$(J);A$;
  30. 300 A=LEN(P$+OP$(J)+A$):C=23:A$="":FORI=TCTOPC-1
  31. 310 PRINT TAB(C)USR(I):PRINT"[145]";
  32. 320 A$=A$+STR$(USR(I)):C=C+4:NEXT
  33. 330 IF PR THEN PRINT#3,RIGHT$(SP$,28-A);A$
  34. 340 PRINT:IFPC>EA THEN420
  35. 350 A=FRE(0):REM FORCE GARBAGE COLLECT.
  36. 360 GETA$:IFA$="" THEN250
  37. 370 PRINT"     SPACE[146] - CONTINUE     F1[146] - MENU[145]"
  38. 380 GETA$:IFA$=""THEN380
  39. 390 PRINT CL$;"[145][145]"
  40. 400 IFA$="[133]"THENGOSUB830
  41. 410 GOTO250
  42. 420 IF PR THEN PRINT#3:CLOSE3
  43. 430 PRINT"END OF DISASSEMBLY":END
  44. 440 A$=STR$(USR(PC+1))
  45. 450 IF H THEN GOSUB820
  46. 460 A$=" #"+RIGHT$(A$,LEN(A$)-1):N=2:RETURN
  47. 470 L=USR(PC+1):M=USR(PC+2):AD=256*M+L:A$=STR$(AD):IFHTHENGOSUB780
  48. 480 N=3:RETURN
  49. 490 L=USR(PC+1):M=USR(PC+2):AD=256*M+L
  50. 500 IF F THEN GOSUB740:IF K THEN520
  51. 510 A$=STR$(AD):IF H THEN GOSUB780
  52. 520 N=3:RETURN
  53. 530 A$=STR$(USR(PC+1)):IFHTHENGOSUB820
  54. 540 N=2:RETURN
  55. 550 A$="":N=1:RETURN
  56. 560 A$=STR$(USR(PC+1)):IFHTHENGOSUB820
  57. 570 A$=" ("+RIGHT$(A$,LEN(A$)-1)+",X):N=2:RETURN
  58. 580 AD[178][183](PC[170]1):A$[178][196](AD):[139]H[167][141]820
  59. 590 A$[178]" ("[170][201](A$,[195](A$)[171]1)[170]"),Y":N[178]2:[142]
  60. 600 AD[178][183](PC[170]1):A$[178][196](AD):[139]H[167][141]820
  61. 610 A$[178]A$[170]",X":N[178]2:[142]
  62. 620 L[178][183](PC[170]1):M[178][183](PC[170]2):AD[178]256[172]M[170]L:A$[178][196](AD):[139]H[167][141]780
  63. 630 A$[178]A$[170]",X":N[178]3:[142]
  64. 640 L[178][183](PC[170]1):M[178][183](PC[170]2):AD[178]256[172]M[170]L:A$[178][196](AD):[139]H[167][141]780
  65. 650 A$[178]A$[170]",Y":N[178]3:[142]
  66. 660 N[178][183](PC[170]1):[139]N[177]127[167]N[178]N[171]256:AD[178]PC[170]N[170]2:A$[178][196](AD):[139]H[167][141]780
  67. 670 N[178]2:[142]
  68. 680 L[178][183](PC[170]1):M[178][183](PC[170]2):AD[178]256[172]M[170]L:A$[178][196](AD):[139]H[167][141]780
  69. 690 A$[178]" ("[170][201](A$,[195](A$)[171]1)[170]")":N[178]3:[142]
  70. 700 AD[178][183](PC[170]1):A$[178][196](AD):[139]H[167][141]820
  71. 710 A$[178]A$[170]",Y":N[178]2:[142]
  72. 720 A$[178][196](J):[139]H[167][141]820
  73. 730 N[178]1:[142]
  74. 740 I[178]1:K[178]0
  75. 750 [139] LC(I)[178]AD [167] A$[178]S$[170]LB$(I):K[178]1:[142]
  76. 760 I[178]I[170]1:[139] I[177]NL [167] [142]
  77. 770 [137]750
  78. 780 NN[178]4
  79. 790 H$[178]"":A[178][197](A$):[129]I[178]1[164]NN
  80. 800 T[178][181](A[173]16):H$[178][202](DG$,A[171]16[172]T[170]1,1)[170]H$:A[178]T:[130]
  81. 810 A$[178]S$[170]"$"[170]H$:[142]
  82. 820 NN[178]2:[137]790
  83. 830 [160]3
  84. 840 [153]"CONT   F1 - START/RESUME DISASSEMBLY"
  85. 850 [153]"   F3 - SUBROUTINE LABELS: ";:[139]F[167] [153]"ON ":[137]870
  86. 860 [153]"OFF"
  87. 870 [153]"CONT   F5 - HEX/DECIMAL OUTPUT: ";:[139] H [167][153]"HEX    ":[137]890
  88. 880 [153]"DECIMAL"
  89. 890 [153]"CONT   F6 - DISASSEMBLE UNDER ROM: ";:[139] RM [167][153]"YES":[137]910
  90. 900 [153]"NO "
  91. 910 [153]"CONT   F7 - PRINTER OUTPUT: ";:[139]PR[167] [153]"YES":[137]930
  92. 920 [153]"NO "
  93. 930 [153]"CONT   F8 - QUITONONONONONONONONONONONONON"
  94. 940 [161]A$:[139]A$[178]""[167]940
  95. 950 A[178][198](A$):[139]A[178]140[167] [156]:[153]"LOAD":[128]
  96. 960 [139]A[179][177]135[167]990
  97. 970 [139]H[167]H[178]0:[137]840
  98. 980 H[178]1:[137]840
  99. 990 [139]A[179][177]136[167]1020
  100. 1000 [139]PR [167] PR[178]0:[137]840
  101. 1010 PR[178]1:[137]840
  102. 1020 [139]A[179][177]134[167]1050
  103. 1030 [139]F[167]F[178]0:[137]840
  104. 1040 F[178]1:[137]840
  105. 1050 [139]A[179][177]139[167]1080
  106. 1060 [139] RM [167]RM[178]0:[137]840
  107. 1070 RM[178]1:[137]840
  108. 1080 [139]A[179][177]133[167]840
  109. 1090 [139]PR[167][159]3,4,0
  110. 1100 [151]2,RM
  111. 1110 [129]A[178]1[164]12:[153]CL$:[130]
  112. 1120 [153]"ONONONONONONONONONONONON";
  113. 1130 [142]
  114. 1140 :
  115. 1150 [131] BRK,4,ORA,5,,,,ORA,3,ASL,3,
  116. 1160 [131] PHP,4,ORA,1,ASL,4,,,ORA,2
  117. 1170 [131] ASL,2,,BPL,10,ORA,6,,,
  118. 1180 [131] ORA,7,ASL,7,,CLC,4,ORA,9,,,
  119. 1190 [131] ORA,8,ASL,8,,JSR,13,AND,5,,
  120. 1200 [131] BIT,3,AND,3,ROL,3,,PLP,4
  121. 1210 [131] AND,1,ROL,4,,BIT,2,AND,2
  122. 1220 [131] ROL,2,,BMI,10,AND,6,,,
  123. 1230 [131] AND,7,ROL,7,,SEC,4,AND,9,,,
  124. 1240 [131] AND,8,ROL,8,,RTI,4,EOR,5,,,
  125. 1250 [131] EOR,3,LSR,3,,PHA,4,EOR,1
  126. 1260 [131] LSR,4,,JMP,13,EOR,2,LSR,2,
  127. 1270 [131] BVC,10,EOR,6,,,,EOR,7,LSR,7,
  128. 1280 [131] CLI,4,EOR,9,,,,EOR,8
  129. 1290 [131] LSR,8,,RTS,4,ADC,5,,,
  130. 1300 [131] ADC,3,ROR,3,,PLA,4,ADC,1
  131. 1310 [131] ROR,4,,JMP,11,ADC,2,ROR,2,
  132. 1320 [131] BVS,10,ADC,6,,,,ADC,8,ROR,7,
  133. 1330 [131] SEI,4,ADC,9,,,,ADC,7
  134. 1340 [131] ROR,8,,,STA,5,,,STY,3
  135. 1350 [131] STA,3,STX,3,,DEY,4,,TXA,4,
  136. 1360 [131] STY,2,STA,2,STX,2,,BCC,10
  137. 1370 [131] STA,6,,STY,7,,STA,7,STX,12,
  138. 1380 [131] TYA,4,STA,9,TXS,4,,,STA,8,,
  139. 1390 [131] LDY,1,LDA,5,LDX,1,,LDY,3
  140. 1400 [131] LDA,3,LDX,3,,TAY,4,LDA,1
  141. 1410 [131] TAX,4,,LDY,2,LDA,2,LDX,2,
  142. 1420 [131] BCS,10,LDA,6,,,LDY,7,LDA,7
  143. 1430 [131] LDX,12,,CLV,4,LDA,9,TSX,4,
  144. 1440 [131] LDY,8,LDA,8,LDX,9,,CPY,1
  145. 1450 [131] CMP,5,,,CPY,3,CMP,3,DEC,3,
  146. 1460 [131] INY,4,CMP,1,DEX,4,,CPY,2
  147. 1470 [131] CMP,2,DEC,2,,BNE,10,CMP,6,,,
  148. 1480 [131] CMP,7,DEC,7,,CLD,4,CMP,9,,,
  149. 1490 [131] CMP,8,DEC,8,,CPX,1,SBC,5,,
  150. 1500 [131] CPX,3,SBC,3,INC,3,,INX,4
  151. 1510 [131] SBC,1,NOP,4,,CPX,2,SBC,2
  152. 1520 [131] INC,2,,BEQ,10,SBC,6,,,
  153. 1530 [131] SBC,7,INC,7,,SED,4,SBC,9,,,
  154. 1540 [131] SBC,8,INC,8,
  155. 1550 :
  156. 1560 [131] 32,247,183,165,101,133,251
  157. 1570 [131] 165,100,133,252,160,0,165,2,240,7,120,165
  158. 1580 [131] 1,41,252,133,1,177,251,168
  159. 1590 [131] 165,1,9,3,133,1,88,169,0
  160. 1600 [131] 76,145,179
  161. 1610 :
  162. 1620 [143]  LABEL DATA
  163. 1630 :
  164. 1640 [131] CHROUT,65490,GETIN,65508
  165. 1650 [131] SETLFS,65466,SETMSG,65424
  166. 1660 [131] SETNAM,65469,SAVE,65496
  167. 1670 [131] LOAD,65493,OPEN,65472
  168. 1680 [131] CHRIN,65487,CLOSE,65475
  169. 1690 [131] CLALL,65511,CHKIN,65478
  170. 1700 [131] READST,65463,CHKOUT,65481
  171. 1710 [131] CLRCHN,65484,PLOT,65520
  172. 1720 [131] LISTEN,65457,CIOUT,65448
  173. 1730 [131] CINT,65409,SECOND,65427
  174. 1740 [131] SCNKEY,65439,RESTOR,65418
  175. 1750 [131] TALK,65460,IOBASE,65523
  176. 1760 [131] ACPTR,65445,IOINIT,65412
  177. 1770 [131] MEMBOT,65436,MEMTOP,65433
  178. 1780 [131] UNLSN,65454,VECTOR,65421
  179. 1790 [131] UNTLK,65451,SETTIM,65499
  180. 1800 [131] SETTMO,65442,RAMTAS,65415
  181. 1810 [131] RDTIM,65502,UDTIM,65514
  182. 1820 [131] TKSA,65430,STOP,65505
  183. 1830 [131] SCREEN,65517
  184. 1840 :
  185. 1850 [143]  ADD YOUR OWN ADDRESS LABELS
  186. 1860 [143]  IN DATA STATEMENTS AFTER
  187. 1870 [143]  THESE LINES
  188.