Volume 1, Number 1 – August 1981

Page 7 of 33

free RAM where a copy of the P.C.G. data can be maintained. The characters are shown on the right of the screen on a large scale, each bit being represented by two pixels. The pixels are turned on and off by the eight leftmost alphanumeric keys in the four rows of the keyboard (1-8, Q-I, A-K and Z-,). An arrow indicates which set of four lines is currently selected; keys 0, P, ;, and / move the arrow so that all 16 lines can be modified. The character being defined appears at the cursor, which can be moved around the left half of the screen by means of the cursor keys. This character can be left at any position by pressing key -, and removed by = (shift/-); you can thus build up blocks of characters to draw a complex diagram.

At the bottom of the screen the program lists the hex value of the character being defined and the 16 bytes of data in that character in hex (for use in machine code programs) and in decimal (for use in Basic). You can step forwards or backwards through the character set with the N/L and BS keys. When you first select a character it will probably contain unwanted data; this can be erased by CONTROL/C. Because the program uses the pixel set to produce the large-scale diagram of the character only 64 characters can be defined at one time; the program will thus work with a P.C.G. system which has only 1K of RAM and keeps the pixel set permanently in EPROM. The modifications for inverse display are: change (1055) to £0F, (105F) to £F0. (124A) to £01, (1250) to 02, and (12A9), (12B3), (12BD), (12D9) to 0E. If your P.C.G. RAM is coincident with a block of ROM, its address should be placed at £12EC, £12ED.

The fourth program is included as a demonstration of what can be produced by programming a block of characters. It displays a picture of the space shuttle which moves smoothly across the screen. Most of the program consists of a data table which is copied to the P.C.G. RAM to produce the intitial image. This is then moved by rotating each byte of the graphics characters one bit at a time. If you wish to convert this program for an “inverse order” display you will have to change the byte at £135F to £16, and invert the data table. I have included a routine at £13C0 which performs this inversion.

Finally, there are two short programs to demonstrate plotting points from Basic. The first program plots the orbit of a satellite around two primaries, one visible and the other invisible. The second shows how to produce simple graphs in Basic. Both routines set the points directly from Basic and could obviously be speeded up by using machine code accessed by a USR call. With a 128 character P.C.G. you have just enough characters to plot a sine curve and the axes at full-screen :Size. If you try to plot multiple curves you will find that you run out of characters – for such displays you need bit-mapped graphics. However, it is surprising what effective displays you can obtain with a simple P.C.G.; a life program is most impressive on a 384 x 240 array. Now that several commercial graphics units are available I hope that software will be produced which makes full use of the high resolution possible.


Page 7 of 33