10 REM PROGRAM : ABSMAKE 20 REM VERSION : 1.0 30 REM (C) : Ulf Dahl`n, <2422> 40 REM B]STAD 1984-06-25 50 REM 60 DIM Q0$=253%,Q$=253% 70 REM 80 ; INP(3%)CHR$(12%)TAB(14%)"ABSMAKE" 90 ; TAB(13%)"=========" 100 ; CUR(3%,0%)"Detta program skapar en ABS-fil av en" 110 ; "eller flera delar av minnet." 120 ; CUR(6%,0%)"Ange antal minnesfragment (1-9): "; : L%=1% : GOSUB 820 130 GOSUB 940 : A%=I-1 : IF E% OR A%<0% GOTO 120 140 DIM F(1%,A%) 150 ; CUR(8%,0%)"Fragment"TAB(12)"Startadress"TAB(28)"Slutadress" 160 FOR I%=0% TO A% 170 ; CUR(9%+I%,3%)I%+1% 180 ; CUR(9%+I%,14%); : L%=5% : GOSUB 820 : GOSUB 940 190 IF E% GOTO 180 ELSE F(0%,I%)=I 200 ; CUR(9%+I%,30%); : L%=5% : GOSUB 820 : GOSUB 940 210 IF E% OR I250% F%=0% ELSE GOTO 600 560 Q$=Q$+CHR$(C%) : C%=0% 570 IF LEN(Q$)>242% Q$=Q$+CHR$(255%) : GOSUB 780 580 B%=244%-LEN(Q$) : IF I+B%-1%>F(1%,I%) B%=F(1%,I%)-I+1 590 Q$=Q$+CHR$(0%,B%,0%)+CHR$(SWAP%(I),SWAP%(I) XOR 255%,I,I XOR 255%) 600 Q$=Q$+CHR$(PEEK(I)) : B%=B%-1% : C%=C%+PEEK(I) 610 IF B%=0% F%=-1% 620 NEXT I 630 NEXT I% 640 Q$=Q$+CHR$(C%) : IF LEN(Q$)>246% Q$=Q$+CHR$(255%) : GOSUB 780 650 Q$=Q$+CHR$(0%,0%,0%)+CHR$(SWAP%(E),SWAP%(E) XOR 255%,E,E XOR 255%) 660 GOSUB 780 670 CLOSE 1% 680 REM 690 ; : ; : ; "KLART." 700 END 710 REM 720 REM --- FEL --- 730 ; : ; : ; CHR$(7%)"FEL"ERRCODE"!" 740 ; "AVBRYTER." 750 CLOSE 1% 760 END 770 REM 780 REM --- SKRIV BLOCK --- 790 IF P%>=0% Z%=CALL(28666%,1%) : Q0$=Q$ : Z%=CALL(28670%,P%) 800 P%=P%+1% : Q$="" : RETURN 810 REM 820 REM --- GENERELL INPUT-RUTIN --- 830 I$="" : G%=PEEK(65011%)+SWAP%(PEEK(65012%)) : ; SPACE$(L%)STRING$(L%,8%); 840 GET G$ : IF G$=CHR$(13%) RETURN 850 IF G$=CHR$(8%) IF LEN(I$) I$=LEFT$(I$,LEN(I$)-1%) : GOTO 900 ELSE 920 860 IF G$=CHR$(9%) IF LEN(J$) G$=LEFT$(J$,1%) : J$=RIGHT$(J$,2%) ELSE 920 870 IF G$=CHR$(24%) I$="" : GOTO 900 880 IF LEN(I$)=L% 920 890 I$=I$+G$ 900 ; CUR(G%,SWAP%(G%))I$SPACE$(L%-LEN(I$))STRING$(L%-LEN(I$),8%); 910 GOTO 840 920 ; CHR$(7%); : GOTO 840 930 REM 940 REM --- TALKONTROLL --- 950 E%=0% : ONERRORGOTO 970 960 I=VAL(I$) : GOTO 980 970 E%=-1% 980 ONERRORGOTO 0 : RETURN