#macro Supervisor(userFunction) IS ASM ' movem.l d2-d7/a2-a5,-(a7)' BUT Stores(execbase,userFunction) BUT Loads(A6,A5) BUT ASM ' jsr -30(a6)' BUT ASM ' movem.l (a7)+, d2-d7/a2-a5'
-> ------ special patchable hooks to internal exec activity ------------
#macro InitCode(startClass,version) IS Stores(execbase,startClass,version) BUT Loads(A6,D0,D1) BUT ASM ' jsr -72(a6)'
#macro InitStruct(initTable,memory,size) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,initTable,memory,size) BUT Loads(A6,A1,A2,D0) BUT ASM ' jsr -78(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro MakeLibrary(funcInit,structInit,libInit,dataSize,segList) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,funcInit,structInit,libInit,dataSize,segList) BUT Loads(A6,A0,A1,A2,D0,D1) BUT ASM ' jsr -84(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro MakeFunctions(target,functionArray,funcDispBase) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,target,functionArray,funcDispBase) BUT Loads(A6,A0,A1,A2) BUT ASM ' jsr -90(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro FindResident(name) IS (A1:=name) BUT (A6:=execbase) BUT ASM ' jsr -96(a6)'
#macro InitResident(resident,segList) IS Stores(execbase,resident,segList) BUT Loads(A6,A1,D1) BUT ASM ' jsr -102(a6)'
#macro Alert(alertNum) IS ASM ' movem.l d2-d7/a2-a5,-(a7)' BUT Stores(execbase,alertNum) BUT Loads(A6,D7) BUT ASM ' jsr -108(a6)' BUT ASM ' movem.l (a7)+, d2-d7/a2-a5'
#macro Debug(flags) IS (D0:=flags) BUT (A6:=execbase) BUT ASM ' jsr -114(a6)'
#macro Insert(list,node,pred) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,list,node,pred) BUT Loads(A6,A0,A1,A2) BUT ASM ' jsr -234(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro AddHead(list,node) IS Stores(execbase,list,node) BUT Loads(A6,A0,A1) BUT ASM ' jsr -240(a6)'
#macro AddTail(list,node) IS Stores(execbase,list,node) BUT Loads(A6,A0,A1) BUT ASM ' jsr -246(a6)'
#macro Remove(node) IS (A1:=node) BUT (A6:=execbase) BUT ASM ' jsr -252(a6)'
#macro RemHead(list) IS (A0:=list) BUT (A6:=execbase) BUT ASM ' jsr -258(a6)'
#macro RemTail(list) IS (A0:=list) BUT (A6:=execbase) BUT ASM ' jsr -264(a6)'
#macro Enqueue(list,node) IS Stores(execbase,list,node) BUT Loads(A6,A0,A1) BUT ASM ' jsr -270(a6)'
#macro FindName(list,name) IS Stores(execbase,list,name) BUT Loads(A6,A0,A1) BUT ASM ' jsr -276(a6)'
#macro AddTask(task,initPC,finalPC) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,task,initPC,finalPC) BUT Loads(A6,A1,A2,A3) BUT ASM ' jsr -282(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro RemTask(task) IS (A1:=task) BUT (A6:=execbase) BUT ASM ' jsr -288(a6)'
#macro FindTask(name) IS (A1:=name) BUT (A6:=execbase) BUT ASM ' jsr -294(a6)'
#macro SetTaskPri(task,priority) IS Stores(execbase,task,priority) BUT Loads(A6,A1,D0) BUT ASM ' jsr -300(a6)'
#macro SetSignal(newSignals,signalSet) IS Stores(execbase,newSignals,signalSet) BUT Loads(A6,D0,D1) BUT ASM ' jsr -306(a6)'
#macro SetExcept(newSignals,signalSet) IS Stores(execbase,newSignals,signalSet) BUT Loads(A6,D0,D1) BUT ASM ' jsr -312(a6)'
#macro Wait(signalSet) IS (D0:=signalSet) BUT (A6:=execbase) BUT ASM ' jsr -318(a6)'
#macro Signal(task,signalSet) IS Stores(execbase,task,signalSet) BUT Loads(A6,A1,D0) BUT ASM ' jsr -324(a6)'
#macro AllocSignal(signalNum) IS (D0:=signalNum) BUT (A6:=execbase) BUT ASM ' jsr -330(a6)'
#macro FreeSignal(signalNum) IS (D0:=signalNum) BUT (A6:=execbase) BUT ASM ' jsr -336(a6)'
#macro AllocTrap(trapNum) IS (D0:=trapNum) BUT (A6:=execbase) BUT ASM ' jsr -342(a6)'
#macro FreeTrap(trapNum) IS (D0:=trapNum) BUT (A6:=execbase) BUT ASM ' jsr -348(a6)'
#macro RawDoFmt(formatString,dataStream,putChProc,putChData) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,formatString,dataStream,putChProc,putChData) BUT Loads(A6,A0,A1,A2,A3) BUT ASM ' jsr -522(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro GetCC() IS (A6:=execbase) BUT ASM ' jsr -528(a6)'
#macro TypeOfMem(address) IS (A1:=address) BUT (A6:=execbase) BUT ASM ' jsr -534(a6)'
#macro Procure(sigSem,bidMsg) IS Stores(execbase,sigSem,bidMsg) BUT Loads(A6,A0,A1) BUT ASM ' jsr -540(a6)'
#macro Vacate(sigSem,bidMsg) IS Stores(execbase,sigSem,bidMsg) BUT Loads(A6,A0,A1) BUT ASM ' jsr -546(a6)'
#macro OpenLibrary(libName,version) IS Stores(execbase,libName,version) BUT Loads(A6,A1,D0) BUT ASM ' jsr -552(a6)'
-> --- functions in V33 or higher (Release 1.2) ---
-> ------ signal semaphores (note funny registers)----------------------
#macro InitSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -558(a6)'
#macro ObtainSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -564(a6)'
#macro ReleaseSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -570(a6)'
#macro AttemptSemaphore(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -576(a6)'
#macro ObtainSemaphoreList(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -582(a6)'
#macro ReleaseSemaphoreList(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -588(a6)'
#macro FindSemaphore(sigSem) IS (A1:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -594(a6)'
#macro AddSemaphore(sigSem) IS (A1:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -600(a6)'
#macro RemSemaphore(sigSem) IS (A1:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -606(a6)'
-> ------ kickmem support ----------------------------------------------
#macro SumKickData() IS (A6:=execbase) BUT ASM ' jsr -612(a6)'
-> ------ more memory support ------------------------------------------
#macro AddMemList(size,attributes,pri,base,name) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,size,attributes,pri,base,name) BUT Loads(A6,D0,D1,D2,A0,A1) BUT ASM ' jsr -618(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro CopyMem(source,dest,size) IS Stores(execbase,source,dest,size) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -624(a6)'
#macro CopyMemQuick(source,dest,size) IS Stores(execbase,source,dest,size) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -630(a6)'
#macro CreateIORequest(port,size) IS Stores(execbase,port,size) BUT Loads(A6,A0,D0) BUT ASM ' jsr -654(a6)'
#macro DeleteIORequest(iorequest) IS (A0:=iorequest) BUT (A6:=execbase) BUT ASM ' jsr -660(a6)'
#macro CreateMsgPort() IS (A6:=execbase) BUT ASM ' jsr -666(a6)'
#macro DeleteMsgPort(port) IS (A0:=port) BUT (A6:=execbase) BUT ASM ' jsr -672(a6)'
#macro ObtainSemaphoreShared(sigSem) IS (A0:=sigSem) BUT (A6:=execbase) BUT ASM ' jsr -678(a6)'
-> ------ even more memory support -------------------------------------
#macro AllocVec(byteSize,requirements) IS Stores(execbase,byteSize,requirements) BUT Loads(A6,D0,D1) BUT ASM ' jsr -684(a6)'
#macro FreeVec(memoryBlock) IS (A1:=memoryBlock) BUT (A6:=execbase) BUT ASM ' jsr -690(a6)'
-> ------ V39 Pool LVOs...
#macro CreatePool(requirements,puddleSize,threshSize) IS ASM ' movem.l d2-d3/a2-a3,-(a7)' BUT Stores(execbase,requirements,puddleSize,threshSize) BUT Loads(A6,D0,D1,D2) BUT ASM ' jsr -696(a6)' BUT ASM ' movem.l (a7)+, d2-d3/a2-a3'
#macro DeletePool(poolHeader) IS (A0:=poolHeader) BUT (A6:=execbase) BUT ASM ' jsr -702(a6)'
#macro AllocPooled(poolHeader,memSize) IS Stores(execbase,poolHeader,memSize) BUT Loads(A6,A0,D0) BUT ASM ' jsr -708(a6)'
#macro FreePooled(poolHeader,memory,memSize) IS Stores(execbase,poolHeader,memory,memSize) BUT Loads(A6,A0,A1,D0) BUT ASM ' jsr -714(a6)'