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