TACKLE BOX from SRM Enterprises
P.O. Box 40
USAFA, CO. 80840
(303) 472-6624
Atari 520/1040/Mega ST
by David Plotkin
Tackle Box (TB) "A Utility for Tackling Personal Pascal" is a package of software and information which should be of use to anyone hoping to program their ST. It includes information on the VDI, AES, the operating system, a variety of technical subjects, and most of the hardware chips which make up the ST computers. It comes complete with software libraries (including a math library) which will make programming easier, and it's also probably the most clearly written and least error-ridden source of information about the ST.
Personal Pascal is a product of OSS. The language arrived on the scene approximately a year and a half ago, and is the programming language of choice for many people, especially those who are not technically inclined. The popularity of the language stemmed at least in part because of the better-than-average explanations of how to use the implements of GEM (windows, mouse, menus, dialog boxes, etc.) in your programs. Quite a few GEM commands are directly supported from Personal Pascal. For example, it is, to my knowledge, the only language which allows you to build dialog boxes from within the program itself.
Many GEM and operating system commands are not present as keywords in the language, and these must be accessed by using generic system calls, such as the VDI__CALL and AES__CALL commands. You must set up your program to use such generic calls by including a variety of custom TYPEs in your declarations and also declaring a multitude of EXTERNAL Functions and Procedures to access them. You must also have a source of information on how to use the calls, since the Personal Pascal manual does not provide any information on them.
Enter Tackle Box. This monumental package (it is over 900 pages of information, measuring almost three inches thick) provides just about everything you need to access the functions of the BIOS, XBIOS, GEMDOS, VDI, and AES.
First, we'll talk about the documentation. The first pages detail exactly how to use TB. You have two choices. First, you can use the generic Pascal calls. Certain files from the TB software libraries need to be included when you compile your program, but the libraries provide all the custom TYPES. This option is a little messy since the generic calls are long and full of numbers and arrays which must be initialized. The second choice is to use calls identical to those used in C. These are shorter and more self-explanatory. They are also much cleaner, since you generally don't need to deal with the arrays like INTIN and PTSIN; these are handled automatically by the C calls. Further, you can benefit from the large amount of other literature which has been written about using C in various peridicals and books. To use the C-style calls, you need to include some of the TB libraries as well as link some ".O" files provided on the disk. The source code for these .O files is also provided, so that you can modify them to remove Functions and Procedures you aren't using (this shortens the final object code size).
The documentation continues with sections on GEMDOS, BIOS, XBIOS, VDI and AES. Each section is conveniently tabbed and includes a section table-of-contents to make information easier to find. Sections start out with a well-written introduction explaining what the referenced part of the system software is for and how it operates. Finally, each command is documented on its own page. This includes:
- Number of the call (for use with generic Pascal commands).
- KEY—the name to use if you opt for C-style commands.
- Type of the call (Function or Procedure).
- If a function, the type of the returned value (integer, etc).
- Purpose—what the call is used for.
- Method—An explanation of all parameters which are passed to the call with their names or location in arrays and all parameters which are returned.
- Restrictions—any warnings about what to look out for when using the call.
- Implementation—an example of the call.
- Example—a sample problem and the program code you would use to solve it.
How much would you pay...
The documentation is liberally illustrated with samples where words can't handle the descriptions—polymarker types, patterns, etc. Even a helpful picture of the various raster blit modes is included. Further, where a call duplicates a function or procedure already built into Personal Pascal, the manual notes this and recommends you use the built-in version.
But wait, there's more. . .
Then there's the math library. If you've read many Personal Pascal listings, you know that certain useful things are missing. Many trigonometric and transcendental math functions are not provided, nor is there any easy way to convert numbers to strings (for use with DRAWSTRING) and back. The math library section of TB provides all this and more. Sines, cosines, hyperbolic functions, logarithims, powers and decimal degree to DMS conversion are all provided. It has base conversions (binary, octlal, hex and decimal) which are a godsend to the programmer. It also has a battery of sound commands. These make using sound fairly simple, since you can directly specify the sound register (there are three available), note, octave and volume, and turn the noise on and off. The math library also includes its own functions to get and set the date and time which are much easier to use than performing bit-twiddling on the numbers you get from GEM. Finally, there are the functions which return the addresses of arrays, screens, and MFDBs. There is even a function to convert a Pascal string to a C-type string, which is necessary to use the C-type calls in the libraries.
Now how much would you pay?
If you are "into" hardware, the next section of TB will be welcome. It has 78 pages describing the layout and functioning of the hardware, followed by the actual technical manuals of many of the chips, including the 68000, the sound chip, the floppy controller, GLUE, MMU, DMA and SHIFTER. This is pretty technical and is definitely not light reading, but having all this information in one place is very useful.
At no extra charge. . .
The final two sections are titled "Pascal tutorial" and "Tackle kit." These consist of a mixed bag of tutorials and sample programs. A complete description of disk layout and file handles works in conjunction with a desk accessory program that makes all kinds of disk operations available from any GEM program. Now you can format disks, copy disks, move files and other disk operations. This is a nice bonus, since you would normally have to pay for a program like this.
Other tutorials include color animation, loading picture files, screen swapping, a section on MIDI, a joystick sampling routine and even a whole section on GDOS. This last is the best description I have seen on the intricacies of this subject. The sample programs include your own copy of GDOS (courtesy of Atari), a GDOS font editor with source files, numerous samples of GDOS fonts, and hints on how to use the font editor to create fonts for GDOS programs like Easy-Draw (from Migraph).
To top it all off, the manual even includes a glossary, reference guide and index.
I have only a few minor complaints about Tackle Box. The manual is peppered with minor typographical errors. These primarily fall into the category of variable declarations which don't match the program examples, and mispellings, which can easily be spotted by even the novice Pascal Programmer. I suppose in a work of this size, a few typos are to be expected! The sample programs are provided on two disks in ARCed form, and you must deARC them, which is something of a pain. And some parts of the manual are difficult to understand because they assume the user knows too much. This is especially true of the highly technical calls, such as reading the intelligent keyboard.
NOW How much would you pay?
Tackle Box is a remarkably useful work which belongs on the shelf of any programmer, even if they don't use Pascal. It is worth its price just for the clear, concise documentation, with the software libraries being an added bonus for the Pascal user. Captain Rusty Mullins, U.S.A.F., president of SRM enterprises, has really produced a superior product. Once you have seen it, you will agree with me—it's the package Atari should have provided with the ST.