Better code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 25 Jun 2025 16:57:31 +0000 (19:57 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 25 Jun 2025 16:57:31 +0000 (19:57 +0300)
2D GFX/Presentations/slides.bas

index 89e7ec8..2502689 100755 (executable)
@@ -1,33 +1,43 @@
-' Example presentation program. Shows slides and animations.\r
+' Example slideshow presentation. Includes animated transitions.\r
+' By Svjatoslav Agejenko.\r
+' Email: svjatoslav@svjatoslav.eu\r
+' Homepage: http://www.svjatoslav.eu\r
+'\r
+' Changelog:\r
+' 2001, Initial version\r
+' 2024 - 2025, Improved program readability\r
 \r
+\r
+\r
+DECLARE SUB displaySlide1 ()\r
 DECLARE SUB setink (a!)\r
 DECLARE SUB inke (a$)\r
 DECLARE SUB mkjuku (x!, y!, a!, c!)\r
 DECLARE SUB pr (x!, y!, s!, c!, n!, a$)\r
 DECLARE SUB wpr ()\r
-DECLARE SUB sc7 ()\r
-DECLARE SUB sc6 ()\r
-DECLARE SUB sc5 ()\r
+DECLARE SUB displayEffect7 ()\r
+DECLARE SUB displaySlide6 ()\r
+DECLARE SUB displaySlide5 ()\r
 DECLARE SUB pal4 (c, r!, g!, b!)\r
-DECLARE SUB sc4 ()\r
+DECLARE SUB displaySlide4 ()\r
 DECLARE SUB inpur ()\r
-DECLARE SUB ef5 ()\r
-DECLARE SUB sc3 ()\r
+DECLARE SUB displayEffect5 ()\r
+DECLARE SUB displaySlide3 ()\r
 DECLARE SUB prin (x1!, y1!, s!, c, a$)\r
 DECLARE SUB pal3 (r!, g!, b!)\r
 DECLARE SUB mkfont ()\r
 DECLARE SUB pal2 (r!, g!, b!)\r
 DECLARE SUB box1 (x1!, y1!, x2!, y2!, c!)\r
 DECLARE SUB mkback ()\r
-DECLARE SUB sc2 ()\r
+DECLARE SUB displaySlide2 ()\r
 DECLARE SUB resiz ()\r
 DECLARE SUB pri (x!, y!, a$, c!)\r
 DECLARE SUB deca (xs!, ys!, fx!, fy!)\r
 DECLARE SUB box (xs!, ys!)\r
-DECLARE SUB ef4 ()\r
-DECLARE SUB ef3 ()\r
-DECLARE SUB ef2 ()\r
-DECLARE SUB ef1 ()\r
+DECLARE SUB displayEffect4 ()\r
+DECLARE SUB displayEffect3 ()\r
+DECLARE SUB displayEffect2 ()\r
+DECLARE SUB displayEffect1 ()\r
 DECLARE SUB start ()\r
 DECLARE SUB sc1 ()\r
 DECLARE SUB pal (x!)\r
@@ -45,21 +55,21 @@ start
 CLS\r
 'GOTO 8\r
 \r
-sc1\r
-ef1\r
-ef2\r
-ef3\r
+displaySlide1\r
+displayEffect1\r
+displayEffect2\r
+displayEffect3\r
 \r
-ef4\r
-sc2\r
-sc4\r
+displayEffect4\r
+displaySlide2\r
+displaySlide4\r
 8\r
-sc5\r
-sc6\r
+displaySlide5\r
+displaySlide6\r
 \r
-sc7\r
-sc3\r
-ef5\r
+displayEffect7\r
+displaySlide3\r
+displayEffect5\r
 \r
 SYSTEM\r
 \r
@@ -108,7 +118,7 @@ ys = ys - fy
 box xs, ys\r
 END SUB\r
 \r
-SUB ef1\r
+SUB displayEffect1\r
 \r
 pal 3\r
 \r
@@ -172,7 +182,7 @@ IF a$ = "" THEN GOTO 1
 \r
 END SUB\r
 \r
-SUB ef2\r
+SUB displayEffect2\r
 \r
 FOR a = 1 TO 30\r
 e = 0\r
@@ -210,7 +220,7 @@ NEXT a
 \r
 END SUB\r
 \r
-SUB ef3\r
+SUB displayEffect3\r
 SCREEN 7\r
 SCREEN 7, , , 1\r
 \r
@@ -256,13 +266,13 @@ pri 11, 8, "-* A U T H O R S *-", 55
 pri 10, 11, CHR$(254) + " John Doe", 55\r
 pri 10, 13, CHR$(254) + " Jane Doe", 55\r
 pri 10, 15, CHR$(254) + " Anonymous", 55\r
-pri 20, 19, "I-01  a. 2001", 55\r
+pri 20, 19, "year 2001", 55\r
 \r
 inpur\r
 CLS\r
 END SUB\r
 \r
-SUB ef4\r
+SUB displayEffect4\r
 pal 2\r
 xs = 317\r
 ys = 185\r
@@ -322,7 +332,7 @@ GOTO 4
 3\r
 END SUB\r
 \r
-SUB ef5\r
+SUB displayEffect5\r
 DIM buf(1 TO 5000)\r
 \r
 FOR a = 1 TO 1000\r
@@ -343,6 +353,207 @@ NEXT a
 \r
 END SUB\r
 \r
+SUB displayEffect7\r
+pal 4\r
+mkback\r
+\r
+pal2 0, 0, 32\r
+box1 3, 3, 300, 50, 1\r
+\r
+pal4 255, 50, 50, 0\r
+prin 10, 10, 2, 255, "Et dolore magna"\r
+prin 50, 30, 1, 255, "www.utenimadminim.org"\r
+\r
+pal3 20, 32, 63\r
+box1 20, 40, 290, 180, 2\r
+\r
+pal4 254, 63, 45, 0\r
+b = 25\r
+prin 40, 60, 1, 254, CHR$(254) + " Ut enim ad minim veniam"\r
+a = b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Quis nostrud exercitation"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Laboris nisi ut aliquip ex"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Sed ut perspiciatis unde"\r
+\r
+inpur\r
+\r
+END SUB\r
+\r
+SUB displaySlide1\r
+\r
+pal 2\r
+LOCATE 1, 1\r
+COLOR 1\r
+PRINT "HEADER"\r
+\r
+FOR x = 0 TO 80\r
+FOR y = 0 TO 16\r
+c = POINT(x, y)\r
+IF c > 0 THEN c1 = 50 ELSE c1 = 0\r
+LINE (x * 5 + 35, y * 3 + 50)-(x * 5 + 4 + 35, y * 3 + 2 + 50), c1, BF\r
+NEXT y\r
+NEXT x\r
+\r
+LOCATE 1, 1\r
+PRINT "      "\r
+\r
+FOR y = 30 TO 80\r
+FOR x = 0 TO 319\r
+c = POINT(x, y)\r
+c1 = (c1 * 1 + c) / 2\r
+PSET (x, y), c1\r
+NEXT x\r
+NEXT y\r
+\r
+FOR x = 0 TO 319\r
+FOR y = 30 TO 80\r
+c = POINT(x, y)\r
+c1 = (c1 * 1 + c) / 2\r
+PSET (x, y), c1\r
+NEXT y\r
+NEXT x\r
+\r
+FOR y = 30 TO 80\r
+FOR x = 319 TO 0 STEP -1\r
+c = POINT(x, y)\r
+c1 = (c1 * 1 + c) / 2\r
+PSET (x, y), c1\r
+NEXT x\r
+NEXT y\r
+\r
+FOR x = 0 TO 319\r
+FOR y = 80 TO 30 STEP -1\r
+c = POINT(x, y)\r
+c1 = (c1 * 1 + c) / 2\r
+PSET (x, y), c1\r
+NEXT y\r
+NEXT x\r
+\r
+END SUB\r
+\r
+SUB displaySlide2\r
+\r
+CLS\r
+pal 4\r
+mkback\r
+\r
+pal2 40, 64, 63\r
+pal3 0, 0, 0\r
+\r
+box1 30, 30, 290, 170, 1\r
+\r
+prin 65, 50, 3, 0, "Goal:"\r
+\r
+prin 40, 100, 1, 0, CHR$(254) + " Random text"\r
+prin 40, 108, 1, 0, "  goes here to test"\r
+prin 40, 116, 1, 0, "  text layout."\r
+prin 40, 130, 1, 0, CHR$(254) + " Testing 123."\r
+\r
+inpur\r
+\r
+END SUB\r
+\r
+SUB displaySlide3\r
+mkback\r
+\r
+pal2 64, 64, 0\r
+box1 30, 30, 290, 150, 1\r
+\r
+prin 57, 50, 3, 0, "Thank you"\r
+prin 45, 74, 3, 0, "   for"\r
+prin 45, 98, 3, 0, "attention"\r
+inpur\r
+\r
+END SUB\r
+\r
+SUB displaySlide4\r
+\r
+pal 4\r
+mkback\r
+\r
+pal2 0, 0, 32\r
+box1 3, 3, 260, 50, 1\r
+\r
+pal4 255, 50, 50, 0\r
+prin 10, 10, 2, 255, "Random header"\r
+prin 50, 30, 1, 255, "www.randomsite.org"\r
+\r
+pal3 10, 20, 0\r
+box1 20, 40, 290, 180, 2\r
+\r
+pal4 254, 63, 45, 0\r
+\r
+b = 25\r
+prin 40, 60, 1, 254, CHR$(254) + " Lorem ipsum dolor sit amet,"\r
+a = b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " consectetur adipiscing elit,"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " sed do eiusmod"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " tempor incididunt ut labore"\r
+\r
+inpur\r
+\r
+END SUB\r
+\r
+SUB displaySlide5\r
+pal 4\r
+mkback\r
+\r
+pal2 0, 0, 32\r
+box1 3, 3, 300, 50, 1\r
+\r
+pal4 255, 50, 50, 0\r
+prin 10, 10, 2, 255, "Totam rem aperiam"\r
+prin 50, 30, 1, 255, "www.randomurl.org"\r
+\r
+pal3 20, 32, 63\r
+box1 20, 40, 290, 180, 2\r
+\r
+pal4 254, 63, 45, 0\r
+b = 25\r
+prin 40, 60, 1, 254, CHR$(254) + " Nemo enim ipsam voluptatem"\r
+a = b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Sed quia consequuntur"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Magni dolores eos"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Qui ratione voluptatem"\r
+\r
+inpur\r
+\r
+END SUB\r
+\r
+SUB displaySlide6\r
+pal 4\r
+mkback\r
+\r
+pal2 0, 0, 32\r
+box1 3, 3, 300, 50, 1\r
+\r
+pal4 255, 50, 50, 0\r
+prin 10, 10, 2, 255, "H E L L O !"\r
+prin 50, 30, 1, 255, "www.hello.net"\r
+\r
+pal3 30, 20, 10\r
+box1 20, 40, 290, 180, 2\r
+\r
+pal4 254, 63, 45, 0\r
+b = 25\r
+prin 40, 60, 1, 254, CHR$(254) + " Quis autem vel eum"\r
+a = b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Iure reprehenderit qui"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " In ea voluptate velit"\r
+a = a + b\r
+prin 40, 60 + a, 1, 254, CHR$(254) + " Esse quam nihil molestiae"\r
+\r
+inpur\r
+\r
+END SUB\r
+\r
 SUB inke (a$)\r
 IF tim$ <> TIME$ THEN\r
 ink = ink - 1\r
@@ -631,207 +842,6 @@ SOUND 0, .2
 IF a < 60 THEN GOTO 6\r
 END SUB\r
 \r
-SUB sc1\r
-\r
-pal 2\r
-LOCATE 1, 1\r
-COLOR 1\r
-PRINT "HEADER"\r
-\r
-FOR x = 0 TO 80\r
-FOR y = 0 TO 16\r
-c = POINT(x, y)\r
-IF c > 0 THEN c1 = 50 ELSE c1 = 0\r
-LINE (x * 5 + 35, y * 3 + 50)-(x * 5 + 4 + 35, y * 3 + 2 + 50), c1, BF\r
-NEXT y\r
-NEXT x\r
-\r
-LOCATE 1, 1\r
-PRINT "      "\r
-\r
-FOR y = 30 TO 80\r
-FOR x = 0 TO 319\r
-c = POINT(x, y)\r
-c1 = (c1 * 1 + c) / 2\r
-PSET (x, y), c1\r
-NEXT x\r
-NEXT y\r
-\r
-FOR x = 0 TO 319\r
-FOR y = 30 TO 80\r
-c = POINT(x, y)\r
-c1 = (c1 * 1 + c) / 2\r
-PSET (x, y), c1\r
-NEXT y\r
-NEXT x\r
-\r
-FOR y = 30 TO 80\r
-FOR x = 319 TO 0 STEP -1\r
-c = POINT(x, y)\r
-c1 = (c1 * 1 + c) / 2\r
-PSET (x, y), c1\r
-NEXT x\r
-NEXT y\r
-\r
-FOR x = 0 TO 319\r
-FOR y = 80 TO 30 STEP -1\r
-c = POINT(x, y)\r
-c1 = (c1 * 1 + c) / 2\r
-PSET (x, y), c1\r
-NEXT y\r
-NEXT x\r
-\r
-END SUB\r
-\r
-SUB sc2\r
-\r
-CLS\r
-pal 4\r
-mkback\r
-\r
-pal2 40, 64, 63\r
-pal3 0, 0, 0\r
-\r
-box1 30, 30, 290, 170, 1\r
-\r
-prin 65, 50, 3, 0, "Goal:"\r
-\r
-prin 40, 100, 1, 0, CHR$(254) + " Random text"\r
-prin 40, 108, 1, 0, "  goes here to test"\r
-prin 40, 116, 1, 0, "  text layout."\r
-prin 40, 130, 1, 0, CHR$(254) + " Testing 123."\r
-\r
-inpur\r
-\r
-END SUB\r
-\r
-SUB sc3\r
-mkback\r
-\r
-pal2 64, 64, 0\r
-box1 30, 30, 290, 150, 1\r
-\r
-prin 57, 50, 3, 0, "Thank you"\r
-prin 45, 74, 3, 0, "   for"\r
-prin 45, 98, 3, 0, "attention"\r
-inpur\r
-\r
-END SUB\r
-\r
-SUB sc4\r
-\r
-pal 4\r
-mkback\r
-\r
-pal2 0, 0, 32\r
-box1 3, 3, 260, 50, 1\r
-\r
-pal4 255, 50, 50, 0\r
-prin 10, 10, 2, 255, "Random header"\r
-prin 50, 30, 1, 255, "www.randomsite.org"\r
-\r
-pal3 10, 20, 0\r
-box1 20, 40, 290, 180, 2\r
-\r
-pal4 254, 63, 45, 0\r
-\r
-b = 25\r
-prin 40, 60, 1, 254, CHR$(254) + " Lorem ipsum dolor sit amet,"\r
-a = b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " consectetur adipiscing elit,"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " sed do eiusmod"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " tempor incididunt ut labore"\r
-\r
-inpur\r
-\r
-END SUB\r
-\r
-SUB sc5\r
-pal 4\r
-mkback\r
-\r
-pal2 0, 0, 32\r
-box1 3, 3, 300, 50, 1\r
-\r
-pal4 255, 50, 50, 0\r
-prin 10, 10, 2, 255, "Totam rem aperiam"\r
-prin 50, 30, 1, 255, "www.moditempora.org"\r
-\r
-pal3 20, 32, 63\r
-box1 20, 40, 290, 180, 2\r
-\r
-pal4 254, 63, 45, 0\r
-b = 25\r
-prin 40, 60, 1, 254, CHR$(254) + " Nemo enim ipsam voluptatem"\r
-a = b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Sed quia consequuntur"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Magni dolores eos"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Qui ratione voluptatem"\r
-\r
-inpur\r
-\r
-END SUB\r
-\r
-SUB sc6\r
-pal 4\r
-mkback\r
-\r
-pal2 0, 0, 32\r
-box1 3, 3, 300, 50, 1\r
-\r
-pal4 255, 50, 50, 0\r
-prin 10, 10, 2, 255, "F R I S O N"\r
-prin 50, 30, 1, 255, "www.frison.ee"\r
-\r
-pal3 30, 20, 10\r
-box1 20, 40, 290, 180, 2\r
-\r
-pal4 254, 63, 45, 0\r
-b = 25\r
-prin 40, 60, 1, 254, CHR$(254) + " Quis autem vel eum"\r
-a = b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Iure reprehenderit qui"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " In ea voluptate velit"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Esse quam nihil molestiae"\r
-\r
-inpur\r
-\r
-END SUB\r
-\r
-SUB sc7\r
-pal 4\r
-mkback\r
-\r
-pal2 0, 0, 32\r
-box1 3, 3, 300, 50, 1\r
-\r
-pal4 255, 50, 50, 0\r
-prin 10, 10, 2, 255, "Et dolore magna"\r
-prin 50, 30, 1, 255, "www.utenimadminim.org"\r
-\r
-pal3 20, 32, 63\r
-box1 20, 40, 290, 180, 2\r
-\r
-pal4 254, 63, 45, 0\r
-b = 25\r
-prin 40, 60, 1, 254, CHR$(254) + " Ut enim ad minim veniam"\r
-a = b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Quis nostrud exercitation"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Laboris nisi ut aliquip ex"\r
-a = a + b\r
-prin 40, 60 + a, 1, 254, CHR$(254) + " Sed ut perspiciatis unde"\r
-\r
-inpur\r
-\r
-END SUB\r
-\r
 SUB setink (a!)\r
 ink = a\r
 tim$ = TIME$\r