игры с ZIP

This commit is contained in:
Tolik 2025-05-02 04:11:42 +10:00
parent 73c7ab5f6b
commit cd4271f994
6 changed files with 150 additions and 88 deletions

View File

@ -117,7 +117,7 @@ page_buffer equ #C000 ;
ORG org_addr ORG org_addr
BEGIN: ;di BEGIN: ;di
in a,(SLOT3) in a,(SLOT3)
ld (port+1),a ; á®åà. ¯®àâ ld (port),a ; á®åà. ¯®àâ
push ix push ix
call save_path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì call save_path ; á®åà. ⥪. ¤¨áª ¨ ¯ãâì
ld c,Dss.Version ; ã§­ âì ¢¥àá¨î „Ž‘ ld c,Dss.Version ; ã§­ âì ¢¥àá¨î „Ž‘
@ -134,7 +134,7 @@ BEGIN: ;di
.old_ver: pop hl .old_ver: pop hl
ld a,11 ; ¨­¤¥ªá áâப¨ "Error: Need DSS version 1.70..." ld a,11 ; ¨­¤¥ªá áâப¨ "Error: Need DSS version 1.70..."
call print_string call print_string
ld a,-1 ld a,DSS_Error.sys.COMMON_ERROR
jp exit jp exit
;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
.check_build: ld hl,810 ; 1.70.810 d=¢¥àá¨ï, e=¬®¤¨ä¨ª æ¨ï, bc - ­®¬¥à ᡮન. de = #0146, bc = 810 dos ver 1.70.810 .check_build: ld hl,810 ; 1.70.810 d=¢¥àá¨ï, e=¬®¤¨ä¨ª æ¨ï, bc - ­®¬¥à ᡮન. de = #0146, bc = 810 dos ver 1.70.810
@ -153,11 +153,11 @@ version_ok: xor a ;
RST ToDSS RST ToDSS
ld (boot_disk),a ; ¤¨áª (A=0,B=1,..) ld (boot_disk),a ; ¤¨áª (A=0,B=1,..)
; ¯à®¢¥à¨âì ­  ᮢ¯ ¤¥­¨¥ ¤¨áª®¢ ; ¯à®¢¥à¨âì ­  ᮢ¯ ¤¥­¨¥ ¤¨áª®¢
ld hl,disk same_fdd: ld hl,disk
cp (hl) cp (hl)
jr nz,.next jr nz,.next
ld hl,confirm_flag ld hl,read_sys_files.swap_flag
ld (hl),1 ; ãáâ. ä« £ .flag+1: ld (hl),0 ; ãáâ. ä« £
; ;
; —⥭¨¥ ¢ ¡ ­ª¨ ä ©«®¢ á¨á⥬ë ; —⥭¨¥ ¢ ¡ ­ª¨ ä ©«®¢ á¨á⥬ë
; ;
@ -170,6 +170,11 @@ version_ok: xor a ;
;-------------------------------------------- ;--------------------------------------------
; —⥭¨¥ ä ©«  system.exe ; —⥭¨¥ ä ©«  system.exe
;-------------------------------------------- ;--------------------------------------------
read_sys_files: ;
.noFiles+1: ld a,0
or a
jr nz,.write_boot
;
ld hl,name2 ; ¨¬ï ä ©«  ld hl,name2 ; ¨¬ï ä ©« 
call read_file ; ¢áï à ¡®â  ¯® § £à㧪¥ ä ©«  ¢ áâà ­¨æë call read_file ; ¢áï à ¡®â  ¯® § £à㧪¥ ä ©«  ¢ áâà ­¨æë
;jr nc,read_file1_ok ;jr nc,read_file1_ok
@ -180,7 +185,7 @@ version_ok: xor a ;
;ld a,DSS_Error.sys.DISK_FULL ; ª®¤ ®è¨¡ª¨ ;ld a,DSS_Error.sys.DISK_FULL ; ª®¤ ®è¨¡ª¨
jp c,exit jp c,exit
; á®åà. à ¡. ï祩ª¨ ä ©«  system.exe ; á®åà. à ¡. ï祩ª¨ ä ©«  system.exe
read_file1_ok: ld hl,FILE1_PARAMS ; ®âªã¤  .read_file1_ok: ld hl,FILE1_PARAMS ; ®âªã¤ 
ld de,FILE2_PARAMS ; ªã¤  ld de,FILE2_PARAMS ; ªã¤ 
ld bc,FILE2_PARAMS.dataSize ld bc,FILE2_PARAMS.dataSize
ldir ldir
@ -198,12 +203,12 @@ read_file1_ok: ld hl,FILE1_PARAMS ;
; ld c,Dss.FreeMem ; ld c,Dss.FreeMem
; RST ToDSS ; RST ToDSS
;jr read_file_err ; ®á¢®¡. ¡«®ª ¯ ¬ï⨠system.dos ;jr read_file_err ; ®á¢®¡. ¡«®ª ¯ ¬ï⨠system.dos
confirm_flag+1: ld a,0 .swap_flag+1: ld a,1
or a or a
jr z,no_confirm jr nz,.no_confirm
ld a,(boot_disk) ; á¨áâ. ¤¨áª ld a,(boot_disk) ; á¨áâ. ¤¨áª
cp 2 cp 2
jr nc,no_confirm ; ­¥ ¤¨áª®¢®¤ë jr nc,.no_confirm ; ­¥ ¤¨áª®¢®¤ë
; § ¯à®á¨âì æ¥«¥¢®© ¤¨áª ; § ¯à®á¨âì æ¥«¥¢®© ¤¨áª
ld a,(disk) ; § ¤ ­­ë© ­®¬¥à ¤¨áª  ld a,(disk) ; § ¤ ­­ë© ­®¬¥à ¤¨áª 
add a,'A' add a,'A'
@ -212,9 +217,8 @@ confirm_flag+1: ld a,0
call print_string call print_string
ld bc,Dss.K_CLEAR + Dss.WaitKey*256; ¦¤¥¬ ­ ¦ â¨ï ª« ¢¨è¨ ld bc,Dss.K_CLEAR + Dss.WaitKey*256; ¦¤¥¬ ­ ¦ â¨ï ª« ¢¨è¨
RST ToDSS RST ToDSS
no_confirm: ld a,2 ; ¨­¤¥ªá áâப¨ "Installing boot loader..." ;
call print_string .no_confirm: ; “áâ. 楫¥¢®© ¤¨áª/¯ãâì
; “áâ. 楫¥¢®© ¤¨áª/¯ãâì
ld a,(disk) ; 楫¥¢®© ¤¨áª ld a,(disk) ; 楫¥¢®© ¤¨áª
ld hl,root_path ; "X:\" áâப  ¯ã⨠ld hl,root_path ; "X:\" áâப  ¯ãâ¨
add a,'A' add a,'A'
@ -222,17 +226,13 @@ no_confirm: ld a,2 ;
ld c,Dss.ChDir ; ᬥ­  ⥪. ª â «®£  ld c,Dss.ChDir ; ᬥ­  ⥪. ª â «®£ 
RST ToDSS RST ToDSS
;-------------------------------------------- ;--------------------------------------------
; ‡ ¯¨á âì boot-§ £àã§ç¨ª
call write_boot_loader
jr c,write_error ; ®è¨¡ª  à ¡®âë á ¤¥¢ ©á®¬
;
ld a,3 ; ¨­¤¥ªá áâப¨ "Writing system files..." ld a,3 ; ¨­¤¥ªá áâப¨ "Writing system files..."
call print_string call print_string
; ‡ ¯¨áì ä ©«  system.dos ; ‡ ¯¨áì ä ©«  system.dos
ld hl,name1 ; ¨¬ï ä ©«  ld hl,name1 ; ¨¬ï ä ©« 
call write_file call write_file
jr c,write_error jr c,write_error
ok_write1: ; ®á¢®¡®¤¨âì ¯ ¬ïâì .ok_write1: ; ®á¢®¡®¤¨âì ¯ ¬ïâì
; ld a,(FILE1_PARAMS.id_blck) ; ¡«®ª system.dos ; ld a,(FILE1_PARAMS.id_blck) ; ¡«®ª system.dos
; ld c,Dss.FreeMem ; ld c,Dss.FreeMem
; RST ToDSS ; RST ToDSS
@ -255,14 +255,21 @@ ok_write1: ;
jr c,write_error jr c,write_error
;jr c,exit ; ®è¨¡ª  ;jr c,exit ; ®è¨¡ª 
; ;
; ‡ ¯¨á âì boot-§ £àã§ç¨ª
.write_boot: ld a,2 ; ¨­¤¥ªá áâப¨ "Installing boot loader..."
call print_string
call write_boot_loader
jr c,write_error ; ®è¨¡ª  à ¡®âë á ¤¥¢ ©á®¬
;
ld a,(disk) ; § ¤ ­­ë© ­®¬¥à ¤¨áª  ld a,(disk) ; § ¤ ­­ë© ­®¬¥à ¤¨áª 
add a,'A' add a,'A'
ld (messages.lett1),a ld (messages.lett1),a
ld a,1 ; ¨­¤¥ªá áâப¨ "System installed on disk " ld a,1 ; ¨­¤¥ªá áâப¨ "System installed on disk "
call print_string call print_string
ld a,(confirm_flag) ;
ld a,(read_sys_files.swap_flag)
or a or a
jr z,exit jr nz,.not_fdd
; § ¯à®á¨âì á¨á⥬­ë© ¤¨áª ; § ¯à®á¨âì á¨á⥬­ë© ¤¨áª
ld a,(boot_disk) ; á¨áâ. ¤¨áª ld a,(boot_disk) ; á¨áâ. ¤¨áª
cp 2 cp 2
@ -274,9 +281,10 @@ ok_write1: ;
ld bc,Dss.K_CLEAR + Dss.WaitKey*256; ¦¤¥¬ ­ ¦ â¨ï ª« ¢¨è¨ ld bc,Dss.K_CLEAR + Dss.WaitKey*256; ¦¤¥¬ ­ ¦ â¨ï ª« ¢¨è¨
RST ToDSS RST ToDSS
.not_fdd: xor a ; ª®¤ "Ok" .not_fdd: xor a ; ª®¤ "Ok"
;
exit: push af exit: push af
call restore_path ; ¢®ááâ. ⥪. ¤¨áª ¨ ¯ãâì call restore_path ; ¢®ááâ. ⥪. ¤¨áª ¨ ¯ãâì
port: ld a,-1 ; á®åà. ¯®àâ port+1: ld a,-1 ; á®åà. ¯®àâ
out (SLOT3),a out (SLOT3),a
pop af pop af
ld c,Dss.Exit ; ¢ë室 ¢ „Ž‘ ld c,Dss.Exit ; ¢ë室 ¢ „Ž‘
@ -288,7 +296,7 @@ help: ld a,8 ;
call print_string call print_string
ld a,4 ; ¨­¤¥ªá áâப¨ åí«¯  ld a,4 ; ¨­¤¥ªá áâப¨ åí«¯ 
err_mes: call print_string err_mes: call print_string
ld a,1 ; ª®¤ ®è¨¡ª¨ ld a,DSS_Error.sys.COMMON_ERROR
jr exit jr exit
write_error: ld a,7 ; ¨­¤¥ªá áâப¨ "Can't install boot on this disk" write_error: ld a,7 ; ¨­¤¥ªá áâப¨ "Can't install boot on this disk"
@ -564,35 +572,78 @@ SETUP_ZERO_SECTOR:
; CF-¯à¨ ®è¨¡ª¥ ; CF-¯à¨ ®è¨¡ª¥
;------------------------------------------------- ;-------------------------------------------------
get_drive_letter: get_drive_letter:
; § ç¨á⪠ ¡ãä¥à 
xor a
ld (buffer+1),a
;
inc hl ; ¡ãä¥à áâப¨ inc hl ; ¡ãä¥à áâப¨
ld de,buffer ; ¡ãä¥à ¤«ï ¢ë¤¥«. ¯ à ¬¥âà  ld de,buffer ; ¡ãä¥à ¤«ï ¢ë¤¥«. ¯ à ¬¥âà 
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬. áâப¨ ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬. áâப¨
RST ToDSS RST ToDSS
;
rra
rl b ; ¯à¨§­ ª ª®­æ  ¯ à ¬¥â஢
;
ld de,buffer ld de,buffer
ld a,(de) ld a,(de)
inc de inc de
ld c,a ; á®åà. 'a' ld c,a ; á®åà. 'a'
ld a,(de) ld a,(de)
inc de
cp ':' cp ':'
jr nz,get_drive_err ; ¤¨áª ­¥ § ¤ ­ jr nz,.get_drive_err ; ¤¨áª ­¥ § ¤ ­
ld a,(de)
inc de inc de
ld a,(de)
or a or a
jr nz,get_drive_err ; > 1 ¯ à ¬¥âà  jr nz,.get_drive_err ; ­¥¯à ¢¨«ì­ë¥ ¯ à ¬¥âàë
ld a,c ; ¢®ááâ. 'a' ;
cp 'A' rr b ; ¯à¨§­ ª ª®­æ  ¯ à ¬¥â஢
jr c,get_drive_err jr c,.checkChar
cp 'z'+1 ;
jr nc,get_drive_err push bc
ld de,buffer ; ¡ãä¥à ¤«ï ¢ë¤¥«. ¯ à ¬¥âà 
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬. áâப¨
RST ToDSS
pop bc
jr nc,.get_drive_err ; ­¥¯à ¢¨«ì­ë¥ ¯ à ¬¥âàë
;
ld de,buffer ; ¡ãä¥à ¤«ï ¢ë¤¥«. ¯ à ¬¥âà 
ld a,(de)
cp "0"
ret c ; ­¥¯à ¢¨«ì­ë¥ ¯ à ¬¥âàë
cp "4"
jr nc,.get_drive_err ; ­¥¯à ¢¨«ì­ë¥ ¯ à ¬¥âàë
;
ld b,a
inc de
ld a,(de)
or a
jr nz,.get_drive_err ; ­¥¯à ¢¨«ì­ë¥ ¯ à ¬¥âàë
;
ld a,b
;0 - standart
;1 - silent
;2 - no_files
;3 - no_files+silent
sub "0"
jr z,.checkChar
rra
ld (read_sys_files.noFiles),a
ld (same_fdd.flag),a
rla
and 1
ld (print_string.silentMode),a
; ¯à®¢¥à塞 ¡ãª¢ã
.checkChar: ld a,c ; ¢®ááâ. 'a'
and %1101'1111 and %1101'1111
cp 'A'
ret c ; ®è¨¡ª 
cp 'Z'+1
jr nc,.get_drive_err
sub 'A' sub 'A'
or a
ret ret
; ;
get_drive_err: scf ; ®è¨¡ª  .get_drive_err: scf ; ®è¨¡ª 
ret ret
;---------------------------------------------------- ;----------------------------------------------------
; á®åà. ⥪. á¨á⥬­ë© ¤¨áª ¨ ¯ãâì ; á®åà. ⥪. á¨á⥬­ë© ¤¨áª ¨ ¯ãâì
;---------------------------------------------------- ;----------------------------------------------------
@ -690,6 +741,9 @@ messages: db 0
; ‚뢥á⨠áâப㠯® ¨­¤¥ªáã ; ‚뢥á⨠áâப㠯® ¨­¤¥ªáã
; ¢å®¤: a=¨­¤¥ªá áâப¨ ; ¢å®¤: a=¨­¤¥ªá áâப¨
print_string: call get_string ; ¯®¨áª áâப¨ ¯® ¥¥ ¨­¤¥ªáã ¢ 'a' print_string: call get_string ; ¯®¨áª áâப¨ ¯® ¥¥ ¨­¤¥ªáã ¢ 'a'
.silentMode+1: ld a,0
or a
ret nz
ld c,Dss.PChars ; ¢ë¢®¤ áâப¨ ld c,Dss.PChars ; ¢ë¢®¤ áâப¨
RST ToDSS RST ToDSS
ret ret

View File

@ -1 +1 @@
36 44

View File

@ -440,12 +440,13 @@ GetParams: EX DE,HL
JR .error JR .error
; ;
; [ ] media change - ã¡à âì ;!FIXIT ; [ ] media change - ã¡à âì ;!FIXIT
.next: EX AF,AF .next: EX AF,AF'
JR NC,.NoMediaChange JR NC,.NoMediaChange
CP BIOS.Error.ATAPI.UnitAttention CP BIOS.Error.ATAPI.UnitAttention
SCF
JR NZ,.NoMediaChange JR NZ,.NoMediaChange
; ;
PUSH IX .ReDEFINE: PUSH IX
PUSH IY PUSH IY
PUSH HL PUSH HL
PUSH DE PUSH DE
@ -457,52 +458,51 @@ GetParams: EX DE,HL
POP IY POP IY
POP IX POP IX
; ;
.NoMediaChange: ;EX AF,AF .NoMediaChange: ; ¯¥à¥â á®¢ª  ॣ¨áâ஢ á १ã«ìâ â®¬ ®â BIOS
; ¯¥à¥â á®¢ª  ॣ¨áâ஢ á १ã«ìâ â®¬ ®â BIOS EX DE,HL
EX DE,HL LD C,E
LD C,E LD E,D
LD E,D LD D,0
LD D,0 LD A,B
LD A,B LD B,D
LD B,D EXX
EXX
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à  ;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
EX AF,AF' EX AF,AF'
LD A,XH LD A,XH
LD E,XL LD E,XL
RL E RL E
RLA RLA
; ;
; SECTORS ON LOGICAL DISK ; SECTORS ON LOGICAL DISK
LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0) LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0)
LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1) LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1)
LD L,(IY+LOGDRV.SIZE_IN_SECTORS+2) LD L,(IY+LOGDRV.SIZE_IN_SECTORS+2)
LD H,(IY+LOGDRV.SIZE_IN_SECTORS+3) LD H,(IY+LOGDRV.SIZE_IN_SECTORS+3)
; ;
;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ­®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª  LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ­®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª 
; ;
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à  ;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
; 00 - undefined ; 00 - undefined
; 01 - 128 bytes ; 01 - 128 bytes
; 02 - 256 bytes ; 02 - 256 bytes
; 04 - 512 bytes ; 04 - 512 bytes
; 08 - 1024 bytes ; 08 - 1024 bytes
; 16 - 2048 bytes ; 16 - 2048 bytes
; 32 - 4096 bytes ; 32 - 4096 bytes
; 64 - 8192 bytes ; 64 - 8192 bytes
; 128 - 16384 bytes ; 128 - 16384 bytes
;EX AF,AF' ;EX AF,AF'
LD B,A LD B,A
; ;
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/... LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
EX AF,AF' EX AF,AF'
; ;
AND A ;AND A
.error: POP IY .error: POP IY
POP IX POP IX
RET RET
;
Removable: XOR A Removable: XOR A
@ -553,15 +553,7 @@ MediaCheck: PUSH IY
; ;
CP BIOS.Error.ATAPI.UnitAttention CP BIOS.Error.ATAPI.UnitAttention
JR Z,.Reinit JR Z,.Reinit
;!FIXIT § £«ã誠/ª®áâë«ì ¨§-§  ¯¥à¥á¥ç¥­¨ï ­®¬¥à®¢ ®è¨¡®ª
POP BC ; <20> « ­á á⥪  POP BC ; <20> « ­á á⥪ 
/*
BIOS.Error.BadNumber
BIOS.Error.Failure
BIOS.Error.Busy
BIOS.Error.ATAPI.TimeOut
*/
;LD A,BIOS.Error.Busy
.exit: SCF .exit: SCF
POP IY POP IY
RET RET
@ -584,8 +576,10 @@ MediaCheck: PUSH IY
JR NC,.no_errors JR NC,.no_errors
; ;
CP BIOS.Error.UnknownDevice CP BIOS.Error.UnknownDevice
JR NZ,.no_errors
AND A ; á¡à®á ZF
SCF SCF
RET Z RET
; ;
.no_errors: LD A,#FF ;!HARDCODE drive changed .no_errors: LD A,#FF ;!HARDCODE drive changed
OR A OR A
@ -604,12 +598,15 @@ CHECK_IDE_SECTOR_SIZE: ;RET
; ;
ReDEFINE_PARTITIONS: ReDEFINE_PARTITIONS:
EX AF,AF'
LD B,A ; HDD_INIT_TABLE.RemovableMedia
LD A,DSS_MAX_DRIVES_AMOUNT - 1 ; ®£à ­¨ç¨â¥«ì, ç⮡ ­¥ ¤¥â¥ªâ¨âì ¡®«ìè¥ 1 à §¤¥«  LD A,DSS_MAX_DRIVES_AMOUNT - 1 ; ®£à ­¨ç¨â¥«ì, ç⮡ ­¥ ¤¥â¥ªâ¨âì ¡®«ìè¥ 1 à §¤¥« 
LD (Init.count),A LD (Init.count),A
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER) LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
LD (CURRENT_DRIVE.Number),A LD (CURRENT_DRIVE.Number),A
LD (LOGDRV_OFFSET),IY LD (LOGDRV_OFFSET),IY
;RES 1,(IY + LOGDRV.MediaParameters) - á¡à á뢠¥âáï ¢ DEFINE_PARTITIONS ;RES 1,(IY + LOGDRV.MediaParameters) - á¡à á뢠¥âáï ¢ DEFINE_PARTITIONS
;LD B,%0000'0011 ;!HARDCODE drive changed, removable media
JP DEFINE_PARTITIONS JP DEFINE_PARTITIONS
@ -831,7 +828,7 @@ DEFINE_PARTITIONS:
AND %1111'1101 AND %1111'1101
LD (CURRENT_DRIVE.Removable),A LD (CURRENT_DRIVE.Removable),A
LD (EXT_Partition.Low),DE ;R01 LD (EXT_Partition.Low),DE ;R01
LD (EXT_Partition.High),IX ;R01 LD (EXT_Partition.High),DE ;R01
; ;
.LOOP: LD (CURRENT_SECTOR.Low),DE .LOOP: LD (CURRENT_SECTOR.Low),DE
LD (CURRENT_SECTOR.High),IX LD (CURRENT_SECTOR.High),IX

View File

@ -33,14 +33,21 @@ cmd_info: CALL Get_Path
; ;
.patch_A+1: LD A,0 .patch_A+1: LD A,0
CALL read_disk_info CALL read_disk_info
JR C,.Unformatted_Partition JR NC,.info_ok
;
CP DSS_Error.sys.MEDIA_CHANGED
JR NZ,.Unsupported_Partition
;
LD A,(.patch_A)
CALL read_disk_info
JR C,.Unsupported_Partition
; %7 - Volume label ; %7 - Volume label
; serial_string - Volume serial number string ; serial_string - Volume serial number string
; full_space_high \ ; full_space_high \
; full_space_medium - Partition size ; full_space_medium - Partition size
; full_space_low / ; full_space_low /
; ;
LD HL,serial_string .info_ok: LD HL,serial_string
LD DE,Buffers.bat_params.PRM4 ; Volume serial number string LD DE,Buffers.bat_params.PRM4 ; Volume serial number string
CALL ncopy_string CALL ncopy_string
; full capacity ; full capacity
@ -73,7 +80,7 @@ cmd_info: CALL Get_Path
JP RESTORE_ALL.path JP RESTORE_ALL.path
;RET ;RET
; ;
.Unformatted_Partition: .Unsupported_Partition:
LD HL,.none_string LD HL,.none_string
LD DE,Buffers.bat_params.PRM4 ; Volume serial number string LD DE,Buffers.bat_params.PRM4 ; Volume serial number string
CALL ncopy_string CALL ncopy_string
@ -89,13 +96,17 @@ cmd_info: CALL Get_Path
LD A,C LD A,C
CP "C" - "A" CP "C" - "A"
JR C,.ItIsFDD JR C,.ItIsFDD
;
LD DE,Dss.DRV.GenIOCTL.Enter LD DE,Dss.DRV.GenIOCTL.Enter
LD BC,Dss.DRV.GenIOCTL.GetParams LD BC,Dss.DRV.GenIOCTL.GetParams
RST ToDSS.DRV RST ToDSS.DRV
JR NC,.calc_size JR C,.noMedia
LD A,H
AND %1111'0000 ; ¯à®¢¥àª  ­  ­®¬¥à ᥪâ®à  > 28bit = ­¥â ­®á¨â¥«ï
JR Z,.calc_size
; ;
.ItIsFDD: ; .ItIsFDD: ;
LD HL,.Unknown_str .noMedia: LD HL,.Unknown_str
LD DE,Buffers.bat_params.PRM5 ; Drive size LD DE,Buffers.bat_params.PRM5 ; Drive size
CALL ncopy_string CALL ncopy_string
JR .print_info_2 JR .print_info_2

View File

@ -1 +1 @@
504 513

@ -1 +1 @@
Subproject commit a6c50f572424e88f6199d639fa8109d53b71142c Subproject commit 68e156a69e848e7b01656cdf67122022999d75ee