Hi,
I first asked about this at the bottom of a previous thread.. but it was kind of a thread derail.. and I'm still stuck on this problem
http://www.retrosoftware.co.uk/forum/viewtopic.php?f=73&t=881My objective: to change from a regular screen mode -- such as Mode 7 - to a custom 8k screen mode (which is a 128x256 pixel screen based on Mode 5). I want to be able to do this without wiping the memory between &5800 and &6000.
What is working: I can get an "8k MODE 5" by first changing to MODE 5 and then setting values in CRTC for 128x256 pixel screen and the screen start addr to &6000
What isn't working: By changing to Mode 5 first, I wipe the memory between 5800-6000. To try to resolve this, starting from Mode 7, I do the following:
a) clearing screen by writing zeroes to 6000-8000
b) setting all CRTC values to reflect an 8k mode 5 (ie keep the params to those in the Advanced User Guide for Mode 5 except chars per line and screen address)
c) Set the video ula &FE20 to &C4 (ie Mode 5)
d) Set the palette register to default mode 5 values by issuing VDU 20 (lda #20;jsr oswrch)
e) Set addressable latch for 8k screen:
ldx #4+8 : stx SysViaRegB \\ these two set the
ldx #5+0 : stx SysViaRegB \\ screen size to 8k
RESULT: the screen clears, but when plotting pixels, I get distorted results - essentially fragments of MODE 7 text characters in the area where pixels should be plotted..within an 8k screen area.. ie 32x32 char screen.
Where am I going wrong? Is what I'm aiming for possible?