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