Merge remote-tracking branch 'refs/remotes/Sprinter-Core/beta' into beta

This commit is contained in:
Анатолий Белянский 2026-01-24 17:17:14 +10:00
commit 53ee837c81
11 changed files with 305 additions and 117 deletions

@ -1 +1 @@
Subproject commit 6073b8787867fe5d217d064c9f5f77972303148c Subproject commit 2fec6202f716cfa3ed48fb9bfd79d1081cc2721b

View File

@ -29,12 +29,13 @@
; A - D0 - "1" - Removable media ; A - D0 - "1" - Removable media
;[]===========================================================[] ;[]===========================================================[]
;!FIXIT ¢á¥£¤  ¨¤¥â à ¡®â  á ¤ ­­ë¬¨ ¤«ï ¤¨áª  € ;!FIXIT ¢á¥£¤  ¨¤¥â à ¡®â  á ¤ ­­ë¬¨ ¤«ï ¤¨áª  €
;!FIXIT ç¨â âì ¤ ­­ë¥ á ­ã«¥¢®© ¤®à®¦ª¨? <20>ਤ㬠âì çâ® ¤¥« âì á £¥®¬¥âਥ© ä«®¯ à¥©
FDD_5x_GET_PAR: IN A,(SLOT3) FDD_5x_GET_PAR: IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
; ;
LD HL,(SYS_PAGE.FDD_TABLE.SECTORS) LD HL,(SYS_PAGE.FDD_TABLE.SECTORS) ; L - Sectors, H - Heads
LD DE,(SYS_PAGE.FDD_TABLE.CYLINDL) LD DE,(SYS_PAGE.FDD_TABLE.CYLINDL)
LD IX,(SYS_PAGE.FDD_TABLE.BytesPerSector) LD IX,(SYS_PAGE.FDD_TABLE.BytesPerSector)
LD A,(SYS_PAGE.FDD_TABLE.DISK) LD A,(SYS_PAGE.FDD_TABLE.DISK)
@ -98,7 +99,7 @@ FDD_5x_DETECT: CALL SAVE_INTERRUPTS.switch_off
;[]===========================================================[] ;[]===========================================================[]
FDD_5x_RESET: CALL SAVE_INTERRUPTS.switch_off FDD_5x_RESET: CALL SAVE_INTERRUPTS.switch_off
CALL SET_DOS_ON CALL SET_DOS_ON
CALL S_FDD CALL SET_FDD
CALL DISK_ID CALL DISK_ID
JR C,.int JR C,.int
; [ ] à §¬¥à  ᥪâ®à  ; [ ] à §¬¥à  ᥪâ®à 
@ -181,7 +182,7 @@ FDD_5x_LONG_READ:
EX AF,AF' EX AF,AF'
PUSH BC PUSH BC
CALL SET_DOS_ON CALL SET_DOS_ON
CALL S_FDD CALL SET_FDD
CALL SET_SPEED CALL SET_SPEED
CALL NTRACK CALL NTRACK
POP BC POP BC
@ -190,23 +191,25 @@ FDD_5x_LONG_READ:
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
LD IY,(SYS_PAGE.FDD_TABLE.BytesPerSector) LD IY,(SYS_PAGE.FDD_TABLE.BytesPerSector) ; ãáâ ­ ¢«¨¢ âì ®â¤¥«ì­® ¯¥à¥¬¥­­ãî current BytesPerSector?
LD XH,C ; Memory Page Number LD XH,C ; Memory Page Number
LD A,(SYS_PAGE.FDD_TABLE.SECTORS) LD A,(SYS_PAGE.FDD_TABLE.SECTORS)
LD C,A LD C,A
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
;
.DSK_LP: LD A,D .DSK_LP: LD A,D
EXX EXX
PUSH BC PUSH BC
CALL SEEK CALL SEEK
;!FIXIT ª®­âà®«ì ®è¨¡ª¨
POP BC POP BC
EXX EXX
PUSH DE PUSH DE
PUSH BC PUSH BC
PUSH HL PUSH HL
CALL FDD_RW_SECTOR CALL FDD_RW_SECTOR
JR C,ERRDOS JR C,.ERRDOS
; à §¬¥à ᥪâ®à  ; à §¬¥à ᥪâ®à 
LD D,YH LD D,YH
LD E,YL LD E,YL
@ -214,17 +217,18 @@ FDD_5x_LONG_READ:
POP HL POP HL
POP BC POP BC
ADD HL,DE ADD HL,DE
;
CALL C,CHANGE_MEM_BLK CALL C,CHANGE_MEM_BLK
; ;.THISRD
.THISRD: POP DE POP DE
LD A,C LD A,C
INC E INC E
CP E CP E
JR NZ,.NINC_T JR NZ,.NINC_T
;
LD E,0 LD E,0
INC D INC D
.NINC_T: DJNZ .DSK_LP .NINC_T: DJNZ .DSK_LP
;
.RETDOS: CALL SET_DOS_OFF .RETDOS: CALL SET_DOS_OFF
LD A,XH ; Memory Page Number LD A,XH ; Memory Page Number
EX AF,AF' EX AF,AF'
@ -239,6 +243,7 @@ FDD_5x_LONG_READ:
DEC B DEC B
LD B,0 LD B,0
JR NZ,.ADD8BIT JR NZ,.ADD8BIT
;
INC B INC B
.ADD8BIT: ADD IX,BC .ADD8BIT: ADD IX,BC
;!TEST ;!TEST
@ -254,7 +259,7 @@ FDD_5x_LONG_READ:
XOR A XOR A
RET RET
; ;
ERRDOS: POP HL .ERRDOS: POP HL
POP BC POP BC
POP DE POP DE
CALL SET_DOS_OFF CALL SET_DOS_OFF
@ -400,8 +405,10 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
PUSH DE PUSH DE
PUSH HL PUSH HL
CALL RESWG ; RESET_WG CALL RESWG ; RESET_WG
;!FIXIT ª®­âà®«ì ®è¨¡ª¨
LD A,XL LD A,XL
CALL SEEK ; !!!!! ¯®á¬®âà¥âì CALL SEEK ; !!!!! ¯®á¬®âà¥âì
;!FIXIT ª®­âà®«ì ®è¨¡ª¨
POP HL POP HL
POP DE POP DE
JR .RETRY JR .RETRY
@ -434,9 +441,9 @@ FDD_RW_SECTOR: LD D,5 ;RETRY COUNT
JR Z,.SectorSizeError JR Z,.SectorSizeError
; ;
OUTI OUTI
.wwait_data: IN A,(FDC_93.DrvCTRL) .wait_data_w: IN A,(FDC_93.DrvCTRL)
AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ­­ëå = 1). b7: INTRQ (¢ë¯®«­ï¥âáï ª®¬ ­¤  = 0). AND %1100'0000 ;b6: DRQ (§ ¯à®á ¤ ­­ëå = 1). b7: INTRQ (¢ë¯®«­ï¥âáï ª®¬ ­¤  = 0).
JR Z,.wwait_data JR Z,.wait_data_w
JP P,.write_loop JP P,.write_loop
JP .rw_return JP .rw_return
; ;
@ -468,12 +475,33 @@ SET_DOS_OFF: EX AF,AF'
EX AF,AF' EX AF,AF'
RET RET
; ////////////////////////////////////////////////////////////////////////
S_FDD: PUSH BC ; <20>… ƒ<>Ž•€œ. ‚¥àá¨ï ¤«ï FDD AUTO ®¤­¨¬ ¡ãä¥à®¬ FDD_TABLE
; SET_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
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
SET_FDD: PUSH BC
AND 1 AND 1
LD B,A LD B,A
OR #3C OR #3C
OUT (FDC_93.DrvCTRL),A OUT (FDC_93.DrvCTRL),A
IN A,(SLOT3) IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
@ -486,7 +514,8 @@ S_FDD: PUSH BC
OUT (SLOT3),A OUT (SLOT3),A
POP BC POP BC
RET RET
; ////////////////////////////////////////////////////////////////////////
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; CHANGE_SPEED: IN A,(SLOT3) ; CHANGE_SPEED: IN A,(SLOT3)
@ -521,6 +550,42 @@ S_FDD: PUSH BC
; OUT (FDD_Density),A ; OUT (FDD_Density),A
; RET ; RET
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
;----------------------------------------------------------------------;
; CHANGE_SPEED: IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD A,(SYS_PAGE.FDD_TABLE.DISK)
; XOR #80
; LD (SYS_PAGE.FDD_TABLE.DISK),A
; RLA
; EX AF,AF'
; OUT (SLOT3),A
; EX AF,AF'
; JR NC,FDD.SET720
; FDD.SET1440: LD A,FDD_Density.SET_1440
; OUT (FDD_Density),A
; RET
; ;
; ;
; SET_SPEED: IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD A,(SYS_PAGE.FDD_TABLE.DISK)
; ;AND #80
; RLA
; EX AF,AF'
; OUT (SLOT3),A
; EX AF,AF'
; JR C,FDD.SET1440
; FDD.SET720: LD A,FDD_Density.SET_720
; OUT (FDD_Density),A
; RET
=======
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
CHANGE_SPEED: IN A,(SLOT3) CHANGE_SPEED: IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
@ -529,9 +594,13 @@ CHANGE_SPEED: IN A,(SLOT3)
XOR #80 XOR #80
LD (SYS_PAGE.FDD_TABLE.DISK),A LD (SYS_PAGE.FDD_TABLE.DISK),A
JR SET_SPEED.set JR SET_SPEED.set
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
; ;
; ;
=======
;
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
SET_SPEED: IN A,(SLOT3) SET_SPEED: IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
@ -548,6 +617,41 @@ SET_SPEED: IN A,(SLOT3)
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
////////////////////////////////////////////////////////////////////////
; ‚室: BC - ¢­ãâ७­¨© ¨ ¢­¥è­¨© áçñâ稪¨
WAIT_FDD_FOR_SEARCH_TRACK:
LD A,#C0 ;!HARDCODE CMD Š<>1818ƒ93
OUT (FDC_93.Command),A
PUSH BC
CALL .LOOP
POP BC
RET NC
;
CALL CHANGE_SPEED
DEC C
JR NZ,WAIT_FDD_FOR_SEARCH_TRACK
;
SCF
RET
;
.LOOP: LD HL,#F000
.loop_reg_HL: IN A,(FDC_93.DrvCTRL)
AND #C0
RET NZ
;
.ID_LP4: DEC HL
LD A,H
OR L
JR NZ,.loop_reg_HL
;
DJNZ .LOOP
SCF
RET
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
; ¯à¥à뢠­¨ï ¤®«¦­ë ¡ëâì ®âª«î祭ë ; ¯à¥à뢠­¨ï ¤®«¦­ë ¡ëâì ®âª«î祭ë
; ¢ë室: A - FDD_INIT_TABLE.DISK, B - sector size high byte ; ¢ë室: A - FDD_INIT_TABLE.DISK, B - sector size high byte
DISK_ID: EXX DISK_ID: EXX
@ -556,6 +660,7 @@ DISK_ID: EXX
OUT (FDC_93.Data),A OUT (FDC_93.Data),A
LD A,#18 ;!TODO ¢ë¯¨á âì ª®¬¬ ­¤ë ‚ƒ ;SEARCH ;!HARDCODE CMD Š<>1818ƒ93 LD A,#18 ;!TODO ¢ë¯¨á âì ª®¬¬ ­¤ë ‚ƒ ;SEARCH ;!HARDCODE CMD Š<>1818ƒ93
CALL EXECOM CALL EXECOM
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
LD C,4 ; áçñâ稪 LD C,4 ; áçñâ稪
.loop_reg_C: LD A,#C0 ;!HARDCODE CMD Š<>1818ƒ93 .loop_reg_C: LD A,#C0 ;!HARDCODE CMD Š<>1818ƒ93
OUT (FDC_93.Command),A OUT (FDC_93.Command),A
@ -572,8 +677,18 @@ DISK_ID: EXX
CALL CHANGE_SPEED CALL CHANGE_SPEED
DEC C DEC C
JR NZ,.loop_reg_C JR NZ,.loop_reg_C
=======
; ªã᮪ ¤«ï ¡ëáâàëå ä«®¯¯ à¥©
LD BC,#0104 ; áçñâ稪¨
CALL WAIT_FDD_FOR_SEARCH_TRACK
JR NC,.Read_Index
; ªã᮪ ¤«ï â®à¬®§­ëå ä«®¯¯ à¥©
LD BC,#0804 ; áçñâ稪¨
CALL WAIT_FDD_FOR_SEARCH_TRACK
JR NC,.Read_Index
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
EXX EXX
SCF ;SCF
RET RET
; ;
.Read_Index: ; .Read_Index: ;
@ -582,8 +697,13 @@ DISK_ID: EXX
; ­®¬¥à £®«®¢ª¨ BYTE ; ­®¬¥à £®«®¢ª¨ BYTE
; ­®¬¥à ᥪâ®à  BYTE ; ­®¬¥à ᥪâ®à  BYTE
; ¤«¨­  ᥪâ®à  BYTE ; ¤«¨­  ᥪâ®à  BYTE
<<<<<<< HEAD:src/bios/exp/EXTENDED/FDD_DRIVER_2.asm
; ª®­â஫쭠ï á㬬  WORD ; ª®­â஫쭠ï á㬬  WORD
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â  à §¬¥à  ᥪâ®à  LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â  à §¬¥à  ᥪâ®à 
=======
; ª®­â஫쭠ï á㬬  WORD
LD H,4 ; !HARDCODE áçñâ稪 ¤® ¡ ©â  à §¬¥à  ᥪâ®à 
>>>>>>> refs/remotes/Sprinter-Core/beta:src/bios/exp/EXTENDED/FDD_DRIVER.asm
.ID_LP2: IN A,(FDC_93.Data) .ID_LP2: IN A,(FDC_93.Data)
DEC H DEC H
JR NZ,.ID_LP3 JR NZ,.ID_LP3
@ -605,6 +725,7 @@ DISK_ID: EXX
EX AF,AF' EX AF,AF'
AND #80 AND #80
RET RET
////////////////////////////////////////////////////////////////////////
; ;
SEEK: LD XL,A SEEK: LD XL,A
@ -658,22 +779,47 @@ P50ms: PUSH BC
RET RET
; ;
////////////////////////////////////////////////////////////////////////
;RESWG: LD A,8
; ;
;EXECOM: OUT (FDC_93.Command),A
; LD HL,#0000 ; áçñâ稪
;.WREST: DEC HL
; LD A,H
; OR L
; SCF
; RET Z
; ;
; IN A,(FDC_93.DrvCTRL)
; AND #80
; JR Z,.WREST
; RET
; ;
RESWG: LD A,8 ;!HARDCODE CMD Š<>1818ƒ93 RESWG: LD A,8 ;!HARDCODE CMD Š<>1818ƒ93
; ;
EXECOM: OUT (FDC_93.Command),A EXECOM: OUT (FDC_93.Command),A
LD HL,#0000 ; áçñâ稪 LD HL,#0000 ; áçñâ稪
PUSH BC
LD B,3 ; áçñâ稪
;
.WREST: DEC HL .WREST: DEC HL
LD A,H LD A,H
OR L OR L
SCF JR NZ,.get_state
RET Z
; ;
IN A,(FDC_93.DrvCTRL) DJNZ .WREST
AND #80 ;
JR Z,.WREST POP BC
SCF
RET RET
; ;
.get_state: IN A,(FDC_93.DrvCTRL)
AND #80
JR Z,.WREST
POP BC
RET
////////////////////////////////////////////////////////////////////////
; ;
;------------------------------- ;-------------------------------

View File

@ -676,6 +676,7 @@ WAITPRT: LD DE,256*(IDE.CtrlByte.Busy+IDE.CtrlByte.Ready+IDE.CtrlByte.Error) + I
AND D AND D
CP E CP E
JR Z,.ok JR Z,.ok
;
DEC HL DEC HL
LD A,L LD A,L
OR H OR H
@ -684,8 +685,8 @@ WAITPRT: LD DE,256*(IDE.CtrlByte.Busy+IDE.CtrlByte.Ready+IDE.CtrlByte.Error) + I
POP HL POP HL
DEC L DEC L
JR NZ,.loop JR NZ,.loop
; ; error
.error: LD A,BIOS.Error.NotReady LD A,BIOS.Error.NotReady
SCF SCF
RET RET
; ;

View File

@ -89,72 +89,50 @@ RAM_DRV_READ_WRITE:
LD L,B LD L,B
IN A,(SLOT3) IN A,(SLOT3)
LD H,A LD H,A
; LD A,H
; OR L
; JR NZ,.error_stack2 ; if sector_high > 0
; POP AF
POP AF POP AF
EX (SP),HL EX (SP),HL
PUSH AF PUSH AF
LD A,H LD A,H
OR L OR L
JR NZ,.error_stack2 ; if sector_high > 0 JR NZ,.error_stack2 ; if sector_high > 0
;
POP AF POP AF
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
LD A,C ; ¢ ॣ C ª®¬ ­¤  ç⥭¨ï ¨«¨ § ¯¨á¨ LD A,C ; ¢ ॣ C ª®¬ ­¤  ç⥭¨ï ¨«¨ § ¯¨á¨
EX AF,AF' EX AF,AF'
; A' = command ; A' = command
PUSH BC ; Sector_counter PUSH BC ; Sector_counter
PUSH DE ; Address PUSH DE ; Address
PUSH IX ; Sector_low PUSH IX ; Sector_low
AND #0F ;­®¬¥à à ¬¤¨áª  AND #0F ;­®¬¥à à ¬¤¨áª 
;LD C,BIOS.GET_RAMD_ST
;RST_to_BIOS
CALL GET_RAMD_ST CALL GET_RAMD_ST
; A = Memory Block ID ; A = Memory Block ID
POP DE ; Sector_low POP DE ; Sector_low
POP HL ; Address POP HL ; Address
POP BC ; Sector_counter POP BC ; Sector_counter
JR C,.error_stack1 JR C,.error_stack1
;
SLA E SLA E
RL D ; Sector_low * 2 RL D ; Sector_low * 2
JR C,.error_stack1 JR C,.error_stack1
;
PUSH BC PUSH BC
SLA B ; Sector_counter * 2 - ⨯  ã ¤¨áª¥âë ᥪâ®à 512 ¡ ©â®¢ SLA B ; Sector_counter * 2 - ⨯  ã ¤¨áª¥âë ᥪâ®à 512 ¡ ©â®¢
JR C,.error_stack2 JR C,.error_stack2
;
PUSH DE PUSH DE
//PUSH BC
;LD C,BIOS.BLK_RD_WR
;RST_to_BIOS
CALL BLK_RD_WR CALL BLK_RD_WR
JR C,.error_stack3 JR C,.error_stack3
;
; hl = address + Sector_low * 256 * Sector_counter ; hl = address + Sector_low * 256 * Sector_counter
//POP BC
//SRL B
POP DE POP DE
; de = Sector_low * 2 ; de = Sector_low * 2
SRL D SRL D
RR E RR E
; de = Sector_low ; de = Sector_low
POP BC POP BC
; b = Sector_counter ; b = Sector_counter
LD A,E LD A,E
ADD A,B ADD A,B
LD E,A LD E,A
@ -162,16 +140,12 @@ RAM_DRV_READ_WRITE:
ADC A,0 ADC A,0
LD D,A LD D,A
; de = Sector_counter + Sector_low ; de = Sector_counter + Sector_low
PUSH DE PUSH DE
POP IX POP IX
; ix = Sector_counter + Sector_low ; ix = Sector_counter + Sector_low
EX DE,HL EX DE,HL
; de = address + Sector_low * 256 * Sector_counter ; de = address + Sector_low * 256 * Sector_counter
LD HL,0 LD HL,0
POP AF POP AF
OUT (SLOT3),A OUT (SLOT3),A
AND A AND A
@ -179,6 +153,7 @@ RAM_DRV_READ_WRITE:
; HL:IX - Sector + Sector counter ; HL:IX - Sector + Sector counter
; DE - Address + (Sector counter * Size sector) ; DE - Address + (Sector counter * Size sector)
RET RET
;
.error_stack3: .error_stack3:
POP BC POP BC
.error_stack2: .error_stack2:

View File

@ -85,8 +85,8 @@ DRV_LIST:
; RET ; RET
; ; ; ;
INCLUDE 'EXTENDED/FDD_DRIVER_2.asm' INCLUDE 'EXTENDED/FDD_DRIVER.asm'
INCLUDE 'EXTENDED/RAM_DISK_DRIVER_1.asm' INCLUDE 'EXTENDED/RAM_DISK_DRIVER.asm'
INCLUDE 'EXTENDED/IDE/ATA_DRV.asm' INCLUDE 'EXTENDED/IDE/ATA_DRV.asm'
INCLUDE 'EXTENDED/IDE/ATAPI_DRV.asm' INCLUDE 'EXTENDED/IDE/ATAPI_DRV.asm'
INCLUDE 'EXTENDED/IDE/SHARED.asm' INCLUDE 'EXTENDED/IDE/SHARED.asm'

View File

@ -345,13 +345,14 @@ FN_TURBO:
;!FIXIT ¬¥­ï¥¬ ¯«®â­®áâì - ¬¥­ï¥¬ ¢ á¨á⥬­®© áâà ­¨æ¥ ¨­äã ®¡ í⮬ ;!FIXIT ¬¥­ï¥¬ ¯«®â­®áâì - ¬¥­ï¥¬ ¢ á¨á⥬­®© áâà ­¨æ¥ ¨­äã ®¡ í⮬
.SET_FDD_720: .SET_FDD_720:
LD A,FDD_Density.SET_720 LD A,FDD_Density.SET_720
OUT (FDD_Density),A JR .set
AND A ; OUT (FDD_Density),A
RET ; AND A
; RET
;!FIXIT ¬¥­ï¥¬ ¯«®â­®áâì - ¬¥­ï¥¬ ¢ á¨á⥬­®© áâà ­¨æ¥ ¨­äã ®¡ í⮬ ;!FIXIT ¬¥­ï¥¬ ¯«®â­®áâì - ¬¥­ï¥¬ ¢ á¨á⥬­®© áâà ­¨æ¥ ¨­äã ®¡ í⮬
.SET_FDD_1440: .SET_FDD_1440:
LD A,FDD_Density.SET_1440 LD A,FDD_Density.SET_1440
OUT (FDD_Density),A .set: OUT (FDD_Density),A
AND A AND A
RET RET

View File

@ -1201,56 +1201,109 @@ SYSID: DZ "Starting..."
; .Size EQU $ - FD144A ; .Size EQU $ - FD144A
; FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD ; FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD
; .Size EQU $ - FD720A ; .Size EQU $ - FD720A
FDD_INIT_TABLE: FDD_1440_TABLE
FDD_INIT_TABLE_35: FDD_TABLE_s {
#80, ;.DISK
#12, ;.SECTORS
#02, ;.HEADS
#50, ;.CYLINDL
#00, ;.CYLINDH
#0200, ;.BytesPerSector
#03 ;.ID
}
;
FDD_INIT_TABLE_525: FDD_TABLE_s {
#00 ;.DISK
#09 ;.SECTORS
#02 ;.HEADS
#50 ;.CYLINDL
#00 ;.CYLINDH
#0200 ;.BytesPerSector
#03 ;.ID
}
FDD_INSTAL: IN A,(SLOT3) FDD_INSTAL: IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
LD HL,SYS_PAGE.FDD_TABLE LD HL,SYS_PAGE.FDD_TABLE
LD BC,SYS_PAGE.FDD_TABLE.Size*256 + #FF ; table_size*256 + fill_byte LD BC,2*(SYS_PAGE.FDD_TABLE.Size*256) + #FF ; table_size*256 + fill_byte
.FILLFDD: LD (HL),C .FILLFDD: LD (HL),C
INC HL INC HL
DJNZ .FILLFDD DJNZ .FILLFDD
; ;
;EX AF,AF' ;
;OUT (SLOT3),A LD BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD ;#0311
;LD BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD ;#0311 CALL .Choose_FDD_Type
;CALL GET_CMOS_VALUE JR NZ,.next_FDD
;LD HL,FD720A ;
;OR A LD DE,SYS_PAGE.FDD_TABLE
;JR Z,.SETFD0 LD BC,SYS_PAGE.FDD_TABLE.Size
LD HL,FDD_INIT_TABLE LDIR
;DEC A .next_FDD: LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11
;JR NZ,.NOFDD0 CALL .Choose_FDD_Type
;.SETFD0: ;IN A,(SLOT3) JR NZ,.NOFDD1
;
LD DE,SYS_PAGE.FDD_1_TABLE
LD BC,SYS_PAGE.FDD_1_TABLE.Size
LDIR
.NOFDD1: EX AF,AF'
OUT (SLOT3),A
RET
;
.Choose_FDD_Type:
CALL GET_CMOS_VALUE
LD HL,FDD_INIT_TABLE_35
OR A
RET Z
;
LD HL,FDD_INIT_TABLE_525
DEC A
RET
/*
LD BC,CMOS_CELL.DrivesSetup_1.Mask.FirstFDD ;#0311
CALL GET_CMOS_VALUE
LD HL,FDD_INIT_TABLE_525
OR A
JR Z,.SETFD0
;
LD HL,FDD_INIT_TABLE_35
DEC A
JR NZ,.NOFDD0
;
.SETFD0: ;
;IN A,(SLOT3)
;EX AF,AF' ;EX AF,AF'
;LD A,SYS_PAGE ;LD A,SYS_PAGE
;OUT (SLOT3),A ;OUT (SLOT3),A
LD DE,SYS_PAGE.FDD_TABLE LD DE,SYS_PAGE.FDD_TABLE
; B=0 LD BC,SYS_PAGE.FDD_TABLE.Size
LD C,SYS_PAGE.FDD_TABLE.Size
LDIR LDIR
;EX AF,AF' ;EX AF,AF'
;OUT (SLOT3),A ;OUT (SLOT3),A
;.NOFDD0: LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11 .NOFDD0: LD BC,CMOS_CELL.DrivesSetup_1.Mask.SecondFDD ;#0C11
;CALL GET_CMOS_VALUE CALL GET_CMOS_VALUE
;LD HL,FD720A LD HL,FDD_INIT_TABLE_525
;OR A OR A
;JR Z,.SETFD1 JR Z,.SETFD1
;LD HL,FD144A ;
;DEC A LD HL,FDD_INIT_TABLE_35
;JR NZ,.NOFDD1 DEC A
;.SETFD1: IN A,(SLOT3) JR NZ,.NOFDD1
;
.SETFD1: ;
;IN A,(SLOT3)
;EX AF,AF' ;EX AF,AF'
;LD A,SYS_PAGE ;LD A,SYS_PAGE
;OUT (SLOT3),A ;OUT (SLOT3),A
;LD DE,SYS_PAGE.FDD_1_TABLE LD DE,SYS_PAGE.FDD_1_TABLE
;LD BC,FD144A.Size LD BC,FD144A.Size
;LDIR LDIR
EX AF,AF' .NOFDD1: EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
.NOFDD1: RET RET
*/
PIDNUM: LD HL,memBUFFER.ID PIDNUM: LD HL,memBUFFER.ID

View File

@ -279,22 +279,28 @@ SettingsItemsTabs:
IF NEW_FEATURE : DB paramLine : ENDIF IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum DB columnNum,lineNum
DB paramName DB paramName
DW CMOS_CELL.DrivesSetup_1.Mask.FirstFDD : DB %0000'0000 DW CMOS_CELL.DrivesSetup_1.Mask.FirstFDD : DB %0000'0010
DB msgStrings.valAuto DB msgStrings.val35
DB msgStrings.val525
DB msgStrings.valDash6
; DB msgStrings.valAuto
; DB msgStrings.val720 ; DB msgStrings.val720
; DB msgStrings.val1440 ; DB msgStrings.val1440
; DB msgStrings.valDash6 ; DB msgStrings.val1200
_mSETitemParams FddSecond _mSETitemParams FddSecond
DW OnChangeAction.nothing DW OnChangeAction.nothing
IF NEW_FEATURE : DB paramLine : ENDIF IF NEW_FEATURE : DB paramLine : ENDIF
DB columnNum,lineNum DB columnNum,lineNum
DB paramName DB paramName
DW CMOS_CELL.DrivesSetup_1.Mask.SecondFDD : DB %0000'0000 DW CMOS_CELL.DrivesSetup_1.Mask.SecondFDD : DB %0000'1000
DB msgStrings.valAuto DB msgStrings.val35
DB msgStrings.val525
DB msgStrings.valDash6
; DB msgStrings.valAuto
; DB msgStrings.val720 ; DB msgStrings.val720
; DB msgStrings.val1440 ; DB msgStrings.val1440
; DB msgStrings.valDash6 ; DB msgStrings.val1200
_mSETitemParams PriIdeMA _mSETitemParams PriIdeMA
DW OnChangeAction.nothing DW OnChangeAction.nothing
@ -653,6 +659,8 @@ msgStrings:
_mSetStr valAuto, tmp_Counter : DZ 'Auto ' _mSetStr valAuto, tmp_Counter : DZ 'Auto '
; _mSetStr val720, tmp_Counter : DZ '720K ' ; _mSetStr val720, tmp_Counter : DZ '720K '
; _mSetStr val1440, tmp_Counter : DZ '1.44M ' ; _mSetStr val1440, tmp_Counter : DZ '1.44M '
_mSetStr val35, tmp_Counter : DZ '3.5" '
_mSetStr val525, tmp_Counter : DZ '5.25" '
_mSetStr valDash6, tmp_Counter : DZ '------' _mSetStr valDash6, tmp_Counter : DZ '------'
_mSetStr parFddSecond, tmp_Counter : DZ 'FDD second : ' _mSetStr parFddSecond, tmp_Counter : DZ 'FDD second : '
_mSetStr parPriIdeMA, tmp_Counter : DZ 'Primary IDE Master',#FF,' : ' _mSetStr parPriIdeMA, tmp_Counter : DZ 'Primary IDE Master',#FF,' : '
@ -832,6 +840,8 @@ msgRusStrings:
_mSetStrRus valAuto, tmp_Counter : DZ '¢â® ' _mSetStrRus valAuto, tmp_Counter : DZ '¢â® '
; _mSetStrRus val720, tmp_Counter : DZ '720K ' ; _mSetStrRus val720, tmp_Counter : DZ '720K '
; _mSetStrRus val1440, tmp_Counter : DZ '1.44M ' ; _mSetStrRus val1440, tmp_Counter : DZ '1.44M '
_mSetStrRus val35, tmp_Counter : DZ '3.5" '
_mSetStrRus val525, tmp_Counter : DZ '5.25" '
_mSetStrRus valDash6, tmp_Counter : DZ '------' _mSetStrRus valDash6, tmp_Counter : DZ '------'
_mSetStrRus parFddSecond, tmp_Counter : DZ 'FDD ¢â®à®© : ' _mSetStrRus parFddSecond, tmp_Counter : DZ 'FDD ¢â®à®© : '
_mSetStrRus parPriIdeMA, tmp_Counter : DZ 'Primary IDE Master',#FF,' : ' _mSetStrRus parPriIdeMA, tmp_Counter : DZ 'Primary IDE Master',#FF,' : '

View File

@ -1,8 +1,10 @@
;=======================[All shared EQUs]=======================; ;=======================[All shared EQUs]=======================;
DEFINE SET_EXPID_VER 3
DEFINE SET_EXPID_MOD 07
BETA_BUILD EQU 1 ; 40 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥ BETA_BUILD EQU 1 ; 40 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
BETA_RC EQU 0 ; 2 ; BETA_RC EQU 0 ; 2 ;
RELEASEhotFIX EQU 0 ; RELEASEhotFIX EQU 0 ;
DEFINE RELEASE_BUILD_DATE "25.06.2025" DEFINE RELEASE_BUILD_DATE "19.01.2026"
;======================[All shared defines]=====================; ;======================[All shared defines]=====================;
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SP2000_Loader_Flag #0107 ; DEFINE SP2000_Loader_Flag #0107 ;

Binary file not shown.

View File

@ -2,8 +2,8 @@
; ============[For EXP part]============= ; ============[For EXP part]=============
; ------[Version of BIOS "VER.MOD"]------ ; ------[Version of BIOS "VER.MOD"]------
EXP_ID: EXP_ID:
.VER EQU 3 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ! .VER EQU SET_EXPID_VER ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ!
.MOD EQU 07 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ! .MOD EQU SET_EXPID_MOD ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥­ïâì âãâ!
BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
DEFINE BIOS_ver_string '0'+EXP_ID.VER, '.', '0'+EXP_ID.MOD/10, '0'+EXP_ID.MOD-(EXP_ID.MOD/10)*10 DEFINE BIOS_ver_string '0'+EXP_ID.VER, '.', '0'+EXP_ID.MOD/10, '0'+EXP_ID.MOD-(EXP_ID.MOD/10)*10