So, I've got a C-128 with only 16K of VDC video RAM. I've finished my lovely high-resolution graphics routine on the RGBI display and want to exit to BASIC with a functional 80-column text screen, ideally without zapping the contents of main memory. What are my options?

CINT doesn't redo the character set copy from ROM to VDC RAM; RESET erases everything.

Is there an in-between option I could use other than rolling my own copy-ROM-to-VDC logic?

1 Answer 1


Found the solution thanks to Compute's Mapping the Commodore 128, though the call is also documented in the C-128 Programmer's Reference Guide. There's a kernal jump table entry called DLCHAR at $FF62 (Mapping the 128 calls it JINIT80) that initializes the VDC RAM from the character ROM. A call to that gets things working again.

That routine doesn't touch the character matrix or attribute RAM, so you'll still want to clear that; a call to CINT ($FF81) or just printing the clear-screen character $93 (assuming the output channel is set to the 80-column display) will do the trick.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .