1 REM Ins{nt av 913
10 REM LIST LOGAIN2
20 REM Mod. 19820112--0510 ver 1,7 BoM
30 REM LOGAIN generellt program f|r terminal-kommunikation ABC-80 och DEC-10
40 REM Program av Gunnar Tidner 1981-01-30
50 REM Modifierad N-G Westermark 1981-02-20 TILL[GG AV PRINTER-RUTIN
55 REM Mod.B. Michaelsson.
60 Z$="/*" : C9$=CHR$(13,10) : REM Filslutm{rke resp
70 P8$=""
80 P9$=""
90 DIM B$=119
100 REM
110 GOSUB 1270
120 ; CHR$(12)"SYSTEM TIME - ";H%;M%;S%" -"TAB(29%)"LOCAL MODE" : ; STRING$(40,45)
130 ; CUR(5,5);"M E N Y" : ;
140 ; " 1 Half Duplex Terminal"
150 ; " 2 Full Duplex Terminal"
160 ; " 3 PPN ";P8$
170 ; " 4 Password"
180 ; " 5 Login"
190 ; " 6 Set System Time"
200 ; " 7 Stopp till DEC (2 CTRL-C+CTRL-S)"
210 ; " 8 Chain till annat program"
220 ; " 9 Exit"
230 ; "cT Clear System Time (Ctrl-T)"
240 ; " U Utskrift av 24 rader a' 80 tecken"
250 ONERRORGOTO 30
260 ; CUR(20,0) : GET S$ : IF S$='U' OR S$='u' THEN S$='10'
270 IF S$=CHR$(20%) THEN 1150
280 S%=VAL(S$)
290 IF S%>10 OR S%<1 THEN 30
300 ON S% GOTO 310,330,1030,1060,1090,1170,980,950,940,1410
310 OPEN "V24:KB.1" ASFILE 1 : L%=1 : REM Half Duplex (No Echo)
320 GOTO 340
330 OPEN "V24:KA.1" ASFILE 1 : L%=1 : REM Full Duplex (Echo)
340 INPUT #L%,A$
350 IF A$="SYNK" THEN 390
360 IF A$="SENDFIL" THEN 660
370 IF A$="SIGNAL" THEN OUT 6,7 : GET \$ : OUT 6,0 : GOTO 340
380 ; A$ : IF LEN(A$)=0 THEN 100 ELSE 340
390 ; "LOKAL MODE. Tag tangent!"; : GET C$
400 ; : ; : ; " *** Mottaga fil ***" : ;
410 ; "Filnamn vid MONITORN:"; : INPUT F1$
420 ; : ; "Filnamn h{r:"; : INPUT F2$ : IF F2$='' THEN F2$=F1$ : PRINT F2$ : ;
430 ; #L%,"Hejsan";C9$;
440 INPUT #L%,B$
450 IF B$<>"SYNK" THEN 430
460 FOR T=1 TO 100 : NEXT T
470 ; #L%,"SYNKSVAR";C9$;
480 FOR T=1 TO 100 : NEXT T : REM Synkroniserad
490 ; #L%,F1$;C9$;
500 INPUTLINE #L%,B$ : B$=LEFT$(B$,LEN(B$)-2%)
510 IF B$<>"OPENED" THEN ; B$ : FOR T=1 TO 2000 : NEXT T : GOTO 340
520 PREPARE F2$ ASFILE 2
530 FOR I%=1 TO 10000
540 FOR T=1 TO 100 : NEXT T
550 ; #L%,'>';C9$;
560 INPUTLINE #L%,B$
570 IF LEFT$(B$,2%)=Z$ THEN 610
580 ; #2,B$;
590 ; I%
600 NEXT I%
610 CLOSE 2
620 ; "Antal rader=";I%-1%
630 OUT 6,7 : ; "Tag tangent"; : GET \$ : OUT 6,0
640 ; #L%,"Tack!";C9$;
650 GOTO 340
660 ; "LOKAL MODE Tag tangent!"; : GET C$
670 ; : ; : ; " *** S{nda fil ***" : ; : ;
680 ; "Filnamn h{r:"; : INPUT F2$
700 ; : ; "Filnamn vid MONITORN:"; : INPUT F1$ : IF F1$='' THEN F1$=F2$ : ; F2$
710 OPEN F2$ ASFILE 2
720 ; #L%,"Hejsan";C9$;
730 INPUT #L%,B$
740 IF B$<>"SENDFIL" THEN 720
750 FOR T=1 TO 100 : NEXT T
760 ; #L%,"SYNKSVAR";C9$;
770 FOR T=1 TO 100 : NEXT T
780 ; #L%,F1$;C9$;
790 ONERRORGOTO 870
800 FOR I%=1 TO 10000
810 INPUT #L%,A$
820 INPUTLINE #2,B$ : B$=LEFT$(B$,LEN(B$)-2%)
830 ; I%
840 FOR T=1 TO 100 : NEXT T
850 ; #L%,B$
860 NEXT I%
870 IF ERRCODE=34 THEN ; #L%,Z$;C9$; ELSE ; "Fel nr";ERRCODE
880 CLOSE 2
890 ; "Antal rader=";I%-1%
900 FOR T=1 TO 3000 : NEXT T
910 OUT 6,7 : ; "Tryck ner n}gon tangent" : GET \$ : OUT 6,0
920 ; #L%,"Tack!";C9$;
930 GOTO 340
940 END
950 ; CUR(20,1);"CHAIN till ";
960 INPUT P$
970 CHAIN P$
980 OPEN "V24:KA.1" ASFILE 1
990 ; #1,CHR$(3,3)
1000 ; #1,"TTY ECHO"
1010 ; #1,"TTY NO PAGE" : ; #1,CHR$(19)
1020 GOTO 330
1030 ; " PPN? <";P8$;'>:'; : INPUTLINE \$ : \$=LEFT$(\$,LEN(\$)-2)
1040 IF LEN(\$) THEN P8$=\$
1050 GOTO 100
1060 ; " Password? <";P9$;'>:'; : INPUT \$
1070 IF LEN(\$) THEN P9$=\$
1080 GOTO 100
1090 ; CUR(20,1)" LOGIN"
1100 FOR T=1 TO 1000 : NEXT T
1110 ; #1,"log ";P8$;CHR$(13);
1120 FOR T=1 TO 500 : NEXT T
1130 ; #1,P9$;CHR$(13);
1140 GOTO 340
1150 REM Klockan
1160 H%=0% : M%=0% : S%=0% : GOTO 1190
1170 ; CUR(20,1);"St{ll klockan: ";
1180 ; "H,M,S:"; : INPUT H%,M%,S%
1190 REM Set time to
1200 REM H% Hours, M% Minutes and
1210 REM S% Seconds
1220 Z=1.8E+5*H%+3000*M%+50*S%
1230 Z1=INT(Z/256) : Z1%= NOT Z1
1240 Z%=( NOT (Z-Z1*256)) OR 4%
1250 POKE 65008%,Z%,Z1%,SWAP%(Z1%)
1260 GOTO 100
1270 REM Read System Time
1280 REM D% Contains number of days
1290 REM H% Contains hours.
1300 REM M% minutes and S% seconds
1310 D%=0
1320 IF (PEEK(65008%) AND 4%)=0% THEN 1320
1330 FOR I%=0% TO 2%
1340 Z%(I%)=255% XOR PEEK(65008%+I%) : NEXT I%
1350 Z1$=ADD$(MUL$(NUM$(256%*Z%(2%)+Z%(1%)),'512',0%),NUM$(Z%(0%)*2%),0%)
1360 IF COMP%(Z1$,'8640000')>-1% THEN D%=D%+1% : Z1$=SUB$(Z1$,'8640000',0%) : GOTO 1360
1370 Z=INT(VAL(Z1$)/100)
1380 H%=Z/3600 : Z=Z-3600*H%
1390 M%=Z/60 : S%=Z-60%*M%
1400 RETURN
1410 REM *** Utskrift av sk{rmen ***
1420 ; CHR$(12);CUR(8,0)' Utskrift p}g}r '
1430 ; CUR(15,0)' . - Avbryta'
1440 REM *** Enhet SKR : ***
1450 OPEN "PR:" ASFILE 3
1460 OPEN "SKR:" ASFILE 4
1470 DIM A$(24)=82
1480 FOR I%=1 TO 24
1490 IF INP(56)=46 OR INP(56)=174 THEN 1560
1500 INPUTLINE #4,A$(I%) : A$(I%)=LEFT$(A$(I%),LEN(A$(I%))-2)
1510 ; CUR(10,2)I%-1% : ; SPACE$(5)
1520 FOR I8%=80% TO 1% STEP -1% : IF ASC(MID$(A$(I%),I8%,1%))=32% OR ASC(MID$(A$(I%),I8%,1%))=128% NEXT I8%
1530 IF I8%<1% ; #3 : GOTO 1550
1540 ; #3,MID$(A$(I%),1%,I8%)
1550 NEXT I%
1560 CLOSE 3 : CLOSE 4
1570 IF INP(56)=46 OR INP(56)=174 THEN GET S$
1580 GOTO 30