10 CLEAR 3000 20 WIDTH "COM0:",255 30 DEFINT A-E,Z 40 DIM A$(255),B$(15),C$(111):DIM A%(255) 50 FORZ=0TO255:READ A$(Z):NEXTZ 60 FORZ=0TO255:READ A%(Z):NEXTZ 99 ' 100 D0$=CHR$(27)+"K0"+CHR$(0)+"" 105 D1$=CHR$(27)+"K"+CHR$(12)+CHR$(0)+STRING$(6,8)+">>"+CHR$(28)+CHR$(28)+CHR$(8)+CHR$(8) 110 D2$=CHR$(27)+"K"+CHR$(12)+CHR$(0)+CHR$(8)+CHR$(8)+CHR$(28)+CHR$(28)+">>"+STRING$(6,8) 115 D3$=CHR$(27)+"K"+CHR$(6)+CHR$(0)+" `` "+CHR$(0) 120 D4$=CHR$(27)+"K"+CHR$(6)+CHR$(0)+CHR$(4)+CHR$(6)+""+CHR$(6)+CHR$(4)+CHR$(0) 125 D5$=CHR$(27)+"K"+CHR$(12)+CHR$(0)+"|DDDDD__NNDD" 130 D6$=CHR$(27)+"K"+CHR$(12)+CHR$(0)+"$.?$$$$$$"+CHR$(252)+"t$" 135 D7$=CHR$(27)+"K"+CHR$(6)+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(24)+CHR$(24)+CHR$(0)+CHR$(0) 140 D8$=CHR$(27)+"K"+CHR$(6)+CHR$(0)+CHR$(28)+CHR$(34)+"*"+CHR$(34)+CHR$(28)+CHR$(0) 145 D9$=CHR$(27)+"K"+CHR$(6)+CHR$(0)+CHR$(28)+"*>*"+CHR$(28)+CHR$(0) 150 E$=CHR$(27)+"K"+CHR$(6)+CHR$(0)+"%RzR%"+CHR$(0) 200 C$(0)="":C$(1)="No Operation":C$(2)="":C$(3)="" 202 C$(4)="0"+D1$+D0$+D0$+D1$+"C":C$(5)="C"+D2$+D0$+D0$+D2$+"0":C$(6)="CCR"+D2$+"A":C$(7)="A"+D2$+"CCR" 204 C$(8)="IX"+D2$+"IX+1":C$(9)="IX"+D2$+"IX-1":C$(10)="V"+D2$+"0":C$(11)="V"+D2$+"1" 206 C$(12)="C"+D2$+"0":C$(13)="C"+D2$+"1":C$(14)="I"+D2$+"0":C$(15)="I"+D2$+"1" 208 C$(16)="A"+D2$+"A-B":C$(17)="A-B":C$(18)="":C$(19)="" 210 C$(20)="":C$(21)="":C$(22)="B"+D2$+"A":C$(23)="A"+D2$+"B" 212 C$(24)="A:B"+D6$+"IX":C$(25)="Decimal Adjust Accumulator A":C$(26)="Sleep":C$(27)="A"+D2$+"A+B" 214 C$(28)="":C$(29)="":C$(30)="":C$(31)="" 216 C$(32)="":C$(33)="":C$(34)="C"+D8$+"Z=0":C$(35)="C"+D8$+"Z=1" 218 C$(36)="C=0":C$(37)="C=1":C$(38)="Z=0":C$(39)="Z=1" 220 C$(40)="V=0":C$(41)="V=1":C$(42)="N=0":C$(43)="N=1" 222 C$(44)="N"+D9$+"V=0":C$(45)="N"+D9$+"V=1":C$(46)="Z"+D8$+"(N"+D9$+"V)=0":C$(47)="Z"+D8$+"(N"+D9$+"V)=1" 224 C$(48)="IX"+D2$+"SP+1":C$(49)="SP"+D2$+"SP+1":C$(50)="SP"+D2$+"SP+1;"+D3$+"A":C$(51)="SP"+D2$+"SP+1;"+D3$+"B" 226 C$(52)="SP"+D2$+"SP-1":C$(53)="SP"+D2$+"IX-1":C$(54)=D4$+"A;SP"+D2$+"SP-1":C$(55)=D4$+"B;SP"+D2$+"SP-1" 228 C$(56)="SP"+D2$+"SP-2;"+D3$+"IX":C$(57)="Return from Subroutine":C$(58)="IX"+D2$+"IX+B":C$(59)="Return from Interrupt" 230 C$(60)=D4$+"IX;SP"+D2$+"SP-2":C$(61)="A:B"+D2$+"A*B":C$(62)="Wait for Interrupt":C$(63)="Software Interrupt" 232 C$(64)="M"+D2$+"00-M":C$(65)="M"+D2$+"IM"+D7$+"M":C$(66)="M"+D2$+"IM"+D8$+"M":C$(67)="M"+D2$+"FF-M" 234 C$(68)="0"+D1$+D0$+D1$+"C":C$(69)="M"+D2$+"IM"+D9$+"M":C$(70)="C"+D1$+D0$+D1$+"C":C$(71)=D5$+D0$+D1$+"C" 236 C$(72)="C"+D2$+D0$+D2$+"0":C$(73)="C"+D2$+D0$+D2$+"C":C$(74)="M"+D2$+"M-1":C$(75)="IM"+D7$+"M" 238 C$(76)="M"+D2$+"M+1":C$(77)="M-00":C$(78)="Jump"+D1$+"address":C$(79)="M"+D2$+"00" 240 C$(80)="A"+D2$+"A-M":C$(81)="A-M":C$(82)="A"+D2$+"A-M-C":C$(83)="A:B"+D2$+"A:B-M:M+1" 242 C$(84)="A"+D2$+"A"+D7$+"M":C$(85)="A"+D7$+"M":C$(86)="A"+D2$+"M":C$(87)="M"+D2$+"A" 244 C$(88)="A"+D2$+"A"+D9$+"M":C$(89)="A"+D2$+"A+M+C":C$(90)="A"+D2$+"A"+D8$+"M":C$(91)="A"+D2$+"A+M" 246 C$(92)="IX-M:M+1":C$(93)="Jump to Subroutine"+D1$+"address":C$(94)="SP"+D2$+"M:M+1":C$(95)="M:M+1"+D2$+"SP" 248 C$(96)="B"+D2$+"B-M":C$(97)="B-M":C$(98)="B"+D2$+"B-M-C":C$(99)="A:B"+D2$+"A:B+M:M+1" 250 C$(100)="B"+D2$+"B"+D7$+"M":C$(101)="B"+D7$+"M":C$(102)="B"+D2$+"M":C$(103)="M"+D2$+"B" 252 C$(104)="B"+D2$+"B"+D9$+"M":C$(105)="B"+D2$+"B+M+C":C$(106)="B"+D2$+"B"+D8$+"M":C$(107)="B"+D2$+"B+M" 254 C$(108)="A:B"+D2$+"M:M+1":C$(109)="M:M+1"+D2$+"A:B":C$(110)="IX"+D2$+"M:M+1":C$(111)="M:M+1"+D2$+"IX" 260 B$(0)="INHER":B$(1)="INHER":B$(2)="REL":B$(3)="INHER" 270 B$(4)="INHER":B$(5)="INHER":B$(6)="INDEX":B$(7)="EXTEND" 280 B$(8)="IMMED":B$(9)="DIRECT":B$(10)="INDEX":B$(11)="EXTEND" 290 B$(12)="IMMED":B$(13)="DIRECT":B$(14)="INDEX":B$(15)="EXTEND" 300 DATA @,NOP,@,@,LSRD,ASLD,TAP,TPA,INX,DEX,CLV,SEV,CLC,SEC,CLI,SEI,SBA,CBA,@,@,@,@,TAB,TBA,XGDX,DAA,SLP,ABA,@,@,@,@ 305 DATA BRA,BRN,BHI,BLS,BCC,BCS,BNE,BEQ,BVC,BVS,BPL,BMI,BGE,BLT,BGT,BLE,TSX,INS,PULA,PULB,DES,TXS,PSHA,PSHB,PULX,RTS,ABX,RTI,PSHX,MUL,WAI,SWI 310 DATA NEGA,@,@,COMA,LSRA,@,RORA,ASRA,ASLA,ROLA,DECA,@,INCA,TSTA,T,CLRA,NEGB,@,@,COMB,LSRB,@,RORB,ASRB,ASLB,ROLB,DECB,@,INCB,TSTB,T,CLRB 315 DATA NEG,AIM,OIM,COM,LSR,EIM,ROR,ASR,ASL,ROL,DEC,TIM,INC,TST,JMP,CLR,NEG,AIM,OIM,COM,LSR,EIM,ROR,ASR,ASL,ROL,DEC,TIM,INC,TST,JMP,CLR 320 DATA SUBA,CMPA,SBCA,SUBD,ANDA,BITA,LDAA,@,EORA,ADCA,ORAA,ADDA,CPX,BSR,LDS,@,SUBA,CMPA,SBCA,SUBD,ANDA,BITA,LDAA,STAA,EORA,ADCA,ORAA,ADDA,CPX,JSR,LDS,STS 325 DATA SUBA,CMPA,SBCA,SUBD,ANDA,BITA,LDAA,STAA,EORA,ADCA,ORAA,ADDA,CPX,JSR,LDS,STS,SUBA,CMPA,SBCA,SUBD,ANDA,BITA,LDAA,STAA,EORA,ADCA,ORAA,ADDA,CPX,JSR,LDS,STS 330 DATA SUBB,CMPB,SBCB,ADDD,ANDB,BITB,LDAB,@,EORB,ADCB,ORAB,ADDB,LDD,@,LDX,@,SUBB,CMPB,SBCB,ADDD,ANDB,BITB,LDAB,STAB,EORB,ADCB,ORAB,ADDB,LDD,STD,LDX,STX 335 DATA SUBB,CMPB,SBCB,ADDD,ANDB,BITB,LDAB,STAB,EORB,ADCB,ORAB,ADDB,LDD,STD,LDX,STX,SUBB,CMPB,SBCB,ADDD,ANDB,BITB,LDAB,STAB,EORB,ADCB,ORAB,ADDB,LDD,STD,LDX,STX 340 DATA 0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0 345 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 350 DATA 1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1 355 DATA 2,3,3,2,2,3,2,2,2,2,2,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 360 DATA 2,2,2,3,2,2,2,0,2,2,2,2,3,2,3,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 365 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 370 DATA 2,2,2,3,2,2,2,0,2,2,2,2,3,0,3,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 375 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 390 ' 391 ' 392 ' 393 ' 394 ' 395 ' 396 ' 397 ' 398 ' 399 ' 400 OPEN"O",#1,"COM0:" 410 PRINT#1,CHR$(27)+"N"+CHR$(5) 420 PRINT#1,CHR$(13) 430 CLS:INPUT" ADDRESS";E:INPUT" ADDRESS";ESTOP 440 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)"; 450 FSTOP$=INPUT$(1):IF FSTOP$<>CHR$(13)THEN430 500 F=PEEK(E) 510 B=F\16:IFF=141THENB=2 520 IFF<16THENF$="0"+HEX$(F)ELSEF$=HEX$(F) 530 IFF<64THENC=F ELSEC=48+16*(F\64)+(F MOD16) 540 PRINT#1,"$";HEX$(E);":";TAB(8);F$; 550 ONA%(F)+1GOSUB600,700,800,900 560 IFE>ESTOP THEN1000 570 GOTO500 600 PRINT#1,TAB(18);E$;E$;E$;" Error: Undefined Op Code ";E$;E$;E$ 610 E=E+1:RETURN 700 PRINT#1,TAB(18);A$(F);TAB(24);B$(B);TAB(32);C$(C) 710 E=E+1:RETURN 800 G=PEEK(E+1):IFG<16THENG$="0"+HEX$(G)ELSEG$=HEX$(G) 810 PRINT#1,TAB(12);G$;TAB(18);A$(F);TAB(24);B$(B); 820 IFB$(B)="REL"THEN850 830 PRINT#1,TAB(32);C$(C) 840 E=E+2:RETURN 850 H=E+CINT(G-256*(G\128)+2) 855 IFH>&H8000 ANDH<&H7FFF THENH$=HEX$(H)ELSEH$="" 860 IFF=141THEN875 865 PRINT#1,TAB(32);"Branch"+D1$+" $"+H$+" if "+C$(C) 870 E=E+2:RETURN 875 PRINT#1,TAB(32)+"Branch to Suroutine"+D1$+" $"+H$ 880 E=E+2:RETURN 900 G=PEEK(E+1):IFG<16THENG$="0"+HEX$(G)ELSEG$=HEX$(G) 910 H=PEEK(E+2):IFH<16THENH$="0"+HEX$(H)ELSEH$=HEX$(H) 920 PRINT#1,TAB(12);G$;H$;TAB(18);A$(F);TAB(24);B$(B);TAB(32);C$(C); 930 IFF=126ORF=189THENPRINT#1," $"+G$+H$ELSEPRINT#1,CHR$(13) 940 E=E+3:RETURN 1000 PRINT#1,CHR$(13):CLOSE#1:CLS 1010 PRINT"CONTINUE?(RETURN)" 1020 PRINT"ABORT?(SPACE BAR)" 1030 FSTOP$=INPUT$(1):IFFSTOP$<>CHR$(32)THEN400 1040 END