6.1 The Line-A emulator

The Line-A emulator makes fast graphical routines available that serve as the basis for the VDI functions. However, the Line-A functions are only usable for the 3 ST screen resolutions. Since they are not resolution-independent, they should not be used if an application may run on other graphics systems! In the TT030 the Line-A functions are present only for the sake of compatibility.

One also talks about a Line-A emulator, as the processors of the 68k series do not have opcodes that start with $A or $F in the highest nibble. An exception is triggered instead. Since the exception handler can itself perform more or less sensible things, one can also look at this procedure as a command extension, where the opcodes do not execute directly in the processor, but represent a program instead. So a machine command is emulated, so to speak.

Parameter passing to the Line-A functions takes place in the Line-A parameter block. The address of this structure can be obtained with initialization $A000, which returns a pointer to an internal variable table in d0 and a0 which is used in place of the stack or internal registers.

Callling a Line-A function alters the registers d0-d2 and a0-a2. If further registers are altered, this is noted explicitly in the description of the various functions.