Improve code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 23 Feb 2025 12:02:52 +0000 (14:02 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 23 Feb 2025 12:02:52 +0000 (14:02 +0200)
Math/Truth table calculator/truth.bas

index 204c161..93db702 100755 (executable)
@@ -27,15 +27,15 @@ DECLARE SUB removeRedundancies (startIndex!, endIndex!, removalCount!)
 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
@@ -57,6 +57,13 @@ sist
 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
@@ -73,13 +80,6 @@ SELECT CASE a
 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
@@ -142,12 +142,12 @@ FOR a = 0 TO 79
 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
@@ -161,7 +161,7 @@ m = x1 - c
 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
@@ -182,7 +182,7 @@ SUB lihts (x1, x2, l)
     '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
@@ -208,7 +208,7 @@ CLS
 \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
@@ -223,19 +223,19 @@ NEXT a
 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
@@ -245,7 +245,7 @@ a$ = INPUT$(1)
 \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
@@ -319,8 +319,8 @@ END SUB
 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
@@ -329,7 +329,7 @@ NEXT a
 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
@@ -344,7 +344,7 @@ IF x > 79 THEN x = 79
 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
@@ -441,13 +441,13 @@ FOR a = x1 TO x2
         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
@@ -464,12 +464,12 @@ FOR a = x1 TO x2
             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
@@ -479,7 +479,7 @@ FOR a = x1 TO x2
                             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
@@ -488,7 +488,7 @@ FOR a = x1 TO x2
                             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
@@ -497,7 +497,7 @@ FOR a = x1 TO x2
                             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
@@ -506,7 +506,7 @@ FOR a = x1 TO x2
                             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
@@ -522,7 +522,7 @@ mkneg:
     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
@@ -541,18 +541,18 @@ h = 0
 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
@@ -608,9 +608,10 @@ FOR e = 1 TO 4
         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