Remove duplicates and broken demos.
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 16 Sep 2024 20:30:33 +0000 (23:30 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 16 Sep 2024 20:30:33 +0000 (23:30 +0300)
Graphics/Presentations/KHK Intellektika 2004 demo/RAY.BAS [deleted file]
Graphics/Presentations/KHK jõulud/joulud2.bas [deleted file]
Graphics/Presentations/KHK jõulud/ray2.bas [deleted file]

diff --git a/Graphics/Presentations/KHK Intellektika 2004 demo/RAY.BAS b/Graphics/Presentations/KHK Intellektika 2004 demo/RAY.BAS
deleted file mode 100755 (executable)
index a790285..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-DECLARE SUB dispimg ()\r
-DECLARE SUB updateland ()\r
-DECLARE SUB makeland ()\r
-DECLARE FUNCTION getcol! (r!, g!, b!)\r
-DEFINT A-Y\r
-DECLARE SUB traceline (x%, y%, xl)\r
-DECLARE SUB dispframe ()\r
-DECLARE SUB tower (x%, y%)\r
-DECLARE SUB square (x1%, y1%, x2%, y2%, c%, h%)\r
-DECLARE SUB displand ()\r
-DECLARE SUB start ()\r
-DECLARE SUB setupal ()\r
-\r
-DIM SHARED landh(0 TO 180, 0 TO 180)\r
-DIM SHARED landc(0 TO 180, 0 TO 180)\r
-\r
-DIM SHARED zmyx, zmyy, zmyz\r
-DIM SHARED myx, myy, myz\r
-DIM SHARED zmyan, myan2\r
-DIM SHARED ste, stem, dist\r
-DIM SHARED tim$, frm, frmrate\r
-DIM SHARED pi\r
-DIM SHARED white\r
-\r
-sky = getcol(100, 100, 255)\r
-pi = 3.141592\r
-\r
-frmrate = 10    ' Desired framerate.\r
-                ' Lower framerate, better quality\r
-\r
-start\r
-makeland\r
-\r
-'displand\r
-'a$ = INPUT$(1)\r
-myan2 = 2\r
-OPEN "cat.i01" FOR INPUT AS #1\r
-INPUT #1, pictxw\r
-INPUT #1, pictyw\r
-INPUT #1, pictx\r
-INPUT #1, picty\r
-\r
-1\r
-x1 = RND * 160\r
-y1 = RND * 160\r
-x2 = x1 + RND * 10 + 1\r
-y2 = y1 + RND * 10 + 1\r
-\r
-IF (frm > 50) AND (frm < 150) THEN square x1, y1, x2, y2, RND * 200, RND * 10\r
-IF (frm > 150) AND (picty < 177) THEN\r
-\r
-    FOR ff = 1 TO 180 * 2\r
-        INPUT #1, c\r
-        landc(pictx, picty) = c\r
-        landh(pictx, picty) = 0\r
-        pictx = pictx + 1\r
-        IF pictx >= pictxw THEN pictx = 0: picty = picty + 1\r
-        IF picty >= pictyw THEN picty = 0\r
-    NEXT ff\r
-END IF\r
-\r
-IF frm = 430 THEN dispimg\r
-LOCATE 1, 30\r
-'PRINT frm\r
-\r
-updateland\r
-dispframe\r
-GOTO 1\r
-CLOSE #1\r
-\r
-SUB dispframe\r
-\r
-l = 0\r
-zst = -.0031 * ste\r
-FOR z = .5 TO -.5 STEP zst\r
-    traceline SIN(zmyan + z) * dist + myx, COS(zmyan + z) * dist + myy, l\r
-    l = l + ste\r
-NEXT z\r
-\r
-END SUB\r
-\r
-SUB dispimg\r
-\r
-CLOSE #1\r
-\r
-OPEN "cat.i01" FOR INPUT AS #1\r
-INPUT #1, pictxw\r
-INPUT #1, pictyw\r
-\r
-FOR y = 0 TO pictyw - 1\r
-    FOR x = 0 TO pictxw - 1\r
-        INPUT #1, c\r
-        PSET (x + 50, 150 - y), c\r
-    NEXT x\r
-NEXT y\r
-\r
-CLOSE #1\r
-\r
-FOR a = 1 TO 50\r
-    SOUND 0, 1\r
-NEXT a\r
-CHAIN "KHKDEMO2.BAS"\r
-\r
-END SUB\r
-\r
-SUB displand\r
-\r
-FOR z = 0 TO 180\r
-    zs = 1\r
-    IF z > 120 THEN zs = .7\r
-    IF z > 160 THEN zs = .6\r
-    FOR zx = 0 TO 180 STEP zs\r
-        y1 = landh(zx, z) - 80\r
-        zx1 = zx - 90\r
-        z1 = 300 - z\r
-        zx2 = zx1 / z1 * 190\r
-        zy2 = y1 / z1 * 190\r
-\r
-        LINE (zx2 + 160, 40 - zy2)-(zx2 + 160, 200), landc(zx, z)\r
-    NEXT zx\r
-NEXT z\r
-\r
-LOCATE 1, 1\r
-PRINT "Press any key to continue..."\r
-\r
-END SUB\r
-\r
-DEFSNG A-Y\r
-FUNCTION getcol (r, g, b)\r
-IF r < 0 THEN r = 0\r
-IF g < 0 THEN g = 0\r
-IF b < 0 THEN b = 0\r
-IF r > 255 THEN r = 255\r
-IF g > 255 THEN g = 255\r
-IF b > 255 THEN b = 255\r
-getcol = INT(r / 43) * 36 + INT(g / 43) * 6 + INT(b / 43)\r
-END FUNCTION\r
-\r
-DEFINT A-Y\r
-SUB makeland\r
-\r
-square 0, 0, 180, 180, 15, 0\r
-\r
-FOR y = 0 TO 180\r
-    FOR x = 0 TO 180\r
-        x1 = (x \ 10) MOD 2\r
-        y1 = (y \ 10) MOD 2\r
-        c = (x1 + y1) MOD 2\r
-        IF c = 0 THEN\r
-            landc(x, y) = getcol(250, 250, 250)\r
-        ELSE\r
-            landc(x, y) = getcol(250, 50, 50)\r
-        END IF\r
-    NEXT x\r
-NEXT y\r
-\r
-FOR y = 10 TO 90\r
-    FOR x = 90 TO 170\r
-        v = SQR((ABS(50 - y)) ^ 2 + (ABS(130 - x)) ^ 2)\r
-        h = SQR((60 - v) * (60 + v)) - 35\r
-        IF h > 0 THEN landh(x, y) = h\r
-    NEXT x\r
-NEXT y\r
-\r
-tower 20, 20\r
-tower 60, 20\r
-tower 40, 150\r
-\r
-FOR za = 0 TO 20 STEP .1\r
-    x = SIN(za) * (1 + (za * 2)) + 100\r
-    y = COS(za) * (1 + (za * 2)) + 100\r
-    landc(x, y) = getcol(20, RND * 200, 20)\r
-    landc(x + 1, y) = getcol(20, RND * 200, 20)\r
-    landc(x, y + 1) = getcol(20, RND * 200, 20)\r
-    landc(x + 1, y + 1) = getcol(20, RND * 200, 20)\r
-NEXT za\r
-\r
-END SUB\r
-\r
-SUB setupal\r
-c = 0\r
-FOR r = 0 TO 5\r
-    FOR g = 0 TO 5\r
-        FOR b = 0 TO 5\r
-            OUT &H3C8, c\r
-            c = c + 1\r
-            OUT &H3C9, r * 12\r
-            OUT &H3C9, g * 12\r
-            OUT &H3C9, b * 12\r
-        NEXT b\r
-    NEXT g\r
-NEXT r\r
-END SUB\r
-\r
-SUB square (x1, y1, x2, y2, c, h)\r
-\r
-FOR y = y1 TO y2\r
-    FOR x = x1 TO x2\r
-        landh(x, y) = h\r
-        landc(x, y) = c\r
-    NEXT x\r
-NEXT y\r
-\r
-END SUB\r
-\r
-SUB start\r
-SCREEN 13\r
-'PRINT "please wait..."\r
-\r
-setupal\r
-\r
-zmyan = 4.14\r
-myan2 = 100\r
-ste = 1\r
-stem = ste - 1\r
-dist = 190\r
-tim$ = TIME$\r
-zmyx = 170\r
-zmyy = 170\r
-zmyz = 20\r
-\r
-END SUB\r
-\r
-SUB tower (x, y)\r
-\r
-FOR a = 10 TO 0 STEP -1\r
-    square x - a, y - a, x + a, y + a, getcol(100, 0, a * 20), 20 - a\r
-NEXT a\r
-\r
-square x - 11, y - 11, x - 9, y - 9, getcol(255, 0, 0), 20\r
-square x + 9, y - 11, x + 11, y - 9, getcol(0, 255, 0), 20\r
-square x - 11, y + 9, x - 9, y + 11, getcol(0, 0, 255), 20\r
-square x + 9, y + 9, x + 11, y + 11, getcol(255, 255, 0), 20\r
-\r
-END SUB\r
-\r
-SUB traceline (x, y, xl)\r
-\r
-IF x < 0 THEN\r
-    zpr = myx / (myx - x)\r
-    x = 0\r
-    y = myy - ((myy - y) * zpr)\r
-END IF\r
-\r
-IF y < 0 THEN\r
-    zpr = myy / (myy - y)\r
-    y = 0\r
-    x = myx - ((myx - x) * zpr)\r
-END IF\r
-\r
-IF x > 180 THEN\r
-    zpr = (180 - myx) / (x - myx)\r
-    x = 180\r
-    y = myy - ((myy - y) * zpr)\r
-END IF\r
-\r
-IF y > 180 THEN\r
-    zpr = (180 - myy) / (y - myy)\r
-    y = 180\r
-    x = myx - ((myx - x) * zpr)\r
-END IF\r
-\r
-lp = SQR(ABS(myx - x) ^ 2 + ABS(myy - y) ^ 2)\r
-\r
-xp = x - myx\r
-yp = y - myy\r
-\r
-yo = 200\r
-\r
-FOR a = 1 TO lp\r
-    cx = xp * a / lp + myx\r
-    cy = yp * a / lp + myy\r
-    yn = myan2 - ((landh(cx, cy) - myz) * 300) / a\r
-    IF yn < yo THEN LINE (xl, yn)-(xl + stem, yo - 1), landc(cx, cy), BF: yo = yn\r
-NEXT a\r
-LINE (xl, yo - 1)-(xl + stem, 0), sky, BF\r
-\r
-END SUB\r
-\r
-SUB updateland\r
-\r
-frm = frm + 1\r
-ste = 4\r
-stem = ste - 1\r
-\r
-zmyan = frm / 15 + pi\r
-'myan2 = myan2 + 5\r
-'zmyx = SIN(zmyan) * 3 + zmyx\r
-'zmyy = COS(zmyan) * 3 + zmyy\r
-'zmyzs = 2\r
-\r
-zmyx = 90 - SIN(zmyan) * 91\r
-zmyy = 90 - COS(zmyan) * 91\r
-\r
-IF zmyx > 170 THEN zmyx = 170\r
-IF zmyy > 170 THEN zmyy = 170\r
-IF zmyx < 10 THEN zmyx = 10\r
-IF zmyy < 10 THEN zmyy = 10\r
-\r
-zmyz = SIN(zmyan / 2) * 4 + 4\r
-zmyz = SIN(zmyan / 2) * 50 + 50\r
-myan2 = -SIN(zmyan / 2) * 120 + 121\r
-myan2 = -(SIN(zmyan / 2) * 10 + 10)\r
-IF zmyz < landh(myx, myy) + 10 THEN zmyz = landh(myx, myy) + 10: zmyzs = (zmyzs / 2) + .2\r
-\r
-myz = zmyz\r
-myy = zmyy\r
-myx = zmyx\r
-\r
-END SUB
\ No newline at end of file
diff --git a/Graphics/Presentations/KHK jõulud/joulud2.bas b/Graphics/Presentations/KHK jõulud/joulud2.bas
deleted file mode 100755 (executable)
index c8d7a53..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-DECLARE SUB playsound (a$)
-DECLARE SUB start ()
-DECLARE SUB turnoff ()
-DECLARE SUB dispimg (a$)
-DECLARE SUB turnon ()
-DECLARE SUB ellips (x!, y!, s!, v!, t!)
-DECLARE SUB prn (x!, y!, msg$, siz!, col1!)
-DECLARE SUB timerAdd (element!, time!, value!)
-DECLARE SUB timerdisp ()
-DECLARE SUB timerinit ()
-DECLARE SUB timerprocess ()
-DECLARE SUB mo (x!, y!, an!, s!, w!)
-DIM SHARED depth
-DIM SHARED pi
-
-DIM SHARED sh1, sh2, sv1, sv2, hp, vp
-DIM SHARED timerTime(0 TO 50, 0 TO 100)
-DIM SHARED timerValue(0 TO 50, 0 TO 100)
-
-DIM SHARED timerCplace(0 TO 50)
-DIM SHARED timerCtime(0 TO 50)
-DIM SHARED timerCvalue(0 TO 50)
-DIM SHARED timerLast
-
-
-pi = 3.14128
-
-playsound "luule.mp3"
-SCREEN 13
-start
-
-timerinit
-2
-
-
-timerprocess
-IF timerCtime(0) > 0 THEN
-  IF im1 = 0 THEN
-    dispimg "pikk.i01"
-    im1 = 1
-  END IF
-END IF
-
-
-
-IF timerCtime(0) > 1.5 THEN
-  IF im2 = 0 THEN
-    dispimg "pikk4.i01"
-    im2 = 1
-  END IF
-END IF
-
-
-IF timerCtime(0) > 9 THEN
-  IF im3 = 0 THEN
-    dispimg "pikk3.i01"
-    im3 = 1
-  END IF
-END IF
-
-IF timerCtime(0) > 17 THEN
-  IF im4 = 0 THEN
-    dispimg "pikk2.i01"
-    im4 = 1
-  END IF
-END IF
-
-IF timerCtime(0) > 24 THEN
-  IF im5 = 0 THEN
-    dispimg "pikk1.i01"
-    im5 = 1
-  END IF
-END IF
-
-IF timerCtime(0) > 33 THEN
-  IF im6 = 0 THEN
-    dispimg "pikk5.i01"
-    im6 = 1
-  END IF
-END IF
-
-IF timerCtime(0) > 41 THEN
-  IF im7 = 0 THEN
-    dispimg "pikk.i01"
-    im7 = 1
-  END IF
-END IF
-
-
-IF timerCtime(0) > 43 THEN
-  turnoff
-END IF
-
-'LOCATE 1, 1
-'PRINT timerCtime(0)
-GOTO 2
-SYSTEM
-
-SUB dispimg (a$)
-
-
-OPEN a$ FOR INPUT AS #1
-INPUT #1, xs
-INPUT #1, ys
-
-FOR y = 1 TO ys
-FOR x = 1 TO xs
-INPUT #1, a
-PSET (x - 1, 200 - y), a
-NEXT x
-NEXT y
-
-
-CLOSE #1
-END SUB
-
-SUB ellips (x, y, s, v, t)
-
-IF x > 0 THEN
-IF y > 0 THEN
-
-CIRCLE (x, y), s, v, , , t
-PAINT (x, y), v
-
-END IF
-END IF
-
-END SUB
-
-SUB playsound (a$)
-
-SHELL "c:\progra~1\winamp\winamp.exe " + a$
-SCREEN 0
-SCREEN 7, , , 1
-
-END SUB
-
-SUB prn (x, y, msg$, siz, col1)
-IF x < 0 THEN GOTO prn1
-IF x > 319 THEN GOTO prn1
-
-DIM bck(10000)
-
-GET (0, 0)-(100, 7), bck
-LOCATE 1, 1
-PRINT msg$
-
-col = col1
-
-FOR x1 = 0 TO LEN(msg$) * 8 - 1
-FOR y1 = 0 TO 7
-  IF POINT(x1, y1) > 0 THEN
-    rx = x1 * siz + x
-    ry = y1 * siz + y
-    IF col1 > 100 THEN col = RND * 4 + 10
-    IF col1 > 200 THEN
-      LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, B
-    ELSE
-      LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF
-    END IF
-'      LINE (rx, ry)-(rx + siz - 1, ry + siz - 1), col, BF
-  END IF
-NEXT y1
-NEXT x1
-
-
-PUT (0, 0), bck, PSET
-prn1:
-END SUB
-
-SUB start
-c = 0
-FOR r = 0 TO 5
-FOR g = 0 TO 5
-FOR B = 0 TO 5
-OUT &H3C8, c
-c = c + 1
-OUT &H3C9, r * 12
-OUT &H3C9, g * 12
-OUT &H3C9, B * 12
-NEXT B
-NEXT g
-NEXT r
-
-END SUB
-
-SUB timerAdd (element, time, value)
-
-FOR a = 0 TO 100
-  IF (timerTime(element, a) = 0) AND (timerValue(element, a) = 0) THEN GOTO timer3
-NEXT a
-timer3:
-
-timerTime(element, a) = time
-timerValue(element, a) = value
-
-END SUB
-
-SUB timerdisp
-LOCATE 1, 1
-
-FOR a = 0 TO 10
-  PRINT timerCplace(a), timerCtime(a), timerCvalue(a)
-NEXT a
-
-END SUB
-
-SUB timerinit
-timerLast = TIMER
-
-paus = 24
-
-' stuff size
-timerAdd 0, 0, 0
-timerAdd 0, 1000, 1000
-
-END SUB
-
-SUB timerprocess
-
-timerCurrent = TIMER
-timerDiff = timerCurrent - timerLast
-timerLast = timerCurrent
-
-FOR a = 0 TO 50
-  ctim = timerCtime(a) + timerDiff
-  Cplace = timerCplace(a)
-timer2:
-  IF timerTime(a, Cplace + 1) = -1 THEN
-    ctim = 0
-    Cplace = 0
-  END IF
-  IF timerTime(a, Cplace + 1) < ctim THEN
-    IF timerTime(a, Cplace + 1) = 0 THEN
-      timerCvalue(a) = timerValue(a, Cplace)
-      GOTO timer1:
-    END IF
-    Cplace = Cplace + 1
-    GOTO timer2
-  END IF
-
-  v1 = timerValue(a, Cplace)
-  t1 = timerTime(a, Cplace)
-  v2 = timerValue(a, Cplace + 1)
-  t2 = timerTime(a, Cplace + 1)
-
-  IF v1 = v2 THEN
-    timerCvalue(a) = v1
-  ELSE
-    Tdiff1 = t2 - t1
-    Tdiff2 = ctim - t1
-    Vdiff = v2 - v1
-    timerCvalue(a) = Tdiff2 / Tdiff1 * Vdiff + v1
-  END IF
-timer1:
-  timerCplace(a) = Cplace
-  timerCtime(a) = ctim
-NEXT a
-
-END SUB
-
-SUB turnoff
-x = 160
-
-FOR y = 100 TO 1 STEP -1
-
-  LINE (160 - x - 5, 90 - y - 5)-(160 + x + 5, 110 + y + 5), 0, B
-  LINE (160 - x - 3, 90 - y - 3)-(160 + x + 3, 110 + y + 3), 3, B
-  LINE (160 - x, 90 - y)-(160 + x, 110 + y), 15, B
-
-  SOUND 0, .1
-NEXT y
-
-
-
-FOR x = 160 TO 0 STEP -1
-  LINE (160 - x - 5, 90 - 5)-(160 + x + 5, 110 + 5), 0, B
-  LINE (160 - x - 3, 90 - 3)-(160 + x + 3, 110 + 3), 1, B
-  LINE (160 - x, 90)-(160 + x, 110), 15, B
-  SOUND 0, .05
-NEXT x
-
-playsound "silent.mp3"
-SCREEN 10
-SCREEN 13
-CLS
-1
-a$ = INPUT$(1)
-GOTO 1
-
-
-END SUB
-
diff --git a/Graphics/Presentations/KHK jõulud/ray2.bas b/Graphics/Presentations/KHK jõulud/ray2.bas
deleted file mode 100755 (executable)
index cf8a8b1..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-DECLARE SUB dispimg ()
-DECLARE SUB updateland ()
-DECLARE SUB makeland ()
-DECLARE FUNCTION getcol! (r!, g!, b!)
-DEFINT A-Y
-DECLARE SUB traceline (x%, y%, xl)
-DECLARE SUB dispframe ()
-DECLARE SUB tower (x%, y%)
-DECLARE SUB square (x1%, y1%, x2%, y2%, c%, h%)
-DECLARE SUB displand ()
-DECLARE SUB start ()
-DECLARE SUB setupal ()
-
-DIM SHARED landh(0 TO 180, 0 TO 180)
-DIM SHARED landc(0 TO 180, 0 TO 180)
-
-DIM SHARED zmyx, zmyy, zmyz
-DIM SHARED myx, myy, myz
-DIM SHARED zmyan, myan2
-DIM SHARED ste, stem, dist
-DIM SHARED tim$, frm, frmrate
-DIM SHARED pi
-DIM SHARED white
-
-sky = getcol(100, 100, 255)
-pi = 3.141592
-
-frmrate = 10    ' Desired framerate.
-                ' Lower framerate, better quality
-
-start
-makeland
-
-'displand
-'a$ = INPUT$(1)
-myan2 = 2
-OPEN "cat.i01" FOR INPUT AS #1
-INPUT #1, pictxw
-INPUT #1, pictyw
-INPUT #1, pictx
-INPUT #1, picty
-
-
-1
-x1 = RND * 160
-y1 = RND * 160
-x2 = x1 + RND * 10 + 1
-y2 = y1 + RND * 10 + 1
-
-IF (frm > 50) AND (frm < 250) THEN square x1, y1, x2, y2, RND * 200, RND * 10
-IF (frm > 250) AND (picty < 177) THEN
-  FOR ff = 1 TO 180 * 2
-    INPUT #1, c
-    landc(pictx, picty) = c
-    landh(pictx, picty) = 0
-    pictx = pictx + 1
-    IF pictx >= pictxw THEN pictx = 0: picty = picty + 1
-    IF picty >= pictyw THEN picty = 0
-  NEXT ff
-END IF
-
-IF frm = 430 THEN dispimg
-LOCATE 1, 30
-'PRINT frm
-
-updateland
-dispframe
-GOTO 1
-CLOSE #1
-
-SUB dispframe
-
-l = 0
-zst = -.0031 * ste
-FOR z = .5 TO -.5 STEP zst
-traceline SIN(zmyan + z) * dist + myx, COS(zmyan + z) * dist + myy, l
-l = l + ste
-NEXT z
-
-END SUB
-
-SUB dispimg
-
-CLOSE #1
-
-
-OPEN "cat.i01" FOR INPUT AS #1
-INPUT #1, pictxw
-INPUT #1, pictyw
-
-FOR y = 0 TO pictyw - 1
-FOR x = 0 TO pictxw - 1
-INPUT #1, c
-PSET (x + 50, 150 - y), c
-NEXT x
-NEXT y
-
-CLOSE #1
-
-
-FOR a = 1 TO 50
-  SOUND 0, 1
-NEXT a
-CHAIN "KHKDEMO2.BAS"
-
-END SUB
-
-SUB displand
-
-
-FOR z = 0 TO 180
-zs = 1
-IF z > 120 THEN zs = .7
-IF z > 160 THEN zs = .6
-FOR zx = 0 TO 180 STEP zs
-y1 = landh(zx, z) - 80
-zx1 = zx - 90
-z1 = 300 - z
-zx2 = zx1 / z1 * 190
-zy2 = y1 / z1 * 190
-
-LINE (zx2 + 160, 40 - zy2)-(zx2 + 160, 200), landc(zx, z)
-NEXT zx
-NEXT z
-
-LOCATE 1, 1
-PRINT "Press any key to continue..."
-
-END SUB
-
-DEFSNG A-Y
-FUNCTION getcol (r, g, b)
-IF r < 0 THEN r = 0
-IF g < 0 THEN g = 0
-IF b < 0 THEN b = 0
-IF r > 255 THEN r = 255
-IF g > 255 THEN g = 255
-IF b > 255 THEN b = 255
-getcol = INT(r / 43) * 36 + INT(g / 43) * 6 + INT(b / 43)
-END FUNCTION
-
-DEFINT A-Y
-SUB makeland
-
-square 0, 0, 180, 180, 15, 0
-
-FOR y = 0 TO 180
-FOR x = 0 TO 180
-x1 = (x \ 10) MOD 2
-y1 = (y \ 10) MOD 2
-c = (x1 + y1) MOD 2
-IF c = 0 THEN
-  landc(x, y) = getcol(250, 250, 250)
-ELSE
-  landc(x, y) = getcol(250, 50, 50)
-END IF
-NEXT x
-NEXT y
-
-FOR y = 10 TO 90
-FOR x = 90 TO 170
-v = SQR((ABS(50 - y)) ^ 2 + (ABS(130 - x)) ^ 2)
-h = SQR((60 - v) * (60 + v)) - 35
-IF h > 0 THEN landh(x, y) = h
-NEXT x
-NEXT y
-
-tower 20, 20
-tower 60, 20
-tower 40, 150
-
-
-FOR za = 0 TO 20 STEP .1
-x = SIN(za) * (1 + (za * 2)) + 100
-y = COS(za) * (1 + (za * 2)) + 100
-landc(x, y) = getcol(20, RND * 200, 20)
-landc(x + 1, y) = getcol(20, RND * 200, 20)
-landc(x, y + 1) = getcol(20, RND * 200, 20)
-landc(x + 1, y + 1) = getcol(20, RND * 200, 20)
-NEXT za
-
-END SUB
-
-SUB setupal
-c = 0
-FOR r = 0 TO 5
-FOR g = 0 TO 5
-FOR b = 0 TO 5
-OUT &H3C8, c
-c = c + 1
-OUT &H3C9, r * 12
-OUT &H3C9, g * 12
-OUT &H3C9, b * 12
-NEXT b
-NEXT g
-NEXT r
-END SUB
-
-SUB square (x1, y1, x2, y2, c, h)
-
-FOR y = y1 TO y2
-FOR x = x1 TO x2
-landh(x, y) = h
-landc(x, y) = c
-NEXT x
-NEXT y
-
-END SUB
-
-SUB start
-SCREEN 13
-'PRINT "please wait..."
-
-setupal
-
-zmyan = 4.14
-myan2 = 100
-ste = 1
-stem = ste - 1
-dist = 190
-tim$ = TIME$
-zmyx = 170
-zmyy = 170
-zmyz = 20
-
-END SUB
-
-SUB tower (x, y)
-
-FOR a = 10 TO 0 STEP -1
-square x - a, y - a, x + a, y + a, getcol(100, 0, a * 20), 20 - a
-NEXT a
-
-square x - 11, y - 11, x - 9, y - 9, getcol(255, 0, 0), 20
-square x + 9, y - 11, x + 11, y - 9, getcol(0, 255, 0), 20
-square x - 11, y + 9, x - 9, y + 11, getcol(0, 0, 255), 20
-square x + 9, y + 9, x + 11, y + 11, getcol(255, 255, 0), 20
-
-
-END SUB
-
-SUB traceline (x, y, xl)
-
-IF x < 0 THEN
-zpr = myx / (myx - x)
-x = 0
-y = myy - ((myy - y) * zpr)
-END IF
-
-IF y < 0 THEN
-zpr = myy / (myy - y)
-y = 0
-x = myx - ((myx - x) * zpr)
-END IF
-
-IF x > 180 THEN
-zpr = (180 - myx) / (x - myx)
-x = 180
-y = myy - ((myy - y) * zpr)
-END IF
-
-IF y > 180 THEN
-zpr = (180 - myy) / (y - myy)
-y = 180
-x = myx - ((myx - x) * zpr)
-END IF
-
-lp = SQR(ABS(myx - x) ^ 2 + ABS(myy - y) ^ 2)
-
-xp = x - myx
-yp = y - myy
-
-yo = 200
-
-FOR a = 1 TO lp
-  cx = xp * a / lp + myx
-  cy = yp * a / lp + myy
-  yn = myan2 - ((landh(cx, cy) - myz) * 300) / a
-  IF yn < yo THEN LINE (xl, yn)-(xl + stem, yo - 1), landc(cx, cy), BF: yo = yn
-NEXT a
-LINE (xl, yo - 1)-(xl + stem, 0), sky, BF
-
-END SUB
-
-SUB updateland
-
-frm = frm + 1
-ste = 4
-stem = ste - 1
-
-
-zmyan = frm / 15 + pi
-'myan2 = myan2 + 5
-'zmyx = SIN(zmyan) * 3 + zmyx
-'zmyy = COS(zmyan) * 3 + zmyy
-'zmyzs = 2
-
-zmyx = 90 - SIN(zmyan) * 91
-zmyy = 90 - COS(zmyan) * 91
-
-IF zmyx > 170 THEN zmyx = 170
-IF zmyy > 170 THEN zmyy = 170
-IF zmyx < 10 THEN zmyx = 10
-IF zmyy < 10 THEN zmyy = 10
-
-zmyz = SIN(zmyan / 2) * 4 + 4
-zmyz = SIN(zmyan / 2) * 50 + 50
-myan2 = -SIN(zmyan / 2) * 120 + 121
-myan2 = -(SIN(zmyan / 2) * 10 + 10)
-IF zmyz < landh(myx, myy) + 10 THEN zmyz = landh(myx, myy) + 10: zmyzs = (zmyzs / 2) + .2
-
-myz = zmyz
-myy = zmyy
-myx = zmyx
-
-END SUB
-