[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GS/OS: looking for info on VCB and FCB
On 21 sep, 10:51, David Wilson <mcs6...@gmail.com> wrote:
> I just had a look at "Apple IIgs GS/OS Reference" manual and the index
> does not even mention either of those terms...
>
> I next had a look at "Apple IIgs GS/OS Device Driver Reference" manual
> and again found no mention of those terms.
>
> If GS/OS does use similar structures, it must use completely different
> names.
Thanks David,
I have the two books you have had a look at and they do not mention
the existence of VCR and FCR. They do not mention the following system
service calls:
- $01FC00 - DEV_DISPATCHER
- $01FC24 - ALLOC_VCR
- $01FC28 - RELEASE_VCR
- $01FC2C - ALLOC_FCR
- $01FC30 - RELEASE_FCR
- $01FC3C - GET_SYS_GBUF
- $01FC40 - SYS_EXIT
- $01FC48 - FIND_VCR
- $01FC64 - GET_FCR
Let me describe them from what I have understood after hours of work.
The format is equivalent to the GS/OS device driver reference manual:
DEV_DISPATCHER ($01FC0)
Description: This routine passes control to a device to execute a
command
Parameters
- GSOS direct page:
-- deviceNum
-- callNum
-- bufferPtr
-- requestCount
-- transferCount
-- blockNum
-- blockSize
-- fstNum
-- volumeID
-- cachePriority
-- cachePointer
-- dibPointer
- Return:
-- A register: error code
Notes
- Input and output are always passed by GS/OS direct-page locations in
this routine. Full native mode is used.
Errors
- If c = 0: no error, the command has been executed
- If c = 1: error, the command has not been executed
ALLOC_VCR ($01FC24)
Description: This routine returns a virtual pointer to a Volume
Control Record of the requested size
Parameters
- Input:
-- A register: requested memory block size (number of bytes) -- It is
$32 bytes long
-- X register: pointer (low byte) to class 1 input string of volume
name
-- Y register: pointer (high byte) to class 1 input string of volume
name
- Return:
-- X register: virtual pointer (low byte) to newly allocated block
-- Y register: virtual pointer (high byte) to newly allocated block
Notes
- None
Errors
- If c = 0: no error, memory was allocated
- If c = 1: error, memory could not be allocated
RELEASE_VCR ($01FC28)
Description: This routine releases a memory Volume Control Record that
was allocated with the ALLOC_VCR call.
Parameters
- Input:
-- A register: Volume Control Record reference number
- Return:
-- None
Notes
- None
Errors
- If c = 0: no error, memory was freed
- If c = 1: error, memory was not freed
ALLOC_FCR ($01FC2C)
Description: This routine returns a virtual pointer to a File Control
Record of the requested size
Parameters
- Input:
-- A register: requested memory block size (number of bytes) -- It is
$32 bytes long
-- X register: pointer (low byte) to class 1 input string of file name
-- Y register: pointer (high byte) to class 1 input string of file
name
- Return:
-- X register: virtual pointer (low byte) to newly allocated block
-- Y register: virtual pointer (high byte) to newly allocated block
Notes
- None
Errors
- If c = 0: no error, memory was allocated
- If c = 1: error, memory could not be allocated
RELEASE_FCR ($01FC30)
Description: This routine releases a memory File Control Record that
was allocated with the ALLOC_FCR call.
Parameters
- Input:
-- A register: File Control Record reference number
- Return:
-- None
Notes
- None
Errors
- If c = 0: no error, memory was freed
- If c = 1: error, memory was not freed
GET_SYS_GBUF ($01FC3C)
Description: This routine returns a pointer to the GS/OS direct-page
space.
Parameters
- Input:
-- None
- Return:
-- X register: pointer (low byte) to GS/OS direct-page address
-- Y register: pointer (high byte) to GS/OS direct-page address
Notes
- Full native mode is used. The carry is always cleared.
Errors
- None
SYS_EXIT ($01FC40)
Description: This routine returns from the GS/OS environment. It
returns to the calling program.
Parameters
- Input:
-- A register: error code
- Return:
-- None
Notes
- The previous direct-page address and the stack pointer are restored.
Errors
- None
FIND_VCR ($01FC48)
Description: This routine attempts to find the requested Volume
Control Record.
Parameters
- Input:
-- A register: command word. Bit 15 and bit 14 are used
-- X register: pointer (low byte) to class 1 input string of volume
name
-- Y register: pointer (high byte) to class 1 input string of volume
name
- Return:
-- X register: virtual pointer (low byte) to Volume Control Record
-- Y register: virtual pointer (high byte) to Volume Control Record
Notes
- None
Errors
- If c = 0: no error, the Volume Control Record has been found
- If c = 1: error, the Volume Control Record has not been found
GET_FCR ($01FC64)
Description: This routine returns the requested File Control Record
that was allocated with the ALLOC_FCR call.
Parameters
- Input:
-- A register: File Control Record reference number
- Return:
-- X register: virtual pointer (low byte) to File Control Record
-- Y register: virtual pointer (high byte) to File Control Record
Notes
- None
Errors
- If c = 0: no error, the File Control Record has been found
- If c = 1: error, the File Control Record has not been found
===
antoine