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?


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.