[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]

    { Updated SCREEN.SWG on November 2, 1993 }

    {
    GREG ESTABROOKS

    >I know how to block-Write directly into $B800:0000, which is the Video
    >page, using the MOVE command. Is there a way to do this to a specific
    >Page (ie. Page 1, or Page 2)? I've tried it With my routines, but it
    >just sends it to whatever page I'm looking at - I assume becuase it is a
    >direct access.

      Actually if you understand how to use MOVE to blockmove
      everything into $B800:0000 then you already know how to move
      it into the other pages. All you need to do is calculate the
      offsets of the different pages.
      Page 0 = $B800:$0000
      Page 1 = $B800:$0FA0
      Page 2 = $B800:$1F40
      Page 3 = $B800:$2EE0
      (Note These might differ if your using 43/50 line modes)

      So if you wanted to move/copy a screen from a buffer to page 1
      you'd do it like this:
    }

    Const
      PageOffs : Array [0..3] of Word = ($0000, $0FA0, $1F40, $2EE0);

      Move(Buffer[1], Mem[$B800 : PagesOffs[1]], 4000);

    { Or from screen 1 to 0 then : }

      Move(Mem[$B800 : PageOffs[1]], Mem[$B800 : PageOffs[0]], 4000);

[Back to SCREEN SWAG index] [Back to Main SWAG index] [Original]