mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
bugfixes
This commit is contained in:
parent
51c118ee62
commit
e20a714f08
@ -591,7 +591,7 @@ GET_BPB: LD HL,#0000
|
||||
;
|
||||
LD A,(FatBuffer.SectorsPerCluster)
|
||||
; HL:DE / A => DE:BC, H=0, L - Žáâ ⎪
|
||||
;CALL DIV_for_SPC
|
||||
;CALL DIV_by_Shifts
|
||||
LD C,A
|
||||
DEC A
|
||||
JR Z,.DIV_exit
|
||||
@ -624,7 +624,7 @@ GET_BPB: LD HL,#0000
|
||||
LD A,FAT_TYPE.x12
|
||||
JR NC,.SET_VARS
|
||||
;
|
||||
LD HL,65525
|
||||
LD HL,65524
|
||||
SBC HL,BC
|
||||
LD A,FAT_TYPE.x16
|
||||
JR NC,.SET_VARS
|
||||
@ -865,7 +865,7 @@ LOAD_CORE: LD (READMEM),DE
|
||||
|
||||
;
|
||||
; HL:DE / A => DE:BC, H=0, L - Žáâ ⎪
|
||||
; DIV_for_SPC:
|
||||
; DIV_by_Shifts:
|
||||
; LD C,A
|
||||
; DEC A
|
||||
; JR Z,.DIV_exit
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
; [x] - bug fixes and optimizations)))
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
; <20>à®£à ¬¬ § ¯¨á¨ FDD/HDD boot-§ £àã§ç¨ª ¨ ä ©«®¢ á¨á⥬ë.
|
||||
;
|
||||
; ‡ £à㦠¥â á¨áâ. ä ©«ë ¨§ ª®àï ¤¨áª , á ª®â®à®£® ¡ë«
|
||||
@ -59,7 +58,7 @@
|
||||
;.READ_PG: BYTE #00 ;!TODO ¥ ¨á¯®«ì§ãîâáï ¥ª®â®àë¥ § 票ï, ® § ¤ã¬ª ¥¯«®å ï)))
|
||||
;.S_X_H: DWORD #0000 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥
|
||||
ENDS
|
||||
|
||||
includelua 'Shared_includes/lua/Functions.lua'
|
||||
include 'shared_includes/constants/sp2000.inc'
|
||||
include 'shared_includes/constants/bios_equ.inc'
|
||||
include 'shared_includes/constants/dss_equ.inc'
|
||||
@ -69,6 +68,15 @@
|
||||
;include 'DSS/structures.inc'
|
||||
include '../DSS/defines.inc'
|
||||
|
||||
LUA PASS1
|
||||
local date, month, year = Get_date_RU(sj.get_define("__DATE__"))
|
||||
BuildDate = "'" .. date .. "." .. month .. "." .. year .. "'"
|
||||
sj.insert_define("SYS_BUILD_DATE", BuildDate)
|
||||
ENDLUA
|
||||
LUA ALLPASS
|
||||
sj.insert_define("SYS_BUILD_DATE", BuildDate)
|
||||
ENDLUA
|
||||
|
||||
DEFINE EXEinfoMACRO 0
|
||||
DEFINE App_EXE_Version 1
|
||||
MACRO _mEXEinfo
|
||||
@ -482,7 +490,7 @@ write_no_BPB: ld a,(disk) ;
|
||||
ld b,a
|
||||
inc c
|
||||
scf
|
||||
ret z ; !TODO § £à㧪 á à áè¨à¥®£® à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
||||
ret z
|
||||
dec c
|
||||
CP #80 ;!HARDCODE ⨯ ¤à ©¢ - HDD
|
||||
JR NC,.skip_FAT_check
|
||||
@ -566,10 +574,6 @@ get_drive_letter:
|
||||
get_drive_err: scf ; ®è¨¡ª
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;----------------------------------------------------
|
||||
; á®åà. ⥪. á¨áâ¥¬ë© ¤¨áª ¨ ¯ãâì
|
||||
;----------------------------------------------------
|
||||
@ -630,8 +634,9 @@ messages: db 0
|
||||
db "\r\nBoot and System files Installer v" ;0
|
||||
db major_version + '0','.'
|
||||
db (minor_version / 10) + '0',(minor_version % 10) + '0','.'
|
||||
db "\r\n\nCopyright (c) 2006 Vasil Ivanov."
|
||||
db "\r\n\nCopyright (c) 2023-2024 Sprinter Team."
|
||||
db "\r\nBuild date ",SYS_BUILD_DATE
|
||||
db "\r\nCopyright (c) 2006 Vasil Ivanov."
|
||||
db "\r\nCopyright (c) 2023-2024 Sprinter Team."
|
||||
db "\r\n\n",0
|
||||
;
|
||||
db "System successfully installed on disk " ;1
|
||||
|
||||
@ -8,13 +8,22 @@
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||
LD C,A
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
;
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
CALL DIR_PATH_CHECK
|
||||
POP BC
|
||||
POP HL
|
||||
RET C
|
||||
LD A,C
|
||||
.old_EXE: LD A,C
|
||||
;
|
||||
;
|
||||
INC B
|
||||
|
||||
@ -11,6 +11,15 @@
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
CHDIR_FN:
|
||||
;!TEST Current Dir ;[x] 15/10/23
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,CHDIR
|
||||
;
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
|
||||
@ -6,12 +6,20 @@
|
||||
CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
|
||||
PUSH HL
|
||||
LD C,A
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH BC
|
||||
CALL DIR_PATH_CHECK
|
||||
POP BC
|
||||
POP HL
|
||||
RET C
|
||||
LD A,C
|
||||
.old_EXE: LD A,C
|
||||
;
|
||||
CALL .Prepare
|
||||
RET C
|
||||
@ -33,12 +41,20 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
|
||||
.NEW: ;!TEST Current Dir ;[x] 15/10/23
|
||||
PUSH HL
|
||||
LD C,A
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH BC
|
||||
CALL DIR_PATH_CHECK
|
||||
POP BC
|
||||
POP HL
|
||||
RET C
|
||||
LD A,C
|
||||
.old_EXE_: LD A,C
|
||||
;
|
||||
CALL .Prepare
|
||||
RET C
|
||||
|
||||
@ -4,12 +4,20 @@
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
DEL_FN: ;!TEST
|
||||
;!TEST Current Dir ;[x] 15/10/23
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
.old_EXE: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
CALL MASK
|
||||
RET C
|
||||
|
||||
@ -87,7 +87,7 @@ EXEC: LD (CMDLINE),HL
|
||||
;LD HL,(CMDLINE)
|
||||
JR C,EXEC0_SHORT
|
||||
.VAR_2: CALL EXEC_1
|
||||
;LD A,DSS_Error.sys.FILE_NOT_FOUND
|
||||
LD A,DSS_Error.sys.FILE_NOT_FOUND
|
||||
SCF
|
||||
RET ; File not found - exit
|
||||
|
||||
@ -124,8 +124,11 @@ EXEC_1: ;LD (CMDLINE),HL
|
||||
;
|
||||
;SHORT NAME
|
||||
;TRY TO FIND IN CURRENT DIRECTORY
|
||||
EXEC0_SHORT: CALL EXEC_1
|
||||
EXEC0_SHORT: ; ¥á«¨ ã¡à âì, â® ¡ã¤¥â ª ª ¢ linux - ª®à®âª®¥ ¨¬ï § ¯ã᪠¥â EXE ⮫쪮 ¨§ ¯à®¯¨á ëå ¤¨à¥ªâ®à¨©,
|
||||
; ¥á«¨ 㦮 § ¯ãáâ¨âì ä ©« ¨§ ⥪ã饩 ¤¨à¥ªâ®à¨¨, â® â ª: ".\run.exe"
|
||||
CALL EXEC_1
|
||||
RET C
|
||||
;
|
||||
;FILE NOT FOUND, SEARCHING IN PATH
|
||||
; GET PATH AND ETC.
|
||||
LD HL,ENVPATH
|
||||
@ -149,7 +152,7 @@ COPYEXN: LD A,(HL)
|
||||
;
|
||||
EXEC02: LD (EXE_FM),A
|
||||
LD HL,CORE_BUFFERS.EXEBUFF
|
||||
LD DE,#0080 ;!#0200(512) ;R02
|
||||
LD DE,_sEXE_HEADER.UnUsedPoint ; #0080 ;!#0200(512) ;R02
|
||||
LD A,(EXE_FM)
|
||||
CALL READ
|
||||
JP C,ERREXE
|
||||
@ -169,6 +172,7 @@ EXEC02: LD (EXE_FM),A
|
||||
;JP NZ,ERREXE
|
||||
LD A,MINIMUM_EXE_VERSION
|
||||
CP (IX + _sEXE_HEADER.VERSION)
|
||||
LD A,DSS_Error.sys.UNKNOWN_EXE
|
||||
JP C,ERREXE
|
||||
;
|
||||
;
|
||||
@ -301,17 +305,27 @@ _TST_PROC: CALL GETMEM
|
||||
LD HL,#0000
|
||||
ADD HL,SP
|
||||
LD SP,(EXSTACK)
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
; ! „ «¥¥ á⥪ ¢ ã«¥¢®© áâà ¨æ¥! BIOS ¨ ¥ DSS-MAIN ¥ ¢ë§ë¢ âì
|
||||
PUSH HL ; +2 EXSTACK size for 1 task
|
||||
PUSH DE ; +2
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
PUSH AF ; +2
|
||||
;
|
||||
ENDIF
|
||||
;
|
||||
IN A,(SLOT3)
|
||||
LD D,A
|
||||
IN A,(SLOT2)
|
||||
LD E,A
|
||||
IN A,(SLOT1)
|
||||
PUSH DE
|
||||
PUSH AF
|
||||
PUSH DE ; +2
|
||||
PUSH AF ; +2
|
||||
LD (EXSTACK),SP
|
||||
LD SP,HL
|
||||
; ;
|
||||
EXX
|
||||
;
|
||||
;!TEST 27/03/2024
|
||||
@ -360,9 +374,9 @@ _TST_PROC: CALL GETMEM
|
||||
LD A,#80 ;!HARDCODE cmd line size
|
||||
SUB B
|
||||
LD (CORE_BUFFERS.SECTOR_BUFFER),A
|
||||
;R02
|
||||
LD SP,CORE_BUFFERS.EXEBUFF+510 ;‚áâ ¢«ï¥âáï ¢ SHARED_PAGE
|
||||
;
|
||||
LD SP,CORE_BUFFERS.EXEBUFF + _sEXE_HEADER ;R02
|
||||
; ! „ «¥¥ á⥪ ¢ ã«¥¢®© áâà ¨æ¥! BIOS ¨ ¥ DSS-MAIN ¥ ¢ë§ë¢ âì
|
||||
LD A,SHARED_PAGE
|
||||
OUT (SLOT1),A
|
||||
OUT (SLOT2),A
|
||||
@ -375,12 +389,6 @@ _TST_PROC: CALL GETMEM
|
||||
CP #80
|
||||
JR Z,FR8000
|
||||
JR NC,FRC000
|
||||
;CP #40
|
||||
;JR Z,FR4000
|
||||
;CP #80
|
||||
;JR Z,FR8000
|
||||
;CP #C0
|
||||
;JR Z,FRC000
|
||||
;
|
||||
FR4000: LD A,(DE)
|
||||
OUT (SLOT1),A
|
||||
@ -397,9 +405,8 @@ FRC000: LD A,(DE)
|
||||
LD B,high Dss.Move_FP.FrStart
|
||||
LD A,(EXE_FM)
|
||||
CALL MOVE_FP
|
||||
;R02
|
||||
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||
;
|
||||
LD SP,#403F ;R02 ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||
_ret+1: JP 0
|
||||
|
||||
_TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
@ -418,6 +425,12 @@ _TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
PUSH IX
|
||||
LD HL,CORE_BUFFERS.CurrentPath
|
||||
LD A,(CORE_BUFFERS.EXEBUFF.VERSION)
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD (EXE_VERSION),A
|
||||
;
|
||||
ENDIF
|
||||
OR A
|
||||
JR NZ,.set_path
|
||||
CALL DIR_PATH_CHANGE.FullCurrent
|
||||
@ -426,6 +439,7 @@ _TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||
;
|
||||
RET
|
||||
;-----------------------------------------------------------------------
|
||||
; ! ¢ë§ë¢ ¥âáï ª®£¤ á⥪ ¢ ã«¥¢®© áâà ¨æ¥!
|
||||
M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
DEC H
|
||||
LD D,H
|
||||
@ -517,6 +531,10 @@ SCOPYS: LD BC,#80*256 + ' '+1 ;!HARDCODE cmd line size
|
||||
ENVPATH: DB "PATH=",0
|
||||
EXE_EXT: DB "EXE"
|
||||
TASK: DB #01 ; ã஢¥ì ⥪ã饩 ¯à®£à ¬¬ë
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
EXE_VERSION: DB #01 ; [ ] 10/06/24
|
||||
ENDIF
|
||||
RAMMAP: DB #00,#00,#00,#00
|
||||
ErrorLevel: DB #00 ; ª®¤ § ¢¥àè¥¨ï ¯à®£à ¬¬ë (¯à®æ¥áá )
|
||||
EXE_FM: DB #00 ; ¤¥áªà. ä ©«
|
||||
@ -550,20 +568,26 @@ LEAVE: LD A,B
|
||||
_mDECTASK
|
||||
LD SP,(EXSTACK)
|
||||
; âãâ á⥪ ¢ ã«¥¢®© áâà ¨æ¥!
|
||||
POP AF
|
||||
POP HL
|
||||
POP AF ; -2 EXSTACK size for 1 task
|
||||
POP HL ; -2
|
||||
OUT (SLOT1),A
|
||||
LD A,L
|
||||
OUT (SLOT2),A
|
||||
LD A,H
|
||||
OUT (SLOT3),A
|
||||
POP DE
|
||||
POP HL
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
POP AF ; -2
|
||||
LD (EXE_VERSION),A
|
||||
ENDIF
|
||||
;
|
||||
POP DE ; -2
|
||||
POP HL ; -2
|
||||
LD (EXSTACK),SP
|
||||
LD SP,HL
|
||||
;
|
||||
;!TEST
|
||||
EI
|
||||
;EI
|
||||
;
|
||||
EX DE,HL
|
||||
LD A,(ErrorLevel)
|
||||
@ -650,7 +674,7 @@ CHECKPATH: ; !TODO ᤥ
|
||||
RET Z
|
||||
; CP '/' ;ALT SLASH
|
||||
; RET Z
|
||||
CP '!'
|
||||
CP " "+1
|
||||
JR NC,CHECKPATH
|
||||
RET
|
||||
;-----------------------------------------------------------------------
|
||||
|
||||
@ -20,9 +20,17 @@ F_FIRST:
|
||||
LD (.FNDMODE),A
|
||||
PUSH HL
|
||||
;!TEST Current Dir ;[x] 15/10/23
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
CALL DIR_PATH_CHECK
|
||||
RET C
|
||||
;
|
||||
.old_EXE:
|
||||
POP HL
|
||||
CALL GETWORD
|
||||
;CALL LOADDIR
|
||||
|
||||
@ -14,7 +14,14 @@ MKDIR:
|
||||
RET
|
||||
;
|
||||
; Entry point ;!TEST Current Dir ;[x] 15/10/23
|
||||
.B: PUSH HL
|
||||
.B: ; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.START
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
RET C
|
||||
|
||||
@ -15,11 +15,18 @@
|
||||
OPEN_FN: ;!TEST Current Dir ;[x] 15/10/23
|
||||
;AND #7F ; ACCESS_MODE bit7 - ¤«ï ¢ãâ॥£® ¨á¯®«ì§®¢ ¨ï))) ;!TODO
|
||||
LD (.TMP),A
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK.forceCheck
|
||||
POP HL
|
||||
RET C
|
||||
;JR .start
|
||||
.old_EXE: ;JR .start
|
||||
;!FIXIT ᤥ« âì ª ª ¢ mkdir ¨«¨ rmdir?
|
||||
;R008 ;
|
||||
.start: CALL GETWORD
|
||||
|
||||
@ -16,22 +16,7 @@ READ: LD (.R_POINT),HL
|
||||
CALL OPENDSK
|
||||
JP C,.ERR_1
|
||||
CALL GET_OFFSET_IN_SECTORS
|
||||
; ;<3B> áçñâ á¬¥é¥¨ï ¢ ᥪâ®à å ;!HARDCODE sector size
|
||||
; LD H,0 ;!HARDCODE max file size = 8 gb
|
||||
; LD E,(IY+_sFM.F_POSITION+1)
|
||||
; LD D,(IY+_sFM.F_POSITION+2)
|
||||
; LD L,(IY+_sFM.F_POSITION+3)
|
||||
; LD A,E
|
||||
; AND #01
|
||||
; LD B,A
|
||||
; LD C,(IY+_sFM.F_POSITION)
|
||||
; RR L
|
||||
; RR D
|
||||
; RR E
|
||||
; ;HL:DE FP (in sectors)
|
||||
; ;BC FP residue (in bytes)
|
||||
; ;
|
||||
; OR C
|
||||
;
|
||||
JP NZ,.ROV1
|
||||
.ROV4: POP BC
|
||||
PUSH BC
|
||||
|
||||
@ -10,6 +10,13 @@
|
||||
; DE - "new_name.ext",#00 without simbols * ?
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
CALL DIR_PATH_CHECK.forceCheck
|
||||
@ -17,6 +24,7 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
.old_EXE:
|
||||
PUSH DE
|
||||
;LD DE,MASKARE
|
||||
CALL MASK.name
|
||||
|
||||
@ -9,6 +9,13 @@
|
||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.START
|
||||
ENDIF
|
||||
;
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
|
||||
@ -35,9 +35,17 @@ SCANDRV:
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
; 4. ¢á直© á«ãç © ¯¥à¥ç¨âë¢ ¥¬ ¤¨à४â®à¨î
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
LD A,(CORE_BUFFERS.CurrentPath)
|
||||
SUB 'A'
|
||||
CALL OPENDSK
|
||||
;
|
||||
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||
CALL CHDIR
|
||||
JR NC,.exit
|
||||
@ -51,8 +59,20 @@ SCANDRV:
|
||||
EI
|
||||
RET
|
||||
;
|
||||
; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
.old_EXE: LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
CALL OPENDSK
|
||||
;
|
||||
LD HL,CORE_BUFFERS.WorkDirectory
|
||||
CALL CHDIR
|
||||
JR NC,.exit
|
||||
LD HL,CORE_BUFFERS.WorkDirectory
|
||||
LD (HL),0
|
||||
JR .exit
|
||||
ENDIF
|
||||
|
||||
.BOOT_DSK_LOST: DZ "Boot drive lost o_O"
|
||||
.BOOT_DSK_LOST.size EQU $-.BOOT_DSK_LOST
|
||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||
;///////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
@ -38,22 +38,7 @@ WRITE: ;!TEST ;!TODO 5/12/23 ; [ ]
|
||||
CALL OPENDSK
|
||||
JR C,.ERR1
|
||||
CALL GET_OFFSET_IN_SECTORS
|
||||
; ;<3B> áçñâ á¬¥é¥¨ï ¢ ᥪâ®à å ;!HARDCODE sector size
|
||||
; LD H,0 ;!HARDCODE max file size = 8 gb
|
||||
; LD E,(IY+_sFM.F_POSITION+1)
|
||||
; LD D,(IY+_sFM.F_POSITION+2)
|
||||
; LD L,(IY+_sFM.F_POSITION+3)
|
||||
; LD A,E
|
||||
; AND #01
|
||||
; LD B,A
|
||||
; LD C,(IY+_sFM.F_POSITION)
|
||||
; RR L
|
||||
; RR D
|
||||
; RR E
|
||||
; ;HL:DE FP (in sectors)
|
||||
; ;BC FP residue (in bytes)
|
||||
; ;
|
||||
; OR C
|
||||
;
|
||||
JP NZ,.WOV1
|
||||
;
|
||||
.WOV4: POP BC
|
||||
|
||||
@ -6,6 +6,14 @@
|
||||
; C - ®¬¥à ¯®á«¥¤¥£® ¤¨áª ¢ á¨á⥬¥
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
CURDISK_FN:
|
||||
;
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
; [ ] 10/06/24
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
JR Z,CURDISK
|
||||
;
|
||||
ENDIF
|
||||
LD A,(LDRIVE)
|
||||
LD C,A
|
||||
LD A,(CORE_BUFFERS.CurrentPath)
|
||||
|
||||
@ -122,11 +122,19 @@ DISKINF: LD C,B
|
||||
RET
|
||||
;
|
||||
CP #FF ; !FIXIT WorkDirectory
|
||||
;!TEST Current Dir
|
||||
;!TEST !Current Dir
|
||||
;JR Z,CURRDS ;R06
|
||||
.CurrentDisk: LD A,(CORE_BUFFERS.CurrentPath)
|
||||
.CurrentDisk: ; [ ] 10/06/24
|
||||
IF OLD_DSS_FOR_OLD_EXE
|
||||
LD A,(EXE_VERSION)
|
||||
OR A
|
||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||
JR Z,.old_EXE
|
||||
ENDIF
|
||||
;
|
||||
LD A,(CORE_BUFFERS.CurrentPath)
|
||||
SUB 'A'
|
||||
LD HL,CORE_BUFFERS.FatBuffer.DRIVE
|
||||
.old_EXE: LD HL,CORE_BUFFERS.FatBuffer.DRIVE
|
||||
CP (HL)
|
||||
JR Z,.CheckFreeSpace
|
||||
;
|
||||
|
||||
@ -922,7 +922,7 @@ RD_BPB: ; LD C,SLOT3
|
||||
;
|
||||
LD A,(CORE_BUFFERS.FatBuffer.SectorsPerCluster)
|
||||
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||
CALL DIV_for_SPC
|
||||
CALL DIV_by_Shifts
|
||||
; ¢ëïá塞 à §à冷áâì FAT
|
||||
LD A,D
|
||||
OR E
|
||||
@ -932,7 +932,7 @@ RD_BPB: ; LD C,SLOT3
|
||||
SBC HL,BC
|
||||
JR NC,.its_FAT12
|
||||
;
|
||||
LD HL,65525
|
||||
LD HL,65524
|
||||
SBC HL,BC
|
||||
JR C,.its_FAT32
|
||||
;
|
||||
|
||||
@ -1027,8 +1027,8 @@ BLOCK_READ: LD (READ.PointerOnBuffer),IX
|
||||
LD C,A
|
||||
PUSH BC ; B - ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤«ï ç⥨ï, C - SectorsPerCluster
|
||||
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||
CALL DIV_for_SPC
|
||||
PUSH HL ; ®áâ ⮪ DIV_for_SPC
|
||||
CALL DIV_by_Shifts
|
||||
PUSH HL ; ®áâ ⮪ DIV_by_Shifts
|
||||
; [x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||
PUSH DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||
@ -1086,7 +1086,7 @@ BLOCK_READ: LD (READ.PointerOnBuffer),IX
|
||||
POP BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||
CALL SaveGotCluster
|
||||
;
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_for_SPC
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_by_Shifts
|
||||
POP BC ; B - ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤«ï ç⥨ï, C - SectorsPerCluster
|
||||
; (SP) = (RET)
|
||||
; à ¡®â á ®áâ ⪮¬ ®â ¤¥«¥¨ï
|
||||
@ -1105,9 +1105,9 @@ BLOCK_READ: LD (READ.PointerOnBuffer),IX
|
||||
EXX
|
||||
PUSH HL ; ®¬¥à ª« áâ¥à ¬« ¤è ï ç áâì
|
||||
PUSH BC ; B = ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤®ç¨âªã, C = (SectorsPerCluster - ®áâ ⮪) «¨¡® ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤«ï ç⥨ï
|
||||
PUSH DE ; D = 0, E = ®áâ ⮪ DIV_for_SPC
|
||||
PUSH DE ; D = 0, E = ®áâ ⮪ DIV_by_Shifts
|
||||
CALL CLUSTER_TO_SECTOR
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_for_SPC
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_by_Shifts
|
||||
ADD IX,DE
|
||||
JR NC,.skip2
|
||||
INC HL
|
||||
@ -1222,8 +1222,8 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX
|
||||
LD C,A
|
||||
PUSH BC ; B - ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤«ï ç⥨ï, C - SectorsPerCluster
|
||||
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||
CALL DIV_for_SPC
|
||||
PUSH HL ; ®áâ ⮪ DIV_for_SPC
|
||||
CALL DIV_by_Shifts
|
||||
PUSH HL ; ®áâ ⮪ DIV_by_Shifts
|
||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||
PUSH DE ; fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||
@ -1310,7 +1310,7 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX
|
||||
POP BC
|
||||
CALL SaveGotCluster
|
||||
;
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_for_SPC
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_by_Shifts
|
||||
POP BC ; B - ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤«ï ç⥨ï, C - SectorsPerCluster
|
||||
; (SP) = (RET)
|
||||
;
|
||||
@ -1329,9 +1329,9 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX
|
||||
EXX
|
||||
PUSH HL ; ®¬¥à ª« áâ¥à ¬« ¤è ï ç áâì
|
||||
PUSH BC ; B = ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤®ç¨âªã, C = (SectorsPerCluster - ®áâ ⮪) «¨¡® ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤«ï ç⥨ï
|
||||
PUSH DE ; D = 0, E = ®áâ ⮪ DIV_for_SPC
|
||||
PUSH DE ; D = 0, E = ®áâ ⮪ DIV_by_Shifts
|
||||
CALL CLUSTER_TO_SECTOR
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_for_SPC
|
||||
POP DE ; D = 0, E = ®áâ ⮪ DIV_by_Shifts
|
||||
ADD IX,DE
|
||||
JR NC,.skip2
|
||||
INC HL
|
||||
|
||||
@ -322,7 +322,7 @@ BC_Div_DE:
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||
DIV_for_SPC:
|
||||
DIV_by_Shifts:
|
||||
LD C,A
|
||||
DEC A
|
||||
JR Z,.exit
|
||||
|
||||
@ -16,7 +16,9 @@
|
||||
.LD_ADDR WORD 00 ; 16-17 €¤à¥á à ᯮ«®¦¥¨ï ª®¤ ¢ ¯ ¬ï⨠(#4100-#FFFF)
|
||||
.PC_REG WORD 00 ; 18-19 €¤à¥á ¢ ¯ ¬ïâ¨ á ª®â®à®£® § ¯ãáâ¨âáï ª®¤ (Reg. PC)
|
||||
.SP_REG WORD 00 ; 20-21 €¤à¥á á⥪ (Reg. SP)
|
||||
.RESERVED2 BLOCK 490,0 ; 22-512 Œ®¦® ¨á¯®«ì§®¢ âì ¯®¤ ⥪áâ ¤«ï ¢ë¯¥¤àñ¦ ¨«¨ ¥ ¨á¯®«ì§®¢ âì
|
||||
.UnUsedPoint BYTE 0 ; 22
|
||||
; ¢ .RESERVED2 ¥«ì§ï ¯à®¯¨á âì BLOCK 512-.UnUsedPoint,0; ¯®í⮬ã å प®¤
|
||||
.RESERVED2 BLOCK 512-23,0 ; 23-512 Œ®¦® ¨á¯®«ì§®¢ âì ¯®¤ ⥪áâ ¤«ï ¢ë¯¥¤àñ¦ ¨«¨ ¥ ¨á¯®«ì§®¢ âì
|
||||
ENDS
|
||||
;
|
||||
|
||||
|
||||
@ -1,7 +1,18 @@
|
||||
IFNDEF INCREASE_BUILD
|
||||
DEFINE INCREASE_BUILD 0
|
||||
ELSE
|
||||
DEFINE+ INCREASE_BUILD 1
|
||||
ENDIF
|
||||
;------------------[ „®áâ ñ¬ ⥪ãéãî ¤ âã ¨ BUILD++ ]-----------------[]
|
||||
LUA PASS1
|
||||
dss_date, dss_month, dss_year = Get_date_RU(sj.get_define("__DATE__"))
|
||||
|
||||
if sj.get_define("INCREASE_BUILD") > "0" then
|
||||
dss_build = increase_build("./DSS/build.txt")
|
||||
else
|
||||
dss_build = get_build("./DSS/build.txt")
|
||||
end
|
||||
|
||||
if dss_build > 999 then
|
||||
dss_build = 999
|
||||
print("WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","\aWARNING! Build > 999\a")
|
||||
|
||||
@ -113,6 +113,18 @@ PUTCHAR:
|
||||
.CR_: CALL CURSOR
|
||||
LD E,0
|
||||
JP LOCATE
|
||||
;
|
||||
.control_characters:
|
||||
CP #0D
|
||||
JR Z,.CR_
|
||||
CP #0A
|
||||
JR Z,.LF_
|
||||
CP #09
|
||||
JR Z,.TB_
|
||||
CP #08
|
||||
JR Z,.BK_
|
||||
CP #07 ; [x] Beep in PChars/PUTCHAR
|
||||
RET NZ
|
||||
; [x] Beep in PChars/PUTCHAR
|
||||
.BELL: LD DE,1200
|
||||
PUSH HL
|
||||
@ -128,18 +140,7 @@ PUTCHAR:
|
||||
._CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||
JP ToBIOS
|
||||
;
|
||||
.control_characters:
|
||||
CP #0D
|
||||
JR Z,.CR_
|
||||
CP #0A
|
||||
JR Z,.LF_
|
||||
CP #09
|
||||
JR Z,.TB_
|
||||
CP #08
|
||||
JR Z,.BK_
|
||||
CP #07
|
||||
JR Z,.BELL ; [x] Beep in PChars/PUTCHAR
|
||||
RET
|
||||
|
||||
;-----[]
|
||||
;
|
||||
;
|
||||
|
||||
@ -1 +1 @@
|
||||
988
|
||||
990
|
||||
@ -102,6 +102,9 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
||||
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
||||
DEFINE CHECK_DRIVE_CHANGE 1 ; 1 - â®à¬®§¥¥, ® ¡¥§®¯ ᥥ
|
||||
DEFINE NON_REMOVABLE_FDD 0
|
||||
;
|
||||
DEFINE OLD_DSS_FOR_OLD_EXE 0 ; !TODO
|
||||
|
||||
;
|
||||
;-------------------[MEMORY]-------------------------;
|
||||
DEFINE PORTAL.RSTx18_SWITCH_ADDRESS #82
|
||||
|
||||
Loading…
Reference in New Issue
Block a user