Classic Computer Magazine Archive COMPUTE! ISSUE 72 / MAY 1986 / PAGE 10

Readers Feedback

The Editors and Readers of COMPUTE!

Custom Characters For Plus/4 And 16
I was wondering how the Commodore Plus/4 can generate user-defined characters and where I would POKE them into memory.

Sean Donovan

The following program redefines the @ character as the familiar Commodore logo symbol.


AM 20 POKE65298,PEEK(65298)AND

HP 30 POKE65299,PEEK(65299)AND

SR 40 FORA=15360TO15367:READB:

JA 50 DATA 169,60,133,3,169,0,

AC 60 DATA 5,162,3,160,0,177,4

SK 70 DATA 3,230,5,202,16,242,

HD 80 DATA 98,146,130,130,144,
      98,0,0:REM CUSTOM CHARAC
      TER DATA

    Two memory locations are important for custom characters on the Commodore Plus/4 and 16. Bit 2 of location 65298 controls whether character data is fetched from ROM or RAM. The POKE in line 20 switches from the normal ROM character definitions to a custom character set in RAM. The upper six bits of location 65299 tell the computer where the character set is located in memory. When POKEing to location 65299 it is important not to disturb its lower two bits. To determine the number to POKE into this location, divide the starting address of the custom character set by 256. Since the example program puts the character set at location 15360, we use the POKE in line 30.
    The program uses a machine language routine to copy the character set from ROM to RAM beginning at location 15360. To copy the character set to some location other than 15360, replace the second number in line 50 (currently 60) with the number you POKEd into line 30. Line 40 reads the custom character data from line 80 and POKES it into the area reserved for the definition of the @ symbol.