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