current dir for zx mode

This commit is contained in:
Tolik 2024-07-19 04:44:29 +10:00
parent e7a42481ab
commit 12447a147b
3 changed files with 429 additions and 39 deletions

213
For_4x.asm Normal file
View File

@ -0,0 +1,213 @@
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
; in: HL - CLUSTER
; out: HL:IX - SECTOR
; ‚­ ç «¥ ¤®«¦­  ¡ëâì ¢ë¯®«­¥­  ¨­¨æ¨ «¨§ æ¨ï BPB 4x
CLUSTER_TO_SECTOR:
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(SYS_PAGE.MS_BPB+CLAST_SIZE)
EX DE,HL
LD HL,(SYS_PAGE.MSD_DAT_SEC)
LD (.MSD_DAT_SEC),HL
LD HL,(SYS_PAGE.MSD_DAT_SEC2)
LD (.MSD_DAT_SEC2),HL
EX DE,HL
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
;
LD DE,0 ;!FIXIT for FAT32
DEC HL
DEC HL
XOR 1
JR Z,.skip
;
RRA
.loop: ADD HL,HL
RL E
RL D
;
RRA
JP NC,.loop
;
.skip: EX DE,HL
LD XL,E
LD XH,D
.MSD_DAT_SEC+1: LD DE,0 ;first data sector ;!FIXIT   ¥á«¨ ­ ç «ì­ë© ᥪâ®à > #FFFF
XOR A
ADD IX,DE
.MSD_DAT_SEC2+1:
LD DE,0
ADC HL,DE
;!TODO   ­ ¤® «¨ ¯à®¢¥àïâì ¯¥à¥¯®«­¥­¨¥ HL:IX?
RET
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
SET_IMAGE_DIR_SECTOR:
LD HL,ONE_FILE
LD DE,TMP_BUFF
LD A,FAT_ATTR.DIRECTORY
LD BC,Dss.F_First.FATname
RST ToDSS
RET C
;
LD HL,(TMP_BUFF+26) ; ;!HARDCODE first dir cluster
CALL CLUSTER_TO_SECTOR
LD (RESET_TO_ZX.DIR_SEC_L),IX
LD (RESET_TO_ZX.DIR_SEC_H),HL
RET
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
SET_CURRENT_HDD:
.NUMBER+1: LD A,#FF
CP #FF
LD C,BIOS.HDD_INIT
JP Z,ToBIOS_18
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
JP ToBIOS_18
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;
BPB_SetUp: LD A,SYS_PAGE
LD HL,SYS_PAGE.MS_BPB
LD C,BIOS.HDD_READ_BPB
RST ToBIOS
.PARAMS: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
;
LD A,(SYS_PAGE.MS_BPB+FORM_CODE)
CP #F0
JP C,.ERROR_BPB
LD DE,SYS_PAGE.MS_BPB+FAT_ID
LD HL,.FAT1_MSG
LD B,4
.L1: LD A,(DE)
CP ' '
JR NZ,.L11
INC DE
JR .L1
.L11: CP (HL)
JR NZ,.PC_DOS
INC HL
INC DE
DJNZ .L1
LD A,(DE)
CP '6'
LD HL,#81FF ; FAT16 ä« £
JR Z,.FAT
CP '2'
JP NZ,.ERROR_BPB
.PC_DOS: LD HL,#01FF ; FAT12 ä« £
.FAT: LD (SYS_PAGE.FAT_FLAG),HL
LD A,(SYS_PAGE.MS_BPB+S_P_T) ; Š®«¨ç¥á⢮ ᥪâ®à®¢ ­  â४
LD (SYS_PAGE.MSD_SECS),A
LD IX,(SYS_PAGE.MS_BPB+SPECIAL_SECS)
LD HL,(SYS_PAGE.MS_BPB+SPECIAL_SECS+2)
.NO_LD_SPECIAL: LD BC,0
LD DE,(SYS_PAGE.MS_BPB+RESERV_SECS)
ADD IX,DE
ADC HL,BC
LD (SYS_PAGE.MSD_FAT_SEC),IX ; ­ ç «ì­ë© ᥪâ®à FAT
LD (SYS_PAGE.MSD_FAT_SEC2),HL ; ­ ç «ì­ë© ᥪâ®à FAT
LD DE,(SYS_PAGE.MS_BPB+S_P_F) ; ç¨á«® ᥪâ®à®¢ ¢ FAT
LD A,(SYS_PAGE.MS_BPB+FATS_NUM) ; ª®«¨ç¥á⢮ FATs
.NEXT_ADD:
ADD IX,DE
ADC HL,BC
DEC A
JR NZ,.NEXT_ADD
LD (SYS_PAGE.MSD_CAT_SEC),IX ; ­ ç «ì­ë© ᥪâ®à DIR
LD (SYS_PAGE.MSD_CAT_SEC2),HL ; ­ ç «ì­ë© ᥪâ®à DIR
LD BC,(SYS_PAGE.MS_BPB+SEC_SIZE) ; <20> §¬¥à ᥪâ®à 
LD A,B
RL C
RLA
RL C
RLA
RL C
RLA
LD C,A
LD B,0 ; BC - ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
LD (SYS_PAGE.FilesPerSector),A
LD DE,(SYS_PAGE.MS_BPB+FLS_NUM) ; —¨á«® ä ©«®¢ëå § ¯¨á¥©
EX DE,HL
DEC HL
XOR A
.NEXT_ADD2:
INC A
JR Z,.ERROR_BPB
SBC HL,BC
JR NC,.NEXT_ADD2
EX DE,HL
LD E,A ; A - ç¨á«® ᥪâ®à®¢ ¢ DIR
LD BC,0
LD D,B
LD (SYS_PAGE.SectorsPerCluster),A
ADD IX,DE ; <20> ç «® DATA area
ADC HL,BC
LD (SYS_PAGE.MSD_DAT_SEC),IX
LD (SYS_PAGE.MSD_DAT_SEC2),HL
LD BC,(SYS_PAGE.MS_BPB+SEC_SIZE) ; <20> §¬¥à ᥪâ®à 
; D = 0
LD H,D
LD L,D
LD E,D
LD A,(SYS_PAGE.MS_BPB+CLAST_SIZE)
LD D,A
XOR A
.NEXT_ADD3:
ADD HL,BC ; ‚ëç¨á«¥­¨¥ ¤«¨­ë ª« áâ¥à 
ADC A,E
DEC D
JR NZ,.NEXT_ADD3
LD (SYS_PAGE.CLASTER_LEN),HL
LD B,E
LD C,A
LD (SYS_PAGE.CLASTER_LEN2),BC
;
; DE=0
EX DE,HL ;LD HL,0
LD BC,(SYS_PAGE.MS_BPB+S_P_T)
LD A,(SYS_PAGE.MS_BPB+H_P_S)
.BPB_L1: ; ‚›—ˆ‘‹ˆ’œ ŠŽ‹ˆ—…‘’‚Ž …ŠŽ<E28099>Ž <20>ˆˆ<E280B9><EFBFBD>
ADD HL,BC
DEC A
JR NZ,.BPB_L1
LD (SYS_PAGE.S_X_H),HL
;
EX AF,AF'
OUT (SLOT3),A
AND A
RET
;
.ERROR_BPB:
EX AF,AF'
OUT (SLOT3),A
SCF
RET
;
.FAT1_MSG: DB "FAT1"
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;

@ -1 +1 @@
Subproject commit 4f546cb1d2cd8eeb1aec0de2c3e9902d1bb52fee Subproject commit 7e812bc0267db168c5a5b17780e567a7a01cd927

View File

@ -690,6 +690,7 @@ SET_ROM: DI
;******************************************** ;********************************************
;******************************************** ;********************************************
; —⥭¨¥ ®¡à §  TRD/SCL ¢ à ¬¤à ©¢
READ_IMAGE: LD DE,ONE_FILE READ_IMAGE: LD DE,ONE_FILE
LD BC,FULL_FILE_NAME_LENGTH LD BC,FULL_FILE_NAME_LENGTH
LDIR LDIR
@ -701,7 +702,7 @@ READ_IMAGE: LD DE,ONE_FILE
RET C RET C
LD (IMAGE_HANDLER),A LD (IMAGE_HANDLER),A
; [ ] 31/01/2024 ¯®¤¤¥à¦ª  ¯¥à¥ª«î祭¨ï ¤¨áª /à §¤¥«  ¢ TR-DOS ; [x] 31/01/2024 ¯®¤¤¥à¦ª  ¯¥à¥ª«î祭¨ï ¤¨áª /à §¤¥«  ¢ TR-DOS
LD HL,ONE_FILE LD HL,ONE_FILE
LD BC,Dss.EX_Path.GET_ALL LD BC,Dss.EX_Path.GET_ALL
RST ToDSS RST ToDSS
@ -713,11 +714,11 @@ READ_IMAGE: LD DE,ONE_FILE
RST ToDSS RST ToDSS
JR C,.no_change_Disk JR C,.no_change_Disk
JR .getInfoDRV JR .getInfoDRV
.currentDisk: ; ;
LD A,(ONE_FILE) .currentDisk: LD A,(ONE_FILE)
SUB "A" SUB "A"
; ;
.getInfoDRV: ; .getInfoDRV: ; <20> áâà ¨¢ ¥¬ HDD
OR #80 OR #80
LD HL,TMP_BUFF LD HL,TMP_BUFF
LD BC,Dss.DskInfo LD BC,Dss.DskInfo
@ -730,13 +731,14 @@ READ_IMAGE: LD DE,ONE_FILE
LD E,(HL) LD E,(HL)
INC HL INC HL
DJNZ .loop_param DJNZ .loop_param
; check HDD
LD A,(HL) LD A,(HL)
AND #80 CP DRIVE_CODES.SPRINTER.HDD
JR Z,.no_change_Disk JR C,.no_change_Disk
CP #90 CP DRIVE_CODES.SPRINTER.HDD + 4 + 1
JR NC,.no_change_Disk JR NC,.no_change_Disk
; ;
LD A,3 LD A,%0000'0011
AND (HL) AND (HL)
LD D,A LD D,A
INC HL INC HL
@ -747,23 +749,46 @@ READ_IMAGE: LD DE,ONE_FILE
OR D OR D
AND #0F AND #0F
; ;
;LD C,SLOT3 LD (SET_CURRENT_HDD.NUMBER),A
;IN B,(C) OR DRIVE_CODES.TRDOS.HDD
;EX AF,AF' LD (RESET_TO_ZX.CURRENT_DIR_DRIVE),A
;LD A,SYS_PAGE
;OUT (C),A
;EX AF,AF'
;
LD (RESET_TO_ZX.hdd),A
;OUT (C),B
; ;
; [x] ¯®¤¤¥à¦ª  ¯¥à¥ª«î祭¨ï ¯ ¯ª¨ ®¡à §  ¤«ï ०¨¬  ZX
; ‚뤥«ï¥¬ ¯ãâì ¤® ¯ ¯ª¨ á ®¡à §®¬
LD HL,ONE_FILE
LD BC,ONE_FILE.Size
XOR A
CPIR
DEC HL
DEC HL
PUSH HL
LD HL,ONE_FILE.Size - 2
SBC HL,BC
LD B,H
LD C,L
POP HL
LD A,'\' ;
CPDR
INC HL
LD (HL),0
; ãáâ ­ ¢«¨¢ ¥¬ ¨ ¨­¨â¨¬ ¢¨­â
LD A,SYS_PORT.BIOS
OUT (SYS_PORT.ROM),A
CALL SET_CURRENT_HDD
LD A,SYS_PORT.BIOS
OUT (SYS_PORT.RAM),A
; ¯ àᨬ ¤«ï à áçñ⮢ BPB
CALL BPB_SetUp
; § ¯®¬¨­ ¥¬ ᥪâ®à ¤¨à¥ªâ®à¨¨
CALL SET_IMAGE_DIR_SECTOR
;;;;;;;;;
; ;
.no_change_Disk:; .no_change_Disk:;
LD A,(IMAGE_FLAG) LD A,(IMAGE_FLAG)
AND A AND A
JR Z,.Load_TRD JR Z,.Load_TRD
CP 1 ; check if SCL DEC A ; check if SCL
JP Z,Load_SCL JP Z,Load_SCL
;jp Error_Flag ;!!!!!!!!!!!!!!!! ;jp Error_Flag ;!!!!!!!!!!!!!!!!
@ -822,7 +847,6 @@ Get_RAM_Disk_E: LD A,D
RET RET
;--------------------------------------- ;---------------------------------------
;******************************************** ;********************************************
Load_IMAGE_File: Load_IMAGE_File:
LD A,(IMAGE_HANDLER) LD A,(IMAGE_HANDLER)
@ -936,7 +960,7 @@ RESTORE_PORT_HOLD:
JP ToBIOS JP ToBIOS
; ; ; ; ; ;
FIRST_PREPARE: LD A,CNF_PORT.CNF_0 FIRST_PREPARE: LD A,CNF_PORT.CNF_0
OUT (SYS_PORT.OFF),A OUT (SYS_PORT.RAM),A
CALL RESTORE_PORT_HOLD CALL RESTORE_PORT_HOLD
LD A,high ZXKeys.Line_7 LD A,high ZXKeys.Line_7
@ -1102,7 +1126,6 @@ NO_RET_FN: LD (#FFF4),DE ;
LD (#FFF1),A LD (#FFF1),A
IN A,(SLOT2) ; á®åà ­¨âì áâà ­¨æã IN A,(SLOT2) ; á®åà ­¨âì áâà ­¨æã
LD (#FFF2),A ; ¯à®£à ¬¬ë ¤«ï ¢®§¢à â  LD (#FFF2),A ; ¯à®£à ¬¬ë ¤«ï ¢®§¢à â 
;IN A,(SLOT3)
LD A,(SAVE_SLOT3) LD A,(SAVE_SLOT3)
LD (#FFF3),A ; LD (#FFF3),A ;
;******************************************** ;********************************************
@ -1113,14 +1136,14 @@ RESET_TO_ZX: DI
CALL FIRST_PREPARE CALL FIRST_PREPARE
JP Z,EXIT_TO_DSS.cont JP Z,EXIT_TO_DSS.cont
; ä¨ªá ­¥¯®«­®© ¤¥è¨äà æ¨¨ ¯®àâ  #FFFD (¯¨èãâ ¢ #C0FD) ; [x] ä¨ªá ­¥¯®«­®© ¤¥è¨äà æ¨¨ ¯®àâ  #FFFD (¯¨èãâ ¢ #C0FD)
.cont: LD A,#FF .cont: LD A,#FF
LD HL,%00'010'1'1110'1101 LD HL,%00'010'1'1110'1101
LD DE,%10'111'1'1111'1111 ; CNF_0, CNF_1 LD DE,%10'111'1'1111'1111 ; CNF_0, CNF_1
LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG
RST ToBIOS RST ToBIOS
; ;
;[x] 04/11/2023 Žâ¤¥«ì­ë¥ à ¬¤¨áª¨ ¤«ï ०¨¬  ᯥªâà㬠 ¨ DSS. BLK_TO_RAMD ; [x] 04/11/2023 Žâ¤¥«ì­ë¥ à ¬¤¨áª¨ ¤«ï ०¨¬  ᯥªâà㬠 ¨ DSS. BLK_TO_RAMD
LD BC,BIOS.SWAP_RAM_DRIVES.ZX LD BC,BIOS.SWAP_RAM_DRIVES.ZX
RST ToBIOS RST ToBIOS
; ;
@ -1132,8 +1155,20 @@ RESET_TO_ZX: DI
LD A,ACEX.RET_PORT LD A,ACEX.RET_PORT
CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â CALL SET_ROM ; ¢ª«îç¨âì ¢®§¢à â
; [ ]
LD A,SYS_PAGE
OUT (SLOT3),A
.DIR_SEC_L+1: LD HL,0
LD (SYS_PAGE.CURRENT_DIR_SEC_L),HL
.DIR_SEC_H+1: LD HL,0
LD (SYS_PAGE.CURRENT_DIR_SEC_H),HL
.CURRENT_DIR_DRIVE+1:
LD A,#FF
LD (SYS_PAGE.CURRENT_DIR_DRIVE),A
;;;;;;;;
LD A,CNF_PORT.CNF_3 LD A,CNF_PORT.CNF_3
OUT (SYS_PORT.ON),A ; System-page on & CNF = 3 OUT (SYS_PORT.ROM),A ; System-page on & CNF = 3
XOR A XOR A
OUT (BorderColor),A ; border-0 OUT (BorderColor),A ; border-0
@ -1162,10 +1197,7 @@ RESET_TO_ZX: DI
;---------------[test!!!!!]------------- ;---------------[test!!!!!]-------------
;[ ] 1/02/2024 ०¨¬ ᯥªâà㬠 à ¡®â ¥â á «î¡ë¬¨ ª ­ « ¬¨ ¨ ®á­®¢­ë¬¨ à §¤¥« ¬¨ ;[ ] 1/02/2024 ०¨¬ ᯥªâà㬠 à ¡®â ¥â á «î¡ë¬¨ ª ­ « ¬¨ ¨ ®á­®¢­ë¬¨ à §¤¥« ¬¨
; XOR A ; --> IDE-1 CALL SET_CURRENT_HDD
.hdd+1: LD A,#FF
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
RST ToBIOS_18
;--------------------------------------- ;---------------------------------------
;****************************** ;******************************
@ -1309,7 +1341,7 @@ PROG_STARTS:
LD A,2 LD A,2
OUT (SLOT2),A OUT (SLOT2),A
LD A,E LD A,E
OUT (SYS_PORT.OFF),A OUT (SYS_PORT.RAM),A
LD A,D LD A,D
AND A AND A
JP Z,0 JP Z,0
@ -1402,6 +1434,9 @@ NO_ZX_FLAG DB 0
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; ;
INCLUDE 'For_4X.asm'
; …᫨ ¯ à ¬¥âà § ¤ ­, â® ¢ë¡¨à ¥âáï §­ ç¥­¨¥ Y ; …᫨ ¯ à ¬¥âà § ¤ ­, â® ¢ë¡¨à ¥âáï §­ ç¥­¨¥ Y
PARAMS:; Y / N ; âãâ §­ ç¥­¨ï ¤«ï ª«î祩 § ¯¨á뢠îâáï ª ª 16 ¡¨â §­ ç¥­¨¥, §­ ç¨â ®¡à â­ë© ¯®à冷ª ¡ ©â®¢ PARAMS:; Y / N ; âãâ §­ ç¥­¨ï ¤«ï ª«î祩 § ¯¨á뢠îâáï ª ª 16 ¡¨â §­ ç¥­¨¥, §­ ç¨â ®¡à â­ë© ¯®à冷ª ¡ ©â®¢
Turbo__: DW Turbo_, #0302 ; ¢ª«îç¨âì TURBO Turbo__: DW Turbo_, #0302 ; ¢ª«îç¨âì TURBO
@ -1455,9 +1490,11 @@ CNF_FILE: DB "SPECTRUM.CFG",0
;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256 ;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256
; ;
ONE_FILE: WORD 0 ONE_FILE: WORD 0
TMP_BUFF EQU ONE_FILE+256 .Size EQU 256
TMP_BUFF EQU ONE_FILE + ONE_FILE.Size
.Size EQU 256
; ;
PlaceForPalette EQU TMP_BUFF+256 ;#A000 PlaceForPalette EQU TMP_BUFF + TMP_BUFF.Size ;#A000
PlaceForTXTscreen EQU PlaceForPalette + 1024*4 ;!HARDCODE PlaceForTXTscreen EQU PlaceForPalette + 1024*4 ;!HARDCODE
@ -1467,3 +1504,143 @@ PlaceForTXTscreen EQU PlaceForPalette + 1024*4 ;!HARDCODE
;[]-------------------------------------------------------------------[] ;[]-------------------------------------------------------------------[]
; Code end section ; Code end section
; ;
; [x] new tr-hdd
; TO INIT by SPECTRUM.EXE:
; .CURRENT_DIR_SEC_L EQU #C196 ; word
; .CURRENT_DIR_SEC_H EQU #C198 ; word
; .CURRENT_DIR_DRIVE EQU #C19A
; .CURRENT_HDD EQU #C12D
; CORRECT_CUR_DIR:
; DI
; IN A,(SLOT3)
; LD C,A
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD A,#FF
; JR C,.skip
; LD (SYS_PAGE.CURRENT_HDD),A
; .skip: INC A
; LD H,A
; LD L,A
; LD (SYS_PAGE.CURRENT_DIR_SEC_L),HL
; LD (SYS_PAGE.CURRENT_DIR_SEC_H),HL
; LD A,C
; OUT (SLOT3),A
; RET
/*
INIT_HDD_WORK:
LD A,(RESET_TO_ZX.hdd)
CP #FF
JR Z,.skip_hdd
;
OR #80
LD HL,Temp_Buffer
LD BC,Dss.DskInfo
RST ToDSS
;
LD B,4 ;!HARDCODE ­®¬¥à ­ã¦­®£® ¯ à ¬¥âà 
LD DE,0
LD HL,Temp_Buffer
.loop_param: ADD HL,DE
LD E,(HL)
INC HL
DJNZ .loop_param
LD A,(HL)
AND #80
JR Z,.no_change_Disk
CP #90
JR NC,.no_change_Disk
;
LD A,3
AND (HL)
LD D,A
INC HL
LD A,(HL)
RLCA
RLCA
;
OR D
AND #0F
JR .start
;
.no_change_Disk:;
XOR A
.start: LD C,BIOS.HDD_PART ; IDE-1/IDE-2
RST ToBIOS
;
.loop: LD C,BIOS.HDD_INIT
RST ToBIOS
JR C,.loop
;
CALL BPB_SetUp
;[x] music and dirs
LD HL,SND_DIR
LD DE,Temp_Buffer
LD A,FAT_ATTR.DIRECTORY
LD BC,Dss.F_First.FATname
RST ToDSS
JR NC,.start_setup
;
LD A,#C9 ; RET opcode - disable music
LD (SoundOnOff2),A
RET
;
.start_setup:
;-=-=-=-=-=-=-=-
LD HL,(Temp_Buffer+26) ; first dir cluster
CALL NSECTOR
LD (MSD_DATS.MSD_CAT_SEC2),HL
LD (MSD_DATS.MSD_CAT_SEC),IX
;JP READ_DIR
.RESTORE_DIR:
PUSH AF
;
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
;
LD HL,(SYS_PAGE.CURRENT_DIR_SEC_L)
LD DE,(SYS_PAGE.CURRENT_DIR_SEC_H)
LD A,H
OR L
OR D
OR E
JR Z,.exit_Res_Dir
;
LD (SYS_PAGE.MSD_CAT_SEC),HL
LD (SYS_PAGE.MSD_CAT_SEC2),DE
.exit_Res_Dir:
EX AF,AF'
OUT (SLOT3),A
POP AF
RET
CORRECT_CUR_DIR:
DI
IN A,(SLOT3)
LD C,A
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,#FF
JR C,.skip
LD (SYS_PAGE.CURRENT_HDD),A
.skip: INC A
LD H,A
LD L,A
LD (SYS_PAGE.CURRENT_DIR_SEC_L),HL
LD (SYS_PAGE.CURRENT_DIR_SEC_H),HL
LD A,C
OUT (SLOT3),A
RET
*/