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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
|
PAGE ,132 ;
TITLE MSBIO2 - BIOS
%OUT ...MSBIO2.ASM
;==============================================================================
;REVISION HISTORY:
;AN000 - New for DOS Version 4.00 - J.K.
;AC000 - Changed for DOS Version 4.00 - J.K.
;AN00x - PTM number for DOS Version 4.00 - J.K.
;==============================================================================
;AN001; - P1820 New Message SKL file 10/20/87 J.K.
;AN002; - P5045 New INT 2fh for Get BDS table vector for EMS 06/06/88 J.K.
;==============================================================================
ROMSEGMENT EQU 0F000H
MODELBYTE EQU DS:BYTE PTR [0FFFEH]
MODELPCJR EQU 0FDH
itest=0
INCLUDE MSGROUP.INC ;DEFINE CODE SEGMENT
INCLUDE MSEQU.INC
INCLUDE DEVSYM.INC
INCLUDE PUSHPOP.INC
INCLUDE MSMACRO.INC
ASSUME DS:NOTHING,ES:NOTHING
EXTRN DSK$IN:NEAR
EXTRN SETPTRSAV:NEAR
EXTRN OUTCHR:NEAR
EXTRN SETDRIVE:NEAR
EXTRN FLUSH:NEAR
EXTRN HARDERR:NEAR
EXTRN HARDERR2:NEAR
EXTRN MAPERROR:NEAR
EXTRN GETBP:NEAR
EXTRN CHECKSINGLE:NEAR
EXTRN CHECK_TIME_OF_ACCESS:NEAR
EXTRN EXIT:NEAR
EXTRN HAS1:NEAR
EXTRN READ_SECTOR:NEAR
EXTRN INT_2F_13:FAR
EXTRN OLD13:DWORD
;DATA
EXTRN PTRSAV:DWORD ;IBMBIO1
EXTRN START_BDS:WORD
EXTRN FDRIVE1:WORD
EXTRN FDRIVE2:WORD
EXTRN FDRIVE3:WORD
EXTRN FDRIVE4:WORD
EXTRN FLAGBITS:WORD
EXTRN TIM_DRV:BYTE
EXTRN MEDBYT:BYTE
EXTRN DRVMAX:BYTE
extrn Ext_Boot_Sig:byte ;AN000; ibmbdata
extrn SecPerClusInSector:byte ;AN000; ibmbdata
extrn Boot_Serial_L:word ;AN000; ibmbdata
extrn Boot_Serial_H:word ;AN000; ibmbdata
PATHSTART 005,DISK
EVENB
public Model_Byte
MODEL_BYTE DB 0FFH ; MODEL BYTE. SET UP AT INIT TIME.
; FF - PC1
; FE - XT (64/256K PLANAR)
; FD - PC-JR
; FC - PC/AT
public Secondary_Model_Byte
Secondary_Model_Byte db 0
PUBLIC ORIG19
ORIG19 DD ?
PUBLIC INT19SEM
INT19SEM DB 0 ; INDICATE THAT ALL INT 19
; INITIALIZATION IS COMPLETE
IRP AA,<02,08,09,0A,0B,0C,0D,0E,70,72,73,74,76,77>
public Int19OLD&AA
Int19OLD&AA dd -1 ;Orignal hardware int. vectors for INT 19h.
ENDM
EVENB
PUBLIC DSKDRVS
DSKDRVS DW FDRIVE1
DW FDRIVE2
DW FDRIVE3
DW FDRIVE4
PUBLIC HDSKTAB
HDSKTAB DW HDRIVE
DW DRIVEX
;* Next area is reseved for mini disk BPB pointers *** J.K. 4/7/86
;* Don't change this position. Should be addressible from DskDrvs *** J.K. 4/7/86
MINI_DISK_BPB_PTRS DB 40 dup (?) ;J.K. 4/7/86 - memory reserved for Mini disk.
EVENB
PUBLIC INT_2F_NEXT
INT_2F_NEXT DD ?
RET_ADDR DD ?
PATHEND 005,DISK
; = = = = = = = = = = = = = = = = = = = =
; INT19
;
; WE "HOOK" THE INT 19 VECTOR, BECAUSE CONTRARY TO IBM DOCUMENTATION,
; IT DOES NOT "BOOTSTRAP" THE MACHINE. IT LEAVES MEMORY ALMOST UNTOUCHED.
; SINCE THE BIOS_INIT CODE ASSUMES THAT CERTAIN INTERRUPT VECTORS POINT TO
; THE ROM_BIOS WE MUST "UNHOOK" THEM BEFORE ISSUING THE ACTUAL INT_19.
; CURRENTLY THE ONLY VECTORS THAT NEED TO BE UNHOOKED ARE INT_19, INT_13,
; AND THE HARDWARE INTERRUPTS.
;
PUBLIC INT19
INT19 PROC FAR
XOR AX,AX
MOV DS,AX
assume ds:nothing
assume es:nothing
LES DI,OLD13
MOV DS:[13H*4],DI
MOV DS:[13H*4+2],ES
CMP BYTE PTR INT19SEM, 0
JNZ INT19VECS
JMP DOINT19
; ON THE PCJR, DON'T REPLACE ANY VECTORS
; MODEL BYTE DEFINITIONS FROM IBMSTACK.ASM
MOV AX,ROMSEGMENT
MOV DS,AX
MOV AL,MODELPCJR
CMP AL,MODELBYTE
JNE INT19VECS
JMP DOINT19
;Stacks code has changed these hardware interrupt vectors
;STKINIT in SYSINIT1 will initialzie Int19hOLDxx values.
INT19VECS:
XOR AX,AX
MOV DS,AX
IRP AA,<02,08,09,0A,0B,0C,0D,0E,70,72,73,74,76,77>
LES DI,Int19OLD&AA
;SB33103******************************************************************
mov ax,es ;
cmp ax,-1 ;OPT 0ffffh is unlikely segment
je skip_int&AA ;OPT no need to check selector too
cmp di,-1 ;OPT 0ffffh is unlikely offset
je skip_int&AA
;SB33103******************************************************************
MOV DS:[AA&H*4],DI
MOV DS:[AA&H*4+2],ES
skip_int&AA:
ENDM
DOINT19:
LES DI,ORIG19
MOV DS:[19H*4],DI
MOV DS:[19H*4+2],ES
INT 19H
INT19 ENDP
ASSUME DS:CODE
PUBLIC DSK$INIT
DSK$INIT PROC NEAR
PUSH CS
POP DS
MOV AH,BYTE PTR DRVMAX
MOV DI,OFFSET DSKDRVS
JMP SETPTRSAV
DSK$INIT ENDP
;
; INT 2F HANDLER FOR EXTERNAL BLOCK DRIVERS TO COMMUNICATE WITH THE INTERNAL
; BLOCK DRIVER IN IBMDISK. THE MULTIPLEX NUMBER CHOSEN IS 8. THE HANDLER
; SETS UP THE POINTER TO THE REQUEST PACKET IN [PTRSAV] AND THEN JUMPS TO
; DSK$IN, THE ENTRY POINT FOR ALL DISK REQUESTS.
; ON EXIT FROM THIS DRIVER (AT EXIT), WE WILL RETURN TO THE EXTERNAL DRIVER
; THAT ISSUED THIS INT 2F, AND CAN THEN REMOVE THE FLAGS FROM THE STACK.
; THIS SCHEME ALLOWS US TO HAVE A SMALL EXTERNAL DEVICE DRIVER, AND MAKES
; THE MAINTAINANCE OF THE VARIOUS DRIVERS (DRIVER AND IBMBIO) MUCH EASIER,
; SINCE WE ONLY NEED TO MAKE CHANGES IN ONE PLACE (MOST OF THE TIME).
;
; 06/03/88 J.K. When AL=3, return DS:DI -> Start of BDS table.
; (EMS device driver hooks INT 13h to handle 16KB DMA overrun
; problem. BDS table is going to be used to get head/sector
; informations without calling Generic IOCTL Get Device Parm call.)
;
; AL CONTAINS THE INT2F FUNCTION:
; 0 - CHECK FOR INSTALLED HANDLER - RESERVED
; 1 - INSTALL THE BDS INTO THE LINKED LIST
; 2 - DOS REQUEST
; 3 - Get BDS vector ;06/03/88 J.K.
; Return BDS table starting pointer in DS:DI
MYNUM EQU 8
PUBLIC INT2F_DISK
INT2F_DISK PROC FAR
CMP AH,MYNUM
JE MINE
JMP CS:[INT_2F_NEXT] ; CHAIN TO NEXT INT 2F HANDLER
MINE:
CMP AL,0F8H ; IRET ON RESERVED FUNCTIONS
JB DO_FUNC
IRET
DO_FUNC:
OR AL,AL ; A GET INSTALLED STATE REQUEST?
JNE DISP_FUNC
MOV AL,0FFH
IRET
DISP_FUNC:
MESSAGE FTESTINIT,<"INT2F_DISK",CR,LF>
CMP AL,1 ; REQUEST FOR INSTALLING BDS?
JNE DO_DOS_REQ
CALL INSTALL_BDS
IRET
DO_DOS_REQ:
; SET UP POINTER TO REQUEST PACKET
cmp al, 3 ;AN002; Get BDS vector?
je DO_Get_BDS_Vector ;AN002;
MOV WORD PTR CS:[PTRSAV],BX ;othrwise DOS function.
MOV WORD PTR CS:[PTRSAV+2],ES
JMP DSK$IN
DO_Get_BDS_Vector: ;AN002; AL=3
push cs ;AN002;
pop ds ;AN002;
mov di, Start_BDS ;AN002;
IRET ;AN002;
INT2F_DISK ENDP
;
; INSTALL_BDS INSTALLS A BDS A LOCATION DS:DI INTO THE CURRENT LINKED LIST OF
; BDS MAINTAINED BY THIS DEVICE DRIVER. IT PLACES THE BDS AT THE END OF THE
; LIST.
PUBLIC INSTALL_BDS
INSTALL_BDS PROC NEAR
MESSAGE FTESTINIT,<"INSTALL BDS",CR,LF>
; DS:DI POINT TO BDS TO BE INSTALLED
LES SI,DWORD PTR CS:[START_BDS] ; START AT BEGINNING OF LIST
PUSH ES ; SAVE POINTER TO CURRENT BDS
PUSH SI
; ES:SI NOW POINT TO BDS IN LINKED LIST
LOOP_NEXT_BDS:
CMP SI,-1 ; GOT TO END OF LINKED LIST?
JZ INSTALL_RET
; IF WE HAVE SEVERAL LOGICAL DRIVES USING THE SAME PHYSICAL DRIVE, WE MUST
; SET THE I_AM_MULT FLAG IN EACH OF THE APPROPRIATE BDSS.
MOV AL,BYTE PTR DS:[DI].DRIVENUM
CMP BYTE PTR ES:[SI].DRIVENUM,AL
JNZ NEXT_BDS
MESSAGE FTESTINIT,<"LOGICAL DRIVES",CR,LF>
XOR BX,BX
MOV BL,FI_AM_MULT
OR WORD PTR DS:[DI].FLAGS,BX ; SET FLAGS IN BOTH BDSS CONCERNED
OR WORD PTR ES:[SI].FLAGS,BX
MOV BL,FI_OWN_PHYSICAL
XOR BX,-1
AND WORD PTR DS:[DI].FLAGS,BX ; RESET THAT FLAG FOR 'NEW' BDS
; WE MUST ALSO SET THE FCHANGELINE BIT CORRECTLY.
MOV BX,WORD PTR ES:[SI].FLAGS ; DETERMINE IF CHANGELINE AVAILABLE
AND BL,FCHANGELINE
XOR BH,BH
OR WORD PTR DS:[DI].FLAGS,BX
NEXT_BDS:
; BEFORE MOVING TO NEXT BDS, PRESERVE POINTER TO CURRENT ONE. THIS IS NEEDED AT
; THE END WHEN THE NEW BDS IS LINKED INTO THE LIST.
POP BX ; DISCARD PREVIOUS POINTER TO BDS
POP BX
PUSH ES
PUSH SI
MOV BX,WORD PTR ES:[SI].LINK + 2
MOV SI,WORD PTR ES:[SI].LINK
MOV ES,BX
JMP SHORT LOOP_NEXT_BDS
INSTALL_RET:
POP SI ; RETRIEVE POINTER TO LAST BDS
POP ES ; IN LINKED LIST.
MOV AX,DS
MOV WORD PTR ES:[SI].LINK+2,AX ; INSTALL BDS
MOV WORD PTR ES:[SI].LINK,DI
MOV WORD PTR DS:[DI].LINK,-1 ; SET NEXT POINTER TO NULL
RET
INSTALL_BDS ENDP
;
; RE_INIT INSTALLS THE INT 2F VECTOR THAT WILL HANDLE COMMUNICATION BETWEEN
; EXTERNAL BLOCK DRIVERS AND THE INTERNAL DRIVER. IT ALSO INSTALLS THE
; RESET_INT_13 INTERFACE. IT IS CALLED BY SYSYINIT
;
PUBLIC RE_INIT
RE_INIT PROC FAR
MESSAGE FTESTINIT,<"REINIT",CR,LF>
PUSH AX
PUSH DS
PUSH DI
XOR DI,DI
MOV DS,DI
MOV DI,2FH*4 ; POINT IT TO INT 2F VECTOR
MOV AX,WORD PTR DS:[DI]
MOV WORD PTR CS:[INT_2F_NEXT],AX
MOV AX,WORD PTR DS:[DI+2] ; PRESERVE OLD INT 2F VECTOR
MOV WORD PTR CS:[INT_2F_NEXT+2],AX
; INSTALL THE RESET_INT_13
; INTERFACE
;
; THE FOLLOWING TWO LINES ARE NOT NEEDED ANYMORE BECAUSE THE LINK HAS BEEN
; HARD-WIRED INTO THE CODE AT NEXT2F_13. - RAJEN.
;------------------------------------------------------------------------------
; MOV WORD PTR CS:[NEXT2F_13],OFFSET INT2F_DISK ; PRESERVE INT2F_DISK POINTER
; MOV WORD PTR CS:[NEXT2F_13+2],CS
;------------------------------------------------------------------------------
CLI
MOV WORD PTR DS:[DI],OFFSET INT_2F_13 ; INSTALL NEW VECTORS
MOV WORD PTR DS:[DI+2],CS
STI
POP DI
POP DS
POP AX
RET
RE_INIT ENDP
;-------------------------------------------------
;
; ASK TO SWAP THE DISK IN DRIVE A:
;
PUBLIC SWPDSK
SWPDSK PROC NEAR
MOV AL,BYTE PTR DS:[DI].DRIVELET ; GET THE DRIVE LETTER
;USING A DIFFERENT DRIVE IN A ONE DRIVE SYSTEM SO REQUEST THE USER CHANGE DISKS
ADD AL,"A"
MOV CS:DRVLET,AL
PUSH DS ; PRESERVE SEGMENT REGISTER
PUSH CS
POP DS
MOV SI,OFFSET SNGMSG ; DS:SI -> MESSAGE
PUSH BX
CALL WRMSG ;PRINT DISK CHANGE MESSAGE
CALL FLUSH
;SB33003***************************************************************
xor AH, AH ; set command to read character;SB
int 16h ; call rom-bios ;SB
;SB33003***************************************************************
POP BX
POP DS ; RESTORE SEGMENT REGISTER
WRMRET:
RET
SWPDSK ENDP
;----------------------------------------------
;
; WRITE OUT MESSAGE POINTED TO BY [SI]
;
PUBLIC WRMSG
WRMSG PROC NEAR
LODSB ;GET THE NEXT CHARACTER OF THE MESSAGE
OR AL,AL ;SEE IF END OF MESSAGE
JZ WRMRET
; INT CHROUT
PUSHF
PUSH CS
CALL OUTCHR
JMP SHORT WRMSG
WRMSG ENDP
; INCLUDE BIOMES.INC
include MSBIO.CL2
;
; END OF SUPPORT FOR MULTIPLE FLOPPIES WITH NO LOGICAL DRIVES
; THIS IS NOT 'SPECIAL' ANY MORE BECAUSE WE NOW HAVE THE CAPABILITY OF
; DEFINING LOGICAL DRIVES IN CONFIG.SYS. WE THEREFORE KEEP THE CODE FOR
; SWAPPING RESIDENT ALL THE TIME.
;
;J.K. 10/1/86 *******************************************************
;Variables for Dynamic Relocatable modules
;These should be stay resident.
public INT6C_RET_ADDR
INT6C_RET_ADDR DD ? ; return address from INT 6C for P12 machine
PATHSTART 001,CLK
;
; DATA STRUCTURES FOR REAL-TIME DATE AND TIME
;
public BIN_DATE_TIME
public MONTH_TABLE
public DAYCNT2
public FEB29
BIN_DATE_TIME:
DB 0 ; CENTURY (19 OR 20) OR HOURS (0-23)
DB 0 ; YEAR IN CENTURY (0...99) OR MINUTES (0-59)
DB 0 ; MONTH IN YEAR (1...12) OR SECONDS (0-59)
DB 0 ; DAY IN MONTH (1...31)
MONTH_TABLE: ;
DW 0 ;MJB002 JANUARY
DW 31 ;MJB002 FEBRUARY
DW 59 ;MJB002
DW 90 ;MJB002
DW 120 ;MJB002
DW 151 ;MJB002
DW 181 ;MJB002
DW 212 ;MJB002
DW 243 ;MJB002
DW 273 ;MJB002
DW 304 ;MJB002
DW 334 ;MJB002 DECEMBER
DAYCNT2 DW 0000 ;MJB002 TEMP FOR COUNT OF DAYS SINCE 1-1-80
FEB29 DB 0 ;MJB002 FEBRUARY 29 IN A LEAP YEAR FLAG
PATHEND 001,CLK
;********************************************************************
;
PUBLIC ENDFLOPPY
ENDFLOPPY LABEL BYTE
;
; END OF CODE FOR VIRTUAL FLOPPY DRIVES
;
PUBLIC ENDSWAP
ENDSWAP LABEL BYTE
PATHSTART 004,BIO
PUBLIC HNUM
HNUM DB 0 ;NUMBER OF HARDFILES
PUBLIC HARDDRV
HARDDRV DB 80H ;PHYSICAL DRIVE NUMBER OF FIRST HARDFILE
;**********************************************************************
; "HDRIVE" IS A HARD DISK WITH 512 BYTE SECTORS
;*********************************************************************
EVENB
PUBLIC BDSH
BDSH DW -1 ;LINK TO NEXT STRUCTURE
DW CODE
DB 80 ;INT 13 DRIVE NUMBER
DB "C" ;LOGICAL DRIVE LETTER
PUBLIC HDRIVE
HDRIVE:
DW 512
DB 1 ;SECTORS/ALLOCATION UNIT
DW 1 ;RESERVED SECTORS FOR DOS
DB 2 ;NO. OF ALLOCATION TABLES
DW 16 ;NUMBER OF DIRECTORY ENTRIES
DW 0000 ;NUMBER OF SECTORS (AT 512 BYTES EACH)
DB 11111000B ;MEDIA DESCRIPTOR
DW 1 ;NUMBER OF FAT SECTORS
DW 00 ;SECTOR LIMIT
DW 00 ;HEAD LIMIT
DW 00 ;HIDDEN SECTOR COUNT(low)
dw 00 ;AN000; Hidden Sector (high)
dw 00 ;AN000; Number of Sectors (low)
dw 00 ;AN000; Number of Sectors (high)
DB 0 ; TRUE => BIGFAT
OPCNTH DW 0 ;OPEN REF. COUNT
DB 3 ;FORM FACTOR
FLAGSH DW 0020H ;VARIOUS FLAGS
; DB 9 DUP (0) ;RESERVED FOR FUTURE USE
DW 40 ; NUMBER OF CYLINDERS
RECBPBH DB 31 DUP (?) ; RECOMMENDED BPB FOR DRIVE
TRACKH DB -1 ;LAST TRACK ACCESSED ON THIS DRIVE
TIM_LOH DW -1 ;KEEP THESE TWO CONTIGUOUS (?)
TIM_HIH DW -1
VOLIDH DB "NO NAME ",0 ;AN000; VOLUME ID FOR THIS DISK
VolSerH dd 0 ;AN000; Current volume serial number from Boot record
SysIDH db "FAT12 " ,0 ;AN000; Current file system id from Boot record
;
; END OF SINGLE HARD DISK SECTION
;
PUBLIC ENDONEHARD
ENDONEHARD LABEL BYTE
;**********************************************************************
; "DRIVEX " IS AN EXTRA TYPE OF DRIVE USUALLY RESERVED FOR AN
; ADDITIONAL HARD FILE
;*********************************************************************
EVENB
PUBLIC BDSX
BDSX DW -1 ;LINK TO NEXT STRUCTURE
DW CODE
DB 81 ;INT 13 DRIVE NUMBER
DB "D" ;LOGICAL DRIVE LETTER
PUBLIC DRIVEX
DRIVEX:
DW 512
DB 00 ;SECTORS/ALLOCATION UNIT
DW 1 ;RESERVED SECTORS FOR DOS
DB 2 ;NO. OF ALLOCATION TABLES
DW 0000 ;NUMBER OF DIRECTORY ENTRIES
DW 0000 ;NUMBER OF SECTORS (AT 512 BYTES EACH)
DB 11111000B ;MEDIA DESCRIPTOR
DW 0000 ;NUMBER OF FAT SECTORS
DW 00 ;SECTOR LIMIT
DW 00 ;HEAD LIMIT
DW 00 ;HIDDEN SECTOR COUNT (low)
dw 00 ;AN000; Hidden Sector (high)
dw 00 ;AN000; Number of Sectors (low)
dw 00 ;AN000; Number of Sectors (high)
DB 0 ; TRUE => BIGFAT
OPCNTD DW 0 ;OPEN REF. COUNT
DB 3 ;FORM FACTOR
FLAGSD DW 0020H ;VARIOUS FLAGS
; DB 9 DUP (0) ;RESERVED FOR FUTURE USE
DW 40 ; NUMBER OF CYLINDERS
RECBPBD DB 31 DUP (?) ; RECOMMENDED BPB FOR DRIVE
TRACKD DB -1 ;LAST TRACK ACCESSED ON THIS DRIVE
TIM_LOD DW -1 ;KEEP THESE TWO CONTIGUOUS (?)
TIM_HID DW -1
VOLIDD DB "NO NAME ",0 ;AN000; VOLUME ID FOR THIS DISK
VolSerD dd 0 ;AN000; Current volume serial number from Boot record
SysIDD db "FAT12 " ,0 ;AN000; Current file system id from Boot record
;
; END OF SECTION FOR TWO HARD DISKS
PUBLIC ENDTWOHARD
ENDTWOHARD LABEL BYTE
PATHEND 004,BIO
PUBLIC TWOHARD
TWOHARD LABEL BYTE
PAGE
INCLUDE MS96TPI.INC
;*********************************************************************
;Memory allocation for BDSM table. - J.K. 2/21/86
;*********************************************************************
PUBLIC BDSMs
BDSMs BDSM_type Max_mini_dsk_num dup (<>) ;currently max. 23
;** End_of_BDSM defined in IBMINIT.ASM will be used to set the appropriate
;** ending address of BDSM table.
;
;;3.3 BUG FIX -SP ------------------------------
;;Migrated into 4.00 -MRW
;Paragraph buffer between the BDSMs and MSHARD
;
;The relocation code for MSHARD needs this. this cannot be used for
;anything. nothing can come before this or after this.....IMPORTANT!!!!
;don't get too smart and using this buffer for anything!!!!!!
;
db 16 dup(0)
;
;end of bug fix buffer
;;
;;3.3 BUG FIX -SP------------------------------
CODE ENDS
END
|