added "HDDwriteProtect" define
This commit is contained in:
parent
5dce9279bc
commit
d3467450ac
@ -73,6 +73,10 @@ IDE3 EQU #C1D8
|
||||
; DB #FF ;SECTOR PER CYLINDER HIGH ;06
|
||||
; DB #FF ;RESERVED ;07
|
||||
|
||||
|
||||
WRITE_OUTI_DUPs EQU 32 ; bytes
|
||||
|
||||
|
||||
HDD_5x.RESET: ; !FIXIT ¥ à¥á¥â¨âáï?
|
||||
;For non-ATAPI drives, the only method a driver has of resetting a drive
|
||||
; after a major error is to do a "software reset" on the bus.
|
||||
@ -448,13 +452,14 @@ WRS000:
|
||||
EX AF,AF'
|
||||
PUSH AF
|
||||
PUSH DE
|
||||
|
||||
IF HDDwriteProtect
|
||||
PUSH BC
|
||||
;!FIXIT write protect - remove
|
||||
LD D,#1D ;!!!!! CMOS £«ïãâì
|
||||
LD D,#1D ;!HARDCODE CMOS Write Protect
|
||||
CALL CMOS_RD
|
||||
POP BC
|
||||
AND 1
|
||||
JR Z,NOWP
|
||||
JR Z,NO_WriteProtect
|
||||
POP HL
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
@ -462,8 +467,9 @@ WRS000:
|
||||
LD A,8 ;WRITE PROTECT
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
NOWP CALL PRESET
|
||||
ENDIF
|
||||
NO_WriteProtect:
|
||||
CALL PRESET
|
||||
POP HL
|
||||
POP AF
|
||||
LD XL,0
|
||||
@ -486,9 +492,10 @@ WRS002: EXX
|
||||
OUT (SLOT3),A
|
||||
LD BC,IDE.Write.Data
|
||||
|
||||
LD D,#20
|
||||
;LD D,#20
|
||||
LD D,512/WRITE_OUTI_DUPs
|
||||
WRS003:
|
||||
DUP 16
|
||||
DUP WRITE_OUTI_DUPs
|
||||
OUTI
|
||||
EDUP
|
||||
DEC D
|
||||
@ -615,7 +622,6 @@ PRESET: LD A,B
|
||||
RET
|
||||
|
||||
; HL:DE - SECTOR OFFSET
|
||||
|
||||
LBA_CHS:
|
||||
LD C,(IY+IDE.HDD_INIT_TABLE.SectorsPerCylinderLow)
|
||||
LD B,(IY+IDE.HDD_INIT_TABLE.SectorsPerCylinderHigh)
|
||||
|
||||
@ -8,7 +8,23 @@
|
||||
; DEFINE SPTeam_year '2022'
|
||||
; DEFINE Disk_subsystem_ver_txt '3.05'
|
||||
; DEFINE SetupVer '2.55'
|
||||
LUA ALLPASS
|
||||
function get_key_for_value(t, value)
|
||||
for column=1,2 do
|
||||
for line,name in pairs(t[column]) do
|
||||
if name==value then return column,line end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function DeleteValueByDEFINE (t,zero_def,value)
|
||||
if tonumber(sj.get_define(zero_def)) then
|
||||
local delCol, delLine = get_key_for_value(t, value)
|
||||
table.remove (t[delCol], delLine)
|
||||
end
|
||||
end
|
||||
ENDLUA
|
||||
|
||||
LUA PASS1
|
||||
local date, month, year = Get_date_RU(sj.get_define("__DATE__"))
|
||||
@ -22,37 +38,46 @@
|
||||
LUA PASS1
|
||||
SettingsTabsOrder = {
|
||||
[1]={
|
||||
"Lang",
|
||||
"MemTest",
|
||||
"SaveRAMdrvs",
|
||||
"UpdBios",
|
||||
"StartDelay",
|
||||
"TypRate",
|
||||
"TypDelay",
|
||||
"RebootMsg",
|
||||
"SysDsk",
|
||||
"AltSysDsk",
|
||||
"FddFirst",
|
||||
"FddSecond",
|
||||
"PriIdeMA",
|
||||
"PriIdeSl",
|
||||
"SecIdeMA",
|
||||
"SecIdeSl",
|
||||
"HddWrPr",
|
||||
"Lang", -- 1
|
||||
"MemTest", -- 2
|
||||
"SaveRAMdrvs", -- 3
|
||||
"UpdBios", -- 4
|
||||
"StartDelay", -- 5
|
||||
"TypRate", -- 6
|
||||
"TypDelay", -- 7
|
||||
"RebootMsg", -- 8
|
||||
"SysDsk", -- 9
|
||||
"AltSysDsk", -- 10
|
||||
"FddFirst", -- 11
|
||||
"FddSecond", -- 12
|
||||
"PriIdeMA", -- 13
|
||||
"PriIdeSl", -- 14
|
||||
"SecIdeMA", -- 15
|
||||
"SecIdeSl", -- 16
|
||||
-- 17
|
||||
},
|
||||
[2]={
|
||||
"ScreenY",
|
||||
"ScreenX",
|
||||
"FrameInt",
|
||||
"VSync",
|
||||
"QuickStartROM",
|
||||
"TrDosA",
|
||||
"TrDosB",
|
||||
"TrDosC",
|
||||
"TrDosD",
|
||||
--"SetTime",
|
||||
"ScreenY", -- 1
|
||||
"ScreenX", -- 2
|
||||
"FrameInt", -- 3
|
||||
"VSync", -- 4
|
||||
"QuickStartROM", -- 5
|
||||
"TrDosA", -- 6
|
||||
"TrDosB", -- 7
|
||||
"TrDosC", -- 8
|
||||
"TrDosD", -- 9
|
||||
"SetTime", -- 10 DEFINES.INC --> NEW_FEATURE
|
||||
"HddWrPr", -- 11 DEFINES.INC --> HDDwriteProtect
|
||||
-- 12
|
||||
-- 13
|
||||
-- 14
|
||||
-- 15
|
||||
-- 16
|
||||
-- 17
|
||||
}
|
||||
}
|
||||
DeleteValueByDEFINE(SettingsTabsOrder,"NEW_FEATURE","SetTime")
|
||||
DeleteValueByDEFINE(SettingsTabsOrder,"HDDwriteProtect","HddWrPr")
|
||||
ENDLUA
|
||||
;
|
||||
|
||||
@ -61,15 +86,6 @@
|
||||
@.itemName? EQU $
|
||||
DEFINE TmpDef itemName?
|
||||
LUA ALLPASS
|
||||
function get_key_for_value(t, value)
|
||||
for column=1,2 do
|
||||
for line,name in pairs(t[column]) do
|
||||
if name==value then return column,line end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
local tmpName = sj.get_define("TmpDef")
|
||||
local column,line = get_key_for_value(SettingsTabsOrder, tmpName)
|
||||
if (column == nil or line == nil) then sj.error("Settings Tab not found",tmpName) end
|
||||
@ -316,6 +332,7 @@ SettingsItemsTabs:
|
||||
DB msgStrings.valCdRom
|
||||
DB msgStrings.valDash6
|
||||
|
||||
IF HDDwriteProtect
|
||||
_mSETitemParams HddWrPr
|
||||
DW OnChangeAction.nothing
|
||||
IF NEW_FEATURE : DB paramLine : ENDIF
|
||||
@ -324,6 +341,7 @@ SettingsItemsTabs:
|
||||
DB #1D,%0000'0001,%0000'0001
|
||||
DB msgStrings.valDisabled
|
||||
DB msgStrings.valEnabled
|
||||
ENDIF
|
||||
|
||||
_mSETitemParams ScreenY
|
||||
DW OnChangeAction.setXYpos
|
||||
@ -581,7 +599,9 @@ msgStrings:
|
||||
_mSetStr parPriIdeSl, tmp_Counter : DZ 'Primary IDE Slave : '
|
||||
_mSetStr parSecIdeMA, tmp_Counter : DZ 'Secondary IDE Master : '
|
||||
_mSetStr parSecIdeSl, tmp_Counter : DZ 'Secondary IDE Slave : '
|
||||
IF HDDwriteProtect
|
||||
_mSetStr parHddWrPr, tmp_Counter : DZ 'HDD Write protect : '
|
||||
ENDIF
|
||||
_mSetStr parScreenY, tmp_Counter : DZ 'Y-Screen position : '
|
||||
_mSetStr valMinus7, tmp_Counter : DZ '-7'
|
||||
_mSetStr valMinus6, tmp_Counter : DZ '-6'
|
||||
@ -727,7 +747,9 @@ msgRusStrings:
|
||||
_mSetStrRus parPriIdeSl, tmp_Counter : DZ 'Primary IDE Slave : '
|
||||
_mSetStrRus parSecIdeMA, tmp_Counter : DZ 'Secondary IDE Master : '
|
||||
_mSetStrRus parSecIdeSl, tmp_Counter : DZ 'Secondary IDE Slave : '
|
||||
IF HDDwriteProtect
|
||||
_mSetStrRus parHddWrPr, tmp_Counter : DZ '‡ é¨â § ¯¨á¨ HDD : '
|
||||
ENDIF
|
||||
_mSetStrRus parScreenY, tmp_Counter : DZ '‘¤¢¨£ íªà ¯® Y : '
|
||||
_mSetStrRus valMinus7, tmp_Counter : DZ '-7'
|
||||
_mSetStrRus valMinus6, tmp_Counter : DZ '-6'
|
||||
|
||||
@ -1,18 +1,20 @@
|
||||
; _________________
|
||||
;---------[All shared defines]----------\/ \/
|
||||
DEFINE DEBUG 1;| ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||
DEFINE NEW_FEATURE 0;| /\ ; !TODO ¯ãªâë ¢ á¥â ¯
|
||||
DEFINE TEST_INT 1;| \/ \/ ; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ ⥫ì᪮£® INT
|
||||
DEFINE PACKED_MAIN 0;| | ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
||||
DEFINE SP2000_ConfID #FEFF;| ;
|
||||
DEFINE IDE_Optimization 1;| ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
||||
DEFINE NeedSafePort_Y 1;| ============== ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
||||
DEFINE Pashalki 0; \__________________/\
|
||||
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp';|
|
||||
;____________________________________________________________/
|
||||
;
|
||||
;---------[All shared defines]----------
|
||||
DEFINE DEBUG 1 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||
DEFINE NEW_FEATURE 0 ; !TODO ¯ãªâë ¢ á¥â ¯
|
||||
DEFINE TEST_INT 1 ; ’¥áâ®¢ë© ®¡à ¡®â稪 ¯®«ì§®¢ ⥫ì᪮£® INT
|
||||
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
||||
DEFINE SP2000_ConfID #FEFF ;
|
||||
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
||||
DEFINE NeedSafePort_Y 1 ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
||||
DEFINE Pashalki 0 ;
|
||||
DEFINE PICTURE_FILE './src/bios/logo/psfathers.bmp'
|
||||
|
||||
DEFINE RECOVERYrdChooseTYPE 1 ; 1 - RECOVERY ¢á¥£¤ £à㧨âáï ¢ ¤¨áª 15, 2 - ¨é¥âáï ᢮¡®¤ë© à ¬¤¨áª ¨ ¥á«¨ â ª®£® ¥â, â® § ¨¬ ¥âáï 15ë©
|
||||
DEFINE RECOVERYmountTYPE 1 ; 1 - ¡ëáâàë© ¥¬®£® § å प®¦¥ë© ¢ ਠâ. 2 - ¡®«¥¥ "¯à ¢¨«ìë©"
|
||||
|
||||
DEFINE HDDwriteProtect 0
|
||||
|
||||
; ‡ ¤¥à¦ª ¢ ª ¤à å ¯®á«¥ ®âà¨á®¢ª¨ «®£®â¨¯ (0 = 256)
|
||||
DEFINE LOGO_DELAY_MIN 25
|
||||
DEFINE LOGO_DELAY_NORM 100
|
||||
|
||||
Loading…
Reference in New Issue
Block a user