1 REM Ins{nd av Einar Eriksson <1720> 1985-04-29 20.34.42 1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program RINGMON.BAS 3 REM ! 4 REM ! Utg}va 1.0 85-04-28 5 REM ! 6 REM ! av Einar Eriksson 7 REM ! 8 REM ! F|r ABC80 16 K minne 40/80 tkn 9 REM +++++++++++++++++++++++++++++++++ 10 REM 20 P$="* RINGMON.BAS *" 25 REM 30 REM Detta program ringer upp de 40 REM telefonnummer som angetts 50 REM nedan i vektorn T$(). 60 REM 70 REM F|r att progrmmet ska fungera 80 REM m}ste telefonlinjen anslutas 90 REM i serie med bandspelarens 100 REM motorstyrningsutg}ng. 110 REM Dessutom m}ste telefonluren 120 REM vara avlyft fr}n klykan. 130 REM 140 REM 150 REM F|r dom som enbart har kassett- 160 REM bandspelare eller som inte 170 REM vill v{nta p} att detta program 180 REM CHAINar till TERM100 kan det 190 REM vara l{mpligt att l{gga ihop 200 REM detta programmet med TERM100. 210 REM G|r s} h{r: 220 REM Ladda in TERM100 i datorn. 230 REM Ge komandot REN 10000,1. 240 REM Spara det omnumrerade TERM100 250 REM under nytt namn p} kassett 260 REM eller skiva. Ladda in 270 REM RINGMON.BAS och ge sedan 280 REM kommandot MERGE . 290 REM D{r filnamn {r namnet p} 300 REM det omnumrerade TERM100. 390 REM 400 REM --- VARIABELLISTA --- 410 REM P$ = Programnamn 415 REM T$() = Telefonnummer 420 REM T1$() = Info. om telfonnumret 423 REM K1% = Kolumn f|r 40 rep 80 tkn 425 REM S$ = Tempr{r variabel f|r inmatning 430 REM A$ = Alternativ vid val i meny 435 REM T% = Val av telfonnummer i T$() 440 REM I = Allm{n loopvariabel, flyttal 445 REM K% = Loopvariabel f|r antal siffror i telefonnummer 450 REM C% = Antal pulser f|r aktuell siffra 455 REM A% = Mellanlagring av paralellportsv{rde 460 REM B% = Ger tiden f|r pulsens l{ngd 465 REM J% = Loopvariabel f|r antal pulser 470 REM I% = Allm{n loopvariabel heltal 475 REM 480 REM 500 REM --- TELEFONNUMMER --- 505 REM Observera att telefonnummren 506 REM m}ste skrivas utan mellanslag 507 REM och andra tecken {n siffror. 510 T$(0)="801523" : T1$(0)="ABC-klubben" 520 T$(1)="801526" : T1$(1)="ABC-klubben" 530 T$(2)="801725" : T1$(2)="ABC-klubben" 540 T$(3)="076468165" : T1$(3)="PermoBas" 550 T$(4)="019149373" : T1$(4)="ABC Dataklubb, \-o" 560 T$(5)="xxx" : T1$(5)="" 590 REM 600 REM --- 40/80 TKN --- 610 IF PEEK(885)=124% THEN K1%=0% : REM 40 tkn 620 IF PEEK(885)=88% THEN K1%=20% : REM 80 TKN 1000 REM --- MENY --- 1010 PRINT CHR$(12); 1015 PRINT CUR(2,K1%+5%);P$; 1030 PRINT CUR(5,K1%);"1. Tel. nr ";T$(0);" ";T1$(0); 1040 PRINT CUR(7,K1%);"2. Tel. nr ";T$(1);" ";T1$(1); 1050 PRINT CUR(9,K1%);"3. Tel. nr ";T$(2);" ";T1$(2); 1060 PRINT CUR(11,K1%);"4. Tel. nr ";T$(3);" ";T1$(3); 1070 PRINT CUR(13,K1%);"5. Tel. nr ";T$(4);" ";T1$(4); 1080 PRINT CUR(15,K1%);"6. Tel. nr ";T$(5);" ";T1$(5); 1140 PRINT CUR(17,K1%);"7. Till TERM100" 1150 PRINT CUR(19,K1%);"8. Koppla ner telefon"; 1200 PRINT CUR(22,K1%);"Ange alternativ (1-8)";SPACE$(40%); 1210 PRINT CUR(22,K1%+22%); : INPUTLINE S$ 1220 A$=LEFT$(S$,LEN(S$)-2%) 1230 IF LEN(A$)>1% THEN 1200 1240 IF A$<"0" OR A$>"9" THEN 1200 1500 REM --- ALTERNATIV --- 1540 IF A$="1" THEN T%=0% : GOSUB 2010 : GOSUB 5010 : REM * SIFFERSLAGNING * 1550 IF A$="2" THEN T%=1% : GOSUB 2010 : GOSUB 5010 : REM * SIFFERSLAGNING * 1560 IF A$="3" THEN T%=2% : GOSUB 2010 : GOSUB 5010 : REM * SIFFERSLAGNING * 1570 IF A$="4" THEN T%=3% : GOSUB 2010 : GOSUB 5010 : REM * SIFFERSLAGNING * 1580 IF A$="5" THEN T%=4% : GOSUB 2010 : GOSUB 5010 : REM * SIFFERSLAGNING * 1590 IF A$="6" THEN T%=5% : GOSUB 2010 : GOSUB 5010 : REM * SIFFERSLAGNING * 1650 IF A$<"7" THEN GOTO 1200 1700 IF A$="7" THEN GOTO 10000 1800 IF A$="8" THEN OUT 58,INP(58) AND 223% : GOTO 1200 : REM Motorstyrning fr}n 1890 GOTO 1200 2000 REM subrutin * UPPKOPPLING * 2001 REM ________________________ 2010 OUT 58,INP(58) AND 223% : REM Motorstyrning fr}n 2020 PRINT CUR(22,K1%);"* V{nta * "; 2030 FOR I=1 TO 2000 : NEXT I 2040 OUT 58,INP(58) OR 32% : REM Motorstyrning till 2050 FOR I=1 TO 3000 : NEXT I : REM v{nta p} uppkoppling 2060 REM 2090 RETURN : REM SLUT * UPPKOPPLING * 2095 REM 5000 REM SUBRUTIN * SIFFERSLAGNING * 5001 REM ___________________________ 5005 REM Tar en siffra i taget och g|r paus mellan siffrorna. 5010 REM 5011 PRINT CUR(22,K1%);"SL]R NUMMER "; 5012 IF (INP(58%) AND 32%)<>0% THEN GOTO 5015 5013 PRINT CUR(18,20);"TELEFONEN M]STE KOPPLAS UPP"; : FOR I=1 TO 2000 : NEXT I 5014 RETURN 5015 FOR K%=1% TO LEN(T$(T%)) 5020 S$=MID$(T$(T%),K%,1%) 5030 GOSUB 6010 : REM * INPULSGIVARE * 5040 FOR I=1 TO 500 : NEXT I : REM V[NT-LOOP F\R PAUS MELLAN SIFFROR CA 0,5 SEK 5050 REM 5060 NEXT K% 5070 REM 5090 RETURN : REM SLUT * SIFFERSLAGNING * 6000 REM SUBRUTIN * IMPULSGIVARE * 6001 REM _________________________ 6005 REM Denna subrutin skapar ett visst antal pulser per siffra som motsvarar 6006 REM siffran. 6010 REM 6080 REM 6100 C%=VAL(S$)+1% 6110 A%=INP(58%) 6120 OUT 58%,A% OR 32% : REM Motorstyrning till 6130 B%=250% : REM ger pulstiden 6140 FOR J%=1% TO C% 6150 A%=INP(58%) 6160 OUT 58%,A% AND 223% : REM Motorstyrning fr}n 6170 FOR I%=1% TO B% : NEXT I% 6180 A%=INP(58%) 6190 OUT 58%,A% OR 32% : REM * Motorstyrning till 6200 FOR I%=1% TO B% : NEXT I% 6210 NEXT J% 6220 REM 6300 REM 6390 RETURN : REM SLUT * IMPULSGIVARE * 10000 CHAIN "TERM100"