1 REM Ins{nt av 227 100 REM +++++++++++++++++++++++++++++++ 110 REM ! Program .... VARPGM 120 REM ! Utg}va 3 820322 130 REM ! av (c) Thomas Bergstam <227> 140 REM ! Minne 16 Kbytes f|r flexskiva 150 REM ! Pgm. talar om var p} en flex- 155 REM ! skiva ett program ligger. 160 REM +++++++++++++++++++++++++++++++ 170 DIM B$=257% 180 D%=62720% 190 ; CHR$(12%)"B=F|reg}ende fr}ga." 200 IF D$="" D1$="0" ELSE D1$=D$ 210 ; "Vilken drive ("D1$") "; 220 ; "?"; : INPUTLINE D$ : ; : D$=LEFT$(D$,LEN(D$)-2%) : IF D$="" D$=D1$ 230 IF INSTR(1%,"Bb",D$) THEN 890 240 ONERRORGOTO 260 250 GOTO 270 260 D$="0" : GOTO 210 270 A%=VAL(D$) 280 IF F$<>"" F1$=S1$ 290 ; "Program"; : IF F$="" ; " "; ELSE ; TAB(16%-LEN(F1$))"("F1$") "; 300 ; "?"; : INPUTLINE F$ : ; : F$=LEFT$(F$,LEN(F$)-2%) : IF F$="" F$=F1$ ELSE IF LEN(F$)>8% F1$="" : GOTO 280 310 IF INSTR(1%,"Bb",F$) F$="" : GOTO 200 320 S1$=F$ 330 IF E$="" E1$="BAC" ELSE E1$=E$ 340 ; "Extension"TAB(16%-LEN(E1$))"("E1$") "; 350 ; "?"; : INPUTLINE E$ : ; : E$=LEFT$(E$,LEN(E$)-2%) : IF E$="" E$=E1$ ELSE IF LEN(E$)>3% E1$="BAC" : GOTO 340 360 IF INSTR(1%,"Bb",E$) E$="" : GOTO 280 370 IF P$<>"J" P1$="N" ELSE P1$=P$ 380 ; "Printer ("P1$") "; 390 ; "?"; : INPUTLINE P$ : ; : P$=LEFT$(P$,LEN(P$)-2%) : IF P$="" THEN 420 400 IF INSTR(1%,"Bb",P$) P$="" : GOTO 330 410 P$=LEFT$(P$,1%) 420 IF P$="" P$=P1$ ELSE IF P$="J" OPEN "PR:" ASFILE 1% : P%=1% ELSE CLOSE 1% : P%=0% 430 FOR C%=LEN(F$) TO 7% 440 F$=F$+CHR$(32%) 450 NEXT C% 460 A$=F$+E$ 470 POKE 64769%,A% 480 FOR F%=0% TO 7% 490 Z%=CALL(24678%,256%+F%*32%) 500 FOR B%=D% TO D%+256% 510 B$=B$+CHR$(PEEK(B%)) 520 NEXT B% 530 B%=INSTR(1%,B$,A$) 540 IF B%=0% 590 550 T%=PEEK(D%+B%-5%) 560 S%=PEEK(D%+B%-4%)/32% 570 Z%=CALL(24678%,SWAP%(T%)+32%*S%) 580 GOTO 610 590 B$="" : NEXT F% 600 ; 'Hittar ej filen "'S1$+"."+E$+'"' : GOTO 860 610 F%=(PEEK(D%) AND 240%)/16%+(PEEK(D%) AND 15%)*15% 620 ; : ; 630 ; #P%,TAB(15%)"Fil : "S1$+"."+E$ 640 ; #P%,TAB(9%)"Filnummer :"F% 650 REM ; #P%,TAB(21%)"Sp}r/Sektor" 660 ; #P%,TAB(12%)"Header :"T%','RIGHT$(NUM$(S%),2%) 670 D%=D%+4% 680 B%=PEEK(D%) : B1%=PEEK(D%+1%) 690 IF B%=255% THEN 860 700 B$='' : FOR I%=1% TO 8% 710 D=B1%/2 : B1%=D 720 IF B1%=D B$='0'+B$ ELSE B$='1'+B$ 730 NEXT I% 740 B2$=LEFT$(B$,3%) 750 B3$=RIGHT$(B$,4%) 760 A$=B2$ : GOSUB 900 : S%=D1% : REM STARTSEKTOR 770 A$=B3$ : GOSUB 900 : L%=D1%+1% : REM SEGMENTL[NGD 780 Q%=Q%+1% 790 ; #P%,TAB(9%)"Segment"Q%" :"B%","RIGHT$(NUM$(S%),2%)" -"; 800 IF S%=7% S%=-1% : B%=B%+1% 810 R%=R%+1% : IF R%=L% THEN 840 820 S%=S%+1% 830 GOTO 800 840 ; #P%,B%','RIGHT$(NUM$(S%),2%) 850 D%=D%+2% : B$='' : D1=0% : R%=0% : GOTO 680 860 ; : ; TAB(11%)"Mera (J) "; : GET S$ : ; 870 B$='' : D1=0% : Q%=0% 880 ON INSTR(1%,'Jj'+CHR$(13%),S$)+1% GOTO 890,180,180,180 890 CLOSE 1% : END 900 D1%=0% : FOR I%=1% TO LEN(A$) 910 B$=MID$(A$,I%,1%) 920 D1%=D1%*2%+VAL(B$) 930 NEXT I% 940 RETURN