1 REM Ins{nd av Bo Kullmar <1789> 1985-01-06 11.04.29 2 ! +++++++++++++++++++++++++++++++++++ 3 ! Program .... PARPR.800 4 ! Utg}va 2.4 1985-01-06 5 ! av (c) Bo Kullmar 9 ! Ins{nt av Bo Kullmar, medlem 1789 10 ! [ndrar parametrar till ABCTERM 11 ! +++++++++++++++++++++++++++++++++++ 12 EXTEND : INTEGER 100 COMMON Parv24$=16,Parpr$=15,Dimbuff,Pf(32),Pf$(32)=81,Meny$(32)=14 110 COMMON Logginnr,Medlemsnr,L|senord$=5,Prom.,Duplex$=11,Enh$=4 120 COMMON Pftkn$(32)=1,Tscreen$=2048,Curpos,]ter,Dator$=8,Inifil$=16,Pfpekare 130 COMMON R|d$=1,Gul$=1,Bl}$=1,Gr|n$=1,Cyan$=1,Magneta$=1,Dubel$=1 300 DIM In$=80,Pftext$=1000 500 IF Dator$='' THEN CHAIN 'START.BAC' 1000 Z=FN[ndrterm 1010 ; Gul$ 'Programmet SETUP laddas och exikveras!' : CHAIN Enh$+'SETUP.BAC' 2000 ! Fibeskrivning ABCTERM.INI 2010 ! Parameter f|r V24 16 Bytes $ 2020 ! Parameter f|r PR: 15 Bytes $ 2030 ! Buffertstolek 2 Bytes % 2035 ! Rutinnr f|r 1-32 1 Byte per rutin i ASCII 2040 ! Poster 1-32 2060 ! Antal tecken 1 Byte i ASCII 2065 ! Ev nr p} Pf 1 Byte i ASCII 2070 ! Str{ng 80 Bytes $ 2080 ! Menytext 14 Bytes $ 3000 DEF FN[ndrterm 3010 ; CHR$(12) Gul$ Dubel$ '[ndring av printerparametrar' : ; : ; : ; 3020 Rutin=FNVal{nrterm 3030 ON Rutin GOTO 3040,3050,3060,3070,3080,3090,3100,3110,3120,3130 3040 Z=FN[ndratermtyp : GOTO 3010 3050 Z=FNTecken : GOTO 3010 3060 Z=FNPerfskip : GOTO 3010 3070 Z=FNAntrader : GOTO 3010 3080 Z=FNFfsim : GOTO 3010 3090 Z=FNCrlf : GOTO 3010 3100 Z=FN[ndraparitet : GOTO 3010 3110 Z=FN[ndrahastighet : GOTO 3010 3120 Z=FNDcd : GOTO 3010 3130 ; Gul$ 'Skall parameterv{rdena sparas p} disk? (J/N) '; : GET Svar$ : ; Svar$ 3140 Svar$=FNStora$(Svar$) : IF Svar$='J' THEN 3150 ELSE 3190 3150 OPEN Enh$+Inifil$ AS FILE 10 3160 POSIT #10,16 3170 PUT #10,Parpr$ 3180 CLOSE 10 : RETURN 0 3190 ; Cyan$ 'Parameterna finns kvar tills n{sta {ndring eller tills programmet avslutas!' 3200 Z=FNDelay(2000) : RETURN 0 3210 FNEND 4000 DEF FNDelay(Y.) LOCAL I. 4010 WHILE I.95 THEN X$=X$+CHR$(A AND 223) ELSE X$=X$+CHR$(A) 5040 NEXT J 5050 RETURN X$ 5060 FNEND 6000 DEF FNVal{nrterm LOCAL Norm$=15 6001 Norm$='Ange (1-8,K) ' : Spec$='Ange (1-9,K) ' 6010 ; Cyan$ 'Detta kan du g|ra:' : ; : ; 6015 ! ; Parpr$ 6020 ; Gul$ '1 [ndra printertyp' 6060 ; Gul$ '2 [ndra antal tecken per rad' 6061 ; Gul$ '3 [ndra antal rader som skall hoppas |ver vid sidslut' 6062 ; Gul$ '4 [ndra antal rader per sida' 6063 ; Gul$ '5 [ndra FF-simulering' 6064 ; Gul$ '6 [ndra behandling av CR och LF' 6080 ; Gul$ '7 [ndra paritet' 6090 ; Gul$ '8 [ndra |verf|ringshastighet' 6100 IF Prom.=7.2 OR Prom.=7.21 THEN ; Gul$ '9 [ndra test p} DCD vid OPEN/PREPARE' 6110 ; Gul$ 'K Klar' : ; : IF Prom.=7.21 THEN ; Gul$ Spec$; ELSE ; Gul$ Norm$; 6120 GET Svar$ : Svar$=FNStora$(Svar$) : ; Svar$; 6130 IF (Prom.=7.2 OR Prom.=7.21) AND INSTR(1,'123456789K',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 6120 6135 IF Prom.=7.1 AND INSTR(1,'12345678K',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 6120 6140 ; : ; : IF Svar$='K' THEN RETURN 10 ELSE RETURN VAL(Svar$) 6150 FNEND 7000 DEF FN[ndratermtyp LOCAL Svar$=1 7010 ; CHR$(12) Gul$ Dubel$ '[ndring av printertyp' : ; : ; : ; 7020 ; Cyan$ 'Dessa typer kan v{ljas:' : ; : ; 7030 ; Gul$ 'C Skrivare typ Centronics' 7031 ; Gul$ 'P Skrivare typ SP1' 7032 ; Gul$ 'U Skrivare typ UART' 7040 ; Gul$ 'V Skrivare typ simulerad UART' : ; : ; 7050 ; Cyan$ 'V{lj C/P/U/V ! (' MID$(Parpr$,4,1) ') '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=MID$(Parpr$,4,1) 7060 ; FNStora$(Svar$); : Svar$=FNStora$(Svar$) : IF INSTR(1,'CPUV',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 7050 7070 MID$(Parpr$,4,1)=Svar$ 7080 RETURN 0 7090 FNEND 8000 DEF FN[ndraparitet LOCAL Svar$=1,De$=1,Pk,Par$=1,Xon,Alt$=4,Tkn 8010 ; CHR$(12) Gul$ Dubel$ '[ndring av paritet' : ; : ; : ; 8020 De$=MID$(Parpr$,5,1) 8030 ; Cyan$ 'V{lj typ av paritet!' : ; 8040 ; Gul$ 'Even (j{mn), Odd (udda), Mark eller Space' 8050 ; Gul$ 'Svara E,O,M eller S! (' De$ ') '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=De$ 8060 ; FNStora$(Svar$); : Svar$=FNStora$(Svar$) : Tkn=INSTR(1,'EOMS',Svar$) 8065 IF Tkn=0 THEN ; ,R|d$ 'Fel val!' : GOTO 8050 8070 MID$(Parpr$,5,1)=Svar$ 8080 RETURN 0 8090 FNEND 8300 DEF FNFfsim LOCAL Svar$=1,De$=1,D$=1 8310 Ff$='BFJNDHLP' : Ejff$='AEIMCGKO' : D$=MID$(Parpr$,9,1) 8320 IF INSTR(1,'BFJNDHLP',MID$(Parpr$,9,1))<>0 THEN De$='J' ELSE De$='N' 8330 IF De$='J' THEN Pek=INSTR(1,Ff$,D$) ELSE Pek=INSTR(1,Ejff$,D$) 8340 ; CHR$(12) Gul$ Dubel$ '[ndring FF-simulering' : ; : ; : ; 8350 ; Cyan$ 'FF-simulering inneb{r att printerrutinen skickar ett antal LF (Line Fedd)' 8360 ; Cyan$ 'f|r att komma till n{sta sida. Ej FF-simulering betyder att printerrutinen' 8370 ; Cyan$ 'skickar FF (Form Feed) som sedan tas om hand i skrivaren som g|r sid-' 8380 ; Cyan$ 'frammatning.' : ; 8390 ; Gul$ '\nskas FF-simulering? (' De$ ') '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=De$ 8400 ; FNStora$(Svar$); : Svar$=FNStora$(Svar$) : IF INSTR(1,'JN',Svar$)=0 THEN ; ,,R|d$ 'Fel val!' : GOTO 8390 8410 IF Svar$='J' THEN MID$(Parpr$,9,1)=MID$(Ff$,Pek,1) 8420 IF Svar$='N' THEN MID$(Parpr$,9,1)=MID$(Ejff$,Pek,1) 8430 RETURN 0 8440 FNEND 9000 DEF FNPerfskip LOCAL Svar$=1,Def$=1 9010 Def$=MID$(Parpr$,8,1) 9020 ; CHR$(12) Gul$ Dubel$ 'Perforeringsskip' : ; : ; : ; 9030 ; Gul$ 'Ange hur m}nga rader som skall hoppas |ver vid sidslut' 9110 ; Gul$ 'V{lj 0-9 (' Def$ ') ! '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=Def$ : ; Svar$; 9120 IF INSTR(1,'0123456789',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 9110 9130 MID$(Parpr$,8,1)=Svar$ 9140 RETURN 0 9150 FNEND 9200 DEF FNAntrader LOCAL Svar$=2,Def$=2 9210 Def$=MID$(Parpr$,10,2) 9220 ; CHR$(12) Gul$ Dubel$ 'Antal rader per sida' : ; : ; : ; 9230 ; Gul$ 'Ange antal rader per sida.' 9240 ; Gul$ 'V{lj 1-99 (' Def$ ') ! '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=Def$ : ; Svar$ : GOTO 9290 9250 IF INSTR(1,'0123456789',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 9240 9260 ; Svar$; : GET Svar2$ : ; Svar2$; : Svar$=Svar$+Svar2$ 9270 IF INSTR(1,'0123456789',Svar2$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 9240 9280 IF Svar$='00' THEN ; ,R|d$ 'Fel val!' : GOTO 9240 9290 ; : ; : MID$(Parpr$,10,2)=Svar$ 9300 RETURN 0 9310 FNEND 11200 DEF FNTecken LOCAL Svar$=1,Def$=1 11210 Def$=MID$(Parpr$,7,1) 11220 ; CHR$(12) Gul$ Dubel$ 'Antal tecken per rad' : ; : ; : ; 11230 ; Gul$ 'Val nr','Antal tecken per rad' : ; 11240 ; Cyan$ '1',' 40' 11250 ; Cyan$ '2',' 72' 11260 ; Cyan$ '3',' 80' 11270 ; Cyan$ '4','120' 11280 ; Cyan$ '5','132' 11290 ; Cyan$ '6','158' 11300 ; Cyan$ '7','254' : ; 11310 ; Gul$ 'V{lj 1-7 (' Def$ ') ! '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=Def$ : ; Svar$; 11320 IF INSTR(1,'1234567',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 11310 11330 MID$(Parpr$,7,1)=Svar$ 11340 RETURN 0 11350 FNEND 13000 DEF FNCrlf LOCAL De$=2,D$=1,Ja$=8,Nej$=8,Pek 13010 De$=MID$(Parpr$,9,1) 13020 IF INSTR(1,'IJKLMNOP',De$)<>0 THEN D$='J' 13030 IF INSTR(1,'ABCDEFGH',De$)<>0 THEN D$='N' 13040 Ja$='IJKLNMOP' : Nej$='ABCDEFGH' 13050 IF D$='J' THEN Pek=INSTR(1,Ja$,De$) ELSE Pek=INSTR(1,Nej$,De$) 13060 ; CHR$(12) Gul$ Dubel$ 'Behandling av CR och LF' : ; : ; : ; 13070 ; Cyan$ 'V{lj om CR mottages skall LF generas. '; 13080 ; Cyan$ 'V{lj (' D$ ') ! '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=D$ 13090 Svar$=FNStora$(Svar$) : ; Svar$; 13100 IF INSTR(1,'JN',Svar$)=0 THEN ; R|d$,'Fel val!' : GOTO 13080 13110 IF Svar$='J' THEN MID$(Parpr$,9,1)=MID$(Ja$,Pek,1) 13120 IF Svar$='N' THEN MID$(Parpr$,9,1)=MID$(Nej$,Pek,1) 13130 ; ! : ; Parpr$ 13140 De$=MID$(Parpr$,9,1) 13150 IF INSTR(1,'CGKODHLP',De$)<>0 THEN D$='J' 13160 IF INSTR(1,'AEIMBFJN',De$)<>0 THEN D$='N' 13170 Ja$='CGKODHLP' : Nej$='AEIMBFJN' 13180 IF D$='J' THEN Pek=INSTR(1,Ja$,De$) ELSE Pek=INSTR(1,Nej$,De$) 13190 ; : ; : ; : ; Cyan$ 'V{lj CRLF vid radslut '; 13200 ; Cyan$ 'V{lj (' D$ ') ! '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=D$ 13210 Svar$=FNStora$(Svar$) : ; Svar$; 13220 IF INSTR(1,'JN',Svar$)=0 THEN ; R|d$,'Fel val!' : GOTO 13200 13230 IF Svar$='J' THEN MID$(Parpr$,9,1)=MID$(Ja$,Pek,1) 13240 IF Svar$='N' THEN MID$(Parpr$,9,1)=MID$(Nej$,Pek,1) 13250 RETURN 0 13260 FNEND 14000 DEF FN[ndrahastighet 14010 ; CHR$(12) Gul$ Dubel$ '[ndring av |verf|ringshastigheten' : ; : ; 14050 ; : Z=FNHastigheter 14060 ; Gul$ 'V{lj |verf|ringshastighet'; 14070 De$=MID$(Parpr$,13,1) : ; Gul$ ' (' De$ ') ! '; : GET Svar$ : IF Svar$=CHR$(13) THEN Svar$=De$ 14075 ; Svar$ 14080 IF INSTR(1,'012345678',Svar$)=0 THEN ; ,R|d$ 'Fel val!' : GOTO 14050 14090 MID$(Parpr$,13,1)=Svar$ : RETURN 0 14100 FNEND 15000 DEF FNHastigheter 15005 ; Gul$ 'M|jliga hastigheter:' : ; 15010 ; Cyan$ 'Val: Hastighet (pbs)' : ; 15020 ; Cyan$ ' 0 75' 15030 ; Cyan$ ' 1 110' 15040 ; Cyan$ ' 2 300' 15050 ; Cyan$ ' 3 600' 15060 ; Cyan$ ' 4 1200' 15070 ; Cyan$ ' 5 2400' 15080 ; Cyan$ ' 6 4800' 15090 ; Cyan$ ' 7 9600' 15100 ; Cyan$ ' 8 19200' : ; 15110 RETURN 0 15120 FNEND 16000 DEF FNDcd LOCAL De$=1,D$=1,Ja$=8,Nej$=8,Pek 16010 De$=MID$(Parpr$,15,1) 16020 IF INSTR(1,'BFJNDHLP',De$)<>0 THEN D$='J' 16030 IF INSTR(1,'AEIMCGKO',De$)<>0 THEN D$='N' 16040 Ja$='BFJNDHLP' : Nej$='AEIMCGKO' 16050 IF D$='J' THEN Pek=INSTR(1,Ja$,De$) ELSE Pek=INSTR(1,Nej$,De$) 16060 ; CHR$(12) Gul$ Dubel$ 'DCD test vid OPEN/PEPARE?' : ; : ; : ; 16070 ; Cyan$ 'DCD test inneb{r att test sker vid OPEN/PREARE om signal finns p}' 16080 ; Cyan$ 'pinne 8 i datorns printerkontakt. Om signal saknas ges felmeddelande nr 42.' 16090 ; : ; : ; Cyan$ 'Skall DCD test ske'; 16100 ; Cyan$ ' (' D$ ') ? '; : GET Svar$ : Svar$=FNStora$(Svar$) : IF Svar$=CHR$(13) THEN Svar$=D$ 16110 ; Svar$; 16120 IF INSTR(1,'JN',Svar$)=0 THEN ; R|d$,'Fel val!' : GOTO 16100 16130 IF Svar$='J' THEN MID$(Parpr$,15,1)=MID$(Ja$,Pek,1) 16140 IF Svar$='N' THEN MID$(Parpr$,15,1)=MID$(Nej$,Pek,1) 16150 ; : ; : RETURN 0 16160 FNEND