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"