EUG Screen Dumps

By Richard Dimond

Originally published in EUG #12

Will has mentioned to me that there have been comments that my Screen Dump program in EUG #11 gives a negative printout. All the routines I have seen do this. The reason seems to be that, as the screen is normally black, all unused parts of it would also be printed in black if a positive printout is used. It is thus more economical in the use of the printer to give a negative printout if the screen is mostly black.

While it is easy to change to positive printing by changing the patterns at the end of the program, to restrict the area printed, you need to alter all the co-ordinates and the number of dots per line. I have now made up a program which allows you to enter these and the computer will correctly assemble a M/code routine to dump the screen area required. The routine will work in any Mode and print positive or negative printouts.

On running the program, first press the key of the Mode no. then P or N for the type of printout. This should be followed by the four co-ordinates. These are as the Mode 0 TAB numbers, as these are easier to use that the graphics co-ords, the computer works out the correct graphics co-ords and dots per line. These are inserted into the assembler and the code assembled.

The program will then ask for the filename of the screen to be printed. After printing you will be asked if you wish to SAVE the code and, if so, asks for a filename to SAVE. This allows you to try the code to see whether it correctly prints the area required before saving it.

One point about the program I should perhaps explain. If you enter 31 for Y finish to print the last line, Yf% will be -4. As the assembler will not accept negative values the coding must return to 'BCCend' as in the original program. This is the reason for the two PROCs 'pos' and 'neg' which are selected on whether Yf% stays positive or goes negative.

I have set up two routines; one for printing the TITLE screen without the unused area of the screen and the other prints the heading only.

Richard Dimond, EUG #12