* fixed some email addresses
[qbasicapps.git] / math / logic.bas
old mode 100755 (executable)
new mode 100644 (file)
index ab35157..4692e89
@@ -1,8 +1,8 @@
 ' Logical equation solver\r
 ' made by Svjatoslav Agejenko\r
 ' in 2002\r
-' H-Page: svjatoslav.eu\r
-' E-Mail: svjatoslavagejenko@gmail.com\r
+' homepage: svjatoslav.eu\r
+' email:    svjatoslav@svjatoslav.eu\r
  \r
 ' Solves logical equations.\r
 ' AND OR XOR etc...\r
@@ -43,22 +43,22 @@ GOTO 13
 \r
 SUB getp (a, b)\r
 SELECT CASE a\r
-CASE 5\r
-b = 1\r
-CASE 3, 4\r
-b = 2\r
-CASE 2\r
-b = 3\r
-CASE 1\r
-b = 4\r
-CASE 40, 41\r
-b = 100\r
+    CASE 5\r
+        b = 1\r
+    CASE 3, 4\r
+        b = 2\r
+    CASE 2\r
+        b = 3\r
+    CASE 1\r
+        b = 4\r
+    CASE 40, 41\r
+        b = 100\r
 END SELECT\r
 END SUB\r
 \r
 SUB klea\r
 FOR a = 1 TO 50\r
-a$ = INKEY$\r
+    a$ = INKEY$\r
 NEXT a\r
 END SUB\r
 \r
@@ -66,7 +66,7 @@ SUB lahend (x1, x2)
 \r
 DIM muu(65 TO 122)\r
 FOR a = 65 TO 122\r
-muu(a) = 0\r
+    muu(a) = 0\r
 NEXT a\r
 \r
 muu(116) = 1\r
@@ -74,14 +74,14 @@ muu(118) = 1
 \r
 nm = 0\r
 FOR a = x1 TO x2\r
-b = tehe(a)\r
-IF ((b >= 65) AND (b <= 90)) OR ((b >= 97) AND (b <= 122)) THEN\r
-IF muu(b) = 0 THEN\r
-nm = nm + 1\r
-muun(nm) = b\r
-muu(b) = 1\r
-END IF\r
-END IF\r
+    b = tehe(a)\r
+    IF ((b >= 65) AND (b <= 90)) OR ((b >= 97) AND (b <= 122)) THEN\r
+        IF muu(b) = 0 THEN\r
+            nm = nm + 1\r
+            muun(nm) = b\r
+            muu(b) = 1\r
+        END IF\r
+    END IF\r
 NEXT a\r
 \r
 muun(nm + 1) = 116\r
@@ -90,28 +90,28 @@ muun(nm + 2) = 118
 f = 2 ^ nm\r
 tehl = f\r
 FOR a = 1 TO nm\r
-d = 1\r
-e = 1\r
-f = f / 2\r
-FOR b = 1 TO 2 ^ nm\r
-IF e > f THEN d = -d: e = 1\r
-IF d = 1 THEN c = ASC("t") ELSE c = ASC("v")\r
-muut(a, b) = c\r
-e = e + 1\r
-NEXT b\r
+    d = 1\r
+    e = 1\r
+    f = f / 2\r
+    FOR b = 1 TO 2 ^ nm\r
+        IF e > f THEN d = -d: e = 1\r
+        IF d = 1 THEN c = ASC("t") ELSE c = ASC("v")\r
+        muut(a, b) = c\r
+        e = e + 1\r
+    NEXT b\r
 NEXT a\r
 \r
 FOR a = 1 TO tehl\r
-muut(nm + 1, a) = 116\r
-muut(nm + 2, a) = 118\r
+    muut(nm + 1, a) = 116\r
+    muut(nm + 2, a) = 118\r
 NEXT a\r
 \r
 nm = nm + 2\r
 \r
 DIM bck(0 TO 79)\r
 FOR a = 0 TO 79\r
-bck(a) = tehe(a)\r
-xloc(a) = a\r
+    bck(a) = tehe(a)\r
+    xloc(a) = a\r
 NEXT a\r
 \r
 LOCATE 5, 1\r
@@ -124,11 +124,11 @@ teeslg x1, x2, a
 tee x1, x2 + a\r
 \r
 FOR a = 0 TO 79\r
-tehe(a) = bck(a)\r
+    tehe(a) = bck(a)\r
 NEXT a\r
 \r
 FOR a = 1 TO tehl\r
-prn x2 + 1, a, 14, 0, CHR$(vast(a))\r
+    prn x2 + 1, a, 14, 0, CHR$(vast(a))\r
 NEXT a\r
 \r
 \r
@@ -166,21 +166,21 @@ l = l1
 'BEEP\r
 prnp = prnp + 1\r
 FOR a = x1 TO x2 - l\r
-prn a, 0, 13, 1, CHR$(tehe(a))\r
+    prn a, 0, 13, 1, CHR$(tehe(a))\r
 NEXT a\r
 END SUB\r
 \r
 SUB mov (x1, n)\r
 FOR a = 79 - n TO x1 STEP -1\r
-tehe(a + n) = tehe(a)\r
-xloc(a + n) = xloc(a)\r
+    tehe(a + n) = tehe(a)\r
+    xloc(a + n) = xloc(a)\r
 NEXT a\r
 END SUB\r
 \r
 SUB movm (x1, n)\r
 FOR a = x1 TO 79 - n\r
-tehe(a) = tehe(a + n)\r
-xloc(a) = xloc(a + n)\r
+    tehe(a) = tehe(a + n)\r
+    xloc(a) = xloc(a + n)\r
 NEXT a\r
 END SUB\r
 \r
@@ -189,22 +189,22 @@ CLS
 \r
 ln = 79\r
 FOR a = 0 TO 79\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
-NEXT b\r
-ln = ln - 1\r
-IF ln <= a - 1 THEN GOTO 6\r
-GOTO 5\r
-END IF\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
+        NEXT b\r
+        ln = ln - 1\r
+        IF ln <= a - 1 THEN GOTO 6\r
+        GOTO 5\r
+    END IF\r
 NEXT a\r
 6\r
 \r
 CLS\r
 \r
 FOR a = 0 TO ln\r
-prn a, 0, 13, 1, CHR$(tehe(a))\r
+    prn a, 0, 13, 1, CHR$(tehe(a))\r
 NEXT a\r
 \r
 prn 0, 1, 7, 0, "Do you want to simplyfy it (unfinished so press N)"\r
@@ -213,7 +213,7 @@ a = 0
 klea\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
@@ -231,17 +231,17 @@ x1 = x * 8
 y1 = (y + prnp) * 8\r
 \r
 FOR b = 1 TO LEN(a$)\r
-LINE (x1, y1)-(x1 + 7, y1 + 7), c1, BF\r
-d = ASC(RIGHT$(LEFT$(a$, b), 1))\r
-IF d > 122 THEN GOTO 22\r
-FOR y2 = 0 TO 7\r
-FOR x2 = 0 TO 7\r
-c2 = font(x2, y2, d)\r
-IF c2 > 0 THEN PSET (x1 + x2, y1 + y2), c\r
-NEXT x2\r
-NEXT y2\r
-22\r
-x1 = x1 + 8\r
+    LINE (x1, y1)-(x1 + 7, y1 + 7), c1, BF\r
+    d = ASC(RIGHT$(LEFT$(a$, b), 1))\r
+    IF d > 122 THEN GOTO 22\r
+    FOR y2 = 0 TO 7\r
+        FOR x2 = 0 TO 7\r
+            c2 = font(x2, y2, d)\r
+            IF c2 > 0 THEN PSET (x1 + x2, y1 + y2), c\r
+        NEXT x2\r
+    NEXT y2\r
+    22\r
+    x1 = x1 + 8\r
 NEXT b\r
 \r
 END SUB\r
@@ -254,30 +254,30 @@ l2 = 0
 a = x1\r
 26\r
 IF tehe(a) = 40 THEN\r
-IF a = x1 THEN p1 = 100 ELSE getp tehe(a - 1), p1\r
-c = a\r
-d = 1\r
-p2 = 0\r
-25\r
-c = c + 1\r
-IF tehe(c) = 40 THEN d = d + 1\r
-IF tehe(c) = 41 THEN d = d - 1\r
-IF d = 1 THEN\r
-IF (tehe(c) > 0) AND (tehe(c) <= 5) THEN\r
-getp tehe(c), b\r
-IF b > p2 THEN p2 = b\r
-END IF\r
-END IF\r
-IF d > 0 THEN GOTO 25\r
-IF c + 1 > x2 THEN p3 = 100 ELSE getp tehe(c + 1), p3\r
-\r
-IF (p1 > p2) AND (p3 >= p2) THEN\r
-movm c, 1\r
-movm a, 1\r
-l2 = l2 + 2\r
-x2 = x2 - 2\r
-a = a - 1\r
-END IF\r
+    IF a = x1 THEN p1 = 100 ELSE getp tehe(a - 1), p1\r
+    c = a\r
+    d = 1\r
+    p2 = 0\r
+    25\r
+    c = c + 1\r
+    IF tehe(c) = 40 THEN d = d + 1\r
+    IF tehe(c) = 41 THEN d = d - 1\r
+    IF d = 1 THEN\r
+        IF (tehe(c) > 0) AND (tehe(c) <= 5) THEN\r
+            getp tehe(c), b\r
+            IF b > p2 THEN p2 = b\r
+        END IF\r
+    END IF\r
+    IF d > 0 THEN GOTO 25\r
+    IF c + 1 > x2 THEN p3 = 100 ELSE getp tehe(c + 1), p3\r
+\r
+    IF (p1 > p2) AND (p3 >= p2) THEN\r
+        movm c, 1\r
+        movm a, 1\r
+        l2 = l2 + 2\r
+        x2 = x2 - 2\r
+        a = a - 1\r
+    END IF\r
 END IF\r
 'NEXT a\r
 a = a + 1\r
@@ -291,13 +291,13 @@ prn 0, 0, 3, 0, "enter equation (ESC to quit) keys: 1 - " + CHR$(1) + "   2 - "
 prn 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
+    tehe(a) = 0\r
 NEXT a\r
 \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 prn a, 2, 14, 1, CHR$(tehe(a)) ELSE prn a, 2, 3, 0, CHR$(tehe(a))\r
 NEXT a\r
 2\r
 a$ = INKEY$\r
@@ -310,27 +310,27 @@ IF x < 0 THEN x = 0
 IF x > 79 THEN x = 79\r
 \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
-FOR a = 78 TO x STEP -1\r
-tehe(a + 1) = tehe(a)\r
-NEXT a\r
-tehe(x) = ASC(a$)\r
-x = x + 1\r
-CASE 8\r
-IF x > 0 THEN\r
-FOR a = x - 1 TO 78\r
-tehe(a) = tehe(a + 1)\r
-NEXT a\r
-x = x - 1\r
-END IF\r
-CASE 49 TO 53\r
-a$ = CHR$(ASC(a$) - 48)\r
-GOTO 3\r
-CASE 13\r
-GOTO 4\r
-END SELECT\r
+    SELECT CASE ASC(a$)\r
+        CASE 32, 40, 41, 65 TO 90, 97 TO 122\r
+            3\r
+            FOR a = 78 TO x STEP -1\r
+                tehe(a + 1) = tehe(a)\r
+            NEXT a\r
+            tehe(x) = ASC(a$)\r
+            x = x + 1\r
+        CASE 8\r
+            IF x > 0 THEN\r
+                FOR a = x - 1 TO 78\r
+                    tehe(a) = tehe(a + 1)\r
+                NEXT a\r
+                x = x - 1\r
+            END IF\r
+        CASE 49 TO 53\r
+            a$ = CHR$(ASC(a$) - 48)\r
+            GOTO 3\r
+        CASE 13\r
+            GOTO 4\r
+    END SELECT\r
 END IF\r
 \r
 GOTO 1\r
@@ -345,49 +345,49 @@ prnp = 0
 SCREEN 7\r
 \r
 FOR a = 0 TO 122\r
-LOCATE 1, 1\r
-SELECT CASE a\r
-CASE 7\r
-CASE 1\r
-LINE (0, 0)-(7, 7), 0, BF\r
-LINE (2, 1)-(0, 3), 15\r
-LINE (1, 4)-(2, 5), 15\r
-LINE (5, 1)-(7, 3), 15\r
-LINE (6, 4)-(5, 5), 15\r
-LINE (1, 2)-(5, 2), 15\r
-LINE (1, 4)-(5, 4), 15\r
-\r
-CASE 2\r
-LINE (0, 0)-(7, 7), 0, BF\r
-LINE (5, 1)-(7, 3), 15\r
-LINE (6, 4)-(5, 5), 15\r
-LINE (1, 2)-(5, 2), 15\r
-LINE (1, 4)-(5, 4), 15\r
-\r
-CASE 3\r
-LINE (0, 0)-(7, 7), 0, BF\r
-LINE (0, 0)-(3, 7), 15\r
-LINE (6, 0)-(3, 7), 15\r
-\r
-CASE 4\r
-LINE (0, 0)-(7, 7), 0, BF\r
-LINE (0, 7)-(3, 0), 15\r
-LINE (6, 7)-(3, 0), 15\r
-\r
-CASE 5\r
-LINE (0, 0)-(7, 7), 0, BF\r
-LINE (0, 0)-(4, 0), 15\r
-LINE (4, 1)-(4, 7), 15\r
-\r
-CASE ELSE\r
-PRINT CHR$(a)\r
-END SELECT\r
-\r
-FOR y = 0 TO 7\r
-FOR x = 0 TO 7\r
-font(x, y, a) = POINT(x, y)\r
-NEXT x\r
-NEXT y\r
+    LOCATE 1, 1\r
+    SELECT CASE a\r
+        CASE 7\r
+        CASE 1\r
+            LINE (0, 0)-(7, 7), 0, BF\r
+            LINE (2, 1)-(0, 3), 15\r
+            LINE (1, 4)-(2, 5), 15\r
+            LINE (5, 1)-(7, 3), 15\r
+            LINE (6, 4)-(5, 5), 15\r
+            LINE (1, 2)-(5, 2), 15\r
+            LINE (1, 4)-(5, 4), 15\r
+\r
+        CASE 2\r
+            LINE (0, 0)-(7, 7), 0, BF\r
+            LINE (5, 1)-(7, 3), 15\r
+            LINE (6, 4)-(5, 5), 15\r
+            LINE (1, 2)-(5, 2), 15\r
+            LINE (1, 4)-(5, 4), 15\r
+\r
+        CASE 3\r
+            LINE (0, 0)-(7, 7), 0, BF\r
+            LINE (0, 0)-(3, 7), 15\r
+            LINE (6, 0)-(3, 7), 15\r
+\r
+        CASE 4\r
+            LINE (0, 0)-(7, 7), 0, BF\r
+            LINE (0, 7)-(3, 0), 15\r
+            LINE (6, 7)-(3, 0), 15\r
+\r
+        CASE 5\r
+            LINE (0, 0)-(7, 7), 0, BF\r
+            LINE (0, 0)-(4, 0), 15\r
+            LINE (4, 1)-(4, 7), 15\r
+\r
+        CASE ELSE\r
+            PRINT CHR$(a)\r
+    END SELECT\r
+\r
+    FOR y = 0 TO 7\r
+        FOR x = 0 TO 7\r
+            font(x, y, a) = POINT(x, y)\r
+        NEXT x\r
+    NEXT y\r
 NEXT a\r
 \r
 SCREEN 12\r
@@ -405,99 +405,99 @@ oex = 0
 \r
 \r
 FOR a = x1 TO x2\r
-b = tehe(a)\r
-SELECT CASE b\r
-CASE 40\r
-c = a\r
-d = 1\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
-tee a + 1, c - 1\r
-a = c\r
-FOR c = 1 TO tehl\r
-opr(oprm, c) = vast(c)\r
-NEXT c\r
-GOTO 12\r
-CASE 5\r
-ng = 1\r
-ngx = a\r
-CASE 1 TO 4\r
-oe = b\r
-oex = a\r
-CASE 65 TO 90, 97 TO 122\r
-FOR c = 1 TO nm\r
-IF muun(c) = b THEN d = c: GOTO 8\r
-NEXT c\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
-NEXT c\r
-12\r
-IF ng = 1 THEN GOSUB mkneg\r
-IF oprm = 2 THEN\r
-SELECT CASE oe\r
-CASE 1\r
-FOR c = 1 TO tehl\r
-d = opr(1, c)\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
-NEXT c\r
-CASE 2\r
-FOR c = 1 TO tehl\r
-d = opr(1, c)\r
-e = opr(2, c)\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
-NEXT c\r
-CASE 3\r
-FOR c = 1 TO tehl\r
-d = opr(1, c)\r
-e = opr(2, c)\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
-NEXT c\r
-CASE 4\r
-FOR c = 1 TO tehl\r
-d = opr(1, c)\r
-e = opr(2, c)\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
-NEXT c\r
-END SELECT\r
-ELSE\r
-oprm = oprm + 1\r
-END IF\r
-END SELECT\r
+    b = tehe(a)\r
+    SELECT CASE b\r
+        CASE 40\r
+            c = a\r
+            d = 1\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
+            tee a + 1, c - 1\r
+            a = c\r
+            FOR c = 1 TO tehl\r
+                opr(oprm, c) = vast(c)\r
+            NEXT c\r
+            GOTO 12\r
+        CASE 5\r
+            ng = 1\r
+            ngx = a\r
+        CASE 1 TO 4\r
+            oe = b\r
+            oex = a\r
+        CASE 65 TO 90, 97 TO 122\r
+            FOR c = 1 TO nm\r
+                IF muun(c) = b THEN d = c: GOTO 8\r
+            NEXT c\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
+            NEXT c\r
+            12\r
+            IF ng = 1 THEN GOSUB mkneg\r
+            IF oprm = 2 THEN\r
+                SELECT CASE oe\r
+                    CASE 1\r
+                        FOR c = 1 TO tehl\r
+                            d = opr(1, c)\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
+                        NEXT c\r
+                    CASE 2\r
+                        FOR c = 1 TO tehl\r
+                            d = opr(1, c)\r
+                            e = opr(2, c)\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
+                        NEXT c\r
+                    CASE 3\r
+                        FOR c = 1 TO tehl\r
+                            d = opr(1, c)\r
+                            e = opr(2, c)\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
+                        NEXT c\r
+                    CASE 4\r
+                        FOR c = 1 TO tehl\r
+                            d = opr(1, c)\r
+                            e = opr(2, c)\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
+                        NEXT c\r
+                END SELECT\r
+            ELSE\r
+                oprm = oprm + 1\r
+            END IF\r
+    END SELECT\r
 NEXT a\r
 \r
 GOTO 9\r
 mkneg:\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
-opr(oprm, c) = d\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
+    opr(oprm, c) = d\r
 NEXT c\r
 ng = 0\r
 RETURN\r
 9\r
 \r
 FOR c = 1 TO tehl\r
-vast(c) = opr(1, c)\r
+    vast(c) = opr(1, c)\r
 NEXT c\r
 END SUB\r
 \r
@@ -505,80 +505,80 @@ SUB teeslg (x1, x4, l)
 x2 = x4\r
 h = 0\r
 FOR e = 1 TO 4\r
-g = 1\r
-'FOR a = x1 TO x2\r
-a = x1\r
-21\r
-b = tehe(a)\r
-IF b = 40 THEN\r
-c = a\r
-d = 1\r
-14\r
-c = c + 1\r
-IF tehe(c) = 40 THEN d = d + 1\r
-IF tehe(c) = 41 THEN d = d - 1\r
-IF d = 0 THEN GOTO 15\r
-GOTO 14\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
-h = h + l\r
-GOTO 16\r
-END IF\r
-\r
-IF (b = 5) AND (e = 1) AND (g > 1) THEN\r
-mov a, 1\r
-tehe(a) = 40\r
-lendp a + 2, f\r
-mov a + 2 + f, 1\r
-tehe(a + 2 + f) = 41\r
-h = h + 2\r
-x2 = x2 + 2\r
-a = a + 2 + f\r
-GOTO 16\r
-END IF\r
-\r
-IF (b = 3 OR b = 4) AND (e = 2) AND (g > 2) THEN\r
-lendm a - 1, f\r
-mov a - f, 1\r
-tehe(a - f) = 40\r
-lendp a + 2, f\r
-mov a + 2 + f, 1\r
-tehe(a + 2 + f) = 41\r
-h = h + 2\r
-x2 = x2 + 2\r
-a = a + 2 + f\r
-GOTO 16\r
-END IF\r
-\r
-IF (b = 2) AND (e = 3) AND (g > 3) THEN\r
-lendm a - 1, f\r
-mov a - f, 1\r
-tehe(a - f) = 40\r
-lendp a + 2, f\r
-mov a + 2 + f, 1\r
-tehe(a + 2 + f) = 41\r
-h = h + 2\r
-x2 = x2 + 2\r
-a = a + 2 + f\r
-GOTO 16\r
-END IF\r
-\r
-\r
-SELECT CASE b\r
-CASE 5\r
-g = 1\r
-CASE 3, 4\r
-g = 2\r
-CASE 2\r
-g = 3\r
-CASE 1\r
-g = 4\r
-END SELECT\r
-16\r
-a = a + 1\r
-IF a <= x2 THEN GOTO 21\r
+    g = 1\r
+    'FOR a = x1 TO x2\r
+    a = x1\r
+    21\r
+    b = tehe(a)\r
+    IF b = 40 THEN\r
+        c = a\r
+        d = 1\r
+        14\r
+        c = c + 1\r
+        IF tehe(c) = 40 THEN d = d + 1\r
+        IF tehe(c) = 41 THEN d = d - 1\r
+        IF d = 0 THEN GOTO 15\r
+        GOTO 14\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
+        h = h + l\r
+        GOTO 16\r
+    END IF\r
+\r
+    IF (b = 5) AND (e = 1) AND (g > 1) THEN\r
+        mov a, 1\r
+        tehe(a) = 40\r
+        lendp a + 2, f\r
+        mov a + 2 + f, 1\r
+        tehe(a + 2 + f) = 41\r
+        h = h + 2\r
+        x2 = x2 + 2\r
+        a = a + 2 + f\r
+        GOTO 16\r
+    END IF\r
+\r
+    IF (b = 3 OR b = 4) AND (e = 2) AND (g > 2) THEN\r
+        lendm a - 1, f\r
+        mov a - f, 1\r
+        tehe(a - f) = 40\r
+        lendp a + 2, f\r
+        mov a + 2 + f, 1\r
+        tehe(a + 2 + f) = 41\r
+        h = h + 2\r
+        x2 = x2 + 2\r
+        a = a + 2 + f\r
+        GOTO 16\r
+    END IF\r
+\r
+    IF (b = 2) AND (e = 3) AND (g > 3) THEN\r
+        lendm a - 1, f\r
+        mov a - f, 1\r
+        tehe(a - f) = 40\r
+        lendp a + 2, f\r
+        mov a + 2 + f, 1\r
+        tehe(a + 2 + f) = 41\r
+        h = h + 2\r
+        x2 = x2 + 2\r
+        a = a + 2 + f\r
+        GOTO 16\r
+    END IF\r
+\r
+\r
+    SELECT CASE b\r
+        CASE 5\r
+            g = 1\r
+        CASE 3, 4\r
+            g = 2\r
+        CASE 2\r
+            g = 3\r
+        CASE 1\r
+            g = 4\r
+    END SELECT\r
+    16\r
+    a = a + 1\r
+    IF a <= x2 THEN GOTO 21\r
 NEXT e\r
 l = h\r
 END SUB\r