IN: A = reason code HL, IX arguments Reason codes are as follows: DR_GET ($01) get handle for a DOR name (internal use) DR_DUP ($02) duplicate DOR DR_SIB ($03) return brother DOR DR_SON ($04) return child DOR DR_FRE ($05) free DOR handle DR_CRE ($06) create blank DOR DR_DEL ($07) delete DOR DR_INS ($08) insert DOR DR_RD ($09) read DOR record DR_WR ($0A) write DOR record OUT, if call successful: Fc = 0 returned values depend on A(in) OUT, if call failed: Fc = 1 A = error code: RC_HAND ($08), bad handle RC_BAD ($04), bad argument RC_ROOM ($07), no room RC_EOF ($09), end of file Registers changed after return: not documented. |
When the last DOR record in a list has been read, an RC_EOF is reported and the handle is immediatly released, ie. it will not be necessary to release the handle with a DR_FRE call.
Corrupts the stack pointer SP when called with an old handle, e.g. when a previous DR_ call resulted in a "End of list" error (RC_EOF).
IN: - OUT, if call successful: Fc = 0 IX = DOR handle A = minor type (device, always) Registers changed after return: ..BCDEHL/..IY same AF....../IX.. different Do not use this call. Instead use GN_Opf with A = OP_DOR to obtain a DOR handle. |
IN: IX = DOR handle OUT, if call successful: Fc = 0 BC = duplicate DOR handle (IX is still valid) OUT, if call failed: Fc = 1 BC = 0 (IX is still valid) A = error code RC_HAND ($08), bad DOR handle Registers changed after return: ....DEHL/IXIY same AFBC..../.... different |
IN: IX = DOR handle OUT, if call successful: Fc = 0 IX = next DOR handle (original IX invalid) A = minor type OUT, if call failed: Fc = 1 A = error code RC_HAND ($08), bad DOR handle Registers changed after return: ..BCDEHL/..IY same AF....../IX.. different |
IN: IX = DOR handle OUT, if call successful: Fc = 0 IX = child DOR handle (original IX invalid) A = minor type OUT, if call failed: Fc = 1 A = error code RC_HAND ($08), bad DOR handle Registers changed after return: ..BCDEHL/..IY same AF....../IX.. different |
IN: IX = DOR handle OUT, if call successful: Fc = 0 IX = 0 OUT, if call failed: Fc = 1 A = error code RC_HAND ($08), bad DOR handle Registers changed after return: ..BCDEHL/..IY same AF....../IX.. different |
IN: IX = parent DOR handle B = minor type OUT, if call successful: Fc = 0 IX = new DOR handle (original IX invalid) OUT, if call failed: Fc = 1 A = error code RC_HAND ($08), bad DOR handle RC_BAD ($04), bad argument RC_ROOM ($07), no room Registers changed after return: ..BCDEHL/..IY same AF....../IX.. different |
IN: IX = DOR handle OUT, if call successful: Fc = 0, DOR deleted IX = 0 OUT, if call failed: Fc = 1 A = error code RC_HAND ($08), bad DOR handle Registers changed after return: ..BCDEHL/..IY same AF....../IX.. different |
This call deletes a DOR node and deallocates its memory used by filesystem (DN_Fil minor type only)
IN: BC = parent DOR handle IX = DOR handle OUT, if call successful: Fc = 0 original BC and IX DOR handles are still valid OUT, if call failed: Fc = 1 BC and IX is still valid A = error code RC_HAND ($08), bad DOR handle Registers changed after return: ..BCDEHL/IXIY same AF....../.... different |
IN: B = record type C = buffer length DE = user buffer address (to store information of read) IX = DOR handle OUT, if call successful: Fc = 0 original IX DOR handle is still valid C = actual length of information OUT, if call failed: Fc = 1 original IX is still valid A = error code RC_HAND ($08), bad DOR handle RC_BAD ($04), bad argument RC_FAIL ($16), information is not present Registers changed after return: ..B.DEHL/IXIY same AF.C..../.... different |
IN: B = record type C = buffer length DE = user buffer address (to copy information of store) IX = DOR handle OUT, if call successful: Fc = 0 original IX DOR handle is still valid OUT, if call failed: Fc = 1 original IX is still valid A = error code RC_HAND ($08), bad DOR handle RC_BAD ($04), bad argument Registers changed after return: ..BCDEHL/IXIY same AF....../.... different |
IN: C = requested segment to open in filename, zero for latest, address range in segment 0 or 1 ($0000-$7FFF) DE = explicit filename including device OUT, if call successful: Fc = 0 IX = file handle (device type, always) A = DOR type (filesystem device, directory, file or EPROM file) B = total segment count in filename HL = last character parsed in filename (separator or null terminator) OUT, if call failed: Fc = 1 A = error code RC_FAIL, filename address is in segment 2 or 3 RC_ONF, bad filename Registers changed after return: ...CDE../..IY same AFB...HL/IX.. different |
IN: B = record type C = buffer length DE = user buffer address (to copy information of store) IX = DOR handle OUT, if call successful: Fc = 0 original IX DOR handle is still valid OUT, if call failed: Fc = 1 original IX is still valid A = error code RC_HAND ($08), bad DOR handle RC_BAD ($04), bad argument Registers changed after return: ..BCDEHL/IXIY same AF....../.... different |
IN: B = record type C = buffer length DE = user buffer address (to copy information of store) IX = DOR handle OUT, if call successful: Fc = 0 original IX DOR handle is still valid OUT, if call failed: Fc = 1 original IX is still valid A = error code RC_HAND ($08), bad DOR handle RC_BAD ($04), bad argument Registers changed after return: ..BCDEHL/IXIY same AF....../.... different |