[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]