home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 1 / RISC_DISC_1.iso / pd_share / code / oslib / Hdr / Buffer < prev    next >
Encoding:
Text File  |  1994-07-01  |  5.7 KB  |  223 lines

  1. ;AAsm header file for Buffer
  2. ;written by DefMod (Jul  1 1994) on Fri Jul  1 16:26:16 1994
  3.  
  4.         [       :LNOT: :DEF: Get_Types
  5.         GBLS    Get_Types
  6. Get_Types                       SETS    "GET OS:Hdr.Types"
  7.         |
  8. Get_Types                       SETS    ""
  9.         ]
  10.         $Get_Types
  11.  
  12.         [       :LNOT: :DEF: Get_OS
  13.         GBLS    Get_OS
  14. Get_OS                          SETS    "GET OS:Hdr.OS"
  15.         |
  16. Get_OS                          SETS    ""
  17.         ]
  18.         $Get_OS
  19.  
  20.         [       :LNOT: :DEF: Buffer_Hdr
  21.         GBLS    Buffer_Hdr
  22.  
  23. ;Symbols for constants
  24. Buffer_Keyboard                 *       0
  25. Buffer_RS423Input               *       1
  26. Buffer_RS423Output              *       2
  27. Buffer_Printer                  *       3
  28. Buffer_SoundChannel0            *       4
  29. Buffer_SoundChannel1            *       5
  30. Buffer_SoundChannel2            *       6
  31. Buffer_SoundChannel3            *       7
  32. Buffer_Speech                   *       8
  33. Buffer_Mouse                    *       9
  34. Buffer_Dormant                  *       &1
  35. Buffer_EventOnEmpty             *       &2
  36. Buffer_EventOnFull              *       &4
  37. Buffer_UpCallOnThreshold        *       &8
  38. Error_BufferManagerBadSWI       *       &20700
  39. Error_BufferManagerTooManyBuffers *       &20700
  40. Error_BufferManagerBadBuffer    *       &20700
  41. Error_BufferManagerInUse        *       &20700
  42. Error_BufferManagerUnableToDetach *       &20700
  43. Error_BufferManagerHandleAlreadyUsed *       &20700
  44. Error_BufferManagerBufferTooSmall *       &20700
  45. Error_BufferManagerBadParm      *       &20700
  46. CnpV_CountEntries               *       &0
  47. CnpV_NumberFree                 *       &20000000
  48. CnpV_Purge                      *       &10000000
  49.  
  50. ;Symbols for structure offsets and sizes
  51. Buffer_B                        *       4 ;abstract type
  52. Buffer_InternalId               *       4 ;abstract type
  53.                                 ^       0
  54. Buffer_MouseData_x              #       Short
  55. Buffer_MouseData_y              #       Short
  56. Buffer_MouseData_buttons        #       Byte
  57. Buffer_MouseData_time           #       4*Byte
  58. Buffer_MouseData                *       @
  59.  
  60.  
  61. ;Symbols for SWI's and SWI reason codes
  62. XBuffer_Create                  *       &62940
  63. Buffer_Create                   *       &42940
  64.    ;Entry
  65.    ;  R0 = flags (Bits)
  66.    ;  R1 = size (Int)
  67.    ;  R2 = b (Buffer_B)
  68.    ;Exit
  69.    ;  R0 = b_out (Buffer_B)
  70.  
  71. XBuffer_Remove                  *       &62941
  72. Buffer_Remove                   *       &42941
  73.    ;Entry
  74.    ;  R0 = b (Buffer_B)
  75.  
  76. XBuffer_Register                *       &62942
  77. Buffer_Register                 *       &42942
  78.    ;Entry
  79.    ;  R0 = flags (Bits)
  80.    ;  R1 = buffer (pointer to data)
  81.    ;  R2 = end (pointer to data)
  82.    ;  R3 = b (Buffer_B)
  83.    ;Exit
  84.    ;  R0 = b_out (Buffer_B)
  85.  
  86. XBuffer_Deregister              *       &62943
  87. Buffer_Deregister               *       &42943
  88.    ;Entry
  89.    ;  R0 = b (Buffer_B)
  90.  
  91. XBuffer_ModifyFlags             *       &62944
  92. Buffer_ModifyFlags              *       &42944
  93.    ;Entry
  94.    ;  R0 = b (Buffer_B)
  95.    ;  R1 = eor_mask (Bits)
  96.    ;  R2 = and_mask (Bits)
  97.  
  98. XBuffer_LinkDevice              *       &62945
  99. Buffer_LinkDevice               *       &42945
  100.    ;Entry
  101.    ;  R0 = b (Buffer_B)
  102.    ;  R1 -> wakeup_code (code)
  103.    ;  R2 -> owner_change_code (code)
  104.    ;  R3 = handle (Int)
  105.    ;  R4 = workspace (pointer to Void)
  106.  
  107. XBuffer_UnlinkDevice            *       &62946
  108. Buffer_UnlinkDevice             *       &42946
  109.    ;Entry
  110.    ;  R0 = b (Buffer_B)
  111.  
  112. XBuffer_GetInfo                 *       &62947
  113. Buffer_GetInfo                  *       &42947
  114.    ;Entry
  115.    ;  R0 = b (Buffer_B)
  116.    ;Exit
  117.    ;  R0 = flags (Bits)
  118.    ;  R1 = buffer (pointer to data)
  119.    ;  R2 = end (pointer to data)
  120.    ;  R3 = insertion_point (Int)
  121.    ;  R4 = removal_point (Int)
  122.    ;  R5 = spare (Int)
  123.    ;  R6 = used (Int)
  124.  
  125. XBuffer_Threshold               *       &62948
  126. Buffer_Threshold                *       &42948
  127.    ;Entry
  128.    ;  R0 = b (Buffer_B)
  129.    ;  R1 = threshold (Int)
  130.    ;Exit
  131.    ;  R1 = old_threshold (Int)
  132.  
  133. XBuffer_InternalInfo            *       &62949
  134. Buffer_InternalInfo             *       &42949
  135.    ;Entry
  136.    ;  R0 = b (Buffer_B)
  137.    ;Exit
  138.    ;  R0 = id (Buffer_InternalId)
  139.    ;  R1 -> service_routine (code)
  140.    ;  R2 = workspace (pointer to Void)
  141.  
  142. InsV                            *       &14
  143.    ;Entry
  144.    ;  R0 = b (Byte)
  145.    ;  R1 = buffer_no (Int)
  146.    ;  R9 = &14
  147.    ;Exit
  148.    ;  R2 corrupted
  149.  
  150. InsV_Block                      *       &14
  151.    ;Entry
  152.    ;  R1 = &80000000 :OR: buffer_no (Int)
  153.    ;  R2 -> data (data)
  154.    ;  R3 = size (Int)
  155.    ;  R9 = &14
  156.    ;Exit
  157.    ;  R2 -> end (Byte)
  158.    ;  R3 corrupted
  159.  
  160. RemV                            *       &15
  161.    ;Entry
  162.    ;  R1 = buffer_no (Int)
  163.    ;  R9 = &15
  164.    ;Exit
  165.    ;  R0 = examined_b (Byte)
  166.    ;  R2 = removed_b (Byte)
  167.  
  168. RemV_Block                      *       &15
  169.    ;Entry
  170.    ;  R1 = &80000000 :OR: buffer_no (Int)
  171.    ;  R2 = buffer (pointer to data)
  172.    ;  R3 = byte_count (Int)
  173.    ;  R9 = &15
  174.    ;Exit
  175.    ;  R2 -> end (Byte)
  176.    ;  R3 = spare (Int)
  177.  
  178. CnpV                            *       &16
  179.    ;Entry
  180.    ;  R1 = buffer_no (Int)
  181.    ;  R9 = &16
  182.    ;Exit
  183.    ;  R0 corrupted
  184.    ;  R1 = lo8bits (Bits)
  185.    ;  R2 = hi24bits (Bits)
  186.  
  187. Service_BufferStarting          *       &6F
  188.    ;Entry
  189.    ;  R1 = &6F
  190.  
  191. Event_OutputBufferEmpty         *       &0
  192.    ;Entry
  193.    ;  R0 = &0
  194.    ;  R1 = buffer (Int)
  195.  
  196. Event_InputBufferFull           *       &1
  197.    ;Entry
  198.    ;  R0 = &1
  199.    ;  R1 = buffer (Int)
  200.    ;  R2 = b (Byte)
  201.  
  202. Event_InputBufferFullBlockOp    *       &1
  203.    ;Entry
  204.    ;  R0 = &1
  205.    ;  R1 = &80000000 :OR: buffer (Int)
  206.    ;  R2 -> data (data)
  207.    ;  R3 = count (Int)
  208.  
  209. UpCall_BufferFilling            *       &8
  210.    ;Entry
  211.    ;  R0 = &8
  212.    ;  R1 = b (Buffer_B)
  213.    ;  R2 = &0
  214.  
  215. UpCall_BufferEmptying           *       &9
  216.    ;Entry
  217.    ;  R0 = &9
  218.    ;  R1 = b (Buffer_B)
  219.    ;  R2 = &FFFFFFFF
  220.  
  221.         ]
  222.         END
  223.