1 REM Ins{nd av Tommy Kellgren <733> 1985-03-19 20.45.05 10 REM **************************** 20 REM TERMINAL PROGRAM F\R ABC80 30 REM MED MODEMKORT 5124.TOMMY K.(733) 40 REM 300 A/B ,75/1200 , 1200/75 50 REM **************************** 60 REM 70 REM * S[TT PARAMETRAR 80 REM * LAGRA 10 TEL.NR. * 90 ONERRORGOTO 240 : FOR I%=0% TO 10% : READ B$(I%),C$(I%),E%(I%) : NEXT I% 100 REM * BAUDRATE * 110 REM * 64=300A * 65=300B * 120 REM * 66=1200/75 * 102=75/1200 * 130 REM * NAMN * TEL.NUMMER * BAUDRATE * 140 DATA 'ABC-KLUBBEN','801523',64 150 DATA 'ABC-KLUBBEN','801526',64 160 DATA 'ABC-KLUBBEN','801725',64 170 DATA 'QZ 300','238660',64 180 DATA 'QZ 75/1200','228130',102 190 REM DATA 'NAMN','NUMMER',BAUDRATE 200 REM DATA 'NAMN','NUMMER',BAUDRATE 210 REM DATA 'NAMN','NUMMER',BAUDRATE 220 REM DATA 'NAMN','NUMMER',BAUDRATE 230 REM DATA 'NAMN','NUMMER',BAUDRATE 240 B%=I%-1% : ONERRORGOTO 0 250 REM 260 DIM N$=119,A$=119 : REM TR,REC STR[NG 270 C%=10% : REM KANAL NUMMER 280 C1%=64% : REM DEFAULT 300 BAUD 290 C3%=27% : REM RESET, 8 BIT,NOPARITY, 1 STOP BIT (CTRL-Q,S FUNKTION) 300 T$(1%)='BAUDRATE (SEND/REC)' 310 T$(2%)='PARITY (Y/N)' 320 T$(3%)='PARITET TYPE (ODD/EVEN)' 330 T$(4%)='STOPPBITS (1,2)' 340 T$(5%)='DATABITS (5/6/7/8)' 350 P%=0% : REM KOMMUNIKATION SKRIVS EJ P] PRINTER,* 0=AV 1=P] * 360 REM * INT. HANTERING * 370 POKE 63796,56,249,148,5,245,229,219,56,33,128,255,119,225,241,237,77 380 REM * [NDRA I-REG * 390 POKE 65408,0,245,62,249,237,71,241,201 400 REM ******************************* 410 REM 420 ; CHR$(12%) : OUT 1%,C%,4%,C3% 430 REM * CTRL-C ON * 440 POKE 65411%,0% : A=CALL(65409%) 450 ; '***************************************' 460 ; : ; '*** MIKROTEKNIK DATABOARDMODEM 5124 ***' : ; 470 ; '*** BOX 306, 175 25 J[RF[LLA, 0758-12525' 480 ; '*** TERMINALRUTIN F\R ABC80 ***' 490 ; CUR(9%,5%)'C => CALL' 500 ; TAB(5%)'H => HELP' 510 ; TAB(5%)'D => DISPLAY PARAMETERS' 520 ; TAB(5%)'M => MODIFY PARAMETERS' 530 ; TAB(5%)'P => PRINTER UNDER KOMMUNIKATION' 540 ; TAB(5%)'B => SE "BILDX.TXT"' 550 ; TAB(5%)'F => SE VALD FIL' 560 ; TAB(5%)'E => END' 570 ; : ; TAB(5%); : GET A$ : ; CHR$(12%) 580 IF A$='C' GOSUB 1510 590 IF A$='H' GOSUB 690 600 IF A$='D' GOSUB 1130 610 IF A$='M' GOSUB 1320 620 IF A$='P' GOSUB 790 630 IF A$='B' GOSUB 860 640 IF A$='F' GOSUB 1030 650 IF A$='E' END 660 GOTO 420 670 REM 680 REM ********************** 690 ; : ; '******** HELP INFO: ***********' 700 ; : ; 'F\R ATT AVBRYTA IMPULSERING,' 710 ; 'TRYCK P] EN TANGENT' 720 ; : ; ' * CTRL TECKEN UNDER COMMUNICATION *' : ; 730 ; 'CTRL A = AVBRYTER MODEMCOMMUNIKATION' 740 ; 'CTRL O = COPY BILDMINNET => DR:' 750 ; ' SPARAS UNDER "BILDX.TXT"' 760 ; ' X = L[GSTA LEDIGA BILDNUMMER' 770 GET \$ : RETURN 780 REM 790 REM ***** PRINTER MOD ******** 800 ONERRORGOTO 840 810 ; 'VILL DU HA UTSKRIFT P] PRINTER UNDER' : ; : ; 'MODEM KOMMUNIKATION (J/N) '; : INPUT \$ 820 IF \$='J' THEN P%=1% : OPEN 'PR:' ASFILE 1 ELSE P%=0% : CLOSE 1 830 RETURN 840 ONERRORGOTO 0 : P%=0% : ; 'PRINTER FEL !';CHR$(7%) : GET \$ : RETURN 850 REM 860 REM ***** SE "BILD.TXT" ****** 870 ONERRORGOTO 1000 880 FOR T=1 TO 100 890 F1$='BILD'+NUM$(T)+'.TXT' 900 OPEN F1$ ASFILE 2 910 FOR I=1 TO 24 920 INPUTLINE #2,N$ : N$=LEFT$(N$,LEN(N$)-2%) 930 FOR J=1 TO 40 940 \$=MID$(N$,J,1) 950 A%=ASC(\$) 960 IF A%<>7% THEN ; \$; : GOTO 980 970 ; CHR$(135%); 980 IF I=24 AND J=39 THEN 990 : NEXT J : NEXT I 990 CLOSE 2 : GET \$ : ; CHR$(12%) : NEXT T 1000 ONERRORGOTO 0 : RETURN 1010 REM 1020 REM ***** SE VALD FIL ****** 1030 ; 'FILNAMN:'; : INPUT F1$ 1040 ONERRORGOTO 1090 1050 OPEN F1$ ASFILE 2 1060 ONERRORGOTO 1100 1070 INPUTLINE #2,A$ 1080 ; A$; : GET \$ : IF \$='S' THEN 1100 ELSE 1070 1090 ; 'FIL FINNS EJ!' 1100 CLOSE 2 : GET \$ : ONERRORGOTO 0 : RETURN 1110 REM 1120 REM ********************* 1130 REM * DISPLAY PARAMETERS 1140 ; TAB(5%)'CURRENT PARAMETERS:' : ; 1150 IF (C1% AND 63%)=0% THEN P$(1%)='300' 1160 IF (C1% AND 63%)=2% THEN P$(1%)='1200/75' 1170 IF (C1% AND 63%)=2%+4%+32% THEN P$(1%)='75/1200' 1180 IF (C3% AND 16%)/16%=1% THEN P$(2%)='NO' ELSE P$(2%)='YES' 1190 IF (C3% AND 8%)/8%=1% THEN P$(3%)='EVEN' ELSE P$(3%)='ODD' 1200 IF (C3% AND 4%)/4%=1% THEN P$(4%)='2' ELSE P$(4%)='1' 1210 P$(5%)=NUM$((C3% AND 3%)+5%) 1220 P$(5%)=RIGHT$(P$(5%),2%) 1230 FOR I%=1% TO 5% 1240 ; T$(I%);TAB(25%);P$(I%) 1250 NEXT I% 1260 ; 'PRINTER KOMMUNIKATION';TAB(25%); 1270 IF P%=1% ; 'ON' ELSE ; 'OFF' 1280 GET \$ 1290 RETURN 1300 REM 1310 REM ********************* 1320 REM * MODIFY PARAMETERS 1330 ; TAB(5%)'[NDRA PARAMETRAR:' 1340 FOR I%=1% TO 5% 1350 ; T$(I%);TAB(25%); : INPUTLINE A$ : ; 1360 P$(I%)=LEFT$(A$,1%) 1370 NEXT I% 1380 C1%=0% : C3%=0% 1390 IF P$(1%)='3' THEN C1%=64% 1400 IF P$(1%)='1' THEN C1%=64%+2% 1410 IF P$(1%)='7' THEN C1%=64%+32%+4%+2% 1420 IF P$(2%)='N' THEN C3%=16% 1430 IF P$(3%)='E' THEN C3%=C3%+8% 1440 IF P$(4%)='2' THEN C3%=C3%+4% 1450 IF P$(5%)='6' THEN C3%=C3%+1% 1460 IF P$(5%)='7' THEN C3%=C3%+2% 1470 IF P$(5%)='8' THEN C3%=C3%+3% 1480 IF C3%=0% OR C1%=0% THEN 1330 1490 RETURN 1500 REM 1510 ; ' ********** CALL ***********' : ; 1520 FOR I%=0% TO B% 1530 ; TAB(5%)I%;' = ';B$(I%);TAB(27%);'(';C$(I%);')' 1540 NEXT I% 1550 ; : ; TAB(5%)'V[LJ (0-';B%;') ELLER EGET NUMMER:' 1560 ; TAB(5%)'RETURN = G] UR' : ; 1570 ; TAB(5%)'CALL :'; : INPUT N$ 1580 IF N$='' RETURN 1590 REM EN SIFFRA INMATAD =DIREKTVAL 1600 IF LEN(N$)<>1% THEN 1630 1610 \%=VAL(LEFT$(N$,1%)) 1620 N$=C$(\%) : C1%=E%(\%) 1630 Q%=INP(7%) : REM I/O RESET 1640 C2%=128% : REM LINJE REL[ 3 1650 OUT 1%,C%,4%,C3% : REM RESET AV MODEMKORTTET,S[TT STOPPBITS mm 1660 OUT 2%,C1% : REM REL[ 300 ohm + MODEM PARAMETRAR 1670 OUT 3%,C2% : REM DTR OCH LYFT P] LUREN 1680 T%=0% : ; : ; TAB(5%)'V[NTAR P] KOPPLINGSTON' 1690 FOR I=1 TO 6000 : REM V[NT KOPP.TON 1700 IF PEEK(65013%)>=128% RETURN 1710 IF (INP(1%) AND 32%)=32% THEN T%=0% ELSE T%=T%+1% 1720 IF T%>=1000% THEN 1750 1730 NEXT I 1740 ; TAB(5%)'INGEN LINJE' : GET \$ : RETURN 1750 FOR I=0 TO 1000 : NEXT I 1760 REM 1770 REM **** IMPULSERA **** 1780 ; : ; TAB(5%); : FOR I%=1% TO LEN(N$) 1790 IF PEEK(65013%)>=128% RETURN 1800 \$=MID$(N$,I%,1%) : IF \$<'0' OR \$>'9' 1950 1810 A%=VAL(\$) : ; \$; 1820 C5%=C1% OR 64% OR 128% 1830 C6%=-((C1% AND 64%)/64%=1%)*(C1% XOR 64%) OR 128% 1840 OUT 2%,C5% 1850 FOR I=1 TO 1000 : NEXT I 1860 FOR J%=1% TO A%+1% 1870 OUT 2%,C6% 1880 FOR I=1 TO 60 : NEXT I 1890 OUT 2%,C5% 1900 FOR I=1 TO 40 : NEXT I 1910 NEXT J% 1920 FOR I=1 TO 60 : NEXT I 1930 OUT 2%,C1% 1940 FOR I=1 TO 500 : NEXT I 1950 NEXT I% : ; 1960 REM 1970 REM ***** V[NTA P] DCD ****** 1980 D%=0% : U%=0% : U1%=0% : U2%=0% : T%=0% : ; : ; TAB(5%)'V[NTAR P] B[RV]G' 1990 FOR I=1 TO 4000 2000 T%=INP(1%) 2010 IF PEEK(65013%)>=128% RETURN 2020 IF (T% AND 16%)=0% THEN D%=D%+1% ELSE D%=0% 2030 IF (T% AND 32%)=0% THEN U%=1% 2040 IF U%=1% GOTO 2100 2050 IF D%>=800% THEN 2140 2060 NEXT I 2070 ; : ; TAB(5%)'INGEN B[RV]G' 2080 GET \$ : RETURN 2090 REM 2100 IF (T% AND 32%)=0% THEN U1%=U1%+1% ELSE U2%=U2%+1% 2110 IF U1%+U2%<700 THEN 2050 2120 IF U1%>300% AND U2%>250% THEN ; : ; TAB(5%)'UPPTAGET' : GOTO 2080 2130 U%=0% : U1%=0% : U2%=0% : GOTO 2050 2140 REM 2150 REM * CTRL-C OFF * 2160 POKE 65411%,249% : A=CALL(65409%) 2170 C2%=C2%+32% : REM DTR OCH RTS AKTIVA 2180 OUT 3%,C2% 2190 REM ******** KOMMUNIKATION ******* 2200 U%=0% : ; CHR$(12%)' *** KOMUNIKATION ***' 2210 IF (INP(1%) AND 16%)=0% THEN D2%=0% ELSE 2340 2220 IF PEEK(65408%)<>0 THEN 2380 2230 IF (INP(1%) AND 128%)=0% THEN 2460 2240 IF U%<10% THEN U%=U%+1% : GOTO 2210 2250 U%=0% 2260 R%=PEEK(65011%) : K%=PEEK(65012%) 2270 IF (R%=23% AND K%=39%) OR A%=13% THEN 2210 2280 REM * CURSOR T[NDS/SL[CKS * 2290 ; CHR$(127%); : POKE 65011%,R%,K% 2300 ; ' '; : POKE 65011%,R%,K% 2310 GOTO 2210 2320 REM 2330 REM ** DCD SAKNAS ** 2340 D2%=D2%+1% : IF D2%<1500% THEN 2220 2350 ; '*** DCD SAKNAS ***' 2360 IF PEEK(65408%)<>0% RETURN ELSE 2360 2370 REM ** ABC S[NDER ** 2380 A%=PEEK(65408%) AND 127% : POKE 65408%,0% 2390 REM * CTRL A * 2400 IF A%=1% RETURN : REM AVBRYT KOMM 2410 REM * CTRL O * 2420 IF A%=15% GOTO 2500 : REM SPARA BILD 2430 OUT O%,A% 2440 GOTO 2230 2450 REM * TECKEN FR]N LINJEN FINNS I MODEMKORTET * 2460 A%=INP(0%) AND 127% 2470 IF A%=2% THEN 2640 2480 ; #P%,CHR$(A%); 2490 U%=0% : GOTO 2220 2500 REM ****** SPARA BILDMINNET ****** 2510 ONERRORGOTO 2550 2520 FOR T=1 TO 100 : F1$='BILD'+NUM$(T)+'.TXT' 2530 OPEN F1$ ASFILE 2 2540 CLOSE 2 : NEXT T 2550 ONERRORGOTO 0 : PREPARE F1$ ASFILE 2 2560 FOR I=884 TO 930 STEP 2 2570 A=PEEK(I)+256*PEEK(I+1) 2580 N$='' : FOR J=A TO A+39 2590 N$=N$+CHR$(PEEK(J)) 2600 NEXT J 2610 ; #2,N$ : NEXT I 2620 ; : ; '* KLAR *' : CLOSE 2 : GOTO 2230 2630 REM ****************************** 2640 REM S[ND o MOTTAG FIL (ABC-KLUBBEN) 2650 REM * CTRL-C ON * 2660 POKE 65411%,0% : A=CALL(65409%) 2670 ONERRORGOTO 2730 2680 GOSUB 3330 2690 IF N$='SYNK' THEN 2770 2700 IF N$='SENDFIL' THEN 3050 2710 ; N$ 2720 REM * CTRL-C OFF * 2730 POKE 65411%,249% : A=CALL(65409%) 2740 ONERRORGOTO 0 : GOTO 2220 2750 REM 2760 REM ********************** 2770 REM ** SYNK = RECIV FIL ** 2780 ; ' *** Motaga fil ***' 2790 ; 'FILNAMN VID MONITORN:'; : INPUT F1$ 2800 ; 'FILNAMN H[R:'; : INPUT F2$ 2810 N$='Hejsan' : GOSUB 3440 2820 GOSUB 3330 2830 IF N$<>'SYNK' THEN 2730 2840 FOR T=1 TO 100 : NEXT T 2850 N$='SYNKSVAR' : GOSUB 3440 2860 FOR T=1 TO 100 : NEXT T 2870 N$=F1$ : GOSUB 3440 2880 GOSUB 3330 2890 IF N$<>'OPENED' THEN ; X$ : FOR T=1 TO 2000 : NEXT T : GOTO 2730 2900 PREPARE F2$ ASFILE 2 2910 FOR J%=1 TO 10000 2920 FOR T=1 TO 100 : NEXT T 2930 N$='>' : GOSUB 3440 2940 GOSUB 3330 2950 IF N$='/*' THEN 3000 2960 A$=N$ 2970 ; #2,A$ 2980 ; J% 2990 NEXT J% 3000 CLOSE 2 3010 ; 'ANTAL RADER =';J%-1% 3020 N$='Tack!' : GOSUB 3440 3030 GOTO 2730 3040 REM 3050 REM ** SENDFIL = TRANSMITT FIL ** 3060 ; ' *** S{nda fil ***' 3070 ; 'FILNAMN H[R:'; : INPUT F2$ 3080 ; 'LAGRAS VID MONITORN' 3090 ; 'UNDER FILNAMN:'; : INPUT F1$ 3100 OPEN F2$ ASFILE 2 3110 N$='Hejsan' : GOSUB 3440 3120 GOSUB 3330 3130 IF N$<>'SENDFIL' THEN 2730 3140 FOR T=1 TO 100 : NEXT T 3150 N$='SYNKSVAR' : GOSUB 3440 3160 FOR T=1 TO 100 : NEXT T 3170 N$=F1$ : GOSUB 3440 3180 ONERRORGOTO 3260 3190 FOR J%=1 TO 10000 3200 GOSUB 3330 3210 INPUTLINE #2,N$ : N$=LEFT$(N$,LEN(N$)-2%) 3220 ; J% 3230 FOR T=1 TO 100 : NEXT T 3240 GOSUB 3440 3250 NEXT J% 3260 N$='/*' : GOSUB 3440 3270 CLOSE 2 3280 ; 'ANTAL RADER=';J%-1% 3290 FOR T=1 TO 3000 : NEXT T 3300 N$='Tack!' : GOSUB 3440 3310 GOTO 2730 3320 REM 3330 REM ** MOTAG EN STR[NG ** 3340 N$='' 3350 IF (INP(1%) AND 128%)=128% THEN 3350 3360 A%=INP(0%) AND 127% 3370 REM O 3380 IF A%=10% OR A%=2% THEN 3350 3390 REM MOTAGEN STR[NG KLAR 3400 IF A%=13% THEN RETURN 3410 N$=N$+CHR$(A%) 3420 GOTO 3350 3430 REM 3440 REM ** S[ND EN STR[NG ** 3450 REM ++ 3460 N$=N$+CHR$(13%,10%) 3470 FOR I%=1% TO LEN(N$) 3480 A%=ASC(MID$(N$,I%,1%)) 3490 IF (INP(1%) AND 2%)=2% THEN 3490 3500 OUT 0%,A% 3510 NEXT I% : RETURN 3520 REM ********************