This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
|
|
|
-
Entry name:Roni and the T.V. Attack
-
Category:Games
-
Publisher/Developer:BELLCOM - Public Domain Library
Listing 1
0 REM RONI AND THE T.V. ATTACK by Duke Hong
1 REM FOR ANTIC MAGAZINE
2 REM SEE LINES 20000-20004 FOR SOME INSTRUCTIONS.
3 GOSUB 20000
4 OPEN #2,4,0,"K:":OPEN #3,12,0,"S:":POKE 752,1:GOSUB 5000
5 POKE 559,34:GOTO 2060
10 DL=PEEK(560)+PEEK(561)*256:POKE DL+3,67:FOR A=6 TO 28:POKE DL+A,4:NEXT A:POKE DL+30,4
15 GOSUB 6000:POSITION 0,0:? "SCORE:";:POKE 85,11:? "RONIS:";:POKE 85,20:? "LEVEL:";:POKE 85,29:? "BONUS:";:GOSUB 1195
20 POKE 207,0:BONUS=200:POKE 1678,LEVEL
25 MODE=0:SPRING=0:YO=Y:X=5:Y=22:TT=1:LV=5:D=1:POSITION X,Y:? "!";:POKE 207,0
30 XO=X:YO=Y:IF NOT MODE THEN 50
35 TT=TT+1:IF TT=2 THEN TT=0
40 IF MODE=2 THEN 700
45 GOTO 500
50 IF STRIG(0)=0 THEN 410
51 A=STICK(0):IF A=15 THEN FOR I=1 TO 20:NEXT I:GOTO 70
52 IF A=11 THEN D=3:X=X-1:SOUND 0,8,0,3:IF X=22 THEN 950
53 IF A=7 THEN D=1:X=X+1:SOUND 0,8,0,3:IF X=16 THEN 950
54 SOUND 0,0,0,0:TT=TT+1:IF TT=2 THEN TT=0
55 IF X=-1 THEN X=0:GOTO 60
56 IF X=39 THEN X=38
60 POSITION XO,YO:? " ";:POSITION X,Y:GET #3,C:? "";Q$(D+TT,D+TT):IF C=32 THEN 70
61 IF C=37 THEN GOSUB 1100:GOTO 70
62 GOTO 1000
70 SOUND 0,0,0,0
78 U=USR(20480):IF PEEK(207) THEN 1000
96 IF BONUS<0 THEN 30
97 BONUS=BONUS-0.2:IF BONUS=INT(BONUS) THEN GOSUB 1205
99 GOTO 30
400 MODE=1:Y=Y-1:JP=0:JD=2-D
405 GOTO 500
410 IF X>0 AND X<38 THEN SOUND 0,40,12,3:GOTO 420
415 GOTO 52
420 A=STICK(0):IF A=15 THEN JD=(D=1)-(D=3):GOTO 430
425 JD=(A=7)-(A=11)
430 POKE 77,0:MODE=1:Y=Y-1:JP=0:GOTO 500
500 X=X+JD:JP=JP+1:IF JP<9 AND STRIG(0)=0 THEN 900
505 IF X<16 OR X>22 THEN Y=Y+1:MODE=0:GOTO 60
510 IF X>17 AND X<21 THEN MODE=2:BB=1:GOTO 700
515 Y=Y+1:K=D:POSITION XO,YO:? " ";
520 FOR I=1 TO 20:POSITION X,Y:? Q$(K,K):POKE 755,0:K=K+1:IF K=D+2 THEN K=D
525 SOUND 0,RND(0)*10+6,12,8:IF RND(0)<0.4 THEN POKE 755,4
530 NEXT I:POKE 755,0
535 YO=Y:Y=Y+1:IF Y=24 THEN Y=23:GOTO 545
540 SOUND 0,Y+6,0,6:POSITION X,YO:? " ";:POSITION X,Y:? Q$(D,D);:GOTO 535
545 SOUND 0,0,0,0:SL=SL-1:POSITION X,Y:? "*";:RESTORE 4000
550 READ A,B:IF A=-1 THEN FOR A=1 TO 200:NEXT A:POSITION X,Y:? " ";:GOTO 570
560 SOUND 0,A,10,4:SOUND 1,B,10,8:FOR A=1 TO 10:NEXT A:GOTO 550
570 IF SL=-1 THEN 2000
575 GOSUB 1195:GOTO 20
600 SPRING=SPRING+1
605 POSITION 18,23
610 ON SPRING GOTO 615,615,620,625
615 ? "";:GOTO 70
620 ? "";:GOTO 70
625 ? "";:SPRING=0:BB=-1:XO=X:YO=Y:GOTO 800
650 DL=LV-1:IF DL=0 THEN DL=5
655 GOTO 600
700 IF SPRING THEN 600
705 IF BB=-1 THEN 800
710 IF Y=22 THEN SPRING=1:SOUND 0,100,2,4:GOTO 650
715 Y=Y+1:GOTO 60
800 IF Y=Y(DL)-1 THEN LV=DL:GOTO 400
810 Y=Y-1:GOTO 60
900 IF X=0 OR X=38 THEN MODE=0:Y=Y+1
905 POSITION X,Y+1:GET #3,C:POKE 85,PEEK(85)-1:PUT #3,C:IF C=39 THEN SCORE=SCORE+20:SOUND 0,28,12,6:GOSUB 1200
910 GOTO 60
950 POSITION XO,YO:? " ";:POSITION X,Y:? Q$(D+TT,D+TT);:XO=X:YO=Y:Y=Y-1:GOTO 515
1000 POSITION XO,YO:? " ";:FOR K=1 TO 30
1005 POSITION X,Y:? Q$(D,D);:SOUND 0,10,4,8:? "";:D=D+1:IF D=5 THEN D=1
1010 SOUND 0,30,2,8:NEXT K
1015 GOTO 545
1100 SC=SC+1:SCORE=SCORE+10:SOUND 0,20,12,6:GOSUB 1200
1105 IF SC<5 THEN RETURN
1110 POP:LEVEL=LEVEL+1:IF LEVEL=7 THEN LEVEL=1:LEVEL$="))))))"
1115 POSITION XO,YO:? " ";:POSITION X,Y:? Q$(D,D);
1120 FOR V=8 TO 0 STEP -1:FOR I=0 TO 3:FOR K=50+I*5 TO 100+I*10 STEP 15:SOUND I,K,10,V:NEXT K:NEXT I:NEXT V
1125 IF BONUS>INT(BONUS) THEN BONUS=INT(BONUS)+1
1130 IF BONUS=0 THEN 15
1135 FOR K=BONUS-1 TO 0 STEP -1:SOUND 0,K,10,6:BONUS=BONUS-1:SCORE=SCORE+1
1140 GOSUB 1200:GOSUB 1205:NEXT K
1145 GOTO 15
1195 POSITION 17,0:? SL;:POSITION 26,0:? LEVEL;:POSITION 6,0:? SCORE;:POSITION 35,0:? 200:RETURN
1200 POSITION 6,0:? SCORE;:RETURN
1205 POSITION 35,0:? BONUS;" ";:RETURN
2000 POKE 764,255:CLOSE #3
2005 GRAPHICS 1+16:POSITION 0,4:? #6;" "
2010 SETCOLOR 4,9,4:SETCOLOR 0,6,14
2015 POSITION 6,12:? #6;"SCORE=";SCORE
2020 IF SCORE>HS THEN 2030
2025 POSITION 8,16:? #6;"":POSITION 7,18:? #6;HS;" ";HS$;:I=0:GOTO 2040
2030 POSITION 6,16:? #6;"new high":POSITION 7,18:? #6;"?";:FOR I=1 TO 3:GET #2,A:? #6;CHR$(A);:HS$(I,I)=CHR$(A)
2035 NEXT I:HS=SCORE:GOTO 2005
2040 POKE 710,I:IF STRIG(0)=0 THEN 2055
2045 I=I+1:IF I>255 THEN I=0
2050 GOTO 2040
2055 OPEN #3,12,0,"S:"
2060 AT=0:SL=3:SCORE=0:LEVEL=1:POKE 710,148:LEVEL$="":GOTO 10
4000 DATA 108,217,108,217,0,217,108,217,0,217,108,217,0,217,108,217,0,217,0,182,0,182
4010 DATA 96,193,0,193,96,193,0,193,108,217,0,217,108,217,0,217,114,230,114,230,114,230,108,217,108,217,0,217,0,0,-1,0
5000 POKE 559,0:MEM=PEEK(742)-8
5005 DIM MOVE$(31):MOVE$="h`"
5010 FOR I=1 TO 31:POKE 1535+I,ASC(MOVE$(I,I)):NEXT I:POKE 209,MEM:U=USR(1536)
5015 RESTORE 10000:K=MEM*256+8:FOR I=0 TO 79:READ A:POKE K+I,A:NEXT I
5020 DIM LEVEL$(6),LINE$(39),Q$(4),HS$(3):Q$="! #$":Q$(2,2)=CHR$(34):HS$=" "
5030 DIM XC(7),AX(9),AY(9),AD(9),AF(9),Y(5):HS=0
5035 GOTO 7050
6000 SC=0:? "":POKE 752,1:POKE 756,MEM:SETCOLOR 1,8,14:POKE 82,0
6005 LINE$(1)=" ":LINE$(39)=" ":LINE$(2)=LINE$(1)
6010 FOR IX=1 TO 39:IF IX>16 AND IX<24 THEN 6020
6015 LINE$(IX,IX)=LEVEL$(LEVEL,LEVEL)
6020 NEXT IX
6025 FOR IY=7 TO 23 STEP 4:POKE 85,0:POKE 84,IY:? LINE$;:SOUND 0,IY,4,2:Y((IY-3)/4)=IY
6030 FOR I=0 TO 2:FOR K=I*10+30 TO I*10+50 STEP 10:SOUND I,K,10,INT((24-IY)/3)
6035 NEXT K:NEXT I:NEXT IY
6040 POSITION 18,23:? "";:FOR I=1 TO 5
6045 YC=Y(I)-1:IF I=5 THEN 6055
6050 IF RND(0)<0.5 THEN XC(I)=INT(RND(0)*5):GOTO 6060
6055 XC(I)=INT(RND(0)*5)+34
6060 IF XC(I)=1 OR XC(I)=37 THEN 6045
6065 POSITION XC(I),YC:? "%";:NEXT I:FOR I=1 TO 5:IF XC(I)<16 THEN 6075
6070 AX=INT(RND(0)*6)+24:GOTO 6080
6075 AX=INT(RND(0)*6)+9
6080 AD=INT(RND(0)*3)-1:IF NOT AD THEN 6080
6085 TRAP 6087:POKE 1658+I,AX:POKE 1664+I,AD:GOTO 6090
6087 POKE 1664+I,255
6090 POSITION AX,Y(I)-1:? "&";:NEXT I
6095 POKE 1670,20:POKE 1671,15:POKE 1672,255:POKE 1673,1
6100 POKE 1674,19:POKE 1675,6:POKE 1676,1:POKE 1677,1
6105 IF LEVEL<4 THEN RETURN
6110 A=LEVEL*4:FOR I=1 TO A
6115 X=INT(RND(0)*19)*2:IF X>15 AND X<24 THEN 6115
6120 Y=Y(INT(RND(0)*5)+1)-2:IF X<6 OR X>34 THEN Y=Y+1
6125 POSITION X,Y:GET #3,C:POKE 85,PEEK(85)-1:PUT #3,C:IF C<>32 THEN 6115
6130 IF Y>20 THEN IF X>5 AND X<35 THEN 6115
6135 POSITION X,Y:? "(";:NEXT I:RETURN
7000 DATA 104,162,1,134,209,189,110,6,141,36,6,141,68,6,141,83,6,189,116,6,141,37,6,141,69,6,141,84,6
7010 DATA 189,122,6,170,169,0,157,0,0,134,208,166,209,189,128,6,101,208,157,122,6,201,6,240,40,201,23,240,36,201,15
7020 DATA 240,42,201,32,240,38,170,189,0,0,240,8,201,5,16,4,169,1,133,207,169,6,157,0,0,230,209,166,209,224
7030 DATA 6,208,168,96,168,169,1,157,128,6,152,76,66,6,168,169,255,76,97,6
7050 RESTORE 7000:FOR I=1536 TO 1657:READ A:POKE I,A:NEXT I
7060 HI=PEEK(89):LO=PEEK(88):LO=LO+80:IF LO>255 THEN LO=LO-256:HI=HI+1
7070 POKE 1646,LO:POKE 1652,HI
7080 FOR I=1 TO 5:LO=LO+160:IF LO>255 THEN LO=LO-256:HI=HI+1
7090 POKE 1646+I,LO:POKE 1652+I,HI:NEXT I:GOTO 8070
8000 DATA 104,32,1,6,169,1,205,142,6,208,1,96,174,135,6,134,205,189,143,6,133,208,189,167,6,133,209,172,134
8005 DATA 6,169,0,145,208,173,137,6,24,101,205,201,1,240,18,201,22,240,14,170,189,143,6,133,208,189,167,6,133
8010 DATA 209,76,93,80,56,133,205,169,0,237,137,6,141,137,6,169,161,141,0,210,169,196,141,1,210,165,205,236,135
8015 DATA 6,240,26,76,48,80,134,205,177,208,240,17,48,4,201,5,48,11,173,135,6,170,76,62,80,169,1,133,207
8020 DATA 165,205,141,135,6,170,189,143,6,133,208,189,167,6,133,209,173,134,6,133,205,173,136,6,24,101,205,133,205
8025 DATA 240,7,201,38,240,3,76,167,80,56,133,206,169,0,237,136,6,141,136,6,165,206,168,177,208,240,27,48,11
8030 DATA 201,5,16,7,162,1,134,207,76,199,80,173,134,6,133,205,56,169,0,237,136,6,141,136,6,164,205,169,7,145,208
8035 DATA 140,134,6,169,2,205,142,6,208,1,96,174,139,6,189,143,6,133,208,189,167,6,133,209,172,138,6,169,0,145
8040 DATA 208,24,173,141,6,109,139,6,141,139,6,170,201,1,240,7,201,22,240,3,76,42,81,56,169,0,237,141,6
8045 DATA 141,141,6,24,173,140,6,109,138,6,141,138,6,201,18,240,7,201,20,240,8,76,42,81,169,1,76,39,81
8050 DATA 169,255,141,140,6,172,138,6,189,143,6,133,208,189,167,6,133,209,177,208,240,8,201,5,16,4,169,1,133
8055 DATA 207,169,7,145,208,96
8070 RESTORE 8000:FOR I=0 TO 327:READ A:POKE 20480+I,A:NEXT I
8080 SCRNTP=PEEK(88)+PEEK(89)*256
8085 FOR I=0 TO 22:SCRNTOP=SCRNTP+I*40:A=INT(SCRNTOP/256):A1=SCRNTOP-A*256
8090 POKE 1679+I,A1:POKE 1703+I,A:NEXT I:RETURN
10000 DATA 40,40,40,170,52,60,204,138
10010 DATA 40,40,170,20,52,61,124,40
10020 DATA 40,40,40,170,52,60,51,162
10030 DATA 40,40,170,20,28,124,61,40
10040 DATA 4,28,24,80,80,32,32,32
10050 DATA 195,20,20,150,130,130,170,130
10060 DATA 16,20,170,130,130,170,20,4
10070 DATA 0,0,16,252,16,0,0,0
10080 DATA 0,0,0,0,0,0,0,0
10090 DATA 0,40,40,20,150,40,170,170
20000 REM
20010 ? CHR$(125):POKE 752,1:SETCOLOR 2,7,0
20015 POSITION 8,2:? ""
20020 POSITION 8,3:? "RONI AND THE T.V. ATTACK":POSITION 8,4:? ""
20030 ?:? ":":?:? "Collect the FEATHERS, but avoid the deadly TELEVISIONS.":?
20040 ? "Use the SPRING to bounce from one PLATFORM to another. Hold the FIRE"
20050 ? "BUTTON down to keep Roni jumping.":?:? "At the higher levels the rooms are"
20060 ? "too dark to see the platforms."
20080 POSITION 10,23:? "PRESS TO BEGIN";
20090 IF PEEK(53279)<>6 THEN 20090
20100 POKE 752,0:RETURN
References
Listing downloads
Downloads
Copyright holder
