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