Random game
Random demo
Random game
MAC/65 Text Generator MAC/65 Text Generator MAC/65 Text Generator
Listing 1
0 REM ****TEXTGEN pro MAC65****
1 REM Komentar od radku 32000
10 GOTO 30000
100 ERRL=MENU:​JMPZ=ADKS+6*N:​STZ=JMPZ:​STK=STZ
110 IF N=0 THEN ERROR$="EMPTY TABLE":​GOTO ERROR
120 ? "FAZE 1":​ERROR$="ENDADRESS":​FOR J=1 TO N:​U=ADKS+6*J-2:​ON PEEK(U) GOTO 130,​400,​340,​340
130 DEZ1=PEEK(U-4)+256*PEEK(U-3):​DEZ2=DEZ1-ROZD:​KON=PEEK(U-2)+256*PEEK(U-1)
140 DEZ=PEEK(ADOBR):​IF DEZ=255 THEN DEZ=-1
150 POKE ADOBR,​DEZ+1:​IF PEEK(764)=28 THEN POP:​GOTO BREAK
160 KOD=PEEK(DEZ2):​DEL=ASC(DEL$(KOD+1,​KOD+1)):​ADDR=ASC(ADDR$(KOD+1,​KOD+1))
170 IF DEZ1+DEL>KON THEN GOTO 410
180 IF DEL=0 THEN ERROR$="'???'":​GOTO 410
190 IF ADDR<>10 THEN GOTO 220
200 FLG=PEEK(DEZ2+1):​IF FLG>127 THEN FLG=FLG-256
210 FLG=FLG+DEZ1+2
220 IF (DEL<3) AND (ADDR<>10) THEN GOTO 330
230 IF ADDR<>10 THEN FLG=PEEK(DEZ2+1)+256*PEEK(DEZ2+2)
240 U=USR(ADR(LOOK$),​FLG,​ADKS,​JMPZ):​DEZ=(U-ADKS-2)/6
250 IF DEZ<>INT(DEZ) THEN GOTO 330
260 DEZ=PEEK(U+2):​IF DEZ<>1 THEN MN=ASC(MN$(KOD+1,​KOD+1)):​GOTO 280
265 IF JMPZ=STZ THEN U=JMPZ:​GOTO 300
270 U=USR(ADR(LOOK$),​FLG,​JMPZ,​STZ):​IF U=JMPZ THEN GOTO 300
275 GOTO 290
280 IF (ADDR=10) OR (MN=28) OR (MN=29) THEN ERROR$="JUMP TO DATA":​GOTO 410
282 IF STZ=STK THEN U=STZ:​GOTO 300
285 U=USR(ADR(LOOK$),​FLG,​STZ,​STK):​IF U=STZ THEN GOTO 300
290 IF FLG=PEEK(U-2)+256*PEEK(U-1) THEN GOTO 330
300 IF STK+2>ADK THEN ERROR$="OUT OF MEMORY":​GOTO 410
310 IF DEZ=1 THEN STZ=STZ+2
320 DEZ=U:​U=USR(ADR(MOVE$),​U,​STK):​STK=STK+2:​U=DEZ:​DEZ=FLG:​L=DEZ1:​FLG=DEZ2
325 GOSUB BYTE:​POKE U,​DEZ1:​POKE U+1,​DEZ2:​DEZ1=L:​DEZ2=FLG
330 DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​IF DEZ1<KON THEN GOTO 140
340 NEXT J:​GOTO 500
400 DEZ1=PEEK(U-4)+256*PEEK(U-3):​KON=PEEK(U-2)+256*PEEK(U-1)
405 DEZ=(KON-DEZ1)/2:​IF DEZ=INT(DEZ) THEN GOTO 340
410 ? "IN ";DEZ1:​POP:​GOTO ERROR
500 ? " ENTER FILESPEC :​";:​GOSUB IN:​KOD=0:​IF HEX$(1,​1)="C" THEN KOD=128
510 OPEN #1,​8,​KOD,​HEX$:​JM=JMPZ:​ST=STZ:​BR=0:​JM1=PEEK(JM)+256*PEEK(JM+1):​ST1=PEEK(ST)+256*PEEK(ST+1)
515 POKE 16,​64:​POKE 53774,​64
520 IF JM=STZ THEN JM1=70000
530 IF ST=STK THEN ST1=70000
540 ? "FAZE 2":​FOR J=1 TO N:​U=ADKS+6*J-2:​DEZ1=PEEK(U-4)+256*PEEK(U-3):​DEZ2=DEZ1-ROZD
550 KON=PEEK(U-2)+256*PEEK(U-1):​ON PEEK(U) GOTO 560,​710,​770,​780
560 KOD=PEEK(DEZ2)+1:​DEL=ASC(DEL$(KOD,​KOD)):​IF (JM1>=DEZ1+DEL) AND (ST1>=DEZ1+DEL) THEN GOTO 670
570 IF JM1=DEZ1 THEN HEX$="JM":​HEX$(3,​3)=STR$((JM-JMPZ)/2):​GOTO 610
580 IF ST1=DEZ1 THEN HEX$="ST":​HEX$(3,​3)=STR$((ST-STZ)/2):​ST=ST+2:​ST1=PEEK(ST)+256*PEEK(ST+1):​GOTO 620
590 HEX$="BR":​HEX$(3,​3)=STR$(BR):​BR=BR+1
600 ? #1;"JM";(JM-JMPZ)/2;"= ";HEX$;"+";JM1-DEZ1
610 JM=JM+2:​JM1=PEEK(JM)+256*PEEK(JM+1):​IF JM=STZ THEN JM1=70000
620 IF JM1<DEZ1+DEL THEN GOTO 600
630 IF ST=STK THEN ST1=70000
640 IF ST1>=DEZ1+DEL THEN GOTO 670
650 ? #1;"ST";(ST-STZ)/2;" EQU ";HEX$;:​DEZ=ST1-DEZ1:​IF DEZ>0 THEN ? #1;"+";DEZ;
660 ? #1:​? #1;:​ST=ST+2:​ST1=PEEK(ST)+256*PEEK(ST+1):​GOTO 630
670 DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​IF PEEK(764)=28 THEN GOTO 700
680 IF DEZ1<KON THEN GOTO 560
690 NEXT J:​GOTO 1000
700 POP:​CLOSE #1:​GOTO BREAK
710 DEL=8
720 IF DEZ1+DEL>KON THEN DEL=KON-DEZ1
730 IF ST1<DEZ1+DEL THEN GOSUB 790
740 DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​IF PEEK(764)=28 THEN GOTO 700
750 IF DEZ1<KON THEN GOTO 720
760 GOTO 690
770 DEL=6:​GOTO 720
780 DEL=20:​GOTO 720
790 IF ST1=DEZ THEN HEX$="ST":​HEX$(3,​3)=STR$((ST-STZ)/2):​GOTO 820
800 HEX$="BR":​HEX$(3,​3)=STR$(BR):​BR=BR+1
810 ? #1;"ST";(ST-STZ)/2;"= ";HEX$;"+";ST1-DEZ1
820 ST=ST+2:​ST1=PEEK(ST)+256*PEEK(ST+1):​IF ST=STZ THEN ST1=70000
830 IF ST1<DEZ1+DEL THEN GOTO 810
840 RETURN
1000 ? "FAZE 3":​JM=JMPZ:​ST=STZ:​BR=0
1010 JM1=PEEK(JM)+256*PEEK(JM+1):​ST1=PEEK(ST)+256*PEEK(ST+1):​IF JM=STZ THEN JM1=70000
1020 IF ST=STK THEN ST1=70000
1030 FOR J=1 TO N:​U=ADKS+6*J-2:​DEZ1=PEEK(U-4)+256*PEEK(U-3):​DEZ2=DEZ1-ROZD:​KON=PEEK(U-2)+256*PEEK(U-1)
1035 DEZ=DEZ1:​L=4:​GOSUB DEZHEX:​? #1;" *= $";HEX$
1040 ON PEEK(U) GOTO 1050,​1360,​1430
1050 KOD=PEEK(DEZ2)+1:​DEL=ASC(DEL$(KOD,​KOD)):​ADDR=ASC(ADDR$(KOD,​KOD)):​MN=ASC(MN$(KOD,​KOD))
1060 IF (JM1>=DEZ1+DEL) AND (ST1>=DEZ1+DEL) THEN GOTO 1160
1070 IF JM1=DEZ1 THEN ? #1;"JM";(JM-JMPZ)/2;:​GOTO 1110
1080 IF ST1=DEZ1 THEN ? #1;"ST";(ST-STZ)/2;:​ST=ST+2:​ST1=PEEK(ST)+256*PEEK(ST+1):​GOTO 1100
1090 ? #1;"BR";BR;:​BR=BR+1
1100 IF JM1>=DEZ1+DEL THEN GOTO 1130
1110 JM=JM+2:​JM1=PEEK(JM)+256*PEEK(JM+1):​IF JM=STZ THEN JM1=70000
1120 GOTO 1100
1130 IF ST=STK THEN ST1=70000
1140 IF ST1>=DEZ1+DEL THEN GOTO 1160
1150 ST=ST+2:​ST1=PEEK(ST)+256*PEEK(ST+1):​GOTO 1130
1160 ? #1;" ";MNEM$(3*MN+1,​3*MN+3);:​FLG=PEEK(DEZ2+1)
1170 IF (DEL<3) AND (ADDR<>10) THEN L=2:​GOTO 1260
1180 L=4:​IF ADDR<>10 THEN FLG=FLG+256*PEEK(DEZ2+2):​GOTO 1210
1190 IF FLG>127 THEN FLG=FLG-256
1200 FLG=FLG+DEZ1+2
1210 U=USR(ADR(LOOK$),​FLG,​ADKS,​JMPZ):​DEZ=(U-ADKS-2)/6:​IF DEZ<>INT(DEZ) THEN GOTO 1260
1220 DEZ=PEEK(U+2):​IF DEZ<>1 THEN GOTO 1240
1230 U=USR(ADR(LOOK$),​FLG,​JMPZ,​STZ):​DEZ=(U-JMPZ-2)/2:​HEX1$=" JM":​GOTO 1250
1240 U=USR(ADR(LOOK$),​FLG,​STZ,​STK):​DEZ=(U-STZ-2)/2:​HEX1$=" ST"
1250 HEX1$(4)=STR$(DEZ):​GOTO 1270
1260 DEZ=FLG:​GOSUB DEZHEX:​HEX1$="$":​HEX1$(2)=HEX$:​IF DEL=1 THEN GOTO 1280
1270 ? #1;" ";ADRZ$(2*ADDR+1,​2*ADDR+1);HEX1$;:​HEX1$=ADRK$(3*ADDR+1,​3*ADDR+3):​IF HEX1$<>" " THEN ? #1;HEX1$;
1280 ? #1:​? #1;:​DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​IF PEEK(764)=28 THEN GOTO 700
1290 IF DEZ1<KON THEN GOTO 1050
1300 NEXT J:​CLOSE #1:​? " END OF SAVING":​GOTO MENU
1310 IF ST1=DEZ1 THEN ? #1;"ST";(ST-STZ)/2;:​GOTO 1330
1320 ? #1;"BR";BR;:​BR=BR+1
1330 ST=ST+2:​ST1=PEEK(ST)+256*PEEK(ST+1):​IF ST=STZ THEN ST1=70000
1340 IF ST1<DEZ1+DEL THEN GOTO 1330
1350 RETURN
1360 DEL=8:​IF DEZ1+DEL>KON THEN DEL=KON-DEZ1
1370 IF ST1<DEZ1+DEL THEN GOSUB 1310
1380 ? #1;" .WORD ";:​FOR FLG=0 TO DEL-1 STEP 2:​DEZ=PEEK(DEZ2+FLG)+256*PEEK(DEZ2+FLG+1):​L=4:​GOSUB DEZHEX
1390 ? #1;"$";HEX$;:​IF FLG<DEL-2 THEN ? #1;",​";
1400 NEXT FLG:​? #1:​? #1;:​DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​IF PEEK(764)=28 THEN GOTO 700
1410 IF DEZ1<KON THEN GOTO 1360
1420 GOTO 1300
1430 DEL=6:​IF DEZ1+DEL>KON THEN DEL=KON-DEZ1
1440 IF ST1<DEZ1+DEL THEN GOSUB 1310
1450 ? #1;" .BYTE ";:​FOR FLG=0 TO DEL-1:​DEZ=PEEK(DEZ2+FLG):​L=2:​GOSUB DEZHEX
1460 ? #1;"$";HEX$;:​IF FLG<DEL-1 THEN ? #1;",​";
1470 NEXT FLG:​? #1:​? #1;:​DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​IF PEEK(764)=28 THEN GOTO 700
1480 IF DEZ1<KON THEN GOTO 1430
1490 GOTO 1300
3000 GOSUB BUFF:​?:​? "FROM? :​ $";
3010 GOSUB ADRESS:​IF KOD=126 THEN GOTO 3010
3020 GOSUB HEXDEZ:​?
3030 IF (DEZ<ADZR) OR (DEZ>ADKR) THEN ERROR$="ADRESS":​ERRL=MENU:​POP:​GOTO ERROR
3040 POKE 752,​1:​RETURN
3100 HEX$=""
3110 FOR I=L TO 1 STEP -1:​L=DEZ:​DEZ=INT(DEZ/16):​L=L-DEZ*16:​IF L<10 THEN HEX$(I,​I)=STR$(L):​GOTO 3130
3120 HEX$(I,​I)=CHR$(L+55)
3130 NEXT I:​RETURN
3200 DEZ=0:​FOR I=1 TO 4:​HEX1$=HEX$(I,​I):​IF HEX1$<"A" THEN DEZ=DEZ*16+VAL(HEX1$):​GOTO 3220
3210 DEZ=DEZ*16+ASC(HEX1$)-55
3220 NEXT I:​RETURN
3300 DEZ2=INT(DEZ/256):​DEZ1=DEZ-DEZ2*256:​RETURN
3400 POKE 20,​0
3410 IF PEEK(20)<100 THEN 3410
3420 RETURN
3500 ?:​POKE 752,​1:​? "*** BREAK ***";:​GOSUB WAIT:​POKE 752,​0:​? "";:​GOTO MENU
3600 POKE 752,​1:​? "Error -";ERROR$;:​GOSUB WAIT:​? "";:​POKE 752,​0:​GOTO ERRL
3700 HEX$=""
3710 POKE 694,​0:​L=LEN(HEX$):​GET #2,​KOD:​IF (KOD=155) AND (L=4) THEN RETURN
3720 IF KOD=27 THEN POP:​GOTO BREAK
3730 IF (KOD=126) AND (L>1) THEN HEX$=HEX$(1,​L-1):​? CHR$(KOD);:​GOTO 3710
3740 IF (KOD=126) AND (L>0) THEN ? CHR$(KOD);:​GOTO 3700
3750 IF KOD=126 THEN RETURN
3760 IF KOD>95 THEN POKE 702,​64
3770 IF ((KOD<48) OR (KOD>57)) AND ((KOD<65) OR (KOD>70)) OR (L=4) THEN GOTO 3710
3780 ? CHR$(KOD);:​HEX$(L+1,​L+1)=CHR$(KOD):​GOTO 3710
3800 DEZ=ADZR:​L=4:​GOSUB DEZHEX:​HEX1$=HEX$:​DEZ=ADKR:​L=4:​GOSUB DEZHEX:​? "BUFFER :​ $";HEX1$;" -$";HEX$:​RETURN
3900 HEX$=""
3910 L=LEN(HEX$):​GET #2,​KOD:​IF (KOD=155) AND (L>0) THEN ?:​RETURN
3920 IF (KOD=27) THEN POP:​GOTO BREAK
3930 IF (KOD=126) AND (L>1) THEN HEX$=HEX$(1,​L-1):​? CHR$(KOD);:​GOTO 3910
3940 IF (KOD=126) AND (L>0) THEN ? CHR$(KOD);:​GOTO 3900
3950 IF (KOD=155) OR (KOD=126) OR (L=12) THEN GOTO 3910
3960 ? "";CHR$(KOD);:​HEX$(L+1,​L+1)=CHR$(KOD):​GOTO 3910
4000 GOSUB FROM
4010 DEZ1=DEZ:​DEZ2=DEZ1-ROZD:​?:​?
4020 IF PEEK(764)=28 THEN GOTO BREAK
4030 IF DEZ1>ADKR THEN 4020
4040 KOD=PEEK(DEZ2):​DEZ=DEZ1:​L=4:​GOSUB DEZHEX:​? HEX$;" ";:​DEZ=KOD:​L=2:​GOSUB DEZHEX:​? HEX$;" ";
4050 L=KOD+1:​ADDR=ASC(ADDR$(L,​L)):​DEL=ASC(DEL$(L,​L)):​MN=ASC(MN$(L,​L)):​IF DEZ1+DEL-1>ADKR THEN ADDR=0:​DEL=0:​MN=0
4060 IF DEL<>0 THEN GOTO 4090
4070 IF KOD=155 THEN KOD=46
4080 ? " '";CHR$(KOD);"' ";:​DEL=1:​GOTO 4150
4090 IF DEL=1 THEN ? " ";:​GOTO 4150
4100 FLG=PEEK(DEZ2+1):​DEZ=FLG:​L=2:​GOSUB DEZHEX:​? HEX$;" ";:​IF DEL=2 THEN ? " ";:​GOTO 4120
4110 DEZ=PEEK(DEZ2+2):​FLG=FLG+256*DEZ:​L=2:​GOSUB DEZHEX:​? HEX$;:​L=4:​GOTO 4150
4120 IF ADDR<>10 THEN L=2:​GOTO 4150
4130 IF FLG>127 THEN FLG=FLG-256
4140 FLG=FLG+DEZ1+2:​L=4
4150 ? " ";MNEM$(3*MN+1,​3*MN+3);" ";ADRZ$(2*ADDR+1,​2*ADDR+2);
4160 IF DEL>1 THEN DEZ=FLG:​GOSUB DEZHEX:​? HEX$;
4170 ? ADRK$(3*ADDR+1,​3*ADDR+3):​DEZ1=DEZ1+DEL:​DEZ2=DEZ2+DEL:​GOTO 4020
5000 ERROR$="SPEC":​ERRL=MENU:​TRAP ERROR
5010 DEZ=ADZS:​GOSUB BYTE:​? "Bufferadress :​ $";
5013 GOSUB ADRESS:​IF KOD=126 THEN GOTO 5013
5017 GOSUB HEXDEZ:​ADZR=DEZ:​ROZD=ADZR-ADZS:​N=0:​L$="0"
5020 ?:​? "Enter Filespec :​ ";:​GOSUB IN:​KOD=0:​IF HEX$(1,​1)="C" THEN KOD=128
5030 OPEN #1,​4,​KOD,​HEX$:​POKE 848+2,​7:​POKE 848+4,​DEZ1:​POKE 848+5,​DEZ2:​POKE 848+8,​0:​POKE 848+9,​ADK/256-DEZ2
5040 POKE 752,​1:​ERROR$="LOAD":​ERRL=5050:​U=USR(ADR(CIO$))
5050 CLOSE #1:​DEZ=PEEK(848+8)+256*PEEK(848+9):​IF DEZ=0 THEN GOTO MENU
5060 ADKS=ADZS+DEZ-1:​ADKR=ADZR+DEZ-1:​DEZ=ADKR:​L=4:​GOSUB DEZHEX:​? "FILEEND :​ $";HEX$:​?:​L$="1":​GOTO MENU
6000 GOSUB FROM
6010 DEZ1=DEZ:​DEZ2=DEZ1-ROZD:​?:​DEL=7
6020 IF PEEK(764)=28 THEN GOTO BREAK
6030 IF DEZ1>ADKR THEN 6020
6040 ?:​DEZ=DEZ1:​L=4:​GOSUB DEZHEX:​? HEX$;:​IF ADKR-DEZ1<DEL THEN DEL=ADKR-DEZ1
6050 FOR FLG=0 TO DEL:​DEZ=PEEK(DEZ2+FLG):​L=2:​GOSUB DEZHEX:​? " ";HEX$;:​NEXT FLG:​POKE 85,​31
6060 FOR I=0 TO DEL:​KOD=PEEK(DEZ2+I):​IF KOD=155 THEN KOD=46
6070 ? "";CHR$(KOD);:​NEXT I
6080 DEZ1=DEZ1+8:​DEZ2=DEZ2+8:​GOTO 6020
7000 ERRL=7040:​IF N=0 THEN GOTO 7035
7010 ?:​FOR J=1 TO N:​? J;"";:​DEZ1=ADKS+6*J:​ON PEEK(DEZ1-2) GOSUB 7500,​7510,​7520,​7530
7020 DEZ=PEEK(DEZ1-6)+256*PEEK(DEZ1-5):​L=4:​GOSUB DEZHEX:​? "$";HEX$;" -";
7030 DEZ=PEEK(DEZ1-4)+256*PEEK(DEZ1-3)-1:​L=4:​GOSUB DEZHEX:​? "$";HEX$;"":​NEXT J
7035 GOSUB BUFF
7040 ? "";
7050 POKE 694,​0:​POKE 702,​64:​KOD=PEEK(764):​IF (KOD=28) OR (KOD=13) OR (KOD=46) OR (KOD=21) THEN GOTO 7070
7055 IF (KOD=63) OR (KOD=35) OR (KOD=56) OR (KOD=62) THEN GOTO 7070
7060 GOTO 7050
7070 GET #2,​KOD:​IF KOD=27 THEN GOTO BREAK
7080 IF KOD=73 THEN GOSUB 7500:​DEZ2=1:​GOTO 7170
7090 IF KOD=87 THEN GOSUB 7510:​DEZ2=2:​GOTO 7170
7100 IF KOD=66 THEN GOSUB 7520:​DEZ2=3:​GOTO 7170
7110 IF KOD=65 THEN GOTO 7050:​REM ZATIM NENI
7120 IF KOD<>78 THEN GOTO 7150
7130 GOSUB 7540:​GET #2,​KOD:​IF KOD<>89 THEN GOTO 7040
7140 N=0:​? " TABLE CLEARED":​GOTO 7040
7150 IF KOD=83 THEN GOSUB 7550:​GOTO 7000
7160 DEZ=ADK-ADKS-6*N:​L=4:​GOSUB DEZHEX:​GOSUB 7560:​GOTO 7040
7170 ? "FROM -$";
7180 GOSUB ADRESS:​IF KOD=126 THEN GOTO 7040
7190 IF HEX$<"0100" THEN ERROR$="SO LITTLE ADRESS":​GOTO ERROR
7200 GOSUB HEXDEZ:​DEZ1=DEZ:​? " TO -$";
7210 GOSUB ADRESS:​IF KOD=126 THEN GOSUB 7570:​GOTO 7180
7220 IF HEX$>"FFFE" THEN ERROR$="SO BIG ADRESS":​GOTO ERROR
7230 GOSUB HEXDEZ:​IF DEZ-DEZ1<0 THEN ERROR$="FALSE ADRESS":​GOTO ERROR
7240 L=DEZ2:​DEZ2=DEZ:​FLG=ADKS+6*N:​IF FLG+6>=ADK THEN ERROR$="OUT OF MEMORY":​GOTO ERROR
7245 IF N=0 THEN DEZ=ADKS:​GOTO 7290
7250 U=USR(ADR(LOOK$),​DEZ1,​ADKS,​FLG):​DEZ=(U-ADKS)/6
7260 IF (DEZ<>INT(DEZ)) THEN GOTO 7400
7270 DEZ=U:​U=USR(ADR(LOOK$),​DEZ2,​ADKS,​FLG):​IF U<>DEZ THEN GOTO 7400
7275 IF DEZ>FLG THEN DEZ=FLG
7280 U=USR(ADR(MOVE$),​DEZ,​FLG):​U=USR(ADR(MOVE$),​DEZ+2,​FLG+2):​U=USR(ADR(MOVE$),​DEZ+4,​FLG+4)
7290 POKE DEZ+4,​L:​POKE DEZ+5,​0:​L=DEZ1:​U=DEZ:​DEZ=DEZ2+1:​GOSUB BYTE:​POKE U+2,​DEZ1:​POKE U+3,​DEZ2
7300 DEZ=L:​GOSUB BYTE:​POKE U,​DEZ1:​POKE U+1,​DEZ2:​N=N+1:​?:​GOTO 7040
7400 ERROR$="COVERED FILES":​GOTO ERROR
7500 ? "INSTR.";:​RETURN
7510 ? "WORDS";:​RETURN
7520 ? "BYTES";:​RETURN
7530 ? "ATASCII";:​RETURN
7540 ? "NEW TABLE":​? " ARE YOU SURE?";:​RETURN
7550 ? "SHOW TABLE":​RETURN
7560 ? "FREE MEMORY :​$";HEX$;" BYTES":​RETURN
7570 ? "";:​RETURN
10000 POKE 752,​0:​?:​KOD=76
10010 IF L$="0" THEN GOTO 10030
10015 ? "";
10020 GET #2,​KOD:​IF KOD=125 THEN GOTO 30200
10025 IF KOD>127 THEN KOD=KOD-128
10030 IF KOD>95 THEN POKE 702,​64:​GOTO 10020
10040 IF KOD=68 THEN ? "DISASSEMBLE":​GOTO DISASS
10050 IF KOD=76 THEN ? "LOAD FILE":​GOTO LOAD
10060 IF KOD=77 THEN ? "MEMORY DUMP":​GOTO DUMP
10070 IF KOD=84 THEN ? "TEXT GENERATOR":​GOTO GENER
10080 IF KOD=85 THEN ? "USER TABLE":​GOTO TABLE
10200 GOTO 10020
30000 CLR:​POKE 559,​0:​RESTORE:​READ FROM,​DEZHEX,​HEXDEZ,​BYTE,​WAIT,​BREAK,​ERROR,​ADRESS,​BUFF,​IN,​DISASS,​LOAD
30001 READ DUMP,​GENER,​TABLE,​MENU
30002 DATA 3000,​3100,​3200,​3300,​3400,​3500,​3600,​3700,​3800,​3900,​4000,​5000
30003 DATA 6000,​100,​7000,​10000
30010 DIM DEL$(256),​ADDR$(256),​MN$(256),​MNEM$(171),​L$(1),​HEX$(12),​HEX1$(8),​CIO$(6),​ADRZ$(28),​ADRK$(42)
30020 DIM ERROR$(20),​LOOK$(53),​MOVE$(43)
30030 L$="0":​ADZS=PEEK(144)+256*PEEK(145)+99:​ADK=PEEK(741)+256*PEEK(742)
30040 OPEN #2,​4,​0,​"K:​"
30100 MN$="##%######('(((-(*!$!!!!"
30101 MN$(97,​176)="+)&)))/)0201620102018070  43 "
30102 MN$(177,​256)=" 5 ,​,​,​,​,​,​.,​,​"
30103 MN$(235,​235)=CHR$(34)
30110 ADDR$=""
30111 ADDR$(97,​176)=""
30112 ADDR$(177,​256)=""
30120 ADRZ$=" ($($($ $ $ $ A#$ $ $ $ $":​ADRK$=" ) ),​Y,​X) ,​X ,​Y ,​X ,​Y "
30121 MNEM$="???ADCANDASLBCCBCSBEQBITBMIBNEBPLBRKBVCBVSCLCCLDCLICLVCMPCPXCPYDECDEXDEYEORINCINXINYJMPJSR"
30122 MNEM$(91,​171)="LDALDXLDYLSRNOPORAPHAPHPPLAPLPROLRORRTIRTSSBCSECSEDSEISTASTXSTYTAXTAYTSXTXATXSTYA"
30130 CIO$="hLV"
30140 DEL$=""
30141 DEL$(97,​176)=""
30142 DEL$(177,​256)=""
30150 LOOK$="hhhhhhhi`"
30151 MOVE$="hhhhh`"
30200 GRAPHICS 0:​ADOBR=PEEK(88)+256*PEEK(89)
30210 POKE 82,​6:​? "":​? ""
30220 ? ""
30230 POKE 82,​2:​POKE 16,​64:​POKE 53774,​64:​?:​GOTO MENU
32000 REM
32010 REM Program pracuje jako zpetny assembler pro MAC/65 . Text je nutno nahrat na pasku nebo disketu.
32020 REM Adresy ve funkci 'U' se za- davaji OD-DO-vcetne.Kazdou funkci lze kdykoli ukoncit klavesou 'ESC'.
32030 REM Hlavni menu obsahuje funkce '',​'D',​'M',​'L',​'U',​'T';'U'-menu ma :​ 'I',​'W',​'B',​'F',​'N',​'S'.
32040 REM Klavesa 'BRK' je blokovana,​ protoze jakykoli zasah do programu by znicil nahrany soubor.
32050 REM TEXGEN nekontroluje delku vygenerovaneho textu. Ten ale nesmi byt delsi nez cca 17kB!	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!