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.
Type | Description |
---|---|
$00 | Free handle |
$01 | Device |
$02 | File/Directory |
$03 | Memory |
$04 | Process (or suspended task) |
$05 | Alarm |
$06 | Tri-handle |
$FA | Temporary data |
$FB | Serial port |
Structure
Bytes | Length | DESCRIPTION |
---|---|---|
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) |
0A | ||
0B | ||
0C | ||
0D | ||
0E 0F | 2 | unused |
File attribute byte:
bit 0 when resetted file is read protected
bit 1 when resetted file is write protected
+02 Type
+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
+06 Bank
+07 Subtype
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
Handle | Type | Usage |
---|---|---|
$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.