1 REM Ins{nd av Kristoffer Eriksson <5357> 1986-07-15 02.01.42
20 ! +--------------------------------------------------+
30 ! ! PRATA.BAC - Samtal mellan tv} LUX-NET-noder. !
40 ! ! F|r ABC800-familjen (utom 800C) + LUX-NET. !
50 ! ! Av Kristoffer Eriksson <5357> ABC-klubben. !
60 ! ! F}r kopieras fritt endast i ickekommersiella !
70 ! ! syften, och raderna 1-150 M]STE bevaras. !
80 ! +--------------------------------------------------+
90 INTEGER : EXTEND : ! NO RESUME
100 !
110 ! Ver--/-Datum----/-Sign-/-Kommentar-------------------
120 ! X.00 / 85-04-04 / SKE <5357> Kristoffer Eriksson
130 ! 1.00 / 85-04-09 / SKE / Skriv ej ut o{ndrade pekare
140 Ver$="PRATA, Ver 1.00 av Kristoffer Eriksson, 1985"
150 !
160 ! Ett ganska roligt program f|r samtal mellan LUX-NET-noder. Fr}gan {r bara
170 ! vad det {r f|r nytta med det.
180 ! Kan f|rb{ttras. F.n. ansluts de tv} f|rsta som startar detta program till
190 ! varandra, de tv} n{sta till varandra osv. Det finns inget s{tt att v{lja
200 ! vem man vill prata med. I bland f}r man lov att ta bort PRATA*.TMP-filer.
210 ! Avsluta med PF1. Mark|rstyrning med pilarna och PF5, PF7.
220 !
230 !
240 ; CHR$(12) Ver$
250 Z=FNInit
260 !
270 WHILE Pratfil<20
280 Pratfil$="MFD:PRATA"+NUM$(Pratfil)+".TMP"
290 ON ERROR GOTO 380 : OPEN Pratfil$ AS FILE 1
300 Wsec=2 : Rsec=0
310 IF NOT FNUpptagen THEN 450
320 CLOSE
330 Pratfil=Pratfil+1
340 WEND
350 ; CUR(23,0) WHT "Det finns f|r m}nga pratfiler redan" CHR$(7)
360 GOTO 600
370 !
380 IF ERRCODE<>21 THEN 560
390 ON ERROR GOTO 560 : PREPARE Pratfil$ AS FILE 1
400 FILESTAT #1,4+32
410 PUT #1 STRING$(4*253,0)
420 FILESTAT #1,0
430 Z=FNChmod(28,"PRATA"+NUM$(Pratfil)+SPACE$(3-LEN(NUM$(Pratfil)))+"TMP",0)
440 Wsec=0 : Rsec=2
450 !
460 ; CHR$(12);
470 ; CUR(11,0) C2$;
480 IF Abc=806 THEN ; STRING$(80,ASCII(",")) ELSE ; STRING$(80,ASCII("-"))
490 ON ERROR GOTO 560
500 Z=FNMain
510 !
520 CLOSE
530 IF Slut2 THEN ON ERROR GOTO 560 : KILL Pratfil$
540 GOTO 600
550 !
560 ; CUR(23,0) SPACE$(79);
570 ; CUR(23,0) WHT "Felkod" ERRCODE "p} " Pratfil$ CHR$(7);
580 CLOSE
590 ON ERROR GOTO 600 : KILL Pratfil$
600 ; CUR(23,0) WHT
610 END
620 !
630 DEF FNInit
640 Abc=800 : IF PEEK(39)=4 THEN Abc=806 ELSE IF PEEK(39)=3 THEN Abc=802
650 IF PEEK(39)=4 THEN POKE PEEK2(116)+6,PEEK(PEEK2(116)+6) OR 5 ! ATTR 5
660 DIM Screen$(0:1)=880,Scur(0:1),C0$=1,C1$=1,C2$=1,C3$=1,Pratfil$=16,Opek$=4
670 Screen$(0)=SPACE$(880) : Screen$(1)=Screen$(0)
680 Rpek=0 : Wpek=0 ! Egna pekare
690 Wpek2=0 : Rpek2=0 ! Den andres pekare
700 Slut=0 : Slut2=0
710 Pratfil=1
720 Intervall1=150 ! Minsta tid mellan disk-access
730 Intervall2=450
740 Intervall=Intervall1
750 IF Abc<>806 THEN 800
760 C0$=YEL ! Mottaget
770 C1$=CYA ! S{nt
780 C2$=GGRN ! Mittlinje
790 C3$=YEL ! Statusinfo
800 RETURN 0
810 FNEND
820 !
830 DEF FNUpptagen LOCAL I$=1
840 POSIT #1 Wsec*253
850 GET #1 I$
860 RETURN ASCII(I$)<>0
870 FNEND
880 !
890 DEF FNL{s$ LOCAL I$=253
900 IF Wpek2=Rpek OR Slut2 THEN RETURN ""
910 POSIT #1 Rsec*253+253
920 GET #1 I$ COUNT 253
930 IF Wpek2>Rpek THEN I$=MID$(I$,Rpek+1,Wpek2-Rpek) : GOTO 950
940 I$=RIGHT$(I$,Rpek+1)+LEFT$(I$,Wpek2)
950 Rpek=Wpek2
960 RETURN I$
970 FNEND
980 !
990 DEF FNL{spek LOCAL I$=4
1000 IF Slut2 THEN RETURN 0
1010 POSIT #1 Rsec*253
1020 GET #1 I$ COUNT 4
1030 Wpek2=ASCII(RIGHT$(I$,2))
1040 Rpek2=ASCII(RIGHT$(I$,3))
1050 Slut2=ASCII(RIGHT$(I$,4))
1060 IF NOT Kontakt IF ASCII(I$) THEN Kontakt=-1 : ; CUR(23,2) C3$ "Kontakt";
1070 IF Slut2 THEN ; CUR(23,2) C3$ "F|rbindelsen bruten";
1080 RETURN 0
1090 FNEND
1100 !
1110 ! OBS: Max 1 tkn i S$
1120 DEF FNSkriv(S$) LOCAL I$=253
1130 IF S$="" THEN RETURN 0
1140 IF Wpek+1=Rpek2 OR (Rpek2=0 AND Wpek=252) THEN RETURN -1 ! Fullt
1150 POSIT #1,Wsec*253+253+Wpek
1160 PUT #1 S$
1170 Wpek=MOD(Wpek+1,253)
1180 RETURN 0
1190 FNEND
1200 !
1210 DEF FNSkrivpek LOCAL Npek$=4
1220 POSIT #1 Wsec*253
1230 Npek$=CHR$(255,Wpek,Rpek,Slut)
1240 IF Npek$=Opek$ THEN GET #1 Npek$ : RETURN 0 ! Filpek m}ste {nd} flyttas
1250 PUT #1 Npek$
1260 Opek$=Npek$
1270 RETURN 0
1280 FNEND
1290 !
1300 DEF FNP(S$,Screen) LOCAL P,Maxc,T
1310 Maxc=LEN(Screen$(Screen))
1320 WHILE P