mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 17:31:45 +03:00
...
This commit is contained in:
parent
d6ed41730c
commit
f734b2a361
@ -1 +1 @@
|
||||
Subproject commit d1ce63928bdbb44e48b311f9d4a0005c2f44fcd4
|
||||
Subproject commit 24e062942e2c89a1bcd5817cc82316b52186f86c
|
||||
@ -6,25 +6,25 @@
|
||||
; MS-DOS utilites
|
||||
;********************************************
|
||||
|
||||
;************************************************
|
||||
;* <09>à®£à ¬¬ ç⥨ï/§ ¯¨á¨ MS-DOS ¤¨áª®¢ *
|
||||
;* 1. €¤à¥á ¡ãä¥à - HL *
|
||||
;* 2. <20>®¬¥à ᥪâ®à - DE *
|
||||
;* 3. —¨á«® ᥪâ®à®¢ - B *
|
||||
;* 4. Š®¬ ¤ - C *
|
||||
;* 5. ‘âà ¨æ Ž‡“ - A *
|
||||
;************************************************
|
||||
HDD_REDIR:
|
||||
POP AF
|
||||
CALL HD_CMD
|
||||
RET NC
|
||||
JP HDD_ERROR
|
||||
|
||||
MSD_R_W_UT:
|
||||
PUSH AF
|
||||
CALL DISK_REDIR
|
||||
CP #40
|
||||
JR NC,HDD_REDIR
|
||||
JR C,.NOT_HDD
|
||||
;************************************************
|
||||
;* <20>®¤¯à®£à ¬¬ ç⥨ï/§ ¯¨á¨ MS-DOS ¤¨áª®¢ *
|
||||
;* 1. €¤à¥á ¡ãä¥à - HL *
|
||||
;* 2. <20>®¬¥à ᥪâ®à - DE *
|
||||
;* 3. —¨á«® ᥪâ®à®¢ - B *
|
||||
;* 4. Š®¬ ¤ - C *
|
||||
;* 5. ‘âà ¨æ Ž‡“ - A *
|
||||
;************************************************
|
||||
.HDD: POP AF
|
||||
CALL HD_CMD
|
||||
RET NC
|
||||
JP HDD_ERROR
|
||||
;************************************************
|
||||
.NOT_HDD:
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
LD A,C
|
||||
@ -417,21 +417,19 @@ SET_1440:
|
||||
READ_BPB:
|
||||
CALL DISK_REDIR
|
||||
CP #40
|
||||
JR NC,HDD_REDIR2
|
||||
JR NC,.HDD_REDIR2
|
||||
CP 4
|
||||
JP NC,ERROR_MSDOS
|
||||
JP NC,.ERROR_MSDOS
|
||||
|
||||
CALL SET_DISK
|
||||
|
||||
CALL MAIN_BPB
|
||||
CALL .MAIN
|
||||
RET NC
|
||||
JP ERROR_MSDOS
|
||||
|
||||
HDD_REDIR2:
|
||||
CALL MAIN_BPB
|
||||
JP .ERROR_MSDOS
|
||||
.HDD_REDIR2:
|
||||
CALL .MAIN
|
||||
RET NC
|
||||
|
||||
SPACIAL_BPB:
|
||||
.SPACIAL:
|
||||
LD IX,0
|
||||
LD DE,63
|
||||
LD A,SYS_PAGE
|
||||
@ -439,43 +437,38 @@ SPACIAL_BPB:
|
||||
LD C,BIOS.HDD_READ and #BF
|
||||
LD B,1
|
||||
CALL MSD_R_W_UT
|
||||
CALL BPB_PARAMS
|
||||
CALL READ_BPB.PARAMS
|
||||
RET NC
|
||||
JP ERROR_MSDOS
|
||||
|
||||
MAIN_BPB:
|
||||
;LD IX,0
|
||||
;LD DE,0
|
||||
LD A,SYS_PAGE
|
||||
JP .ERROR_MSDOS
|
||||
.MAIN: LD A,SYS_PAGE
|
||||
LD HL,MS_BPB
|
||||
LD C,BIOS.HDD_READ_BPB and #BF
|
||||
;LD B,1
|
||||
CALL MSD_R_W_UT
|
||||
CALL BPB_PARAMS
|
||||
RET
|
||||
;CALL BPB_PARAMS
|
||||
;RET
|
||||
|
||||
; LD C,18H
|
||||
; LD A,(OPER_DISK)
|
||||
; CALL HD_CMD
|
||||
; LD C,18H
|
||||
; LD A,(OPER_DISK)
|
||||
; CALL HD_CMD
|
||||
; ;
|
||||
; DI
|
||||
; IN A,(PAGE3)
|
||||
; EX AF,AF'
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (PAGE3),A
|
||||
; ;
|
||||
; LD A,(MS_BPB+S_P_T) ; Š®«¨ç¥á⢮ ᥪâ®à®¢ â४
|
||||
; LD L,A
|
||||
; ;
|
||||
; EX AF,AF'
|
||||
; OUT (PAGE3),A
|
||||
; EI
|
||||
; ;
|
||||
; LD A,(OPER_DISK)
|
||||
; LD C,19H
|
||||
; CALL HD_CMD
|
||||
|
||||
; DI
|
||||
; IN A,(PAGE3)
|
||||
; EX AF,AF'
|
||||
; LD A,SYS_PAGE
|
||||
; OUT (PAGE3),A
|
||||
;
|
||||
; LD A,(MS_BPB+S_P_T) ; Š®«¨ç¥á⢮ ᥪâ®à®¢ â४
|
||||
; LD L,A
|
||||
;
|
||||
; EX AF,AF'
|
||||
; OUT (PAGE3),A
|
||||
; EI
|
||||
;
|
||||
; LD A,(OPER_DISK)
|
||||
; LD C,19H
|
||||
; CALL HD_CMD
|
||||
|
||||
BPB_PARAMS:
|
||||
.PARAMS:
|
||||
DI
|
||||
IN A,(PAGE3)
|
||||
EX AF,AF'
|
||||
@ -484,35 +477,32 @@ BPB_PARAMS:
|
||||
|
||||
LD A,(MS_BPB+FORM_CODE)
|
||||
CP #F0
|
||||
JP C,ERROR_BPB
|
||||
JP C,.ERROR_BPB
|
||||
|
||||
LD HL,MS_BPB+FAT_ID
|
||||
LD DE,FAT1_MSG
|
||||
LD DE,.FAT1_MSG
|
||||
LD B,4
|
||||
R_BPB_L1:
|
||||
LD A,(DE)
|
||||
.L1: LD A,(DE)
|
||||
CP ' '
|
||||
JR NZ,R_BPB_L11
|
||||
JR NZ,.L11
|
||||
INC DE
|
||||
JR R_BPB_L1
|
||||
R_BPB_L11:
|
||||
CP (HL)
|
||||
JR NZ,PC_DOS_BPB
|
||||
JR .L1
|
||||
.L11: CP (HL)
|
||||
JR NZ,.PC_DOS
|
||||
|
||||
INC HL
|
||||
INC DE
|
||||
DJNZ R_BPB_L1
|
||||
DJNZ .L1
|
||||
LD A,(HL)
|
||||
CP '6'
|
||||
LD HL,#81FF ; FAT16 ä« £
|
||||
JR Z,BPB_FAT
|
||||
JR Z,.FAT
|
||||
CP '2'
|
||||
JP NZ,ERROR_BPB
|
||||
JP NZ,.ERROR_BPB
|
||||
|
||||
PC_DOS_BPB:
|
||||
.PC_DOS:
|
||||
LD HL,#01FF ; FAT12 ä« £
|
||||
BPB_FAT:
|
||||
LD (FAT_FLAG),HL
|
||||
.FAT: LD (FAT_FLAG),HL
|
||||
|
||||
LD A,(MS_BPB+S_P_T) ; Š®«¨ç¥á⢮ ᥪâ®à®¢ â४
|
||||
LD (MSD_SECS),A
|
||||
@ -522,11 +512,10 @@ BPB_FAT:
|
||||
LD IX,0
|
||||
LD HL,0 ; ¢ëç¨á«¨âì ç «ìë© á¥ªâ®à FAT
|
||||
|
||||
JR Z,NO_LD_SPECIAL
|
||||
JR Z,.NO_LD_SPECIAL
|
||||
LD IX,(MS_BPB+SPECIAL_SECS)
|
||||
LD HL,(MS_BPB+SPECIAL_SECS+2)
|
||||
NO_LD_SPECIAL:
|
||||
|
||||
.NO_LD_SPECIAL:
|
||||
LD BC,0
|
||||
LD DE,(MS_BPB+RESERV_SECS)
|
||||
|
||||
@ -540,11 +529,11 @@ NO_LD_SPECIAL:
|
||||
LD BC,0
|
||||
|
||||
LD A,(MS_BPB+FATS_NUM) ; ª®«¨ç¥á⢮ FATs
|
||||
NEXT_ADD:
|
||||
.NEXT_ADD:
|
||||
ADD IX,DE
|
||||
ADC HL,BC
|
||||
DEC A
|
||||
JR NZ,NEXT_ADD
|
||||
JR NZ,.NEXT_ADD
|
||||
|
||||
LD (MSD_CAT_SEC),IX ; ç «ìë© á¥ªâ®à DIR
|
||||
LD (MSD_CAT_SEC2),HL ; ç «ìë© á¥ªâ®à DIR
|
||||
@ -566,11 +555,11 @@ NEXT_ADD:
|
||||
EX DE,HL
|
||||
DEC HL
|
||||
XOR A
|
||||
NEXT_ADD2:
|
||||
.NEXT_ADD2:
|
||||
INC A
|
||||
JR Z,ERROR_BPB
|
||||
JR Z,.ERROR_BPB
|
||||
SBC HL,BC
|
||||
JR NC,NEXT_ADD2
|
||||
JR NC,.NEXT_ADD2
|
||||
EX DE,HL
|
||||
|
||||
LD E,A ; A - ç¨á«® ᥪâ®à®¢ ¢ DIR
|
||||
@ -589,11 +578,11 @@ NEXT_ADD2:
|
||||
LD A,(MS_BPB+CLAST_SIZE)
|
||||
LD D,A
|
||||
LD A,0
|
||||
NEXT_ADD3:
|
||||
.NEXT_ADD3:
|
||||
ADD HL,BC ; ‚ëç¨á«¥¨¥ ¤«¨ë ª« áâ¥à
|
||||
ADC A,0
|
||||
DEC D
|
||||
JR NZ,NEXT_ADD3
|
||||
JR NZ,.NEXT_ADD3
|
||||
|
||||
LD (CLASTER_LEN),HL
|
||||
LD B,0
|
||||
@ -603,31 +592,28 @@ NEXT_ADD3:
|
||||
LD HL,0
|
||||
LD BC,(MS_BPB+S_P_T)
|
||||
LD A,(MS_BPB+H_P_S)
|
||||
BPB_L1: ; ‚›—ˆ‘‹ˆ’œ ŠŽ‹ˆ—…‘’‚Ž ‘…Š’Ž<E28099>Ž‚ <20>€ –ˆ‹ˆ<E280B9>„<EFBFBD>
|
||||
.BPB_L1:; ‚›—ˆ‘‹ˆ’œ ŠŽ‹ˆ—…‘’‚Ž ‘…Š’Ž<E28099>Ž‚ <20>€ –ˆ‹ˆ<E280B9>„<EFBFBD>
|
||||
ADD HL,BC
|
||||
DEC A
|
||||
JR NZ,BPB_L1
|
||||
JR NZ,.BPB_L1
|
||||
LD (S_X_H),HL
|
||||
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (PAGE3),A
|
||||
EI
|
||||
AND A
|
||||
RET
|
||||
|
||||
ERROR_BPB:
|
||||
.ERROR_BPB:
|
||||
EX AF,AF'
|
||||
OUT (PAGE3),A
|
||||
SCF
|
||||
EI
|
||||
RET
|
||||
|
||||
|
||||
ERROR_MSDOS:
|
||||
.ERROR_MSDOS:
|
||||
LD HL,MSG_3
|
||||
JP AUTO_03E4
|
||||
|
||||
FAT1_MSG: DB 'FAT1'
|
||||
.FAT1_MSG:
|
||||
DB 'FAT1'
|
||||
;********************************************
|
||||
READ_NEXT_DIR:
|
||||
DI
|
||||
@ -713,7 +699,7 @@ LOOP_TRK:
|
||||
INC A
|
||||
JR NZ,LOOP_TRK
|
||||
POP BC
|
||||
JP ERROR_BPB
|
||||
JP READ_BPB.ERROR_BPB
|
||||
|
||||
SEC_ENDER:
|
||||
ADD HL,BC
|
||||
|
||||
Loading…
Reference in New Issue
Block a user