Authors
Publication
Pub Details
Date
Pages
The 64 column utilities in the 2068 technical manual do work, but they are not easy to use from Basic. There are far too many things to remember, and debugging your programs is a nightmare. This program allows the use of the Basic PRINT command without having to rewrite the ROM.
It’s possible to intercept certain Basic commands, such as PRINT and the attribute controls; FLASH, BRIGHT, INK and PAPER. Unfortunately, not all commands can be intercepted and some of the screen commands aren’t very effective in this mode. Since the attribute commands have almost no meaning in 64 columns, they have been redefined to do useful things.
How it Works
The program modifies the computer’s I/O channel #2 (for the screen) in RAM. Channel #1 (EDIT line) is not modified.
Certain actions by the computer will change channel specifications, causing general chaos on the screen. While a program is running, channel 2 is not modified and therefore operates reliably. When the program ends or is stopped by an error, the 64 column mode is switched off. This is done by modifying the machine stack so that another switching utility is run before the error message is displayed. This infringes on the “territory” of the ON ERROR command.
The built-in error handling can be bypassed with RANDOMIZE USR 60016. When the program ends, you will still be in 64 column mode. If you’re careful, you can list short programs. Things will get very messy quickly thereafter. When ON ERROR is active, you will have complete control when the program ends. Without it, RANDOMIZE USR 60651 before stopping, in order to return to 32 column mode. It is also legal to switch between modes while the program is running by use of the two USR calls. Just don’t BREAK while you’re in 64 column mode.
Although the 64 column code is 694 bytes long, not all of the area above 60693 is vacant. The RAM resident code (see SWN 2/3), UDG’s and machine stack are all up there too. There is 1.5K of space up there for your expansion.
The Rules
RANDOMIZE USR 60000 gets you started.
PRINT works as before, and TAB and AT are now expanded to 64 columns. OVER and INVERSE work as before. UDG’s still work, but they may need some redefinition due to the change in character shape.
DRAW, CIRCLE, CLS and COPY cannot be intercepted and produce strange effects. They only work on the first display file.
The 2068 limits the screen attributes in 64 columns. FLASH & BRIGHT are not used. Only 8 combinations of INK & PAPER are allowed, and they must be the same for the whole screen. These commands have been redefined as follows:
INK — Selects both INK and PAPER. You pick the ink and the correct paper is automatically selected. Use it in a PRINT statement, e.g., PRINT INK 7.
PAPER — Now PAPER 1 or 0 will copy the screen to the 2040 printer. Do not use it in a PRINT command.
FLASH — FLASH 1 or 0 will clear the 64 column screen. Do not use it in a PRINT command.
BRIGHT — BRIGHT 1 now bolds the text (similar to Fat Characters), which will make TV 64 column viewing easier. BRIGHT 0 will return characters to their normal size. The modes can be mixed on the screen, e.g., PRINT BRIGHT 1.
Scrolling is particularly troublesome and is not implemented here. A full screen causes an “out of screen” error similar to the TS1000. Characters in the edit line print in every other column. 64 columns in the edit line is not reliable. Finally, it would be best not to use ON ERROR until you fully understand the system.
I do hope you enjoy using this program as much as I enjoyed developing it.
Products
Downloadable Media
Image Gallery
Source Code
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.