********************************************
** TrackmoDOS v3.2 assembler include file **
**       by Emmanuel 'Poison' Marty       **
**          © Nova march of 1993          **
********************************************

 IFND MISC_TDOS_I
MISC_TDOS_I SET 1

*---------------- toolbox-call macro ---------------------*

CALLTDOS MACRO					; CALLTDOS FunctionName
 move.l 4.w,a6
 jsr _LVO\1(a6)
 ENDM

*------------- toolbox function offsets ------------------*

_LVOCallMon		EQU -64			; see documentation
_LVOSetReturnList	EQU -60
_LVOUnLoadSeg		EQU -56
_LVONewLoadSeg		EQU -52
_LVOMemAvail		EQU -48
_LVOWaitDisk		EQU -44
_LVOCheckMark		EQU -40
_LVOPPFree		EQU -36
_LVOPPLoad		EQU -32
_LVOPPDepack		EQU -28
_LVOMemFree		EQU -24
_LVOMemAlloc		EQU -20
_LVOLoadSeg		EQU -16
_LVOLoadAlloc		EQU -12
_LVOLoad		EQU -8
_LVOFSize		EQU -4

*------------------ toolbox fields ----------------------*

	RSRESET
tb_sysmark	RS.L 1			; toolbox test mark (must be "tdos")
tb_diskdrives	RS.B 4			; connected diskdrives array
tb_activedrive	RS.B 1			; current drive for any disk operation
tb_pad		RS.B 1			; pad (no use, only realignment)
tb_lastlength	RS.L 1			; last length for loadalloc/loadseg
tb_diskerror	RS.W 1			; last disk error (see DE_XXX codes)
tb_totalchip	RS.L 1			; total connected chipram (in bytes)
tb_totalfast	RS.L 1			; total connected fastram (in bytes)
tb_agnustype	RS.B 1			; agnus type (see TB_XXX codes)
tb_denisetype	RS.B 1			; denise type (see TB_XXX codes)
tb_displaytype	RS.B 1			; display type (see TB_XXX codes)
tb_proctype	RS.B 1			; processor type (see TB_XXX codes)
tb_coproctype	RS.B 1			; coprocessor type (see TB_XXX codes)
tb_kickver	RS.B 1			; kickstart (ROM) version

*---------------------- memory --------------------------*

MEMF_ANY	EQU 0			; use any available memory
MEMF_PUBLIC	EQU 1			; public is ignored by this version
MEMF_CHIP	EQU 2			; use only chip memory
MEMF_FAST	EQU 4			; use only fast memory

*------------------- disk errors ------------------------*

DE_READERROR	EQU $0008		; hardware read error
DE_NODISK	EQU $0010		; no disk in drive
DE_NOTDOS	EQU $0018		; not a T-DOS disk
DE_FILENOTFOUND	EQU $0020		; requested file not found
DE_UNKNOWNHUNK	EQU $0028		; NewLoadSeg : hunk not supported
DE_NONEXE	EQU $0030		; NewLoadSeg : file not executable
DE_NOHUNKMEM	EQU $0038		; NewLoadSeg : no memory for a hunk

*------------------- hardware info ----------------------*

TB_NORMALAGNUS	EQU $10			; agnus type = normal
TB_FATAGNUS	EQU $11			; agnus type = fat (1 MB chipram)
TB_SUPFATAGNUS	EQU $12			; agnus type = superfat (2 MB chipram)
TB_NORMALDENISE	EQU $20			; denise type = normal
TB_SUPERDENISE	EQU $21			; denise type = super (ECS or AGA)
TB_DISPLAYNTSC	EQU 0			; display type = NTSC (USA)
TB_DISPLAYPAL	EQU $FF			; display type = PAL (EUROPE)
TB_MC68000	EQU 0			; processor = MC68000 (normal)
TB_MC68010	EQU 1			; processor = MC68010
TB_MC68020	EQU 2			; processor = MC68020
TB_MC68030	EQU 3			; processor = MC68030
TB_MC68040	EQU 4			; processor = MC68040
TB_NOCOPROC	EQU 0			; no coprocessor
TB_MC68881	EQU $FF			; MC68881 coprocessor connected
TB_MC68882	EQU $7F			; MC68882 coprocessor connected
TB_COPROC	EQU TB_MC68881		; (old 3.0 equate - don't use it now)

*----------------------- other --------------------------*

TB_TDOSMARK	EQU 'tdos'		; toolbox mark (MUST be at tb_sysmark)

ERR_DISKERR	EQU 0			; disk error (so look at tb_diskerr)
ERR_NOMEM	EQU -1			; not enough memory for operation
ERR_NOTSEG	EQU -2			; attempted to loadseg() a 'raw' file


 ENDC
