1 REM 10 REM +-----------------------------+ 11 REM ! Program .... MANAGER .BAS ! 12 REM ! Utg}va 1.0 1983-20-06 ! 13 REM ! Av (c) Nils H{ggblom <592> ! 14 REM ! Mod. av Nils H{ggblom ! 15 REM ! Ins{nt av Nils H{ggblom ! 16 REM ! F|r 16kbytes och flexskiva ! 17 REM +-----------------------------+ 18 REM 19 REM Screened by : 20 REM Allan Varcoe & G|ran Olsson 21 REM +-----------------------------+ 107 DIM A$=253% 108 ; CHR$(12%)TAB(10%)'--- Dos Manager ---' 109 ; : ; 'Detta program f|rvandlar en sekventiell fil med maskinkod till en ABS-fil.' : ; 110 ; : ; 'Nuvarande filnamn :' 120 ; : ; 'Nytt filnamn :' 121 ; : ; 'Startadressen :' 122 ; : ; 'Lagringsarea fr}n :' 130 K%=20% : L%=16% : A%=1% 140 FOR R%=6% TO 12% STEP 2% 150 IF A%=4% AND C>16384% AND C<65535 ; CUR(R%,K%-1%)C : GOTO 170 155 Z$=X$ : GOSUB 1030 160 ON A% GOTO 200,300,410,520 170 X$='' : A%=A%+1% : NEXT R% 180 GOTO 600 200 ONERRORGOTO 230 210 OPEN X$ ASFILE 1% 211 I$=X$ : D0$='' 212 Z%=CALL(28666%,1%)+CALL(28668%,0%) 214 IF ASC(Q0$)<32% OR ASC(Q0$)>127% 250 216 ONERRORGOTO 270 217 D0$='Dr'+NUM$(PEEK(64769%))+':' 218 INPUT #1%,C 219 CLOSE 1% 220 GOTO 170 230 ; CUR(23%,0%)'Filen finns inte !!! '; 240 GOTO 500 250 ; CUR(23%,0%)'Filen {r ej sekventiell !!! '; 260 GOTO 500 270 ; CUR(23%,0%)'Filen {r ej numerisk !!! '; 280 GOTO 500 300 ONERRORGOTO 350 305 J$=X$ 306 IF X$='' J$=D0$+'Cmdint.sys' 307 IF INSTR(1%,J$,'.')=0% J$=J$+'.ABS' 308 ; CUR(R%,K%)J$' ' 310 OPEN J$ ASFILE 1% 320 ; CUR(23%,0%)'Filen finns redan !!! '; 330 CLOSE 1% 340 GOTO 500 350 ONERRORGOTO 390 370 PREPARE J$ ASFILE 2% 380 GOTO 170 390 IF ERRCODE=21% ; CUR(23%,0%)'Felaktigt filnamn !!! '; ELSE ; CHR$(12%)'Fel'ERRCODE : END 400 GOTO 500 410 ONERRORGOTO 450 420 D=VAL(X$) 430 IF D<16384% OR D>65535 GOTO 450 440 GOTO 170 450 ; CUR(23%,0%)'Felaktigt v{rde !!! '; 460 GOTO 500 500 ; CUR(R%,K%)SPACE$(L%+4%) 510 GOTO 150 520 ONERRORGOTO 450 530 C=VAL(X$) 540 IF C<16384% OR C>65535 GOTO 450 550 GOTO 170 600 REM 610 REM Bearbeta filen 620 REM 630 A$='' 635 OPEN I$ ASFILE 1% 641 C%=0% 642 ONERRORGOTO 800 651 B%=0% : A$='' 652 FOR X%=1% TO 243% 660 INPUT #1%,A% 670 B%=B%+A% 680 A$=A$+CHR$(A%) 690 NEXT X% 700 GOSUB 3700 705 GOSUB 4730 710 GOSUB 2730 780 GOTO 651 800 REM End Of File 810 IF X%=1% 860 815 GOSUB 3700 820 IF X%<238% GOTO 900 840 GOSUB 4730 850 GOSUB 2730 860 A$='' 900 A$=A$+CHR$(0%,0%,0%) 910 C=D : GOSUB 2700 915 A$=A$+B$ 917 GOSUB 4730 920 GOSUB 2730 980 CLOSE 1% : CLOSE 2% 990 END 1000 REM *** Limited Input *** 1010 R%=PEEK(65011%) 1020 K%=PEEK(65012%) 1030 R1%=R% : K1%=K% 1040 IF L%>959%-K% L%=959%-K% 1050 X$='' 1060 P%=0% 1070 X%=LEN(X$) 1080 ; CUR(R1%,K1%); 1090 GET Y$ 1100 Y%=ASC(Y$) 1110 \$=CHR$(Y%+64%) 1120 IF X%=L% IF INSTR(1%,'BMIHA][',\$)=0% ; CHR$(7%); : GOTO 1070 1130 ON INSTR(1%,'MHIADBWQ][',\$)+1% GOTO 1140,1230,1240,1270,1310,1350,1390,1160,1430,1440,1470 1140 IF Y$<' ' OR Y$>'' 1070 1150 GOSUB 1510 : X%=R1% 1160 ; Y$; 1170 GOSUB 1510 1180 IF R1%=X% AND K1%=0% R%=R%-1% 1190 GOSUB 1500 1200 X$=LEFT$(X$,P%)+Y$+RIGHT$(X$,P%+1%) 1210 P%=P%+1% 1220 GOTO 1070 1230 IF X%<>0% RETURN ELSE 1070 1240 IF P% IF K1% K1%=K1%-1% ELSE K1%=39% : R1%=R1%-1% ELSE 1070 1250 P%=P%-1% 1260 GOTO 1070 1270 IF P%=X% 1070 1280 P%=P%+1% 1290 IF K1%=39% K1%=0% : R1%=R1%+1% ELSE K1%=K1%+1% 1300 GOTO 1070 1310 IF P%=X% 1070 1320 X$=LEFT$(X$,P%)+RIGHT$(X$,P%+2%) 1330 GOSUB 1510 : GOSUB 1500 : ; ' '; 1340 GOTO 1070 1350 IF LEN(Z$)=0% 1070 1360 Y$=LEFT$(Z$,1%) 1370 Z$=RIGHT$(Z$,2%) 1380 GOTO 1140 1390 X$=RIGHT$(X$,P%+1%) 1400 ; CUR(R%,K%)X$SPACE$(X%-LEN(X$)); 1410 R1%=R% : K1%=K% : P%=0% 1420 GOTO 1070 1430 Y$=CHR$(3%) : GOTO 1160 1440 IF P%<40% 1070 1450 R1%=R1%-1% : P%=P%-40% 1460 GOTO 1070 1470 IF X%-P%<40% 1070 1480 P%=P%+40% : R1%=R1%+1% 1490 GOTO 1070 1500 ; RIGHT$(X$,P%+1%); : RETURN 1510 R1%=PEEK(65011%) 1520 K1%=PEEK(65012%) 1530 RETURN 2700 B$=CHR$(SWAP%(C),SWAP%(C) XOR 255%,C,C XOR 255%) 2710 RETURN 2730 Z%=CALL(28666%,2%) 2750 Q0$=A$ 2760 Z%=CALL(28670%,C%) 2770 C%=C%+1% 2775 C=C+X%-1% 2780 RETURN 3700 GOSUB 2700 : A$=B$+A$ 3710 A$=CHR$(0%,X%-1%,0%)+A$ 3720 A$=A$+CHR$(B%) 3750 RETURN 4730 A$=A$+STRING$(253%-LEN(A$),255%) 4740 RETURN