home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / Hdr / OSFSContro < prev    next >
Encoding:
Text File  |  1995-09-05  |  13.2 KB  |  551 lines

  1. ;Assembler header file for OSFSControl
  2. ;written by DefMod (Jun 30 1995) on Tue Sep  5 17:27:05 1995
  3. ;Jonathan Coxhead, Acorn Computers Ltd
  4.  
  5.         [       :LNOT: :DEF: Get_Types
  6.         GBLS    Get_Types
  7.         ]
  8.         [       :LNOT: :DEF: Types_Hdr
  9. Get_Types                       SETS    "GET OS:Hdr.Types"
  10.         |
  11. Get_Types                       SETS    ""
  12.         ]
  13.         $Get_Types
  14.  
  15.         [       :LNOT: :DEF: Get_OS
  16.         GBLS    Get_OS
  17.         ]
  18.         [       :LNOT: :DEF: OS_Hdr
  19. Get_OS                          SETS    "GET OS:Hdr.OS"
  20.         |
  21. Get_OS                          SETS    ""
  22.         ]
  23.         $Get_OS
  24.  
  25.         [       :LNOT: :DEF: Get_FileSwitch
  26.         GBLS    Get_FileSwitch
  27.         ]
  28.         [       :LNOT: :DEF: FileSwitch_Hdr
  29. Get_FileSwitch                  SETS    "GET OS:Hdr.FileSwitch"
  30.         |
  31. Get_FileSwitch                  SETS    ""
  32.         ]
  33.         $Get_FileSwitch
  34.  
  35.         [       :LNOT: :DEF: OSFSControl_Hdr
  36.         GBLS    OSFSControl_Hdr
  37.  
  38. ;Symbols for constants
  39. OSFSControl_OptRestoreDefault   *       0
  40. OSFSControl_OptMessageLevel     *       1
  41. OSFSControl_OptBootAction       *       4
  42. OSFSControl_CopyRecurse         *       &1
  43. OSFSControl_CopyForce           *       &2
  44. OSFSControl_CopyGivenTimes      *       &4
  45. OSFSControl_CopyConfirm         *       &8
  46. OSFSControl_CopyVerbose         *       &10
  47. OSFSControl_CopyQuick           *       &20
  48. OSFSControl_CopyPrompt          *       &40
  49. OSFSControl_CopyDelete          *       &80
  50. OSFSControl_CopyAllowPrint      *       &100
  51. OSFSControl_CopyNoAttributes    *       &200
  52. OSFSControl_CopyStamp           *       &400
  53. OSFSControl_CopyStructure       *       &800
  54. OSFSControl_CopyNewer           *       &1000
  55. OSFSControl_CopyGivenDescriptor *       &2000
  56. OSFSControl_CopyLook            *       &4000
  57. OSFSControl_WipeRecurse         *       &1
  58. OSFSControl_WipeForce           *       &2
  59. OSFSControl_WipeGivenTimes      *       &4
  60. OSFSControl_WipeConfirm         *       &8
  61. OSFSControl_WipeVerbose         *       &10
  62. OSFSControl_WipeAllowPrint      *       &100
  63. OSFSControl_CountRecurse        *       &1
  64. OSFSControl_CountGivenTimes     *       &4
  65. OSFSControl_CountConfirm        *       &8
  66. OSFSControl_CountVerbose        *       &10
  67. OSFSControl_CountAllowPrint     *       &100
  68. OSFSControl_KindFree            *       &0
  69. OSFSControl_KindAllocated       *       &1
  70. OSFSControl_KindFound           *       &2
  71. OSFSControl_KindSharable        *       &3
  72. OSFSControl_DirCSD              *       &0
  73. OSFSControl_DirPSD              *       &1
  74. OSFSControl_DirURD              *       &2
  75. OSFSControl_DirLib              *       &3
  76.  
  77. ;Symbols for structure offsets and sizes
  78. OSFSControl_Id                  *       4 ;abstract type
  79.                                 ^       0
  80. OSFSControl_FSInfoBlock_name_offset #       Int
  81. OSFSControl_FSInfoBlock_banner_offset #       Int
  82. OSFSControl_FSInfoBlock_open_offset #       Int
  83. OSFSControl_FSInfoBlock_get_bytes #       Int
  84. OSFSControl_FSInfoBlock_put_bytes #       Int
  85. OSFSControl_FSInfoBlock_args_offset #       Int
  86. OSFSControl_FSInfoBlock_close_offset #       Int
  87. OSFSControl_FSInfoBlock_file_offset #       Int
  88. OSFSControl_FSInfoBlock_info    #       FileSwitch_FSInfo
  89. OSFSControl_FSInfoBlock_func_offset #       Int
  90. OSFSControl_FSInfoBlock_gbpb_offset #       Int
  91. OSFSControl_FSInfoBlock_extra_info #       FileSwitch_FSExtraInfo
  92. OSFSControl_FSInfoBlock         *       @
  93.  
  94. OSFSControl_CopyFlags           *       Bits
  95.  
  96.                                 ^       0
  97. OSFSControl_Descriptor_addr     #       Ptr
  98. OSFSControl_Descriptor_size     #       Int
  99. OSFSControl_Descriptor          *       @
  100.  
  101. OSFSControl_WipeFlags           *       Bits
  102.  
  103. OSFSControl_CountFlags          *       Bits
  104.  
  105. OSFSControl_ObjectKind          *       Int
  106.  
  107. OSFSControl_SpecialDir          *       Int
  108.  
  109.  
  110. ;Symbols for SWI's and SWI reason codes
  111. XOS_FSControl                   *       &20029
  112. OS_FSControl                    *       &29
  113.  
  114. OSFSControl_Dir                 *       &0
  115.    ;Entry
  116.    ;  R0 = &0
  117.    ;  R1 -> dir_names (String)
  118.  
  119. OSFSControl_Lib                 *       &1
  120.    ;Entry
  121.    ;  R0 = &1
  122.    ;  R1 -> dir_names (String)
  123.  
  124. OSFSControl_StartApplication    *       &2
  125.    ;Entry
  126.    ;  R0 = &2
  127.    ;  R1 -> tail (String)
  128.    ;  R2 = cao (pointer to data)
  129.    ;  R3 -> command (String)
  130.  
  131. OSFSControl_Run                 *       &4
  132.    ;Entry
  133.    ;  R0 = &4
  134.    ;  R1 -> file_names (String)
  135.  
  136. OSFSControl_Cat                 *       &5
  137.    ;Entry
  138.    ;  R0 = &5
  139.    ;  R1 -> dir_names (String)
  140.  
  141. OSFSControl_Ex                  *       &6
  142.    ;Entry
  143.    ;  R0 = &6
  144.    ;  R1 -> dir_names (String)
  145.  
  146. OSFSControl_LCat                *       &7
  147.    ;Entry
  148.    ;  R0 = &7
  149.    ;  R1 -> dir_names (String)
  150.  
  151. OSFSControl_LEx                 *       &8
  152.    ;Entry
  153.    ;  R0 = &8
  154.    ;  R1 -> dir_names (String)
  155.  
  156. OSFSControl_Info                *       &9
  157.    ;Entry
  158.    ;  R0 = &9
  159.    ;  R1 -> file_names (String)
  160.  
  161. OSFSControl_Opt                 *       &A
  162.    ;Entry
  163.    ;  R0 = &A
  164.    ;  R1 = opt (Int)
  165.    ;  R2 = value (Int)
  166.  
  167. OSFSControl_SetTemporaryFS      *       &B
  168.    ;Entry
  169.    ;  R0 = &B
  170.    ;  R1 -> file_name (String)
  171.    ;Exit
  172.    ;  R1 -> file_name_out (String)
  173.    ;  R2 = old_fs_no (FileSwitch_FSNo)
  174.    ;  R3 -> special (String)
  175.  
  176. OSFSControl_AddFS               *       &C
  177.    ;Entry
  178.    ;  R0 = &C
  179.    ;  R1 -> module (data)
  180.    ;  R2 = fs_info_offset (Int)
  181.    ;  R3 = workspace (pointer to Void)
  182.  
  183. OSFSControl_LookupFS            *       &D
  184.    ;Entry
  185.    ;  R0 = &D
  186.    ;  R1 = fs_no_or_name (OSFSControl_Id)
  187.    ;  R2 = control_terminated (Bool)
  188.    ;Exit
  189.    ;  R1 = fs_no_out (FileSwitch_FSNo)
  190.    ;  R2 = fs_found (Bool)
  191.  
  192. OSFSControl_SelectFS            *       &E
  193.    ;Entry
  194.    ;  R0 = &E
  195.    ;  R1 = fs_no_or_name (OSFSControl_Id)
  196.  
  197. OSFSControl_BootFromFS          *       &F
  198.    ;Entry
  199.    ;  R0 = &F
  200.  
  201. OSFSControl_RemoveFS            *       &10
  202.    ;Entry
  203.    ;  R0 = &10
  204.    ;  R1 -> fs_name (String)
  205.  
  206. OSFSControl_AddSecondaryFS      *       &11
  207.    ;Entry
  208.    ;  R0 = &11
  209.    ;  R1 -> fs_name (String)
  210.    ;  R2 -> secondary_name (String)
  211.    ;  R3 = workspace (pointer to Void)
  212.  
  213. OSFSControl_ReadFileType        *       &12
  214.    ;Entry
  215.    ;  R0 = &12
  216.    ;  R2 = file_type (Bits)
  217.    ;Exit
  218.    ;  R2 = name1 (Bits)
  219.    ;  R3 = name2 (Bits)
  220.  
  221. OSFSControl_RestoreCurrent      *       &13
  222.    ;Entry
  223.    ;  R0 = &13
  224.  
  225. OSFSControl_ReadModuleBase      *       &14
  226.    ;Entry
  227.    ;  R0 = &14
  228.    ;Exit
  229.    ;  R1 -> module (data)
  230.    ;  R2 = workspace (pointer to Void)
  231.  
  232. OSFSControl_ReadFSHandle        *       &15
  233.    ;Entry
  234.    ;  R0 = &15
  235.    ;  R1 = file (OS_F)
  236.    ;Exit
  237.    ;  R1 = fs_handle (Int)
  238.    ;  R2 = info_word (Int)
  239.  
  240. OSFSControl_Shut                *       &16
  241.    ;Entry
  242.    ;  R0 = &16
  243.  
  244. OSFSControl_Shutdown            *       &17
  245.    ;Entry
  246.    ;  R0 = &17
  247.  
  248. OSFSControl_Access              *       &18
  249.    ;Entry
  250.    ;  R0 = &18
  251.    ;  R1 -> file_names (String)
  252.    ;  R2 -> access (String)
  253.  
  254. OSFSControl_Rename              *       &19
  255.    ;Entry
  256.    ;  R0 = &19
  257.    ;  R1 -> file_name (String)
  258.    ;  R2 -> new_file_name (String)
  259.  
  260. OSFSControl_Copy                *       &1A
  261.    ;Entry
  262.    ;  R0 = &1A
  263.    ;  R1 -> from (String)
  264.    ;  R2 -> to (String)
  265.    ;  R3 = flags (OSFSControl_CopyFlags)
  266.    ;  R4 = start_load (Bits)
  267.    ;  R5 = start_exec (Bits)
  268.    ;  R6 = end_load (Bits)
  269.    ;  R7 = end_exec (Bits)
  270.    ;  R8 -> descriptor (OSFSControl_Descriptor)
  271.  
  272. OSFSControl_Wipe                *       &1B
  273.    ;Entry
  274.    ;  R0 = &1B
  275.    ;  R1 -> file_names (String)
  276.    ;  R3 = flags (OSFSControl_WipeFlags)
  277.    ;  R4 = start_load (Bits)
  278.    ;  R5 = start_exec (Bits)
  279.    ;  R6 = end_load (Bits)
  280.    ;  R7 = end_exec (Bits)
  281.  
  282. OSFSControl_Count               *       &1C
  283.    ;Entry
  284.    ;  R0 = &1C
  285.    ;  R1 -> file_names (String)
  286.    ;  R3 = flags (OSFSControl_CountFlags)
  287.    ;  R4 = start_load (Bits)
  288.    ;  R5 = start_exec (Bits)
  289.    ;  R6 = end_load (Bits)
  290.    ;  R7 = end_exec (Bits)
  291.    ;Exit
  292.    ;  R2 = byte_count (Int)
  293.    ;  R3 = file_count (Int)
  294.  
  295. OSFSControl_ReadSecondaryFS     *       &1E
  296.    ;Entry
  297.    ;  R0 = &1E
  298.    ;Exit
  299.    ;  R1 -> module (data)
  300.    ;  R2 = workspace (pointer to Void)
  301.  
  302. OSFSControl_FileTypeFromString  *       &1F
  303.    ;Entry
  304.    ;  R0 = &1F
  305.    ;  R1 -> file_type_name (String)
  306.    ;Exit
  307.    ;  R2 = file_type (Bits)
  308.  
  309. OSFSControl_FileInfo            *       &20
  310.    ;Entry
  311.    ;  R0 = &20
  312.    ;  R1 -> file_names (String)
  313.  
  314. OSFSControl_ReadFSName          *       &21
  315.    ;Entry
  316.    ;  R0 = &21
  317.    ;  R1 = fs_no (FileSwitch_FSNo)
  318.    ;  R2 = buffer (pointer to String)
  319.    ;  R3 = size (Int)
  320.  
  321. OSFSControl_RegisterImageFS     *       &23
  322.    ;Entry
  323.    ;  R0 = &23
  324.    ;  R1 -> module (data)
  325.    ;  R2 = fs_info_offset (Int)
  326.    ;  R3 = workspace (pointer to Void)
  327.  
  328. OSFSControl_DeregisterImageFS   *       &24
  329.    ;Entry
  330.    ;  R0 = &24
  331.    ;  R1 = file_type (Bits)
  332.  
  333. OSFSControl_CanonicalisePath    *       &25
  334.    ;Entry
  335.    ;  R0 = &25
  336.    ;  R1 -> path_name (String)
  337.    ;  R2 = buffer (pointer to String)
  338.    ;  R3 -> var (String)
  339.    ;  R4 -> path (String)
  340.    ;  R5 = size (Int)
  341.    ;Exit
  342.    ;  R5 = spare (Int)
  343.  
  344. OSFSControl_InfoToFileType      *       &26
  345.    ;Entry
  346.    ;  R0 = &26
  347.    ;  R1 -> file_name (String)
  348.    ;  R2 = load_addr (Bits)
  349.    ;  R3 = exec_addr (Bits)
  350.    ;  R4 = size (Int)
  351.    ;  R5 = attr (FileSwitch_Attr)
  352.    ;  R6 = obj_type (FileSwitch_ObjectType)
  353.    ;Exit
  354.    ;  R2 = file_type (Bits)
  355.  
  356. OSFSControl_URD                 *       &27
  357.    ;Entry
  358.    ;  R0 = &27
  359.    ;  R1 -> dir_name (String)
  360.  
  361. OSFSControl_Back                *       &28
  362.    ;Entry
  363.    ;  R0 = &28
  364.  
  365. OSFSControl_DefectList          *       &29
  366.    ;Entry
  367.    ;  R0 = &29
  368.    ;  R1 -> image_name (String)
  369.    ;  R2 = buffer (pointer to data)
  370.    ;  R3 = size (Int)
  371.  
  372. OSFSControl_AddDefect           *       &2A
  373.    ;Entry
  374.    ;  R0 = &2A
  375.    ;  R1 -> image_name (String)
  376.    ;  R2 = offset (Int)
  377.  
  378. OSFSControl_NoDir               *       &2B
  379.    ;Entry
  380.    ;  R0 = &2B
  381.  
  382. OSFSControl_NoURD               *       &2C
  383.    ;Entry
  384.    ;  R0 = &2C
  385.  
  386. OSFSControl_NoLib               *       &2D
  387.    ;Entry
  388.    ;  R0 = &2D
  389.  
  390. OSFSControl_UsedSpaceMap        *       &2E
  391.    ;Entry
  392.    ;  R0 = &2E
  393.    ;  R1 -> image_name (String)
  394.    ;  R2 = buffer (pointer to data)
  395.    ;  R3 = size (Int)
  396.  
  397. OSFSControl_ReadBootOption      *       &2F
  398.    ;Entry
  399.    ;  R0 = &2F
  400.    ;  R1 -> file_name (String)
  401.    ;Exit
  402.    ;  R2 = boot_option (Int)
  403.  
  404. OSFSControl_WriteBootOption     *       &30
  405.    ;Entry
  406.    ;  R0 = &30
  407.    ;  R1 -> file_name (String)
  408.    ;  R2 = boot_option (Int)
  409.  
  410. OSFSControl_FreeSpace           *       &31
  411.    ;Entry
  412.    ;  R0 = &31
  413.    ;  R1 -> file_name (String)
  414.    ;Exit
  415.    ;  R0 = free (Int)
  416.    ;  R1 = max (Int)
  417.    ;  R2 = size (Int)
  418.  
  419. OSFSControl_NameDisc            *       &32
  420.    ;Entry
  421.    ;  R0 = &32
  422.    ;  R1 -> file_name (String)
  423.    ;  R2 -> disc_name (String)
  424.  
  425. OSFSControl_StampImage          *       &33
  426.    ;Entry
  427.    ;  R0 = &33
  428.    ;  R1 -> file_name (String)
  429.    ;  R2 = stamp_now (Bool)
  430.  
  431. OSFSControl_ObjectAtOffset      *       &34
  432.    ;Entry
  433.    ;  R0 = &34
  434.    ;  R1 -> file_name (String)
  435.    ;  R2 = offset (Int)
  436.    ;  R3 = buffer (pointer to String)
  437.    ;  R4 = size (Int)
  438.    ;Exit
  439.    ;  R2 = obj_kind (OSFSControl_ObjectKind)
  440.  
  441. OSFSControl_SetDir              *       &35
  442.    ;Entry
  443.    ;  R0 = &35
  444.    ;  R1 -> path (String)
  445.    ;  R2 = dir (OSFSControl_SpecialDir)
  446.    ;  R3 -> fs_name (String)
  447.    ;  R6 -> special (String)
  448.  
  449. OSFSControl_ReadDir             *       &36
  450.    ;Entry
  451.    ;  R0 = &36
  452.    ;  R1 = buffer (pointer to String)
  453.    ;  R2 = dir (OSFSControl_SpecialDir)
  454.    ;  R3 -> fs_name (String)
  455.    ;  R5 = size (Int)
  456.    ;Exit
  457.    ;  R5 = spare (Int)
  458.    ;  R6 -> special (String)
  459.  
  460. OSFSControl_FreeSpace64         *       &37
  461.    ;Entry
  462.    ;  R0 = &37
  463.    ;  R1 -> file_name (String)
  464.    ;Exit
  465.    ;  R0 = free_lo (Bits)
  466.    ;  R1 = free_hi (Int)
  467.    ;  R2 = max (Int)
  468.    ;  R3 = disc_size_lo (Bits)
  469.    ;  R4 = disc_size_hi (Bits)
  470.  
  471. OSFSControl_DefectList64        *       &38
  472.    ;Entry
  473.    ;  R0 = &38
  474.    ;  R1 -> image_name (String)
  475.    ;  R2 = buffer (pointer to data)
  476.    ;  R3 = size (Int)
  477.  
  478. OSFSControl_AddDefect64         *       &39
  479.    ;Entry
  480.    ;  R0 = &39
  481.    ;  R1 -> image_name (String)
  482.    ;  R2 = offset_lo (Bits)
  483.    ;  R3 = offset_hi (Int)
  484.  
  485. FSCV                            *       &F
  486.  
  487. UpCall_MediaNotPresent          *       &1
  488.    ;Entry
  489.    ;  R0 = &1
  490.    ;  R1 = fs_no (FileSwitch_FSNo)
  491.    ;  R2 -> media_name (String)
  492.    ;  R3 = device_no (Int)
  493.    ;  R4 = iteration_count (Int)
  494.    ;  R5 = timeout (Int)
  495.    ;  R6 -> media_type (String)
  496.    ;Exit
  497.    ;  R0 = changed (Int)
  498.  
  499. UpCall_MediaNotKnown            *       &2
  500.    ;Entry
  501.    ;  R0 = &2
  502.    ;  R1 = fs_no (FileSwitch_FSNo)
  503.    ;  R2 -> media_name (String)
  504.    ;  R3 = device_no (Int)
  505.    ;  R4 = iteration_count (Int)
  506.    ;  R5 = timeout (Int)
  507.    ;  R6 -> media_type (String)
  508.    ;Exit
  509.    ;  R0 = changed (Int)
  510.  
  511. UpCallFSControl_SetArgsSize     *       &200
  512.    ;Entry
  513.    ;  R0 = &3
  514.    ;  R1 = f (OS_F)
  515.    ;  R2 = size (Int)
  516.    ;  R8 = fs_info (FileSwitch_FSInfo)
  517.    ;  R9 = &200
  518.  
  519. UpCallFSControl_Rename          *       &208
  520.    ;Entry
  521.    ;  R0 = &3
  522.    ;  R1 -> file_name (String)
  523.    ;  R2 -> new_file_name (String)
  524.    ;  R6 -> special (String)
  525.    ;  R7 -> new_special (String)
  526.    ;  R8 = fs_info (FileSwitch_FSInfo)
  527.    ;  R9 = &208
  528.  
  529. UpCallFSControl_SetAttrString   *       &209
  530.    ;Entry
  531.    ;  R0 = &3
  532.    ;  R1 -> file_name (String)
  533.    ;  R2 -> attr (String)
  534.    ;  R6 -> special (String)
  535.    ;  R8 = fs_info (FileSwitch_FSInfo)
  536.    ;  R9 = &209
  537.  
  538. UpCall_MediaSearchEnd           *       &4
  539.    ;Entry
  540.    ;  R0 = &4
  541.  
  542. UpCall_NewApplication           *       &100
  543.    ;Entry
  544.    ;  R0 = &100
  545.    ;  R2 = cao (pointer to data)
  546.    ;Exit
  547.    ;  R0 = started (Bool)
  548.  
  549.         ]
  550.         END
  551.