diff --git a/BOOT/boot.asm b/BOOT/boot.asm index 855099d..43f21e3 100644 --- a/BOOT/boot.asm +++ b/BOOT/boot.asm @@ -94,7 +94,7 @@ ; версия программы major_version equ 2 ; ст. номер версии -minor_version equ 0 ; мл. номер +minor_version equ 1 ; мл. номер ;; SECTORS_OF_LOADER EQU 4 ; секторов загрузчика .IN_BPB EQU 1 @@ -837,7 +837,7 @@ write_file: ld a,FAT_ATTR.ARCHIVE ; push hl ; точка выхода ; ; чтение файла из банок и запись на диск - ld a,(FILE1_PARAMS.id_blck) ; идентиф. блока памяти + ld a,(FILE1_PARAMS.id_blck); идентиф. блока памяти ;ld b,0 ; лог. номер страницы в блоке ld bc,BIOS.GetMemPage ; получить физ. номер страницы в блоке rst ToBIOS @@ -864,11 +864,13 @@ write_file: ld a,FAT_ATTR.ARCHIVE ; RST ToDSS pop bc jr c,.error + ; write_ok + ; [ ] Fixed 24/06/2024 какой-то пережиток прошлого + ;cp -1 ; записано меньшее число байт ? + ;ld a,DSS_Error.sys.DISK_FULL + ;scf + ;jr nz,.error ; да, на диске нет места ; -.write_ok: cp -1 ; записано меньшее число байт ? - ld a,DSS_Error.sys.DISK_FULL - scf - jr nz,.error ; да, на диске нет места ld a,b ; a=физич. страница ld c,BIOS.GetMemPageNext ; получить номер след. физ. страницы блока rst ToBIOS diff --git a/DSS/DSS-MAIN.ASM b/DSS/DSS-MAIN.ASM index 20360f7..f549401 100644 --- a/DSS/DSS-MAIN.ASM +++ b/DSS/DSS-MAIN.ASM @@ -148,10 +148,24 @@ RST_38_IM1: JP .Handler .Portal: PUSH AF LD A,(RST_0x30.drv_page) OUT (SLOT0),A + ;POP AF + PUSH HL + LD HL,(RST_38_IM1+1) + XOR A + CP H + JR NZ,.error + LD A,low .Handler + CP L + JR NZ,.error + POP HL POP AF CALL INTx38_Handler JR .Portal ; +.error: POP HL + POP AF + JR .Portal + ; //////////////////////////////////////////////////////////////////////// diff --git a/DSS/build.txt b/DSS/build.txt index b7e8805..6242099 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -991 \ No newline at end of file +992 \ No newline at end of file