In my document about the G7000 / Odyssey² BIOS I explain several simple demo programs. Here you can download the full source code to all of them. They were all written for ASL, for other assemblers you may need to make some changes. To successfully assemble any of the programs you will need my g7000.h include file which is in the "Support files" section. There you can get a copy of the GNU Public Licence, too.
hello.a48
Version 1.2
This program uses the printchar routine to print
"HELLO WORLD" in white letters.
hellot.a48
Version 1.1
This program prints "HELLO WORLD" in green letters. It uses the table routines for this task.
joystick.a48
Version 1.3
This programs displays a dot which can be moved around with the joystick. While moving the dot changes into an arrow. Press the fire button to double the size of the dot/arrow.
collision.a48
Version 1.3
This program displays the contents of the collision register. You can move the ball with the joystick to collide with both grids, another sprite and a char.
clock.a48
Version 1.0
This programs demonstrates the use of the clock routines built into the BIOS. The clock can be controlled by the joystick. Moving left stops the clock, moving right restarts it. The direction can be changed by moving up and down. Additionally the program plays a sound every full minute.
bitfield.a48
Version 1.1
This program shows how to use the bit field routines, how to wait for pressed keys on the keyboard and how to use VSYNC and line interrupts. It is a very minimalistic grid editor for the horizontal grid. Use + to edit the next, - to edit the previous bit, 1 to set the current bit and 0 to clear the current bit.
This program does not run on Videopac+ G7400 machines.
tuneplay.a48
Version 1.0
This program contains a custom tune playing routine that is very similar to the routine used by most commercial games with custom sounds. Press any key to hear a tune play.
palntsc.a48
Version 1.0
This programs checks if it is running on a PAL or a NTSC machine. This is done by checking the length of the VBLANK pulse.
vpplus.a48
Version 1.2
This program shows the additional text and graphics capabilities of the Videopac+ G7400 machines.
This program only works on Videopac+ G7400 machines.
slideshow-1.1.zip
Version 1.1
This program shows a slide show on Videopac+ G7400 machines with MegaCART hardware.
This program only works on Videopac+ G7400 machines. It needs a MegaCART or FlashCART cartridge to run.
eepromedit-1.0.zip
Version 1.0
This program allows to change the EEPROM contents of the MegaCART or FlashCART.
This program needs a MegaCART or FlashCART cartridge to run.
gpl-2.0.txt
Version 2
This is the licence which defines the conditions under which you can use most of my demo programs. See the individual programs if this licence does apply.
gpl-3.0.txt
Version 3
This is the licence which defines the conditions under which you can use some of my demo programs. See the individual programs if this licence does apply.
g7000.h
Version 1.3
This file contains symbolic names for all BIOS routines, VDC registers, internal RAM variables and colors.
The demo programs here are not explained in the BIOS document. Most of them just demonstrate one feature of the machine or were used to verify the accuracy of the o2em emulator. I provide them here as examples, although they are only very badly documented.
p17.a48
Version 1.0
The program print "HELLO WORLD" on the screen. Then you can use the keys 0 and 1 to clear and set P1 bit 7. This port bit forces the luminance bit of the VDC output to 1 making all dark colors bright, so all 16 colors can be used as background colors.
quadcut.a48
Version 1.0
This program shows how quad cut off does work. Quad drawing is always controlled by the last char in a quad.
The quad in the top row is cut down to 2 lines by the full block in the last char, the other 3 chars show a filled triangle block 038h with different start positions.
The quad in the bottom row is displayed in full height by showing a full block as last char. The other 3 chars show the slash 02eh with different start positions. The display of these 3 chars does not stop at char end, the display wraps around and shows the full block which is char 02fh.
charset.a48
Version 1.0
This program shows one char surrounded by a check-board pattern to make it easier to see which bits in the char are set. Press 1 for the next char or 0 for the previous char.
charscan.a48
Version 1.0
This program prints one char and uses a sprite to scan for the bitmap of the char which is then printed. Press 1 for the next char or 0 for the previous char.
coll-plus.a48
Version 1.0
This program demonstrates how to check for collisions with Videopac+ objects. Most of the display is identical to the collision.a48 demo program. Additionally there is a bright white and a dark red blinking block as Videopac+ graphics. Only bright colors are active for collisions, so the dark red block does not collide.
This program only works on Videopac+ G7400 machines.
romview.a48
Version 1.0
This program shows its own ROM contents on the screen. It supports the following key commands:
| 0 | previous bank |
| 1 | next bank |
| 2 | previous page |
| 3 | next page |
| 4 | previous 8 bytes in page |
| 5 | next 8 bytes in page |
charread.a48
Version 1.0
This program shows that the char registers have a different meaning when
read back in gfxon than in gfxoff. The contents
while gfxon looks like junk.
Here you can get additional support files. They are currently not used by any of the released demo programs, but may be useful for programmers.
charset.h
Version 1.0
This file does contain the Videopac char set as asl codepage. If you include this into your programs you can write things like:
codepage videopac
hello db "HELLO WORLD"
codepage standard