A-8
K
A
DAK
AMX 68000 Target Guide
If your clock can be serviced by writing one or two n-bit values to a device I/O port, you
can use the ...CLKFAST directive to create a very fast clock ISP root with no application
code required. The general form of the ...CLKFAST directive is as follows.
...CLKFAST CLKROOT,CLKADR,CLKCMD,CLKADR2,CLKCMD2,IODELAY,VNUM
CLKROOT Name of the clock ISP root entry point
CLKADR 32-bit numeric device memory address
CLKCMD 8-bit numeric command
CLKADR2 32-bit numeric secondary device memory address
CLKCMD2 8-bit numeric secondary command
IODELAY Delay (µs) required between I/O commands
VNUM Interrupt vector number assigned to the clock device
The numeric parameters must be expressed in a form acceptable to your assembler.
Parameters CLKADR2, CLKCMD2, IODELAY and VNUM can be omitted if they are not required.
If a parameter is omitted, its field must be left blank (empty) and the comma to the left of
the field must be retained. If the resulting ...CLKFAST directive ends with a string of
commas because the intervening parameters have all been omitted, it is acceptable to
delete the trailing commas.
The clock ISP root will dismiss the clock interrupt by writing the 8-bit value CLKCMD to
the 32-bit device memory address CLKADR. If parameter CLKADR2 is present in the
...CLKFAST directive, the clock ISP root will then write the 8-bit value to the 32-bit
device memory address CLKADR2. If parameter CLKADR2 is present, parameter CLKCMD2
must also be present. If this second device I/O command is not required, leave both
CLKCMD2 and CLKADR2 blank (empty).
If two I/O commands are provided, parameter IODELAY can be used to define the delay, if
any, required after the first command before the second command can be issued. The
delay is provided by a call to AMX procedure cjcfhwdelay (see directive ...DELAY).
If there is no need for a delay or a second command is not required, leave the IODELAY
field blank (empty).
Parameter VNUM has been described on the preceding page. If parameter VNUM is omitted,
then a value of -1 is assumed for VNUM.
Use the ...CLKFAST16 directive if 16-bit values must be written to the clock.
Use the ...CLKFAST32 directive if 32-bit values must be written to the clock.