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