1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... TYPE.BAS 3 REM ! Utg}va 83-01-15 4 REM ! av (c) Bengt Larsson <2728> 7 REM ! Minne 16 Kbytes 9 REM +++++++++++++++++++++++++++++++++ 10 REM Programmet skriver ut en fil till 11 REM antingen printern eller sk{rmen. 12 REM Screening av : 13 REM Allan Varcoe & G|ran Olsson 15 REM OBS : Om utskrift ska g|ras till 16 REM Printer B\R en Microline 82A 17 REM anv{ndas.(. Det g}r att {ndra 18 REM parametrarna till andra printrar.) 19 REM ++++++++++++++++++++++++++++++++ 50 DIM A$=120% : \%=-1% 60 ; CHR$(12) : ; '*** TYPE ABC-80 Ver. 1.12 (End. ASCII filer) ***' 70 ; 'Infil (.TXT): '; : INPUTLINE F1$ : F1$=LEFT$(F1$,LEN(F1$)-2%) 80 IF INSTR(1%,F1$,'.')=0% THEN F1$=F1$+'.TXT' 90 ; : ; 'Utfil (Sk{rm): '; : GET F2$ : ; F2$ 100 IF F2$='P' OR F2$='p' THEN 110 ELSE 210 110 REM ** PRINTER PARAMETERS FOR Microline 82A 120 ; 'Radl{ngd (L}ng/Kort): '; : GET R$ : ; R$ 130 IF R$='K' OR R$='k' THEN S1$=CHR$(27)+'B' ELSE S1$=CHR$(27)+'A' 140 ; 'Teckenbredd (5/8/10/16 cpi): '; : INPUTLINE T$ : ; 150 IF LEN(T$)<3% THEN T$='10' ELSE T$=LEFT$(T$,LEN(T$)-2%) 160 IF T$='5' THEN S2$=CHR$(30%)+CHR$(31%) : GOTO 210 170 IF T$='8' THEN S2$=CHR$(29%)+CHR$(31%) : GOTO 210 180 IF T$='10' THEN S2$=CHR$(30%) : GOTO 210 190 IF T$='16' THEN S2$=CHR$(29%) : GOTO 210 200 GOTO 140 210 ; 'S|koptions (N): '; : GET A$ : ; A$ 220 IF INSTR(1%,'JjYy',A$)=0% S%=0% ELSE S%=-1% : GOSUB 600 230 ; 'Utskriftsoptions (Formfeed,Rubrik,Nummer): '; : INPUTLINE O$ : ; 240 IF LEN(O$)<>2% THEN O$=LEFT$(O$,LEN(O$)-2%) 250 GOSUB 780 260 ; : ; ' Temp stopp --> CtlS, forts{tt --> , bryt --> CtlB ' 270 ; 'OK'; : INPUT A$ : IF A$='N' THEN 70 280 ONERRORGOTO 520 290 OPEN F1$ ASFILE 1 300 IF INSTR(1%,'Pp',F2$) THEN OPEN "PR:" ASFILE 2 : U%=2% ELSE U%=0% 310 REM S[TT PRINTER OPTIONS 320 ; #U%,S1$ : ; #U%,S2$ : IF F8% THEN ; #U%,CHR$(12) 330 IF R% GOSUB 830 340 REM H[R B\RJAR LOOPEN 350 INPUTLINE #1%,A$ 360 N1%=N1%+1% 370 IF \1% THEN 480 380 IF LEN(A$)>2% THEN A$=LEFT$(A$,LEN(A$)-2%) ELSE A$='' 390 IF NOT S% GOTO 440 400 IF F5% GOSUB 750 410 IF (NOT F0%) AND F9% GOSUB 720 420 IF F0% GOSUB 690 430 IF \% GOTO 350 440 IF N% THEN ; #U%,N1%;TAB(4)': '; 450 ; #U%,A$ 460 IF ((INP(56%) AND 127%)=19%) THEN GET A$ : IF A$=CHR$(2%) THEN 480 470 IF ((INP(56%) AND 127%)=2%) THEN 480 ELSE 350 480 IF INSTR(1%,'Pp',F2$) THEN ; #U%,CHR$(30%)+CHR$(27%)+CHR$(13%) : FOR I=1 TO 50 : NEXT I : ; #U%,CHR$(27)+'A' 490 CLOSE 1 500 CLOSE 2 510 END 520 REM ERROR HANDLING 530 E%=ERRCODE : ONERRORGOTO 520 540 IF E%=42% THEN ; 'Skivan ej klar' : GET A$ : GOTO 290 550 IF E%=34% THEN ; : ; 'End-of-file' : GOTO 480 560 IF E%=21% THEN ; 'Hittar ej filen' : GOTO 70 570 IF E%=20% THEN ; 'Rad l{ngd l{ngre {n 120 tkn' : GOTO 480 580 ; 'Kan ej l{sa filen ERROR nr';E% : GOTO 480 590 REM END ERROR HANDLING 600 ; 'Startstr{ng: '; : INPUTLINE F0$ : ; 610 IF LEN(F0$)=2% THEN F0%=0% ELSE F0%=-1% : F0$=LEFT$(F0$,LEN(F0$)-2%) 620 ; 'Stoppstr{ng: '; : INPUTLINE F9$ : ; 630 IF LEN(F9$)=2% THEN F9%=0% ELSE F9%=-1% : F9$=LEFT$(F9$,LEN(F9$)-2%) 640 IF F0% OR F9% THEN RETURN 650 ; 'Lista alla rader med f|rekommst av: ' 660 INPUTLINE F5$ : ; 670 IF LEN(F5$)=2% THEN F5%=0% ELSE F5%=-1% : F5$=LEFT$(F5$,LEN(F5$)-2%) 680 RETURN 690 REM START CHECK 700 IF INSTR(1%,A$,F0$)=0% THEN \%=-1% ELSE F0%=0% : \%=0% 710 RETURN 720 REM STOP CHECK 730 IF INSTR(1%,A$,F9$)=0% THEN \%=0% ELSE \%=0% : \1%=-1% 740 RETURN 750 REM SELECTED LINES ONLY 760 IF INSTR(1%,A$,F5$)=0% THEN \%=-1% ELSE \%=0% 770 RETURN 780 REM OPTIONS 790 IF INSTR(1%,O$,'F') OR INSTR(1%,O$,'f') THEN F8%=-1% 800 IF INSTR(1%,O$,'R') OR INSTR(1%,O$,'r') THEN R%=-1% 810 IF INSTR(1%,O$,'N') OR INSTR(1%,O$,'n') THEN N%=-1% 820 RETURN 830 REM RUBRIK 840 ; #U%,SPACE$(10%);F1$ : ; #U%,SPACE$(10%);STRING$(LEN(F1$),61%) 850 RETURN 860 REM END-OF-FILE