dc.w
$AO O O
It's technically possible to call the line A routines from
C, given the proper library'routines. At this time, however,
only the Mark Williams C compiler and Megamax Laser C pro
vide such library routines as a standard feature. There are a
number of reasons you might not want to use the line A rou
tines from C. First, the GEM VDI routines are easier to call
from C and provide adequate performance in most circum
stances. Second, there is no standard way to call these rou
tines from C, making your code less portable. Finally, in
cases where you wish to use the line A routines to improve
performance, you'll probably want to avoid the overhead
added by the C compiler and write directly in machine lan
guage instead. For these reasons, we'll confine our discus
sion of the line A routines to machine language program
ming.
Use of the line A routines requires a fair understanding
of the system used by the ST to produce graphics. An in-
depth examination of this subject could fill a book of its own,
and is therefore beyond the scope of this work. Since the line
A routines were written to support the GEM VDI functions,
however, much of the material that deals with VDI graphics
is applicable to the line A routines as well. The reader who
wishes to learn more about the line A functions should look
to the COMPUTEf's Technical Reference Guide, Atari ST Volume
One: The VDI, which covers the VDI graphics functions in de
tail.
Line A Initialization Command
Most line A commands require some input values to be
placed in the line A variable table. The location of this table
will vary depending on which version of TOS you're using,
so find the base address of the Line A variable table before
using line A calls. To do this, use the $A000 opcode, which
is referred to as the line A initialization function. When you
include the instruction
dc.w.
$A000
in your program, it calls the line A handler, which returns
three useful pointers in some of the data and address regis
Line A Routines
137