DC_Elf, Executable and Linkable Format (ELF) Interface
Register parameters
RST 20H, DEFB $260C
RST 20H, DEFW $260C
IN:
A = reason code
EL_Op ($00), open ELF file
EL_Hi ($02), get ELF header information
EL_Pi ($04), get program header information for memory allocation
EL_Ld ($06), load ELF segment to memory
EL_Ex ($08), execute ELF
EL_Cl ($0A), close ELF file
IX = handle
Other register parameters depend on reason code
OUT:
Depends on reason code, see below.
Notes
Internal operating system usage.
This call implements the ELF low level interface with OZ. Refer to GN_Elf for user level interfacing.
EL_Op
EL_Op (A=$00), open ELF file
IN: A = 0
IX = file handle
OUT: Fc = 0, successful
IX = ELF handle
A = ELF type
BC = number of program header
DE = number of section header
HL = information header buffer address
Fc = 1, failure and A = error
Registers changed after return:
......../..IY same
AFBCDEHL/IX.. different
EL_Hi
EL_Hi (A=$02), get ELF header information
IN:
A = 2
IX = ELF handle
OUT: Fc = 0, successful
A = ELF type
BC = number of program header
DE = number of section header
HL = information header buffer address
Fc = 1, failure and A = error
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different
EL_Pi
EL_Pi (A=$04), get program header information for memory allocation
IN:
A = 4
C = program header index (ELF segment)
IX = ELF handle
OUT: Fc = 0, successful
A = program type
BC = program address requested
DE = memory size requested
HL = program header information buffer address
Fc = 1, failure and A = error
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different
EL_Ld
EL_Ld (A=$06), load ELF segment to memory
IN:
A = 6
C = program header index (ELF segment)
IX = ELF handle
OUT: Fc = 0, successful
A = bank allocated
BC = address allocated
DE = memory size allocated
HL = program header information buffer address
Fc = 1, failure and A = error
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different
EL_Ex
EL_Ld (A=$08), execute ELF
IN:
A = 8
IX = ELF handle
OUT:
-
Return from execution is performed by DC_Rte.
EL_Cl
EL_Ld (A=$0A), close ELF file
IN:
A = $0A
IX = ELF handle
OUT: Fc = 0, successful
Fc = 1, failure and A = error
Registers changed after return:
A.BCDEHL/IXIY same
.F....../.... different
, multiple selections available,