![]() |
|
|||||||||||||||||
Super Expander
The VIC-1211 Super Expander was a cartridge for the Commodore VIC-20 home computer. It was designed to provide several extensions to the BASIC interpreter on the computer, mostly to help with programming graphics and sound. It also provided approximately 3KB of extra RAM. The cartridge was created by Commodore Business Machines (CBM) and released in 1981.
DescriptionThe dialect of BASIC bundled with the VIC-20, Commodore BASIC V2.0, was notorious for its sparse functionality. It was essentially a straight port from Commodore's older line of microcomputers, the PET. As a result it was outdated by the VIC-20's release and seemed quite primitive compared to BASIC dialects available on other microcomputers. To be fair, the decision by Commodore to recycle the old BASIC, and the fact that it could fit in just 8k ROM (including the Kernal), helped keep the VIC-20's price to a minimum and so contributed to its huge success. Plus it was stable and almost entirely bug-free. Nevertheless, not only did "VIC BASIC" lack commands considered fundemental to the BASIC language, such as "else" and "renum", but graphics and sound effects were completely unsupported. To use VIC-20's graphics and sound programmers had to "PEEK and POKE" bytes directly from/to the VIC-20's graphics/sound hardware, the 6560 Video Interface Chip (VIC). This made programming quite tedious and error prone since cryptic memory addresses and codes had to be used constantly, and many statements were required to do even simple tasks. As a result these programs tended to bloat, which in turn blew out efficiency and execution times. Such a thing was death in the tiny RAM and slow interpreted BASIC paradigm of the day. Programmers could mitigate these problems by using machine code, to an extent, but this in itself was a tedious process. So to address these shortcomings Commodore created the Super Expander cartridge. It provided extra BASIC commands to facilitate using graphics and sound on the VIC-20. It also had commands to read the joystick and lightpen, and to unlocked the use of function keys. GraphicsThe VIC-20 did not support high resolution graphics directly. Hi-res graphics were implemented by "painting" the display with characters, and "redefining" the character bitmaps on the fly. This was a complex and long-winded process; implementing it in a BASIC program was virtually useless due to the execution time required to draw anything. The Super Expander took care of all the hard work. It allowed the programmer to draw points, lines, ellipses and arcs, and to paint enclosed regions, with one-line statements. All the VIC-20's 16 colours could be used, although with restrictions due to limitations of the 6560. Display resolution was 160x160 pixels, throttled down from 192x200 allowed by the 6560, probably to minimise the amount of RAM required. Multicolor hi-res was supported (with a resolution of 80x160) and could be mixed with normal hi-res. Graphics and plain text could also be mixed on-screen. SoundThe VIC-20's sound capability was uncomplicated, so programming sound effects using "PEEK and POKE" was not so much of a chore as programming graphics. Even so the Super Expander provided a command to play simple tones on the VIC-20's four voice channels, and to control the volume. Music playback was unsupported on the VIC-20; the usual way of implementing a musical note was to play a tone inside a for loop time delay. In contrast, with Super Expander musical scores could played by simply PRINTing a string of characters. (Music strings were distinguished from regular strings using a special reverse-control-character, familiar to anyone who has used colours or cursor controls in VIC-20 programs.) Each of the VIC-20's four voice channels could play their own scores simultaneously, giving harmonious effects which could be striking by the standards of the time. Other devicesSuper Expander provided commands to read the status of the joystick and paddles, and the position of the lightpen. In the case of the joystick, since it was the "digital" or "switch" type, further bit-fiddling was required to decode its position. Function keysOrdinarily the VIC-20's function keys could only be used in a program, by scanning for the appropriate key code when reading the keyboard. In the VIC-20's "immediate" or "calculator" mode they were not available to do anything. With the Super Expander the function keys could be assigned to execute commands in immediate mode. By default they came pre-programmed with the most common BASIC commands, in a similar fashion to the GW-BASIC on the IBM PC. The user could then assign their own commands, or any arbitrary string in fact, to the function keys. Drawbacks
In spite of the above, the Super Expander’s features filled many of the gaps in the VIC-20's programming environment. It must also be remembered that similar microcomputers on the market suffered the same, or equivalent, shortcomings. See also
External linksThe contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License.
How to see transparent copy 01-04-2007 01:21:04 |
|





