
*	Exec.asm (of PCQ Pascal runtime library)
*	Copyright (c) 1989 Patrick Quaid

*	This is the implementation for the routines defined in
*	Exec.i.  Not all the exec library is handled here, so
*	feel free to add the routines you need.  The routines
*	defined in Ports.i are also here.

	section	one

	XDEF	_AddHead
_AddHead
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOAddHead(a6)

	XDEF	_AddIntServer
_AddIntServer
	move.l	8(sp),d0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOAddIntServer(a6)

	XDEF	_AddLibrary
_AddLibrary
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOAddLibrary

	XDEF	_AddResource
_AddResource
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOAddResource(a6)

	XDEF	_AddTail
_AddTail
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOAddTail(a6)

	XDEF	_AddTask
_AddTask
	move.l	12(sp),a1
	move.l	8(sp),a2
	move.l	4(sp),a3
	move.l	_AbsExecBase,a6
	jmp	_LVOAddTask(a6)

	XDEF	_Allocate
_Allocate
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOAllocate(a6)

	XDEF	_AllocEntry
_AllocEntry
	move.l	4(sp),a0
	move.l	_AbsExecBase,a6
	jmp	_LVOAllocEntry(a6)

	XDEF	_AllocMem
_AllocMem
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_AbsExecBase,a6
	jmp	_LVOAllocMem(a6)

	XDEF	_AllocSignal
_AllocSignal
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOAllocSignal(a6)

	XDEF	_AllocTrap
_AllocTrap
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOAllocTrap(a6)

	XDEF	_AvailMem
_AvailMem
	move.l	4(sp),d1
	move.l	_AbsExecBase,a6
	jmp	_LVOAvailMem(a6)

	XDEF	_Cause
_Cause
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOCause(a6)

	XDEF	_CloseLibrary
_CloseLibrary
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOCloseLibrary(a6)

	XDEF	_Deallocate
_Deallocate
	move.l	12(sp),a0
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVODeallocate(a6)

	XDEF	_Enqueue
_Enqueue
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOEnqueue(a6)

	XDEF	_FindName
_FindName
	move.l	8(sp),a0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOFindName(a6)

	XDEF	_FindTask
_FindTask
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOFindTask(a6)

	XDEF	_FreeEntry
_FreeEntry
	move.l	4(sp),a0
	move.l	_AbsExecBase,a6
	jmp	_LVOFreeEntry(a6)

	XDEF	_FreeMem
_FreeMem
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOFreeMem(a6)

	XDEF	_FreeSignal
_FreeSignal
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOFreeSignal(a6)

	XDEF	_FreeTrap
_FreeTrap
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOFreeTrap(a6)

	XDEF	_Forbid
_Forbid
	move.l	_AbsExecBase,a6
	jmp	_LVOForbid(a6)

	XDEF	_InitStruct
_InitStruct
	move.l	12(sp),a1
	move.l	8(sp),a2
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOInitStruct(a6)

	XDEF	_Insert
_Insert
	move.l	12(sp),a0
	move.l	8(sp),a1
	move.l	4(sp),a2
	move.l	_AbsExecBase,a6
	jmp	_LVOInsert(a6)

	XDEF	_MakeLibrary
_MakeLibrary
	move.l	20(sp),a0
	move.l	16(sp),a1
	move.l	12(sp),a2
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_AbsExecBase,a6
	jmp	_LVOMakeLibrary(a6)

	XDEF	_OpenLibrary
_OpenLibrary
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOOpenLibrary(a6)

	XDEF	_OpenResource
_OpenResource
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOOpenResource(a6)

	XDEF	_Permit
_Permit
	move.l	_AbsExecBase,a6
	jmp	_LVOPermit(a6)

	XDEF	_RemDevice
_RemDevice
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVORemDevice(a6)

	XDEF	_RemHead
_RemHead
	move.l	4(sp),a0
	move.l	_AbsExecBase,a6
	jmp	_LVORemHead(a6)

	XDEF	_RemIntServer
_RemIntServer
	move.l	8(sp),d0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVORemIntServer(a6)

	XDEF	_RemLibrary
_RemLibrary
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVORemLibrary(a6)

	XDEF	_Remove
_Remove
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVORemove(a6)

	XDEF	_RemResource
_RemResource
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVORemResource(a6)

	XDEF	_RemTail
_RemTail
	move.l	4(sp),a0
	move.l	_AbsExecBase,a6
	jmp	_LVORemTail(a6)

	XDEF	_RemTask
_RemTask
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVORemTask(a6)

	XDEF	_SetExcept
_SetExcept
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_AbsExecBase,a6
	jmp	_LVOSetExcept(a6)

	XDEF	_SetFunction
_SetFunction
	move.l	12(sp),a1
	move.l	8(sp),a0
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOSetFunction(a6)

	XDEF	_SetIntVector
_SetIntVector
	move.l	8(sp),d0
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOSetIntVector(a6)

	XDEF	_SetSignal
_SetSignal
	move.l	_AbsExecBase,a6
	move.l	8(sp),d0
	move.l	4(sp),d1
	jmp	_LVOSetSignal(a6)

	XDEF	_SetSR
_SetSR
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_AbsExecBase,a6
	jmp	_LVOSetSR(a6)

	XDEF	_SetTaskPri
_SetTaskPri
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOSetTaskPri(a6)

	XDEF	_Signal
_Signal
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOSignal(a6)

	XDEF	_SumLibrary
_SumLibrary
	move.l	4(sp),a1
	move.l	_AbsExecBase,a6
	jmp	_LVOSumLibrary(a6)

	XDEF	_SuperState
_SuperState
	move.l	_AbsExecBase,a6
	jmp	_LVOSuperState(a6)

	XDEF	_UserState
_UserState
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOUserState(a6)

	XDEF	_Wait
_Wait
	move.l	4(sp),d0
	move.l	_AbsExecBase,a6
	jmp	_LVOWait(a6)

	XDEF	_CheckBreak
_CheckBreak
	move.l	_AbsExecBase,a6
	moveq	#0,d0
	moveq	#0,d1
	jsr	_LVOSetSignal(a6)
	and.l	#4096,d0
	sne	d0
	and.l	#255,d0
	rts

*	XREF	_LVOCopyMemQuick
*	XREF	_LVOCopyMem
*	XREF	_LVOAddMemList
*	XREF	_LVOSumKickData
*	XREF	_LVORemSemaphore
*	XREF	_LVOAddSemaphore
*	XREF	_LVOFindSemaphore
*	XREF	_LVOReleaseSemaphoreList
*	XREF	_LVOObtainSemaphoreList
*	XREF	_LVOAttemptSemaphore
*	XREF	_LVOReleaseSemaphore
*	XREF	_LVOObtainSemaphore
*	XREF	_LVOInitSemaphore
	XREF	_LVOOpenLibrary
*	XREF	_LVOVacate
*	XREF	_LVOProcure
*	XREF	_LVOTypeOfMem
*	XREF	_LVOGetCC
*	XREF	_LVORawDoFmt
*	XREF	_LVORawPutChar
*	XREF	_LVORawMayGetChar
*	XREF	_LVORawIOInit
	XREF	_LVOOpenResource
	XREF	_LVORemResource
	XREF	_LVOAddResource
*	XREF	_LVOAbortIO
*	XREF	_LVOWaitIO
*	XREF	_LVOCheckIO
*	XREF	_LVOSendIO
*	XREF	_LVODoIO
*	XREF	_LVOCloseDevice
*	XREF	_LVOOpenDevice
	XREF	_LVORemDevice
	XREF	_LVOAddDevice
	XREF	_LVOSumLibrary
	XREF	_LVOSetFunction
	XREF	_LVOCloseLibrary
*	XREF	_LVOOldOpenLibrary
	XREF	_LVORemLibrary
	XREF	_LVOAddLibrary
*	XREF	_LVOFindPort
*	XREF	_LVOWaitPort
*	XREF	_LVOReplyMsg
*	XREF	_LVOGetMsg
*	XREF	_LVOPutMsg
*	XREF	_LVORemPort
*	XREF	_LVOAddPort
	XREF	_LVOFreeTrap
	XREF	_LVOAllocTrap
	XREF	_LVOFreeSignal
	XREF	_LVOAllocSignal
	XREF	_LVOSignal
	XREF	_LVOWait
	XREF	_LVOSetExcept
	XREF	_LVOSetSignal
	XREF	_LVOSetTaskPri
	XREF	_LVOFindTask
	XREF	_LVORemTask
	XREF	_LVOAddTask
	XREF	_LVOFindName
	XREF	_LVOEnqueue
	XREF	_LVORemTail
	XREF	_LVORemHead
	XREF	_LVORemove
	XREF	_LVOAddTail
	XREF	_LVOAddHead
	XREF	_LVOInsert
	XREF	_LVOFreeEntry
	XREF	_LVOAllocEntry
	XREF	_LVOAvailMem
	XREF	_LVOFreeMem
*	XREF	_LVOAllocAbs
	XREF	_LVOAllocMem
	XREF	_LVODeallocate
	XREF	_LVOAllocate
	XREF	_LVOCause
	XREF	_LVORemIntServer
	XREF	_LVOAddIntServer
	XREF	_LVOSetIntVector
	XREF	_LVOUserState
	XREF	_LVOSuperState
	XREF	_LVOSetSR
	XREF	_LVOPermit
	XREF	_LVOForbid
*	XREF	_LVOEnable
*	XREF	_LVODisable
*	XREF	_LVODebug
*	XREF	_LVOAlert
*	XREF	_LVOInitResident
*	XREF	_LVOFindResident
*	XREF	_LVOMakeFunctions
	XREF	_LVOMakeLibrary
	XREF	_LVOInitStruct
*	XREF	_LVOInitCode
*	XREF	_LVOException
*	XREF	_LVODispatch
*	XREF	_LVOSwitch
*	XREF	_LVOReschedule
*	XREF	_LVOSchedule
*	XREF	_LVOExitIntr
*	XREF	_LVOSupervisor
	XREF	_AbsExecBase


	END

