DECLARE SUB getP (a!, b!)\r
DECLARE SUB movM (x1!, n!)\r
DECLARE SUB lihts (x1, x2, l)\r
-DECLARE SUB klea ()\r
-DECLARE SUB lendM (x1!, m!)\r
+DECLARE SUB clearScreenBuffer ()\r
+DECLARE SUB lendm (x1!, m!)\r
DECLARE SUB mov (x1!, n!)\r
-DECLARE SUB lendP (x1!, m!)\r
+DECLARE SUB lendp (x1!, m!)\r
DECLARE SUB teeslg (x1!, x2!, l!)\r
DECLARE SUB prepare ()\r
DECLARE SUB tee (x1!, x2!)\r
DECLARE SUB lahend (x1, x2)\r
-DECLARE SUB prn (x!, y!, c!, c1!, a$)\r
+DECLARE SUB printText (x!, y!, c!, c1!, a$)\r
DECLARE SUB sist ()\r
DECLARE SUB start ()\r
DIM SHARED font(0 TO 7, 0 TO 7, 0 TO 122)\r
prepare\r
GOTO 13\r
\r
+SUB clearScreenBuffer\r
+' Waits for user input to clear the screen buffer\r
+FOR a = 1 TO 50\r
+ a$ = INKEY$\r
+NEXT a\r
+END SUB\r
+\r
SUB getP (a, b)\r
' Determines the priority of logical operators\r
SELECT CASE a\r
END SELECT\r
END SUB\r
\r
-SUB klea\r
-' Waits for user input to clear the screen buffer\r
-FOR a = 1 TO 50\r
- a$ = INKEY$\r
-NEXT a\r
-END SUB\r
-\r
SUB lahend (x1, x2)\r
' Analyzes and prepares the logical equation for solving\r
DIM muu(65 TO 122)\r
NEXT a\r
\r
FOR a = 1 TO tehl\r
- prn x2 + 1, a, 14, 0, CHR$(vast(a))\r
+ printText x2 + 1, a, 14, 0, CHR$(vast(a))\r
NEXT a\r
\r
END SUB\r
\r
-SUB lendM (x1, m)\r
+SUB lendm (x1, m)\r
' Measures the length of a logical expression enclosed in parentheses\r
IF tehe(x1) <> 41 THEN m = 1: GOTO 19\r
c = x1\r
19\r
END SUB\r
\r
-SUB lendP (x1, m)\r
+SUB lendp (x1, m)\r
' Measures the length of a logical expression enclosed in parentheses\r
IF tehe(x1) <> 40 THEN m = 1: GOTO 17\r
c = x1\r
'BEEP\r
prnp = prnp + 1\r
FOR a = x1 TO x2 - l\r
- prn a, 0, 13, 1, CHR$(tehe(a))\r
+ printText a, 0, 13, 1, CHR$(tehe(a))\r
NEXT a\r
END SUB\r
\r
\r
ln = 79\r
FOR a = 0 TO 79\r
- 5\r
+5\r
IF tehe(a) = 32 OR tehe(a) = 0 THEN\r
FOR b = a TO 78\r
tehe(b) = tehe(b + 1)\r
CLS\r
\r
FOR a = 0 TO ln\r
- prn a, 0, 13, 1, CHR$(tehe(a))\r
+ printText a, 0, 13, 1, CHR$(tehe(a))\r
NEXT a\r
\r
-prn 0, 1, 7, 0, "Do you want to simplify it (unfinished so press N)"\r
+printText 0, 1, 7, 0, "Do you want to simplify it (unfinished so press N)"\r
a = 0\r
23\r
-klea\r
+clearScreenBuffer\r
a$ = INPUT$(1)\r
IF a$ = "n" OR a$ = "N" THEN GOTO 24\r
-IF a$ = "y" OR a$ = "Y" THEN ELSE GOTO 23\r
+IF a$ = "y" OR a$ = "Y" THEN ELSE GOTO 23\r
a = 1\r
24\r
-prn 0, 1, 7, 0, SPACE$(79)\r
+printText 0, 1, 7, 0, SPACE$(79)\r
\r
l = 0\r
IF a = 1 THEN lihts 0, ln, l\r
\r
END SUB\r
\r
-SUB prn (x, y, c, c1, a$)\r
+SUB printText (x, y, c, c1, a$)\r
' Prints characters to the screen at location (x,y) with color c, background c1\r
x1 = x * 8\r
y1 = (y + prnp) * 8\r
SUB sist\r
' Interacts with the user to input a logical equation\r
CLS\r
-prn 0, 0, 3, 0, "Enter equation (ESC to quit) keys: 1 - " + CHR$(1) + " 2 - " + CHR$(2) + " 3 - " + CHR$(3) + " 4 - " + CHR$(4) + " 5 - " + CHR$(5)\r
-prn 0, 1, 3, 0, "Example: a" + CHR$(1) + "b" + CHR$(2) + "(g" + CHR$(3) + "b)"\r
+printText 0, 0, 3, 0, "Enter equation (ESC to quit) keys: 1 - " + CHR$(1) + " 2 - " + CHR$(2) + " 3 - " + CHR$(3) + " 4 - " + CHR$(4) + " 5 - " + CHR$(5)\r
+printText 0, 1, 3, 0, "Example: a" + CHR$(1) + "b" + CHR$(2) + "(g" + CHR$(3) + "b)"\r
\r
FOR a = 0 TO 79\r
tehe(a) = 0\r
x = 0\r
1\r
FOR a = 0 TO 79\r
- IF a = x THEN prn a, 2, 14, 1, CHR$(tehe(a)) ELSE prn a, 2, 3, 0, CHR$(tehe(a))\r
+ IF a = x THEN printText a, 2, 14, 1, CHR$(tehe(a)) ELSE printText a, 2, 3, 0, CHR$(tehe(a))\r
NEXT a\r
2\r
a$ = INKEY$\r
IF LEN(a$) = 1 THEN\r
SELECT CASE ASC(a$)\r
CASE 32, 40, 41, 65 TO 90, 97 TO 122\r
- 3\r
+3\r
FOR a = 78 TO x STEP -1\r
tehe(a + 1) = tehe(a)\r
NEXT a\r
CASE 40\r
c = a\r
d = 1\r
- 10\r
+10\r
c = c + 1\r
IF tehe(c) = ASC("(") THEN d = d + 1\r
IF tehe(c) = ASC(")") THEN d = d - 1\r
IF d = 0 THEN GOTO 11\r
GOTO 10\r
- 11\r
+11\r
tee a + 1, c - 1\r
a = c\r
FOR c = 1 TO tehl\r
FOR c = 1 TO nm\r
IF muun(c) = b THEN d = c: GOTO 8\r
NEXT c\r
- 8\r
+8\r
FOR c = 1 TO tehl\r
opr(oprm, c) = muut(d, c)\r
- prn xloc(a), c, 3, 0, CHR$(muut(d, c))\r
+ printText xloc(a), c, 3, 0, CHR$(muut(d, c))\r
NEXT c\r
- 12\r
+12\r
IF ng = 1 THEN GOSUB mkneg\r
IF oprm = 2 THEN\r
SELECT CASE oe\r
e = opr(2, c)\r
IF d = e THEN f = ASC("t") ELSE f = ASC("v")\r
opr(1, c) = f\r
- prn xloc(oex), c, 12, 0, CHR$(f)\r
+ printText xloc(oex), c, 12, 0, CHR$(f)\r
NEXT c\r
CASE 2\r
FOR c = 1 TO tehl\r
f = ASC("t")\r
IF (d = ASC("t")) AND (e = ASC("v")) THEN f = ASC("v")\r
opr(1, c) = f\r
- prn xloc(oex), c, 12, 0, CHR$(f)\r
+ printText xloc(oex), c, 12, 0, CHR$(f)\r
NEXT c\r
CASE 3\r
FOR c = 1 TO tehl\r
f = ASC("t")\r
IF (d = ASC("v")) AND (e = ASC("v")) THEN f = ASC("v")\r
opr(1, c) = f\r
- prn xloc(oex), c, 12, 0, CHR$(f)\r
+ printText xloc(oex), c, 12, 0, CHR$(f)\r
NEXT c\r
CASE 4\r
FOR c = 1 TO tehl\r
f = ASC("v")\r
IF (d = ASC("t")) AND (e = ASC("t")) THEN f = ASC("t")\r
opr(1, c) = f\r
- prn xloc(oex), c, 12, 0, CHR$(f)\r
+ printText xloc(oex), c, 12, 0, CHR$(f)\r
NEXT c\r
END SELECT\r
ELSE\r
FOR c = 1 TO tehl\r
d = opr(oprm, c)\r
IF d = ASC("t") THEN d = ASC("v") ELSE d = ASC("t")\r
- prn xloc(ngx), c, 4, 0, CHR$(d)\r
+ printText xloc(ngx), c, 4, 0, CHR$(d)\r
opr(oprm, c) = d\r
NEXT c\r
ng = 0\r
FOR e = 1 TO 4\r
g = 1\r
a = x1\r
- 21\r
+21\r
b = tehe(a)\r
IF b = 40 THEN\r
c = a\r
d = 1\r
- 14\r
+14\r
c = c + 1\r
IF tehe(c) = ASC("(") THEN d = d + 1\r
IF tehe(c) = ASC(")") THEN d = d - 1\r
IF d = 0 THEN GOTO 15\r
GOTO 14\r
- 15\r
+15\r
IF e = 1 THEN teeslg a + 1, c - 1, l ELSE l = 0\r
a = c + l\r
x2 = x2 + l\r
CASE 1\r
g = 4\r
END SELECT\r
- 16\r
+16\r
a = a + 1\r
IF a <= x2 THEN GOTO 21\r
NEXT e\r
l = h\r
END SUB\r
+\r