VIC-20 games from the early 1980s
Here are the games I wrote for Commodore VIC-20 in 1984-1985. It is amazing that I was able to restore the games from the tapes that have been stored over 30 years in various places.
If you want to discuss these games please visit Denial Forum.
This was my very first game with simple PETSCII graphics. It is written entirely in BASIC. I was just trying to learn how to move things on the screen and detect if them collide. It has sound effects too!
Controls:
A Left
D Right
RETURN Fire
Download space invader.prg.zip for unexpanded VIC-20.
The first idea was to make a maze game but during the development the plans changed and the play field is not really a maze anymore. However, the loading screen was created at early stage so I didn’t bother to change the name. At that time I did not have a character editor so the graphics were made using paper, pen and calculator. It was dedious work.
The game is written partly in BASIC and partly in machine language. Originally it was a tape game and the high score table was saved on tape. After 33 years I was still able to relearn CBM BASIC and convert loading and saving to disk instead. Enjoy!
Controls:
Z Left
M Right
SPACE Down
Download d64 disk image maze(+3k).zip for VIC-20 with 3K memory expansion.
This game has nothing to do with the game developed by Tehkan. I just didn’t know that game with the same name already existed.
While browsing through my old archives I found a few sketches. These are probably done before I started to write any code.
Here is map design draft with final screen resolution which I had just discovered. The game works only on PAL machines due to extended screen resolution. The status line includes word ‘key’ so the game was not about bombs in the first place.
Here is the very same map from the actual game.
The game has so many loaders that I gave up the idea of converting it to disk image and it is now only provided as TAP images. Loading takes ages, sorry! There is even bitmap loading screen made by a friend of mine with his self made drawing tool.
Update 2018-12-31: The game is now available in d64 format!
The game is written partly in BASIC and partly in machine language. Some of the ML routines are excuted as an IRQ routine.
I didn’t have ML monitor at that time so coding was first done with paper & pen and then POKEd to the memory. Here’s some of my “coding”. I did not feel comfortable with hexadecimals back then. Now using decimals in assembly code seems a bit weird.
And here is the updated (2018) code for ca65 assembler.
read_joy:
lda #$7F
sta VIA2_DDRB
lda VIA2_PB
pha
lda #$FF
sta VIA2_DDRB
pla
and #$80
beq pos_right
lda VIA1_PA2
and #$04
beq pos_up
lda VIA1_PA2
and #$08
beq pos_down
lda VIA1_PA2
and #$10
beq pos_left
rts
pos_up:
sec
lda $FB
sbc #MAP_X_SIZE
sta $FD
lda $FC
sbc #$00
sta $FE
rts
pos_right:
clc
lda $FB
adc #$01
sta $FD
lda $FC
adc #$00
sta $FE
rts
pos_left:
sec
lda $FB
sbc #$01
sta $FD
lda $FC
sbc #$00
sta $FE
rts
pos_down:
clc
lda $FB
adc #MAP_X_SIZE
sta $FD
lda $FC
adc #$00
sta $FE
rts
Here is another map from the game.
It seems that I ran out of ideas for the main character since the same guy is wobbling again in this game.
Load the game from Bomb_Jack_Game.tap.
After loading the game displays
a screen where it says:
Please reset tape counter to '000' and press FIRE
Attach tap file Bomb_Jack_Maps.tap
and press FIRE. Shortly after set tape
to play mode. The first game map should load now.
The game has 8 different maps. If you manage to complete all maps rewind the tape and start from the map 1 again. The game was never really finshed so it doesn’t know how many maps the tape contains and it just keeps loading the next map endlessly.
Press FIRE
to pause/resume game playing.
Download tap tape images bombjack(+3k).zip for VIC-20 with 3K memory expansion and joystick.
Updated version in d64 format is available here.