5 MEMSET &H2A40
10 CLEAR 200,256
20 WIDTH 20,20
30 DEFINT I-O,Y,Z
40 DIMA$(256):DIMA%(256)
50 POKE&H11E,&H0A:POKE&H11F,&H40
55 FORI=&HA40 TO&HA75:READJ$
60 J=VAL("&H"+J$):POKEI,J:NEXT
65 TITLE""
70 FORO=0TO255:READA$(O):NEXTO
80 FORO=0TO255:READA%(O):NEXTO
90 A$(256)="":A%(256)=0
100 DATA 56,25,2F,25,56,0
110 DATA 3C,A,3E,0,2C,2A,32,0,2C,2A,32,0,3E,2A,22,0,3E,4,3E,0,3E,2A,34,0
120 DATA 3E,20,20,0,3E,2A,22,0,3E,A,2,0,3E,22,3E,0,1E,20,3E,0,3E,12,2C,0
200 DATA ,NOP,,,LSRD,ASLD,TAP,TPA,INX,DEX,CLV,SEV,CLC,SEC,CLI,SEI
205 DATA SBA,CBA,,,,,TAB,TBA,XGDX,DAA,SLP,ABA,,,,
210 DATA BRA&,BRN&,BHI&,BLS&,BCC&,BCS&,BNE&,BEQ&,BVC&,BVS&,BPL&,BMI&,BGE&,BLT&,BGT&,BLE&
215 DATA TSX,INS,PULA,PULB,DES,TXS,PSHA,PSHB,PULX,RTS,ABX,RTI,PSHX,MUL,WAI,SWI
220 DATA NEGA,,,COMA,LSRA,,RORA,ASRA,ASLA,ROLA,DECA,,INCA,TSTA,,CLRA
225 DATA NEGB,,,COMB,LSRB,,RORB,ASRB,ASLB,ROLB,DECB,,INCB,TSTB,,CLRB
230 DATA NEG%,AIM%,OIM%,COM%,LSR%,EIM%,ROR%,ASR%,ASL%,ROL%,DEC%,TIM%,INC%,TST%,JMP%,CLR%
235 DATA NEG$,AIM!,OIM!,COM$,LSR$,EIM!,ROR$,ASR$,ASL$,ROL$,DEC$,TIM!,INC$,TST$,JMP$,CLR$
240 DATA SUBA#,CMPA#,SBCA#,SUBD#,ANDA#,BITA#,LDAA#,,EORA#,ADCA#,ORAA#,ADDA#,CPX#,BSR&,LDS#,
245 DATA SUBA!,CMPA!,SBCA!,SUBD!,ANDA!,BITA!,LDAA!,STAA!,EORA!,ADCA!,ORAA!,ADDA!,CPX!,JSR!,LDS!,STS!
250 DATA SUBA%,CMPA%,SBCA%,SUBD%,ANDA%,BITA%,LDAA%,STAA%,EORA%,ADCA%,ORAA%,ADDA%,CPX%,JSR%,LDS%,STS%
255 DATA SUBA$,CMPA$,SBCA$,SUBD$,ANDA$,BITA$,LDAA$,STAA$,EORA$,ADCA$,ORAA$,ADDA$,CPX$,JSR$,LDS$,STS$
260 DATA SUBB#,CMPB#,SBCB#,ADDD#,ANDB#,BITB#,LDAB#,,EORB#,ADCB#,ORAB#,ADDB#,LDD#,,LDX#,
265 DATA SUBB!,CMPB!,SBCB!,ADDD!,ANDB!,BITB!,LDAB!,STAB!,EORB!,ADCB!,ORAB!,ADDB!,LDD!,STD!,LDX!,STX!
270 DATA SUBB%,CMPB%,SBCB%,ADDD%,ANDB%,BITB%,LDAB%,STAB%,EORB%,ADCB%,ORAB%,ADDB%,LDD%,STD%,LDX%,STX%
275 DATA SUBB$,CMPB$,SBCB$,ADDD$,ANDB$,BITB$,LDAB$,STAB$,EORB$,ADCB$,ORAB$,ADDB$,LDD$,STD$,LDX$,STX$
300 DATA 0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1
305 DATA 1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0
310 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
315 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
320 DATA 1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1
325 DATA 1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1
330 DATA 2,3,3,2,2,3,2,2,2,2,2,3,2,2,2,2
335 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
340 DATA 2,2,2,3,2,2,2,0,2,2,2,2,3,2,3,0
345 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
350 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
355 DATA 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,0,3,0
365 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
370 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
375 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
400 INPUT"ORG";Y:Y=Y AND&H0FFF OR&H1000:I=Y
405 LOCATE0,19,0:PRINTHEX$(I);
410 LOCATE6,19,0:PRINTA$(PEEK(I));
415 LOCATE6,19,0:LINEINPUTB$
420 IFB$=""THEN475ELSEIFASC(B$)<64THEN460
425 FORJ=0TO255
430 IFB$=A$(J)THEN450
435 NEXTJ
450 ONA%(J)GOSUB500,550,600
455 GOTO405
460 K=(ASC(B$)-32)MOD16+1
465 ONK GOSUB1100,650,700,750,800,850,900,950,1000,1050,1200,1200,1250,1250,1250,1150
470 GOTO405
475 I=I+A%(PEEK(I))AND&H0FFF OR&H1000
480 GOTO405
500 POKEI,J:I=(I+1)AND&H0FFF OR&H1000
505 RETURN
550 POKEI,J:I=(I+1)AND&H0FFF OR&H1000
555 LOCATE12,18,0:PRINTSTRING$(2,224);
560 LOCATE12,18,1:INPUT"",C$
565 C$=LEFT$(C$,2):L=VAL("&H"+C$)
570 IFRIGHT$(B$,1)="&"THENL=(L-I-1)AND&HFF
575 C$=RIGHT$("00"+HEX$(L),2)
580 LOCATE12,18,0:PRINTC$+CHR$(26)
585 IFRIGHT$(B$,1)="&"THENLOCATE16,18,0:PRINTHEX$(I+L-256*(L\128)+1);
590 POKEI,L:I=(I+1)AND&H0FFF OR&H1000
595 RETURN
600 POKEI,J:I=(I+1)AND&H0FFF OR&H1000
605 LOCATE12,18,0:PRINTSTRING$(4,224)
610 LOCATE12,18,1:INPUT"",C$
615 C$=LEFT$(C$,4):L=VAL("&H"+C$)
620 C$=RIGHT$("0000"+HEX$(L),4)
625 LOCATE12,18,0:PRINTC$+CHR$(26)
630 POKEI,(L AND&HFF00)\256AND&HFF:I=(I+1)AND&H0FFF OR&H1000
635 POKEI,L AND&HFF:I=(I+1)AND&H0FFF OR&H1000
640 RETURN
650 I=I-A%(J)AND&H0FFF OR&H1000
655 RETURN
700 CLS:INPUT" ORG";M
705 IFM=0THENY=Y ELSEY=M
710 Y=Y AND&H0FFF OR&H1000
715 INPUT" ORG";N
720 IFN=0THENI=Y ELSEI=N
725 I=I AND&H0FFF OR&H1000
730 RETURN
750 CLS:INPUT" INS. ADRS";M:IFM=0THENM=Y ELSEM=M AND&H0FFF OR&H1000
755 INPUT" INS. BYTE";N:N=N AND&HFF
760 LOCATE13,0,0:PRINT"&H"+HEX$(M):LOCATE13,1,0:PRINTN
765 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
770 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
775 FORO=I TOM STEP-1:POKEO+N,PEEK(O):NEXTO
780 FORO=M TOM+N-1:POKEO,0:NEXTO
785 I=(I+N)AND&H0FFF OR&H1000
790 RETURN
800 CLS:INPUT" DEL. ADRS";M:IFM=0THENM=Y ELSEM=M AND&H0FFF OR&H1000
805 INPUT" DEL. BYTE";N:N=N AND&HFF
810 LOCATE13,0,0:PRINT"&H"+HEX$(M):LOCATE13,1,0:PRINTN
815 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
820 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
825 FORO=M TOI:POKEO,PEEK(O+N):NEXTO
830 FORO=I TOI+N-1:POKEO,0:NEXTO
835 I=(I-N)AND&H0FFF OR&H1000
840 RETURN
850 CLS:INPUT" REVW ADRS";M:IFM=0THENM=Y ELSEM=M AND&H0FFF OR&H1000
852 INPUT" REVW ADRS";N:IFN=0THENN=I ELSEN=N AND&H0FFF OR&H1000
854 LOCATE13,0,0:PRINT"&H"+HEX$(M):LOCATE13,1,0:PRINT"&H"+HEX$(N)
856 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
858 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
860 CLS
865 IFN<M THENPRINT:RETURN
870 O=PEEK(M):B$=A$(O):PRINTTAB(0);HEX$(M);TAB(6);B$;TAB(12);
875 ONA%(O)+1GOSUB888,888,884,882
880 GOTO865
882 M=M+1:O=PEEK(M):IFO<16THENPRINT"0"+HEX$(O);ELSEPRINTHEX$(O);
884 M=M+1:O=PEEK(M):IFO<16THENPRINT"0"+HEX$(O);ELSEPRINTHEX$(O);
886 IFRIGHT$(B$,1)="&"THENPRINTTAB(16);HEX$(M+O-256*(O\128)+1);
888 M=M+1
890 RETURN
900 CLS:INPUT" PRNT ADRS";M:IFM=0THENM=Y ELSEM=M AND&H0FFF OR&H1000
902 INPUT" PRNT ADRS";N:IFN=0THENN=I ELSEN=N AND&H0FFF OR&H1000
904 LOCATE13,0,0:PRINT"&H"+HEX$(M):LOCATE13,1,0:PRINT"&H"+HEX$(N)
906 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
908 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
910 LPRINT
915 IFN<M THENLPRINT:RETURN
920 O=PEEK(M):B$=A$(O):LPRINTTAB(0);HEX$(M);TAB(6);B$;TAB(12);
925 ONA%(O)+1GOSUB938,938,934,932
930 GOTO915
932 M=M+1:O=PEEK(M):IFO<16THENLPRINT"0"+HEX$(O);ELSELPRINTHEX$(O);
934 M=M+1:O=PEEK(M):IFO<16THENLPRINT"0"+HEX$(O);ELSELPRINTHEX$(O);
936 IFRIGHT$(B$,1)="&"THENLPRINTTAB(16);HEX$(M+O-256*(O\128)+1);
938 M=M+1
940 RETURN
950 CLS:INPUT" ERAS ADRS";M:IFM=0THENM=Y ELSEM=M AND&H0FFF OR&H1000
952 INPUT" ERAS ADRS";N:IFN=0THENN=I ELSEN=N AND&H0FFF OR&H1000
954 LOCATE13,0,0:PRINT"&H"+HEX$(M):LOCATE13,1,0:PRINT"&H"+HEX$(N)
956 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
958 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
960 CLS:PRINT"ERASE?":PRINT:PRINT"YES...RETURN":PRINT"NO.SPACE BAR";
970 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
980 FORO=M TON:POKEO,0:NEXTO
985 I=M
990 RETURN
1000 CLS:INPUT" SAVE ADRS";M:IFM=0THENM=Y ELSEM=M AND&H0FFF OR&H1000
1002 INPUT" SAVE ADRS";N:IFN=0THENN=I ELSEN=N AND&H0FFF OR&H1000
1004 LOCATE13,0,0:PRINT"&H"+HEX$(M):LOCATE13,1,0:PRINT"&H"+HEX$(N)
1006 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
1008 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1010 CLS:INPUT"SAVE ENT";O:IFO=0THENO=M ELSEO=O AND&H0FFF OR&H1000
1012 INPUT"SAVE TTL";Z$:Z$=LEFT$(Z$,8)
1014 LOCATE10,0,0:PRINT"&H"+HEX$(O)+CHR$(5):LOCATE10,1,0:PRINTZ$+CHR$(5)
1016 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
1018 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1020 CLS:PRINT"TAPCNT=";TAPCNT:INPUT"WIND  ";Z
1022 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
1024 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1026 IFSGN(Z)=-1THENWIND:WINDABS(Z)ELSEWINDABS(Z)
1028 CLS:PRINT"SAVE?":PRINT:PRINT"YES...RETURN":PRINT"NO.SPACE BAR";
1030 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1032 SAVEMZ$,M,N,O
1034 RETURN
1050 CLS:INPUT"LOAD TTL";Z$:Z$=LEFT$(Z$,8)
1052 INPUT"LOAD OFF";O:O=O MOD&H1000
1054 LOCATE10,0,0:PRINTZ$+CHR$(5):LOCATE10,1,0:PRINTO
1056 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
1058 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1060 CLS:PRINT"TAPCNT=";TAPCNT:INPUT"WIND  ";Z
1062 PRINT"CONTINUE?(RETURN)":PRINT"ABORT?(SPACE BAR)";
1064 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1066 IFSGN(Z)=-1THENWIND:WINDABS(Z)ELSEWINDABS(Z)
1068 CLS:PRINT"LOAD?":PRINT:PRINT"YES...RETURN":PRINT"NO.SPACE BAR";
1070 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1072 LOADMZ$,O
1074 RETURN
1100 CLS:INPUT"EXEC";O
1105 IFO=0THENO=Y ELSEO=O AND&H0FFF OR&H1000
1110 LOCATE6,0,0:PRINT"&H"+HEX$(O)
1115 PRINT:PRINT"YES...RETURN":PRINT"NO.SPACE BAR";
1120 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1125 EXECO
1130 RETURN
1150 LOCATE7,18,1:LINEINPUT"",C$:C$=LEFT$(C$,8)
1160 LOCATE7,18,0:PRINTC$+CHR$(26):L=LEN(C$)
1170 FORN=1 TOL:O$=MID$(C$,N,1):O=ASC(O$)
1180 M=(I+N-1)AND&H0FFF OR&H1000:POKEM,O:NEXTN
1190 I=(I+L)AND&H0FFF OR&H1000
1195 RETURN
1200 REM
1201 REM
1202 REM
1203 REM
1204 REM
1205 REM
1206 REM
1207 REM
1208 REM
1209 REM
1210 MON
1220 RETURN
1250 CLS:PRINT"END?"
1260 PRINT:PRINT"YES...RETURN":PRINT"NO.SPACE BAR";
1270 O$=INPUT$(1):IFO$<>CHR$(13)THENRETURN
1300 END
