Super Simple Series
In this series we'll take a look at a variety of basic tasks that you may need to look at when you're starting out with programming these classic systems...
In each case the source-code will be a single file with no Includes to make things easy if you're using a different assembler (though some may include a binary.)
![]() |
Lesson
S1 - Sprite Movement on the Dragon 32 Lets look at a simple example, here we'll create a simple sprite, and move it around the screen with the Joystick. |
![]() |
![]() DGN_Bitmap.asm
|
![]() |
![]() |
We're using 4 color PMODE 3
in this example... but other modes are available! If you want to try something different, take a look at this example here |
Drawing an 8x8 sprite
Reading the Joystick
Moving our sprite
Starting our program
Our Screen is not in
normal memory! it's in extended RAM and we need to page it into
accessible memory to write to it. In this example we'll page in just 8k at a time in the $2000-$3FFF range, so the third we select will depend on the Y line we want to write to. |
![]() |
Drawing an 8x8 sprite
Reading the Joystick
Moving our sprite
![]() |
Lesson
S3 - Object Movement on the Vectrex Lets take a look at the vectrex! We'll draw an object on the screen, and move it around with the Joystick. |
![]() |
![]() VTX_Bitmap.asm
|
![]() |
Starting our program
Because the Zero
page is pointing to Registers not ram we'll be unable to use the
Zero page for temporary storage. if we need ram we 'll need to switch DP to $C8 for a while, but we'll have to switch it back to $D0 before using the firmware. |
![]() |
Drawing an object
Reading the Joystick
Moving our object
Starting our program
We're creating a file on our disk, but we need to manually create
the header. The program starts at $2000 - and we need 21 bytes of header before that. |
![]() |
We should also define a footer. | ![]() |
![]() |
The main CPU
can't draw the graphics... we have to tell the CPU to do it! All data is passed to the sub cpu through just 128 bytes of shared ram... we have to send our command and bytes in this area... if we're doing a big sprite, we'll have to split it up! See here for Various detailed graphics examples! |
Drawing an 8x8 sprite
Reading the Joystick
Moving our sprite