1 REM ++++++++++++++++++++++++++++++++ 2 REM ! Program .... PROCENT 3 REM ! Utg}va 2.0 79-08-30 4 REM ! av (c) \rjan K{rrsg}rd 5 REM ! {ndrat av Kaj S. 81-05-16 7 REM ! Minne 16 Kbytes f|r flexskiva 8 REM ! Ins{nt av 1517 9 REM ++++++++++++++++++++++++++++++++ 10 REM 11 REM Screened by C R LERIN. 12 REM 60 ; CHR$(12%)TAB(15%)" PROCENT " 70 DIM B$=120%,D1$=120%,D2$=120% 80 ; : ; "PROCENT l{gger %-tecken p} flyttals- variabler och konstanter." 90 ; : ; "Indata utg|rs av en textfil (.BAS)." 100 ONERRORGOTO 140 110 ; : ; "INFIL"; : INPUT B$ 120 OPEN B$ ASFILE 1% 130 GOTO 170 140 E9%=ERRCODE 150 GOSUB 1080 160 GOTO 100 170 ONERRORGOTO 210 180 ; : ; "UTFIL"; : INPUT B$ 190 PREPARE B$ ASFILE 2% 200 GOTO 240 210 E9%=ERRCODE 220 GOSUB 1080 230 GOTO 170 240 E9%=0% : ONERRORGOTO 0 250 ; : GOSUB 340 260 CLOSE 1% : CLOSE 2% 270 ; : ; "FLERA FILER? (J/N)"; : POKE 65013%,0% : GET B$ 280 IF (ASC(B$) AND 223%)<>ASC("J") AND B$<>CHR$(13%) THEN 290 ELSE 100 290 END 300 ; 310 REM 320 REM * BEHANDLA FIL * 330 REM 340 GOSUB 680 350 IF E9%=34% THEN 620 ELSE IF E9%<>0% THEN 630 360 K%=INSTR(1%,D1$," ") 370 IF K%=0% THEN E9=16% : GOTO 630 380 D2$=LEFT$(D1$,K%-1%) 390 ; "Rad nr.:"D2$+CHR$(13%); 400 D1$=RIGHT$(D1$,K%) 410 GOSUB 800 420 IF B%=13% OR B$="REM" OR B$="DATA" THEN 590 430 IF B$<>"THEN" AND B$<>"ELSE" THEN 460 440 GOSUB 851 : IF B%>=48% OR B%<=57% THEN GOSUB 851 450 GOTO 420 460 IF LEN(B$)<4% THEN 500 470 IF INSTR(1%,"GOTGOSRESONE",LEFT$(B$,3%))=0% THEN 500 480 IF B%=58% OR B%=13% THEN 580 490 GOSUB 851 : GOTO 480 500 IF B%<65% OR LEN(B$)<>1% THEN 520 510 D2$=D2$+"%" : GOTO 580 520 IF LEN(B$)<>2% THEN 560 530 K%=ASC(RIGHT$(B$,2%)) 540 IF B%<65% OR K%<48% OR K%>57% THEN 560 550 D2$=D2$+"%" : GOTO 580 560 IF B%<48% OR B%>57% THEN 580 570 IF RIGHT$(B$,LEN(B$))<>"%" THEN D2$=D2$+"%" 580 GOSUB 851 : GOTO 420 590 IF B%<>13% THEN D2$=D2$+CHR$(D%)+LEFT$(D1$,LEN(D1$)-2%) 600 GOSUB 740 : IF E9%<>0% THEN 630 610 GOSUB 680 : GOTO 350 620 ; : ; "Uppgiften utf|rd." : RETURN 630 GOSUB 1080 : ; : ; " Uppgiften ej utf|rd. " : OUT 6%,5% : RETURN 640 ; 650 REM 660 REM * L[SRAD * 670 REM 680 E9%=0% : ONERRORGOTO 690 : INPUTLINE #1%,D1$ : ONERRORGOTO 0 : RETURN 690 E9%=ERRCODE : RETURN 700 ; 710 REM 720 REM * SKRIVRAD * 730 REM 740 E9%=0% : ONERRORGOTO 750 : ; #2%,D2$ : ONERRORGOTO 0 : RETURN 750 E9%=ERRCODE : RETURN 760 ; 770 REM 780 REM * L[S F\RSTA SYMBOL * 790 REM 800 D%=ASC(D1$) : D1$=RIGHT$(D1$,2%) : GOSUB 851 : RETURN 810 ; 820 REM 830 REM * L[S SYMBOL * 840 REM 851 IF D%=13% THEN 900 860 IF D%>64% OR (D%>47% AND D%<59%) THEN 900 870 IF D%<>34% AND D%<>39% THEN 890 880 GOSUB 1010 890 D2$=D2$+CHR$(D%) : D%=ASC(D1$) : D1$=RIGHT$(D1$,2%) : GOTO 851 900 B$="" 910 IF D%=13% THEN B$=CHR$(13%) 920 IF D%<48% AND (D%<36% OR D%>37%) THEN 960 930 IF D%>58% AND D%<65% THEN 960 940 D2$=D2$+CHR$(D%) 950 B$=B$+CHR$(D%) : D%=ASC(D1$) : D1$=RIGHT$(D1$,2%) : GOTO 920 960 B%=ASC(B$) : RETURN 970 ; 980 REM 990 REM * CITATION * 1000 REM 1010 K%=INSTR(1%,D1$,CHR$(D%)) 1020 D2$=D2$+CHR$(D%)+LEFT$(D1$,K%-1%) : D1$=RIGHT$(D1$,K%) 1030 D%=ASC(D1$) : D1$=RIGHT$(D1$,2%) : RETURN 1040 ; 1050 REM 1060 REM * FELMEDDELANDE * 1070 REM 1080 ; : ; "FEL NR."E9% : RETURN