Super Expander
Encyclopedia
The VIC-1211 Super Expander was a cartridge for the Commodore VIC-20
Commodore VIC-20
The VIC-20 is an 8-bit home computer which was sold by Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commodore's first personal computer, the PET...

 home computer
Home computer
Home computers were a class of microcomputers entering the market in 1977, and becoming increasingly common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single nontechnical user...

. It was designed to provide several extensions
BASIC extension
BASIC toolkits —not to be confused with widget toolkits—were a common type of program for 1980s 8-bit home computers...

 to the BASIC interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

 on the computer, mostly to help with programming graphics
Computer graphics
Computer graphics are graphics created using computers and, more generally, the representation and manipulation of image data by a computer with help from specialized software and hardware....

 and sound. It also provided 3KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...

 of extra RAM
Ram
-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...

 (of which 136 bytes were used by the cartridge itself). The cartridge was created by Commodore Business Machines (CBM)
Commodore International
Commodore is the commonly used name for Commodore Business Machines , the U.S.-based home computer manufacturer and electronics manufacturer headquartered in West Chester, Pennsylvania, which also housed Commodore's corporate parent company, Commodore International Limited...

 and released in 1981.

Description

The dialect of BASIC bundled with the VIC-20, Commodore BASIC V2.0
Commodore BASIC
Commodore BASIC, also known as PET BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET of 1977 to the C128 of 1985...

, was notorious for its sparse functionality. It didn't even match the features of Commodore's older line of computers, the PET
Commodore PET
The Commodore PET was a home/personal computer produced from 1977 by Commodore International...

 which, at that time, already featured Commodore BASIC version 4.0. 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 16K ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

 (including the KERNAL
KERNAL
The KERNAL is Commodore's name for the ROM-resident operating system core in its 8-bit home computers; from the original PET of 1977, followed by the extended but strongly related versions used in its successors; the VIC-20, Commodore 64, Plus/4, C16, and C128...

), 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, which could not be said of competing BASICs, such as Atari BASIC
Atari BASIC
Atari BASIC is a BASIC interpreter for the Atari 8-bit family of 6502-based home computers. The interpreter originally shipped on an 8 KB cartridge; on later XL/XE model computers it was built in, with an option to disable it, and started when the machines were booted with no other cartridges...

.

Nevertheless, not only did "VIC BASIC" lack command
Command (computing)
In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task. Most commonly a command is a directive to some kind of command line interface, such as a shell....

s considered fundamental 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
PEEK and POKE
In computing, PEEK is a BASIC programming language extension used for reading the contents of a memory cell at a specified address. The corresponding command to set the contents of a memory cell is POKE.-Statement syntax:...

" byte
Byte
The byte is a unit of digital information in computing and telecommunications that most commonly consists of eight bits. Historically, a byte was the number of bits used to encode a single character of text in a computer and for this reason it is the basic addressable element in many computer...

s directly from/to the VIC-20's graphics/sound hardware, the 6560 Video Interface Chip (VIC)
MOS Technology VIC
The VIC , specifically known as the MOS Technology 6560 / 6561 , is the integrated circuit chip responsible for generating video graphics and sound in the Commodore VIC-20 home computer...

. This made programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 quite tedious and error prone since cryptic memory address
Memory address
A digital computer's memory, more specifically main memory, consists of many memory locations, each having a memory address, a number, analogous to a street address, at which computer programs store and retrieve, machine code or data. Most application programs do not directly read and write to...

es and codes had to be used constantly, mistakes in these would usually crash the computer instead of giving an error message, 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
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

 BASIC paradigm of the day.

Programmers could mitigate these problems by using machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

, to an extent, but this in itself was a tedious process with a rather steep learning curve. 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
Joystick
A joystick is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. Joysticks, also known as 'control columns', are the principal control in the cockpit of many civilian and military aircraft, either as a center stick or...

 and lightpen, and unlocked the use of function key
Function key
A function key is a key on a computer or terminal keyboard which can be programmed so as to cause an operating system command interpreter or application program to perform certain actions...

s.

Graphics

The VIC-20 did not support high resolution graphics directly. Hi-res graphics were implemented by "painting" the display with character
Character (computing)
In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language....

s, and "redefining" the character bitmap
Bitmap
In computer graphics, a bitmap or pixmap is a type of memory organization or image file format used to store digital images. The term bitmap comes from the computer programming terminology, meaning just a map of bits, a spatially mapped array of bits. Now, along with pixmap, it commonly refers to...

s 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 chip. Display resolution
Display resolution
The display resolution of a digital television or display device is the number of distinct pixels in each dimension that can be displayed. It can be an ambiguous term especially as the displayed resolution is controlled by all different factors in cathode ray tube , flat panel or projection...

 was 160×160 pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....

s, throttled down from 192×200 allowed by the 6560 chip, in order to permit per-pixel addressability. Multicolor hi-res was supported (with a resolution of 80×160) and could be mixed with normal hi-res.

Sound

The VIC-20's sound capability was fairly simplistic, 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
Computer music
Computer music is a term that was originally used within academia to describe a field of study relating to the applications of computing technology in music composition; particularly that stemming from the Western art music tradition...

 playback was unsupported on the VIC-20; the usual way of implementing a musical note was to play a tone inside a for loop
For loop
In computer science a for loop is a programming language statement which allows code to be repeatedly executed. A for loop is classified as an iteration statement....

 time delay. In contrast, with Super Expander musical scores could played by simply PRINTing a string
String (computer science)
In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....

 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
Harmony
In music, harmony is the use of simultaneous pitches , or chords. The study of harmony involves chords and their construction and chord progressions and the principles of connection that govern them. Harmony is often said to refer to the "vertical" aspect of music, as distinguished from melodic...

 effects which could be striking by the standards of the time.

Other devices

Super Expander provided commands to read the status of the joystick and paddles
Paddle (game controller)
A paddle is a game controller with a round wheel and one or more fire buttons, where the wheel is typically used to control movement of the player object along one axis of the video screen...

, and the position of the lightpen. In the case of the joystick, since it was the "digital" or "switch" type, further bit-fiddling
Bitwise operation
A bitwise operation operates on one or more bit patterns or binary numerals at the level of their individual bits. This is used directly at the digital hardware level as well as in microcode, machine code and certain kinds of high level languages...

 was required to decode its position.

Function keys

Ordinarily the VIC-20's function keys could only be used in a program, by scanning for the appropriate key code when reading the keyboard
Computer keyboard
In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

. In the VIC-20's direct mode
Direct mode
Direct mode, also known as immediate mode is a computing term referring to the input of textual commands outside the context of a program. The command would be executed immediately and the results printed on screen, in contrast to programming mode where nothing would be executed until a specific...

 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 GW-BASIC
GW-BASIC
GW-BASIC was a dialect of the programming language BASIC developed by Microsoft from BASICA, originally for Compaq. It is compatible with Microsoft/IBM BASICA, but was disk based and did not need the ROM BASIC. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft...

 on the IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...

. The user could then assign their own commands, or any arbitrary string in fact, to the function keys.

Drawbacks

  • Commodore designed the Super Expander to map the graphics display to a 1024×1024 coordinate system
    Coordinate system
    In geometry, a coordinate system is a system which uses one or more numbers, or coordinates, to uniquely determine the position of a point or other geometric element. The order of the coordinates is significant and they are sometimes identified by their position in an ordered tuple and sometimes by...

    . Under this scheme, each video pixel was 6.4 (or 12.8) "virtual" pixels in size. This meant that in order to place pixels in exact positions on the screen a further scaling operation had to be coded in. Similar functionality was provided on BASIC 3.5 and 7.0 via the SCALE command, but in these versions of BASIC, scaling was optional and could be done to any arbitrary user-specified size.

  • The aspect ratio of the output device (i.e. television set) was not taken into account by the coordinate system. So a circle sized, say, 300×300 would appear elliptical. Similarly, a line drawn from (0,0) to (300,300) would not be displayed as 45°.

  • When drawing circle arcs, the starting and ending angles had to be specified in "gradians". In this "metric
    Metric system
    The metric system is an international decimalised system of measurement. France was first to adopt a metric system, in 1799, and a metric system is now the official system of measurement, used in almost every country in the world...

    " angular system there are 400 gradians (also called "grads" or "gons") to the circle, as opposed to the familiar 360 degrees
    Degree (angle)
    A degree , usually denoted by ° , is a measurement of plane angle, representing 1⁄360 of a full rotation; one degree is equivalent to π/180 radians...

    . (One can use gradians on most scientific calculator
    Calculator
    An electronic calculator is a small, portable, usually inexpensive electronic device used to perform the basic operations of arithmetic. Modern calculators are more portable than most computers, though most PDAs are comparable in size to handheld calculators.The first solid-state electronic...

    s and even with Microsoft
    Microsoft
    Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

     Calculator, but the only profession that makes somewhat regular use of this unit is surveying
    Surveying
    See Also: Public Land Survey SystemSurveying or land surveying is the technique, profession, and science of accurately determining the terrestrial or three-dimensional position of points and the distances and angles between them...

    .) It is a mystery why Commodore chose this obscure and unconventional unit of measure, and in any case, Commodore did not implement it properly, dividing the circle into 100 gradians rather than 400.

  • The Super Expander had no capability to put a bitmap
    Bitmap
    In computer graphics, a bitmap or pixmap is a type of memory organization or image file format used to store digital images. The term bitmap comes from the computer programming terminology, meaning just a map of bits, a spatially mapped array of bits. Now, along with pixmap, it commonly refers to...

     to the display. This meant arbitrary bitmaps, as might be used in a hi-res game, had to drawn pixel-by-pixel. The slowness of the BASIC interpreter made this unsuitable for applications like arcade-style
    Arcade game
    An arcade game is a coin-operated entertainment machine, usually installed in public businesses such as restaurants, bars, and amusement arcades. Most arcade games are video games, pinball machines, electro-mechanical games, redemption games, and merchandisers...

     games. As a result Super Expander’s usefulness was really hamstrung, consigning it to shape-centric drawings such as charts and simple pictures, or adventure-style
    Adventure game
    An adventure game is a video game in which the player assumes the role of protagonist in an interactive story driven by exploration and puzzle-solving instead of physical challenge. The genre's focus on story allows it to draw heavily from other narrative-based media such as literature and film,...

     games.

  • Programs written using the extra Super Expander commands were not portable
    Software portability
    Portability in high-level computer programming is the usability of the same software in different environments. The prerequirement for portability is the generalized abstraction between the application logic and system interfaces...

    . A user needed to own the cartridge and have it installed before a program written with the additional commands would run. Loading
    Load (computing)
    In UNIX computing, the system load is a measure of the amount of work that a computer system performs. The load average represents the average system load over a period of time...

     the program onto an unexpanded VIC-20 gave errors. Therefore the range of software released to take advantage of the Super Expander’s capabilities, including type-in program
    Type-in program
    A type-in program, or just type-in, is a computer program listing printed in a computer magazine or book, meant to be typed in by the reader in order to run the program on a computer....

    s published in magazines, was very small. This limited the Super Expander’s appeal and usefulness.


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

  • Commodore BASIC
    Commodore BASIC
    Commodore BASIC, also known as PET BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET of 1977 to the C128 of 1985...

  • MOS Technology VIC
    MOS Technology VIC
    The VIC , specifically known as the MOS Technology 6560 / 6561 , is the integrated circuit chip responsible for generating video graphics and sound in the Commodore VIC-20 home computer...

     (aka the MOS Technology 6560 Video Interface Chip)
  • Super Expander 64
    Super Expander 64
    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...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK