[Coco] Patching NitrOS9 for 8 meg

RETRO Innovations go4retro at go4retro.com
Thu May 3 15:12:46 EDT 2018


     On May 3, 2018 at 2:18 PM "L. Curtis Boyle"
     <[1]curtisboyle at sasktel.net> wrote:
     Jim - I can’t remember - for programming which MMU blocks are active
     in each of the 32 tasks, do you have another byte that one sets to
     tell the system which task set of MMU blocks you are modifying,
     using one of the two existing sets ($FFA0-$FFA7 or $FFA8-$FFAF)?

   $ff91 (low 5 bits) normally tells the active task.

   However, I took an unused bit in the GIME registers as a "flag" to
   switch in an alternate set of GIME registers.  So, the table is:

     * task register (5 bits)
          + GIME set 1: active task[4:0]
          + GIME set 2: task to modify[4:0]
     * secondary task register (7 bits)
          + GIME set 1: active task[11:5]
          + GIME set 2: task to modify[11:5]
     * GIME set flag (1 bit)
          + 0: use GIME set 1 registers
          + 1: use GIME set 2 registers

   THere's also a register to switch $ffa0-$ffaf from showing task[N] low
   bytes and task[N+1] low bytes to showing task[N] words.  On CoCoMEM,
   there is also a register to set the GIME video task registers versus
   setting the CPU task registers (so, GIME can be mapped to somewhere
   completely arbitrary from the running code, though one must map all 8
   block of GIME RAM within a single 512kB block, due to GIME
   restrictions.  If I have a burst of inspiration, I will try to remove
   that restriction).

   Obviously, all is subject to change at this point.  Boise is
   bootstrapping L2 on CoCoMEM Jr, so I expect a few bugs to fix.  Once he
   does, it'd be nice to see if someone can modify L2 to use all 32 tasks
   and see what issues show up.

   Jim

References

   1. mailto:curtisboyle at sasktel.net


More information about the Coco mailing list