diff --git a/DSS/API/Rename.asm b/DSS/API/Rename.asm index 03f8e1f..4acb58f 100644 --- a/DSS/API/Rename.asm +++ b/DSS/API/Rename.asm @@ -28,8 +28,11 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23 ; !TODO воткнуть тут GETWORD, чтоб можно было удалять по относительным путям? ; ; [ ] 26/06/2024 + PUSH HL CALL CHECK_64kb_CLUSTER + POP HL RET C + ; PUSH DE CALL MASK.name diff --git a/SHELL/Commands/INFO.ASM b/SHELL/Commands/INFO.ASM index 46be1ba..ad333ed 100644 --- a/SHELL/Commands/INFO.ASM +++ b/SHELL/Commands/INFO.ASM @@ -1,5 +1,7 @@ ;[ ] 24/06/2024 -cmd_info: LD DE,MAIN_MSG.INFO_1 ; индекс "Drive Label Serial number Size" +cmd_info: CALL Get_Path + ; + LD DE,MAIN_MSG.INFO_1 ; индекс "Drive Label Serial number Size" CALL ECHO_MESSAGE ; LD HL,.Collect_Msg @@ -20,21 +22,24 @@ cmd_info: LD DE,MAIN_MSG.INFO_1 ; .loop: INC C PUSH BC LD A,C + LD (.patch_A),A ADD "A" LD (Buffers.bat_params.PRM9),A - LD A,C + LD (.Collect_Msg+1),A + ; + LD HL,.Collect_Msg + LD C,Dss.PChars + RST ToDSS + ; +.patch_A+1: LD A,0 CALL read_disk_info - JR C,.next_drv + JR C,.Unformatted_Partition ; %7 - Volume label ; serial_string - Volume serial number string ; full_space_high \ ; full_space_medium - Partition size ; full_space_low / ; - LD HL,.Collect_Msg - LD C,Dss.PChars - RST ToDSS - ; LD HL,serial_string LD DE,Buffers.bat_params.PRM4 ; Volume serial number string CALL ncopy_string @@ -43,7 +48,7 @@ cmd_info: LD DE,MAIN_MSG.INFO_1 ; ld hl,(full_space_medium) ; ст. разряд exx ld hl,(full_space_low) ; мл. разряд - CALL PRN_DISK_SIZE +.convert_hex: CALL PRN_DISK_SIZE ; %5..6 - Full size ; ; форматирование PRM5 @@ -61,9 +66,46 @@ cmd_info: LD DE,MAIN_MSG.INFO_1 ; ; .next_drv: POP BC DJNZ .loop - RET + JP RESTORE_ALL.path + ;RET ; -.Collect_Msg: DZ "Please wait, information is being collected...\r" +.Unformatted_Partition: + LD HL,.none_string + LD DE,Buffers.bat_params.PRM4 ; Volume serial number string + CALL ncopy_string + LD HL,.none_string + LD DE,Buffers.bat_params.PRM7 ; Volume label + CALL ncopy_string + LD HL,.Unknown_FS + LD DE,Buffers.bat_params.PRM8 ; Volume fikle system + CALL ncopy_string + ; + POP BC + PUSH BC + LD A,C + LD DE,#55AA + LD BC,Dss.DRV.GenIOCTL.GetParams + RST ToDSS.DRV + JR C,.next_drv + ; !FIXIT не возвращает размер сектора, поэтому хардкор по 512 + ; HL:DE * 512 = A:HL:H'L' + RL E + RL D + RL L + RL H + LD C,E + LD A,H + LD H,L + LD L,D + EXX + LD H,C + LD L,0 + JR .convert_hex + ; +.Collect_Msg: DZ " A: \r" ; патчится буква драйва в цикле +.Unknown_FS: DZ "unknown" +.none_string: DZ "none" + /* 0 1 2 3 4 5 6 7 diff --git a/SHELL/EXEC.ASM b/SHELL/EXEC.ASM index 0aa1bf9..60b77cf 100644 --- a/SHELL/EXEC.ASM +++ b/SHELL/EXEC.ASM @@ -184,9 +184,15 @@ Ret_New_Line: jp newline RESTORE_ALL: - ;[x] 01/11/23 ;!TEST + ;[x] 01/11/23 ;!TEST CALL Get_Path - ; + CALL .path + ;R10 + CALL Restore_Screen + ;R10 + RET + ; +.path: ;[x] 01/11/23 ;!TEST LD A,(Buffers.screen_path) SUB 'A' LD C,Dss.ChDisk @@ -195,10 +201,6 @@ RESTORE_ALL: LD HL,Buffers.sys_path LD C,Dss.ChDir RST ToDSS + RET ; - ;R10 - CALL Restore_Screen - ;R10 - ; - RET ; \ No newline at end of file diff --git a/SHELL/Messages/main_txt.asm b/SHELL/Messages/main_txt.asm index 222c708..4237a7e 100644 --- a/SHELL/Messages/main_txt.asm +++ b/SHELL/Messages/main_txt.asm @@ -56,7 +56,7 @@ MAIN_MSG: DZ "RD = RMDIR DATE REBOOT DIR [path] [/p /f] \r\n\n" stN .CALC_ : DZ "Calculating free space...\r" stN .INFO_1_ : DZ "\r\nDrive File System Label Serial number Size in bytes\r\n" - stN .INFO_2_ : DZ " %9 \r\t %8\r\t\t\t %7\r\t\t\t\t\t %4\r\t\t\t\t\t\t\t %5.\r\n" + stN .INFO_2_ : DZ " %9 \r\t %8\r\t\t\t %7\r\t\t\t\t\t %4\r\t\t\t\t\t\t\t %5\r\n" ; ;R11 db 0 DZ "Unknown command" diff --git a/SHELL/build.txt b/SHELL/build.txt index b872400..af40ff6 100644 --- a/SHELL/build.txt +++ b/SHELL/build.txt @@ -1 +1 @@ -427 \ No newline at end of file +433 \ No newline at end of file