mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
677 lines
12 KiB
NASM
677 lines
12 KiB
NASM
;---------------------------------------------------------------
|
||
;Rev Date Name Description
|
||
;---------------------------------------------------------------
|
||
;R02 06-08-2001 DNS Secondary IDE
|
||
;R01 06-08-2001 DNS Fixed BUG with partitions on Second hard disk
|
||
;---------------------------------------------------------------
|
||
;
|
||
; Disk Driver Specification ver. 2.20
|
||
;[]===========================================================[0]
|
||
;Procedure : Initialization
|
||
;
|
||
;Function : Initialization device(s)
|
||
;
|
||
;Input : C = 00h
|
||
; IX - Environment
|
||
;Output : A = Amount drive support
|
||
; HL = Size driver
|
||
;[]===========================================================[0]
|
||
|
||
;[]===========================================================[1]
|
||
;Procedure : Open
|
||
;
|
||
;Function : Open disk
|
||
;
|
||
;Input : C = 01h
|
||
; A - Drive
|
||
;Output : None
|
||
;
|
||
;[]===========================================================[1]
|
||
|
||
;[]===========================================================[2]
|
||
;Procedure : Close
|
||
;
|
||
;Function : Close disk
|
||
;
|
||
;Input : C = 02h
|
||
; A - Drive
|
||
;Output : None
|
||
;
|
||
;[]===========================================================[2]
|
||
|
||
;[]===========================================================[3]
|
||
;Procedure : Media check
|
||
;
|
||
;Function : Checking change line
|
||
;
|
||
;Input : C = 03h
|
||
; A - Drive
|
||
;Output : A = 00h disk no changed
|
||
; A = 0FFh disk changed
|
||
;
|
||
;[]===========================================================[3]
|
||
|
||
;[]===========================================================[4]
|
||
;Procedure : Get BPB
|
||
;
|
||
;Function : Get Block Parameters BIOS
|
||
;
|
||
;Input : C = 04h
|
||
; DE - Address
|
||
;Output : None
|
||
;
|
||
;[]===========================================================[4]
|
||
|
||
;[]===========================================================[5]
|
||
;Procedure : Input
|
||
;
|
||
;Function : Input from disk
|
||
;
|
||
;Input : C = 05h
|
||
; HL:IX - Logical Block (sector)
|
||
; DE - Address
|
||
; B - Sector count
|
||
;Output : None
|
||
;
|
||
;[]===========================================================[5]
|
||
|
||
;[]===========================================================[6]
|
||
;Procedure : Output
|
||
;
|
||
;Function : Output to disk
|
||
;
|
||
;Input : C = 06h
|
||
; HL:IX - Logical Block (sector)
|
||
; DE - Address
|
||
; B - Sector count
|
||
;Output : None
|
||
;
|
||
;[]===========================================================[6]
|
||
|
||
;[]===========================================================[7]
|
||
;Procedure : Removable
|
||
;
|
||
;Function : Checking change line
|
||
;
|
||
;Input : C = 07h
|
||
; A - Drive
|
||
;Output : A = 00h Removable
|
||
; A = FFh Nonremovable
|
||
;
|
||
;[]===========================================================[7]
|
||
|
||
;[]===========================================================[8]
|
||
;Procedure : Generic IOCTL
|
||
;
|
||
;Function : Generic Input Output Control
|
||
;
|
||
;Input : C = 08h
|
||
; B - Subcommand
|
||
; DE = 55AAh Magic Number
|
||
; Subcommand
|
||
;----------------------
|
||
; 00h - Get Device Parameters
|
||
; 01h - Read track
|
||
; 02h - Test track
|
||
; 80h - Set Device Parameters
|
||
; 81h - Write track
|
||
; 82h - Format track
|
||
;Output :
|
||
;
|
||
;[]===========================================================[8]
|
||
|
||
;[]===========================================================[9]
|
||
;Procedure : Read Long
|
||
;
|
||
;Function : Reading sectors from disk
|
||
;
|
||
;Input : C = 0Ah
|
||
; HL:IX - Logical Block (sector)
|
||
; DE - Address
|
||
; B - Sector count
|
||
; A'- Page
|
||
;Output : A'- Next Page
|
||
; HL:IX - Next Logical Block (sector)
|
||
; DE - Next Address
|
||
;
|
||
;[]===========================================================[9]
|
||
|
||
;[]===========================================================[10]
|
||
;Procedure : Write Long
|
||
;
|
||
;Function : Writing sectors to disk
|
||
;
|
||
;Input : C = 0Bh
|
||
; HL:IX - Logical Block (sector)
|
||
; DE - Address
|
||
; B - Sector count
|
||
; A'- Page
|
||
;Output : A'- Next Page
|
||
; HL:IX - Next Logical Block (sector)
|
||
; DE - Next Address
|
||
;
|
||
;[]===========================================================[10]
|
||
|
||
;
|
||
; Errors:
|
||
; 0 (00h) - NO ERRORS
|
||
; 1 (01h) - BAD COMMAND
|
||
; 2 (02h) - BAD DRIVE NUMBER
|
||
; 3 (03h) - UNKNOW FORMAT
|
||
; 4 (04h) - NOT READY
|
||
; 5 (05h) - SEEK ERROR
|
||
; 6 (06h) - SECTOR NOT FOUND
|
||
; 7 (07h) - CRC ERROR
|
||
; 8 (08h) - WRITE PROTECT
|
||
; 9 (09h) - READ ERROR
|
||
; 10 (0Ah) - WRITE ERROR
|
||
; 11 (0Bh) - FAILURE
|
||
; 12 (0Ch) - BUSY (DEVICE OPENED)
|
||
; 13 (0Dh) - RESERVED
|
||
|
||
; IDE0 EQU #0C1C0
|
||
; IDE1 EQU #0C1C8
|
||
PART EQU #C000
|
||
|
||
HDDRIVE INC C
|
||
DEC C
|
||
JP Z,INIT_H ; c=0 Initialization
|
||
DEC C
|
||
JP Z,RESE_H ; c=1 open
|
||
DEC C
|
||
JP Z,STAT_H ; c=2 close
|
||
DEC C
|
||
JP Z,CHEK_H ; c=3 media check (ᬥ<><E1ACA5> <20><><EFBFBD><EFBFBD>⥫<EFBFBD>)
|
||
DEC C
|
||
JP Z,GBPB_H ; c=4 get BPB
|
||
DEC C
|
||
JP Z,READH ; c=5 input (<28>⥭<EFBFBD><E2A5AD> ᥪ<><E1A5AA>)
|
||
DEC C
|
||
JP Z,WRITEH ; c=6 output (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᥪ<><E1A5AA>)
|
||
DEC C
|
||
JP Z,REMOV_H ; c=7 Removable
|
||
DEC C
|
||
JP Z,IOCTL_H ; c=8 㧭<><E3A7AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>᪠ Generic IOCTL
|
||
DEC C
|
||
JP Z,RESR_H ; c=9 Reserved
|
||
DEC C
|
||
JP Z,LREADH ; c=10 Read Long
|
||
DEC C
|
||
JP Z,LWRITEH ; c=11 Write Long
|
||
RESR_H LD A,DSS_Error.drv.INVALID_COMMAND
|
||
SCF
|
||
RET
|
||
|
||
|
||
////////////////////////////////////////////////////////////////////////
|
||
// Commands for restart #18 //
|
||
////////////////////////////////////////////////////////////////////////
|
||
|
||
;--------------------------------------------------------------------[v]
|
||
; c=0 Initialization
|
||
INIT_H: PUSH IY
|
||
;!TEST ;[ ]
|
||
XOR A
|
||
LD (DRVCLC.count),A
|
||
LD HL,LOGDRV
|
||
LD (OFFSECT),HL
|
||
|
||
LD IX,SYS_PAGE.TMP_BUFFER
|
||
LD C,BIOS.DRV_LIST
|
||
RST ToBIOS
|
||
; DRV_LIST:
|
||
; +0 LEN
|
||
; +1 FDD COUNT
|
||
; +2 HDD COUNT
|
||
; +3 CDROM COUNT
|
||
; +4 RESERVED (28)
|
||
;
|
||
IN A,(SLOT3)
|
||
LD C,A
|
||
LD A,SYS_PAGE
|
||
OUT (SLOT3),A
|
||
XOR A
|
||
LD B,(IX+2) ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ HDD <20><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> NX_DVCI
|
||
CP B
|
||
LD A,C
|
||
OUT (SLOT3),A
|
||
JR Z,NO_HARDS
|
||
LD C,#80 ;!HARDCODE - ID <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> BIOS.DRV_DETECT
|
||
|
||
NX_DVCI: PUSH BC
|
||
LD A,C
|
||
LD (DRV_NUM),A
|
||
LD C,BIOS.DRV_DETECT
|
||
RST ToBIOS
|
||
;JR C,.NO_DRIVE
|
||
CALL NC,PARTIT
|
||
POP BC
|
||
INC C
|
||
JR C,NX_DVCI
|
||
DJNZ NX_DVCI
|
||
;
|
||
NO_HARDS:
|
||
POP IY
|
||
;!TEST
|
||
; LD HL,(OFFSECT)
|
||
; LD DE,LOGDRV
|
||
; XOR A
|
||
; SBC HL,DE
|
||
; RET Z
|
||
; LD DE,LOGDRV.TBL_Entry
|
||
DRVCLC: ; INC A
|
||
; SBC HL,DE
|
||
; JR NZ,DRVCLC
|
||
;
|
||
.count+1: LD A,0
|
||
;
|
||
AND A
|
||
RET
|
||
;---------------------------------------------------------------------[^]
|
||
|
||
; ;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||
; ;+01 DWORD SECTOR OFFSET
|
||
; ;+05 DWORD SIZE IN SECTORS
|
||
; ;+09 FREE
|
||
; ;+15
|
||
; LOGDRV: BLOCK .TBL_Entry * LD_DSK,0 ;!FIXIT <20><>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ࠬ <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
|
||
; .TBL_Entry EQU 16
|
||
; .Size EQU $-LOGDRV
|
||
|
||
;!TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PUSH <20><> EXX?
|
||
SELHDD: PUSH DE
|
||
PUSH BC
|
||
PUSH HL
|
||
;
|
||
LD L,A
|
||
LOGDRV_ENTRY_FIND LOGDRV
|
||
;
|
||
LD C,(IY+1)
|
||
LD B,(IY+2)
|
||
LD E,(IY+3)
|
||
LD D,(IY+4)
|
||
POP HL
|
||
ADD IX,BC
|
||
ADC HL,DE
|
||
LD A,(IY+0) ;DRIVE NUMBER
|
||
POP BC
|
||
POP DE
|
||
RET
|
||
|
||
; 00 - GET DEVICE PARAMETERS
|
||
; 01 - READ TRACK
|
||
; 02 - TEST TRACK
|
||
; 80 - SET DEVICE PARAMETERS
|
||
; 81 - WRITE TRACK
|
||
; 82 - FORMAT TRACK
|
||
IOCTL_H BIT 7,B
|
||
JR NZ,O_CTL_H
|
||
INC B
|
||
DEC B
|
||
JP Z,HGETPRM
|
||
DEC B
|
||
JP Z,HRDTRAC
|
||
DEC B
|
||
JP Z,HCHTRAC
|
||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||
SCF
|
||
RET
|
||
|
||
O_CTL_H RES 7,B
|
||
INC B
|
||
DEC B
|
||
JP Z,HSETPRM
|
||
DEC B
|
||
JP Z,HWRTRAC
|
||
DEC B
|
||
JP Z,HFRTRAC
|
||
LD A,DSS_Error.drv.INVALID_COMMAND
|
||
SCF
|
||
RET
|
||
|
||
HRDTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
|
||
SCF
|
||
RET
|
||
|
||
HCHTRAC LD B,L
|
||
CALL CHECKH
|
||
RET
|
||
|
||
HSETPRM AND A
|
||
RET
|
||
|
||
HWRTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
|
||
SCF
|
||
RET
|
||
|
||
HFRTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
|
||
SCF
|
||
RET
|
||
|
||
; HL:DE - SECTORS ON LOGICAL DISK
|
||
; HL' - CYLINDERS ON PHISICAL DISK
|
||
; DE' - HEADS ON PHISICAL DISK
|
||
; BC' - SECTORS PER TRACK ON PHISICAL DISK
|
||
; A' - PHISICAL DRIVE NUMBER
|
||
; A - DRIVE/HEAD REGISTER PHISICAL DISK:
|
||
; bit7 - reserved "1"
|
||
; bit6 - ADDRESSING MODE LBA/CHS
|
||
; bit5 - reserved "1"
|
||
; bit4 - DEVICE MASTER/SLAVE
|
||
; bit3 - reserved "0" (MAY BE OTHER)
|
||
; bit2 - reserved "0" (MAY BE OTHER)
|
||
; bit1 - reserved "0" (MAY BE OTHER)
|
||
; bit0 - Primary/Secondary Chanel
|
||
HGETPRM:
|
||
EX DE,HL
|
||
LD BC,#55AA
|
||
AND A
|
||
SBC HL,BC
|
||
LD L,A
|
||
LD A,DSS_Error.drv.GENERAL_FAILURE
|
||
SCF
|
||
RET NZ
|
||
;
|
||
PUSH IX
|
||
PUSH IY
|
||
;
|
||
LOGDRV_ENTRY_FIND LOGDRV
|
||
;
|
||
LD A,(IY+0) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||
PUSH IY
|
||
LD C,BIOS.DRV_GET_PAR
|
||
RST ToBIOS
|
||
POP IY
|
||
LD A,DSS_Error.drv.INVALID_DRIVE
|
||
JR C,.error
|
||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> ॣ<><E0A5A3><EFBFBD> <20> १<><E0A5A7><EFBFBD><EFBFBD><EFBFBD>⮬ <20><> BIOS
|
||
EX DE,HL
|
||
LD C,E
|
||
LD E,D
|
||
LD D,0
|
||
LD A,B
|
||
LD B,D
|
||
EXX
|
||
; SECTORS ON LOGICAL DISK
|
||
LD E,(IY+5)
|
||
LD D,(IY+6)
|
||
LD L,(IY+7)
|
||
LD H,(IY+8)
|
||
;
|
||
EX AF,AF'
|
||
LD A,(IY+0) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||
EX AF,AF'
|
||
;
|
||
AND A
|
||
.error: POP IY
|
||
POP IX
|
||
RET
|
||
|
||
REMOV_H:
|
||
LD A,1
|
||
AND A
|
||
RET
|
||
|
||
|
||
|
||
RESE_H: XOR A
|
||
RET
|
||
|
||
STAT_H: XOR A
|
||
RET
|
||
|
||
CHEK_H: ;LD A,#FF
|
||
XOR A
|
||
;AND A
|
||
RET
|
||
|
||
|
||
;HL:IX - SECTOR
|
||
; DE - ADDRESS
|
||
GBPB_H: PUSH IY
|
||
PUSH DE
|
||
LD L,A
|
||
;
|
||
LOGDRV_ENTRY_FIND LOGDRV
|
||
;
|
||
LD E,(IY+1)
|
||
LD D,(IY+2)
|
||
LD L,(IY+3)
|
||
LD H,(IY+4)
|
||
LD XL,E
|
||
LD XH,D
|
||
LD A,(IY+0)
|
||
POP DE
|
||
POP IY
|
||
LD BC,1*256 + BIOS.DRV_READ
|
||
JP ToBIOS
|
||
|
||
|
||
;HL:IX - SECTOR
|
||
; DE - ADDRESS
|
||
; B - COUNTER
|
||
; A'- PAGE
|
||
; A - HDD LOG NUMBER
|
||
;READ SECTOR
|
||
LREADH: PUSH IY
|
||
CALL SELHDD
|
||
LD C,BIOS.DRV_READ_LONG
|
||
RST ToBIOS
|
||
POP IY
|
||
RET
|
||
|
||
;HL:IX - SECTOR
|
||
; DE - ADDRESS
|
||
; B - COUNTER
|
||
; A'- PAGE
|
||
; A - HDD NUMBER +#80
|
||
;WRITE SECTOR
|
||
LWRITEH:
|
||
PUSH IY
|
||
CALL SELHDD
|
||
LD C,BIOS.DRV_WRITE_LONG
|
||
RST ToBIOS
|
||
POP IY
|
||
RET
|
||
|
||
;HL:IX - SECTOR
|
||
; DE - ADDRESS
|
||
; B - COUNTER
|
||
; A - HDD NUMBER +#80
|
||
;WRITE SECTOR
|
||
WRITEH: PUSH IY
|
||
CALL SELHDD
|
||
LD C,BIOS.DRV_WRITE
|
||
RST ToBIOS
|
||
POP IY
|
||
RET
|
||
|
||
;HL:IX - SECTOR
|
||
; DE - ADDRESS
|
||
; B - COUNTER
|
||
; A - HDD NUMBER +#80
|
||
;READ SECTOR
|
||
READH: PUSH IY
|
||
CALL SELHDD
|
||
LD C,BIOS.DRV_READ
|
||
RST ToBIOS
|
||
POP IY
|
||
RET
|
||
|
||
;HL:IX - SECTOR
|
||
; DE - ADDRESS
|
||
; B - COUNTER
|
||
; A - HDD NUMBER +#80
|
||
;CHECK SECTOR
|
||
CHECKH: PUSH IY
|
||
CALL SELHDD
|
||
LD C,BIOS.DRV_VERIFY
|
||
RST ToBIOS
|
||
POP IY
|
||
RET
|
||
|
||
;-----------------
|
||
EASYDOS:
|
||
MEDIDOS:
|
||
HIGHDOS:
|
||
LD E,(IY+08)
|
||
LD D,(IY+09)
|
||
LD L,(IY+10)
|
||
LD H,(IY+11)
|
||
LD IX,(CURSECL)
|
||
ADD IX,DE
|
||
LD DE,(CURSECH)
|
||
ADC HL,DE
|
||
LD D,XH
|
||
LD E,XL
|
||
LD IX,(OFFSECT)
|
||
LD (IX+1),E ;BPB SECTOR
|
||
LD (IX+2),D
|
||
LD (IX+3),L
|
||
LD (IX+4),H
|
||
LD E,(IY+12)
|
||
LD D,(IY+13)
|
||
LD L,(IY+14)
|
||
LD H,(IY+15)
|
||
LD (IX+5),E ;SIZE DISK
|
||
LD (IX+6),D
|
||
LD (IX+7),L
|
||
LD (IX+8),H
|
||
;!TEST <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><E5AEA2> <20><> <20><>९<EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD> LOGDRV
|
||
LD A,(DRVCLC.count)
|
||
INC A
|
||
CP DSS_MAX_DRIVES_AMOUNT+1
|
||
RET NC
|
||
LD (DRVCLC.count),A
|
||
;
|
||
LD A,(DRV_NUM)
|
||
LD (IX+0),A
|
||
LD DE,LOGDRV.TBL_Entry ;DSKITEM
|
||
ADD IX,DE
|
||
LD (OFFSECT),IX
|
||
NXTPART:
|
||
LD DE,#10 ;!HARDCODE SZ_PTE - Size of a partition table entry
|
||
ADD IY,DE
|
||
POP BC
|
||
DJNZ DOSAGA
|
||
AND A
|
||
RET
|
||
|
||
|
||
;
|
||
NOEXTDS:
|
||
CP #0F
|
||
JR Z,SUBLEV
|
||
CP #0E
|
||
JR Z,HIGHDOS
|
||
CP 6
|
||
JR Z,HIGHDOS
|
||
CP 4
|
||
JR Z,MEDIDOS
|
||
CP 1
|
||
JR Z,EASYDOS
|
||
POP BC
|
||
OR A
|
||
RET Z
|
||
NODEFIN:
|
||
SCF
|
||
RET
|
||
;
|
||
|
||
|
||
PARTIT: IN A,(SLOT3)
|
||
PUSH AF
|
||
LD A,SHARED_PAGE
|
||
OUT (SLOT3),A
|
||
CALL PARTIT1
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
RET
|
||
|
||
PARTIT1:
|
||
LD IX,0
|
||
LD DE,0
|
||
LD (EXTDOSL),DE ;R01
|
||
LD (EXTDOSH),IX ;R01
|
||
PARTIT2:
|
||
LD (CURSECL),DE
|
||
LD (CURSECH),IX
|
||
CALL LOADSEC
|
||
;!TEST
|
||
;RET C ; for absent drive
|
||
;
|
||
LD HL,(PART+510) ;!HARDCODE Signature word
|
||
LD DE,#AA55
|
||
AND A
|
||
SBC HL,DE
|
||
JR NZ,NODEFIN
|
||
;
|
||
LD IY,PART+#01BE ;!HARDCODE MBR: Offset of partition table in the MBR
|
||
LD B,4 ;!HARDCODE MBR: Number of entries in the partition table
|
||
DOSAGA: PUSH BC
|
||
LD A,(IY+4)
|
||
CP 5
|
||
JR NZ,NOEXTDS
|
||
SUBLEV: PUSH IY
|
||
LD DE,(CURSECL)
|
||
LD IX,(CURSECH)
|
||
PUSH DE
|
||
PUSH IX
|
||
CALL EXTDOS
|
||
POP IX
|
||
POP DE
|
||
LD (CURSECL),DE
|
||
LD (CURSECH),IX
|
||
CALL LOADSEC
|
||
POP IY
|
||
JP NXTPART
|
||
;
|
||
EXTDOS: LD HL,(EXTDOSL)
|
||
LD DE,(EXTDOSH)
|
||
LD A,L
|
||
OR H
|
||
OR E
|
||
OR D
|
||
LD E,(IY+08)
|
||
LD D,(IY+09)
|
||
LD L,(IY+10)
|
||
LD H,(IY+11)
|
||
JP NZ,EXTDOS2
|
||
LD (EXTDOSL),DE
|
||
LD (EXTDOSH),HL
|
||
LD IX,(EXTDOSH)
|
||
JP PARTIT2
|
||
;
|
||
EXTDOS2:
|
||
LD IX,(EXTDOSL)
|
||
ADD IX,DE
|
||
PUSH IX
|
||
LD DE,(EXTDOSH)
|
||
ADC HL,DE
|
||
PUSH HL
|
||
POP IX
|
||
POP DE
|
||
JP PARTIT2
|
||
|
||
LOADSEC:
|
||
PUSH IY
|
||
LD IX,(CURSECL)
|
||
LD HL,(CURSECH)
|
||
LD DE,PART
|
||
LD A,(DRV_NUM)
|
||
LD BC,1*256 + BIOS.DRV_READ
|
||
RST ToBIOS
|
||
POP IY
|
||
RET
|
||
|
||
DRV_NUM DB #00 ;PHISICAL DRIVE NUMBER. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (#80/#81 - primary <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<><E1ABA5>, #82/#83 - secondary <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<><E1ABA5>)
|
||
|
||
CURSECL DW #0000 ;CURRENT SECTOR LOADED
|
||
CURSECH DW #0000
|
||
|
||
EXTDOSL DW #0000 ;CURRENT PARTITION TABLE
|
||
EXTDOSH DW #0000
|
||
|
||
OFFSECT DW LOGDRV ;POINTER ON CURRENT DISK RECORD
|
||
|
||
;======================================================= |