-
Notifications
You must be signed in to change notification settings - Fork 82
/
hddsect
138 lines (138 loc) · 3.58 KB
/
hddsect
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
;*************************************
;
; THESE ARE THE DSECTS USED BY
; THE HARD DISK CHANGES
;
;*************************************
;
; BIT MAP FOR SECTOR ALLOCATION
; "BAM"
;
* = 0 ;ZERO RELATIVE DSECT
HDSECT * = *+2 ;THESE TWO BYTES MUST = FFFF
;THEY INDICATE A NON DATA SECTOR
HDSCTT * = *+1 ;THIS BYTE INDICATES THE
; * TYPE OF SPECIAL SECTOR THIS IS
;FOR BAMS THIS IS BAM # (02-NN)
HDNXTB * = *+2 ;ADDR OF NEXT BAM (S&T)
HDZONE * = *+1 ;ZONE NUMBER AND FLAG
HDZMSK = $3F ;MASK TO USE ZONE #
HDBMOD = $80 ;WRITTEN INTO FLAG
HDCYL * = *+1 ;BEGINNING CYLINDER #
HDLCYL * = *+1 ;LAST CYLINDER
HDNSEC * = *+1 ;NUMBER OF SECTORS PER SURFACE
HDNBI * = *+1 ;# UNUSED BITS
HDNBY * = *+1 ;# UNUSED BYTES
HDBLRC * = *+2 ;LRC ON BAM
HDBIT1 ;ADDR OF FIRST MAP BYTE
;
;
; VOLUME LABEL DSECT
;
* = 0 ;ZERO RELATIVE DSECT
* = *+2 ;MUST = FFFF
HDVID * = *+1 ;TYPE OF SPECIAL SECTOR (MUST=1)
HDUNAM * = *+16 ;USER ASSGN VOL NAME
HDUVID * = *+2 ;USER SPECIFIED VOL ID
HDDVID * = *+1 ;DOS SPECIFIED VOL ID (ASCII)
HDDB1 * = *+2 ;ADDR OF FIRST DIR SECTOR (S&T)
HDBAM1 * = *+2 ;ADDR OF FIRST BAM (S&T)
HDBSL1 * = *+2 ;ADDR OF BAD SECTOR LIST (S&T)
HDFLAG *=*+1 ;FLAG BYTE
HDVIP = 01 ;VALIDATE IN PROGRESS FLAG
HDOPTN * = *+1 ;OPTIONS BYTE
HDEVL ;END OF VOL DATA THIS VERSION
HDRAW = $80 ;2^7=READ AFTER WRITE IF SET
HDBOOT = $40 ;2^6=BOOT DISK
HDSURF = $07 ;MASK FOR # OF SURFACES
HDBCOD *=*+1 ;BOOT CODE (REST OF SECTOR)
;
.PAG 'HARD DISK DSECTS'
;
;
; BAD SECTOR LIST DSECT
;
;
* = 0 ;ZERO RELATIVE DSECT
* = *+2 ;ID BYTES MUST = FFFF
* = *+1 ;ID = 40-NN (BSL #)
HDNBSL * = *+2 ;ADDR OF NEXT BSL (S&T)
* = *+1 ;FILLER TO MAKE BAD ADDRS ON
;BOUNDARY
HDBDS1 * = *+2 ;ADDR OF BAD SECTOR (S&T)
;SECTOR ADDRS REPEAT UNTIL END OF
;BSL SECTOR OR FFXX
;
;
; DIRECTORY ENTRY DEFINITION
;
;
; BYTE DESCRIPTION
;
; 0 - SECTOR ADDR OF NEXT SECTOR OF
; DIRECTORY (ONLY IN 1ST OF SECTOR)
; 1 - TRACK ADDR ETC.
;********BEGIN DIR PART**********
; 0 - FILE TYPE
; - - 2^7 PROPERLY CLOSED FILE
; - - 2^6 FILED LOCKED
; - - 2^5 REPLACE FILE
; - - 2^4-2^0 0,1,2,3,4
; - - DELETED,SEQ,PGM,USER,REL
; 1 - TRACK ADDR OF FILE
; 2 - SECTOR ADDR OF FILE
; 3-18 FILENAME PADDED WITH $A0'S
; 19 - SIDE SECTOR TRACK ADDR
; 20 - SIDE SECTOR SECTOR ADDR
; 21 - RECORD SIZE
; 22-25 NOT USED
; 26 - REPLACE FILE TRACK ADDR
; 27 - REPLACE FILE SECTOR ADDR
; 28 - LOW BYTE OF SECTOR COUNT
; 29 - HIGH BYTE OF SECTOR COUNT
;
; NOTE: EACH SECTOR IN THE DIRECTORY
; CONTAINS 8 DIRECTORY ENTRIES OF
; THIRTY TWO BYTES EACH.
;
.PAG 'HARD DISK DSECTS'
;
; SIDE SECTOR FORMAT DEFINITION
;
;
;BYTE DESCRIPTION
; 0 - NEXT SS SECTOR ADDR (OR FF)
; 1 - NEXT SS TRACK ADDR
; 2 - SS #
; 3 - RECORD SIZE
;
; 4-5 TRACK & SECTOR ADDR OF SS #0
; 6-7 TRACK & SECTOR ADDR OF SS #1
; 8-9 TRACK & SECTOR ADDR OF SS #2
; 10-11 TRACK & SECTOR ADDR OF SS #3
; 12-13 TRACK & SECTOR ADDR OF SS #4
; 14-15 TRACK & SECTOR ADDR OF SS #5
;
; 16-17 TRACK & SECTOR ADDR OF DATA SECTOR #0
; 18-19 ETC (DATA SECTOR #1)
;
;
;
;
.PAG
;
;
; SUPER SIDE SECTOR DSECT
;
* = 0 ;ORIGIN = 0
* = *+1 ;SECTOR ADDR OF FIRST SS
* = *+1 ;TRACK ADDR OF FIRST SS
* = *+1 ;IDENTIFICATION (HEX FE)
GRP0
* = *+1 ;SECTOR ADDR OF FIRST GROUP
* = *+1 ;TRACK ADDR OF FIRST GROUP
; ETC
HIGRP = 90 ;HIGHEST POSSIBLE GROUP #
; THERE ARE 91 GROUPS TO THE LARGEST FILE
;
.END