Personal Computer Museum, Canada's Videogame Museum

Super Expander 64 (Alternate)

Super Expander 64 (Alternate)
Super Expander 64 (Alternate)

SystemCommodore 64


Commodore 64

Release Date: 1/1/1983
Manufacturer: Commodore
The Super Expander 64 was a cartridge-based extension to the built in BASIC V2 interpreter of the then immensely popular Commodore 64 home computer: Since the 64 was developed in a hurry, Commodore simply adapted the BASIC V2 from the PET line of computers and the VIC 20 for their new machine, with no support for the advanced sound and graphics capabilities of the 64. To make use of the advanced hardware, BASIC programmers needed to memorize hardware addresses and "POKE" commands directly to the memory-mapped devices. Later 8-bit systems from Commodore had BASIC interpreters enhanced to support the special hardware, and with the Super Expander 64 cartridge, Commodore 64 users could "retrofit" their machine with a BASIC to match the hardware capabilities.

The extra code was mapped into the "lower cartridge" 8 kilobytes area at $8000-$9FFF, thus reducing the 38911 bytes for user programs by said 8K.

After initializing the screen for "high-resolution" (320 × 200 monochrome pixels) or multicolor (160 wide × 200 pixels in four colors) graphics with the GRAPHIC command, one could draw lines, circles, ellipses, arcs, boxes and more using the DRAW, CIRCLE, and BOX commands. PAINT would "flood-fill" an area enclosed by lines, e.g. the interior of a CIRCLE or BOX. A CHAR command was used to "print" characters from the character generator ROM onto the bitmap graphics screen. SSHAPE and GSHAPE would store the contents of a rectangular area of the high-res graphics into a string variable, and GSHAPE would "stamp" it back onto the screen at arbitrary locations. Such "graphics-in-a-string" could also be used to transfer something drawn on the hi-res screen into one of the eight sprite patterns.

Besides a range of commands to initialize, position and move sprites (or Movable Object Blocks as Commodore called them; hardware-supported graphic elements that could move freely on the screen independently of other graphics and text on the screen), Super Expander had a built in tool to edit the pattern of 8 sprites (called upon with the SPRDEF command), either in high-res (24 × 21 pixels) or multicolor (12 wide x 21 pixels) mode.

There was even a way of implementing "interrupts" in the BASIC program if two sprites collided, if a sprite collided with other graphics and/or text on the screen, or if an attached light pen was activated. A COLINT command set up the interrupt, pointing to the beginning BASIC line number of the "interrupt handler", which had to end in a RETURN statement (part of standard, unexpanded BASIC) in order to transfer control back to the interrupted, "mainline" part of the program.

Super Expander 64 (Alternate) Cartridge
Have a comment about this Software (personal stories, additional information)? Post it here (no registration required).

Share |

Return to the software index.