Its address define the handle number (the IX value returned). The two first bytes are the link with the next (previous in memory order). The last one ($0500) points to $0000.
|$04||Process (or suspended task)|
|00 01||2||link to next handle|
|02||1||file handle type ($02)|
|03||1||dynamic id (of the associated application)|
|04 05||2||first block (read 'filing.pip' for format)|
|06 07||2||actual block where file pointer is|
|08||1||file pointer low byte address|
|09||1||file attributes (see below)|
File attribute byte:
bit 0 when resetted file is read protected
bit 1 when resetted file is write protected
+03 Dynamic id
+04 (Low Byte)
+05 (High Byte) Next alarm handle (0000 if no alarm link)
+0F must be 00 for being processed...
After there is an internal format date/time. And data for action.
+02 Type ($06)
+04 Slot (0-3)
+05 Table high byte address
Subtype code is :
$F0 Filter handle
$F1 Wildcard handle
$F2 Alarm handle
These calls are managed with the RST $30 followed by one byte.
This byte define the reason. It is the table low byte for the jump.
Application handle format (16 bits):
@00000000 ss aaaaaa (ss=slot, aaaaaa=application number)
For example, Index has always $0001 for 'handle'. And the first application in slot 3 is @00000000 11000001=$00C1. For more, read the process structure in 'process.pip'.
FN_AH ($01) : allocate a handle of B type in IX
FN_VH ($02) : verify IX handle with B type
FN_FH ($03) : free the handle in IX
|$0AF0||$03||Filing system memory pool handle|
|$0AE0||$FB||Serial port handle|
|$0AD0||$03||Director (Index) memory pool handle|
They are stored in the RAM variables area at :
$0244 Filing system memory pool handle
$0E1E Director memory pool handle
They always remain opened as OZ needs them to manage Files and Processes. Just have a look with a memory dumper.
Thierry Peycru (Zlab), March 1998.