Commodore PET User Manual page 395

Table of Contents

Advertisement

The tough part of this exercise is that the screen display code needed to
POKE is different from the PET ASCII code that C$ is assigned. As covered in
Chapter 6, the screen code ois equivalent to a 6-bit ASCII subset with ASCII bit 7
moved over into screen bit 6:
l
-'- r""-----
~_-.,
7 6 5 4 3 2 1 0
~
o
=
eharaeter
1
=
graphie
(shifted)
L
1......-.....,
6-bit sereen
eode
o
=
eharaeter
1
=
graphie
(shifted)
This is what line 150 in the program does with the logic operation:
(ASC(C$)AND128)/2 OR (ASC(C$)AND63)
Well go over this operation piece by piece.
382
ASC(C$)
AND 128
/2
OR
provides the numerical equivalent of the character C$.
As a number, it can be manipulated arithmetically (and
logically).
12810=8016. This AND operation masks off (zeroes) ail
but the high-order bit (bit
7)
of the ASCII code to isolate
it. Regardless of the previous value of C$, after this
operation the term has a value of:
100000002 or 000000002.
Divide by 2. In binary, division by 2 is equivalent to a
logical right shift one bit. It admittedly requires a little
background to come up with this step. After this opera-
tion. the term has a value of:
010000002 or 000000002.
Thus, we have moved bit
7
of the ASCII code into bit 6
and replaced bit
7
with a zero.
This operation will combine the bit configuration
already developed (010000002 or 000000002) with the
bit configuration yet to be discussed. (ASC(C$)AND63).
The OR operation is performed last (see Table 3-4).

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Cbm

Table of Contents