> MonARM ::end: Hos%=fx(0,1):(fx(135,0)256)((<&FFFF)&80):<&FFFF:=fx(132,0) (,ctrl%39,data%15,zp%3:X%=ctrl%:Y%=X%256 2.blen%=--&580+&C00*(>&FFFF):buf%=-blen% &FFFFF:P%+blen%:P%=buf% Z menu:Q$="Q"Q$="X":end: dVݤline(addr%):ho(addr%-O%,D%);" ";:!data%=!addr%:data%!4=addr%!4:data%!8=addr%!8 n2io%:addr%<0:B%=07:data%?B%=rm(addr%+B%): xLdmp%:B%=07:ho(data%?B%,2)" ";::B%=07:c(data%?B%);:::=addr%+8 #N%=Dis_Code(M%,addr%-O%,data%) ,Z%=0:B%=0N%-1:ho(data%?B%,2);" ";: 4Z%=1:B%=0N%-12:ho(data%!B%&FFFF,4);" ";: 1Z%=3:B%=0N%-14:ho(data%!B%,N%*2);" ";: *t1%+D%);:B%=0N%-1:c(data%?B%);: -t2%+D%);" ";addr($(X%+4)):(X%?264): =addr%+N% .ݤmenu::Dis_Name(M%)="":M%=cpu:SetScr &top:addr%=line(P%):num%=addr%-P% -addr%=line(addr%):>hgh%-1+8*(wid%<40) Q$=:V%=:Q$="*":osc MQ$=" ":addr%=line(addr%):0,(hgh%>19)2);:P%=P%+num%:num%=line(P%)-P% Q$>"`"Q$<"{":Q$=(Q$-32) @13+8+9+127+"+;-=GPQWSMHJOLTYZNR*0123456789ABCDEFX",Q$) Q$="*":= Q$=13:P%=P%+1:=0 "Q$=127Q$=8:P%=P%-1:=0 ,Q$="+"Q$=";":P%=P%+8:=0 6Q$="-"Q$="=":P%=P%-8:=0 @Q$=9:dmp%=dmp%2:=0 JQ$="W":D%=4+((D%-3)5):= TQ$="H":hex%=hex%:=0 ^Q$="J":Z%=(Z%+1)3:=0 hQ$="M":m:=0 rQ$="O":o:top:=0 |Q$="L":list():=0 Q$="S":mode:= HQ$="T":"Text: "Q$:A%=?(P%+Q$):$(P%)=Q$:?(P%+Q$)=A%:P%=P%+Q$:=0 rQ$="Y":"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"io%:rom:=0 WQ$="G":"Get file: "A$:A$<>"":"LOAD """+A$+""" "+~buf%+"+"+~blen%,os%=32):= XQ$="P":"Put file: "A$:A$<>"":"Length: &"Q$:"SAVE """+A$+""" "+~buf%+"+"+Q$:= 1(Q$>"/"Q$<":")(Q$>"@"Q$<"G"):byte(Q$):=0 ?Q$="Q"Q$="X":"Quit? "Q$:A%=(Q$&DF)=89:Q$="":A%:Q$="Q" =Q$="X"Q$="Q" 9m:"Address: &"A$:A$=uc(A$):A$="":P%=buf%:O%=P%: AA%=("&"+A$):io%:A%<&10000:P%=(P%&FFFF0000)+A%+O%P%=A%+O%  Io:"Address for code address 0000: &"A$:A$=uc(A$):A$="":A$=~buf% %A$,1)="=":O%=P%-("&"+A$,2)): &$A%=P%-O%:O%=("&"+A$):P%=O%+A%: 0list(T%) :G"Start address: &"A$:A$=uc(A$):A$="":addr%=P%addr%=("&"+A$)+O% DN"End address: &"A$:A$=uc(A$):A$="":end%=addr%+&8000end%=("&"+A$)+O% NI"Address for code address 0000: &"A$:A$=uc(A$):A$<>"":O%=("&"+A$) X6"FX3":addr%=line(addr%):addr%>end%:"FX3,16": b6byte(Q$):"Bytes: &";Q$;::A%=:A%>96:A%=A%&DF l+(A%=95A%=8)Q$<>"":127:Q$=Q$,Q$-1) v7((A%>47A%<58)(A%>64A%<71))Q$<30:A%:Q$=Q$+A% ?A%=13:Q$<>""::?P%=("&"+Q$,2)):P%=P%+1:Q$=Q$,3):Q$<2  7rom:"ROM: &"A$:A$=uc(A$):A$="":P%=P%&FFFFFF: .P%=(P%&FFFF)&FF00000065536*("&F"+A$): mode:"Mode: "A$:A$="": &Q%=(A$)&80:io%:fx(133,Q%)<:  22,Q%:  osc:wid%>40:26,31,0,hgh% 2:"*"A$:A$:58:Q$=:13+"GgPp*",Q$):127 Q$<>"*":Q$=13:Q$="*"  ݤaddr(A$):name:hex%:=A$ A%=A$,"&"):A%=0:=A$ ;L%=A%:L%=L%+1:"0123456789ABCDEF",A$,L%,1))=0L%>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%<0L%>43: *C((L%3-(L%>27))3-3*(L%=24)+(L%>24L%<28)-3*(L%=27)-(L%=28)): 4)(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) H Rtop: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: fMSetScr:"FX3,16":3,26:C$=132:B$=135:fx(135,0)256<>7:C$=" ":B$=" " pnt1%=13:wid%=fx(160,10):hgh%=fx(160,9)&FF:wid%>80:D%>4:t1%=(wid%-79)/8*3+13wid%<38:22,&87:SetScr: zt2%=t1%+t1%3:hgh%<20wid%>40:28,wid%-33,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: WW%=33-11*(wid%<40):W%/4-A$/2+(ny%>9),"*");" ";A$;" D"dd$"er ";ny%;" ";W%-,"*") wid%<40:0,hgh%-6);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$"TAB"B$"DUMP/LIST"6; 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"6;C$"SPC"B$"Move past code";:28,0,hgh%-7,wid%,1: "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"'" J: Data width"'" H: Hex/Oct toggle" " TAB: Dump/List"''" 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"'" Z: Set machine"'" S: Screen mode":io%:" R: ROM number" (" Q: Quit";:28,0,hgh%,wid%-35,0: )ݤcpu:Dis_Name(0)<>"":=M%=Dis_CPU #ݤerr:<0:P%=P%2:O%=O%2:=-1 :<>17: -1:" at line "; =-1 end:"FX3": 26:0,hgh%);:*QUIT  1ݤho(A%,N%):hex%:=h0(A%,N%)=o0(A%,N%*3/2) -ݤc(A%):A%=A%127:A%=127A%<32:="."=A% $ݤuc(A$):B$:A$="":="" .5B$=B$+(A$((A$<"@")&DF)):A$=A$,2):A$="":=B$ 8#ݤh0(A%,N%)="0000000"+~A%,N%) B4ݤo0(A%,N%):A$,B%,L%:A%<0:B%=2:A%=A%&7FFFFFFF L;A$=(A%7)+A$:A%=A%8:L%=L%+3:L%>27:=(A%+B%)+A$,N%) V?ݤfx(A%,X%):Y%:Y%=X%256:<&FFFFF:=((&FFF4)&FFFF00)256 `-A%=135:X%=:X%>-1:=X%*256A%=135:=&A00 j(A%=160:X%=10:=@vdu%!28@vdu%!216-1 t'A%=160:X%=9:=@vdu%!36@vdu%!220-1 ~=((&FFF4)&FFFF00)256 7ݤrm(!&F6):Y%:Y%=?&F8+&40:Y%&40:?&F7>&BF:?&F9=0 1!&F6<0:?&F7>&7FY%=&3E:=(&FFB9)&FF=?!&F6 ݤDis_Code(A%,a%,d%) Tș"Debugger_Disassemble",!d%,a%,A%,a%:A%?a%=13:$(X%+4)=$A%,26):!X%=0:X%?3=4:=4 !ݤDis_Name(A%):X%?3=10:="ARM"