mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update API.txt
This commit is contained in:
@@ -132,7 +132,7 @@ INT ($FC): Interrupt vector management functions
|
||||
INTSET ($20): Set interrupt vector
|
||||
BC=Function/Subfunction A=Result
|
||||
HL=Interrupt Vector HL=Previous Vector
|
||||
E=Interrupt Vector Table Position DE=Interrupt Routing Engine Address
|
||||
E=Interrupt Vector Table Position
|
||||
|
||||
Set the Interrupt Vector for the specified Interrupt Vector Table Position to the
|
||||
specified Interrupt Vector. The previous value at the specified table position
|
||||
@@ -151,28 +151,25 @@ INT ($FC): Interrupt vector management functions
|
||||
must be saved and restored by the interrupt handler.
|
||||
|
||||
Interrupt handlers are different for IM1 or IM2.
|
||||
|
||||
|
||||
For IM1:
|
||||
|
||||
The new interrupt handler is responsible for chaining (JP) to the previous vector
|
||||
if the interrupt is not handled. The interrupt handler must return with ZF set
|
||||
if interrupt is handled and ZF cleared if not handled.
|
||||
if the interrupt is not handled. If the interrupt is handled, the new handler may
|
||||
simply return (RET) with ZF cleared (NZ).
|
||||
|
||||
For IM2:
|
||||
|
||||
The interrupt handler requires an invocation stub separate from the actual interrupt
|
||||
handling code. The stub must be:
|
||||
The new interrupt handler may either replace or hook the previous interrupt
|
||||
handler. To replace the previous interrupt handler, the new handler just returns
|
||||
(RET) when done. To hook the previous handler, the new handler can chain (JP)
|
||||
to the previous vector. Note that initially all IM2 interrupt vectors are set
|
||||
to be handled as “BAD” meaning that the interrupt is unexpected. In most cases,
|
||||
you do not want to chain to the previous vector because it will cause the
|
||||
interrupt to display a “BAD INT” system panic message.
|
||||
|
||||
PUSH HL
|
||||
LD HL,<adr of actual interrupt handler>
|
||||
JP <adr of int routing engine>
|
||||
|
||||
When calling Set Interrupt Vector, the address of the stub must be provided for the
|
||||
Interrupt Vector parameter. The address of the Interrupt Routing Engine will be
|
||||
returned in DE and must be inserted into the stub code as indicated above. In the
|
||||
case of IM2 mode interrutps, the actual interrupt handler should not chain to the
|
||||
previous entry. The new interrupt handler must assume all responsibilities for
|
||||
the specific interrupt slot being occupied.
|
||||
The interrupt framework will take care of issuing an EI and RETI instruction.
|
||||
Do not put these instructions in your new handler.
|
||||
|
||||
If the caller is transient, then the caller must remove the new interrupt handler and
|
||||
restore the original one prior to termination. This is accomplished by calling this
|
||||
@@ -236,8 +233,9 @@ DEVICE ($06):
|
||||
|
||||
Serial Device Attributes Byte:
|
||||
7: 0=RS-232, 1=Terminal
|
||||
6: 1=Parallel Port
|
||||
|
||||
If Terminal, 3-0 is attached Video Unit #
|
||||
If device is of type Terminal, bits 3-0 indicate attached Video Unit #
|
||||
|
||||
==============
|
||||
Disk Functions
|
||||
|
||||
Reference in New Issue
Block a user