> Mon09 ::end: Aos%=fx(0,1):mode: ctrl%31,data%15,zp%3:X%=ctrl%:Y%=X%256 (5blen%=--&480+&C00*(>&8000):buf%=-blen%:=buf% 2hgh%-1+8*(wid%<40) ,Q$=:V%=:Q$>"`" Q$<"{":Q$=(Q$-32) OQ$=" ":addr%=line(addr%):0,2 (hgh%>19));:P%=P%+num%:num%=line(P%)-P% =13+9+127+"+;-=GPQWSMHJOLTYZNR*0123456789ABCDEFX",Q$) Q$=13:P%=P%+1:=0 Q$=127:P%=P%-1:=0 Q$="+"Q$=";":P%=P%+8:=0 Q$="-"Q$="=":P%=P%-8:=0 Q$="Q":dmp%=dmp%2:=0 "Q$="W":D%=4+((D%-3)5):=0 ,Q$="H":hex%=hex%:=0 6Q$="J":Z%=(Z%+1)3:=0 @OQ$="M":"Address: &"A$:A$="":P%=buf%:O%=P%:=0 Q$="M":P%=("&"+A$)+O%:=0 JQ$="O":o:top:=0 TQ$="L":list():=0 ^Q$="S" os%:mode:=0 hLQ$="T":B$;:"Text: "Q$:A%=?(P%+Q$):$(P%)=Q$:?(P%+Q$)=A%:P%=P%+Q$:=0 rxQ$="Y":B$;:"Message: "Q$:A%=?(P%+Q$):$P%=Q$:?(P%+Q$)=A%:?(P%-1+Q$)=&80 ?(P%-1+Q$):?(P%+Q$)=A%:P%=P%+Q$:=0 |Q$="Z":M%=cpu:SetScr:=0 Q$="N":E%=(E%+1)3:=0 Q$="R" os%:rom:=0 Q$="*":osc::SetScr:=0 RQ$="G":"Get file: "A$:A$<>"":"LOAD "+A$+" "+~buf%+"+"+~blen%,os%=32):=0 SQ$="P":"Put file: "A$:A$<>"":"Length: &"Q$:"SAVE "+A$+" "+~buf%+"+"+Q$:=0 5(Q$>"/" Q$<":")(Q$>"@" Q$<"G"):byte(Q$):=0  =Q$="X" >o:"Address for code address 0000: &"A$:A$="":A$=~buf% %A$,1)="=":O%=P%-("&"+A$,2)): $A%=P%-O%:O%=("&"+A$):P%=O%+A%: list(T%) >"Start address: &"A$:A$="":addr%=P% addr%=("&"+A$)+O% C"End address: &"A$:A$="":end%=addr%+&8000 end%=("&"+A$)+O% >"Address for code address 0000: &"A$:A$<>"":O%=("&"+A$) 6"FX3":addr%=line(addr%):addr%>end%:"FX3,16": byte(Q$):"Bytes: &";Q$; &:A%=:A%>96:A%=A%&DF 0'A%=95 Q$<>"":127:Q$=Q$, Q$-1) :@((A%>47 A%<58) (A%>64 A%<71)) Q$<30:A%:Q$=Q$+A% D?A%=13:Q$<>""::?P%=("&"+Q$,2)):P%=P%+1:Q$=Q$,3):Q$<2 N X,rom:"ROM: &"A$:A$="":P%=P%&FFFFFF: b0P%=(P%&FFFF)&FF000000 65536*("&F"+A$): lmode:"Mode: "A$:A$="": v:Q%=(A$)&80:os%<6:fx(130,0)=&FFFF:fx(133,Q%)<: +22,Q%:SetScr:wid%<39:22,&87:SetScr   osc:wid%>40:26,31,0,hgh% -:"*"A$: A$: A$="":hgh%<20::SetScr  ݤaddr(A$):name:hex%:=A$ A%=A$,"&"):A%=0:=A$ =L%=A%:L%=L%+1:"0123456789ABCDEF",A$,L%,1))=0 L%>A$ >=A$,A%)+"o"+o0((A$,A%,L%-A%+1)),(L%-A%-1)*3/2)+A$,L%) *name:E%=0: A%=A$,"&FF"):A%=0: )L%=(A$,A%,5))-&FFCE:L%<0 L%>43: E((L%3-(L%>27))3-3*(L%=24)+(L%>24 L%<28)-3*(L%=27)-(L%=28)): )(E%2):A$=A$+" :\ ":(E%1):A%=A$+1 A$=A$,A%-1)+"OS"+"FINDGBPBBPUTBGETARGSFILERDCHASCINEWLWRCRWRCHWORDBYTE_CLI",(L%3)*4+1,4)+A$,A%+5):E%=2:A$=A$+"&"+~(L%+&FFCE)   top:hgh%>20:30:"Memory: &";h0(P%-O%,D%)(19-);"Origin: &";h0(O%,D%+1);(39-)'"Buffer: &"~buf%;(19-)"Buffer size: &"~blen%'(39):  R28,47,hgh%,wid%,0:9,2);h0(P%-O%,D%+1);9,3);h0(O%,D%+1):28,0,hgh%,45,0: *SetScr:"FX3,16":3,26:C$=132:B$=135:wid%=79:hgh%=31:!X%=0:A$=Dis_Name(M%):A%=X%?3:D%=(A%3)*2+4:Z%=(A%12)4:hex%=(A%16)=0 4[os%<32:wid%=byte(160,10,0)-byte(160,8,0)&FF:hgh%=byte(160,9,0)-byte(160,11,0)&FF >hgh%<20 wid%>40:28,47,hgh%,wid%,0:hgh%<20:"** "A$" D"dd$"er **"''"Memory: &";h0(P%-O%,D%+1)'"Origin: &";h0(O%,D%+1)'"Buffer addr: &";~buf%'"Buffer size: &";~blen%:28,0,hgh%,45,0: HwW%=wid%+46*(wid%>40):W%/4-A$/2+(ny%>9)-(W%<40),"*");" ";A$;" D"dd$"er ";ny%;" ";W%-,"*"):wid%<40:0,hgh%-6); Rwid%<40:C$"RETURN"B$"forward 1"4;C$"+"B$"forward 8"7;C$"DELETE"B$"back 1"7;C$"-"B$"back 8"'C$"L"B$"List d"dd$"y "C$"Q"B$"DUMP/LIST"7; \wid%<40:C$"M"B$"Set Memory address"C$"O"B$"Set code origin"'C$"T"B$"Enter text"8;C$"Y"B$"Enter message ";C$"Z"B$"Set machine"4;C$"SPACE"B$"Move past code";:28,0,hgh%-7,wid%,1: f"RETURN forward 1 + forward 8"'"DELETE backward 1 - backward 8"'"SPACE move past code"''"M: Set memory address"'"O: Set code origin"'"N: Display named labels"'"W: Address width"'"Q: Dump/List"' p"0-9, A-F: Enter bytes"'"T: Enter text"'"Y: Enter message"'"L: List d"dd$"y"'"G: Get to buffer"'"P: Put from buffer":os%:"Z: Set machine" z0"S: Screen mode"'"R: Rom number"'"X: Exit"; 28,0,hgh%,45,0  ݤcpu:Dis_Name(0)<>"":=M% !:(7)"Microprocessor Menu"' : A%,A$: ,;A%;":";4+( 20)*20);A$;20 (<20)); 5 A%,A$:A%=0::'"Enter CPU number: "cpu%:cpu% @A%=Dis_Name(cpu%)="":A%:"No d"dd$"y routine for this CPU" A%::=cpu% F 2,6502,8,8008,9,6809,11,PDP11,12,6512,18,80186,28,80286,30,OGGIN = 32,32016,38,80386,44,ARM,48,80486,58,80586,65,6502/6512 9 68,68x00 Series,80,Z80,85,8080/8085,86,80x86 Series + 89,INS8900,94,9440 series,99,9900,0,* (ݤerr:<0:P%=P%2:O%=O%2:=(os%>0) :<>17:  (os%>0):" at line "; $ =(os%>0) .end:"FX3": 826:0,hgh%);:*QUIT B L-addr:os%=32:P%< P%>+blen%:P%=buf% V `9ݤmode:os%=6:>&7FFF:= =(byte(135,0,0)256)&80 j3ݤho(A%,N%):hex%:=h0(A%,N%) =o0(A%,N%*1.5) t1ݤc(A%):A%=A%127:A%=127 A%<32:="." =A% ~#ݤh0(A%,N%)="0000000"+~A%,N%) ݤo0(A%,N%):A%=A%&FFFF:="00000"+(48+((A%32768)7))+(48+((A%4096)7))+(48+((A%512)7))+(48+((A%64)7))+(48+((A%8)7))+(48+(A%7)),N%) )ݤbyte(A%,X%,Y%)=((&FFF4)&FF00)256 6ݤfx(A%,X%): Y%:Y%=X%256:=((&FFF4)&FFFF00)256 <ݤrm(!&F6): Y%:Y%=?&F8 &F0:?&F8<&80:?&F7>&BF:?&F9=0 4!&F6<0:?&F7>&7F Y%=&E:=(&FFB9)&FF =?!&F6 ݤDis_Name(A%)="6809" $ݤDis_Code(A%,Ptr%,Data%):num%=1 HX%!0=0:$(X%+4)=_diss:num%<1:num%=1:$(X%+4)="EQUB &"+h0(Data%?0,2) X%?3=num%:=num% ݤ_diss:op%=?Data%:num%=1 /(op%&CF)=&83:="SUBD "+mde2((op%&30)16) /(op%&CF)=&C3:="ADDD "+mde2((op%&30)16) op%=&87:num%=0:=""  op%=&C7:num%=0:="" B(op%&CF)=&87:="ST"+(65+(op%64)64)+" "+mde((op%&30)16) /(op%&CF)=&8C:="CMPX "+mde2((op%&30)16) (/(op%&CF)=&CC:="LDD "+mde2((op%&30)16) 21op%=&8D:num%=2:="BSR &"+h0(jr(Data%?1),4) <.(op%&CF)=&8D:="JSR "+mde((op%&30)16) Fop%=&CD:num%=0:="" P/(op%&CF)=&CD:="STD "+mde2((op%&30)16) Z/(op%&CF)=&8E:="LDX "+mde2((op%&30)16) d/(op%&CF)=&CE:="LDU "+mde2((op%&30)16) nop%=&8F:num%=0:="" x/(op%&CF)=&8F:="STX "+mde2((op%&30)16) op%=&CF:num%=0:="" /(op%&CF)=&CF:="STU "+mde2((op%&30)16) ](op%&80)=&80:=alu(op%15)+(65+(op%64)64)+" "+" ",(op%&8E)=&86)+mde((op%&30)16) 2(op%&E0)=&40:=rot(op%15)+(65+(op%16)16) /(op%&EF)=&6E:="JMP "+mde2((op%&30)16) 8(op%&E0)=&60:=rot(op%15)+" "+mde((op%&30)16) q(op%&E0)=&20:num%=num%+1:="B"+"RARNHILSCCCSNEEQVCVSPLMIGELTGTLE",(op%15)*2+1,2)+" &"+h0(jr(Data%?1),4) op%=&0E:="JMP "+mde(1) -(op%&F0)=&00:=rot(op%15)+" "+mde(1) op%=&10:=grp10 op%=&11:=grp11 op%=&12:="NOP" op%=&13:="SYNC" op%=&19:="DAA" op%=&1A:="ORCC "+mde(0) op%=&1C:="ANDCC "+mde(0) "op%=&1D:="SEX" ,a(op%&FE)=&1E:num%=num%+1:="EXGTFR",(op%1)*3+1,3)+" "+r(Data%?1 16)+","+r(Data%?1 15) 61(op%&FC)=&30:="LEA"+reg(op%3)+" "+mde(2) @/op%=&34:num%=num%+1:="PSHS "+stk(Data%?1) J/op%=&35:num%=num%+1:="PULS "+stk(Data%?1) T/op%=&36:num%=num%+1:="PSHU "+stk(Data%?1) ^/op%=&37:num%=num%+1:="PULS "+stk(Data%?1) hop%=&39:="RTS" rop%=&3A:="ABX" |op%=&3B:="RTI" op%=&3C:="CWAI" op%=&3D:="MUL" op%=&3F:="SWI" >op%=&16:num%=3:="LBRA &"+h0(ljr(256*Data%?1+Data%?2),4) >op%=&17:num%=3:="LBSR &"+h0(ljr(256*Data%?1+Data%?2),4) op%=&3E:="RESET" num%=0:="" #ݤgrp10:num%=num%+1:op%=Data%?1 ~(op%&E0)=&20:num%=num%+1:="LB"+"RARNHILSCCCSNEEQVCVSPLMIGELTGTLE",(op%15)*2+1,2)+" &"+h0(ljr(256*Data%?1+Data%?2),4) op%=&3F:="SWI2" /(op%&CF)=&83:="CMPD "+mde2((op%&30)16) /(op%&CF)=&8C:="CMPY "+mde2((op%&30)16) /(op%&CF)=&8E:="LDY "+mde2((op%&30)16) op%=&8F;num%=0:="" /(op%&CF)=&8F:="STY "+mde2((op%&30)16) /(op%&CF)=&CE:="LDS "+mde2((op%&30)16) &op%=&CF:num%=0:="" 0/(op%&CF)=&CF:="STS "+mde2((op%&30)16) :num%=0:="" D#ݤgrp11:num%=num%+1:op%=Data%?1 Nop%=&3F:="SWI3" X/(op%&CF)=&83:="CMPU "+mde2((op%&30)16) b/(op%&CF)=&8C:="CMPS "+mde2((op%&30)16) lnum%=0:="" vMݤalu(A%)="SUBCMPSBCxxxANDBITLD ST EORADCOR ADD",A%*3+1,3+(A%=6 A%=7)) 5ݤrot(A%):A%=1A%=2A%=5A%=11A%=14:num%=-9:="" B="NEGxxxxxxCOMLSRxxxRORASRASLROLDECxxxINCTSTxxxCLR",A%*3+1,3) Dݤmde2(A%):A%=0:num%=num%+2:="#&"+h0(Data%?1,2)+h0(Data%?2,2) 4ݤmde(A%):A%=0:num%=num%+1:="#&"+h0(Data%?1,2) )A%=1:num%=num%+1:="&"+h0(Data%?1,2) $A%=2:num%=num%+1:=idx(Data%?1) 8A%=3:num%=num%+2:="&"+h0(Data%?1,2)+h0(Data%?2,2) ,ݤidx(A%):R$=reg((A%&60)32):A%=A%&9F A%<16:=(A%15)+","+R$  A%<32:=((A%15)-16)+","+R$ &O$="":C$="":(A%16):O$="[":C$="]"  A%=A%15 A%=0:O$<>"":num%=0:="" A%=0:=O$+R$+"+"+C$  A%=1:=O$+R$+"++"+C$ A%=2:O$<>"":num%=0:=""  A%=2:=O$+"-"+R$+C$ *A%=3:=O$+"--"+R$+C$ 4A%=4:=O$+R$+C$ >A%=5:=O$+"B,"+R$+C$ HA%=6:=O$+"A,"+R$+C$ RA%=7:num%=0:"" \6A%=8:num%=num%+1:=O$+"&"+h0(Data%?2,2)+","+R$+C$ fEA%=9:num%=num%+2:=O$+"&"+h0(Data%?2,2)+h0(Data%?3,2)+","+R$+C$ pA%=10:num%=0:="" zA%=11:=O$+"D,"+R$+C$ 6A%=12:num%=num%+1:=O$+"&"+h0(Data%?2,2)+",PC"+C$ EA%=13:num%=num%+2:=O$+"&"+h0(Data%?2,2)+h0(Data%?3,2)+",PC"+C$ A%=14:num%=0:="" A%=14:O$="":num%=0:="" ?A%=15:num%=num%+2:=O$+"&"+h0(Data%?2,2)+h0(Data%?3,2)+C$ ="" ݤreg(A%)="XYUS",A%+1,1) Gݤr(A%)="D X Y U S PC????A B CCDP????????",A%*2+1,1-(A%=5 A%>9)) 0ݤjr(A%):A%<128:=Ptr%+2+A% =Ptr%+2-256+A% 5ݤljr(A%):A%<32768:=Ptr%+2+A% =Ptr%+3-65536+A% ݤstk(A%):A$="" (A%1):A$="CC" (A%2):A$=A$+",A" (A%4):A$=A$+",B" (A%8):A$=A$+",DP" (A%16):A$=A$+",X" $(A%32):A$=A$+",Y" .(A%64):A$=A$+",S/U" 8(A%128):A$=A$+",PC" BA$,1):A$=A$,2) L=A$