1 CLS:PRINT@92,CHR$(27);"p";" M O N I T O R ";CHR$(27)"q":PRINT@178,"by...":PRINT@254,"Tom Bunkley":FORX=1TO1000:NEXTX 2 CLEAR2000:DEFINTX-Z:DEFSNGM-W:DEFSTRA-L:CL=SPACE$(39):HD="ADRS MEMORY CONTENTS ASCII" 3 ND=0:H="0000" 4 LB=" "+CHR$(27)+CHR$(112)+"[Hex]"+CHR$(27)+CHR$(113)+" "+CHR$(27)+CHR$(113)+"[Decimal]"+CHR$(27)+CHR$(113)+" [Page] [Edit] [Menu]" 10 GOSUB999 15 LINE(0,55)-(239,55) 20 K=INKEY$:IFK=""THEN20ELSEGOSUB1000 25 IFK="H"THEN100ELSEIFK="D"THEN200ELSEIFK="P"THEN300ELSEIFK="M"THEN400ELSEIFK="E"THEN700ELSE20 100 XY=0:PRINT@280,CL;:PRINT@293,"Hex :";:LINEINPUTK:PRINT@240,CL:IFK=""THENGOTO500ELSEGOSUB1000:N$=K:Z=1:GOSUB2000:H=N$:GOTO500 200 XY=1:PRINT@280,CL;:PRINT@291,"Decimal :";:LINEINPUTK:PRINT@240,CL:IFK=""THENGOTO600ELSEND=VAL(K):IFND>65535THEN10ELSEN=ND:GOSUB3000:H=N$:GOTO600 300 IFXY=0THENND=ND+48:IFND>65535THEN20ELSEN=ND:GOSUB3000:H=N$:GOTO500 305 ND=ND+30:IFND>65535THEN20ELSEGOTO600 399 END 400 MENU 500 GOSUB999:PRINT@40,"";:FORT=NDTOND+40STEP8 505 N=T:GOSUB3000:B=N$:AC="":B=B+"> ":FORY=0TO7:IFT+Y>65535THENY=8:T=ND+41:GOTO510ELSEMC=PEEK(T+Y):N=MC:GOSUB3000:N$=RIGHT$(N$,2):GOSUB4000:B=B+N$+" ":AC=AC+CHR$(MC) 510 NEXTY:PRINTB;TAB(31);AC:NEXTT:GOTO15 600 GOSUB999:PRINT@40,"";:FORT=NDTOND+25STEP5 605 N=T:GOSUB5000:B=N$:AC="":B=B+" > ":FORY=0TO4:IFT+Y>65535THENY=5:T=ND+26:GOTO610ELSEMC=PEEK(T+Y):N=MC:GOSUB6000:GOSUB4000:B=B+N$+" ":AC=AC+CHR$(MC) 610 NEXTY:PRINTB;TAB(33);AC:NEXTT:GOTO15 700 PRINT@280,CL;:IFXYTHEN800 705 PRINT@285,"Starting location in Hex:";:LINEINPUTK:IFK=""THEN500ELSEGOSUB1000:N$=K:Z=1:GOSUB2000:H=N$ 708 SL=ND:A=H:P=ND:CLS 710 K="":PRINT"Edit:";TAB(4);H;"_";:MC=PEEK(P):N=MC:GOSUB3000:N$=RIGHT$(N$,2):PRINTN$;"_";:LINEINPUTK:IFK=""THENND=SL:H=A:GOTO500ELSEGOSUB1000:N$=K:Z=1:GOSUB2000 720 POKEP,ND:P=P+1:N=P:GOSUB3000:H=N$:GOTO710 800 PRINT@280,CL; 805 PRINT@282,"Starting location in Decimal:";:LINEINPUTK:IFK=""THENGOTO600ELSEND=VAL(K):IFND>65535THEN700ELSEN=ND:GOSUB3000:H=N$ 808 SL=ND:A=H:P=ND:CLS 810 K="":PRINT"Edit:";TAB(4);P;"_";:MC=PEEK(P):PRINTMC;"_ ";:LINEINPUTK:IFK=""THENND=SL:H=A:GOTO600ELSEND=VAL(K):IFND>255THEN810 820 POKEP,ND:P=P+1:GOTO810 999 CLS:GOSUB7000:PRINT@0,HD:LINE(0,7)-(239,7):PRINT@280,LB;:RETURN 1000 FORX=1TOLEN(K):Z=ASC(MID$(K,X,1)):IFZ>96ANDZ<123THENZ=Z-32 1005 MID$(K,X,1)=CHR$(Z):NEXT:RETURN 2000 ND=0:N$=RIGHT$("000"+N$,4):FORX=ZTO4:ND=ND+INSTR("123456789ABCDEF",MID$(N$,X,1))*16^(4-X):NEXTX:RETURN 3000 N$="":FORX=1TO4:N1=INT(N/(16^(4-X))):K=MID$("0123456789ABCDEF",N1+1,1):N=N-N1*(16^(4-X)):N$=N$+K:NEXTX:RETURN 4000 IFMC<33ORMC>126THENMC=46:RETURNELSERETURN 5000 N$=STR$(T):N$=RIGHT$(N$,LEN(N$)-1):N$=RIGHT$("0000"+N$,5):RETURN 6000 N$=STR$(MC):N$=RIGHT$(N$,LEN(N$)-1):N$=RIGHT$("00"+N$,3):RETURN 7000 Q=VARPTR(LB):R=PEEK(Q+1)+256*PEEK(Q+2):IFXY=0THENPOKER+3,112:POKER+13,113ELSEPOKER+3,113:POKER+13,112 7010 RETURN