Walrusoft
   HOME

TheInfoList



OR:

BASIC 8 (or BASIC 8.0) "The Enhanced Graphics System For The C128" was an American-designed graphics system developed by Walrusoft of
Gainesville, Florida Gainesville is the county seat of Alachua County, Florida, United States, and the most populous city in North Central Florida, with a population of 145,212 in 2022. It is the principal city of the Gainesville metropolitan area, Florida, Gainesv ...
and published in 1986 by Patech Software of
Somerset, New Jersey Somerset is an unincorporated community and census-designated place (CDP) located within Franklin Township, in Somerset County, in the U.S. state of New Jersey.
. The system was an
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (proof theory) * Extension (predicate logic), the set of tuples of values that ...
of
Commodore Commodore may refer to: Ranks * Commodore (rank), a naval rank ** Commodore (Royal Navy), in the United Kingdom ** Commodore (India), in India ** Commodore (United States) ** Commodore (Canada) ** Commodore (Finland) ** Commodore (Germany) or ' ...
's BASIC 7.0 for the
Commodore 128 The Commodore 128, also known as the C128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, t ...
computer. BASIC 8.0 provided commands lacking in BASIC 7.0 to generate (color)
graphics Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of the data, as in design and manufa ...
in the C128's high-resolution 80-column mode (640×200
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a Raster graphics, raster image, or the smallest addressable element in a dot matrix display device. In most digital display devices, p ...
s) for
RGB The RGB color model is an additive color model in which the red, green, and blue primary colors of light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three ...
monitors. The BASIC 8 package was developed by Walrusoft's Louis Wallace and David Darus, with contributions from Ken French (
printer driver In computers, a printer driver or a print processor is a piece of software on a computer that converts the data to be printed to a format that a printer can understand. The purpose of printer drivers is to allow applications to do printing with ...
s) and indirectly from Richard Rylander (who allowed his 3D solids commands for the
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit computing, 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in ...
, originally published in ''
Dr. Dobb's Journal ''Dr. Dobb's Journal'' (often shortened to ''Dr. Dobb's'' or DDJ) was a monthly magazine published in the United States by UBM Technology Group, part of UBM. It covered topics aimed at computer programmers. When launched in 1976, DDJ was the fi ...
'', to be converted to the C128's hi-res mode).


Background


The problem

Unlike its competitors, such as the
Apple II Apple II ("apple Roman numerals, two", stylized as Apple ][) is a series of microcomputers manufactured by Apple Computer, Inc. from 1977 to 1993. The Apple II (original), original Apple II model, which gave the series its name, was designed ...
and Atari 8-bit computers, Commodore’s BASIC 2.0 programming language built into the
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit computing, 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in ...
(C-64) lacks commands for generating sound and high-resolution, bit-mapped graphics, and responding to
joystick A joystick, sometimes called a flight stick, 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. Also known as the control column, it is the principal control devic ...
s and game paddles.  Instead, awkward and slow BASIC
PEEK and POKE In computing, PEEK and POKE are commands used in some high-level programming languages for accessing the contents of a specific Memory cell (computing), memory cell referenced by its memory address. PEEK gets the byte located at the specified m ...
sequences, or custom-written
assembly language In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
routines, are required to accomplish these tasks.  The lack of suitable BASIC commands led to the development of many third-party language extensions, such as
Simons' BASIC Simons' BASIC is an BASIC extension, extension to Commodore BASIC, BASIC 2.0 for the Commodore 64 home computer. Written by British people, British programmer David Simons in 1983, who was 16 years old at the time, it was distributed by Commodore I ...
, greatly reducing the complication of writing games in BASIC. Upon its introduction in 1985, the
Commodore 128 The Commodore 128, also known as the C128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, t ...
(C-128) had BASIC 7.0—a substantially more-powerful version of BASIC 2.0—that includes commands for sound and graphics generation, as well as joystick and paddle detection. In addition to its more-powerful BASIC, the C-128 is equipped with dual video displays: an 8563 video display controller (VDC) for generating an 80-column text display, and an enhanced
VIC-II The VIC-II (Video Interface Chip II), specifically known as the MOS Technology 6567/6566/8562/8564 (NTSC versions), 6569/8565/8566 (PAL), is the microchip tasked with generating Y/C video signals (combined to composite video in the RF modulator) ...
video interface controller for generating a 40-column text display like that of the C-64. When operated in its high-resolution, bit-mapped display mode, the VDC is capable of 640 × 200
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a Raster graphics, raster image, or the smallest addressable element in a dot matrix display device. In most digital display devices, p ...
resolution, twice that of the VIC-II’s 320 × 200 pixel resolution.  However, the BASIC 7.0 commands that manipulate bit-mapped graphics are only effective on the VIC-II display.  If a programmer wishes to generate bit-mapped graphics on the VDC display, s/he must resort to assembly language (there are intractable difficulties in PEEKing and POKEing VDC registers) and deal with the convoluted means by which the VDC is controlled.


A solution

BASIC 8.0, available via
floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, a diskette, or a disk) is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a ...
or
ROM Rom, or ROM may refer to: Biomechanics and medicine * Risk of mortality, a medical classification to estimate the likelihood of death for a patient * Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac * ...
, provided many graphics commands that were competitive with the C128's competitors in the high-end 8-bit microcomputer market. BASIC 8.0 was fully compatible with the various first-party
RAM Ram, ram, or RAM most commonly refers to: * A male sheep * Random-access memory, computer memory * Ram Trucks, US, since 2009 ** List of vehicles named Dodge Ram, trucks and vans ** Ram Pickup, produced by Ram Trucks Ram, ram, or RAM may also ref ...
and video RAM expansion chips and cartridges, as well as
mice A mouse (: mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
and
joystick A joystick, sometimes called a flight stick, 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. Also known as the control column, it is the principal control devic ...
s. It also provided basic
3D graphics 3D computer graphics, sometimes called CGI, 3D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of perfor ...
commands. Along with a 188-page manual, the software package included an example of a
GUI Gui or GUI may refer to: People Surname * Gui (surname), an ancient Chinese surname, ''xing'' * Bernard Gui (1261 or 1262–1331), inquisitor of the Dominican Order * Luigi Gui (1914–2010), Italian politician * Gui Minhai (born 1964), Ch ...
, and a high-res
paint program A raster graphics editor (also called bitmap graphics editor) is a computer program that allows users to Computer graphics, create and image editing, edit images interactively on the computer screen and save them in one of many raster graphics I ...
, Basic Paint, both developed using BASIC 8.0.


Source code and copy protection

Source code of some of the BASIC 8 package was provided, and the BASIC 8.0 disk lacked any sort of
copy protection Copy protection, also known as content protection, copy prevention and copy restriction, is any measure to enforce copyright by preventing the reproduction of software, films, music, and other media. Copy protection is most commonly found on vid ...
, but this was before the
Open Source Initiative The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software". Governance The ...
; it was done as a courtesy. Instead of threatening legal action, Walrusoft simply asked users not to copy the software in the documentation. It worked; BASIC 8.0 became one of the best selling expansions for the C128.


Sample commands

In BASIC 8.0, all added commands were prefaced with the @ mark, which was not normally used in Commodore BASIC, to distinguish between the original and the new keywords. The use of this character would allow the developer to extend BASIC 7.0 without having to re-tokenize the commands as it was done on the C64. It was accomplished by trapping the syntax error generated by the command. * @CHAR – Displays a text string on a bitmap field (similar to the BASIC 7.0's low-res CHAR command) * @MODE – Switch between one of up to 32 high-res screens * @PAINT – Fill a closed area with a color or a pattern * @PIXEL – Returns the color value of a pixel * @STASH – Copies part or all of a screen for later usage * @WALRUS – Displays the Walrusoft logo and the type/size of video RAM used (16K or 64K) * @WINDOWOPEN – Define part of the screen as a 'window' for purposes of drawing


References notes and citations


References

*


Notes

# The VDC was programmed by writing commands to and reading status messages from a single
control register A control register is a processor register that changes or controls the general behavior of a CPU or other digital device. Common tasks performed by control registers include interrupt control, switching the addressing mode, paging control, and ...
and transferring data between system RAM and the chip's dedicated video RAM (16 or 64 KB, depending on C128 version) via a single data register, following a relatively complex protocol a laborious and slow procedure compared with the straightforward use of the several discrete,
memory map In computer science, a memory map is a structure of data (which usually resides in memory itself) that indicates how memory is laid out. The term "memory map" has different meanings in different contexts. #It is the fastest and most flexible cach ...
ped control/status registers the shared system/video memory setup of the VIC-II. Many programmers took advantage of a VDC control primitive buried deep within the part of the
KERNAL 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 related versions used in its successors: the VIC-20, Commodore 64, Plus/4, Commodore ...
that controlled the 80 column video display, rather than writing their own primitive.


Citations


External links



(270- kilobyte, KB
text file A text file (sometimes spelled textfile; an old alternative name is flat file) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system. In ope ...
) From th
Project 64
documentation project {{BASIC BASIC extensions Commodore 128 software