From 69c73382a2c48a446b18f6c7498f5f0404a00c9e Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Fri, 25 Apr 2025 01:58:57 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20=D0=BE?= =?UTF-8?q?=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- src/bios/exp/EXP.asm | 4 +- src/bios/exp/EXTENDED/FDD_DRIVER_2.asm | 248 +++++++++---------------- src/bios/exp/FUNC_5x.asm | 118 +++--------- src/bios/rom/SETUP/MAIN.asm | 82 ++++---- src/bios/shared/DEFINES.INC | 3 +- src/bios/shared/RECOVERY.IMG | Bin 98304 -> 98304 bytes 7 files changed, 161 insertions(+), 296 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index be60675..e0dd54c 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit be6067585059da92ec2674091bedf341e9219f09 +Subproject commit e0dd54cb5615a23ea55bd217578aab57481fcf77 diff --git a/src/bios/exp/EXP.asm b/src/bios/exp/EXP.asm index 992bd35..db1c28b 100644 --- a/src/bios/exp/EXP.asm +++ b/src/bios/exp/EXP.asm @@ -1068,11 +1068,11 @@ PORTS_INIT: OUT (FDC_93.DrvCTRL),A : ASSERT CNF_PORT.CNF_3+ROM.BIOS = #1C, "ERROR: A != #1C" PUSH HL ; для задержки POP HL ; для задержки - LD A,#3C ;!HARDCODE команда для ВГ93 + LD A,#3C ;!HARDCODE OUT (FDC_93.DrvCTRL),A PUSH HL ; для задержки POP HL ; для задержки - XOR A + XOR A ;!HARDCODE CMD КР1818ВГ93 OUT (FDC_93.Command),A ; Выключить доступ к контроллеру диска LD A,CNF_PORT.CNF_0+ROM.BIOS diff --git a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm b/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm index 24c3430..3d655f4 100644 --- a/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm +++ b/src/bios/exp/EXTENDED/FDD_DRIVER_2.asm @@ -25,39 +25,21 @@ ; IX - Capacity sector in bytes ; B - Flags ; D7 - "1" - High Density, "0" - Double Density +; D0 - FDD drv number +; A - D0 - "1" - Removable media ;[]===========================================================[] ;!FIXIT всегда идет работа с данными для диска А FDD_5x_GET_PAR: - ;!TEST FDD 720/1440 - IF FDD_NormalCount - LD IY,FDD_INIT_TABLE.FDD_0 - DEC A - JR C,.getParams - LD IY,FDD_INIT_TABLE.FDD_1 -.getParams: - ENDIF IN A,(SLOT3) EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - ;!TEST FDD 720/1440 - IF FDD_NormalCount - LD L,(IY+1) ;SECTORS - LD H,(IY+2) ;HEADS - LD E,(IY+3) ;CYLINDL - LD D,(IY+4) ;CYLINDH - LD A,(IY+5) ;B_P_S low - LD XL,A - LD A,(IY+6) ;B_P_S High - LD XH,A - LD A,(IY+0) ;F144/720 - ELSE - LD HL,(FDD_INIT_TABLE.FDD_0.SECTORS) - LD DE,(FDD_INIT_TABLE.FDD_0.CYLINDL) - LD IX,(FDD_INIT_TABLE.FDD_0.BytesPerSector) - LD A,(FDD_INIT_TABLE.FDD_0.F144) - ENDIF - LD B,A + LD A,SYS_PAGE + OUT (SLOT3),A + ; + LD HL,(SYS_PAGE.FDD_TABLE.SECTORS) + LD DE,(SYS_PAGE.FDD_TABLE.CYLINDL) + LD IX,(SYS_PAGE.FDD_TABLE.BytesPerSector) + LD A,(SYS_PAGE.FDD_TABLE.DISK) + LD B,A EX AF,AF' OUT (SLOT3),A LD A,%0000'0001 ; removable media @@ -76,51 +58,22 @@ FDD_5x_GET_PAR: ;Return: None ;[]===========================================================[] FDD_5x_SET_PAR: ;!TEST FDD 720/1440 - IF FDD_NormalCount - LD IY,FDD_INIT_TABLE.FDD_0 - DEC A - JR C,.setParams - LD IY,FDD_INIT_TABLE.FDD_1 - ENDIF - ; -.setParams: IN A,(SLOT3) + IN A,(SLOT3) EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A ; - ;!TEST FDD 720/1440 - IF FDD_NormalCount - LD (IY+1),L ;SECTORS - LD (IY+2),H ;HEADS - LD (IY+3),E ;CYLINDL - LD (IY+4),D ;CYLINDH - LD A,XL - LD (IY+5),A ;B_P_S low - LD A,XH - LD (IY+6),A ;B_P_S High - LD (IY+0),B ;F144/720 - LD A,B - ELSE - LD A,B - LD (FDD_INIT_TABLE.FDD_0.SECTORS),HL - LD (FDD_INIT_TABLE.FDD_0.CYLINDL),DE - LD (FDD_INIT_TABLE.FDD_0.BytesPerSector),IX - LD (FDD_INIT_TABLE.FDD_0.F144),A - ENDIF + LD A,B + LD (SYS_PAGE.FDD_TABLE.SECTORS),HL + LD (SYS_PAGE.FDD_TABLE.CYLINDL),DE + LD (SYS_PAGE.FDD_TABLE.BytesPerSector),IX + LD (SYS_PAGE.FDD_TABLE.DISK),A ; EX AF,AF' OUT (SLOT3),A EX AF,AF' - ; - ;!TEST FDD 720/1440 - IF FDD_NormalCount - AND 1 - JP Z,FN_TURBO.SET_FDD_720 - JP FN_TURBO..SET_FDD_1440 - ELSE - AND A - RET - ENDIF + AND A + RET ;[]===========================================================[] ;Function: Detect Disk Density @@ -156,7 +109,7 @@ FDD_5x_RESET: CALL SAVE_INTERRUPTS.switch_off OUT (SLOT3),A LD H,B LD L,0 - LD (FDD_INIT_TABLE.FDD_0.BytesPerSector),HL + LD (SYS_PAGE.FDD_TABLE.BytesPerSector),HL EX AF,AF' OUT (SLOT3),A ; @@ -164,7 +117,7 @@ FDD_5x_RESET: CALL SAVE_INTERRUPTS.switch_off JR C,.MOTOR_OFF ; CALL RESWG - XOR A + XOR A ;!HARDCODE CMD КР1818ВГ93 OUT (FDC_93.Track),A IN A,(FDC_93.Command) ;LD C,A @@ -174,7 +127,7 @@ FDD_5x_RESET: CALL SAVE_INTERRUPTS.switch_off JP SAVE_INTERRUPTS.restore ;RET .MOTOR_OFF: ;PUSH AF - LD A,#D0 + LD A,#D0 ;!HARDCODE CMD КР1818ВГ93 OUT (FDC_93.Command),A ;STOP OPERATION LD A,#00 OUT (FDC_93.DrvCTRL),A @@ -212,7 +165,7 @@ FDD_5x_READ: EX AF,AF' ;[]===========================================================[] FDD_5x_LONG_READ: EXX - LD B,#80 ; COMMAND READ + LD B,#80 ; COMMAND READ ;!HARDCODE CMD КР1818ВГ93 EXX ; .RW_Shared: CALL SAVE_INTERRUPTS.switch_off @@ -238,9 +191,9 @@ FDD_5x_LONG_READ: EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A - LD IY,(FDD_INIT_TABLE.FDD_0.BytesPerSector) + LD IY,(SYS_PAGE.FDD_TABLE.BytesPerSector) LD XH,C ; Memory Page Number - LD A,(FDD_INIT_TABLE.FDD_0.SECTORS) + LD A,(SYS_PAGE.FDD_TABLE.SECTORS) LD C,A EX AF,AF' OUT (SLOT3),A @@ -360,7 +313,7 @@ FDD_5x_WRITE: EX AF,AF' ;[]===========================================================[] FDD_5x_LONG_WRITE: EXX - LD B,#A0 ;COMMAND WRITE + LD B,#A0 ;COMMAND WRITE ;!HARDCODE CMD КР1818ВГ93 EXX JP FDD_5x_LONG_READ.RW_Shared ; @@ -400,7 +353,7 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT .RW_PROC: EXX BIT 5,B EXX - ; [ ] 15/04/25 размер сектора больше, чем установлено в FDD_INIT_TABLE.FDD_0.BytesPerSector вызовет ошибку + ; [ ] 15/04/25 размер сектора больше, чем установлено в SYS_PAGE.FDD_TABLE.BytesPerSector вызовет ошибку LD D,YH LD E,YL INC DE @@ -466,7 +419,7 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT LD A,BIOS.Error.Write ; Error Write ; .error_exit: EX AF,AF' - LD A,#D0 + LD A,#D0 ;!HARDCODE CMD КР1818ВГ93 OUT (FDC_93.Command),A ;STOP OPERATION EX AF,AF' BIT 0,C @@ -517,55 +470,43 @@ SET_DOS_OFF: EX AF,AF' RET ; -S_FDD: PUSH BC - AND 1 - LD B,A - OR #3C - OUT (FDC_93.DrvCTRL),A - IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,(FDD_INIT_TABLE.FDD_0.DISK) - AND #FE - OR B - LD (FDD_INIT_TABLE.FDD_0.DISK),A - EX AF,AF' - OUT (SLOT3),A - POP BC - RET -; - -; -; MOTOR_OFF: -; PUSH AF -; LD A,#D0 -; OUT (FDC_93.Command),A ;STOP OPERATION -; LD A,#00 -; OUT (FDC_93.DrvCTRL),A -; LD A,#3C -; OUT (FDC_93.DrvCTRL),A -; CALL SET_DOS_OFF -; POP AF -; RET +S_FDD: PUSH BC + AND 1 + LD B,A + OR #3C + OUT (FDC_93.DrvCTRL),A + IN A,(SLOT3) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT3),A + LD A,(SYS_PAGE.FDD_TABLE.DISK) + AND #FE + OR B + LD (SYS_PAGE.FDD_TABLE.DISK),A + EX AF,AF' + OUT (SLOT3),A + POP BC + RET ; ; CHANGE_SPEED: IN A,(SLOT3) EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,(FDD_INIT_TABLE.FDD_0.F144) - XOR #80 - LD (FDD_INIT_TABLE.FDD_0.F144),A - AND #80 + LD A,SYS_PAGE + OUT (SLOT3),A + LD A,(SYS_PAGE.FDD_TABLE.DISK) + XOR #80 + LD (SYS_PAGE.FDD_TABLE.DISK),A + ;AND #80 + RLA EX AF,AF' OUT (SLOT3),A EX AF,AF' - JR Z,FDD.SET720 - ;JP FDD.SET1440 ;ZF=0 -FDD.SET1440: LD A,FDD_Density.SET_1440 - OUT (FDD_Density),A + ;JR Z,FDD.SET720 + JR NC,FDD.SET720 + ;JP FDD.SET1440 ;CF=1 +FDD.SET1440: LD A,FDD_Density.SET_1440 + OUT (FDD_Density),A RET ; ; @@ -573,28 +514,30 @@ SET_SPEED: IN A,(SLOT3) EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A - LD A,(FDD_INIT_TABLE.FDD_0.F144) - AND #80 + LD A,(SYS_PAGE.FDD_TABLE.DISK) + ;AND #80 + RLA EX AF,AF' OUT (SLOT3),A EX AF,AF' - JR NZ,FDD.SET1440 - ;JR FDD.SET720 ;ZF=1 + ;JR NZ,FDD.SET1440 + JR C,FDD.SET1440 + ;JR FDD.SET720 ;CF=0 FDD.SET720: LD A,FDD_Density.SET_720 OUT (FDD_Density),A RET ; прерывания должны быть отключены -; выход: A - FDD_INIT_TABLE.F144, B - sector size high byte +; выход: A - FDD_INIT_TABLE.DISK, B - sector size high byte DISK_ID: EXX CALL SET_SPEED IN A,(FDC_93.Track) OUT (FDC_93.Data),A - LD A,#18 ;!TODO выписать комманды ВГ ;SEARCH ; !HARDCODE + LD A,#18 ;!TODO выписать комманды ВГ ;SEARCH ;!HARDCODE CMD КР1818ВГ93 CALL EXECOM LD C,4 ; счётчик -.loop_reg_C: LD A,#C0 +.loop_reg_C: LD A,#C0 ;!HARDCODE CMD КР1818ВГ93 OUT (FDC_93.Command),A LD HL,#F000 ; счётчик .loop_reg_HL: IN A,(FDC_93.DrvCTRL) @@ -635,58 +578,47 @@ DISK_ID: EXX EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A - ;LD A,L - ;LD (FDD_INIT_TABLE.FDD_0.BytesPerSector + 1),A - LD A,(FDD_INIT_TABLE.FDD_0.F144) + LD A,(SYS_PAGE.FDD_TABLE.DISK) EX AF,AF' OUT (SLOT3),A EX AF,AF' AND #80 RET - - - - - ; SEEK: LD XL,A LD C,A IN A,(SLOT3) EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD A,(FDD_INIT_TABLE.FDD_0.DISK) - AND 1 + LD A,SYS_PAGE + OUT (SLOT3),A + LD A,(SYS_PAGE.FDD_TABLE.DISK) + AND 1 EX AF,AF' OUT (SLOT3),A EX AF,AF' - SRL C - JR C,.GT001 - ; - OR #3C -.GT001: OR #2C - OUT (FDC_93.DrvCTRL),A - IN A,(FDC_93.Track) - CP C - ;PUSH BC - CALL NZ,P50ms - ;POP BC - LD A,C - OUT (FDC_93.Data),A - IN A,(FDC_93.Track) - CP C + SRL C + JR C,.GT001 + ; + OR #3C +.GT001: OR #2C + OUT (FDC_93.DrvCTRL),A + IN A,(FDC_93.Track) + CP C + CALL NZ,P50ms + LD A,C + OUT (FDC_93.Data),A + IN A,(FDC_93.Track) + CP C EX AF,AF' ;R.TRACK==PHISICAL TRACK - LD A,#18 + LD A,#18 ;!HARDCODE CMD КР1818ВГ93 CALL EXECOM RET C EX AF,AF' - LD A,C - OUT (FDC_93.Track),A - RET Z -.STOL: ;PUSH BC - CALL P50ms - ;POP BC + LD A,C + OUT (FDC_93.Track),A + RET Z +.STOL: CALL P50ms RET ; ;P750ms LD B,3 @@ -706,7 +638,7 @@ P50ms: PUSH BC ; ; -RESWG: LD A,8 +RESWG: LD A,8 ;!HARDCODE CMD КР1818ВГ93 ; EXECOM: OUT (FDC_93.Command),A LD HL,#0000 ; счётчик @@ -734,7 +666,7 @@ NTRACK: PUSH HL EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A - LD A,(FDD_INIT_TABLE.FDD_0.SECTORS) + LD A,(SYS_PAGE.FDD_TABLE.SECTORS) LD C,A LD B,0 EX AF,AF' diff --git a/src/bios/exp/FUNC_5x.asm b/src/bios/exp/FUNC_5x.asm index 3a72214..c43c2e5 100644 --- a/src/bios/exp/FUNC_5x.asm +++ b/src/bios/exp/FUNC_5x.asm @@ -22,49 +22,31 @@ DRV_VERSION: LD DE,Disk_subsystem_ver_hex AND A RET + ; +; DRV_LIST: IN A,(SLOT3) PUSH AF PUSH IY LD A,SYS_PAGE OUT (SLOT3),A ; !TODO сделать структурой + XOR A LD (IX+0),#04 ; DB 0 ;LEN ;!HARDCODE - LD (IX+1),#00 ; DB 0 ;FDD COUNT - LD (IX+2),#00 ; DB 0 ;HDD COUNT - LD (IX+3),#00 ; DB 0 ;CDROM COUNT + ;LD (IX+1),A ; DB 0 ;FDD COUNT + LD (IX+1),#02 ; DB 0 ;FDD COUNT + LD (IX+2),A ; DB 0 ;HDD COUNT + LD (IX+3),A ; DB 0 ;CDROM COUNT ; ; BLOCK 13,0 ;RESERVED ;!TODO сделать RAMDRIVE тут? - LD (IX+4),#00 ; END FLAG + LD (IX+4),A ; END FLAG + DEC A ;Calculating FDD devices - LD A,#FF - LD HL,FDD_INIT_TABLE.FDD_0 - CALL .CHECK_FDD - LD HL,FDD_INIT_TABLE.FDD_1 - CALL .CHECK_FDD - -; INC (IX+1) -; LD B,8 -; LD A,#FF -; .TFD0: -; CP (HL) -; INC HL -; JR NZ,.YYYFD0 -; DJNZ .TFD0 -; DEC (IX+1) -; .YYYFD0: -; LD HL,FDD_INIT_TABLE.FDD_1 -; INC (IX+1) -; LD B,8 -; LD A,#FF -; .TFD1: -; CP (HL) -; INC HL -; JR NZ,.YYYFD1 -; DJNZ .TFD1 -; DEC (IX+1) -; .YYYFD1: - + ; A=#FF + ; LD HL,SYS_PAGE.FDD_TABLE + ; CALL .CHECK_FDD + ; LD HL,SYS_PAGE.FDD_1_TABLE + ; CALL .CHECK_FDD ; A=#FF ;Calculating IDE devices IDE TYPE 1-HDD, 2-CD-ROM LD IY,IDE.INIT_TBL_IDE0 @@ -84,57 +66,7 @@ DRV_LIST: .NEXT_IDE: ADD IY,DE DJNZ .CHECK_IDE - -; LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM -; CP #FF -; JR Z,.ABSIDE0 -; CP IDE.Device.HDD -; JR NZ,.NOT_HD0 -; INC (IX+2) -; .NOT_HD0: -; CP IDE.Device.ATAPI -; JR NZ,.NOT_CD0 -; INC (IX+3) -; .NOT_CD0: -; .ABSIDE0: -; LD IY,IDE.INIT_TBL_IDE1 -; LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM -; CP #FF -; JR Z,.ABSIDE1 -; CP IDE.Device.HDD -; JR NZ,.NOT_HD1 -; INC (IX+2) -; .NOT_HD1: -; CP IDE.Device.ATAPI -; JR NZ,.NOT_CD1 -; INC (IX+3) -; .NOT_CD1: -; .ABSIDE1: -; LD IY,IDE.INIT_TBL_IDE2 -; LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM -; CP #FF -; JR Z,.ABSIDE2 -; CP IDE.Device.HDD -; JR NZ,.NOT_HD2 -; INC (IX+2) -; .NOT_HD2: -; CP IDE.Device.ATAPI -; JR NZ,.NOT_CD2 -; INC (IX+3) -; .NOT_CD2: -; .ABSIDE2: -; LD IY,IDE.INIT_TBL_IDE3 -; LD A,(IY+IDE.HDD_INIT_TABLE.DriveType) ;IDE TYPE 1-HDD, 2-CD-ROM -; CP #FF -; JR Z,.check_exit -; CP IDE.Device.HDD -; JR NZ,.NOT_HD3 -; INC (IX+2) -; .NOT_HD3: -; CP IDE.Device.ATAPI -; JR NZ,.check_exit -; INC (IX+3) - + ; .check_exit: POP IY POP AF @@ -143,16 +75,16 @@ DRV_LIST: RET ; ; A=#FF -.CHECK_FDD: - INC (IX+1) - LD B,8 -.TFD0: CP (HL) - INC HL - RET NZ - DJNZ .TFD0 - DEC (IX+1) - RET - ; +; .CHECK_FDD: +; INC (IX+1) +; LD B,8 +; .TFD0: CP (HL) +; INC HL +; RET NZ +; DJNZ .TFD0 +; DEC (IX+1) +; RET +; ; INCLUDE 'EXTENDED/FDD_DRIVER_2.asm' INCLUDE 'EXTENDED/RAM_DISK_DRIVER_1.asm' diff --git a/src/bios/rom/SETUP/MAIN.asm b/src/bios/rom/SETUP/MAIN.asm index aba9166..f35a39e 100644 --- a/src/bios/rom/SETUP/MAIN.asm +++ b/src/bios/rom/SETUP/MAIN.asm @@ -1191,56 +1191,58 @@ MOVE1: LD HL,#8000 ; !HARDCODE SYSID: DZ "Starting..." .length EQU $-SYSID -;!FIXIT переделать под структуру для переменных FDD, отдельные переменные под A и B -FD144A: DB #80,#12,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD -.Size EQU $ - FD144A -FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD -.Size EQU $ - FD720A + +;FD144A: DB #80,#12,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD +; .Size EQU $ - FD144A +; FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD +; .Size EQU $ - FD720A +FDD_INIT_TABLE: FDD_1440_TABLE FDD_INSTAL: IN A,(SLOT3) EX AF,AF' LD A,SYS_PAGE OUT (SLOT3),A - LD HL,FDD_INIT_TABLE.FDD_0 - LD BC,SYS_PAGE.FDD_TBL.Size*256 + #FF ; table_size*256 + fill_byte + LD HL,SYS_PAGE.FDD_TABLE + LD BC,SYS_PAGE.FDD_TABLE.Size*256 + #FF ; table_size*256 + fill_byte .FILLFDD: LD (HL),C INC HL DJNZ .FILLFDD ; - EX AF,AF' - OUT (SLOT3),A - LD BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD ;#0311 - CALL GET_CMOS_VALUE - LD HL,FD720A - OR A - JR Z,.SETFD0 - LD HL,FD144A - DEC A - JR NZ,.NOFDD0 -.SETFD0: IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD DE,FDD_INIT_TABLE.FDD_0 - LD BC,FD144A.Size ; !HARDCODE - LDIR - EX AF,AF' - OUT (SLOT3),A -.NOFDD0: LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11 - CALL GET_CMOS_VALUE - LD HL,FD720A - OR A - JR Z,.SETFD1 - LD HL,FD144A - DEC A - JR NZ,.NOFDD1 -.SETFD1: IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A - LD DE,FDD_INIT_TABLE.FDD_1 - LD BC,FD144A.Size ; !HARDCODE + ;EX AF,AF' + ;OUT (SLOT3),A + ;LD BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD ;#0311 + ;CALL GET_CMOS_VALUE + ;LD HL,FD720A + ;OR A + ;JR Z,.SETFD0 + LD HL,FDD_INIT_TABLE + ;DEC A + ;JR NZ,.NOFDD0 +;.SETFD0: ;IN A,(SLOT3) + ;EX AF,AF' + ;LD A,SYS_PAGE + ;OUT (SLOT3),A + LD DE,SYS_PAGE.FDD_TABLE + ; B=0 + LD C,SYS_PAGE.FDD_TABLE.Size LDIR + ;EX AF,AF' + ;OUT (SLOT3),A +;.NOFDD0: LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11 + ;CALL GET_CMOS_VALUE + ;LD HL,FD720A + ;OR A + ;JR Z,.SETFD1 + ;LD HL,FD144A + ;DEC A + ;JR NZ,.NOFDD1 +;.SETFD1: IN A,(SLOT3) + ;EX AF,AF' + ;LD A,SYS_PAGE + ;OUT (SLOT3),A + ;LD DE,SYS_PAGE.FDD_1_TABLE + ;LD BC,FD144A.Size + ;LDIR EX AF,AF' OUT (SLOT3),A .NOFDD1: RET diff --git a/src/bios/shared/DEFINES.INC b/src/bios/shared/DEFINES.INC index 62829ce..a8d2ccc 100644 --- a/src/bios/shared/DEFINES.INC +++ b/src/bios/shared/DEFINES.INC @@ -1,6 +1,6 @@ ;=======================[All shared EQUs]=======================; BETA_BUILD EQU 40 ; добавляет строку и сообщение о тестовой сборке на стартовом экране -BETA_RC EQU 0 ; +BETA_RC EQU 2 ; ;======================[All shared defines]=====================; DEFINE PACKED_MAIN 0 ; паковать MAIN или влезает без этого? DEFINE SP2000_Loader_Flag #0107 ; @@ -21,7 +21,6 @@ BETA_RC EQU 0 ; DEFINE TEST_INT 1 ; Тестовый обработчик пользовательского INT DEFINE NEW_FEATURE 0 ; !TODO пункты в сетап ;DEFINE HDDwriteProtect 0 ; старая фишка для функций 5x - DEFINE FDD_NormalCount 0 ; !TODO DEFINE UnusedSettingsFeatures 0 ; ;DEFINE OPTIMIZE_RW_PROCEDURE 0 ; DEFINE BIG_ENDIAN_STR_PRINT 1 ; diff --git a/src/bios/shared/RECOVERY.IMG b/src/bios/shared/RECOVERY.IMG index 5d8f5ba540a86c4942ebdbc516650cd7d6e68f47..f315c02092ad5b3ca7db832e154f10f7347472aa 100644 GIT binary patch delta 674 zcmYk3L1+^}6oz-Q=@Pfek}jN0dB3zh>YJVy`qWwyT=Z&!0Vi1HP<(qd z$~ZK2B_4PnkXY3L*;L>*HzL8{A#<@SUFl&|NdS8FZ?WJWwDvkM7{4?xP}tPLCQD(f zMw~jzLAoe|KG3N1A7wOM9*R}vf`2#U9`sdZk197OKgq{js(cob#H(hw&b@vHXP$!r z(9G%P2x1>^h!K>II8*=u%})SDHWYO!QD-OhIM;~<#wzO9L}{a9=2p_sN>Ikt=%aVe z(}EcNK8)AnZyn%9f683!f0Ndc7E_?A;1+N>0!&21G-3AdS~{ZF+M{B#(Af1@nd=ty zTuhPG4dnM$L^~oTZ%9EZzkY`L34$qeb*&PJ)a7g z)%&S7AC#EmT1#oGY)YW<_g1@atVbSdFEu(&0G*GA?)F4pjHU+H?U;ZJps3>H#$%4W)Z1q-z;be zHFFVI$PHr5&t^MDknZmd+cm@lAU5y;jlbAp#|CuN|3eaNK&P?*nX-p1xnB1&vNGPk zVa3olIpMHe{qNrG<|k}5#EgFTYW?he>&@85sr0i~TacMy`P-lyir0Gtr}i<5FuvUY zavTH0T_6?&8o>rK0xH7DAZXFf$i{sC{IbR2oQo{aH z!vCxkM5KhbPo8^3T<~?j;+uXxx$7sbUib4cURQiG`REZZM#IShM1Oq#c1+wXZG17;Pb#`LGj5+; za9oP<@8s^|k`l3P7CdKr+rC;^HuDKx|9JB2S(i3DE?~6mIbI;~x7GZlodO@%bpwvC zcD%so{CLvHvRTn(vdf8Z77%X{6WiqZ=QdA1|6g*l_IdTq`_A8VXXKcyb6#!xK5@pI L@-VhJqmu^!Gd&}z