[Coco] ML Question: MMU Block Switching
Robert Gault
robert.gault at att.net
Mon Feb 16 20:27:47 EST 2015
William Mikrut wrote:
> I do have a another ML question about memory block switching.
> When processing I will have a controlling program setup at $1200
>
> orcc #$50 Interrupts off
> lda $ffa1 Load current page
> anda #63
> pshs a Push for later
> lda #$36 Map in Hi-res Text
> sta $ffa1 Tell MMU to switch page
> andcc #$ef Interrupts on
>
> Now I can manipulate data in $2000-$3FFF and essentially display text on
> the hi-res text screen.
>
> When I am done and ending the program I cleanup with this:
> orcc #$50
> puls a
> sta $ffa1
> andcc #$ef
>
> Is there any reason that would cause a program fault while my lower memory
> program is operating and the MMU is set to map in page 36 to $2000-$3FFF?
>
> My lower memory program is no where near $2000 in ending size.
>
Normally you would want andcc #$af since you disabled both FIRQ and IRQ with
orcc #$50 where $50=%01010000.
If you have already turned on the Hi-res text screen via Basic, the above would
work. As an alternative, you could use the default MMU value for $FFA1 and point
the Hi-res text screen to $72000 using the registers $FF9D-$FF9E.
Actually you will need to post all of your program for us to tell what problems
might arise. :)
Robert
More information about the Coco
mailing list