1 REM ### SNYGGBAS Thomas Sj|land 80 10 17 ### 2 REM ett program f|r vettigare utskrift av BASIC-programmen {n vad ABC-80 's "operativsystem" bjuder p} ! 3 REM Filen, som skall skrivas ut, lagras i ASCII-format med LIST-kommandot. 5 Z$=CHR$(13%)+CHR$(10%) 10 DIM B$=130%,C$=7%,F$=8%,R$(800%) 30 ; 'basfil att lista'; : INPUT F$ 40 OPEN F$+'.bas' ASFILE 1% 49 ; 'utfil:'; : INPUT F9$ 50 PREPARE F9$ ASFILE 2% 60 IF P%=0% THEN 100 70 ; #P%STRING$(70%,ASC('=')) 80 ; #P%TAB(5%);F$+'.BAS'+' i snygg lista' 90 ; #P%STRING$(70%,ASC('=')) 100 ONERRORGOTO 290 : INPUTLINE #1%,B$ : I%=5% : C1%=1% : C2%=1% : C3%=0% : F%=5% : R%=0% 110 L%=INSTR(1%,B$,' ') : L$=LEFT$(B$,L%-1%) : B$=RIGHT$(B$,L%+1%) : IF P%=2% THEN GOSUB 320 120 IF B$='' THEN I%=F% : GOTO 100 ELSE C$=LEFT$(B$,1%) : B$=RIGHT$(B$,2%) : I%=I%+1% 130 IF C$='"' AND C2%=1% THEN C1%=-C1% 140 IF C$="'" AND C1%=1% THEN C2%=-C2% 150 IF C$=':' AND C1%=1% AND C2%=1% AND C3%=0% THEN I%=F% : C1%=1% : C2%=1% : ; #P%Z$+SPACE$(I%); : R%=0% : GOTO 120 160 IF I%>72% THEN I%=F% : ; #P%Z$+SPACE$(F%); 170 IF C$<>' ' AND C$<>',' AND C$<>CHR$(13%) AND C$<>CHR$(10%) THEN I$=I$+C$ : IF LEN(I$)<72%-F% THEN 120 171 IF C3%=1% THEN 260 180 IF I$='REM' OR I$='DATA' THEN C3%=1% : GOTO 260 190 IF I$='IF' THEN F%=F%+3% 200 IF I$='IF' OR I$='GOTO' OR I$='GOSUB' OR I$='ONERRORGOTO' THEN R%=1% 205 IF I$='ELSE' THEN I%=F% : ; #P%Z$+SPACE$(F%)+I$+Z$+SPACE$(F%); : I$='' : GOTO 120 210 ONERRORGOTO 260 : IF R%=0% THEN 260 220 V=VAL(I$) 230 FOR I%=1% TO J% 240 IF R$(I%)=I$ THEN 260 250 NEXT I% : J%=J%+1% : R$(J%)=I$ 260 IF P%=2% THEN ; #P%I$+C$; 270 ; : ; 'I$=!';I$;'!' : I$='' 280 GOTO 120 290 CLOSE 1% : IF P%=0% THEN OPEN F$+'.BAS' ASFILE 1% : P%=2% : GOTO 70 300 ; #P%Z$+STRING$(70%,ASC('#')) 310 CLOSE 2% : END 320 REM sub f|r koll av rnr 330 FOR I%=1% TO J% 340 IF R$(I%)=L$ THEN ; #P%Z$+STRING$(70%,ASC('-'))+Z$+L$;TAB(F%); : RETURN 350 NEXT I% 360 ; #P%TAB(F%); : RETURN