Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!pacbell.com!iggy.GW.Vitalink.COM!widener!ukma!usenet.ins.cwru.edu!tut.cis.ohio-state.edu!tortoise.cis.ohio-state.edu!meekins From: meekins@tortoise.cis.ohio-state.edu (timothy lee meekins) Newsgroups: comp.sys.apple2 Subject: Re: FTA Modulae Keywords: Animation Message-ID: <109414@tut.cis.ohio-state.edu> Date: 18 Apr 91 14:09:19 GMT References: <1991Apr18.040333.2738@cs.uow.edu.au> Sender: news@tut.cis.ohio-state.edu Organization: The Ohio State University, Department of Computer and Information Science Lines: 36 In article <1991Apr18.040333.2738@cs.uow.edu.au> u9050728@cs.uow.edu.au (Shane Kelvin Richards) writes: > > One thing that always got me was near the beginning of the Modulae >Demo, just after the words haved scrolled around in a circular demo, the >Modulae Control Panel is scrolled up the screen. I didn't think it possible >to move so much data so smoothly and quickly, how are they doing it? > he he he. That's my favorite part of Modulae. But it's alo pretty simple to do. What's needed is a fast way (ie. ONE instruction) which can copy a byte from one row to another. The one that comes to mind id PEA. What FTA then does is to map the direct page to the source scanline and map the stack to the right-hand side of the destination scanline. Then by executing the following statements, and entire scanline will get scrolled up one scanline (or two or three if you map them differently). pea $BE pea $BC pea $BA pea $B8 ... pea $02 pea $00 This will scroll one scanline. Repeat this 199 times (remapping the DP and stack each time) to scroll the entire screen. -tim -- +---------------------------S-U-P-P-O-R-T-----------------------------------+ |/ Tim Meekins <<>> Snail Mail: <<>> Apple II \| |> meekins@cis.ohio-state.edu <<>> 8372 Morris Rd. <<>> Forever! <| |\ timm@pro-tcc.cts.com <<>> Hilliard, OH 43026 <<>> /|