home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
clarion
/
library
/
scrlta
/
scrollta.doc
< prev
Wrap
Text File
|
1991-10-01
|
2KB
|
63 lines
Copyright Mark A. Zurier 1991
10/1/91:
ScrollTA() is an Assembly Language LEM that will scroll text and attributes.
It has the same calling sequence as Clarion's SCROLL statement, but will not
allow you do omit parameters. This LEM may be used freely in Clarion .exe
programs as long as there is no charge made for its use.
The routine has been tested under DesqView 2.4 and works flawlessly. However,
if you have any problems with it, please let me know as soon as possible.
This LEM utilizes BIOS calls rather than direct video writes. However, the
function is not slow (on my machine) so I see no reason to write the direct
video version. If anybody experiences any slowness, I'd appreciate hearing,
and I'll write finish the direct video version.
The reason for the length (272 bytes) is the use of the same parameters as
Clarion's SCROLL statement: The BIOS functions require the actual screen
coordinates (top left and bottom right) in 0..24 and 0.79 ranges as well as
the video attribute byte to fill the new line(s) with. Therefore, the LEM
derives these parameters from those passed by your program. It then reads
the screen's top row (scroll down) or bottom row (scroll up) for the attribute
byte. I read the first column of the scroll area to get the attribute byte,
and in this respect, the LEM is slightly different than Clarion's SCROLL which
leaves any attributes on the new, blank line alone.
MAP statment
════════════
Add the following to your map:
MODULE( 'ScrollTA.BIN' ),BINARY
PROC( ScrollTA )
END
Using the Function
══════════════════
Use ScrollTA instead of SCROLL with all five parameters:
ScrollTA( ibTop, ibLeft, ibRows, ibCols, isLines )
ibTop = top row of scroll area (1..25)
ibLeft = leftmost column of scroll area (1..80)
ibRows = # of rows in scroll area (1..25)
ibCols = # of cols in scroll area (1..80)
isLines = # of lines to scroll, positive scrolls up,
negative scrolls down.
If any of the parameters are out of range, they will be adjusted to the full
screen (1,1,25,80 and 25 lines). You can blank the screen by setting the
number of lines to 25, but you should use BLANK instead.
Any comments or suggestions are appreciated.
Mark Zurier
Clarionet: Mzurier
CIS: 71240,1222