DECLARE SUB LoadFont (f$) DECLARE SUB BackGround (c!) DECLARE SUB MsgBox (ms$, Tit$) DECLARE SUB oldstart () DECLARE SUB UnLoadFont () DECLARE SUB callbbs () DECLARE SUB Window2 (length!, height!, row!, column!, tt$) DECLARE SUB InputBox (x!, y!, t$, Prm$) DECLARE SUB opencom () DECLARE SUB Print2 (x!, y!, c!, t$) DECLARE SUB connect () DECLARE SUB endprog () DECLARE SUB Font (t$) DECLARE SUB TextBx (SX!, SY!, eX!, Ey!, t$, r!, l!, pw$, tb$, del!) DECLARE FUNCTION menu% () DECLARE SUB waitforcall () DECLARE SUB setmodemoption () DIM SHARED txt(255) AS STRING SCREEN 12: CLS LoadFont "C:\ASCIN.FNT" BackGround 1 G10: MsgBox "DOSTerm 1.0", "Welcome" oldstart UnLoadFont SUB BackGround (c) LINE (0, 0)-(640, 480), c, BF END SUB SUB Button1 (x, y, s, P, tle$) IF P = 0 THEN clr1 = 15: clr2 = 8 ELSE clr1 = 8: clr2 = 15 eX = x + s: Ey = y + s LINE (x, y)-(eX, Ey), 7, BF LINE (x, y)-(eX, Ey), 0, B LINE (x + 5, y + 5)-(eX - 5, Ey - 5), 7, BF LINE (x + 4, y + 4)-(eX - 4, Ey - 4), 0, B LINE (x, Ey)-(x + 4, Ey - 4), 0 LINE (eX, y)-(eX - 4, y + 4), 0 PAINT (x + 1, y + 1), clr1, 0 PAINT (eX - 1, Ey - 1), clr2, 0 END SUB SUB callbbs CLS : BackGround 1 Window2 630, 470, 0, 0, "Terminal Window" COLOR 3 InputBox 30, 30, number$, "Type in the number" opencom PRINT #1, "ATDT" + number$ Print2 10, 40, 0, "Calling " + number$ + "...." connect END SUB SUB connect a = 40: a = a + 17 Print2 10, a, 0, "Start Typing when modems connect... Press to hang up:" a = a + 17: Print2 10, a, 0, "" DO UNTIL ch$ = CHR$(27) ch$ = INKEY$ IF ch$ <> "" THEN PRINT #1, ch$; IF LOC(1) <> 0 THEN inchar$ = INPUT$(1, #1) ELSE inchar$ = "" IF inchar$ = CHR$(8) AND POS(0) <> 1 THEN LOCATE , POS(0) - 1 PRINT " "; LOCATE , POS(0) - 1 ELSEIF inchar$ = CHR$(8) AND POS(0) = 1 AND CSRLIN <> 1 THEN LOCATE CSRLIN - 1, 80 PRINT " "; LOCATE , POS(0) - 1 ELSEIF inchar$ = CHR$(8) THEN IF inchar$ = CHR$(13) THEN ELSE Print2 -1, -1, 0, inchar$ END IF LOOP CLOSE #1 END SUB SUB endprog COLOR 7 MsgBox "Terminating Session...", "Bye" END SUB SUB Font (t$) DRAW "C0" IF txt(32) = "" THEN LOCATE 1, 1: PRINT "System Error. Unable to continue.": END FOR qww = 1 TO LEN(t$) IF ASC(MID$(t$, qww, 1)) = 0 THEN DRAW "X" + VARPTR$(txt(32)) ELSE DRAW "X" + VARPTR$(txt(ASC(MID$(t$, qww, 1)))): GOTO 1011 1011 NEXT qww END SUB SUB InputBox (x, y, t$, Prm$) Z = 90 s = 50 DIM back(1 TO 9998) GET (x, y)-(x + 100 + Z, y + 50 + Z), back LINE (x, y)-(x + 100 + Z, y + 50 + Z), 0, BF LINE (x + 2, y + 2)-(x + 98 + Z, y + 48 + Z), 1, BF LINE (x + 10, y + 10)-(x + 90 + Z, y + 40 + Z), 0, BF LINE (x + 12, y + 12)-(x + 88 + Z, y + 38 + Z), 7, BF Xy = x + 15 yX = y + 67 - s + Z Xx = x + 85 + Z yY = y + 82 - s + Z Xyz$ = "BM" + STR$(x + 14) + "," + STR$(y + 25) DRAW "X" + VARPTR$(Xyz$) Font Prm$ TextBx Xy, yX, Xx, yY, t$, 1, 17, "", "", 0 PUT (x, y), back, PSET END SUB SUB LoadFont (f$) OPEN f$ FOR INPUT AS #1: t = 0 DO UNTIL EOF(1) LINE INPUT #1, a$ txt(t) = a$ t = t + 1 LOOP CLOSE 1 END SUB FUNCTION menu% CLS BackGround 1 Window2 300, 300, 10, 10, "DOSTerm Main Menu" Print2 20, 50, 0, "1. Wait For Call" Print2 20, 70, 0, "2. Call Somewhere" Print2 20, 90, 0, "3. Set Mode Options" Print2 20, 110, 0, "4. Quit" DO TextBx 20, 120, 40, 135, ch$, 1, 1, "", "", 1 LOOP UNTIL VAL(ch$) >= 1 AND VAL(ch$) <= 4 menu% = VAL(ch$) END FUNCTION SUB MsgBox (ms$, Tit$) wt$ = "[ENTER]" s = 17 v = 15 s = s + v FOR w = 1 TO LEN(ms$): l = l + 1: IF MID$(ms$, w, 1) = CHR$(13) THEN s = s + v NEXT w IF LEN(Tit$) >= LEN(ms$) THEN pix = INT(LEN(Tit$) * 9.2) ELSE pix = INT(LEN(ms$) * 9.2) IF INT(LEN(wt$) * 9.2) > pix THEN pix = INT(LEN(" (Press ENTER to continue.)") * 9.2) x = 320 - INT(pix / 2) y = 175 - s DIM back(1 TO 9998) GET (x, y)-(x + pix, y + s + v), back LINE (x + 1, y + 1)-(x + pix - 1, y + v), 9, BF M$ = "BM" + RTRIM$(LTRIM$(STR$(x + 5))) + ", " + RTRIM$(LTRIM$(STR$(y + v + 1))) DRAW "X" + VARPTR$(M$) Font Tit$ LINE (x, y)-(x + pix, y + s + v), 0, B LINE (x, y + v)-(x + pix, y + s + v), 0, B LINE (x + 1, y + v + 1)-(x + pix - 1, y + s + v - 1), 7, BF M$ = "BM" + RTRIM$(LTRIM$(STR$(x + 2))) + ", " + RTRIM$(LTRIM$(STR$(y + v + v + 1))) DRAW "X" + VARPTR$(M$) j = y FOR a = 1 TO LEN(ms$) IF MID$(ms$, a, 1) = CHR$(13) THEN j = j + v: M$ = "BM" + RTRIM$(LTRIM$(STR$(x + 2))) + ", " + RTRIM$(LTRIM$(STR$(j + v + v + 1))): DRAW "X" + VARPTR$(M$) Font MID$(ms$, a, 1) NEXT a j = j + v: M$ = "BM" + RTRIM$(LTRIM$(STR$(INT(x + (pix / 2) + (LEN(wt$) / 2) - 30)))) + ", " + RTRIM$(LTRIM$(STR$(j + v + v + 1))): DRAW "X" + VARPTR$(M$) Font wt$ DO UNTIL INKEY$ = CHR$(13): LOOP PUT (x, y), back, PSET END SUB SUB oldstart COLOR 15 DO item% = menu% SELECT CASE item% CASE 1: waitforcall CASE 2: callbbs CASE 3: setmodemoption CASE 4: endprog END SELECT LOOP UNTIL item% = 4 END SUB SUB opencom OPEN "BASTerm.CFG" FOR INPUT AS #2 INPUT #2, comport$ CLOSE #2 OPEN comport$ + ",N,8,1" FOR RANDOM AS #1 END SUB SUB Print2 (x, y, c, t$) IF x = -1 AND y = -1 THEN d$ = "C" + LTRIM$(RTRIM$(STR$(c))): GOTO 3 d$ = "BM" + LTRIM$(RTRIM$(STR$(x))) + "," + LTRIM$(RTRIM$(STR$(y))) + " C" + LTRIM$(RTRIM$(STR$(c))) 3 DRAW "X" + VARPTR$(d$) Font t$ END SUB SUB SCapt (FIL$) OPEN FIL$ FOR BINARY AS #1 LEN = 10000 FOR x = 0 TO 639 FOR y = 0 TO 479 vv$ = CHR$(POINT(x, y) + 32) PUT #1, y + x, vv$: PSET (x, y), 15 IF INKEY$ = "" THEN ELSE CLOSE 1: EXIT SUB NEXT y NEXT x CLOSE 1 END SUB SUB setmodemoption COLOR 2 InputBox 10, 10, portno$, "COM(1 or 2): " InputBox 10, 10, speed$, "Modem Speed: " comport$ = "COM" + portno$ + ":" + speed$ OPEN "BASTerm.CFG" FOR OUTPUT AS #2 PRINT #2, comport$ CLOSE #2 END SUB SUB Sleep2 (t) a = TIMER DO UNTIL TIMER >= a + t: LOOP END SUB SUB SLoad (FIL$) OPEN FIL$ FOR RANDOM AS #1 FOR x = 0 TO 639 FOR y = 0 TO 479 GET #1, y + 1 * (x + 1), clr$ IF INKEY$ = "" THEN ELSE CLOSE 1: EXIT SUB IF EOF(1) THEN CLOSE 1: PSET (x, y), clr%: EXIT SUB PSET (x, y), ASC(clr$) - 32 10 NEXT y NEXT x END SUB SUB TextBx (SX, SY, eX, Ey, t$, r, l, pw$, tb$, del) IF LEN(tb$) > l AND r = 1 THEN tb$ = MID$(tb$, 1, l) t$ = tb$: w = LEN(tb$) IF del = 1 THEN ds = 0 ELSE ds = LEN(tb$) IF LEN(pw$) > 1 THEN pw$ = LEFT$(pw$, 1) LINE (SX - 1, SY - 1)-(eX + 1, Ey + 1), 0, B LINE (SX, SY)-(eX, Ey), 15, BF MX$ = "M" + STR$(SX + 2) + "," + STR$(Ey - 0) DRAW "BX" + VARPTR$(MX$) IF pw$ = "" THEN Font tb$ ELSE Font STRING$(LEN(tb$), pw$) IF r = 1 THEN ELSE EXIT SUB 12 a$ = INKEY$ IF a$ = "" GOTO 12 IF a$ = CHR$(8) THEN IF LEN(t$) - ds = 0 THEN GOTO 12 ELSE t$ = LEFT$(t$, LEN(t$) - 1): w = w - 1: LINE (SX - 1, SY - 1)-(eX + 1, Ey + 1), 0, B: LINE (SX, SY)-(eX, Ey), 15, BF: DRAW "BX" + VARPTR$(MX$): IF pw$ = "" THEN Font t$: GOTO 12 ELSE Font STRING$(LEN(t$), pw$): GOTO 12 IF a$ = CHR$(13) THEN EXIT SUB IF w >= l THEN GOTO 12 t$ = t$ + a$: w = w + LEN(a$) B$ = a$ IF pw$ = "" THEN Font B$ ELSE Font pw$ GOTO 12 END SUB SUB UnLoadFont FOR q = 0 TO 255 txt(q) = "" NEXT q END SUB SUB waitforcall CLS : BackGround 1 Window2 630, 470, 0, 0, "Terminal Window" COLOR 3 opencom PRINT #1, "ATS0=1" connect END SUB SUB Window2 (length, height, row, column, tt$) LINE (column, row)-(column + length, row + height), 0, B FOR i% = 1 TO 2 row = row + 1: column = column + 1: height = height - 1: length = length - 1 LINE (column, row)-(column + length, row), 7 LINE (column, row)-(column, row + height), 7 NEXT i% row = row + 1: column = column + 1: height = height - 1: length = length - 1 LINE (column, row)-(column + length, row), 0 LINE (column, row)-(column, row + height), 0 LINE (column, row)-(column + 18, row + 18), 7, BF LINE (column, row)-(column + 18, row + 18), 0, B LINE (column + 18, row - 2)-(column + 18, row + 5), 0 LINE (column - 2, row + 18)-(column + 5, row + 18), 0 LINE (column + 5, row + 7)-(column + 13, row + 9), 15, BF: LINE (column + 5, row + 7)-(column + 13, row + 9), 0, B LINE (column + 14, row + 7)-(column + 14, row + 9), 8 LINE (column + 6, row + 10)-(column + 14, row + 10), 8, B LINE (column + 18, row)-(column + length, row + 18), 9, BF LINE (column + 18, row)-(column + length, row + 18), 0, B LINE (column + length, row - 3)-(column + length + 2, row + height), 7, BF LINE (column + length, row - 3)-(column + length + 3, row + height), 0, B LINE (column + length, row - 2)-(column + length, row - 1), 7 LINE (column + length - 18, row - 2)-(column + length - 18, row - 1), 0 LINE (column + length, row + 18)-(column + length + 2, row + 18), 0 LINE (column, row + height - 3)-(column + length, row + height - 3), 0, B LINE (column, row + height - 2)-(column + length + 2, row + height), 7, BF LINE (column - 2, row + height)-(column + length + 2, row + height), 0, B LINE (column - 2, row + height - 18)-(column, row + height - 18), 0 LINE (column + length - 2, row + height - 18)-(column + length + 2, row + height - 18), 0 LINE (column + 18, row + height)-(column + 18, row + height - 2), 0 LINE (column + length - 18, row + height)-(column + length - 18, row + height - 2), 0 LINE (column + 1, row + 19)-(column + length - 1, row + height - 4), 7, BF mm$ = "BM" + RTRIM$(LTRIM$(STR$(column + 20))) + "," + LTRIM$(RTRIM$(STR$(row + 17))) DRAW "X" + VARPTR$(mm$) Font tt$ END SUB