X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=blobdiff_plain;f=games%2Fplatform%2Fplatform.bas;fp=games%2Fplatform%2Fplatform.bas;h=b4e14325f468167beb161fcbf04d5c648b22a9da;hp=0000000000000000000000000000000000000000;hb=c6aaa433dedff2dd8063983c7716c0cdb296a0f9;hpb=3779e9035f2c67e36111585e10d956a3e9e3c0fa diff --git a/games/platform/platform.bas b/games/platform/platform.bas new file mode 100755 index 0000000..b4e1432 --- /dev/null +++ b/games/platform/platform.bas @@ -0,0 +1,607 @@ +' Super Mario style game +' by Svjatoslav Agejenko 1999 + +DECLARE SUB CL () +DECLARE SUB esc () +DECLARE SUB aargh () +DECLARE SUB die () + + +DECLARE SUB dead () +DEFINT A-Z +DECLARE SUB level1 () +DECLARE SUB nait (zaz%) +DECLARE SUB wiew1 (a1%, b1%, c1%, d1%, a$) +DECLARE SUB level () +DECLARE SUB save (a$) +DECLARE SUB picedit () +DECLARE SUB wiew (a1%, b1%, c1%, d1%, a$) +DECLARE SUB intro () +DECLARE SUB inpur () +DECLARE SUB mousedriver (AX%, bx%, cx%, dx%, lb%, rb%, EX%) +DECLARE SUB tahed () + +DIM SHARED sj$ +DIM SHARED ekraan +DIM SHARED text$(1 TO 500) +DIM SHARED pikkus + + +DIM SHARED ruum(-5 TO 20, -5 TO 20) AS STRING +DIM SHARED ruum1(-5 TO 20, -5 TO 20) AS STRING +DIM SHARED maa(1 TO 11, 1 TO 10) AS STRING * 15 +DIM SHARED maa1(1 TO 10) AS INTEGER +DIM SHARED maailm AS INTEGER +DIM SHARED maailm1 AS INTEGER +DIM SHARED text5(1 TO 15) AS STRING * 15 +DIM SHARED pilv(2100) +DIM SHARED kast(202) +DIM SHARED tellis(202) +DIM SHARED poosas(1000) +DIM SHARED puu(2000) +DIM SHARED tuhi(202) +DIM SHARED munt(202) +DIM SHARED munt1(400) +DIM SHARED munt2(200) +DIM SHARED mari0(402) +DIM SHARED mari(202, 1 TO 5) +DIM SHARED koll(1 TO 230, 1 TO 10) +DIM SHARED koll1(1 TO 202, 1 TO 5) +DIM SHARED kolla(1 TO 10) +DIM SHARED kollb(1 TO 10) +DIM SHARED kollal(1 TO 10) +DIM SHARED kolled(1 TO 10) + +DIM SHARED rahaz(1 TO 5) +DIM SHARED number(100, 0 TO 11) +DIM SHARED elud + +DIM SHARED raha +DIM SHARED clra, clrb +DIM SHARED a1, b1 + +DIM SHARED prog +prog = 1 +SCREEN 13 +maailm = 1 +maailm1 = 1 +level1 +1 +ekraan = 13: zpqf = 4 + +FOR a = 0 TO 254 +OUT &H3C8, a +OUT &H3C9, 0 +OUT &H3C9, 0 +OUT &H3C9, 0 +NEXT a +OUT &H3C8, 255 +OUT &H3C9, 60 +OUT &H3C9, 60 +OUT &H3C9, 60 +LOCATE 20, 3 +COLOR 255 +PRINT "LOADING " + + +CL +wiew 0, 0, 1, 1, "pilv" +GET (1, 1)-(109, 35), pilv +CL +wiew 0, 0, 1, 1, "kast" +GET (1, 2)-(20, 21), kast +CL +wiew 0, 0, 1, 1, "tellis" +GET (1, 2)-(20, 21), tellis +CL +GET (1, 2)-(20, 21), tuhi +wiew 0, 0, 1, 1, "mario1" +GET (1, 2)-(20, 21), mari(202, 1) +CL +wiew1 0, 0, 1, 1, "mario1" +GET (3, 2)-(22, 21), mari(202, 2) +CL +wiew 0, 0, 1, 1, "mario2" +GET (1, 2)-(20, 21), mari(202, 3) +CL +wiew1 0, 0, 1, 1, "mario2" +GET (3, 2)-(22, 21), mari(202, 4) +CL +wiew 0, 0, 1, 1, "poosas" +GET (1, 1)-(60, 21), poosas +CL +wiew 0, 0, 1, 1, "puu" +GET (1, 1)-(40, 60), puu +CL +wiew 0, 0, 1, 1, "munt" +GET (1, 1)-(10, 11), munt +CL +wiew 0, 0, 1, 1, "munt1" +GET (0, 2)-(20, 11), munt1 +CL +wiew 0, 0, 1, 1, "munt2" +GET (0, 2)-(20, 11), munt2 + +CL +wiew 0, 0, 1, 1, "0" +GET (0, 2)-(10, 11), number(100, 0) +CL +wiew 0, 0, 1, 1, "1" +GET (0, 2)-(10, 11), number(100, 1) +CL +wiew 0, 0, 1, 1, "2" +GET (0, 2)-(10, 11), number(100, 2) +CL +wiew 0, 0, 1, 1, "3" +GET (0, 2)-(10, 11), number(100, 3) +CL +wiew 0, 0, 1, 1, "4" +GET (0, 2)-(10, 11), number(100, 4) +CL +wiew 0, 0, 1, 1, "5" +GET (0, 2)-(10, 11), number(100, 5) +CL +wiew 0, 0, 1, 1, "6" +GET (0, 2)-(10, 11), number(100, 6) +CL +wiew 0, 0, 1, 1, "7" +GET (0, 2)-(10, 11), number(100, 7) +CL +wiew 0, 0, 1, 1, "8" +GET (0, 2)-(10, 11), number(100, 8) +CL +GET (0, 2)-(10, 11), number(100, 10) +wiew 0, 0, 1, 1, "9" +GET (0, 2)-(10, 11), number(100, 9) + +CL +wiew 0, 0, 1, 1, "tigu" +GET (1, 2)-(20, 21), koll1(202, 1) +CL +wiew 0, 0, 1, 1, "tigu1" +GET (3, 2)-(22, 21), koll1(202, 2) +CL +wiew1 0, 0, 1, 1, "tigu" +GET (1, 2)-(20, 21), koll1(202, 3) +CL +wiew1 0, 0, 1, 1, "tigu1" +GET (3, 2)-(22, 21), koll1(202, 4) + +SCREEN 0 +SCREEN 13 +level +a1 = 50 +b1 = 50 +edasi = 0 +liig = 1 +ov1 = 1 +ov2 = 2 +raha = 0 +elud = 3 +z = 1 +nait 0 +12 +IF b1 > 0 THEN GET (a1, b1)-(a1 + 20, b1 + 20), mari0: PUT (a1, b1), mari(202, liig), OR + +FOR ox = 1 TO 10 +IF kollb(ox) < 170 AND z = 1 THEN + kollb(ox) = kollb(ox) + kollal(ox) + kolla(ox) = kolla(ox) + kolled(ox) + GET (kolla(ox), kollb(ox))-(kolla(ox) + 20, kollb(ox) + 20), koll(202, ox) + IF kolled(ox) <= 0 THEN kolll = 1 ELSE kolll = 3 + IF zz > 2 THEN kolll = kolll + 1: IF zz = 3 THEN kollal(ox) = kollal(ox) + 1 + PUT (kolla(ox), kollb(ox)), koll1(202, kolll) +END IF +NEXT ox +SOUND 0, .5 +z = z + 1 +IF z > 3 THEN z = 1 +IF z = 1 THEN +zz = zz + 1 +IF zz > 5 THEN zz = 0 +alla = alla + 1 +IF edasi > 0 THEN edasi = edasi - 1: zy = zy + 1 +IF edasi < 0 THEN edasi = edasi + 1: zy = zy + 1 +IF zy > 2 THEN zy = 1 +IF zy = 2 THEN ov1 = 1: ov2 = 2 +IF zy = 1 THEN ov1 = 3: ov2 = 4 + +FOR ox = 1 TO 10 +IF kollb(ox) < 170 THEN +IF ruum((kolla(ox) + 20) / 20, (kollb(ox) + 9) / 20) = "m" THEN kollal(ox) = -1 +IF kolla(ox) > 270 THEN kolled(ox) = -1 +IF kolla(ox) < 2 THEN kolled(ox) = 1 +IF ruum((kolla(ox) + 28) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = -1 +IF ruum((kolla(ox) + 10) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = 1 +IF kolla(ox) - 20 < a1 AND kolla(ox) + 20 > a1 AND kollb(ox) - 5 < b1 AND kollb(ox) + 20 > b1 THEN aargh: dead: GOTO 12 +END IF +NEXT ox +END IF + +IF ruum((a1 + 15) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0 +IF ruum((a1 + 25) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0 +IF ruum((a1 + 20) / 20, (b1 - 8) / 20) = "m" THEN alla = 1: ao = 20 +IF ruum((a1 + 28) / 20, (b1) / 20) = "m" THEN edasi = -1: qa = 1 +IF ruum((a1 + 10) / 20, (b1) / 20) = "m" THEN edasi = 1: qa = 1 + +IF ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "o" THEN alla = 1: ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "": ruum((a1 + 20) / 20, (b1 - 8) / 20) = "2": clra = ((a1 + 20) / 20) - 1: clrb = (b1 - 8) / 20: clr = 1: SOUND 50, .5 +IF ruum((a1 + 20) / 20, (b1) / 20) = "1" THEN ruum((a1 + 20) / 20, (b1) / 20) = "2": clra = ((a1 + 21) / 20) - 1: clrb = (b1) / 20: clr = 1: raha = raha + 1: nait 1: SOUND 1000, 1: SOUND 2000, 1 +ao = ao + 1 +a$ = INKEY$ +IF a$ = CHR$(0) + "H" AND ao < 10 THEN alla = -6 +IF a$ = CHR$(0) + "M" AND qa = 0 THEN edasi = edasi + 3: liig = ov1 +IF a$ = CHR$(0) + "K" AND qa = 0 THEN edasi = edasi - 3: liig = ov2 +IF a$ = CHR$(27) THEN esc +IF a$ = "+" AND qa = 0 THEN maailm = maailm + 1: level: GOTO 12 +IF qa <> 0 THEN qa = 0 +IF edasi > 5 THEN edasi = 3 +IF edasi < -5 THEN edasi = -3 +IF alla > 3 THEN alla = 3 + +IF b1 > 0 THEN PUT (a1, b1), mari0, PSET + +IF z = 1 THEN +FOR ox = 10 TO 1 STEP -1 +IF kollb(ox) < 170 THEN PUT (kolla(ox), kollb(ox)), koll(202, ox), PSET +NEXT ox +END IF + + +b1 = b1 + alla +a1 = a1 + edasi +IF clr > 0 THEN clr = 0: PUT (clra * 20, clrb * 20), tuhi, PSET +IF a1 > 280 THEN maailm = maailm + 1: level: a1 = 3 +IF a1 < 2 THEN maailm = maailm - 1: level: a1 = 279 +IF b1 > 170 THEN FOR a = 3000 TO 500 STEP -100: SOUND a, .3: NEXT a: dead +GOTO 12 + +SUB aargh +a = 1700 +b = 1900 +FOR c = 1 TO 50 +a = a + 3 +b = b - 5 +SOUND a, .2 +SOUND b, .2 +NEXT c +END SUB + +SUB CL +LINE (0, 0)-(319, 150), 0, BF +LOCATE 20, 10 + prog +prog = prog + 1 +PRINT "." +END SUB + +SUB dead +IF maailm > 1 THEN maailm = maailm - 1 + +level +a1 = 20 +b1 = 100 +elud = elud - 1 +nait 0 +END SUB + +SUB die +DIM diep(1 TO 2000) +GET (0, 0)-(150, 20), diep +LOCATE 1, 1 +PRINT "You are " +LOCATE 2, 1 +PRINT " killed! " + +FOR x = 0 TO 80 +FOR y = 0 TO 16 +IF POINT(x, y) > 0 THEN LINE (x * 5, y * 5 + 50)-(x * 5 + 4, y * 5 + 54), 4, BF +NEXT y +NEXT x +PUT (0, 0), diep, PSET + +FOR a = 1 TO 100 +x = RND * 290 + 4 +y = RND * 170 + 4 +GET (x, y)-(x + 20, y + 20), diep +x = x + RND * 4 - 2 +y = y + RND * 4 - 1 +PUT (x, y), diep, PSET +NEXT a +FOR a = 1 TO 50 +a$ = INKEY$ +NEXT a +a$ = INPUT$(1) + +FOR a = 0 TO 100 +SOUND 0, .05 +LINE (0, a)-(320, a), 4 +LINE (0, 200 - a)-(320, 200 - a), 4 +NEXT a +FOR a = 32 TO 0 STEP -1 +SOUND 0, .5 +OUT &H3C8, 4 +OUT &H3C9, a +OUT &H3C9, 0 +OUT &H3C9, 0 +NEXT a +END + +END SUB + +SUB esc +FOR b = 0 TO 20 +FOR a = b TO 200 STEP 20 +LINE (0, a)-(320, a), 0 +NEXT a +SOUND 0, .5 +NEXT b +SYSTEM + +END SUB + +SUB inpur +sj$ = "" +WHILE sj$ = "" +sj$ = INKEY$ +WEND +END SUB + +SUB intro +CLS +wiew 2, 2, 10, 1, "win.i01" +END SUB + +SUB level +IF maailm > 10 THEN +CLS +PRINT "Mission complete!" +PRINT "Game over" +END +END IF + +FOR a = 1 TO 10 +text5(a + 1) = maa(a, maailm) +NEXT a + +FOR a = 1 TO 10 +FOR b = 1 TO 15 +IF ruum(b, a - 2) = "2" THEN MID$(maa(a, maailm1), b) = " " +NEXT b +NEXT a +maailm1 = maailm + +FOR a = -3 TO 20 +FOR b = -3 TO 20 +ruum(a, b) = "" +ruum1(a, b) = "" +NEXT b +NEXT a + +FOR a = 1 TO 10 +kollb(a) = 1000 +kolled(a) = 1 +kollal(a) = 0 +NEXT a + +CLS +PAINT (1, 1), maa1(maailm) +GET (1, 2)-(20, 21), tuhi +FOR a = 2 TO 10 +FOR b = 1 TO 15 +c$ = RIGHT$(LEFT$(text5(a), b), 1) +IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR +IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR +IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR +IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1" +IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m" +IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o" +IF c$ = " " THEN ruum(b, a) = " " + +IF c$ = "1" THEN kolla(1) = (b - 1) * 20: kollb(1) = (a - 2) * 20: GET (kolla(1), kollb(1))-(kolla(1) + 20, kollb(1) + 20), koll(202, 1) +IF c$ = "2" THEN kolla(2) = (b - 1) * 20: kollb(2) = (a - 2) * 20: GET (kolla(2), kollb(2))-(kolla(2) + 20, kollb(2) + 20), koll(202, 2) +IF c$ = "3" THEN kolla(3) = (b - 1) * 20: kollb(3) = (a - 2) * 20: GET (kolla(3), kollb(3))-(kolla(3) + 20, kollb(3) + 20), koll(202, 3) +IF c$ = "4" THEN kolla(4) = (b - 1) * 20: kollb(4) = (a - 2) * 20: GET (kolla(4), kollb(4))-(kolla(4) + 20, kollb(4) + 20), koll(202, 4) +IF c$ = "5" THEN kolla(5) = (b - 1) * 20: kollb(5) = (a - 2) * 20: GET (kolla(5), kollb(5))-(kolla(5) + 20, kollb(5) + 20), koll(202, 5) +IF c$ = "6" THEN kolla(6) = (b - 1) * 20: kollb(6) = (a - 2) * 20: GET (kolla(6), kollb(6))-(kolla(6) + 20, kollb(6) + 20), koll(202, 6) +IF c$ = "7" THEN kolla(7) = (b - 1) * 20: kollb(7) = (a - 2) * 20: GET (kolla(7), kollb(7))-(kolla(7) + 20, kollb(7) + 20), koll(202, 7) +IF c$ = "8" THEN kolla(8) = (b - 1) * 20: kollb(8) = (a - 2) * 20: GET (kolla(8), kollb(8))-(kolla(8) + 20, kollb(8) + 20), koll(202, 8) +IF c$ = "9" THEN kolla(9) = (b - 1) * 20: kollb(9) = (a - 2) * 20: GET (kolla(9), kollb(9))-(kolla(9) + 20, kollb(9) + 20), koll(202, 9) +IF c$ = "0" THEN kolla(10) = (b - 1) * 20: kollb(10) = (a - 2) * 20: GET (kolla(10), kollb(10))-(kolla(10) + 20, kollb(10) + 20), koll(202, 10) +NEXT b +NEXT a +nait 0 +END SUB + +SUB level1 +maa1(1) = 1 +maa(1, 1) = "m " +maa(2, 1) = "m - - " +maa(3, 1) = "m " +maa(4, 1) = "m $ $ $ $ " +maa(5, 1) = "m $ $ $ $ " +maa(6, 1) = "m + momom " +maa(7, 1) = "m " +maa(8, 1) = "m . . " +maa(9, 1) = "mmmmmmmmmmmmmmm" + +maa1(2) = 1 +maa(1, 2) = " $2- " +maa(2, 2) = " o$ " +maa(3, 2) = " o$ - " +maa(4, 2) = " o$ 3 " +maa(5, 2) = " o o1 " +maa(6, 2) = " + mmom" +maa(7, 2) = " omom m " +maa(8, 2) = " $ $ $ $ m " +maa(9, 2) = "mmmm mm" + +maa1(3) = 1 +maa(1, 3) = " mmmmm" +maa(2, 3) = "- $ $ mmmmm" +maa(3, 3) = " $ $ $ mmmmm" +maa(4, 3) = " $ $ mmmmm" +maa(5, 3) = " . mmmmm" +maa(6, 3) = "mmmm 1 mmmm" +maa(7, 3) = " mm m" +maa(8, 3) = " mmm " +maa(9, 3) = "mmm mmmmm" + +maa1(4) = 0 +maa(1, 4) = "mmmmmmmmmmmmmmm" +maa(2, 4) = "m$ $ $ $ $ " +maa(3, 4) = "mm $m $4$ $ $ " +maa(4, 4) = "m$m mmmmmommmm" +maa(5, 4) = "m$ 3 2 m" +maa(6, 4) = "m1 ooooooomo m" +maa(7, 4) = "mooo$$$$$$$m m" +maa(8, 4) = " m" +maa(9, 4) = "mmmmmmmmmmmmmmm" + +maa1(5) = 0 +maa(1, 5) = "mmmmmmmmmmmmmmm" +maa(2, 5) = " m " +maa(3, 5) = "m m 1 3 mmmm" +maa(4, 5) = "m m mmm o m" +maa(5, 5) = "m m4567892o m" +maa(6, 5) = "m mooooommo m" +maa(7, 5) = "m mm" +maa(8, 5) = "m mmm" +maa(9, 5) = "mmmm mmm mmmm" + +maa1(6) = 1 +maa(1, 6) = "m " +maa(2, 6) = " - $ - " +maa(3, 6) = "m $ $ " +maa(4, 6) = "m o o $ " +maa(5, 6) = "m o o " +maa(6, 6) = "m + " +maa(7, 6) = "m " +maa(8, 6) = "mm 1 m 2 m " +maa(9, 6) = "mmmmmmmmmmmmmmm" + +maa1(7) = 1 +maa(1, 7) = " - " +maa(2, 7) = " - " +maa(3, 7) = " 1m" +maa(4, 7) = " 2mm" +maa(5, 7) = " 3mmm" +maa(6, 7) = " o + 4mmmm" +maa(7, 7) = " ooo 5mmmmm" +maa(8, 7) = " 6mmmmmm" +maa(9, 7) = "mmmmmmmmmmmmmmm" + +maa1(8) = 1 +maa(1, 8) = " mmmmmmmmmmmmm" +maa(2, 8) = " m123m456m789 " +maa(3, 8) = " mm$mmm$mmm$mm" +maa(4, 8) = " mm$$$$$$$$$$m" +maa(5, 8) = " mmom$mmm$mmmm" +maa(6, 8) = " o$$$$$$$$$ o" +maa(7, 8) = " omooooooo o" +maa(8, 8) = " - m " +maa(9, 8) = "mmmmmmmmmmmmmmm" + +maa1(9) = 0 +maa(1, 9) = " 12345" +maa(2, 9) = " 6789 " +maa(3, 9) = " mm" +maa(4, 9) = " m " +maa(5, 9) = " m " +maa(6, 9) = " m " +maa(7, 9) = " m " +maa(8, 9) = " m " +maa(9, 9) = "mm " + +maa1(10) = 1 +maa(1, 10) = "m " +maa(2, 10) = " - " +maa(3, 10) = "m - " +maa(4, 10) = "m + " +maa(5, 10) = "m " +maa(6, 10) = "m + 2 " +maa(7, 10) = "m mmm " +maa(8, 10) = "m . 1 " +maa(9, 10) = "mmmmmmmmmmm mm" +END SUB + +SUB load (a$) +OPEN a$ FOR INPUT AS #2 +INPUT #2, pikkus +FOR a = 1 TO pikkus +LINE INPUT #2, text$(a) +NEXT a +CLOSE +END SUB + +SUB nait (zaz) +IF elud < 0 THEN die +PUT (0, 180), munt1, PSET +rahaz(1) = rahaz(1) + zaz +FOR b = 1 TO 3 +IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1 +IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: elud = elud + 1 +NEXT b +LOCATE 1, 1 +r = 3 +FOR a = 1 TO 2 +r = r - 1 +PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET +NEXT a +IF elud > 10 THEN elud = 10 +PUT (43, 180), number(100, 10), PSET +PUT (53, 180), munt2, PSET +PUT (73, 180), number(100, elud), PSET +END SUB + +SUB save (a$) +OPEN a$ FOR OUTPUT AS #2 +PRINT #2, pikkus +FOR a = 1 TO pikkus +PRINT #2, text$(a) +NEXT a +CLOSE +END SUB + +DEFSNG A-Z +SUB tahed +CLS +t = 13 +FOR a = 1 TO 80 STEP 8 +FOR b = 1 TO 20 +t = t + 1 +LOCATE b, a +PRINT CHR$(t); t +NEXT b +NEXT a + +END SUB + +DEFINT A-Z +SUB wiew (a1, b1, c1, d1, a$) +laius1 = c1 - a1 +pikkus1 = d1 - b1 +OPEN a$ + ".i01" FOR INPUT AS #1 +INPUT #1, pikkus +FOR a = 1 TO pikkus +LINE INPUT #1, z$ +FOR b = 1 TO LEN(z$) +LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1) - 1, b1 + ((a + 1) * d1)), ASC(RIGHT$(LEFT$(z$, b), 1)) - 40, BF +NEXT b +NEXT a +CLOSE +END SUB + +SUB wiew1 (a1, b1, c1, d1, a$) +a1 = a1 * 8 +b1 = b1 * 8 +laius1 = c1 - a1 +pikkus1 = d1 - b1 +OPEN a$ + ".i01" FOR INPUT AS #1 +INPUT #1, pikkus +FOR a = 1 TO pikkus +LINE INPUT #1, z$ +FOR b = LEN(z$) TO 1 STEP -1 +LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF +NEXT b +NEXT a +CLOSE +END SUB