** a_check **››(c) 1985 Peter Nicholls›› ACTION! from Optimized Systems Software is fast becoming the language of choice for ATARI users, and justifiably so. It's speed and flexibility are unmatched in the home computer world. As it's popularity grows, more programmers are writing in ACTION!, and more programs are appearing in the pages of such magazines as ANTIC and ANALOG. Until now, there has been no way to check your typing and some ACTION! listings are very long! Furthermore, it is not an easy language for the beginning programmer to learn, and therefore debugging your work can be a nightmare! That is, until a_check arrived!›› Here's how to use a_check. First, plug in the ACTION! cartridge, switch on the computer, and boot up a DOS disk (a_check will also work with cassette based systems). Clear the editor (SHFT/CLR, then Y) READ the a_check source code into memory, and go to the ACTION! monitor (SHFT/CTRL/M). Type C to compile, and then save the object code (W "ACHECK.OBJ"). To check your typing, type R to run. You will be asked for the name of the file to check. Type in the name of the file you wish to check and then, when prompted, answer whether you wish the output to be sent to the screen (E) or the printer (P). Make sure you have already switched on and aligned your printer! The a_check checksum data will then be printed out. If you chose the Screen for your output, the display will pause when a full screen has been printed out. Press any key to continue the listing.›› Let's look at what all those numbers mean! The printout is divided into PROCedures, FUNCtions and MODULEs, to make it easier to compare it with the magazine checksum data, and find your mistakes. There may be a block of data at the beginning of the program, which will correspond to the DEFINEs, SETs and global variable declarations. Otherwise, each block of data will be preceded by the name of the PROC, FUNC or MODULE. Note the checksum at the end of that line, which relates to the PROCedure declaration. Starting on the next line, there will follow a block of data, with each number corresponding to a line in the original source code listing. If the line was a blank, the checksum will be zero.›› The checksums will continue until the next PROC, FUNC or MODULE is reached, when a block total will be printed on a new line, preceded by an asterisk (*). To make things simpler, you can scan through the printout, first checking off the block totals. If any of them do not match the checksum data listing, then you have a mistake in that block. Just compare the checksums one by one to find where in the block your error occurred.›› a_check is not perfect! However, it will catch almost all the mistakes, if you type in your source code with care. It is very discerning - you must type in the source code exactly like the program is listed, or you will get a checksum error. You must use upper and lower case correctly if you are using the 'case sensitive' option from the ACTION! monitor. There is some freedom with regard to spaces (both leading and trailng). Like the ACTION! compiler, a_check does not care how many spaces there are between statements, as long as there is at least one. Similarly, a_check ignores tabs. Also, a_check disregards comments (lines preceded by a semi-colon), and just prints 'com' instead of a checksum.›› a_check uses the ACTION! error routines, so any I/O error will stop program execution. To help minimise this, a_check has a function called a_nml() that allows you certain freedoms when typing in the filenames. If reading from cassette, you need only type 'C'. If you are using disk drive #1, you can omit the 'D:' prefix. However, if you are using a disk other than disk #1, you must use the full prefix. Likewise, for the output file, 'E' or 'P' will do. In each instance, a_check will recognise both lower- and upper-case entries.›› I hope a_check will be of some use, and make all your ACTION! programming a little smoother. If you feel that a program such as a_check would make the ATARI specific magazines more inclined to further the use of ACTION! then drop them a note and let them know that there is a typing checker for ACTION! Even if they do not wish to print the checksum data in the magazine, perhaps they could be persuaded to leave it on CompUServe, thereby making ACTION! more accessible to everybody.›UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU