Mercurial > hg > Members > kono > nitros9-code
view lib/rbfdefs.a @ 2772:0a3f4d8ea6d5
Found ENDC in wrong location in dwread.asm and dwwrite.asm. Corrected.
Moved the native 6309 code in dwread.asm and dwwrite.asm into the H6309 labeled area and changed IFEQ H6309 to IFNE H6309. Also moved the 57600bps 6809 code to the default location. This change had been done in the old dwread.asm and dwwrite.asm files to make it easier to follow. Though these two files were overwritten from the HDBDOS project dwread.asm and dwwrite.asm files. So this conversion needed to be done again so it made the source easier to follow.
author | drencor-xeen |
---|---|
date | Wed, 23 Jan 2013 12:36:55 -0600 |
parents | 76c3c37f3a38 |
children |
line wrap: on
line source
IFNE RBFDEFS-1 RBFDEFS SET 1 ******************************************************************** * RBFDefs - Random Block File Manager Definitions * * $Id$ * * RBF stands for 'Random Block Filemanager' and is a package of subroutines * that define the logical structure of a disk and allows access to the files * in that structure. * * The data structures in this file give RBF its 'personality' and are used * by RBF itself, as well as applications that will require disk I/O. * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 1982/07/13 Robert F. Doggett * PD.Exten added to path descriptor and PE Entries defined. * * 1982/07/15 Robert F. Doggett * V.FileHd inserted in driver static storage. * * 1982/09/10 WGP * Level One/Level Two condionals added. * * 1982/09/17 WGP * * 1982/09/17 Robert F. Doggett * PD.SLE renamed to PD.Creat. * * 1982/09/17 Robert F. Doggett * V.DiskID, V.BMapSz, V.MapSct added for smart multi-sector bitmap searching. * * 1982/09/20 Robert F. Doggett * Reserved areas added in static storage. * 1983/06/07 Robert F. Doggett * Added InDriver flag in PD.SMF. * * 1983/06/13 Robert F. Doggett * Added PE.Req tmp save for PE.Lock. * * 1983/08/08 Robert F. Doggett * Reserved PD.SToff for Japanese. * * 1983/11/19 Robert F. Doggett * Added V.ResBit in drive tables. * * 1983/12/12 Robert F. Doggett * Added PE.Prior to save process priority. * * 1983/12/13 Robert F. Doggett * Added BufBusy bit in state flag (PD.SMF). * * 1984/07/06 Mark G. Hawkins * Added Bit Definitions for DD.FMT. * * 1987/06/23 Kevin K. Darling * Updated with Dev Desc Info * * 2003/06/02 Boisy G. Pitre * Updated comments for clarity. * Added TYP.256-TYP.2048 definitions for future expansion. * * 2004/04/14 Boisy G. Pitre * Added new entries to device descriptor as per OS-9 Level One V2.00.00 * addendum. Pointed out by Rodney Hamilton. * * 2005/05/31 P.Harvey-Smith. * Added defines for bit 2 of IT.DNS, which the format command uses to * determine if a drive should have it's track 0 as single or double density * * 2005/11/23 Robert Gault * Added IT.MPI giving it duplicate location with IT.TFM. This will not be * transferred to the path descriptor, thus the equ * rahter than rmb 1. * * 2005/12/11 Boisy G. Pitre * Added IT.SOFF1-ITSOFF3 and IT.LLDRV for SuperDrivers. NAM RBFDefs TTL Random Block File Manager Definitions PAG ******************************* * RBF Device Descriptor Offsets * * These definitions are for RBF device descriptors. csect RMB M$DTyp RMB 1 Device type (DT.RBF) IT.DRV: RMB 1 Drive number IT.STP: RMB 1 Step rate IT.TYP: RMB 1 Disk device type information IT.DNS: RMB 1 Density capability IT.CYL: RMB 2 Number of cylinders IT.SID: RMB 1 Number of surfaces IT.VFY: RMB 1 Verify disk writes (0 = verify, 1 = don't) IT.SCT: RMB 2 Default sectors/track IT.T0S: RMB 2 Default sectors/track for track 0 sector 0 IT.ILV: RMB 1 Sector interleave offset IT.SAS: RMB 1 Segment allocation size * The following fields are from the OS-9 Level One V2.00.00 Addendum IT.TFM: RMB 1 DMA Transfer Mode IT.Exten: RMB 2 Path Extension (PE) for record locking IT.SToff: RMB 1 Sector/Track offsets (for "foreign" disk formats) * The following fields are not copied to the path descriptor IT.WPC: RMB 1 Write precomp cyl/4 (HD) IT.OFS: RMB 2 Starting cylinder offset (HD) IT.RWC: RMB 2 Reduced write current cylinder (HD) * These fields have been added because of SuperDriver. They probably * can be used in other drivers ORG IT.WPC IT.SOFF1: RMB 1 IT.SOFF2: RMB 1 IT.SOFF3: RMB 1 IT.LLDRV: RMB 2 IT.MPI: RMB 1 endsect * IT.TYP Definitions * TYP.HARD: EQU %10000000 Hard disk TYP.FLP: EQU %00000000 Floppy disk TYP.NSF: EQU %01000000 Non-standard format TYP.SOF: EQU %00000000 Standard NitrOS-9 format * IT.TYP bit definitions if bit 7 of IT.TYP is set (hard disk) TYPH.256: EQU %00000000 256 byte sector media TYPH.512: EQU %00000001 512 byte sector media TYPH.1024: EQU %00000010 1024 byte sector media TYPH.2048: EQU %00000011 2048 byte sector media TYPH.SSM: EQU %00000011 Sector size mask TYPH.DRSV: EQU %00001100 Driver-reserved bits TYPH.DSQ: EQU %00010000 Drive size query flag * IT.TYP bit definitions if bit 7 of IT.TYP is clear (floppy disk) TYP.5: EQU %00000000 5" media TYP.3: EQU %00000001 3.5" media TYP.SBO: EQU %00000010 Sector base offset (clear = 0; sect = 1) TYP.256: EQU %00000000 256 byte sector media TYP.512: EQU %00000100 512 byte sector media TYP.CCF: EQU %00100000 CoCo format TYP.NCCF: EQU %00000000 Non-CoCo format * IT.DNS Definitions * * If bit 7 of IT.TYP is set, IT.DNS is driver-dependent * IT.DNS bit definitions if bit 7 of IT.TYP is clear (floppy disk) DNS.FM: EQU %00000000 Single-density (FM) DNS.MFM: EQU %00000001 Double-density (MFM) DNS.STD: EQU %00000000 Single track distance (48/135 tpi) DNS.DTD: EQU %00000010 Double track distance (96 tpi) * Added PHS,2005-05-31, as format seems to use these DNS.FM0: EQU %00000000 Single density track 0 DNS.MFM0: EQU %00000100 Double density track 0 * Floppy disk step rate definitions STP.30ms: EQU 0 30ms step rate STP.20ms: EQU 1 20ms step rate STP.12ms: EQU 2 12ms step rate STP.6ms: EQU 3 6ms step rate PAG ************************************* * Random Block Path Descriptor Format * * A path descriptor is created for every new path that is open * via the I$Open system call (processed by IOMan). Process * descriptors track state information of a path. * csect RMB PD.FST PD.SMF: RMB 1 State flags PD.CP: RMB 4 Current logical byte position PD.SIZ: RMB 4 File size PD.SBL: RMB 3 Segment beginning lsn PD.SBP: RMB 3 Segment beginning psn PD.SSZ: RMB 3 Segment size PD.DSK: RMB 2 Disk id PD.DTB: RMB 2 Drive table ptr RMB PD.OPT-* RMB 1 Device type PD.DRV: RMB 1 Drive number PD.STP: RMB 1 Step rate PD.TYP: RMB 1 Disk device type (5" 8" other) PD.DNS: RMB 1 Density capability PD.CYL: RMB 2 Number of cylinders PD.SID: RMB 1 Number of surfaces PD.VFY: RMB 1 0=verify disk writes PD.SCT: RMB 2 Default sectors/track PD.T0S: RMB 2 Default sectors/track tr00,s0 PD.ILV: RMB 1 Sector interleave offset PD.SAS: RMB 1 Segment allocation size PD.TFM: RMB 1 DMA Transfer Mode PD.Exten: RMB 2 Path Extension (PE) for record locking PD.SToff: RMB 1 Sector/Track offsets (for "foreign" disk formats) PD.ATT: RMB 1 File attributes PD.FD: RMB 3 File descriptor psn PD.DFD: RMB 3 Directory file descriptor psn PD.DCP: RMB 4 File directory entry ptr PD.DVT: RMB 2 User readable dev tbl ptr endsect * State Flags BUFMOD: EQU $01 Buffer modified SINBUF: EQU $02 Sector in buffer FDBUF: EQU $04 File descriptor in buffer *EOFSEC:equ $08 End of file sector *EOF:equ $10 End of file InDriver: EQU $20 Currently in Disk Driver, or queued BufBusy: EQU $40 Buffer is currently busy IFNE Level-1 ************************************ * Random Block Path Extension Format * * RBF paths under Level Two have additional information that * is referenced by the path extension area. * csect PE.PE: RMB 1 PE path number PE.PDptr: RMB 2 Back ptr to this PE's Path Descriptor PE.NxFil: RMB 2 Drive Open-File list ptr PE.Confl: RMB 2 Circular File Conflict list PE.Lock: RMB 1 Path lockout status PE.LoLck: RMB 4 Low Locked Logical addr PE.HiLck: RMB 4 High Locked Logical addr PE.Wait: RMB 2 PE ptr to (next) locked-out PE PE.TmOut: RMB 2 Max ticks to wait for locked segment PE.Owner: RMB 1 Process ID of owner of locked segment PE.Req: RMB 1 Temp for PE.Lock in GAIN when LockSeg fails PE.Prior: RMB 1 Temp for process priority while in driver PE.SigSg: RMB 1 Signal code to send PE.SigID: RMB 1 Process ID to send the signal to RMB 32-* Reserved PE.FilNm: RMB 32 Temp for filename during directory search endsect * PE.Lock status codes Unlocked: EQU 0 No portion of file is locked RcdLock: EQU 1 Record from LoLck to HiLck locked FileLock: EQU 2 Entire file locked EofLock: EQU 4 End of file is locked ENDC PAG *********************** * LSN0 Disk Data Format * * Logical Sector Number 0 is the first sector on an RBF formatted device * and contains information about the device's size and format. * csect DD.TOT: RMB 3 Total number of sectors DD.TKS: RMB 1 Track size in sectors DD.MAP: RMB 2 Number of bytes in allocation bit map DD.BIT: RMB 2 Number of sectors/bit DD.DIR: RMB 3 Address of root directory fd DD.OWN: RMB 2 Owner DD.ATT: RMB 1 Attributes DD.DSK: RMB 2 Disk ID DD.FMT: RMB 1 Disk format; density/sides DD.SPT: RMB 2 Sectors/track DD.RES: RMB 2 Reserved for future use DD.SIZ: EQU . Device descriptor minimum size DD.BT: RMB 3 System bootstrap sector DD.BSZ: RMB 2 Size of system bootstrap DD.DAT: RMB 5 Creation date DD.NAM: RMB 32 Volume name DD.OPT: RMB 32 Option area endsect * DD.FMT Bit Definitions - valid only if device is a floppy disk FMT.SIDE: EQU %00000001 Single Sided=0, Double Sided=1 FMT.DNS: EQU %00000010 Single Density=0, Double Density=1 FMT.TDNS: EQU %00000100 Track Density: 48/135 TPI=0, 96 TPI=1 FMT.T0DN: EQU %00100000 Track 0 Density, see FMT.DNS PAG ************************ * File Descriptor Format * * The file descriptor is a sector that is present for every file * on an RBF device. It contains attributes, modification dates, * and segment information on a file. * csect FD.ATT: RMB 1 Attributes FD.OWN: RMB 2 Owner FD.DAT: RMB 5 Date last modified FD.LNK: RMB 1 Link count FD.SIZ: RMB 4 File size FD.Creat: RMB 3 File creation date (YY/MM/DD) FD.SEG: EQU * Beginning of segment list endsect * Segment List Entry Format csect FDSL.A: RMB 3 Segment beginning physical sector number FDSL.B: RMB 2 Segment size endsect FDSL.S: EQU . Segment list entry size FD.LS1: EQU FD.SEG+((256-FD.SEG)/FDSL.S-1)*FDSL.S FD.LS2: EQU (256/FDSL.S-1)*FDSL.S MINSEC: SET 16 PAG ************************ * Directory Entry Format * * Directory entries are part of a directory and define the name * of the file, as well as a pointer to its file descriptor. * csect DIR.NM: RMB 29 File name DIR.FD: RMB 3 File descriptor physical sector number DIR.SZ: EQU * Directory record size endsect PAG ******************** * RBF Static Storage * * Overall Disk Static Storage * * Note: This does not reserve any memory for drive tables. Each * driver is responsible for reserving sufficient memory for * the appropriate number of tables. * csect RMB V.USER Reserve required ($06) V.NDRV: RMB 1 Number of drives ($07) RMB 8 reserved ($08) DRVBEG: EQU * Beginning of drive tables ($10) endsect PAG **************** * Global Storage For Disk Drive Tables * * Each table contains the first 'DD.SIZ' bytes from * LSN 0, and the current track, stepping rate, * bitmap use flag, and disk type. * csect RMB DD.SIZ Device descriptor, LSN 0 V.TRAK: RMB 2 Current track V.BMB: RMB 1 Bit-map use flag V.FileHd: RMB 2 Open file list for this drive V.DiskID: RMB 2 Disk ID V.BMapSz: RMB 1 Bitmap Size V.MapSct: RMB 1 Lowest reasonable bitmap sector V.ResBit: RMB 1 Reserved bitmap sector (for compaction) V.ScTkOf: RMB 1 Sector/Track byte (Combined from descriptor) V.ScOfst: RMB 1 Sector offset split from byte above V.TkOfst: RMB 1 Track offset split from byte above RMB 4 Reserved DRVMEM: EQU * endsect ENDC