10
20 :
30 DEFFNDis_Name(A%)="6809"
40 DEFFNDis_Code(A%,Ptr%,Data%):num%=1
50 X%!0=0:$(X%+4)=FN_diss:IFnum%<1:num%=1:$(X%+4)="EQUB &"+FNh0(Data%?0,2)
60 X%?3=num%:=num%
70 DEFFN_diss:op%=?Data%:num%=1
80 IF(op%AND&CF)=&83:="SUBD "+FNmde2((op%AND&30)DIV16)
90 IF(op%AND&CF)=&C3:="ADDD "+FNmde2((op%AND&30)DIV16)
100 IFop%=&87:num%=0:=""
110 IFop%=&C7:num%=0:=""
120 IF(op%AND&CF)=&87:="ST"+CHR$(65+(op%AND64)DIV64)+" "+FNmde((op%AND&30)DIV16)
130 IF(op%AND&CF)=&8C:="CMPX "+FNmde2((op%AND&30)DIV16)
140 IF(op%AND&CF)=&CC:="LDD "+FNmde2((op%AND&30)DIV16)
150 IFop%=&8D:num%=2:="BSR &"+FNh0(FNjr(Data%?1),4)
160 IF(op%AND&CF)=&8D:="JSR "+FNmde((op%AND&30)DIV16)
170 IFop%=&CD:num%=0:=""
180 IF(op%AND&CF)=&CD:="STD "+FNmde2((op%AND&30)DIV16)
190 IF(op%AND&CF)=&8E:="LDX "+FNmde2((op%AND&30)DIV16)
200 IF(op%AND&CF)=&CE:="LDU "+FNmde2((op%AND&30)DIV16)
210 IFop%=&8F:num%=0:=""
220 IF(op%AND&CF)=&8F:="STX "+FNmde2((op%AND&30)DIV16)
230 IFop%=&CF:num%=0:=""
240 IF(op%AND&CF)=&CF:="STU "+FNmde2((op%AND&30)DIV16)
250 IF(op%AND&80)=&80:=FNalu(op%AND15)+CHR$(65+(op%AND64)DIV64)+" "+LEFT$(" ",(op%AND&8E)=&86)+FNmde((op%AND&30)DIV16)
260 IF(op%AND&E0)=&40:=FNrot(op%AND15)+CHR$(65+(op%AND16)DIV16)
270 IF(op%AND&EF)=&6E:="JMP "+FNmde2((op%AND&30)DIV16)
280 IF(op%AND&E0)=&60:=FNrot(op%AND15)+" "+FNmde((op%AND&30)DIV16)
290 IF(op%AND&F0)=&20:num%=num%+1:="B"+MID$("RARNHILSCCCSNEEQVCVSPLMIGELTGTLE",(op%AND15)*2+1,2)+" &"+FNh0(FNjr(Data%?1),4)
300 IFop%=&0E:="JMP "+FNmde(1)
310 IF(op%AND&F0)=&00:=FNrot(op%AND15)+" "+FNmde(1)
320 IFop%=&10:=FNgrp10
330 IFop%=&11:=FNgrp11
340 IFop%=&12:="NOP"
350 IFop%=&13:="SYNC"
360 IFop%=&19:="DAA"
370 IFop%=&1A:="ORCC "+FNmde(0)
380 IFop%=&1C:="ANDCC "+FNmde(0)
390 IFop%=&1D:="SEX"
400 IF(op%AND&FE)=&1E:num%=num%+1:=MID$("EXGTFR",(op%AND1)*3+1,3)+" "+FNr(Data%?1 DIV16)+","+FNr(Data%?1 AND15)
410 IF(op%AND&FC)=&30:="LEA"+FNreg2(op%AND3)+" "+FNmde(2)
420 IFop%=&34:num%=num%+1:="PSHS "+FNstk(Data%?1)
430 IFop%=&35:num%=num%+1:="PULS "+FNstk(Data%?1)
440 IFop%=&36:num%=num%+1:="PSHU "+FNstk(Data%?1)
450 IFop%=&37:num%=num%+1:="PULS "+FNstk(Data%?1)
460 IFop%=&39:="RTS"
470 IFop%=&3A:="ABX"
480 IFop%=&3B:="RTI"
490 IFop%=&3C:="CWAI"
500 IFop%=&3D:="MUL"
510 IFop%=&3F:="SWI"
520 IFop%=&16:num%=3:="LBRA &"+FNh0(FNljr(256*Data%?1+Data%?2),4)
530 IFop%=&17:num%=3:="LBSR &"+FNh0(FNljr(256*Data%?1+Data%?2),4)
540 IFop%=&3E:="RESET"
550 num%=0:=""
560 DEFFNgrp10:num%=num%+1:op%=Data%?1
570 IF(op%AND&E0)=&20:num%=num%+1:="LB"+MID$("RARNHILSCCCSNEEQVCVSPLMIGELTGTLE",(op%AND15)*2+1,2)+" &"+FNh0(FNljr(256*Data%?1+Data%?2),4)
580 IFop%=&3F:="SWI2"
590 IF(op%AND&CF)=&83:="CMPD "+FNmde2((op%AND&30)DIV16)
600 IF(op%AND&CF)=&8C:="CMPY "+FNmde2((op%AND&30)DIV16)
610 IF(op%AND&CF)=&8E:="LDY "+FNmde2((op%AND&30)DIV16)
620 IFop%=&8F;num%=0:=""
630 IF(op%AND&CF)=&8F:="STY "+FNmde2((op%AND&30)DIV16)
640 IF(op%AND&CF)=&CE:="LDS "+FNmde2((op%AND&30)DIV16)
650 IFop%=&CF:num%=0:=""
660 IF(op%AND&CF)=&CF:="STS "+FNmde2((op%AND&30)DIV16)
670 num%=0:=""
680 DEFFNgrp11:num%=num%+1:op%=Data%?1
690 IFop%=&3F:="SWI3"
700 IF(op%AND&CF)=&83:="CMPU "+FNmde2((op%AND&30)DIV16)
710 IF(op%AND&CF)=&8C:="CMPS "+FNmde2((op%AND&30)DIV16)
720 num%=0:=""
730 DEFFNalu(A%)=MID$("SUBCMPSBCxxxANDBITLD ST EORADCOR ADD",A%*3+1,3+(A%=6 OR A%=7 OR A%=10))
740 DEFFNrot(A%):IFA%=1ORA%=2ORA%=5ORA%=11ORA%=14:num%=-9:=""
750 =MID$("NEGxxxxxxCOMLSRxxxRORASRASLROLDECxxxINCTSTxxxCLR",A%*3+1,3)
760 DEFFNmde2(A%):IFA%=0:num%=num%+2:="#&"+FNh0(Data%?(num%-2),2)+FNh0(Data%?(num%-1),2)
770 DEFFNmde(A%):IFA%=0:num%=num%+1:="#&"+FNh0(Data%?(num%-1),2)
780 IFA%=1:num%=num%+1:="&"+FNh0(Data%?(num%-1),2)
790 IFA%=2:num%=num%+1:=FNidx(Data%?(num%-1))
800 IFA%=3:num%=num%+2:="&"+FNh0(Data%?(num%-2),2)+FNh0(Data%?(num%-1),2)
810 DEFFNidx(A%):R$=FNreg1((A%AND&60)DIV32):A%=A%AND&9F
820 IFA%<16:=STR$(A%AND15)+","+R$
830 IFA%<32:=STR$((A%AND15)-16)+","+R$
840 O$="":C$="":IF(A%AND16):O$="[":C$="]"
850 A%=A%AND15
860 IFA%=0:IFO$<>"":num%=0:=""
870 IFA%=0:=O$+R$+"+"+C$
880 IFA%=1:=O$+R$+"++"+C$
890 IFA%=2:IFO$<>"":num%=0:=""
900 IFA%=2:=O$+"-"+R$+C$
910 IFA%=3:=O$+"--"+R$+C$
920 IFA%=4:=O$+R$+C$
930 IFA%=5:=O$+"B,"+R$+C$
940 IFA%=6:=O$+"A,"+R$+C$
950 IFA%=7:num%=0:""
960 IFA%=8:num%=num%+1:=O$+"&"+FNh0(Data%?(num%-1),2)+","+R$+C$
970 IFA%=9:num%=num%+2:=O$+"&"+FNh0(Data%?(num%-2),2)+FNh0(Data%?(num%-1),2)+","+R$+C$
980 IFA%=10:num%=0:=""
990 IFA%=11:=O$+"D,"+R$+C$
1000 IFA%=12:num%=num%+1:=O$+"&"+FNh0(Data%?(num%-1),2)+",PC"+C$
1010 IFA%=13:num%=num%+2:=O$+"&"+FNh0(Data%?(num%-2),2)+FNh0(Data%?(num%-1),2)+",PC"+C$
1020 IFA%=14:num%=0:=""
1030 IFA%=14:IFO$="":num%=0:=""
1040 IFA%=15:num%=num%+2:=O$+"&"+FNh0(Data%?(num%-2),2)+FNh0(Data%?(num%-1),2)+C$
1050 =""
1060 DEFFNreg1(A%)=MID$("XYUS",A%+1,1)
1070 DEFFNreg2(A%)=MID$("XYSU",A%+1,1)
1080 DEFFNr(A%)=MID$("D X Y U S PC????A B CCDP????????",A%*2+1,1-(A%=5 OR A%>9))
1090 DEFFNjr(A%):IFA%<128:=Ptr%+2+A% ELSE =Ptr%+2-256+A%
1100 DEFFNljr(A%):IFA%<32768:=Ptr%+3+A% ELSE =Ptr%+3-65536+A%
1110 DEFFNstk(A%):A$=""
1120 IF(A%AND1):A$="CC"
1130 IF(A%AND2):A$=A$+",A"
1140 IF(A%AND4):A$=A$+",B"
1150 IF(A%AND8):A$=A$+",DP"
1160 IF(A%AND16):A$=A$+",X"
1170 IF(A%AND32):A$=A$+",Y"
1180 IF(A%AND64):A$=A$+",S/U"
1190 IF(A%AND128):A$=A$+",PC"
1200 IFLEFT$(A$,1)=",":A$=MID$(A$,2)
1210 =A$