2 ! +++++++++++++++++++++++++++++++++++
3 ! Program .... ABCTRANS.800
4 ! Utg}va 2.0 1983-03-27
5 ! av (c) Bo Kullmar
8 ! Ins{nt av Bo Kullmar, medl 1789.
9 ! +++++++++++++++++++++++++++++++++++
50 ON ERROR GOTO 10000
80 EXTEND : FLOAT
300 DIM Rad$=159%,Buffert$=10000%
310 IF PEEK2(PEEK2(65500%))<>8% THEN Prom=7.1 ELSE Prom=7.2
320 IF Prom=7.2 THEN POKE PEEK2(65500%)+2%,VAROOT(Buffert$),SWAP%(VAROOT(Buffert$))
400 DATA 2,1,2,4,5
410 DATA 3,2,22,44,55,40
500 ! ******** Konstanter: **********
510 Rubrik$=CHR$(12%)+YEL+DBLE+'ABCTRANS FIL\VERF\RINGSPROGRAM'
520 IF Prom=7.1 THEN Par$='V24:TEA70C72.2' ELSE Par$='V24:TEA70C72.22' ! Default parameter
530 Filslut$='/*' ! Filslut f|r ABCFIL
540 V24%=1%
550 Pr$='PR:VSA30C72.5' ! Parameter f|r printer
560 Hast$(0%)='300' : Hast$(1%)='1200' : Hast$(2%)='2400'
570 Hast$(3%)='75/1200'
1000 ! *** Initiering ****
1010 Z%=FNMeny%
1020 ! POKE 65413,0,0 ! CTRL-C st{ngs av
1030 OPEN Par$ AS FILE V24%
1040 ! *** Huvudloop
1050 INPUT #V24%,Rad$
1060 IF Rad$='SYNK' THEN Z%=FNGetfil% : GOTO 1050
1070 IF Rad$='SENDFIL' THEN Z%=FNSendfil% : GOTO 1050
1080 ; RED Rad$
1090 IF LEN(Rad$)=0% THEN 10800 ELSE 1050
2000 DEF FNMeny%
2010 ; Rubrik$ : ; : ;
2020 ; YEL ' Meny:' : ;
2030 ; CYA ' Pf 1 Meny, ej local mode'
2040 ; CYA ' Pf 2 [ndra hastighet'
2050 ; CYA ' Pf 3 Dumpa Fil'
2060 ; CYA ' Pf 4 Dumpa PR:'
2070 ; CYA ' Pf 5 Ej anv{nd'
2080 ; CYA ' Pf 6 Hardcopy'
2090 ; CYA ' Pf 7 Ej anv{nd'
2100 ; CYA ' Pf 8 Avsluta programmet'
2110 ;
2170 ; YEL ' \verf|r.hast.' CYA FNHast$
2180 ; : ;
2190 RETURN 0%
2200 FNEND
3000 DEF FNGetfil%
3010 ON ERROR GOTO 3340
3020 POKE -30%,0% : ;
3030 ; RED 'Local mode!';
3040 ;
3050 ; YEL ' ****** Mottaga fil ******' : ;
3060 ; YEL 'Filnamn vid MONITORN: '; : INPUT LINE F1$ : ;
3070 F1$=LEFT$(F1$,LEN(F1$)-2%)
3080 ; YEL 'Filnamn h{r: '; : INPUT ''F2$
3090 IF F2$='' THEN F2$=F1$ : ; CUR(PEEK(-173%)-1%,14%) F2$
3100 ; #V24%,'Hejsan'
3110 INPUT #V24%,Rad$
3120 IF Rad$<>'SYNK' THEN 3100
3130 Z%=FNDelay%(100%)
3140 ; #V24%,'SYNKSVAR'
3150 Z%=FNDelay%(200%)
3160 ; #V24%,F1$
3170 INPUT LINE #V24%,Rad$ : Rad$=LEFT$(Rad$,LEN(Rad$)-2%)
3180 IF Rad$<>'OPENED' THEN ; RED Rad$ : ; : Z%=FNDelay%(2000%) : GOTO 3330
3190 PREPARE F2$ AS FILE 2%
3200 FOR I%=1% TO 10000%
3210 Z%=FNDelay%(100%)
3220 ; #V24%,'>'
3230 INPUT LINE #V24%,Rad$
3240 IF LEFT$(Rad$,2%)=Filslut$ THEN 3290
3250 ; #2%,Rad$;
3260 ; GRN 'Rad nr' I%
3270 POKE -173%,PEEK(-173%)-1%
3280 NEXT I%
3290 CLOSE 2%
3300 ; : ; YEL 'Antal rader =' I%-1% : ;
3310 ; CHR$(7%,7%,7%); : POKE -30%,0%
3320 ; #V24%,'Tack!'
3330 RETURN 0%
3340 ; RED ' FEL NR' ERRCODE ', ABCFIL STOPPAS!'
3360 RETURN 0%
3370 FNEND
4000 DEF FNSendfil%
4010 POKE -188%,0%
4015 POKE -30%,0% : ;
4020 ; RED 'Local mode';
4030 ;
4040 ; YEL ' ****** S{nda fil ******' : ;
4050 ; YEL 'Filnamn h{r: '; : INPUT ''F2$
4060 ; YEL 'Lagras vid MONITORN'
4070 ; YEL 'under filnamn: '; : INPUT LINE F1$ : ;
4075 F1$=LEFT$(F1$,LEN(F1$)-2%)
4080 IF F1$='' THEN F1$=F2$ : ; CUR(PEEK(-173%)-1%,16%) F1$
4090 OPEN F2$ AS FILE 2%
4100 ; #V24%,'Hejsan'
4110 INPUT #V24%,Rad$
4120 IF Rad$<>'SENDFIL' THEN 4100
4130 Z%=FNDelay%(100%)
4140 ; #V24%,'SYNKSVAR'
4150 Z%=FNDelay%(200%)
4160 ; #V24%,F1$
4170 ON ERROR GOTO 4270
4180 FOR I%=1% TO 10000%
4190 INPUT LINE #V24%,Dummy$
4200 INPUT LINE #2%,Rad$ : Rad$=LEFT$(Rad$,LEN(Rad$)-2%)
4210 ; GRN 'Rad nr' I%
4220 POKE -173%,PEEK(-173%)-1%
4230 Z%=FNDelay%(100%)
4240 ; #V24%,Rad$
4250 NEXT I%
4270 IF ERRCODE=34% THEN RESUME 4300
4275 IF ERRCODE THEN RESUME 4280
4280 ; CHR$(7%,7%,7%);RED 'Fel nr' ERRCODE
4285 ; #V24%,'FILSLUT, ERROR NR' ERRCODE '(ABC800)!'
4290 ; RED 'Jag s{nder filslutsm{rke nu!'
4300 Z%=FNDelay%(100%)
4310 ; #V24%,Filslut$
4320 CLOSE 2%
4340 ;
4350 ; YEL 'Antal rader =' I%-1% : ;
4360 Z%=FNDelay%(1000%)
4370 ; CHR$(7%,7%,7%); : POKE -30%,0%
4380 ; #V24%,'Tack!'
4390 RETURN 0%
4400 FNEND
6000 DEF FNHast$ LOCAL I%
6010 IF MID$(Par$,10%,1%)='C' THEN Duplex$='full duplex' ELSE Duplex$='halv duplex'
6020 IF Prom=7.1 RESTORE 400 ELSE RESTORE 410
6030 READ Antal%,Ver%
6040 WHILE I%