home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / Programming / MultiDesktop / desk / bak / desklib.asm < prev    next >
Encoding:
Assembly Source File  |  1997-03-27  |  13.6 KB  |  995 lines

  1.  ; MultiDesktop-Library 10. April 1995
  2.  
  3.  include "exec/types.i"
  4.  include "exec/initializers.i"
  5.  include "exec/libraries.i"
  6.  include "exec/lists.i"
  7.  include "exec/nodes.i"
  8.  include "exec/resident.i"
  9.  include "exec/alerts.i"
  10.  include "exec/memory.i"
  11.  include "exec/tasks.i"
  12.  include "exec/execbase.i"
  13.  
  14.  include "multidesktop.i"
  15.  
  16. CALLSYS  MACRO
  17.  jsr _LVO%1(a6)
  18.  endm
  19.  
  20. XLIB  MACRO
  21.  xref _LVO%1
  22.  endm
  23.  
  24.  XLIB FreeMem
  25.  XLIB Remove
  26.  XLIB CreateIORequest
  27.  XLIB DeleteIORequest
  28.  
  29.  XREF _InitDesktopUser
  30.  XREF _TerminateDesktopUser
  31.  XREF _DesktopStartup
  32.  XREF _DesktopExit
  33.  XREF _TerminateTask
  34.  
  35.  XREF _OldError
  36.  XREF _GetLStr
  37.  XREF _ErrorL
  38.  XREF _MultiRequest
  39.  XREF _ErrorRequest
  40.  XREF _OkayRequest
  41.  
  42.  XREF _SleepPointer
  43.  XREF _SyncRun
  44.  XREF _ASyncRun
  45.  
  46.  XREF _CreateTask
  47.  XREF _CreateNewProcess
  48.  XREF _CreatePort
  49.  XREF _DeletePort
  50.  
  51.  XREF _GetMem
  52.  XREF _DisposeMem
  53.  
  54.  XREF _AllocMemory
  55.  XREF _AllocAlignedMemory
  56.  XREF _FreeMemory
  57.  XREF _FreeMemoryBlock
  58.  
  59.  XREF _FindID
  60.  
  61.  XREF _NewList
  62.  XREF _FindNode
  63.  XREF _CountNodes
  64.  XREF _SortList
  65.  XREF _InsertSort
  66.  XREF _DupList
  67.  XREF _ConcatList
  68.  XREF _CopyConcatList
  69.  XREF _FreeList
  70.  XREF _StrIsGreaterThan
  71.  XREF _StrIsLessThan
  72.  
  73.  XREF _InitHook
  74.  XREF _GetTextID
  75.  XREF _OpenDevLibrary
  76.  XREF _CloseDevLibrary
  77.  
  78.  XREF _Time2Seconds
  79.  XREF _Seconds2Time
  80.  XREF _StarDate2Seconds
  81.  XREF _Seconds2StarDate
  82.  XREF _GetTime
  83.  XREF _SetTime
  84.  XREF _GetBattClockTime
  85.  XREF _SetBattClockTime
  86.  XREF _AddTimes
  87.  XREF _SubTimes
  88.  XREF _CompareTimes
  89.  XREF _WaitTime
  90.  XREF _SetAlarm
  91.  XREF _CheckAlarm
  92.  XREF _WaitAlarm
  93.  XREF _AbortAlarm
  94.  XREF _InitTime
  95.  
  96.  XREF _AvailSignals
  97.  XREF _AvailTraps
  98.  
  99.  XREF _GetError
  100.  XREF _GetGuru
  101.  XREF _SetError
  102.  XREF _SetGuru
  103.  XREF _NoMemory
  104.  XREF _GetTermProcedure
  105.  XREF _GetSysTermProcedure
  106.  XREF _SetTermProcedure
  107.  XREF _SetSysTermProcedure
  108.  XREF _Terminate
  109.  XREF _Guru
  110.  
  111.  XREF _Halt
  112.  XREF _Pause
  113.  
  114.  XREF _BreakOn
  115.  XREF _BreakOff
  116.  
  117.  XREF _AvailChipMem
  118.  XREF _AvailFastMem
  119.  XREF _AvailVMem
  120.  XREF _AvailPublicMem
  121.  XREF _AvailMemory
  122.  
  123.  XREF _InitLib
  124.  XREF _RemoveLib
  125.  
  126. Version   equ 38
  127. Revision  equ 0
  128. Pri       equ 5
  129.  
  130. Start:
  131.  moveq #0,d0
  132.  rts
  133.  
  134. Resident:
  135.  dc.w RTC_MATCHWORD
  136.  dc.l Resident
  137.  dc.l EndCode
  138.  dc.b RTF_AUTOINIT
  139.  dc.b Version
  140.  dc.b NT_LIBRARY
  141.  dc.b Pri
  142.  dc.l LibName
  143.  dc.l idString
  144.  dc.l Init
  145.  
  146. LibName:  dc.b 'multidesktop.library',0
  147. verID:    dc.b '$VER: multidesktop.library 1.00 (Aug 21 1995) - Copyright (C) 1995 by Thomas Dreibholz',0
  148. idString: dc.b 'multidesktop.library 38.00 (Aug 21 1995)',13,10,0
  149.  
  150.  even
  151.  public _SleepPointerData
  152. _SleepPointerData:
  153.  dc.w   0,0
  154.  dc.w  %0000011000000000,%0000011000000000
  155.  dc.w  %0000111101000000,%0000111101000000
  156.  dc.w  %0011111111100000,%0011111111100000
  157.  dc.w  %0111111111100000,%0111111111100000
  158.  dc.w  %0111111111110000,%0110000111110000
  159.  dc.w  %0111111111111000,%0111101111111000
  160.  dc.w  %1111111111111000,%1111011111111000
  161.  dc.w  %0111111111111100,%0110000111111100
  162.  dc.w  %0111111111111100,%0111111100001100
  163.  dc.w  %0011111111111110,%0011111111011110
  164.  dc.w  %0111111111111100,%0111111110111100
  165.  dc.w  %0011111111111100,%0011111100001100
  166.  dc.w  %0001111111111000,%0001111111111000
  167.  dc.w  %0000011111110000,%0000011111110000
  168.  dc.w  %0000000111000000,%0000000111000000
  169.  dc.w  %0000011100000000,%0000011100000000
  170.  dc.w  %0000111111000000,%0000111111000000
  171.  dc.w  %0000011010000000,%0000011010000000
  172.  dc.w  %0000000000000000,%0000000000000000
  173.  dc.w  %0000000011000000,%0000000011000000
  174.  dc.w  %0000000011100000,%0000000011100000
  175.  dc.w  %0000000001000000,%0000000001000000
  176.  dc.w  0,0
  177. _SleepPointerEnd:
  178.  public _SleepPointerSize
  179. _SleepPointerSize:
  180.  dc.l _SleepPointerEnd-_SleepPointerData
  181.  even
  182.  
  183. EndCode:
  184.  
  185. Init:
  186.  dc.l MultiDesktopLib_SIZEOF
  187.  dc.l FuncTable
  188.  dc.l DataTable
  189.  dc.l InitRoutine
  190.  
  191. FuncTable:
  192.  dc.l Open
  193.  dc.l Close
  194.  dc.l Expunge
  195.  dc.l Null
  196.  
  197.  dc.l .InitDesktopUser
  198.  dc.l .TerminateDesktopUser
  199.  dc.l .DesktopStartup
  200.  dc.l .DesktopExit
  201.  dc.l .TerminateTask
  202.  
  203.  dc.l .ThisTask
  204.  dc.l .ThisUser
  205.  
  206.  dc.l .OldError
  207.  
  208.  dc.l .GetLStr
  209.  dc.l .GetTextID
  210.  dc.l .FindID
  211.  dc.l .StrIsGreaterThan
  212.  dc.l .StrIsLessThan
  213.  
  214.  dc.l .MultiRequest
  215.  dc.l .OkayRequest
  216.  dc.l .ErrorRequest
  217.  dc.l .ErrorL
  218.  
  219.  dc.l .SleepPointer
  220.  dc.l .SyncRun
  221.  dc.l .ASyncRun
  222.  
  223.  dc.l .CreateNewTask
  224.  dc.l .CreateNewProcess
  225.  dc.l .CreateStdIO
  226.  dc.l .DeleteExtIO
  227.  dc.l .CreateExtIO
  228.  dc.l .DeleteExtIO
  229.  dc.l .CreatePort
  230.  dc.l .DeletePort
  231.  
  232.  dc.l .GetMem
  233.  dc.l .DisposeMem
  234.  
  235.  dc.l .AllocMemory
  236.  dc.l .AllocAlignedMemory
  237.  dc.l .FreeMemory
  238.  dc.l .FreeMemoryBlock
  239.  dc.l .ClearMem
  240.  dc.l .ClearMemQuick
  241.  
  242.  dc.l .NewList
  243.  dc.l .FindNode
  244.  dc.l .CountNodes
  245.  dc.l .SortList
  246.  dc.l .InsertSort
  247.  dc.l .DupList
  248.  dc.l .ConcatList
  249.  dc.l .CopyConcatList
  250.  dc.l .FreeList
  251.  
  252.  dc.l .InitHook
  253.  dc.l .OpenDevLibrary
  254.  dc.l .CloseDevLibrary
  255.  dc.l .GetFunction
  256.  
  257.  dc.l .Time2Seconds
  258.  dc.l .Seconds2Time
  259.  dc.l .StarDate2Seconds
  260.  dc.l .Seconds2StarDate
  261.  dc.l .GetTime
  262.  dc.l .SetTime
  263.  dc.l .GetBattClockTime
  264.  dc.l .SetBattClockTime
  265.  dc.l .AddTimes
  266.  dc.l .SubTimes
  267.  dc.l .CompareTimes
  268.  dc.l .WaitTime
  269.  dc.l .SetAlarm
  270.  dc.l .CheckAlarm
  271.  dc.l .WaitAlarm
  272.  dc.l .AbortAlarm
  273.  dc.l .InitTime
  274.  
  275.  dc.l .GetError
  276.  dc.l .GetGuru
  277.  dc.l .SetError
  278.  dc.l .SetGuru
  279.  dc.l .NoMemory
  280.  
  281.  dc.l .GetTermProcedure
  282.  dc.l .GetSysTermProcedure
  283.  dc.l .SetTermProcedure
  284.  dc.l .SetSysTermProcedure
  285.  dc.l .Terminate
  286.  dc.l .Guru
  287.  dc.l _Trap
  288.  dc.l .Halt
  289.  dc.l .Pause
  290.  
  291.  dc.l .BreakOn
  292.  dc.l .BreakOff
  293.  
  294.  dc.l .AvailSignals
  295.  dc.l .AvailTraps
  296.  
  297.  dc.l .AvailChipMem
  298.  dc.l .AvailFastMem
  299.  dc.l .AvailVMem
  300.  dc.l .AvailPublicMem
  301.  dc.l .AvailMemory
  302.  
  303.  dc.l -1
  304.  
  305. DataTable:
  306.  INITBYTE LH_TYPE,NT_LIBRARY
  307.  INITLONG LN_NAME,LibName
  308.  INITBYTE LIB_FLAGS,LIBF_SUMUSED!LIBF_CHANGED
  309.  INITWORD LIB_VERSION,Version
  310.  INITWORD LIB_REVISION,Revision
  311.  INITLONG LIB_IDSTRING,idString
  312.  dc.l 0
  313.  
  314. InitRoutine:
  315.  move.l a5,-(a7)
  316.  move.l d0,a5
  317.  move.l a5,_MultiDesktopBase
  318.  move.l a6,mdl_SysLib(a5)
  319.  move.l a0,mdl_SegList(a5)
  320.  move.l $4,_SysBase
  321.  
  322.  movem.l d1-d7/a0-a6,-(sp)
  323.  jsr _InitLib(pc)
  324.  movem.l (sp)+,d1-d7/a0-a6
  325.  tst.l d0
  326.  beq InitRoutine_end
  327.  
  328.  move.l a5,d0
  329. InitRoutine_end:
  330.  move.l (a7)+,a5
  331.  rts
  332.  
  333. Open:
  334.  movem.l d1-d7/a0-a6,-(sp)
  335.  clr.l -(sp)
  336.  jsr _InitDesktopUser(pc)
  337.  addq.w #4,sp
  338.  movem.l (sp)+,d1-d7/a0-a6
  339.  tst.l d0
  340.  beq Open_end
  341.  
  342.  addq.w #1,LIB_OPENCNT(a6)
  343.  bclr #LIBB_DELEXP,mdl_Flags(a6)
  344.  move.l a6,d0
  345.  
  346. Open_end:
  347.  rts
  348.  
  349. Close:
  350.  movem.l d1-d7/a0-a6,-(sp)
  351.  clr.l -(sp)
  352.  jsr _TerminateDesktopUser(pc)
  353.  addq.w #4,sp
  354.  movem.l (sp)+,d1-d7/a0-a6
  355.  
  356.  clr.l d0
  357.  subq.w #1,LIB_OPENCNT(a6)
  358.  bne.s 1$
  359.  btst #LIBB_DELEXP,mdl_Flags(a5)
  360.  beq.s 1$
  361.  bsr Expunge
  362. 1$:
  363.  rts
  364.  
  365. Expunge:
  366.  ; Library aus dem Speicher entfernen
  367.  
  368.  movem.l d2/a5-a6,-(a7)
  369.  move.l a6,a5
  370.  move.l mdl_SysLib(a5),a6
  371.  tst.w LIB_OPENCNT(a5)
  372.  beq.s 1$
  373.  bset #LIBB_DELEXP,mdl_Flags(a5)
  374.  clr.l d0
  375.  bra Expunge_end
  376. 1$:
  377.  move.l mdl_SegList(a5),d2
  378.  move.l a5,a1
  379.  CALLSYS Remove
  380.  clr.l d0
  381.  
  382.  movem.l d1-d7/a0-a6,-(sp)
  383.  jsr _RemoveLib(pc)
  384.  movem.l (sp)+,d1-d7/a0-a6
  385.  
  386.  move.l a5,a1
  387.  move.w LIB_NEGSIZE(a5),d0
  388.  sub.l d0,a1
  389.  add.w LIB_POSSIZE(a5),d0
  390.  CALLSYS FreeMem
  391.  move.l d2,d0
  392. Expunge_end:
  393.  movem.l (a7)+,d2/a5-a6
  394.  rts
  395.  
  396. Null:
  397.  moveq #0,d0
  398.  rts
  399.  
  400.  public _Trap
  401. _Trap:
  402.  move.l 4(sp),d0
  403.  cmp.b #16,d0
  404.  bge _Trap.end
  405.  
  406.  cmp.b #0,d0
  407.  bne 1$
  408.  trap #0
  409.  jmp _Trap.end
  410. 1$:
  411.  
  412.  cmp.b #1,d0
  413.  bne 2$
  414.  trap #1
  415.  jmp _Trap.end
  416. 2$:
  417.  
  418.  cmp.b #2,d0
  419.  bne 3$
  420.  trap #2
  421.  jmp _Trap.end
  422. 3$:
  423.  
  424.  cmp.b #3,d0
  425.  bne 4$
  426.  trap #3
  427.  jmp _Trap.end
  428. 4$:
  429.  
  430.  cmp.b #4,d0
  431.  bne 5$
  432.  trap #4
  433.  jmp _Trap.end
  434. 5$:
  435.  
  436.  cmp.b #5,d0
  437.  bne 6$
  438.  trap #5
  439.  jmp _Trap.end
  440. 6$:
  441.  
  442.  cmp.b #6,d0
  443.  bne 7$
  444.  trap #6
  445.  jmp _Trap.end
  446. 7$:
  447.  
  448.  cmp.b #7,d0
  449.  bne 8$
  450.  trap #7
  451.  jmp _Trap.end
  452. 8$:
  453.  
  454.  cmp.b #8,d0
  455.  bne 9$
  456.  trap #8
  457.  jmp _Trap.end
  458. 9$:
  459.  
  460.  cmp.b #9,d0
  461.  bne 10$
  462.  trap #9
  463.  jmp _Trap.end
  464. 10$:
  465.  
  466.  cmp.b #10,d0
  467.  bne 11$
  468.  trap #10
  469.  jmp _Trap.end
  470. 11$:
  471.  
  472.  cmp.b #11,d0
  473.  bne 12$
  474.  trap #11
  475.  jmp _Trap.end
  476. 12$:
  477.  
  478.  cmp.b #12,d0
  479.  bne 13$
  480.  trap #12
  481.  jmp _Trap.end
  482. 13$:
  483.  
  484.  cmp.b #13,d0
  485.  bne 14$
  486.  trap #13
  487.  jmp _Trap.end
  488. 14$:
  489.  
  490.  cmp.b #14,d0
  491.  bne 15$
  492.  trap #14
  493.  jmp _Trap.end
  494. 15$:
  495.  
  496.  trap #15
  497.  
  498. _Trap.end
  499.  rts
  500.  
  501. .InitDesktopUser:
  502.  move.l a0,-(sp)
  503.  jsr _InitDesktopUser(pc)
  504.  addq.l #4,sp
  505.  rts
  506.  
  507. .TerminateDesktopUser:
  508.  move.l a0,-(sp)
  509.  jsr _TerminateDesktopUser(pc)
  510.  addq.l #4,sp
  511.  rts
  512.  
  513. .DesktopStartup:
  514.  move.l d0,-(sp)
  515.  move.l a0,-(sp)
  516.  jsr _DesktopStartup(pc)
  517.  addq.l #8,sp
  518.  rts
  519.  
  520. .DesktopExit:
  521.  jmp _DesktopExit(pc)
  522.  
  523. .TerminateTask:
  524.  move.l a0,-(sp)
  525.  jsr _TerminateTask(pc)
  526.  addq.l #4,sp
  527.  rts
  528.  
  529. .OldError:
  530.  move.l a0,-(sp)
  531.  jsr _OldError(pc)
  532.  addq.l #4,sp
  533.  rts
  534.  
  535. .GetLStr:
  536.  movem.l a0/d0,-(sp)
  537.  jsr _GetLStr(pc)
  538.  addq.l #8,sp
  539.  rts
  540.  
  541. .ErrorL:
  542.  movem.l a0/d0,-(sp)
  543.  jsr _ErrorL(pc)
  544.  addq.l #8,sp
  545.  rts
  546.  
  547. .MultiRequest:
  548.  movem.l a2/a1/a0,-(sp)
  549.  jsr _MultiRequest(pc)
  550.  lea 12(sp),sp
  551.  rts
  552.  
  553. .ErrorRequest:
  554.  movem.l a2/a1/a0,-(sp)
  555.  jsr _ErrorRequest(pc)
  556.  lea 12(sp),sp
  557.  rts
  558.  
  559. .OkayRequest:
  560.  move.l a0,-(sp)
  561.  jsr _OkayRequest(pc)
  562.  addq.l #4,sp
  563.  rts
  564.  
  565. .SleepPointer:
  566.  move.l a0,-(sp)
  567.  jsr _SleepPointer(pc)
  568.  addq.l #4,sp
  569.  rts
  570.  
  571. .SyncRun:
  572.  move.l a0,-(sp)
  573.  jsr _SyncRun(pc)
  574.  addq.l #4,sp
  575.  rts
  576.  
  577. .ASyncRun:
  578.  move.l a0,-(sp)
  579.  jsr _ASyncRun(pc)
  580.  addq.l #4,sp
  581.  rts
  582.  
  583. .CreateNewTask:
  584.  move.l a1,-(sp)
  585.  move.l d1,-(sp)
  586.  move.l a0,-(sp)
  587.  move.l d0,-(sp)
  588.  jsr _CreateTask(pc)
  589.  lea 16(sp),sp
  590.  rts
  591.  
  592. .CreateNewProcess:
  593.  move.l d1,-(sp)
  594.  move.l a1,-(sp)
  595.  move.l d0,-(sp)
  596.  move.l a0,-(sp)
  597.  jsr _CreateNewProcess(pc)
  598.  lea 16(sp),sp
  599.  rts
  600.  
  601. .CreateExtIO:
  602.  move.l a6,-(sp)
  603.  move.l $4,a6
  604.  CALLSYS CreateIORequest
  605.  move.l (sp)+,a6
  606.  rts
  607.  
  608. .DeleteExtIO:
  609.  move.l a6,-(sp)
  610.  move.l $4,a6
  611.  CALLSYS DeleteIORequest
  612.  move.l (sp)+,a6
  613.  rts
  614.  
  615. .CreateStdIO:
  616.  move.l #42,d0
  617.  jsr .CreateExtIO
  618.  rts
  619.  
  620. .CreatePort:
  621.  move.l d0,-(sp)
  622.  move.l a0,-(sp)
  623.  jsr _CreatePort(pc)
  624.  addq.l #8,sp
  625.  rts
  626.  
  627. .DeletePort:
  628.  move.l a0,-(sp)
  629.  jsr _DeletePort(pc)
  630.  addq.l #4,sp
  631.  rts
  632.  
  633. .NewList:
  634.  move.l a0,-(sp)
  635.  jsr _NewList(pc)
  636.  addq.l #4,sp
  637.  rts
  638.  
  639. .ThisTask:
  640.  move.l a6,-(sp)
  641.  move.l $4,a6
  642.  move.l ThisTask(a6),d0
  643.  move.l (sp)+,a6
  644.  rts
  645.  
  646. .ThisUser:
  647.  move.l a6,-(sp)
  648.  move.l $4,a6
  649.  move.l ThisTask(a6),a6
  650.  move.l TC_Userdata(a6),d0
  651.  move.l (sp)+,a6
  652.  rts
  653.  
  654. .GetMem:
  655.  movem.l d1/d0,-(sp)
  656.  jsr _GetMem(pc)
  657.  addq.l #8,sp
  658.  rts
  659.  
  660. .DisposeMem:
  661.  move.l a0,-(sp)
  662.  jsr _DisposeMem(pc)
  663.  addq.l #4,sp
  664.  rts
  665.  
  666. .AllocMemory:
  667.  movem.l d1/d0,-(sp)
  668.  move.l a0,-(sp)
  669.  jsr _AllocMemory(pc)
  670.  lea 12(sp),sp
  671.  rts
  672.  
  673. .AllocAlignedMemory:
  674.  movem.l d2/d1/d0,-(sp)
  675.  move.l a0,-(sp)
  676.  jsr _AllocAlignedMemory(pc)
  677.  lea 16(sp),sp
  678.  rts
  679.  
  680. .FreeMemory:
  681.  move.l a0,-(sp)
  682.  jsr _FreeMemory(pc)
  683.  addq.l #4,sp
  684.  rts
  685.  
  686. .FreeMemoryBlock:
  687.  movem.l a1/a0,-(sp)
  688.  jsr _FreeMemoryBlock(pc)
  689.  addq.l #8,sp
  690.  rts
  691.  
  692. .ClearMem:
  693.  movem.l a0/d0,-(sp)
  694. 1$:
  695.  move.b #0,(a0)+
  696.  sub.l #1,d0
  697.  tst.l d0
  698.  bne 1$
  699.  movem.l (sp)+,a0/d0
  700.  rts
  701.  
  702. .ClearMemQuick:
  703.  movem.l a0/d0,-(sp)
  704. 1$:
  705.  move.l #0,(a0)+
  706.  sub.l #4,d0
  707.  tst.l d0
  708.  bne 1$
  709.  movem.l (sp)+,a0/d0
  710.  rts
  711.  
  712. .FindID:
  713.  move.l d0,-(sp)
  714.  move.l a1,-(sp)
  715.  jsr _FindID(pc)
  716.  addq.l #8,sp
  717.  rts
  718.  
  719. .FindNode:
  720.  move.l d0,-(sp)
  721.  move.l a0,-(sp)
  722.  jsr _FindNode(pc)
  723.  addq.l #8,sp
  724.  rts
  725.  
  726. .CountNodes:
  727.  move.l a0,-(sp)
  728.  jsr _CountNodes(pc)
  729.  addq.l #4,sp
  730.  rts
  731.  
  732. .SortList:
  733.  move.l d0,-(sp)
  734.  move.l a0,-(sp)
  735.  jsr _SortList(pc)
  736.  addq.l #8,sp
  737.  rts
  738.  
  739. .InsertSort:
  740.  move.l d0,-(sp)
  741.  movem.l a1/a0,-(sp)
  742.  jsr _InsertSort(pc)
  743.  lea 12(sp),sp
  744.  rts
  745.  
  746. .DupList:
  747.  move.l d0,-(sp)
  748.  move.l a0,-(sp)
  749.  jsr _DupList(pc)
  750.  addq.l #8,sp
  751.  rts
  752.  
  753. .ConcatList:
  754.  movem.l a1/a0,-(sp)
  755.  jsr _ConcatList(pc)
  756.  addq.l #8,sp
  757.  rts
  758.  
  759. .CopyConcatList:
  760.  movem.l a1/a0,-(sp)
  761.  jsr _CopyConcatList(pc)
  762.  addq.l #8,sp
  763.  rts
  764.  
  765. .FreeList:
  766.  move.l a0,-(sp)
  767.  jsr _FreeList(pc)
  768.  addq.l #4,sp
  769.  rts
  770.  
  771. .StrIsGreaterThan:
  772.  movem.l a1/a0,-(sp)
  773.  jsr _StrIsGreaterThan(pc)
  774.  addq.l #8,sp
  775.  rts
  776.  
  777. .StrIsLessThan:
  778.  movem.l a1/a0,-(sp)
  779.  jsr _StrIsLessThan(pc)
  780.  addq.l #8,sp
  781.  rts
  782.  
  783. .InitHook:
  784.  movem.l a2/a1/a0,-(sp)
  785.  jsr _InitHook(pc)
  786.  lea 12(sp),sp
  787.  rts
  788.  
  789. .GetTextID:
  790.  move.l a0,-(sp)
  791.  jsr _GetTextID(pc)
  792.  addq.l #4,sp
  793.  rts
  794.  
  795. .OpenDevLibrary:
  796.  move.l d0,-(sp)
  797.  move.l a0,-(sp)
  798.  jsr _OpenDevLibrary(pc)
  799.  addq.l #8,sp
  800.  rts
  801.  
  802. .CloseDevLibrary:
  803.  move.l a0,-(sp)
  804.  jsr _CloseDevLibrary(pc)
  805.  addq.l #4,sp
  806.  rts
  807.  
  808. .Time2Seconds:
  809.  move.l a0,-(sp)
  810.  jsr _Time2Seconds(pc)
  811.  addq.l #4,sp
  812.  rts
  813.  
  814. .Seconds2Time:
  815.  movem.l a0/d0,-(sp)
  816.  jsr _Seconds2Time(pc)
  817.  addq.l #8,sp
  818.  rts
  819.  
  820. .StarDate2Seconds:
  821.  move.l d0,-(sp)
  822.  jsr _StarDate2Seconds(pc)
  823.  addq.l #4,sp
  824.  rts
  825.  
  826. .Seconds2StarDate:
  827.  movem.l a0/d0,-(sp)
  828.  jsr _Seconds2StarDate(pc)
  829.  addq.l #8,sp
  830.  rts
  831.  
  832. .GetTime:
  833.  move.l a0,-(sp)
  834.  jsr _GetTime(pc)
  835.  addq.l #4,sp
  836.  rts
  837.  
  838. .SetTime:
  839.  move.l a0,-(sp)
  840.  jsr _SetTime(pc)
  841.  addq.l #4,sp
  842.  rts
  843.  
  844. .GetBattClockTime:
  845.  move.l a0,-(sp)
  846.  jsr _GetBattClockTime(pc)
  847.  addq.l #4,sp
  848.  rts
  849.  
  850. .SetBattClockTime:
  851.  move.l a0,-(sp)
  852.  jsr _SetBattClockTime(pc)
  853.  addq.l #4,sp
  854.  rts
  855.  
  856. .AddTimes:
  857.  movem.l a1/a0,-(sp)
  858.  jsr _AddTimes(pc)
  859.  addq.l #8,sp
  860.  rts
  861.  
  862. .SubTimes:
  863.  movem.l a1/a0,-(sp)
  864.  jsr _SubTimes(pc)
  865.  addq.l #8,sp
  866.  rts
  867.  
  868. .CompareTimes:
  869.  movem.l a1/a0,-(sp)
  870.  jsr _CompareTimes(pc)
  871.  addq.l #8,sp
  872.  rts
  873.  
  874. .WaitTime:
  875.  move.l d0,-(sp)
  876.  jsr _WaitTime(pc)
  877.  addq.l #4,sp
  878.  rts
  879.  
  880. .SetAlarm:
  881.  move.l d0,-(sp)
  882.  jsr _SetAlarm(pc)
  883.  addq.l #4,sp
  884.  rts
  885.  
  886. .CheckAlarm:
  887.  jmp _CheckAlarm(pc)
  888.  
  889. .WaitAlarm:
  890.  jmp _WaitAlarm(pc)
  891.  
  892. .AbortAlarm:
  893.  jmp _AbortAlarm(pc)
  894.  
  895. .InitTime:
  896.  movem.l d5/d4/d3/d2/d1/d0,-(sp)
  897.  move.l a0,-(sp)
  898.  jsr _InitTime(pc)
  899.  lea 28(sp),sp
  900.  rts
  901.  
  902. .GetError:
  903.  jmp _GetError(pc)
  904.  
  905. .GetGuru:
  906.  jmp _GetGuru(pc)
  907.  
  908. .SetError:
  909.  move.l d0,-(sp)
  910.  jsr _SetError(pc)
  911.  addq.l #4,sp
  912.  rts
  913.  
  914. .SetGuru:
  915.  move.l d0,-(sp)
  916.  jsr _SetGuru(pc)
  917.  addq.l #4,sp
  918.  rts
  919.  
  920. .NoMemory:
  921.  jmp _NoMemory(pc)
  922.  
  923. .GetTermProcedure:
  924.  jmp _GetTermProcedure(pc)
  925.  
  926. .GetSysTermProcedure:
  927.  jmp _GetSysTermProcedure(pc)
  928.  
  929. .SetTermProcedure:
  930.  move.l a0,-(sp)
  931.  jsr _SetTermProcedure(pc)
  932.  addq.l #4,sp
  933.  rts
  934.  
  935. .SetSysTermProcedure:
  936.  move.l a0,-(sp)
  937.  jsr _SetTermProcedure(pc)
  938.  addq.l #4,sp
  939.  rts
  940.  
  941. .Terminate:
  942.  jmp _Terminate(pc)
  943.  
  944. .Guru:
  945.  jmp _Guru(pc)
  946.  
  947. .AvailSignals:
  948.  move.l a0,-(sp)
  949.  jsr _AvailSignals(pc)
  950.  addq.l #4,sp
  951.  rts
  952.  
  953. .AvailTraps:
  954.  move.l a0,-(sp)
  955.  jsr _AvailTraps(pc)
  956.  addq.l #4,sp
  957.  rts
  958.  
  959. .Halt:
  960.  jmp _Halt(pc)
  961.  
  962. .Pause:
  963.  jmp _Pause(pc)
  964.  
  965. .GetFunction:
  966.   move.l 2(a0,d0),d0
  967.   rts
  968.  
  969. .BreakOn:
  970.  jmp _BreakOn(pc)
  971.  
  972. .BreakOff:
  973.  jmp _BreakOff(pc)
  974.  
  975. .AvailChipMem:
  976.  jmp _AvailChipMem(pc)
  977.  
  978. .AvailFastMem:
  979.  jmp _AvailFastMem(pc)
  980.  
  981. .AvailVMem:
  982.  jmp _AvailVMem(pc)
  983.  
  984. .AvailPublicMem:
  985.  jmp _AvailPublicMem(pc)
  986.  
  987. .AvailMemory:
  988.  jmp _AvailMemory(pc)
  989.  
  990.  global _SysBase,4
  991.  global _MultiDesktopBase,4
  992.  
  993.  END
  994.  
  995.