
4023 GRAPHICS BUG by Tony Goceliak
In my article regarding the b-series screen dump, there is
one other set of inconsistencies which I would like to point out,
even though the majority of users would never notice the
imperfection. The difficulty is in a non-systematic series of
inconsistencies regarding the graphic symbols which produce
horizontal lines. Specifically, if you were to place your b into
graphics mode and type ?chr$(164) you would see one of the
series, of which there are eight unique members via screen
display, but only seven unique representatives on your 4023,
with one duplication, and not so obviously, one omission.
[To make things much easier, I have included a short basic
program entitled ’4023 bug demo’ which exposes the inconsis
tency much better than I will by words alone].
When the b is placed in graphics mode, pressing the
appropriate keys, or alternatively, printing the appropriate
chr$(...) will display the series of eight possible horizontal bar
symbols on screen. [They cannot be displayed from text mode].
If arranged in either ascending or descending order, they can
make a ’staircase’ of uniform slope. Upon sending the same
string of characters to the printer, a similar, but not exact
staircase will result. It is human nature to try to make patterns
out of nothing, and to try to make things fit, so my demo program
follows this up with a different string, including a chr$(254) [the
programmable character, suitably defined of course] which
should demonstrate the now ’sticks out like a sore thumb’
differences. All in all, no less than six of the eight characters
are incorrect! It would normally take a microscope to detect the
fact that these six characters produce print which is one dot too
high, but I recently wrote a program which produced a graph
on my b using exactly these characters, and when I produced a
hard copy, it just wasn’t right. (I admit, I DID use a micro
scope!)
Please bear in mind that this demonstration in the escape
becomes magnified in the vertical dimension only by a factor of
eight, so the difference which appears at a glance is not so easy
to spot when your 4023 spits it out. Now, as to why I have not
’sorted these things out’ in my screen dump. First, notice that
I have kept referring to 4023 and not 8023 throughout this article.
8023’s handle these characters perfectly! A ’corrected’ set
would make an 8023 misbehave. Second, there is simply NO
character which is in the 4023 set which will produce what
chr$(198) prints on a graphics screen. I can usurp your one and
only programmable character to patch around it, but only by
killing any chance you have of using the programmable character
reliably in a program. To me it is too high a price to pay just to
straighten out a line displaced the height of one dot on your
printer by Commodore.
PRINT# WITH the CBM PRINTERS by Tony Goceliak
Question: When I am addressing the printer with print#, it
always advances the printer a line. Is there any way to resolve
this situation ?
Answer: When you are addressing the printer in immediate
mode, the printer is on line and listening. Basic sees the CR at
the end of the line and automatically sends a CR and LF to the
printer just as it would to the screen.
If you place a semi-colon at the end of the print# line you
will suppress the linefeed and transmit the desired command.
(Contused 4023 Characters continued from Page 1)
cial characters or codes to the printer that normally would not
be accessible using Superscript. For example, if we want to
print the character whose CBM ASCII code is 91, we would
pick a format (represented by a digit from 0 to 9) to store the
code. This is done with:
*1=91
Other commands can precede or follow this command by
using a colon to separate them, as usual. Please note, that as
explained above, the underline represents which characters will
be in reverse when displayed in Superscript.
The above would be done somewhere near the top of the
document. At the point where the character (code 91 in our
example) is desired in the document, we would press ESCape
1, which will show as a reversed 1 (1) in Superscript. When
printed, Superscript will output the 91 code when it encounters
the 1. It will assume that the code caused the printer to print a
character, that is, to use a column on the output.
Superscript uses the last encountered definition for a format
(if there is more than one) when it finds the reversed digit in the
text.
Armed with this knowledge, whenever you want to make a
document intended for either Commodore dot matrix printers
or other printers, put these lines at the top of your file:
*cm l= !b, 2=bs, 3 = rb, 4=ua, 5=Ia
*l=219:2=220:3=221:4=222:5=223:cm CBM dot ma
trix
*l=91:2 = 92:3 = 93:4= 94:5 = 95:cm AH other printers.
The first line is just a reminder comment line. Replace the
lb with the left bracket symbol, the bs with the British pound
symbol (representing back slash), the rb with the right bracket,
the ua with the up arrow, and the la with the left arrow.
Now, whenever you need a left bracket in your text, don’t
put a left bracket, put in an ESCape 1 (l)instead. Similarly, use
an ESCape 3 (3) in place of a right bracket, and so on.
Now, when you print to a Commodore printer with the
infamous bug, insert a cm just before the first 1 in the third line
above, as in:
*cm l=91:2 = 92:3 = 93:4= 94:5 = 95:cm All other print
ers.
which will cause Superscript to ignore the entire line. So,
Superscript will use the first set of definitions when it sees the
1, 2, etc. And, when you print to any other printer without the
bug, just make sure you don’t have the cm at the beginning of
the third line. That will cause it to redefine each of the format
codes and use the later set when it encounters a 1, 2, etc.
Please note that in the *1 = ... command the digits should
not be in reverse. But when the codes are put in the text, they
must be (eg. 1). Make sure you get this straight right away to
save yourself some confusion down the road.
The format code command may be used to access other
printer characters, such as the degree symbol, or whatever the
print wheel has.
THE REAL PROBLEM:
You can ignore this section if you don’t care why the above
contortions are necessary.
June 1993
9
Kommentare zu diesen Handbüchern