mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
игры с ZIP
This commit is contained in:
parent
73c7ab5f6b
commit
cd4271f994
120
BOOT/boot.asm
120
BOOT/boot.asm
@ -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
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
36
|
44
|
||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
504
|
513
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit a6c50f572424e88f6199d639fa8109d53b71142c
|
Subproject commit 68e156a69e848e7b01656cdf67122022999d75ee
|
||||||
Loading…
Reference in New Issue
Block a user