Still in future development is a KISS distraction free typing program. Currently does not save. Source code below:
' This program is not fully functional yet. Feel free to fork!
DIM cha(0 TO 25, 0 TO 80) AS STRING
DECLARE SUB page (xp, yp, pg, men, t$)
CLS
LOCATE 1, 1
PRINT "[ESC] ************* KIS TYPE WRITER by Page Telegram V1 *****************"
ext = 0
min = 0
xp = 1
yp = 2
DO
SELECT CASE INKEY$
CASE CHR$(27) 'esc
IF men = 0 THEN men = 1 ELSE men = 0
IF men = 0 THEN
LOCATE 1, 1
PRINT "[ESC] *** KIS TYPE WRITER by Page Telegram V1 ** C";
COLOR 14: PRINT xp;
COLOR 7: PRINT "L";
COLOR 14: PRINT yp - 1;
COLOR 7: PRINT "P";
COLOR 14: PRINT pg + 1;
COLOR 7
PRINT "****"
END IF
IF men = 1 THEN
LOCATE 1, 1
PRINT "{ESC} {Q}uit {S}ave Save{A}s {O}pen {D}elete [K]ey #########"
END IF
CASE "?"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "?"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "/"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "/"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "."
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "."
CALL page(xp, yp, pg, men, t$)
END IF
CASE ">"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = ">"
CALL page(xp, yp, pg, men, t$)
END IF
CASE ","
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = ","
CALL page(xp, yp, pg, men, t$)
END IF
CASE "<"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "<"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "'"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "'"
CALL page(xp, yp, pg, men, t$)
END IF
CASE CHR$(34)
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = CHR$(34)
CALL page(xp, yp, pg, men, t$)
END IF
CASE ";"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = ";"
CALL page(xp, yp, pg, men, t$)
END IF
CASE ":"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = ":"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "}"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "}"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "]"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "]"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "["
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "["
CALL page(xp, yp, pg, men, t$)
END IF
CASE "{"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "{"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "="
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "="
CALL page(xp, yp, pg, men, t$)
END IF
CASE "+"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "+"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "-"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "-"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "_"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "_"
CALL page(xp, yp, pg, men, t$)
END IF
CASE ")"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = ")"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "0"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "0"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "("
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "("
CALL page(xp, yp, pg, men, t$)
END IF
CASE "9"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "9"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "*"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "*"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "8"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "8"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "&"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "&"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "7"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "7"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "^"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "^"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "6"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "6"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "%"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "%"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "5"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "5"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "$"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "$"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "4"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "4"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "#"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "#"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "3"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "3"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "@"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "@"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "2"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "2"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "!"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "!"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "1"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "1"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "Z"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "Z"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "z"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "z"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "Y"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "Y"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "y"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "y"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "X"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "X"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "x"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "x"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "W"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "W"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "w"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "w"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "V"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "V"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "v"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "v"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "U"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "U"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "u"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "u"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "T"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "T"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "t"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "t"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "R"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "R"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "r"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "r"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "P"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "P"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "p"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "p"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "N"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "N"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "n"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "n"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "M"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "M"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "m"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "m"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "L"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "L"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "l"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "l"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "K"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "K"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "k"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "k"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "J"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "J"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "j"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "j"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "I"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "I"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "i"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "i"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "H"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "H"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "h"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "h"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "G"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "G"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "g"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "g"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "F"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "F"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "f"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "f"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "E"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "E"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "e"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "e"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "D"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "D"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "d"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "d"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "C"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "C"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "c"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "c"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "B"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "B"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "b"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Press [ESC] "
BEEP
ELSE
t$ = "b"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "O"
IF men = 1 THEN
LOCATE 2, 1
INPUT "Open:", fil$
ELSE
t$ = "O"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "o"
IF men = 1 THEN
LOCATE 2, 1
INPUT "Open:", fil$
ELSE
t$ = "o"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "A"
IF men = 1 THEN
': rep1
LOCATE 2, 1:
PRINT " "
LOCATE 2, 1
INPUT "Save As:", fil$
'IF LEN(fil$) > 7 THEN GOTO rep1:
SHELL "mkdir " + fil$
'OPEN fil$ FOR OUTPUT AS #10
FOR xi = 1 TO xp
FOR yi = 1 TO yp
IF LEN(cha$(xi, yi)) = 0 THEN PRINT #10, ""
FOR pi = 1 TO pg
LOCATE 2, 15
COLOR 14
PRINT "Saving Pg:"; pi
COLOR 7
PRINT
'open
NEXT pi
NEXT yi
PRINT #10, cha$(xi, yi)
NEXT xi
ELSE
t$ = "A"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "a"
IF men = 1 THEN
LOCATE 2, 1
INPUT "Save As:", fil$
ELSE
t$ = "a"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "S"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Saving"
ELSE
t$ = "S"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "s"
IF men = 1 THEN
LOCATE 2, 1
PRINT "Saving"
ELSE
t$ = "s"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "Q"
IF men = 1 THEN
SYSTEM
men = 0
ELSE
t$ = "Q"
CALL page(xp, yp, pg, men, t$)
END IF
CASE "q"
IF men = 1 THEN
SYSTEM
men = 0
ELSE
t$ = "q"
CALL page(xp, yp, pg, men, t$)
END IF
CASE CHR$(32) 'spc
IF men = 1 THEN
SYSTEM
men = 0
ELSE
t$ = " "
CALL page(xp, yp, pg, men, t$)
END IF
CASE CHR$(13) 'ent
xp = 0
IF yp < 24 THEN
yp = yp + 1
CALL page(xp, yp, pg, men, t$)
ELSE
pg = pg + 1
yp = 1
END IF
CASE CHR$(0) + "H" 'up
BEEP
' LOCATE 1, 1
' PRINT "^"
CASE CHR$(0) + "K" 'left
BEEP
' LOCATE 1, 1
' PRINT "<"
CASE CHR$(0) + "P" ' down
BEEP
' LOCATE 1, 1
' PRINT CHR$(251)
CASE CHR$(0) + "M" 'right
BEEP
' LOCATE 1, 1
' PRINT ">"
CASE CHR$(83) 'del
BEEP
'cha$(yp, xp,pg) = ""
'LOCATE yp, xp
'PRINT " "
'FOR i = 1 TO xp - 1
' LOCATE yp + 1, i
' PRINT cha$(yp, i,pg)
'NEXT i
' xp = xp - 1
'LOCATE 2, 1: PRINT " "
'COLOR 14
'LOCATE 2, xp + 1: PRINT "*"
'COLOR 7
'FOR i = 1 TO 23
'LOCATE i, 1: PRINT " "
'NEXT i
'LOCATE yp + 1, 1
'COLOR 14
'PRINT ">"
'COLOR 7
' LOCATE 1, 1
' PRINT "[ESC] *** KIS TYPE WRITER by Page Telegram V1 ** C";
' COLOR 14: PRINT xp;
' COLOR 7: PRINT "L";
' COLOR 14: PRINT yp - 1;
' COLOR 7: PRINT "P";
' COLOR 14: PRINT pg + 1
' COLOR 7
'
CASE CHR$(8): BEEP ' bks
' IF yp > 3 THEN yp = yp - 1 ELSE BEEP ' no less than first line
' IF xp > 2 THEN 'if more than string start position
' xp = LEN(cha$(yp, xp,pg))
'yp = yp - 1
' ELSE
' cha$(yp, xp) = ""
' LOCATE 23, 1
' PRINT yp, xp
' LOCATE yp + 1, xp
' PRINT " "
' FOR i = 1 TO LEN(cha$(yp, xp - 1))
' LOCATE yp + 2, i
' PRINT cha$(yp, i)
' NEXT i
' IF xp > 1 THEN xp = xp - 1
'END IF
' yp = yp - 1
'LOCATE 2, 1: PRINT " "
'COLOR 14
'LOCATE 2, xp + 1: PRINT "*"
'COLOR 7
'FOR i = 1 TO 23
'LOCATE i, 1: PRINT " "
'NEXT i
'LOCATE yp + 1, 1
'COLOR 14
'PRINT ">"
'COLOR 7
' LOCATE 1, 1
' PRINT "[ESC] *** KIS TYPE WRITER by Page Telegram V1 ** C";
' COLOR 14: PRINT xp;
' COLOR 7: PRINT "L";
' COLOR 14: PRINT yp - 1;
' COLOR 7: PRINT "P";
' COLOR 14: PRINT pg + 1
' COLOR 7
END SELECT
LOOP UNTIL ext = 1
SUB page (xp, yp, pg, men, t$)
SHARED cha() AS STRING
xp = xp + 1
IF xp > 79 THEN ' return
xp = 2
yp = yp + 1
IF yp > 23 THEN ' page
yp = 2
pg = pg + 1
END IF
END IF
cha$(yp, xp) = t$
LOCATE yp + 1, xp
PRINT cha$(yp, xp)
LOCATE 2, 1: PRINT " "
COLOR 14
LOCATE 2, xp: PRINT "*"
COLOR 7
FOR i = 1 TO 23
LOCATE i, 1: PRINT " "
NEXT i
LOCATE yp + 1, 1
COLOR 14
PRINT ">"
COLOR 7
LOCATE 1, 1
PRINT "[ESC] *** KIS TYPE WRITER by Page Telegram V1 ** C";
COLOR 14: PRINT xp;
COLOR 7: PRINT "L";
COLOR 14: PRINT yp - 1;
COLOR 7: PRINT "P";
COLOR 14: PRINT pg + 1;
COLOR 7
PRINT "****"
END SUB