10 REM ABCTRANS fil|verf|ring ABC-80 och DEC-10 |ver V24 och modem 300 baud 15 REM Program av Gunnar Tidner 1981-01-30 20 Z$="/*" : C9$=CHR$(13,10) : REM Filslutm{rke resp 30 DIM B$=119 40 ; CHR$(12);"LOKAL MODE!" 50 GOSUB 910 60 ; CUR(5,5);"Vad vill du g|ra?" : ; 70 ; " 1 Half Duplex terminal" 80 ; " 2 Full Duplex Terminal" 90 ; " 3 System Time ";H%;M%;S% 100 ; " 4 Chain till annat program" 110 ; " 5 Exit" 120 GET S$ : IF ASC(S$)<49 OR ASC(S$)>53 THEN 40 : S%=VAL(S$) 130 ON S% GOTO 140,160,800,770,760 140 OPEN "V24:KB.1" ASFILE 1 : L%=1 : REM Half Duplex (No Echo) 150 GOTO 170 160 OPEN "V24:KA.1" ASFILE 1 : L%=1 : REM Full Duplex (Echo) 170 INPUT #L%,A$ 180 IF A$="SYNK" THEN 220 190 IF A$="SENDFIL" THEN 480 200 IF A$="SIGNAL" THEN OUT 6,7 : FOR T=1 TO 3000 : NEXT T : OUT 6,0 : GOTO 170 210 ; A$ : IF LEN(A$)=0 THEN 40 ELSE 170 220 ; "LOKAL MODE Tryck tangent!" : GET C$ 230 ; " *** Mottaga fil ***" 240 ; "Filnamn vid MONITORN:"; : INPUT F1$ 250 ; "Filnamn h{r:"; : INPUT F2$ 260 ; #L%,"Hejsan";C9$; 270 INPUT #L%,B$ 280 IF B$<>"SYNK" THEN 260 290 FOR T=1 TO 100 : NEXT T 300 ; #L%,"SYNKSVAR";C9$; 310 FOR T=1 TO 100 : NEXT T : REM Synkroniserad 320 ; #L%,F1$;C9$; 330 INPUTLINE #L%,B$ : B$=LEFT$(B$,LEN(B$)-2%) 340 IF B$<>"OPENED" THEN ; B$ : FOR T=1 TO 2000 : NEXT T : GOTO 170 350 PREPARE F2$ ASFILE 2 360 FOR I%=1 TO 10000 365 FOR T=1 TO 100 : NEXT T 370 ; #L%,'>';C9$; 380 INPUTLINE #L%,B$ 390 IF LEFT$(B$,2%)=Z$ THEN 430 400 ; #2,B$; 410 ; I% 420 NEXT I% 430 CLOSE 2 440 ; "Antal rader=";I%-1% 450 OUT 6,7 : ; "Tryck ner n}gon tangent" : GET \$ : OUT 6,0 460 ; #L%,"Tack!";C9$; 470 GOTO 170 480 ; "LOKAL MODE Tryck tangent!" : GET C$ 490 ; " *** S{nda fil ***" 500 ; "Filnamn h{r:"; : INPUT F2$ 510 ; "Lagras vid MONITORN" 520 ; "under filnamn:"; : INPUT F1$ 530 OPEN F2$ ASFILE 2 540 ; #L%,"Hejsan";C9$; 550 INPUT #L%,B$ 560 IF B$<>"SENDFIL" THEN 540 570 FOR T=1 TO 100 : NEXT T 580 ; #L%,"SYNKSVAR";C9$; 590 FOR T=1 TO 100 : NEXT T 600 ; #L%,F1$;C9$; 610 ONERRORGOTO 690 620 FOR I%=1 TO 10000 630 INPUT #L%,A$ 640 INPUTLINE #2,B$ : B$=LEFT$(B$,LEN(B$)-2%) 650 ; I% 660 FOR T=1 TO 100 : NEXT T 670 ; #L%,B$ 680 NEXT I% 690 ; #L%,Z$;C9$; 700 CLOSE 2 710 ; "Antal rader=";I%-1% 720 FOR T=1 TO 3000 : NEXT T 730 OUT 6,7 : ; "Tryck ner n}gon tangent" : GET \$ : OUT 6,0 740 ; #L%,"Tack!";C9$; 750 GOTO 170 760 END 770 ; CHR$(12);CUR(5,5);"CHAIN till annat program" 780 ; CUR(10,0);"Program-namn:"; : INPUT P$ 790 CHAIN P$ 800 REM Klockan 810 ; CHR$(12)CUR(5,5);"St{ll klockan!" 820 ; CUR(10,5);"H,M,S:"; : INPUT H%,M%,S% 830 REM Set time to 840 REM H% Hours, M% Minutes and 850 REM S% Seconds 860 Z=1.8E+5*H%+3000*M%+50*S% 870 Z1=INT(Z/256) : Z1%= NOT Z1 880 Z%=( NOT (Z-Z1*256)) OR 4% 890 POKE 65008%,Z%,Z1%,SWAP%(Z1%) 900 GOTO 40 910 REM Read System Time 920 REM D% Contains number of days 930 REM H% Contains hours. 940 REM M% minutes and S% seconds 950 D%=0 960 IF (PEEK(65008%) AND 4%)=0% THEN 960 970 FOR I%=0% TO 2% 980 Z%(I%)=255% XOR PEEK(65008%+I%) : NEXT I% 990 Z1$=ADD$(MUL$(NUM$(256%*Z%(2%)+Z%(1%)),'512',0%),NUM$(Z%(0%)*2%),0%) 1000 IF COMP%(Z1$,'8640000')>-1% THEN D%=D%+1% : Z1$=SUB$(Z1$,'8640000',0%) : GOTO 1000 1010 Z=INT(VAL(Z1$)/100) 1020 H%=Z/3600 : Z=Z-3600*H% 1030 M%=Z/60 : S%=Z-60%*M% 1040 RETURN