Path: utzoo!mnetor!uunet!husc6!tut.cis.ohio-state.edu!uwmcsd1!ig!agate!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga Subject: Re: Scrolling a single plane -- heart monitor Message-ID: <8803150721.AA23510@cory.Berkeley.EDU> Date: 15 Mar 88 07:21:47 GMT Sender: usenet@ucbvax.BERKELEY.EDU Lines: 61 :As part of a lab course here at MIT I am building a heart monitor, and :I would like to use my A1000 as a super intelligent display. : :The idea is for the Amiga to receive ECG data via the parallel port at :about 200 samples/sec. I then want to display this data in real time, I suggest you write an interrupt server to do this. 200 samples a second are *EASY*... just use a 555 IC or something to generate 200 pulses a second into the FLAG input to the 8520 handling the parallel port. That way you get data 200 times a second no matter how loaded the Amiga is. :scrolling horizontally, as seen in any good hospital sitcom. There :should be at least five seconds of data on the screen all the time so :I will probably use high-res mode with overscan and cut down the :sampling rate some. The sampled data can probably be left in one :plane (though more would be nice for anti-aliasing) and I would like :to use another plane or two to display heart statistics. Probably the easiest thing to do would be to have a high priority task hanging around waiting for a signal from the interrupt server and then updating the display (i.e. if the Amiga is loaded down and two interrupts go off before the screen can be updated, this task would then jump-scroll two pixels instead of one and update the display). It should use BltBitMap() on the SCREEN'S bitmap to shift the data. That is, use graphics calls to the screen's bitmap and rastport to handle stuff (much faster than graphics calls to a window's rastport). Since this usually doesn't bode well with any visible windows, what I would do is do EVERYTHING in the screen's rastport. Open an invisible window in the screen so you can get keyboard and mouse events. > >Is it possible to horizontally scroll only one plane out of a >multi-plane bitmap? How quick is horizontal scrolling? I mean >actually moving all that data, not just moving a pointer. What would >be the best way to do this? Any and all ideas are appreciated. MASKING OUT PLANES is accomplished by modifying the Mask field in the screen's rastport before doing rendering operations. Note that the BltBitMap() call uses a different Mask .. the one you specify in the call. You can then render into the screen's rastport on the remaining planes without effecting the scrolling graphics below. If you make the invisible window stationary, you could also render into that with the window's rastport's Mask field setup properly (somewhat safer). With BltBitMap() you can scroll any plane or planes in any way you want. Up, Down, Left, Right, By twos, By threes, By N pixels, even InsideOut (but not in one call). Look into the Screen structure. Needless to say, you want to use a custom screen... >The actual ECG hardware is not that expensive (build it yourself for >$25, even less if you you can scrounge parts). If people are >interested I could post plans and software when I finish. I think people would be interested, I certainly am! When you are through with the lab course, post it! -Matt