A downloadable game

B-VROOM BY 2ST_RETRO

 

Author: 2ST_RETRO

 

Atari XL/XE stock basic category „PUR 120”

 

Game description:

A game inspired by handhelds with monochrome LCD screens drom the 80s.

You drive a car at the bottom of a three-lane road, with slower cars approaching from above.

You task is to avoid Tham and get as far as possible.

A collision causes finish game.

 

 

Game control:

Key O -> one position left

Key P -> one position right

Key Return if needed :)

 

Code description:

1st line

      - set graphics mode to 0

      - declare variable A$,B$,C$ - this keep each road line with slower cars

      - S - delay loop value, here is like level, because after each 50 points is decreased by 20 to speedup game

      - R - value for RND number

      - Z - score

      - P - player car position (on which road line is 1,2 or 3)

      - L=10 - variable reduces number of chars by 1 in code (L is one char but 10 is two chars :))

      - POKE 82 - sets default margin to 10 (this was supposed to reduce the number of POSITION command, but I think I don’t used it in the end)

      - X - pressed key code

2nd line

      - jump to display title

      - show information about initialise

      - copying a set of characters to a new location in order to replace some of them

      - start loop for set user character

3th line

      - rest of loop

      - show info to press Return to start

      - declaration variable D$ only for get Return

      - LV - game level

4th line

      - for variable A$, B$, C$ copy one up all values

      - get RND value

      - depend of RND value set 1 to A$ (if RND=1), B$(if RND=2) or C$(if RND=3), that mean on line new slower car appears

5th line

      - draw buffers A$,B$,C$ (with line between) od screen

      - get to X pressed Key code

6th line

      - reset register with pressed key code

      - depend of X increase or decrease player car position

      - check that position is not greater than 3 or smaller than 0 and correct it

      - draw player car on proper position

      - checking that score exceeded another 50 point, and if that decrease delay loop by 20 (to speedup game), and increase level by 1

7th line

      - check that on player car position is other slower car, if is then jump to line 9 (check to every one road line)

8th line

      - print on screen score and level on screen

      - delay loop

      - jump to line 4 to next game iteration

9th line

      - print information that player crashed

      - wait for press return (with proper information)

      -cleanup (set graphics 0 which set default charset, set default margin, exit to basic)

10th line

      - print on screen game name

      - data for 3 user defined chars (64 - blank for empty road, 65 - slower car, 66 - player car)

 

I, as the author, consent to the publication of this program/game and all files included in the content of this submission.

 

SOURCE CODE:

                  1                  2                3                  4                  5                6                  7                  8                9                  10                11
  
12345678901234567890123456890123456789012345678901234568901234567890123456789012345689012345678901234567890
 
1 GRAPHICS 0:L=10:DIM A$(L),B$(L),C$(L):A$="          ":B$=A$:C$=A$:S=140:R=5:Z=0:P=2:POKE 82,L:X=0              
2 GOSUB L:PRINT "INIT...":FOR I=0 TO 1024:POKE 32768+I,PEEK(57344+I):NEXT I:FOR I=0 TO 23:READ J                 
3 POKE 33280+I,J:NEXT I:POKE 756,128:POKE 752,1:POSITION 7,1:PRINT "PRESS RETURN";:DIM D$(1):INPUT D$:LV=0       
4 A$(1,9)=A$(2,L):B$(1,9)=B$(2,L):C$(1,9)=C$(2,L):Q=INT(RND(0)*R):A$(L)=CHR$(Q=1):B$(L)=CHR$(Q=2):C$(L)=CHR$(Q=3)
5 FOR I=1 TO L:POSITION L,2+I:V=11-I:PRINT "|";A$(V,V);":";B$(V,V);":";C$(V,V);"|":NEXT I:X=PEEK(764)     
6 POKE 764,0:P=P+(X=10)-(X=8):P=P-(P=4)+(P=0):POSITION 9+P*2,12:PRINT "X":IF Z/50=INT(Z/50) THEN S=S-20:LV=LV+1  
7 IF ((P=1) AND (A$(1,1)="Y")) OR ((P=2) AND (B$(1,1)="Y")) OR ((P=3) AND (C$(1,1)="Y")) THEN GOTO 9             
8 POSITION 7,1:PRINT "LEVEL:";LV;" SCORE:";Z:Z=Z+1:FOR I=1 TO S:NEXT I:GOTO 4                                    
9 POSITION 8,2:PRINT "YOU CRASHED!":POSITION 2,20:PRINT "PRESS RETURN":INPUT A$:POKE 82,2:GRAPHICS 0:END         
10 PRINT "B-VROOM BY 2ST_RETRO":RETURN :DATA 0,0,0,0,0,0,0,0,60,90,90,60,60,90,90,0,60,219,219,60,126,153,231,0  
 
12345678901234567890123456890123456789012345678901234568901234567890123456789012345689012345678901234567890
                  1                  2                3                  4                  5                6                  7                  8                9                  10                11

NOTE: In the above code on lines 6 and 7 I had to change the ATARI characters to X and Y, because they are not available in this character set :)

1 line - 99

2 line - 96

3 line - 106

4 line - 113

5 line - 101

6 line - 111

7 line - 100

8 line - 77

9 line - 104

10 line - 111

Download

Download
BVROOM_description_public.rtf 49 kB
Download
bvroom.atr 130 kB

Install instructions

How to play:

1. Go to basic (BASIC)

2. Load game - LOAD „D1:VROOM.BAS”

3. Type RUN and press RETURN

Leave a comment

Log in with itch.io to leave a comment.