*** THE OMEGAN TRIAL *** by Anders Persson 2002 (https://www.boray.se ---) For any VIC20 (unexpanded, expanded, PAL or NTSC). It’s 100% Basic and written on a real VIC20. Written for the 1K Minigame Compo in 2002 (https://www.ffd2.com/minigame/). Size: 1023 bytes. The Omegan system is famous for its way of training its warriors using android controlled fighters (code named "Omega Race"). However - first the cadets have to go through the "Omegan Trial". The "Omegan Trial" is a test with non-moving targets. You pilote the never resting "Omegan Spider", the most feared droid controlled craft used in Omega Race. Because of its extensive shielding, it's safe for beginners. Your mission is to hit the star ("*"), but there are also other obstacles you must avoid. If you hit one of these obstacles, you will loose 10% of the shield (of the total shield). So try to hit ONLY the star. For every new level, there will be more obstacles. The "Omegan Spider" is a craft that's hard to control. You can only control it when it's bouncing back and forth closest to the ground. So aim (while moving) and press "engage" (any key) and the craft is thrown away to bounce on the walls and to then return to ground level. Now, are you ready for the trial? If you reach above level 16, then you did a good job. DON’T MISS my other VIC20 programs! You will find them at: https://home.worldonline.se/boray/datormuseum/index.html including my best game "Tribbles" for 8K VIC20 - A mix between Lemmings and Pinball!!! I also have one more VIC20 game in this 1K minigame compo: "Reaction 1K". Well, have fun! Kind Regards, Anders Persson https://www.boray.se
-- Program listing: (Copyright (C) 2002 by Anders Persson) 0 q(0)=64:q(1)=77:q(2)=66:q(3)=78:o=0:s=10:m=22:j=255 1 q=4096:i=33792: IF PEEK(44)=16 THEN q=7680:i=30720 3 w=q-1:u=q+m:y=q+483:l=36875: POKE l+3,15: POKE l+4,10:f=l+2 4 PRINT " omegan trial": PRINT "by anders persson 2002https://www.boray.se" 6 PRINT "try to hit the *, but only the *! use anykeyto jump.": GOSUB 35 8 o=o+1: PRINT "get ready for level";o: PRINT "shield:";s*10;"%": GOSUB 35 9 FOR t=128 TO 245: POKE l,t: POKE l,j-t: NEXT : POKE l,0: GOSUB 40: IF n=0 THEN n= RND(-ti) 12 PRINT "":z= INT( RND(1)*2)+2:k= INT( RND(1)*60)+193 13 FOR t=1 TO o:v= INT( RND(1)*480)+q: POKE v+i,z+ INT( RND(1)*3)*2: POKE v,k: NEXT :b=y+5:c=1: GOSUB 34 16 e= INT( RND(1)*438)+q: IF PEEK(e)=k THEN 16 17 POKE e,42 18 GET a$: IF a$<>"" THEN IF b>y THEN c=c-m 19 POKE b,32:b=b+c: IF PEEK(b)<>32 THEN 25 20 POKE b,q(x):x=(x+1) AND 3: IF b>y THEN IF c>1 THEN c=c-m 21 IF b{u THEN c=c+44 22 r=(b-q)/m: IF r= INT(r) THEN c=c+2 23 r=(b-w)/m: IF r= INT(r) THEN c=c-2 24 GOTO 18 25 IF e=b THEN 4 26 POKE f,234:s=s-1: POKE f,0: IF s=0 THEN 28 27 GOTO 20 28 PRINT "";: GOSUB 35 29 PRINT "game over!": PRINT "you reached level";o: PRINT : GOSUB 35 30 FOR t=0 TO j: POKE l,t: POKE l,j-t: POKE f,j-t: POKE f,t: NEXT : POKE f,0: GOSUB 40: RUN 34 FOR t=j TO 100 STEP -1: POKE l,t: POKE l,j-t: NEXT : POKE l,0: RETURN 35 PRINT "CCCCFRFCCFCC": RETURN 40 : PRINT "press any key."; 42 GET a$: IF a$="" THEN 42 44 RETURN ---------- Was that all? ;-) Technical note: Setting the random seed to -ti ( X=RND(-TI) ) the first thing you do in a program still gives the same random sequence every time in the VICE emulator if you started the program with "File/Autostart disk/tape image" just because it takes exactly the same time to load and start the program every time. I solved this by putting it in after the first time where the program waited for the user to press any key. (Line 9). This is just a fix for VICE. On a real VIC20 it will never take exacly the same time to start the computer, load the program and run it.... ---