mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-02 10:33:42 +02:00
1562 lines
31 KiB
ObjectPascal
1562 lines
31 KiB
ObjectPascal
{
|
|
This file is part of the Free Pascal run time library.
|
|
|
|
A file in Amiga system run time library.
|
|
Copyright (c) 1999-2000 by Nils Sjoholm
|
|
member of the Amiga RTL development team.
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
|
|
UNIT EXEC;
|
|
|
|
INTERFACE
|
|
|
|
{$I exec.inc}
|
|
|
|
|
|
PROCEDURE AbortIO(ioRequest : pIORequest);
|
|
PROCEDURE AddDevice(device : pDevice);
|
|
PROCEDURE AddHead(list : pList; node : pNode);
|
|
PROCEDURE AddIntServer(intNumber : LONGINT; interrupt : pInterrupt);
|
|
PROCEDURE AddLibrary(lib : pLibrary);
|
|
PROCEDURE AddMemHandler(memhand : pInterrupt);
|
|
PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; name : pCHAR);
|
|
PROCEDURE AddPort(port : pMsgPort);
|
|
PROCEDURE AddResource(resource : POINTER);
|
|
PROCEDURE AddSemaphore(sigSem : pSignalSemaphore);
|
|
PROCEDURE AddTail(list : pList; node : pNode);
|
|
FUNCTION AddTask(task : pTask; initPC : POINTER; finalPC : POINTER) : POINTER;
|
|
PROCEDURE Alert(alertNum : ULONG);
|
|
FUNCTION AllocAbs(byteSize : ULONG; location : POINTER) : POINTER;
|
|
FUNCTION Allocate(freeList : pMemHeader; byteSize : ULONG) : POINTER;
|
|
FUNCTION AllocEntry(entry : pMemList) : pMemList;
|
|
FUNCTION AllocMem(byteSize : ULONG; requirements : ULONG) : POINTER;
|
|
FUNCTION AllocPooled(poolHeader : POINTER; memSize : ULONG) : POINTER;
|
|
FUNCTION AllocSignal(signalNum : LONGINT) : SHORTINT;
|
|
FUNCTION AllocTrap(trapNum : LONGINT) : LONGINT;
|
|
FUNCTION AllocVec(byteSize : ULONG; requirements : ULONG) : POINTER;
|
|
FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore) : BOOLEAN;
|
|
FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore) : ULONG;
|
|
FUNCTION AvailMem(requirements : ULONG) : ULONG;
|
|
PROCEDURE CacheClearE(address : POINTER; length : ULONG; caches : ULONG);
|
|
PROCEDURE CacheClearU;
|
|
FUNCTION CacheControl(cacheBits : ULONG; cacheMask : ULONG) : ULONG;
|
|
PROCEDURE CachePostDMA(address : POINTER; VAR length : ULONG; flags : ULONG);
|
|
FUNCTION CachePreDMA(address : POINTER; VAR length : ULONG; flags : ULONG) : POINTER;
|
|
PROCEDURE Cause(interrupt : pInterrupt);
|
|
FUNCTION CheckIO(ioRequest : pIORequest) : pIORequest;
|
|
PROCEDURE ChildFree(tid : POINTER);
|
|
PROCEDURE ChildOrphan(tid : POINTER);
|
|
PROCEDURE ChildStatus(tid : POINTER);
|
|
PROCEDURE ChildWait(tid : POINTER);
|
|
PROCEDURE CloseDevice(ioRequest : pIORequest);
|
|
PROCEDURE CloseLibrary(lib : pLibrary);
|
|
PROCEDURE ColdReboot;
|
|
PROCEDURE CopyMem(source : POINTER; dest : POINTER; size : ULONG);
|
|
PROCEDURE CopyMemQuick(source : POINTER; dest : POINTER; size : ULONG);
|
|
FUNCTION CreateIORequest(port : pMsgPort; size : ULONG) : POINTER;
|
|
FUNCTION CreateMsgPort : pMsgPort;
|
|
FUNCTION CreatePool(requirements : ULONG; puddleSize : ULONG; threshSize : ULONG) : POINTER;
|
|
PROCEDURE Deallocate(freeList : pMemHeader; memoryBlock : POINTER; byteSize : ULONG);
|
|
PROCEDURE Debug(flags : ULONG);
|
|
PROCEDURE DeleteIORequest(iorequest : POINTER);
|
|
PROCEDURE DeleteMsgPort(port : pMsgPort);
|
|
PROCEDURE DeletePool(poolHeader : POINTER);
|
|
PROCEDURE Disable;
|
|
FUNCTION DoIO(ioRequest : pIORequest) : SHORTINT;
|
|
PROCEDURE Enable;
|
|
PROCEDURE Enqueue(list : pList; node : pNode);
|
|
PROCEDURE ExecFreeMem(memoryBlock : POINTER; byteSize : ULONG);
|
|
PROCEDURE ExecInsert(list : pList; node : pNode; pred : pNode);
|
|
FUNCTION FindName(list : pList; name : pCHAR) : pNode;
|
|
FUNCTION FindPort(name : pCHAR) : pMsgPort;
|
|
FUNCTION FindResident(name : pCHAR) : pResident;
|
|
FUNCTION FindSemaphore(sigSem : pCHAR) : pSignalSemaphore;
|
|
FUNCTION FindTask(name : pCHAR) : pTask;
|
|
PROCEDURE Forbid;
|
|
PROCEDURE FreeEntry(entry : pMemList);
|
|
PROCEDURE FreePooled(poolHeader : POINTER; memory : POINTER; memSize : ULONG);
|
|
PROCEDURE FreeSignal(signalNum : LONGINT);
|
|
PROCEDURE FreeTrap(trapNum : LONGINT);
|
|
PROCEDURE FreeVec(memoryBlock : POINTER);
|
|
FUNCTION GetCC : ULONG;
|
|
FUNCTION GetMsg(port : pMsgPort) : pMessage;
|
|
PROCEDURE InitCode(startClass : ULONG; version : ULONG);
|
|
FUNCTION InitResident(resident : pResident; segList : ULONG) : POINTER;
|
|
PROCEDURE InitSemaphore(sigSem : pSignalSemaphore);
|
|
PROCEDURE InitStruct(initTable : POINTER; memory : POINTER; size : ULONG);
|
|
PROCEDURE MakeFunctions(target : POINTER; functionArray : POINTER; funcDispBase : ULONG);
|
|
FUNCTION MakeLibrary(funcInit : POINTER; structInit : POINTER; libInit : tPROCEDURE; dataSize : ULONG; segList : ULONG) : pLibrary;
|
|
FUNCTION ObtainQuickVector(interruptCode : POINTER) : ULONG;
|
|
PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore);
|
|
PROCEDURE ObtainSemaphoreList(sigSem : pList);
|
|
PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore);
|
|
FUNCTION OldOpenLibrary(libName : pCHAR) : pLibrary;
|
|
FUNCTION OpenDevice(devName : pCHAR; unite : ULONG; ioRequest : pIORequest; flags : ULONG) : SHORTINT;
|
|
FUNCTION OpenLibrary(libName : pCHAR; version : ULONG) : pLibrary;
|
|
FUNCTION OpenResource(resName : pCHAR) : POINTER;
|
|
PROCEDURE Permit;
|
|
FUNCTION Procure(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage) : BOOLEAN;
|
|
PROCEDURE PutMsg(port : pMsgPort; message : pMessage);
|
|
PROCEDURE RawDoFmt(formatString : pCHAR; dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER);
|
|
PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore);
|
|
PROCEDURE ReleaseSemaphoreList(sigSem : pList);
|
|
PROCEDURE RemDevice(device : pDevice);
|
|
FUNCTION RemHead(list : pList) : pNode;
|
|
PROCEDURE RemIntServer(intNumber : LONGINT; interrupt : pInterrupt);
|
|
PROCEDURE RemLibrary(lib : pLibrary);
|
|
PROCEDURE RemMemHandler(memhand : pInterrupt);
|
|
PROCEDURE Remove(node : pNode);
|
|
PROCEDURE RemPort(port : pMsgPort);
|
|
PROCEDURE RemResource(resource : POINTER);
|
|
PROCEDURE RemSemaphore(sigSem : pSignalSemaphore);
|
|
FUNCTION RemTail(list : pList) : pNode;
|
|
PROCEDURE RemTask(task : pTask);
|
|
PROCEDURE ReplyMsg(message : pMessage);
|
|
PROCEDURE SendIO(ioRequest : pIORequest);
|
|
FUNCTION SetExcept(newSignals : ULONG; signalSet : ULONG) : ULONG;
|
|
FUNCTION SetFunction(lib : pLibrary; funcOffset : LONGINT; newFunction : tPROCEDURE) : POINTER;
|
|
FUNCTION SetIntVector(intNumber : LONGINT; interrupt : pInterrupt) : pInterrupt;
|
|
FUNCTION SetSignal(newSignals : ULONG; signalSet : ULONG) : ULONG;
|
|
FUNCTION SetSR(newSR : ULONG; mask : ULONG) : ULONG;
|
|
FUNCTION SetTaskPri(task : pTask; priority : LONGINT) : SHORTINT;
|
|
PROCEDURE Signal(task : pTask; signalSet : ULONG);
|
|
PROCEDURE StackSwap(newStack : pStackSwapStruct);
|
|
PROCEDURE SumKickData;
|
|
PROCEDURE SumLibrary(lib : pLibrary);
|
|
FUNCTION SuperState : POINTER;
|
|
FUNCTION Supervisor(userFunction : tPROCEDURE) : ULONG;
|
|
FUNCTION TypeOfMem(address : POINTER) : ULONG;
|
|
PROCEDURE UserState(sysStack : POINTER);
|
|
PROCEDURE Vacate(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage);
|
|
FUNCTION Wait(signalSet : ULONG) : ULONG;
|
|
FUNCTION WaitIO(ioRequest : pIORequest) : SHORTINT;
|
|
FUNCTION WaitPort(port : pMsgPort) : pMessage;
|
|
|
|
IMPLEMENTATION
|
|
|
|
PROCEDURE AbortIO(ioRequest : pIORequest);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L ioRequest,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -480(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddDevice(device : pDevice);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L device,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -432(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddHead(list : pList; node : pNode);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L node,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -240(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddIntServer(intNumber : LONGINT; interrupt : pInterrupt);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L intNumber,D0
|
|
MOVEA.L interrupt,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -168(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddLibrary(lib : pLibrary);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L lib,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -396(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddMemHandler(memhand : pInterrupt);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L memhand,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -774(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; name : pCHAR);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L size,D0
|
|
MOVE.L attributes,D1
|
|
MOVE.L pri,D2
|
|
MOVEA.L base,A0
|
|
MOVEA.L name,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -618(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddPort(port : pMsgPort);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -354(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddResource(resource : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L resource,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -486(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddSemaphore(sigSem : pSignalSemaphore);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -600(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE AddTail(list : pList; node : pNode);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L node,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -246(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AddTask(task : pTask; initPC : POINTER; finalPC : POINTER) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L task,A1
|
|
MOVEA.L initPC,A2
|
|
MOVEA.L finalPC,A3
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -282(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Alert(alertNum : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L alertNum,D7
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -108(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocAbs(byteSize : ULONG; location : POINTER) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L byteSize,D0
|
|
MOVEA.L location,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -204(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION Allocate(freeList : pMemHeader; byteSize : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L freeList,A0
|
|
MOVE.L byteSize,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -186(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocEntry(entry : pMemList) : pMemList;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L entry,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -222(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocMem(byteSize : ULONG; requirements : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L byteSize,D0
|
|
MOVE.L requirements,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -198(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocPooled(poolHeader : POINTER; memSize : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L poolHeader,A0
|
|
MOVE.L memSize,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -708(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocSignal(signalNum : LONGINT) : SHORTINT;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L signalNum,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -330(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocTrap(trapNum : LONGINT) : LONGINT;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L trapNum,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -342(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AllocVec(byteSize : ULONG; requirements : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L byteSize,D0
|
|
MOVE.L requirements,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -684(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore) : BOOLEAN;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -576(A6)
|
|
MOVEA.L (A7)+,A6
|
|
TST.L D0
|
|
BEQ.B @end
|
|
MOVEQ #1,D0
|
|
@end: MOVE.B D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -720(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION AvailMem(requirements : ULONG) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L requirements,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -216(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CacheClearE(address : POINTER; length : ULONG; caches : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L address,A0
|
|
MOVE.L length,D0
|
|
MOVE.L caches,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -642(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CacheClearU;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -636(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION CacheControl(cacheBits : ULONG; cacheMask : ULONG) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L cacheBits,D0
|
|
MOVE.L cacheMask,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -648(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CachePostDMA(address : POINTER; VAR length : ULONG; flags : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L address,A0
|
|
MOVEA.L length,A1
|
|
MOVE.L flags,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -768(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION CachePreDMA(address : POINTER; VAR length : ULONG; flags : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L address,A0
|
|
MOVEA.L length,A1
|
|
MOVE.L flags,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -762(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Cause(interrupt : pInterrupt);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L interrupt,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -180(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION CheckIO(ioRequest : pIORequest) : pIORequest;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L ioRequest,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -468(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ChildFree(tid : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L tid,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -738(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ChildOrphan(tid : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L tid,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -744(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ChildStatus(tid : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L tid,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -750(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ChildWait(tid : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L tid,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -756(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CloseDevice(ioRequest : pIORequest);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L ioRequest,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -450(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CloseLibrary(lib : pLibrary);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L lib,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -414(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ColdReboot;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -726(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CopyMem(source : POINTER; dest : POINTER; size : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L source,A0
|
|
MOVEA.L dest,A1
|
|
MOVE.L size,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -624(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE CopyMemQuick(source : POINTER; dest : POINTER; size : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L source,A0
|
|
MOVEA.L dest,A1
|
|
MOVE.L size,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -630(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION CreateIORequest(port : pMsgPort; size : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A0
|
|
MOVE.L size,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -654(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION CreateMsgPort : pMsgPort;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -666(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION CreatePool(requirements : ULONG; puddleSize : ULONG; threshSize : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L requirements,D0
|
|
MOVE.L puddleSize,D1
|
|
MOVE.L threshSize,D2
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -696(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Deallocate(freeList : pMemHeader; memoryBlock : POINTER; byteSize : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L freeList,A0
|
|
MOVEA.L memoryBlock,A1
|
|
MOVE.L byteSize,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -192(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Debug(flags : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L flags,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -114(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE DeleteIORequest(iorequest : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L iorequest,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -660(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE DeleteMsgPort(port : pMsgPort);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -672(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE DeletePool(poolHeader : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L poolHeader,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -702(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Disable;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -120(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION DoIO(ioRequest : pIORequest) : SHORTINT;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L ioRequest,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -456(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Enable;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -126(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Enqueue(list : pList; node : pNode);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L node,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -270(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ExecFreeMem(memoryBlock : POINTER; byteSize : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L memoryBlock,A1
|
|
MOVE.L byteSize,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -210(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ExecInsert(list : pList; node : pNode; pred : pNode);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L node,A1
|
|
MOVEA.L pred,A2
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -234(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION FindName(list : pList; name : pCHAR) : pNode;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L name,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -276(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION FindPort(name : pCHAR) : pMsgPort;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L name,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -390(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION FindResident(name : pCHAR) : pResident;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L name,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -096(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION FindSemaphore(sigSem : pCHAR) : pSignalSemaphore;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -594(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION FindTask(name : pCHAR) : pTask;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L name,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -294(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Forbid;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -132(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE FreeEntry(entry : pMemList);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L entry,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -228(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE FreePooled(poolHeader : POINTER; memory : POINTER; memSize : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L poolHeader,A0
|
|
MOVEA.L memory,A1
|
|
MOVE.L memSize,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -714(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE FreeSignal(signalNum : LONGINT);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L signalNum,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -336(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE FreeTrap(trapNum : LONGINT);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L trapNum,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -348(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE FreeVec(memoryBlock : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L memoryBlock,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -690(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION GetCC : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -528(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION GetMsg(port : pMsgPort) : pMessage;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -372(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE InitCode(startClass : ULONG; version : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L startClass,D0
|
|
MOVE.L version,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -072(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION InitResident(resident : pResident; segList : ULONG) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L resident,A1
|
|
MOVE.L segList,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -102(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE InitSemaphore(sigSem : pSignalSemaphore);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -558(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE InitStruct(initTable : POINTER; memory : POINTER; size : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L initTable,A1
|
|
MOVEA.L memory,A2
|
|
MOVE.L size,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -078(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE MakeFunctions(target : POINTER; functionArray : POINTER; funcDispBase : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L target,A0
|
|
MOVEA.L functionArray,A1
|
|
MOVEA.L funcDispBase,A2
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -090(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION MakeLibrary(funcInit : POINTER; structInit : POINTER; libInit : tPROCEDURE; dataSize : ULONG; segList : ULONG) : pLibrary;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L funcInit,A0
|
|
MOVEA.L structInit,A1
|
|
MOVEA.L libInit,A2
|
|
MOVE.L dataSize,D0
|
|
MOVE.L segList,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -084(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION ObtainQuickVector(interruptCode : POINTER) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L interruptCode,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -786(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -564(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ObtainSemaphoreList(sigSem : pList);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -582(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -678(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION OldOpenLibrary(libName : pCHAR) : pLibrary;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L libName,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -408(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION OpenDevice(devName : pCHAR; unite : ULONG; ioRequest : pIORequest; flags : ULONG) : SHORTINT;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L devName,A0
|
|
MOVE.L unite,D0
|
|
MOVEA.L ioRequest,A1
|
|
MOVE.L flags,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -444(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION OpenLibrary(libName : pCHAR; version : ULONG) : pLibrary;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L libName,A1
|
|
MOVE.L version,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -552(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION OpenResource(resName : pCHAR) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L resName,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -498(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Permit;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -138(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION Procure(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage) : BOOLEAN;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L bidMsg,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -540(A6)
|
|
MOVEA.L (A7)+,A6
|
|
TST.L D0
|
|
BEQ.B @end
|
|
MOVEQ #1,D0
|
|
@end: MOVE.B D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE PutMsg(port : pMsgPort; message : pMessage);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A0
|
|
MOVEA.L message,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -366(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RawDoFmt(formatString : pCHAR; dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L formatString,A0
|
|
MOVEA.L dataStream,A1
|
|
MOVEA.L putChProc,A2
|
|
MOVEA.L putChData,A3
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -522(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -570(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ReleaseSemaphoreList(sigSem : pList);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -588(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemDevice(device : pDevice);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L device,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -438(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION RemHead(list : pList) : pNode;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -258(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemIntServer(intNumber : LONGINT; interrupt : pInterrupt);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L intNumber,D0
|
|
MOVEA.L interrupt,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -174(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemLibrary(lib : pLibrary);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L lib,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -402(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemMemHandler(memhand : pInterrupt);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L memhand,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -780(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Remove(node : pNode);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L node,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -252(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemPort(port : pMsgPort);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -360(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemResource(resource : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L resource,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -492(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemSemaphore(sigSem : pSignalSemaphore);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -606(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION RemTail(list : pList) : pNode;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L list,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -264(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE RemTask(task : pTask);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L task,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -288(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE ReplyMsg(message : pMessage);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L message,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -378(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE SendIO(ioRequest : pIORequest);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L ioRequest,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -462(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SetExcept(newSignals : ULONG; signalSet : ULONG) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L newSignals,D0
|
|
MOVE.L signalSet,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -312(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SetFunction(lib : pLibrary; funcOffset : LONGINT; newFunction : tPROCEDURE) : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L lib,A1
|
|
MOVEA.L funcOffset,A0
|
|
MOVE.L newFunction,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -420(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SetIntVector(intNumber : LONGINT; interrupt : pInterrupt) : pInterrupt;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L intNumber,D0
|
|
MOVEA.L interrupt,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -162(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SetSignal(newSignals : ULONG; signalSet : ULONG) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L newSignals,D0
|
|
MOVE.L signalSet,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -306(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SetSR(newSR : ULONG; mask : ULONG) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L newSR,D0
|
|
MOVE.L mask,D1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -144(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SetTaskPri(task : pTask; priority : LONGINT) : SHORTINT;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L task,A1
|
|
MOVE.L priority,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -300(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Signal(task : pTask; signalSet : ULONG);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L task,A1
|
|
MOVE.L signalSet,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -324(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE StackSwap(newStack : pStackSwapStruct);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L newStack,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -732(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE SumKickData;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -612(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE SumLibrary(lib : pLibrary);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L lib,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -426(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION SuperState : POINTER;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -150(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION Supervisor(userFunction : tPROCEDURE) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L userFunction,A5
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -030(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION TypeOfMem(address : POINTER) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L address,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -534(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE UserState(sysStack : POINTER);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L sysStack,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -156(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
PROCEDURE Vacate(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage);
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L sigSem,A0
|
|
MOVEA.L bidMsg,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -546(A6)
|
|
MOVEA.L (A7)+,A6
|
|
END;
|
|
END;
|
|
|
|
FUNCTION Wait(signalSet : ULONG) : ULONG;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVE.L signalSet,D0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -318(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION WaitIO(ioRequest : pIORequest) : SHORTINT;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L ioRequest,A1
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -474(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
FUNCTION WaitPort(port : pMsgPort) : pMessage;
|
|
BEGIN
|
|
ASM
|
|
MOVE.L A6,-(A7)
|
|
MOVEA.L port,A0
|
|
MOVEA.L _ExecBase,A6
|
|
JSR -384(A6)
|
|
MOVEA.L (A7)+,A6
|
|
MOVE.L D0,@RESULT
|
|
END;
|
|
END;
|
|
|
|
END. (* UNIT EXEC *)
|
|
|
|
{
|
|
$Log$
|
|
Revision 1.3 2002-09-07 16:01:16 peter
|
|
* old logs removed and tabs fixed
|
|
|
|
}
|