DECLARE SUB Opencom ()
DECLARE SUB Config ()
DECLARE SUB Dial (N$)
DECLARE SUB Vall (A$)
DECLARE SUB HangUp ()
CLS
SCREEN 12
COLOR 7
LOCATE 1, 1: PRINT "Press Esc to Hangup"
LOCATE 2, 1: PRINT "Type `C' to configure"
LOCATE 3, 1: PRINT "Type a number ": LOCATE 3, 15: COLOR 3: PRINT "_": COLOR 7
Opencom
22 SLEEP: Num$ = INKEY$
IF Num$ = "" THEN HangUp: END
IF UCASE$(Num$) = "C" THEN Config: GOTO 22
IF RTRIM$(LTRIM$(STR$(VAL(Num$)))) <> Num$ THEN GOTO 22
LOCATE 3, POS(0)
PRINT Num$
LOCATE 3, POS(0) + 1: COLOR 3: PRINT "_": COLOR 7
Vall Num$
GOTO 22

SUB Config
LOCATE 4, 1: INPUT "COM PORT 1 - 4"; Comm
Comm$ = "COM" + LTRIM$(RTRIM$(STR$(Comm)))
Speed$ = "300"
OPEN "BASPHONE.CFG" FOR OUTPUT AS #1
PRINT #1, Comm$; ":"; Speed$
CLOSE #1
LOCATE 4, 1: PRINT "                                      "
LOCATE 5, 1: PRINT "                                      "
END SUB

SUB Dial (N$)
IF LTRIM$(RTRIM$(STR$(VAL(N$)))) <> LTRIM$(RTRIM$((N$))) THEN EXIT SUB
PRINT #3, "ATDT"; LTRIM$(RTRIM$(STR$(N)))
END SUB

SUB HangUp
PRINT #3, "+++"
PRINT #3, "+++"
PRINT #3, "ATH"
PRINT #3, "ATH"
PRINT #3, "+++"
PRINT #3, "+++"
CLOSE #3
END SUB

SUB Keypad
LINE (60, 60)-(100, 100), 1, BF: LOCATE 115 / 21.3, 60 / 5.9875: PRINT "1"
LINE (120, 60)-(160, 100), 2, BF
LINE (180, 60)-(220, 100), 3, BF
LINE (60, 120)-(100, 160), 4, BF
LINE (120, 120)-(160, 160), 5, BF
LINE (180, 120)-(220, 160), 6, BF
LINE (60, 180)-(100, 220), 7, BF
LINE (120, 180)-(160, 220), 8, BF
LINE (180, 180)-(220, 220), 9, BF
LINE (60, 230)-(100, 270), 10, BF
LINE (120, 230)-(160, 270), 11, BF
LINE (180, 230)-(220, 270), 12, BF
END SUB

SUB Opencom
OPEN "BASPHONE.CFG" FOR INPUT AS #2
INPUT #2, comport$
CLOSE #2
OPEN comport$ + ",N,8,1" FOR RANDOM AS #3
END SUB

SUB Vall (A$)
Dial A$
END SUB

