home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / cbm / nduk-v37.lha / V37 / include / dos / filehandler.i < prev    next >
Text File  |  1991-11-27  |  5KB  |  131 lines

  1.     IFND    DOS_FILEHANDLER_I
  2. DOS_FILEHANDLER_I SET    1
  3. **
  4. **    $Filename: dos/filehandler.i $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 36.4 $
  7. **    $Date: 90/07/12 $
  8. **
  9. **    device and file handler specific code for AmigaDOS
  10. **
  11. **    (C) Copyright 1986-1991 Commodore-Amiga, Inc.
  12. **        All Rights Reserved
  13. **
  14.  
  15.     IFND      EXEC_TYPES_I
  16.     INCLUDE "exec/types.i"
  17.     ENDC    ; EXEC_TYPES_I
  18.  
  19.     IFND      EXEC_PORTS_I
  20.     INCLUDE "exec/ports.i"
  21.     ENDC    ; EXEC_PORTS_I
  22.  
  23.     IFND      DOS_DOS_I
  24.     INCLUDE "libraries/dos.i"
  25.     ENDC    ; DOS_DOS_I
  26.  
  27.  
  28. * The disk "environment" is a longword array that describes the
  29. * disk geometry.  It is variable sized, with the length at the beginning.
  30. * Here are the constants for a standard geometry.
  31.  
  32.  
  33.  
  34.  STRUCTURE DosEnvec,0
  35.     ULONG de_TableSize         ; Size of Environment vector
  36.     ULONG de_SizeBlock         ; in longwords: standard value is 128
  37.     ULONG de_SecOrg         ; not used; must be 0
  38.     ULONG de_Surfaces         ; # of heads (surfaces). drive specific
  39.     ULONG de_SectorPerBlock  ; not used; must be 1
  40.     ULONG de_BlocksPerTrack  ; blocks per track. drive specific
  41.     ULONG de_Reserved         ; DOS reserved blocks at start of partition.
  42.     ULONG de_PreAlloc         ; DOS reserved blocks at end of partition
  43.     ULONG de_Interleave         ; usually 0
  44.     ULONG de_LowCyl         ; starting cylinder. typically 0
  45.     ULONG de_HighCyl         ; max cylinder. drive specific
  46.     ULONG de_NumBuffers         ; Initial # DOS of buffers.
  47.     ULONG de_BufMemType         ; type of mem to allocate for buffers
  48.     ULONG de_MaxTransfer     ; Max number of bytes to transfer at a time
  49.     ULONG de_Mask         ; Address Mask to block out certain memory
  50.     LONG  de_BootPri         ; Boot priority for autoboot
  51.     ULONG de_DosType         ; ASCII (HEX) string showing filesystem type;
  52.                  ; 0X444F5300 is old filesystem,
  53.                  ; 0X444F5301 is fast file system
  54.     ULONG de_Baud         ; Baud rate for serial handler
  55.     ULONG de_Control         ; Control word for handler/filesystem
  56.     ULONG de_BootBlocks      ; Number of blocks containing boot code
  57.  
  58.     LABEL DosEnvec_SIZEOF
  59.  
  60. * these are the offsets into the array
  61.  
  62. DE_TABLESIZE    EQU    0    ; standard value is 11
  63. DE_SIZEBLOCK    EQU    1    ; in longwords: standard value is 128
  64. DE_SECORG    EQU    2    ; not used; must be 0
  65. DE_NUMHEADS    EQU    3    ; # of heads (surfaces). drive specific
  66. DE_SECSPERBLK    EQU    4    ; not used; must be 1
  67. DE_BLKSPERTRACK EQU    5    ; blocks per track. drive specific
  68. DE_RESERVEDBLKS EQU    6    ; unavailable blocks at start.    usually 2
  69. DE_PREFAC    EQU    7    ; not used; must be 0
  70. DE_INTERLEAVE    EQU    8    ; usually 0
  71. DE_LOWCYL    EQU    9    ; starting cylinder. typically 0
  72. DE_UPPERCYL    EQU    10    ; max cylinder.     drive specific
  73. DE_NUMBUFFERS    EQU    11    ; starting # of buffers.  typically 5
  74. DE_MEMBUFTYPE    EQU    12    ; type of mem to allocate for buffers.
  75. DE_BUFMEMTYPE    EQU    12    ; same as above, better name
  76.                 ; 1 is public, 3 is chip, 5 is fast
  77. DE_MAXTRANSFER    EQU    13    ; Maximum number of bytes to transfer at a time
  78. DE_MASK        EQU    14    ; Address Mask to block out certain memory
  79. DE_BOOTPRI    EQU    15    ; Boot priority for autoboot
  80. DE_DOSTYPE    EQU    16    ; ASCII (HEX) string showing filesystem type
  81.                 ; 0X444F5300 is old filesystem,
  82.                 ; 0X444F5301 is fast file system
  83. DE_BAUD    EQU    17    ; Baud rate for serial handler
  84. DE_CONTROL    EQU    18    ; Control word for handler/filesystem
  85. DE_BOOTBLOCKS    EQU    19    ; Number of blocks containing boot code
  86.  
  87. *
  88. * The file system startup message is linked into a device node's startup
  89. * field.  It contains a pointer to the above environment, plus the
  90. * information needed to do an exec OpenDevice().
  91. *
  92.  
  93.  STRUCTURE FileSysStartupMsg,0
  94.     ULONG    fssm_Unit    ; exec unit number for this device
  95.     BSTR    fssm_Device    ; null terminated bstring to the device name
  96.     BPTR    fssm_Environ    ; ptr to environment table (see above)
  97.     ULONG    fssm_Flags    ; flags for OpenDevice()
  98.     LABEL    FileSysStartupMsg_SIZEOF
  99.  
  100.  
  101. * The include file "libraries/dosextens.h" has a DeviceList structure.
  102. * The "device list" can have one of three different things linked onto
  103. * it.  Dosextens defines the structure for a volume.  DLT_DIRECTORY
  104. * is for an assigned directory.     The following structure is for
  105. * a dos "device" (DLT_DEVICE).
  106.  
  107.  STRUCTURE DeviceNode,0
  108.     BPTR    dn_Next        ; singly linked list
  109.     ULONG    dn_Type        ; always 0 for dos "devices"
  110.     CPTR    dn_Task        ; standard dos "task" field.  If this is
  111.                 ;     null when the node is accesses, a task
  112.                 ;     will be started up
  113.     BPTR    dn_Lock        ; not used for devices -- leave null
  114.     BSTR    dn_Handler    ; filename to loadseg (if seglist is null)
  115.     ULONG    dn_StackSize    ; stacksize to use when starting task
  116.     LONG    dn_Priority    ; task priority when starting task
  117.     BPTR    dn_Startup    ; startup msg: FileSysStartupMsg for disks
  118.     BPTR    dn_SegList    ; code to run to start new task (if necessary).
  119.                 ;     if null then dn_Handler will be loaded.
  120.     BPTR    dn_GlobalVec    ; BCPL global vector to use when starting
  121.                 ;     a task.  -1 means that dn_SegList is not
  122.                 ;     for a bcpl program, so the dos won't
  123.                 ;     try and construct one.  0 tell the
  124.                 ;     dos that you obey BCPL linkage rules,
  125.                 ;     and that it should construct a global
  126.                 ;     vector for you.
  127.     BSTR    dn_Name        ; the node name, e.g. '\3','D','F','3'
  128.     LABEL    DeviceNode_SIZEOF
  129.  
  130.     ENDC    ; DOS_FILEHANDLER_I
  131.