Without a knowledge of assembly language, it can be an impossible task to turn a great idea into a fast, smooth game. One solution to the problem is Develop-20, a collection of software tools designed to help the VIC-20 programmer advance beyond BASIC.
Develop-20 consists of an Editor, Assembler, Loader, Monitor, and Decoder. A similar collection, Develop-64, is available for the Commodore 64.
An informative guide is included with the package. If you are not already acquainted with 6502 assembly language, you will find this guide a very good introduction. It describes the architecture and functions of the 6502 chip from a user's viewpoint. The definitions and examples clearly explain the use of the addressing modes, register set, and instruction set.
The original (Source) programs are created and modified with the Editor program. As you enter your program, it checks the validity of the mnemonics, and checks to see if the correct addressing modes are being used with respect to the mnemonics.
When you run the Editor, you will see a CPLDIMS prompt. You can then choose one of the seven functions of the Editor program. C is the create mode, used to enter new programs. P prints a listing of the program to the screen. L loads a program on cassette or disk into memory. S saves the source file in memory to cassette or disk. The editing capabilities of the Editor program are limited to D, which deletes lines; I, which inserts lines; and M, which lets you modify any line. Modifications can be made only one line at a time.
There are two unusual aspects to this Editor. When you use zero-page addressing, you must identify the address with a left arrow.
Most assemblers are capable of determining that you intend zero-page addressing if the specified address is in zero page ($00-$FF).
Also, during program entry, there is no space allowed between the opcode field and the operand field. However, once each line of the program is entered and you press RETURN, the line is displayed in the standard 6502 assembly format with one space between each field.
In an unexpanded VIC, you can write programs with up to 89 statements. With any size memory expansion, the program size can increase by 50-75 statements per K of memory.
Assembling The Program
To translate your source program into executable machine (object) language, it must be loaded in with the Assembler program, assembled, and saved as an object file. The actual saving process is identical to that of the Editor program. You must remember that the two output files are different. The source is saved like any other text file, and the object is saved as a binary file. A distinguishing extension for the file name is not automatic. Perhaps setting a standard of extensions like a .BIN or .OBJ for binary object files and .TXT of .SRC for the text source files will make it easier for you to identify them.
Due to the limited amount of memory, the programs are assembled to a file on disk or cassette instead of directly into memory. In order to run the object code that you have just created with the Assembler program, you must save the object file and load it back into memory with the Loader program.
RUN In Single Steps
The Monitor is a very useful tool for debugging your software. It allows you to load your program and run it in single steps (one instruction at a time). As each instruction is executed, the instruction is displayed along with the status of all registers. This allows those just learning the language to watch what happens in each register and what changes occur in the status register (the flags) as a program runs.
The fifth tool of this package is the Decoder, which is a disassembler. This program takes machine language (executable object files) and translates them back into source files (mnemonics). The program produced by the Decoder will only resemble the original source program because it does not produce labels. For example, in a loop, instead of seeing branches to labels, you will see jumps to absolute addresses.
What would a game programmer's tool kit be without graphics tools? The manual includes information concerning screen and character management, color modes, joystick controllers, and sound and musical effects.
This collection of software tools is an effective, reasonably priced way to develop your machine language ideas into working VIC programs.
French Silk Smoothware
P.O. Box 207
Cannon Falls, MN 55009