home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 364b.lha / PCQ_v1.1 / Runtime / System / exec.asm < prev    next >
Encoding:
Assembly Source File  |  1990-04-08  |  7.3 KB  |  444 lines

  1.  
  2. *    Exec.asm (of PCQ Pascal runtime library)
  3. *    Copyright (c) 1989 Patrick Quaid
  4.  
  5. *    This is the implementation for the routines defined in
  6. *    Exec.i.  Not all the exec library is handled here, so
  7. *    feel free to add the routines you need.  The routines
  8. *    defined in Ports.i are also here.
  9.  
  10.     section    one
  11.  
  12.     XDEF    _AddHead
  13. _AddHead
  14.     move.l    8(sp),a0
  15.     move.l    4(sp),a1
  16.     move.l    _AbsExecBase,a6
  17.     jmp    _LVOAddHead(a6)
  18.  
  19.     XDEF    _AddIntServer
  20. _AddIntServer
  21.     move.l    8(sp),d0
  22.     move.l    4(sp),a1
  23.     move.l    _AbsExecBase,a6
  24.     jmp    _LVOAddIntServer(a6)
  25.  
  26.     XDEF    _AddLibrary
  27. _AddLibrary
  28.     move.l    4(sp),a1
  29.     move.l    _AbsExecBase,a6
  30.     jmp    _LVOAddLibrary
  31.  
  32.     XDEF    _AddResource
  33. _AddResource
  34.     move.l    4(sp),a1
  35.     move.l    _AbsExecBase,a6
  36.     jmp    _LVOAddResource(a6)
  37.  
  38.     XDEF    _AddTail
  39. _AddTail
  40.     move.l    8(sp),a0
  41.     move.l    4(sp),a1
  42.     move.l    _AbsExecBase,a6
  43.     jmp    _LVOAddTail(a6)
  44.  
  45.     XDEF    _AddTask
  46. _AddTask
  47.     move.l    12(sp),a1
  48.     move.l    8(sp),a2
  49.     move.l    4(sp),a3
  50.     move.l    _AbsExecBase,a6
  51.     jmp    _LVOAddTask(a6)
  52.  
  53.     XDEF    _Allocate
  54. _Allocate
  55.     move.l    8(sp),a0
  56.     move.l    4(sp),d0
  57.     move.l    _AbsExecBase,a6
  58.     jmp    _LVOAllocate(a6)
  59.  
  60.     XDEF    _AllocEntry
  61. _AllocEntry
  62.     move.l    4(sp),a0
  63.     move.l    _AbsExecBase,a6
  64.     jmp    _LVOAllocEntry(a6)
  65.  
  66.     XDEF    _AllocMem
  67. _AllocMem
  68.     move.l    8(sp),d0
  69.     move.l    4(sp),d1
  70.     move.l    _AbsExecBase,a6
  71.     jmp    _LVOAllocMem(a6)
  72.  
  73.     XDEF    _AllocSignal
  74. _AllocSignal
  75.     move.l    4(sp),d0
  76.     move.l    _AbsExecBase,a6
  77.     jmp    _LVOAllocSignal(a6)
  78.  
  79.     XDEF    _AllocTrap
  80. _AllocTrap
  81.     move.l    4(sp),d0
  82.     move.l    _AbsExecBase,a6
  83.     jmp    _LVOAllocTrap(a6)
  84.  
  85.     XDEF    _AvailMem
  86. _AvailMem
  87.     move.l    4(sp),d1
  88.     move.l    _AbsExecBase,a6
  89.     jmp    _LVOAvailMem(a6)
  90.  
  91.     XDEF    _Cause
  92. _Cause
  93.     move.l    4(sp),a1
  94.     move.l    _AbsExecBase,a6
  95.     jmp    _LVOCause(a6)
  96.  
  97.     XDEF    _CloseLibrary
  98. _CloseLibrary
  99.     move.l    4(sp),a1
  100.     move.l    _AbsExecBase,a6
  101.     jmp    _LVOCloseLibrary(a6)
  102.  
  103.     XDEF    _Deallocate
  104. _Deallocate
  105.     move.l    12(sp),a0
  106.     move.l    8(sp),a1
  107.     move.l    4(sp),d0
  108.     move.l    _AbsExecBase,a6
  109.     jmp    _LVODeallocate(a6)
  110.  
  111.     XDEF    _Enqueue
  112. _Enqueue
  113.     move.l    8(sp),a0
  114.     move.l    4(sp),a1
  115.     move.l    _AbsExecBase,a6
  116.     jmp    _LVOEnqueue(a6)
  117.  
  118.     XDEF    _FindName
  119. _FindName
  120.     move.l    8(sp),a0
  121.     move.l    4(sp),a1
  122.     move.l    _AbsExecBase,a6
  123.     jmp    _LVOFindName(a6)
  124.  
  125.     XDEF    _FindTask
  126. _FindTask
  127.     move.l    4(sp),a1
  128.     move.l    _AbsExecBase,a6
  129.     jmp    _LVOFindTask(a6)
  130.  
  131.     XDEF    _FreeEntry
  132. _FreeEntry
  133.     move.l    4(sp),a0
  134.     move.l    _AbsExecBase,a6
  135.     jmp    _LVOFreeEntry(a6)
  136.  
  137.     XDEF    _FreeMem
  138. _FreeMem
  139.     move.l    8(sp),a1
  140.     move.l    4(sp),d0
  141.     move.l    _AbsExecBase,a6
  142.     jmp    _LVOFreeMem(a6)
  143.  
  144.     XDEF    _FreeSignal
  145. _FreeSignal
  146.     move.l    4(sp),d0
  147.     move.l    _AbsExecBase,a6
  148.     jmp    _LVOFreeSignal(a6)
  149.  
  150.     XDEF    _FreeTrap
  151. _FreeTrap
  152.     move.l    4(sp),d0
  153.     move.l    _AbsExecBase,a6
  154.     jmp    _LVOFreeTrap(a6)
  155.  
  156.     XDEF    _Forbid
  157. _Forbid
  158.     move.l    _AbsExecBase,a6
  159.     jmp    _LVOForbid(a6)
  160.  
  161.     XDEF    _InitStruct
  162. _InitStruct
  163.     move.l    12(sp),a1
  164.     move.l    8(sp),a2
  165.     move.l    4(sp),d0
  166.     move.l    _AbsExecBase,a6
  167.     jmp    _LVOInitStruct(a6)
  168.  
  169.     XDEF    _Insert
  170. _Insert
  171.     move.l    12(sp),a0
  172.     move.l    8(sp),a1
  173.     move.l    4(sp),a2
  174.     move.l    _AbsExecBase,a6
  175.     jmp    _LVOInsert(a6)
  176.  
  177.     XDEF    _MakeLibrary
  178. _MakeLibrary
  179.     move.l    20(sp),a0
  180.     move.l    16(sp),a1
  181.     move.l    12(sp),a2
  182.     move.l    8(sp),d0
  183.     move.l    4(sp),d1
  184.     move.l    _AbsExecBase,a6
  185.     jmp    _LVOMakeLibrary(a6)
  186.  
  187.     XDEF    _OpenLibrary
  188. _OpenLibrary
  189.     move.l    8(sp),a1
  190.     move.l    4(sp),d0
  191.     move.l    _AbsExecBase,a6
  192.     jmp    _LVOOpenLibrary(a6)
  193.  
  194.     XDEF    _OpenResource
  195. _OpenResource
  196.     move.l    4(sp),a1
  197.     move.l    _AbsExecBase,a6
  198.     jmp    _LVOOpenResource(a6)
  199.  
  200.     XDEF    _Permit
  201. _Permit
  202.     move.l    _AbsExecBase,a6
  203.     jmp    _LVOPermit(a6)
  204.  
  205.     XDEF    _RemDevice
  206. _RemDevice
  207.     move.l    4(sp),a1
  208.     move.l    _AbsExecBase,a6
  209.     jmp    _LVORemDevice(a6)
  210.  
  211.     XDEF    _RemHead
  212. _RemHead
  213.     move.l    4(sp),a0
  214.     move.l    _AbsExecBase,a6
  215.     jmp    _LVORemHead(a6)
  216.  
  217.     XDEF    _RemIntServer
  218. _RemIntServer
  219.     move.l    8(sp),d0
  220.     move.l    4(sp),a1
  221.     move.l    _AbsExecBase,a6
  222.     jmp    _LVORemIntServer(a6)
  223.  
  224.     XDEF    _RemLibrary
  225. _RemLibrary
  226.     move.l    4(sp),a1
  227.     move.l    _AbsExecBase,a6
  228.     jmp    _LVORemLibrary(a6)
  229.  
  230.     XDEF    _Remove
  231. _Remove
  232.     move.l    4(sp),a1
  233.     move.l    _AbsExecBase,a6
  234.     jmp    _LVORemove(a6)
  235.  
  236.     XDEF    _RemResource
  237. _RemResource
  238.     move.l    4(sp),a1
  239.     move.l    _AbsExecBase,a6
  240.     jmp    _LVORemResource(a6)
  241.  
  242.     XDEF    _RemTail
  243. _RemTail
  244.     move.l    4(sp),a0
  245.     move.l    _AbsExecBase,a6
  246.     jmp    _LVORemTail(a6)
  247.  
  248.     XDEF    _RemTask
  249. _RemTask
  250.     move.l    4(sp),a1
  251.     move.l    _AbsExecBase,a6
  252.     jmp    _LVORemTask(a6)
  253.  
  254.     XDEF    _SetExcept
  255. _SetExcept
  256.     move.l    8(sp),d0
  257.     move.l    4(sp),d1
  258.     move.l    _AbsExecBase,a6
  259.     jmp    _LVOSetExcept(a6)
  260.  
  261.     XDEF    _SetFunction
  262. _SetFunction
  263.     move.l    12(sp),a1
  264.     move.l    8(sp),a0
  265.     move.l    4(sp),d0
  266.     move.l    _AbsExecBase,a6
  267.     jmp    _LVOSetFunction(a6)
  268.  
  269.     XDEF    _SetIntVector
  270. _SetIntVector
  271.     move.l    8(sp),d0
  272.     move.l    4(sp),a1
  273.     move.l    _AbsExecBase,a6
  274.     jmp    _LVOSetIntVector(a6)
  275.  
  276.     XDEF    _SetSignal
  277. _SetSignal
  278.     move.l    _AbsExecBase,a6
  279.     move.l    8(sp),d0
  280.     move.l    4(sp),d1
  281.     jmp    _LVOSetSignal(a6)
  282.  
  283.     XDEF    _SetSR
  284. _SetSR
  285.     move.l    8(sp),d0
  286.     move.l    4(sp),d1
  287.     move.l    _AbsExecBase,a6
  288.     jmp    _LVOSetSR(a6)
  289.  
  290.     XDEF    _SetTaskPri
  291. _SetTaskPri
  292.     move.l    8(sp),a1
  293.     move.l    4(sp),d0
  294.     move.l    _AbsExecBase,a6
  295.     jmp    _LVOSetTaskPri(a6)
  296.  
  297.     XDEF    _Signal
  298. _Signal
  299.     move.l    8(sp),a1
  300.     move.l    4(sp),d0
  301.     move.l    _AbsExecBase,a6
  302.     jmp    _LVOSignal(a6)
  303.  
  304.     XDEF    _SumLibrary
  305. _SumLibrary
  306.     move.l    4(sp),a1
  307.     move.l    _AbsExecBase,a6
  308.     jmp    _LVOSumLibrary(a6)
  309.  
  310.     XDEF    _SuperState
  311. _SuperState
  312.     move.l    _AbsExecBase,a6
  313.     jmp    _LVOSuperState(a6)
  314.  
  315.     XDEF    _UserState
  316. _UserState
  317.     move.l    4(sp),d0
  318.     move.l    _AbsExecBase,a6
  319.     jmp    _LVOUserState(a6)
  320.  
  321.     XDEF    _Wait
  322. _Wait
  323.     move.l    4(sp),d0
  324.     move.l    _AbsExecBase,a6
  325.     jmp    _LVOWait(a6)
  326.  
  327.     XDEF    _CheckBreak
  328. _CheckBreak
  329.     move.l    _AbsExecBase,a6
  330.     moveq    #0,d0
  331.     moveq    #0,d1
  332.     jsr    _LVOSetSignal(a6)
  333.     and.l    #4096,d0
  334.     sne    d0
  335.     and.l    #255,d0
  336.     rts
  337.  
  338. *    XREF    _LVOCopyMemQuick
  339. *    XREF    _LVOCopyMem
  340. *    XREF    _LVOAddMemList
  341. *    XREF    _LVOSumKickData
  342. *    XREF    _LVORemSemaphore
  343. *    XREF    _LVOAddSemaphore
  344. *    XREF    _LVOFindSemaphore
  345. *    XREF    _LVOReleaseSemaphoreList
  346. *    XREF    _LVOObtainSemaphoreList
  347. *    XREF    _LVOAttemptSemaphore
  348. *    XREF    _LVOReleaseSemaphore
  349. *    XREF    _LVOObtainSemaphore
  350. *    XREF    _LVOInitSemaphore
  351.     XREF    _LVOOpenLibrary
  352. *    XREF    _LVOVacate
  353. *    XREF    _LVOProcure
  354. *    XREF    _LVOTypeOfMem
  355. *    XREF    _LVOGetCC
  356. *    XREF    _LVORawDoFmt
  357. *    XREF    _LVORawPutChar
  358. *    XREF    _LVORawMayGetChar
  359. *    XREF    _LVORawIOInit
  360.     XREF    _LVOOpenResource
  361.     XREF    _LVORemResource
  362.     XREF    _LVOAddResource
  363. *    XREF    _LVOAbortIO
  364. *    XREF    _LVOWaitIO
  365. *    XREF    _LVOCheckIO
  366. *    XREF    _LVOSendIO
  367. *    XREF    _LVODoIO
  368. *    XREF    _LVOCloseDevice
  369. *    XREF    _LVOOpenDevice
  370.     XREF    _LVORemDevice
  371.     XREF    _LVOAddDevice
  372.     XREF    _LVOSumLibrary
  373.     XREF    _LVOSetFunction
  374.     XREF    _LVOCloseLibrary
  375. *    XREF    _LVOOldOpenLibrary
  376.     XREF    _LVORemLibrary
  377.     XREF    _LVOAddLibrary
  378. *    XREF    _LVOFindPort
  379. *    XREF    _LVOWaitPort
  380. *    XREF    _LVOReplyMsg
  381. *    XREF    _LVOGetMsg
  382. *    XREF    _LVOPutMsg
  383. *    XREF    _LVORemPort
  384. *    XREF    _LVOAddPort
  385.     XREF    _LVOFreeTrap
  386.     XREF    _LVOAllocTrap
  387.     XREF    _LVOFreeSignal
  388.     XREF    _LVOAllocSignal
  389.     XREF    _LVOSignal
  390.     XREF    _LVOWait
  391.     XREF    _LVOSetExcept
  392.     XREF    _LVOSetSignal
  393.     XREF    _LVOSetTaskPri
  394.     XREF    _LVOFindTask
  395.     XREF    _LVORemTask
  396.     XREF    _LVOAddTask
  397.     XREF    _LVOFindName
  398.     XREF    _LVOEnqueue
  399.     XREF    _LVORemTail
  400.     XREF    _LVORemHead
  401.     XREF    _LVORemove
  402.     XREF    _LVOAddTail
  403.     XREF    _LVOAddHead
  404.     XREF    _LVOInsert
  405.     XREF    _LVOFreeEntry
  406.     XREF    _LVOAllocEntry
  407.     XREF    _LVOAvailMem
  408.     XREF    _LVOFreeMem
  409. *    XREF    _LVOAllocAbs
  410.     XREF    _LVOAllocMem
  411.     XREF    _LVODeallocate
  412.     XREF    _LVOAllocate
  413.     XREF    _LVOCause
  414.     XREF    _LVORemIntServer
  415.     XREF    _LVOAddIntServer
  416.     XREF    _LVOSetIntVector
  417.     XREF    _LVOUserState
  418.     XREF    _LVOSuperState
  419.     XREF    _LVOSetSR
  420.     XREF    _LVOPermit
  421.     XREF    _LVOForbid
  422. *    XREF    _LVOEnable
  423. *    XREF    _LVODisable
  424. *    XREF    _LVODebug
  425. *    XREF    _LVOAlert
  426. *    XREF    _LVOInitResident
  427. *    XREF    _LVOFindResident
  428. *    XREF    _LVOMakeFunctions
  429.     XREF    _LVOMakeLibrary
  430.     XREF    _LVOInitStruct
  431. *    XREF    _LVOInitCode
  432. *    XREF    _LVOException
  433. *    XREF    _LVODispatch
  434. *    XREF    _LVOSwitch
  435. *    XREF    _LVOReschedule
  436. *    XREF    _LVOSchedule
  437. *    XREF    _LVOExitIntr
  438. *    XREF    _LVOSupervisor
  439.     XREF    _AbsExecBase
  440.  
  441.  
  442.     END
  443.  
  444.