100 !**********************
110 !*       SLICKS       *
120 !*--------------------*
130 !*     TI 99/4 A      *
140 !*   Extended BASIC   *
150 !*--------------------*
160 !* (c)1984 Tronicsoft *
170 !*       (V.B)        *
180 !**********************
190 !
200 OPTION BASE 1
210 DIM B(3,7),PZ(4),FK(4),ZH(4)
220 DATA 195,261,329,164,220,261,174,220,293,195,246,349,184,261,293,207,293,329,174,220,261
230 RESTORE 220
240 FOR I=1 TO 7 :: FOR K=1 TO 3 :: READ B(K,I) :: NEXT K :: NEXT I
250 CALL CLEAR :: CALL SCREEN(9) :: CALL COLOR(0,9,9) :: CALL HCHAR(1,1,30,768)
260 DATA 70,90,106,121,1,3,6,10,109,121,141,169
270 FOR I=1 TO 4 :: READ PZ(I) :: NEXT I
280 FOR I=1 TO 4 :: READ FK(I) :: NEXT I
290 FOR I=1 TO 4 :: READ ZH(I) :: NEXT I :: RANDOMIZE
300 FOR I=1 TO 14 :: CALL COLOR(I,1,1) :: NEXT I
310 CALL GRAFIK :: CALL BILD
320 CB$="DA828200DA0A0ADB0E0404000404046EDA828200838282DA5B5090001B81415B"
330 CS$="0000381000000000001038100000000000107C38000000000000387CFEFE7C"
340 FOR I=12 TO 21 :: CALL HCHAR(12,I,I+36) :: NEXT I
350 CALL COLOR(0,6,6,1,4,2,2,13,6,5,16,2,6,16,2,7,16,2,8,16,2,9,16,2,10,16,2,11,16,2,12,16,2)
360 CALL COLOR(13,13,4,14,4,4,3,16,6,4,16,6) :: CALL HCHAR(1,1,32,32) :: CALL C2 :: CALL TITEL(CB$,CS$,B(,)) :: CALL RECHAR :: GOSUB 1000
370 CALL SPRITE(#1,135,11,175,121)
380 SPEED=11
390 V=(RND*2*SPEED-SPEED)
400 CALL C2
410 CALL SOUND(-4250,10*SPEED,0,-6,5)
420 CALL SPRITE(#2,132,9,99,121,SPEED,V)
430 FOR I=3 TO 4
440 CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X) :: CALL C1 :: CALL PAUSE(42-2*SPEED)
450 CALL POSITION(#1,Y,X) :: IF(X>185)+(X<57)THEN 730
460 CALL POSITION(#2,X,Y) :: IF X>=PZ(I)THEN CALL PATTERN(#2,131+I)
470 CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X) :: CALL C2 :: CALL PAUSE(42-2*SPEED)
480 CALL POSITION(#2,X,Y) :: IF X>=PZ(I)THEN CALL PATTERN(#2,131+I) :: GOTO 500
490 GOTO 440
500 NEXT I
510 P=P+(SPEED-10)
520 CALL PEEK(-31877,CN) :: IF(CN AND 32)=32 THEN 730
530 CALL C1 :: CALL DELSPRITE(#2) :: CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X)
540 CALL PUNKTE(P)
550 SPEED=SPEED+1 :: IF SPEED>21 THEN SPEED=21
560 ON INT(RND*2.5)+1 GOTO 390,570,840
570 V=(RND*128)-64 :: SH=V/10
580 CALL C2
590 CALL SOUND(-4250,10*SPEED,0,-6,5)
600 FOR I=1 TO 3 STEP 2
610 CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X) :: CALL C1
620 CALL POSITION(#1,Y,X) :: IF(X>185)+(X<57)THEN 730
630 CALL SPRITE(#2,139+I,8,ZH(I),121+FK(I)*SH)
640 CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X) :: CALL C2
650 CALL SPRITE(#2,140+I,8,ZH(I+1),121+FK(I+1)*SH)
660 NEXT I
670 P=P+3*(SPEED-10)
680 CALL PEEK(-31877,CN) :: IF(CN AND 32)=32 THEN 730
690 CALL C1 :: CALL DELSPRITE(#2) :: CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X)
700 CALL PUNKTE(P)
710 SPEED=SPEED+1 :: IF SPEED>21 THEN SPEED=21
720 GOTO 390
730 CALL MOTION(#1,0,0) :: CALL DELSPRITE(#2) :: CALL COLOR(#1,10)
740 FOR I=0 TO 15 STEP 2 :: CALL SOUND(-100,-7,I)
750 ON I+1 GOSUB 800,800,800,800,810,810,810,810,820,820,820,820,830,830,830,830
760 NEXT I
770 CALL DELSPRITE(#1)
780 ATO=ATO-1 :: CALL AUTO(ATO) :: IF ATO=0 THEN 1010
790 GOTO 370
800 CALL COLOR(#1,10) :: CALL PATTERN(#1,33) :: RETURN
810 CALL COLOR(#1,11) :: CALL PATTERN(#1,34) :: RETURN
820 CALL COLOR(#1,12) :: CALL PATTERN(#1,38) :: RETURN
830 CALL COLOR(#1,15) :: CALL PATTERN(#1,39) :: RETURN
840 V=(RND*128)-64 :: SH=V/10
850 CALL C2
860 CALL SOUND(-4250,10*SPEED,0,-6,5)
870 FOR I=1 TO 3 STEP 2
880 CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X) :: CALL C1
890 CALL POSITION(#1,Y,X) :: IF(X>185)+(X<57)THEN 730
900 CALL SPRITE(#2,123+I,3,ZH(I),121+FK(I)*SH)
910 CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X) :: CALL C2
920 CALL SPRITE(#2,124+I,3,ZH(I+1),121+FK(I+1)*SH)
930 NEXT I
940 P=P+2*(SPEED-10)
950 CALL PEEK(-31877,CN) :: IF(CN AND 32)=32 THEN 730
960 CALL C1 :: CALL DELSPRITE(#2) :: CALL JOYST(1,X,Y) :: CALL MOTION(#1,0,3*X)
970 CALL PUNKTE(P)
980 SPEED=SPEED+1 :: IF SPEED>21 THEN SPEED=21
990 GOTO 390
1000 P=0 :: ATO=3 :: CALL PUNKTE(P) :: CALL AUTO(ATO) :: RETURN
1010 CALL TITEL(CB$,CS$,B(,))
1020 GOSUB 1000
1030 GOTO 370
1040 SUB POEME(B(,),KY)
1050 DATA 2,1,3,311,30000,3,329,30000,2,2,6,440,30000,1,3,1,293,30000,1,329,30000,1,391,30000
1060 DATA 1,4,1,349,30000,1,329,30000,1,311,30000,2,1,1,349,30000,5,329,30000,1,5,3,369,30000,1,1,3,391,30000
1070 DATA 2,6,5,523,30000,1,493,30000,1,2,1,415,30000,1,440,30000,1,659,523
1080 DATA 1,5,2,587,493,1,523,440,2,4,1,523,440,5,493,391
1090 DATA 1,1,3,659,523,1,2,3,659,523,1,7,1,659,523,1,587,493,1,493,415,1,2,1,523,440
1100 DATA 1,587,493,1,659,523,2,3,6,880,698,2,4,1,880,698,1,783,659,2,1396,880,1,1318,783,1,1174,698
1110 DATA 1,2,3,1046,659,1,7,3,1046,587,2,1,1,1046,659,1,987,30000,1,659,523
1120 DATA 3,783,659,2,4,1,783,30000,1,587,30000,1,783,30000,1,698,30000,1,659,30000,1,622,30000
1130 DATA 2,1,1,698,30000,5,659,30000
1140 DATA 1,1,3,659,523,1,2,3,659,523,1,7,1,659,523,1,587,493,1,493,415,1,2,1,523,440
1150 DATA 1,587,493,1,659,523,2,3,6,880,698,2,4,1,880,698,1,783,659,2,1396,880,1,1318,783,1,1174,698
1160 DATA 1,2,3,1046,659,1,7,3,1046,587,2,1,1,1046,659,1,987,30000,1,659,523
1170 DATA 3,783,659,2,4,1,783,30000,1,587,30000,1,783,30000,1,698,30000,1,659,30000,1,622,30000
1180 DATA 2,1,1,698,30000,5,659,30000,0,0
1190 RESTORE 1050
1200 AZ,STV,CL=0
1210 READ K :: IF K=0 THEN 1190
1220 READ INR
1230 FOR I=1 TO K
1240 FOR J=1 TO 3
1250 CALL C1
1260 STV=STV+1 :: IF STV>AZ THEN READ AZ,M1,M2 :: STV=1
1270 CALL SOUND(420,M1,0,M2,0,B(J,INR),6) :: CALL KEY(1,T,S) :: IF S<>0 THEN SUBEXIT
1280 CALL C2
1290 NEXT J :: NEXT I
1300 GOTO 1210
1310 SUBEND
1320 SUB RECHAR
1330 DATA 00182424242418,00081808080808,0018240408103C,00182408042418,00282828380808,003C2038042418,00182038242418
1340 DATA 003C040810101,00182418242418,001824241C0418
1350 RESTORE 1330
1360 CALL HCHAR(12,12,30,10) :: CALL COLOR(3,11,2,4,11,2)
1370 FOR I=48 TO 57 :: READ C$ :: CALL CHAR(I,C$) :: NEXT I
1380 SUBEND
1390 SUB PUNKTE(P)
1400 DISPLAY AT(1,23)SIZE(6):USING "######":P
1410 SUBEND
1420 SUB AUTO(ATO)
1430 CALL HCHAR(1,3,32,3)
1440 IF ATO=0 THEN SUBEXIT
1450 CALL HCHAR(1,3,59,ATO)
1460 SUBEND
1470 SUB TITEL(C1$,C2$,B(,))
1480 CALL CHAR(124,C1$)
1490 PS=97 :: FOR I=1 TO 4 :: CALL SPRITE(#I,123+I,10,73,PS) :: PS=PS+16 :: NEXT I
1500 CALL POEME(B(,),1)
1510 FOR I=1 TO 4 :: CALL DELSPRITE(#I) :: NEXT I
1520 CALL CHAR(124,C2$)
1530 SUBEND
1540 SUB C1 :: CALL COLOR(7,16,2,8,16,2,11,16,2,5,2,2,6,2,2,9,2,2,10,2,2,12,2,2,13,13,4,14,4,4) :: SUBEND
1550 SUB C2 :: CALL COLOR(5,16,2,6,16,2,9,16,2,10,16,2,12,16,2,7,2,2,8,2,2,11,2,2,14,13,4,13,4,4) :: SUBEND
1560 SUB PAUSE(Z) :: FOR I=1 TO Z :: NEXT I :: SUBEND
1570 SUB BILD
1580 DATA (*-/)+(*(*-/)+....)+(*-/)+-/(*)+
1590 DATA #############$Vvw^%#############,############$`axzed%############,###########$bcWy{Wgf%###########
1600 DATA ##########$PQWWpsWWYX%##########,#########$RSWWWqtWWW[Z%#########,########$TSWWWWruWWWW[\%########
1610 DATA #######$@AWWWWWhlWWWWWIH%#######,######$BCWWWWWWimWWWWWWKJ%######,#####$DEWWWWWWWjnWWWWWWWML%#####
1620 DATA ####$FGWWWWWWWWkoWWWWWWWWON%####
1630 DATA 15,13,128,15,20,129,16,11,136,16,22,136,18,9,130,18,24,130
1640 DATA 19,9,131,19,24,131,22,5,138,23,5,139,22,28,138,23,28,139
1650 DATA 7,4,63,3,7,61,5,10,60,5,12,62,6,19,61,4,23,60,4,25,62,7,29,63
1660 RESTORE 1580
1670 FOR Z=14 TO 24 :: READ C$ :: FOR S=1 TO 32
1680 CALL VCHAR(Z,S,ASC(SEG$(C$,S,1)))
1690 NEXT S :: NEXT Z
1700 FOR I=1 TO 12 :: READ Z,S,C :: CALL VCHAR(Z,S,C) :: NEXT I
1710 CALL MAGNIFY(2)
1720 FOR I=21 TO 28 :: READ Z,S,C :: CALL SPRITE(#I,C,16,8*Z,8*S) :: NEXT I
1730 SUBEND
1740 SUB GRAFIK
1750 DATA ,422418BDFF7E3C5A,422418ADFD563C4A,FFFFFFFFFFFFFFFF,FFFEFCF8F0E0C08,FF7F3F1F0F070301,022010A93D502842
1760 DATA 0220008821100042,081C3C7F7FFFFFFF,03071F1F3F7F7FFF,4070F8FCFEFFFFFF,C0E0F8F8FCFEFEFF,,0000000C1F7F7FFF
1770 DATA ,0000000000C0F8FE,00030506060503,00C4AC2424A4C4,00F79497F414F7,00D252D25F42C2,003F080A0B0A0A
1780 DATA 00FF00DE12121E,00F500B5D59595,00CF08C80F00CF,00FE013DA5A5BD,00D010B810101,0000303000303,0010387CBAFE92
1790 DATA 010F3FFFFF7F0C,00187C7EFF7F3E1,0080C0ECFE7F0E04,00007C3E1F0E04,0103070F1F3E7EFC,F0E0C08,0103070F1F3F7EFC
1800 DATA F8F0E0C08,0103070F1F3F7FFE,FCF8F0E0C08,0103070F1F3F7FFF,FCF8F8F0E0C08,80C0E0F0F87C7E3F,0F070301
1810 DATA 80C0E0F0F8FC7E3F,1F0F070301,80C0E0F0F8FCFE7F,3F1F0F070301,80C0E0F0F8FCFEFF,3F1F1F0F070301,0103070E1C3878F
1820 DATA C08,0103070F1E3C78F,E0C08,0103070F1E3E7CF8,0044444444444438,0102040C183060C,
1830 DATA 80C0E070381C1E0F,0301,80C0E0F0783C1E0F,070301,80C0E0F0787C3E1F,0038080808080838,80402030180C0603
1840 DATA 000000000000007C,0103060C183870E,8,0103070E1C3870E,C08,80C06030181C0E07,01
1850 DATA 80C0E070381C0E07,0301,1F1F1F1F1F1F1F1F,1F1F1F1F3F3F3F3F,3F3F3F3F7F7F7F7F,7F7F7F7FFFFFFFFF,F8F8F8F8F8F8F8F8
1860 DATA F8F8F8F8FCFCFCFC,FCFCFCFCFEFEFEFE,FEFEFEFEFFFFFFFF,0303030307070707,0707070707070F0F,0F0F0F0F0F0F0F0F,C0C0C0C0E0E0E0E
1870 DATA E0E0E0E0E0E0F0F,F0F0F0F0F0F0F0F,0000000101010101,000000808080808,0101010101010101,0303030303030303,808080808080808
1880 DATA C0C0C0C0C0C0C0C,001010100010101,003008080408083,0000205408,,0000103810381,0000081C081C08
1890 DATA 00000018183C183C,7E183C181818,000018183C18,0000183C183C3C,00183C3C5A7E5A,185A7E5A18BDFF99,00183C183C7E1818
1900 DATA ,183C7E18183C7EFF,18183C7EFF181818,0000081C08,00040E1F0E04,08142E5F2E1408,2854AE5BAE5428
1910 RESTORE 1750
1920 FOR I=32 TO 143 :: READ C$ :: CALL CHAR(I,C$) :: NEXT I
1930 SUBEND
