home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / Hdr / OSFile < prev    next >
Encoding:
Text File  |  1995-08-22  |  11.4 KB  |  464 lines

  1. ;Assembler header file for OSFile
  2. ;written by DefMod (Jun 30 1995) on Tue Aug 22 14:43:58 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: OSFile_Hdr
  36.         GBLS    OSFile_Hdr
  37.  
  38. ;Symbols for constants
  39. OSFile_NotFound                 *       &0
  40. OSFile_IsFile                   *       &1
  41. OSFile_IsDir                    *       &2
  42. OSFile_IsImage                  *       &3
  43. OSFile_FileType                 *       &FFF00
  44. OSFile_FileTypeShift            *       8
  45. OSFile_TypeDraw                 *       &AFF
  46. OSFile_TypeBBCROM               *       &BBC
  47. OSFile_TypeDOSDisc              *       &FC8
  48. OSFile_TypeDevice               *       &FCC
  49. OSFile_TypeCache                *       &FCF
  50. OSFile_TypeTaskExec             *       &FD6
  51. OSFile_TypeTaskObey             *       &FD7
  52. OSFile_TypeDOS                  *       &FE4
  53. OSFile_TypeDesktop              *       &FEA
  54. OSFile_TypeObey                 *       &FEB
  55. OSFile_TypeTemplate             *       &FEC
  56. OSFile_TypePalette              *       &FED
  57. OSFile_TypeConfig               *       &FF2
  58. OSFile_TypePrintout             *       &FF4
  59. OSFile_TypePostscript           *       &FF5
  60. OSFile_TypeFont                 *       &FF6
  61. OSFile_TypeBBCFont              *       &FF7
  62. OSFile_TypeAbsolute             *       &FF8
  63. OSFile_TypeSprite               *       &FF9
  64. OSFile_TypeModule               *       &FFA
  65. OSFile_TypeBASIC                *       &FFB
  66. OSFile_TypeUtility              *       &FFC
  67. OSFile_TypeData                 *       &FFD
  68. OSFile_TypeCommand              *       &FFE
  69. OSFile_TypeText                 *       &FFF
  70. OSFile_TypeDir                  *       &1000
  71. OSFile_TypeApplication          *       &2000
  72. OSFile_TypeUntyped              *       &FFFFFFFF
  73.  
  74. ;Symbols for SWI's and SWI reason codes
  75. XOS_File                        *       &20008
  76. OS_File                         *       &8
  77.  
  78. OSFile_SaveStamped              *       &A
  79.    ;Entry
  80.    ;  R0 = &A
  81.    ;  R1 -> file_name (String)
  82.    ;  R2 = file_type (Bits)
  83.    ;  R4 -> data (data)
  84.    ;  R5 -> end (data)
  85.  
  86. OSFile_Write                    *       &1
  87.    ;Entry
  88.    ;  R0 = &1
  89.    ;  R1 -> file_name (String)
  90.    ;  R2 = load_addr (Bits)
  91.    ;  R3 = exec_addr (Bits)
  92.    ;  R5 = attr (FileSwitch_Attr)
  93.  
  94. OSFile_WriteLoad                *       &2
  95.    ;Entry
  96.    ;  R0 = &2
  97.    ;  R1 -> file_name (String)
  98.    ;  R2 = load_addr (Bits)
  99.  
  100. OSFile_WriteExec                *       &3
  101.    ;Entry
  102.    ;  R0 = &3
  103.    ;  R1 -> file_name (String)
  104.    ;  R3 = exec_addr (Bits)
  105.  
  106. OSFile_WriteAttr                *       &4
  107.    ;Entry
  108.    ;  R0 = &4
  109.    ;  R1 -> file_name (String)
  110.    ;  R5 = attr (FileSwitch_Attr)
  111.  
  112. OSFile_Stamp                    *       &9
  113.    ;Entry
  114.    ;  R0 = &9
  115.    ;  R1 -> file_name (String)
  116.  
  117. OSFile_SetType                  *       &12
  118.    ;Entry
  119.    ;  R0 = &12
  120.    ;  R1 -> file_name (String)
  121.    ;  R2 = file_type (Bits)
  122.  
  123. OSFile_Delete                   *       &6
  124.    ;Entry
  125.    ;  R0 = &6
  126.    ;  R1 -> file_name (String)
  127.    ;Exit
  128.    ;  R0 = obj_type (FileSwitch_ObjectType)
  129.    ;  R2 = load_addr (Bits)
  130.    ;  R3 = exec_addr (Bits)
  131.    ;  R4 = size (Int)
  132.    ;  R5 = attr (FileSwitch_Attr)
  133.  
  134. OSFile_CreateStamped            *       &B
  135.    ;Entry
  136.    ;  R0 = &B
  137.    ;  R1 -> file_name (String)
  138.    ;  R2 = file_type (Bits)
  139.    ;  R4 = &0
  140.    ;  R5 = size (Int)
  141.  
  142. OSFile_CreateDir                *       &8
  143.    ;Entry
  144.    ;  R0 = &8
  145.    ;  R1 -> dir_name (String)
  146.    ;  R4 = entry_count (Int)
  147.  
  148. OSFile_LoadStamped              *       &FF
  149.    ;Entry
  150.    ;  R0 = &FF
  151.    ;  R1 -> file_name (String)
  152.    ;  R2 = addr (pointer to data)
  153.    ;  R3 = &0
  154.    ;Exit
  155.    ;  R0 = obj_type (FileSwitch_ObjectType)
  156.    ;  R2 = load_addr (Bits)
  157.    ;  R3 = exec_addr (Bits)
  158.    ;  R4 = size (Int)
  159.    ;  R5 = attr (FileSwitch_Attr)
  160.  
  161. OSFile_LoadStampedPath          *       &C
  162.    ;Entry
  163.    ;  R0 = &C
  164.    ;  R1 -> file_name (String)
  165.    ;  R2 = addr (pointer to data)
  166.    ;  R3 = &0
  167.    ;  R4 -> path (String)
  168.    ;Exit
  169.    ;  R0 = obj_type (FileSwitch_ObjectType)
  170.    ;  R2 = load_addr (Bits)
  171.    ;  R3 = exec_addr (Bits)
  172.    ;  R4 = size (Int)
  173.    ;  R5 = attr (FileSwitch_Attr)
  174.  
  175. OSFile_LoadStampedPathVar       *       &E
  176.    ;Entry
  177.    ;  R0 = &E
  178.    ;  R1 -> file_name (String)
  179.    ;  R2 = addr (pointer to data)
  180.    ;  R3 = &0
  181.    ;  R4 -> var (String)
  182.    ;Exit
  183.    ;  R0 = obj_type (FileSwitch_ObjectType)
  184.    ;  R2 = load_addr (Bits)
  185.    ;  R3 = exec_addr (Bits)
  186.    ;  R4 = size (Int)
  187.    ;  R5 = attr (FileSwitch_Attr)
  188.  
  189. OSFile_LoadStampedNoPath        *       &10
  190.    ;Entry
  191.    ;  R0 = &10
  192.    ;  R1 -> file_name (String)
  193.    ;  R2 = addr (pointer to data)
  194.    ;  R3 = &0
  195.    ;Exit
  196.    ;  R0 = obj_type (FileSwitch_ObjectType)
  197.    ;  R2 = load_addr (Bits)
  198.    ;  R3 = exec_addr (Bits)
  199.    ;  R4 = size (Int)
  200.    ;  R5 = attr (FileSwitch_Attr)
  201.  
  202. OSFile_MakeError                *       &13
  203.    ;Entry
  204.    ;  R0 = &13
  205.    ;  R1 -> file_name (String)
  206.    ;  R2 = obj_type (FileSwitch_ObjectType)
  207.  
  208. OSFile_ReadStamped              *       &14
  209.    ;Entry
  210.    ;  R0 = &14
  211.    ;  R1 -> file_name (String)
  212.    ;Exit
  213.    ;  R0 = obj_type (FileSwitch_ObjectType)
  214.    ;  R2 = load_addr (Bits)
  215.    ;  R3 = exec_addr (Bits)
  216.    ;  R4 = size (Int)
  217.    ;  R5 = attr (FileSwitch_Attr)
  218.    ;  R6 = file_type (Bits)
  219.  
  220. OSFile_ReadStampedPath          *       &15
  221.    ;Entry
  222.    ;  R0 = &15
  223.    ;  R1 -> file_name (String)
  224.    ;  R4 -> path (String)
  225.    ;Exit
  226.    ;  R0 = obj_type (FileSwitch_ObjectType)
  227.    ;  R2 = load_addr (Bits)
  228.    ;  R3 = exec_addr (Bits)
  229.    ;  R4 = size (Int)
  230.    ;  R5 = attr (FileSwitch_Attr)
  231.    ;  R6 = file_type (Bits)
  232.  
  233. OSFile_ReadStampedPathVar       *       &16
  234.    ;Entry
  235.    ;  R0 = &16
  236.    ;  R1 -> file_name (String)
  237.    ;  R4 -> var (String)
  238.    ;Exit
  239.    ;  R0 = obj_type (FileSwitch_ObjectType)
  240.    ;  R2 = load_addr (Bits)
  241.    ;  R3 = exec_addr (Bits)
  242.    ;  R4 = size (Int)
  243.    ;  R5 = attr (FileSwitch_Attr)
  244.    ;  R6 = file_type (Bits)
  245.  
  246. OSFile_ReadStampedNoPath        *       &17
  247.    ;Entry
  248.    ;  R0 = &17
  249.    ;  R1 -> file_name (String)
  250.    ;Exit
  251.    ;  R0 = obj_type (FileSwitch_ObjectType)
  252.    ;  R2 = load_addr (Bits)
  253.    ;  R3 = exec_addr (Bits)
  254.    ;  R4 = size (Int)
  255.    ;  R5 = attr (FileSwitch_Attr)
  256.    ;  R6 = file_type (Bits)
  257.  
  258. OSFile_ReadBlockSize            *       &18
  259.    ;Entry
  260.    ;  R0 = &18
  261.    ;  R1 -> file_name (String)
  262.    ;Exit
  263.    ;  R2 = block_size (Int)
  264.  
  265. OSFile_Save                     *       &0
  266.    ;Entry
  267.    ;  R0 = &0
  268.    ;  R1 -> file_name (String)
  269.    ;  R2 = load_addr (Bits)
  270.    ;  R3 = exec_addr (Bits)
  271.    ;  R4 -> data (data)
  272.    ;  R5 -> end (data)
  273.  
  274. OSFile_Read                     *       &5
  275.    ;Entry
  276.    ;  R0 = &5
  277.    ;  R1 -> file_name (String)
  278.    ;Exit
  279.    ;  R0 = obj_type (FileSwitch_ObjectType)
  280.    ;  R2 = load_addr (Bits)
  281.    ;  R3 = exec_addr (Bits)
  282.    ;  R4 = size (Int)
  283.    ;  R5 = attr (FileSwitch_Attr)
  284.  
  285. OSFile_ReadPath                 *       &D
  286.    ;Entry
  287.    ;  R0 = &D
  288.    ;  R1 -> file_name (String)
  289.    ;  R4 -> path (String)
  290.    ;Exit
  291.    ;  R0 = obj_type (FileSwitch_ObjectType)
  292.    ;  R2 = load_addr (Bits)
  293.    ;  R3 = exec_addr (Bits)
  294.    ;  R4 = size (Int)
  295.    ;  R5 = attr (FileSwitch_Attr)
  296.  
  297. OSFile_ReadPathVar              *       &F
  298.    ;Entry
  299.    ;  R0 = &F
  300.    ;  R1 -> file_name (String)
  301.    ;  R4 -> var (String)
  302.    ;Exit
  303.    ;  R0 = obj_type (FileSwitch_ObjectType)
  304.    ;  R2 = load_addr (Bits)
  305.    ;  R3 = exec_addr (Bits)
  306.    ;  R4 = size (Int)
  307.    ;  R5 = attr (FileSwitch_Attr)
  308.  
  309. OSFile_ReadNoPath               *       &11
  310.    ;Entry
  311.    ;  R0 = &11
  312.    ;  R1 -> file_name (String)
  313.    ;Exit
  314.    ;  R0 = obj_type (FileSwitch_ObjectType)
  315.    ;  R2 = load_addr (Bits)
  316.    ;  R3 = exec_addr (Bits)
  317.    ;  R4 = size (Int)
  318.    ;  R5 = attr (FileSwitch_Attr)
  319.  
  320. OSFile_Create                   *       &7
  321.    ;Entry
  322.    ;  R0 = &7
  323.    ;  R1 -> file_name (String)
  324.    ;  R2 = load_addr (Bits)
  325.    ;  R3 = exec_addr (Bits)
  326.    ;  R4 = &0
  327.    ;  R5 = size (Int)
  328.  
  329. OSFile_Load                     *       &FF
  330.    ;Entry
  331.    ;  R0 = &FF
  332.    ;  R1 -> file_name (String)
  333.    ;  R3 = &1
  334.    ;Exit
  335.    ;  R0 = obj_type (FileSwitch_ObjectType)
  336.    ;  R2 = load_addr (Bits)
  337.    ;  R3 = exec_addr (Bits)
  338.    ;  R4 = size (Int)
  339.    ;  R5 = attr (FileSwitch_Attr)
  340.  
  341. OSFile_LoadPath                 *       &C
  342.    ;Entry
  343.    ;  R0 = &C
  344.    ;  R1 -> file_name (String)
  345.    ;  R3 = &1
  346.    ;  R4 -> path (String)
  347.    ;Exit
  348.    ;  R0 = obj_type (FileSwitch_ObjectType)
  349.    ;  R2 = load_addr (Bits)
  350.    ;  R3 = exec_addr (Bits)
  351.    ;  R4 = size (Int)
  352.    ;  R5 = attr (FileSwitch_Attr)
  353.  
  354. OSFile_LoadPathVar              *       &E
  355.    ;Entry
  356.    ;  R0 = &E
  357.    ;  R1 -> file_name (String)
  358.    ;  R3 = &1
  359.    ;  R4 -> var (String)
  360.    ;Exit
  361.    ;  R0 = obj_type (FileSwitch_ObjectType)
  362.    ;  R2 = load_addr (Bits)
  363.    ;  R3 = exec_addr (Bits)
  364.    ;  R4 = size (Int)
  365.    ;  R5 = attr (FileSwitch_Attr)
  366.  
  367. OSFile_LoadNoPath               *       &10
  368.    ;Entry
  369.    ;  R0 = &10
  370.    ;  R1 -> file_name (String)
  371.    ;  R3 = &1
  372.    ;Exit
  373.    ;  R0 = obj_type (FileSwitch_ObjectType)
  374.    ;  R2 = load_addr (Bits)
  375.    ;  R3 = exec_addr (Bits)
  376.    ;  R4 = size (Int)
  377.    ;  R5 = attr (FileSwitch_Attr)
  378.  
  379. FileV                           *       &8
  380.  
  381. UpCallFile_Save                 *       &0
  382.    ;Entry
  383.    ;  R0 = &3
  384.    ;  R1 -> file_name (String)
  385.    ;  R2 = load_addr (Bits)
  386.    ;  R3 = exec_addr (Bits)
  387.    ;  R4 -> data (data)
  388.    ;  R5 -> end (data)
  389.    ;  R6 -> special (String)
  390.    ;  R8 = fs_info (FileSwitch_FSInfo)
  391.    ;  R9 = &0
  392.  
  393. UpCallFile_SetArgs              *       &1
  394.    ;Entry
  395.    ;  R0 = &3
  396.    ;  R1 -> file_name (String)
  397.    ;  R2 = load_addr (Bits)
  398.    ;  R3 = exec_addr (Bits)
  399.    ;  R5 = attr (FileSwitch_Attr)
  400.    ;  R6 -> special (String)
  401.    ;  R8 = fs_info (FileSwitch_FSInfo)
  402.    ;  R9 = &1
  403.  
  404. UpCallFile_SetLoadAddr          *       &2
  405.    ;Entry
  406.    ;  R0 = &3
  407.    ;  R1 -> file_name (String)
  408.    ;  R2 = load_addr (Bits)
  409.    ;  R6 -> special (String)
  410.    ;  R8 = fs_info (FileSwitch_FSInfo)
  411.    ;  R9 = &2
  412.  
  413. UpCallFile_SetExecAddr          *       &3
  414.    ;Entry
  415.    ;  R0 = &3
  416.    ;  R1 -> file_name (String)
  417.    ;  R3 = exec_addr (Bits)
  418.    ;  R6 -> special (String)
  419.    ;  R8 = fs_info (FileSwitch_FSInfo)
  420.    ;  R9 = &3
  421.  
  422. UpCallFile_SetAttr              *       &4
  423.    ;Entry
  424.    ;  R0 = &3
  425.    ;  R1 -> file_name (String)
  426.    ;  R5 = attr (FileSwitch_Attr)
  427.    ;  R6 -> special (String)
  428.    ;  R8 = fs_info (FileSwitch_FSInfo)
  429.    ;  R9 = &4
  430.  
  431. UpCallFile_Delete               *       &6
  432.    ;Entry
  433.    ;  R0 = &3
  434.    ;  R1 -> file_name (String)
  435.    ;  R6 -> special (String)
  436.    ;  R8 = fs_info (FileSwitch_FSInfo)
  437.    ;  R9 = &6
  438.  
  439. UpCallFile_Create               *       &7
  440.    ;Entry
  441.    ;  R0 = &3
  442.    ;  R1 -> file_name (String)
  443.    ;  R2 = load_addr (Bits)
  444.    ;  R3 = exec_addr (Bits)
  445.    ;  R4 -> data (data)
  446.    ;  R5 -> end (data)
  447.    ;  R6 -> special (String)
  448.    ;  R8 = fs_info (FileSwitch_FSInfo)
  449.    ;  R9 = &7
  450.  
  451. UpCallFile_CreateDir            *       &8
  452.    ;Entry
  453.    ;  R0 = &3
  454.    ;  R1 -> file_name (String)
  455.    ;  R2 = load_addr (Bits)
  456.    ;  R3 = exec_addr (Bits)
  457.    ;  R4 = entry_count (Int)
  458.    ;  R6 -> special (String)
  459.    ;  R8 = fs_info (FileSwitch_FSInfo)
  460.    ;  R9 = &8
  461.  
  462.         ]
  463.         END
  464.