10 ! ------------------------------------------------
20 ! MSGHMT.800 (c) Gunnar Faith-Ell 1986-01-26
30 ! Programmet loggar in och dumpar alla inl{gg till en fil varefter det
40 ! skriver ut filen p} disk
50 !
60 Ver$='version 1,b 1986-02-02'
70 !
80 ! F|ruts{ttningar:
90 ! Modemet ska koppla ner n{r terminalrutinen avslutas
100 !
110 ! S{kerhetssp{rr finns s} att nedkoppling sker om ingenting mottages
120 ! under c:a 75 sekunder. Om MSG st{ller sig och v{ntar p}
130 ! s} skickar programmet det. OBS! Varning m} utf{rdas f|r anv{ndning
140 ! i samband med kraftigt st|rda telelinjer.
150 ! ------------------------------------------------
160 EXTEND : INTEGER
170 P=PEEK2(65500)+6
180 Dump$='TEXT.TXT'
190 N$='*2733' ! Default medlemsnummer.
200 Term$='VSA70C72.40'
210 DIM Buffert$=10000
220 POKE PEEK2(65500)+2,VAROOT(Buffert$),SWAP%(VAROOT(Buffert$))
230 ; CHR$(12);
240 ; 'MSGHMT - (c) Gunnar Faith-Ell 1986-01-26 - ' Ver$
250 ; CUR(5,0) 'Programmet loggar in p} ABC-klubbens monitor och h{mtar alla'
260 ; 'nya inl{gg samt loggar ut igen. Goda telef|rbindelser f|ruts{tts.'
270 ; 'Programmet kopplar automatiskt ner om systemet "fastnar".'
280 ; : ;
290 ; 'Medlemsnummer: <' N$ '> '; : INPUT ''Namn$;
300 IF Namn$='' Namn$=N$ : ; N$ ELSE ;
310 IF ASCII(Namn$)<>42 Namn$='*'+Namn$
320 ; 'Pasword: '; : Pswd$=FNPswd$ : ;
330 ; 'Fil som texten ska dumpas p} <' Dump$ '>';
340 Fil$=FNGet$
350 IF Fil$='' Fil$=Dump$
360 ON ERROR GOTO 880
370 PREPARE Fil$ AS FILE 2
380 OPEN 'v24:'+Term$ AS FILE 1
390 ; : ;
400 INPUT 'Tryck n{r linjen {r klar och du har f}tt b{rv}g 'A$
410 ; : ; 'PF8 avbryter.' : ; : ;
420 FOR I=0 TO 2500 : T$=FNT$ : NEXT I
430 FOR N=0 TO 1
440 T$='' : ; #1,''
450 FOR I=0 TO 2000 : T$=FNT$ : NEXT I
460 K=K+1 : IF K>25 GOTO 910
470 IF T$='' 440
480 K=0 : NEXT N
490 T$=''
500 FOR I=0 TO 3000 : T$=FNT$ : NEXT I
510 K=K+1 : IF K>15 GOTO 910
520 IF T$<>'' 490
530 ; #1,Namn$ : ; #1,Pswd$
540 Pswd$=''
550 FOR I=0 TO 1000 : NEXT I
560 WHILE -1
570 IF SYS(5)=128 GOTO 670
580 IF PEEK2(P) T$=FNT$ ELSE G.=G.+1 : IF G.>60000. GOTO 910 ELSE 570
590 G.=0
600 IF T$=CHR$(13) T$=FNT$ : Rad$='' : GOTO 580
610 Rad$=Rad$+T$
620 IF INSTR(1,Rad$,'V{lkommen, ') 700
630 WEND
640 !
650 ! Kommando fr}n tangentbordet
660 !
670 GET T$
680 IF T$=CHR$(199) ; : ; 'Avbryt!' : ; #1,CHR$(15,15) 'log' : GOTO 800
690 GOTO 580
700 ; : ; 'Dump b|rjar:' CHR$(7) : ;
710 ; #1,'alla' : Kom$='alla'
720 WHILE -1
730 IF PEEK2(P) T$=FNT$ ELSE G.=G.+1 : IF G.>65000. GOTO 910 ELSE 730
740 IF T$=CHR$(13) T$=FNT$ : ; #2,Rad$ : Rad$='' : T$=FNT$ : IF T$=CHR$(10) ; #2,'' : T$=''
750 Rad$=Rad$+T$
760 IF INSTR(1,Rad$,'(Se) tiden.') ; #1,'log' : Kom$='log' : GOTO 800
770 IF INSTR(1,Rad$,'Tryck RETURN') Rad$='' : ; #1,'' : Q$=FNT$
780 IF INSTR(1,Rad$,'Kommandot existerar inte') ; #1,CHR$(15,15) Kom$ : Kom=Kom+1 : IF Kom>7 GOTO 910
790 WEND
800 ; : ; : ; 'Slut p} dump, loggar ut.' CHR$(7)
810 WHILE -1
820 IF PEEK2(P) T$=FNT$ ELSE G.=G.+1 : IF G.>30000. GOTO 890 ELSE 820
830 IF T$=CHR$(13) T$=FNT$ : Rad$='' : T$=FNT$ : IF T$=CHR$(10) T$=''
840 Rad$=Rad$+T$
850 IF INSTR(1,Rad$,'(L{sa) n{sta brev. -') ; 'Brev - }ter till dump' CHR$(7) : GOTO 720
860 IF INSTR(1,Rad$,'Logout ') 890
870 WEND
880 ; 'Du fick ERROR ' ERRCODE
890 CLOSE
900 END
910 ; : ; CHR$(7) 'Fel har uppst}tt - loggar ut.'
920 ; #1,CHR$(15,15) 'log' : GOTO 890
930 DEF FNGet$ LOCAL Rad$=17,J,I,K
940 WHILE -1
950 GET T$
960 IF T$>CHR$(127) RETURN CHR$(127)
970 IF LEN(Rad$)=0 AND T$>'/' AND T$<':' 950
980 IF LEN(Rad$)=0 AND (T$=':' OR T$='.') 950
990 IF T$=CHR$(7) ; CHR$(7);
1000 IF T$=CHR$(8) OR T$=CHR$(127) IF LEN(Rad$) Rad$=LEFT$(Rad$,LEN(Rad$)-1) : ; CHR$(8,32,8); : IF I I=I-1 : IF I=0 K=0
1010 IF T$=CHR$(13) 1140
1020 IF T$=CHR$(24) 1150
1030 IF T$<' ' OR T$>=CHR$(127) 950
1040 IF T$>'`' T$=CHR$(ASCII(T$)-32)
1050 IF T$<'.' OR T$='_' OR T$='/' OR (T$<'@' AND T$>':') 950
1060 IF LEN(Rad$)=17 GOTO 950
1070 IF I=4 GOTO 950
1080 IF K=1 AND T$='.' 950
1090 IF T$<>'.' IF LEN(Rad$)=8+INSTR(1,Rad$,':') AND K=0 Rad$=Rad$+'.' : ; '.'; : K=1 : I=1
1100 IF T$='.' K=1
1110 IF K I=I+1
1120 Rad$=Rad$+T$ : ; T$;
1130 WEND
1140 RETURN Rad$
1150 WHILE J=' ' ; '*'; : P$=P$+T$
1260 IF T$=CHR$(8) ; CHR$(8,32,8);
1270 IF T$=CHR$(13) 1290
1280 WEND
1290 RETURN P$
1300 FNEND
1310 DEF FNT$
1320 IF PEEK2(P)=0 RETURN ''
1330 GET #1,T$
1340 T$=CHR$(ASCII(T$) AND 127)
1350 ; T$;
1360 RETURN T$
1370 FNEND