Release 25/06/2025

This commit is contained in:
Tolik 2025-06-26 19:55:53 +10:00
commit 477e4f8327
12 changed files with 4119 additions and 3990 deletions

10
Build.sh Executable file
View File

@ -0,0 +1,10 @@
#! /bin/zsh
rm ./build/fmain.bin
rm ./build/format.hrs
sjasmplus --nologo -Wall --syntax=w --fullpath --msg=war --color=on --lst=./build/fmain.lst --raw=./build/fmain.bin ./fmain.asm
echo FMain compilation DONE
./mhmt -hst -zxh ./build/fmain.bin ./build/format.hrs
echo Packing fmain.bin DONE
echo Main compilation starts
sjasmplus --nologo -Wall --syntax=w --fullpath --msg=war --color=on --lst=./build/main.lst --raw=./build/fformat/fformat.exe ./main.asm
echo Main compilation DONE

File diff suppressed because it is too large Load Diff

423
ESTEX.ASM
View File

@ -8,113 +8,113 @@
;--- Š®¯¨à®¢ ­¨¥ á¨áâ. ä ©«®¢ ¢ ¡ãä¥àë
; ¢ëå: "CY" ¯à¨ ®è¨¡ª¥
;
CopySysFiles: xor a
ld (sFlag),a
ld (bigFile),a
ld a,(ColDialWn) ; á®åà. 梥⠮ª­ 
ld (TmpColor),a
; <20>®¬¥à § £à㧮筮£® ¤¨áª 
ld bc,0009h
RST ToDSS
ld (SysDisk),a
; “áâ ­®¢¨âì ⥪ã騬 § £àã§®ç­ë© ¤¨áª
ld a,(SysDisk)
ld c,1
RST ToDSS
; “áâ ­®¢¨âì "ª®à¥­ì" boot-¤¨áª 
ld hl,RootDir
ld c,1Dh
RST ToDSS
;<3B> ©â¨ ä ©« "SYSTEM.EXE"
;ld hl,Name1
;call FirstFile
;jp c,NoFound ; ä ©« ­¥ ­ ©¤¥­
; ®âªàëâì ä ©«
ld hl,Name1
call OpenFile
jp c,error1 ; ®è¨¡ª  ®âªàëâ¨ï ä ©« 
ld (hFile1),a
; ¯à®ç¨â âì ä ©«
in a,(Page3)
push af
ld a,(SBuff0)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
ld a,(hFile1)
call ReadFile
jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
ld (Number1),de ; ç¨á«® ¯à®ç¨â ­­ëå ¡ ©â
; § ªàëâì ä ©«
ld a,(hFile1)
call CloseFile
jp c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
; CopySysFiles: xor a
; ld (sFlag),a
; ld (bigFile),a
; ld a,(ColDialWn) ; á®åà. 梥⠮ª­ 
; ld (TmpColor),a
; ; <20>®¬¥à § £à㧮筮£® ¤¨áª 
; ld bc,0009h
; RST ToDSS
; ld (SysDisk),a
; ; “áâ ­®¢¨âì ⥪ã騬 § £àã§®ç­ë© ¤¨áª
; ld a,(SysDisk)
; ld c,1
; RST ToDSS
; ; “áâ ­®¢¨âì "ª®à¥­ì" boot-¤¨áª 
; ld hl,RootDir
; ld c,1Dh
; RST ToDSS
; ;<3B> ©â¨ ä ©« "SYSTEM.EXE"
; ;ld hl,Name1
; ;call FirstFile
; ;jp c,NoFound ; ä ©« ­¥ ­ ©¤¥­
; ; ®âªàëâì ä ©«
; ld hl,Name1
; call OpenFile
; jp c,error1 ; ®è¨¡ª  ®âªàëâ¨ï ä ©« 
; ld (hFile1),a
; ; ¯à®ç¨â âì ä ©«
; in a,(SLOT3)
; push af
; ld a,(hPages.SBuff0)
; out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à
; ld a,(hFile1)
; call ReadFile
; jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
; pop af
; out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
; ld (Number1),de ; ç¨á«® ¯à®ç¨â ­­ëå ¡ ©â
; ; § ªàëâì ä ©«
; ld a,(hFile1)
; call CloseFile
; jp c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
;<3B> ©â¨ ä ©« "SYSTEM.DOS"
;ld hl,Name2
;call FirstFile
;jp c,error1 ; ä ©« ­¥ ­ ©¤¥­
; ®âªàëâì ä ©«
ld hl,Name2
call OpenFile
jp c,error1 ; ®è¨¡ª  ®âªàëâ¨ï ä ©« 
ld (hFile2),a
; ã§­ âì à §¬¥à ä ©« 
ld hl,0
ld ix,0 ; ¬«.á«®¢®
ld bc,0215h ; 㪠§ â¥«ì ®â ª®­æ  ä ©« 
RST ToDSS
jp c,error1
push ix
pop hl
ld de,4001h
; hl >= de
ld a,l
sub e
ld l,a
ld a,h
sbc a,d
ld h,a
inc hl
ld (ost+1),hl ; á®åà. à §¬¥à ®áâ âª  ä ©« 
jr c,tinRead ; ä ©« < 1-© áâà ­¨æë
ld a,1
ld (bigFile),a ; ä ©« > 1-© áâà ­¨æë
tinRead: ld (Number2),ix ; á®åà. à §¬¥à ä ©« 
; 㪠§ â¥«ì ­  ­ ç «® ä ©« 
ld hl,0
ld ix,0 ; ¬«.á«®¢®
ld a,(hFile2)
ld bc,0015h ; 㪠§ â¥«ì ®â ­ ç «  ä ©« 
RST ToDSS
jp c,error1
; ¯à®ç¨â âì ä ©«
in a,(Page3)
push af
ld a,(SBuff1)
out (Page3),a ; ¯®¤ª«. 1-î áâà ­¨æã
ld a,(hFile2)
call ReadFile
jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
ld a,(bigFile)
or a
jr z,endRead ; ¯à®ç¨â ­ ¢¥áì ä ©«
; ç¨â ¥¬ ®áâ â®ª ä ©« 
ost: ld de,0
ld a,(SBuff2)
out (Page3),a ; ¯®¤ª«. 2-î áâà ­¨æã
ld hl,WinBoxBuff ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld a,(hFile2)
ld c,13h
RST ToDSS
jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
endRead: pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
; § ªàëâì ä ©«
ld a,(hFile2)
call CloseFile
jp c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
ret
; ;<3B> ©â¨ ä ©« "SYSTEM.DOS"
; ;ld hl,Name2
; ;call FirstFile
; ;jp c,error1 ; ä ©« ­¥ ­ ©¤¥­
; ; ®âªàëâì ä ©«
; ld hl,Name2
; call OpenFile
; jp c,error1 ; ®è¨¡ª  ®âªàëâ¨ï ä ©« 
; ld (hFile2),a
; ; ã§­ âì à §¬¥à ä ©« 
; ld hl,0
; ld ix,0 ; ¬«.á«®¢®
; ld bc,0215h ; 㪠§ â¥«ì ®â ª®­æ  ä ©« 
; RST ToDSS
; jp c,error1
; push ix
; pop hl
; ld de,4001h
; ; hl >= de
; ld a,l
; sub e
; ld l,a
; ld a,h
; sbc a,d
; ld h,a
; inc hl
; ld (ost+1),hl ; á®åà. à §¬¥à ®áâ âª  ä ©« 
; jr c,tinRead ; ä ©« < 1-© áâà ­¨æë
; ld a,1
; ld (bigFile),a ; ä ©« > 1-© áâà ­¨æë
; tinRead: ld (Number2),ix ; á®åà. à §¬¥à ä ©« 
; ; 㪠§ â¥«ì ­  ­ ç «® ä ©« 
; ld hl,0
; ld ix,0 ; ¬«.á«®¢®
; ld a,(hFile2)
; ld bc,0015h ; 㪠§ â¥«ì ®â ­ ç «  ä ©« 
; RST ToDSS
; jp c,error1
; ; ¯à®ç¨â âì ä ©«
; in a,(SLOT3)
; push af
; ld a,(hPages.SBuff1)
; out (SLOT3),a ; ¯®¤ª«. 1-î áâà ­¨æã
; ld a,(hFile2)
; call ReadFile
; jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
; ld a,(bigFile)
; or a
; jr z,endRead ; ¯à®ç¨â ­ ¢¥áì ä ©«
; ; ç¨â ¥¬ ®áâ â®ª ä ©« 
; ost: ld de,0
; ld a,(hPages.SBuff2)
; out (SLOT3),a ; ¯®¤ª«. 2-î áâà ­¨æã
; ld hl,WinBoxBuff ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
; ld a,(hFile2)
; ld c,13h
; RST ToDSS
; jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
; endRead: pop af
; out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
; ; § ªàëâì ä ©«
; ld a,(hFile2)
; call CloseFile
; jp c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
; ret
@ -125,7 +125,7 @@ sFlag: db 0
sFlag1: db 0
; ä« £, 0/1 - "system.dos" ¬¥­ìè¥/¡®«ìè¥ 1-© áâà ­¨æë
bigFile: db 0
;bigFile: db 0
@ -145,64 +145,76 @@ WriteSysFiles: ld a,(sFlag)
; áªàëâì ¬ëèªã
call HiddenMouse
; “áâ. ⥪ã騩 ¤¨áª ¨ ¯ãâì ­  ¤¨áª¥âã
call SetDisketa
;call SetDisketa
; ‘®§¤ âì ä ©« "SYSTEM.EXE"
ld hl,Name1 ; ¨¬ï ä ©« 
call CreateFile
jp c,error1 ; ®è¨¡ª  á®§¤ ­¨ï ä ©« 
ld (hFile1),a
; § ¯¨á âì ä ©«
in a,(Page3)
push af
ld a,(SBuff0)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
ld de,(Number1) ; ç¨á«® § ¯¨á. ¡ ©â
ld a,(hFile1) ; åí­¤«
call WriteFile
ex af,af'
pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
ex af,af'
jr c,error1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
; § ªàëâì ä ©«
ld a,(hFile1) ; åí­¤«
call CloseFile
jr c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
;ld hl,Name1 ; ¨¬ï ä ©« 
;call CreateFile
;jp c,error1 ; ®è¨¡ª  á®§¤ ­¨ï ä ©« 
;ld (hFile1),a
;; § ¯¨á âì ä ©«
;in a,(SLOT3)
;push af
;ld a,(hPages.SBuff0)
;out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à
;ld de,(Number1) ; ç¨á«® § ¯¨á. ¡ ©â
;ld a,(hFile1) ; åí­¤«
;call WriteFile
;ex af,af'
;pop af
;out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
;ex af,af'
;jr c,error1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
;; § ªàëâì ä ©«
;ld a,(hFile1) ; åí­¤«
;call CloseFile
;jr c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
; ‘®§¤ âì ä ©« "SYSTEM.DOS"
ld hl,Name2 ; ¨¬ï ä ©« 
call CreateFile
jr c,error1 ; ®è¨¡ª  á®§¤ ­¨ï ä ©« 
ld (hFile2),a
; § ¯¨á âì ä ©«
in a,(Page3)
push af
ld a,(SBuff1)
out (Page3),a ; ¯®¤ª«. 1-î áâà ­¨æã
ld de,(Number2) ; à §¬¥à "system.dos"
ld hl,4000h ; 1-­  áâà ­¨æ 
ld a,(bigFile)
or a
jr z,tinFile ; ä ©« <= 1-© áâà ­¨æë
ex de,hl
sbc hl,de
push hl
ld a,(hFile2) ; åí­¤«
call WriteFile
pop de
jr c,err1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
ld a,(SBuff2)
out (Page3),a ; ¯®¤ª«. 2-î áâà ­¨æã
;ld hl,Name2 ; ¨¬ï ä ©« 
;call CreateFile
;jr c,error1 ; ®è¨¡ª  á®§¤ ­¨ï ä ©« 
;ld (hFile2),a
;; § ¯¨á âì ä ©«
;in a,(SLOT3)
;push af
;ld a,(hPages.SBuff1)
;out (SLOT3),a ; ¯®¤ª«. 1-î áâà ­¨æã
;ld de,(Number2) ; à §¬¥à "system.dos"
;ld hl,4000h ; 1-­  áâà ­¨æ 
;ld a,(bigFile)
;or a
;jr z,tinFile ; ä ©« <= 1-© áâà ­¨æë
;ex de,hl
;sbc hl,de
;push hl
;ld a,(hFile2) ; åí­¤«
;call WriteFile
;pop de
;jr c,err1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
;ld a,(hPages.SBuff2)
;out (SLOT3),a ; ¯®¤ª«. 2-î áâà ­¨æã
;
; tinFile: ld a,(hFile2) ; åí­¤«
; call WriteFile
; jr c,err1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
; pop af
; out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
; ; § ªàëâì ä ©«
; ld a,(hFile2) ; åí­¤«
; call CloseFile
; jr c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
;
;
; § ¯¨áì § £àã§ç¨ª  ç¥à¥§ sys
ld hl,.sys_name
ld a,(DskName)
ld (.sys_prm_disk),a
ld bc,Dss.Exec
rst ToDSS
;
jr c,.error1
and a
jr nz,.error1
;
tinFile: ld a,(hFile2) ; åí­¤«
call WriteFile
jr c,err1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
; § ªàëâì ä ©«
ld a,(hFile2) ; åí­¤«
call CloseFile
jr c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
; ¢®ááâ. ¤¨áª ¨ ¯ãâì
call RestPath
; § ªàëâì ®ª­® "‡ ¯¨áì á¨áâ. ä ©«®¢"
@ -226,10 +238,10 @@ tinFile: ld a,(hFile2) ;
ld (ColDialWn),a ; ¢®ááâ. ¯à¥¦­îî ãáâ ­®¢ªã æ¢¥â  ®ª­ 
ret
;
err1: pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
; err1: pop af
; out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
;
error1: call RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
.error1: call RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
ld a,40h
ld (ColDialWn),a
ld hl,ErrSysFiles
@ -239,18 +251,19 @@ error1: call RestPath ;
ld a,1
ld (sFlag),a
ret
.sys_name: db "SYS.EXE "
.sys_prm_disk: dz "A: 1"
SetDisketa: ; “áâ. ⥪ã騩 ¤¨áª ­  ä®à¬ â. ¤¨áª¥âã
ld a,(DISK)
ld c,1
RST ToDSS
; “áâ. "ª®à¥­ì" ¤¨áª¥âë
ld hl,RootDir
ld c,1Dh
RST ToDSS
ret
; SetDisketa: ; “áâ. ⥪ã騩 ¤¨áª ­  ä®à¬ â. ¤¨áª¥âã
; ld a,(DISK)
; ld c,1
; RST ToDSS
; ; “áâ. "ª®à¥­ì" ¤¨áª¥âë
; ld hl,RootDir
; ld c,1Dh
; RST ToDSS
; ret
RestPath: ; ‚®ááâ. ⥪ã騩 ¤¨áª
; ld a,(CurDisk)
@ -274,10 +287,10 @@ FirstFile: ld bc,0019h ;
; ‘®§¤ âì ä ©«
CreateFile: ld c,0Ah
ld a,20h ;  âਡãâ " à娢­ë©"
RST ToDSS
ret
; CreateFile: ld c,0Ah
; ld a,20h ;  âਡãâ " à娢­ë©"
; RST ToDSS
; ret
; Žâªàëâì ä ©«
@ -288,18 +301,18 @@ OpenFile: ld c,11h
; <20>à®ç¨â âì ä ©«
ReadFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,4000h ; ç¨á«® ç¨â ¥¬ëå ¡ ©â (1 áâà ­¨æ )
ld c,13h
RST ToDSS
ret
; ReadFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¯®¤ ¤ ­­ë¥
; ld de,4000h ; ç¨á«® ç¨â ¥¬ëå ¡ ©â (1 áâà ­¨æ )
; ld c,13h
; RST ToDSS
; ret
; ‡ ¯¨áì ä ©« 
WriteFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¤ ­­ëå
ld c,14h
RST ToDSS
ret
; WriteFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¤ ­­ëå
; ld c,14h
; RST ToDSS
; ret
; ‡ ªàëâì ä ©«
@ -312,18 +325,17 @@ CloseFile: ld c,12h
SysDisk: db 0 ; ­®¬¥à § £à. ¤¨áª 
Name1: db "SYSTEM.EXE",0
Name2: db "SYSTEM.DOS",0
;Name1: db "SYSTEM.EXE",0
;Name2: db "SYSTEM.DOS",0
;Name2: db "DIAL.TXT",0
hFile1: db 0 ; åí­¤« ä ©«  "system.exe"
hFile2: db 0 ; åí­¤« ä ©«  "system.dos"
Number1: dw 0 ; à §¬¥à ä ©«  "system.exe"
Number2: dw 0 ; à §¬¥à ä ©«  "system.dos"
RootDir: db '\',0 ;
;hFile1: db 0 ; åí­¤« ä ©«  "system.exe"
;hFile2: db 0 ; åí­¤« ä ©«  "system.dos"
;Number1: dw 0 ; à §¬¥à ä ©«  "system.exe"
;Number2: dw 0 ; à §¬¥à ä ©«  "system.dos"
;RootDir: db '\',0 ;
;
CurPath:
CurDisk: db 0,':\' ; á®åà. ⥪. ¤¨áª
CurDir: ds 256 ; á®åà. ⥪ã騩 ¯ãâì (ª â «®£)
;
TmpColor: db 0 ; ¢à¥¬. á®åà. æ¢¥â  ®ª­ 
@ -331,7 +343,6 @@ TmpColor: db 0 ;
IniName: db "FFORMAT.INI",0
hFile3: db 0 ; ¤¥áªà¨¯â®à ä ©« 
;Number3:dw 0 ; à §¬¥à ä ©«  "fformat.ini"
BuffName: ds 45 ; ¡ãä¥à ¤«ï ä㭪樨 ¯®¨áª  ä ©« 
TrdName: db "BOOT.$B",0 ; ¨¬ï trd-boot ä ©« 
hFile4: db 0 ; ¤¥áªà¨¯â®à ä ©« 
@ -348,9 +359,9 @@ compare_page: ld c,0C6h ;
ld a,1 ;¯ à ¬¥âàë 1-£® ®ª­ 
RST ToBIOS
ld a,c ;¢®â §¤¥áì ¨¤¥â áp ¢­¥­¨¥ áç¨â ­­®£®
cp Page1 ;­®¬¥p  ¯®pâ  á ⥬, ª®â®pë© ï î§ î
cp SLOT1 ;­®¬¥p  ¯®pâ  á ⥬, ª®â®pë© ï î§ î
jr z,.loc1
; ãáâ. ­®¢ë© ­®¬¥à Page1
; ãáâ. ­®¢ë© ­®¬¥à SLOT1
ld (port1+1),a
ld (port2+1),a
ld (port3+1),a
@ -359,9 +370,9 @@ compare_page: ld c,0C6h ;
ld a,3 ;¯ à ¬¥âàë 3-£® ®ª­ 
RST ToBIOS
ld a,c
cp Page3
cp SLOT3
ret z
; ãáâ. ­®¢ë© ­®¬¥à Page3
; ãáâ. ­®¢ë© ­®¬¥à SLOT3
ld (port5+1),a
ld (port6+1),a
ld (port7+1),a
@ -568,10 +579,10 @@ CopyBootTRD: xor a
jr c,trd_err ; ®è¨¡ª  ®âªàëâ¨ï
ld (hFile4),a
; ¯à®ç¨â âì ä ©«
in a,(Page3)
in a,(SLOT3)
push af
ld a,(TRBoot)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
ld a,(hPages.TRBoot)
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à
; ç¨â ¥¬ § £®«®¢®ª ¡ãâ 
ld hl,NameBt ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,17 ; ç¨á«® ç¨â ¥¬ëå ¡ ©â
@ -591,7 +602,7 @@ CopyBootTRD: xor a
ld c,13h
RST ToDSS
pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
; § ªàëâì ä ©«
ld a,(hFile4)
jp CloseFile

View File

@ -26,24 +26,20 @@ sys_cursor_coords+1:
ld bc,3135h
rst 0x10
; ®á¢®¡. ¢ë¤¥«¥­­ë© ¡«®ª ¯ ¬ïâ¨
ld a,(hBlock)
ld c,3Eh
rst 0x10
jr nc,quit
ld hl,NoFree
call Print
ld b,-1 ; ª®¤ ®è¨¡ª¨
jr quit1
; ld a,(hBlock)
; ld c,3Eh
; rst 0x10
; jr nc,quit
; ld hl,NoFree
; call Print
; ld b,-1 ; ª®¤ ®è¨¡ª¨
; jr quit1
quit: ld b,0
quit1: ld c,41h ; ¢ë©â¨ ¢ Estex
rst 0x10
ret
NoFree: db "Error free block memory !",0Dh,0Ah,0
; ‚뢮¤ áâப¨ ­  íªà ­
Print: ld c,5Ch
@ -62,7 +58,7 @@ _skrn: di
ld ix,WinBoxBuff ; Address Box buffers
ld hl,2050h ; Y/X à §¬¥à ®ª­ 
ld de,0000h ; Y/X ¯®«®¦. ®ª­ 
ld a,(Win1) ; Page buffer
ld a,(hPages.Win1) ; Page buffer
ld b,a
xor a
RST ToBIOS

154
FMAIN.ASM
View File

@ -8,34 +8,17 @@
;
;
define release 1 ; ०¨¬ ª®¬¯¨«ï樨 ¨á室­¨ª 
; ; ®¯¨á ­¨¥ ds xx
; %imacro ds 1
; times %1 db 0
; %endmacro
; ; ®¯¨á ­¨¥ ds xx,yy
; %imacro ds 2
; times %1 db %2
; %endmacro
; !TODO ¡à âì § £àã§®ç­ë© ᥪâ®à á á¨á⥬­®£® ¤¨áª ,   ­¥ â áª âì ¢ ᥡ¥
; !TODO ¯¥à¥¤¥« âì ¯®¤ § ¯¨áì § £àã§ç¨ª  ­®¢®£® ¤®á , ª®â®àë© ¡®«ìè¥ 3-å ᥪâ®à®¢
include './shared_includes/constants/dss_equ.inc'
include './shared_includes/constants/bios_equ.inc'
include './shared_includes/constants/sp2000.inc'
include './shared_includes/structures/FileSystem.inc'
include 'version.inc'
SysPort equ 0x3C ; á¨áâ. ¯®àâ (¡¥§ ¯®¤ª«. <20>‡“ ¡¨®á )
Page1 equ 0xA2 ; ¯®àâ 1-© áâà ­¨æë
Page3 equ 0xE2 ; ¯®àâ 3-© áâà ­¨æë
WinBoxBuff equ 0xC000 ; ­ ç «® ¡ãä¥à 
; ¢¥àá¨ï ¯à®£à ¬¬ë
major_version equ 1
minor_version equ 13
if release
@ -45,7 +28,7 @@ minor_version equ 13
db 'EX' ; exe ID
db 'E' ; exe ⨯
db 0 ; exe ¢¥àá¨ï
db 1 ; exe ¢¥àá¨ï
dw 512 ; ¬«. ᬥé. ª®¤ 
dw 0 ; áâ. ᬥé. ª®¤ 
dw 0 ; end-beg, ¯¥à¢¨ç­ë© § £àã§ç¨ª
@ -65,18 +48,18 @@ Start: ld sp,Stack
RST ToBIOS
; áà ¢­¨âì ¨á¯. ­®¬¥à  ¯®à⮢ áâà ­¨æ á ­®¬¥à ¬¨ ¯®à⮢ <20>¨®á 
;call compare_page
; ¢ë¤¥«ï¥¬ ¡«®ª ¢ 8 áâà ­¨æ
ld bc,8*256 + Dss.GetMem ;!HARDCODE
; ¢ë¤¥«ï¥¬ ¡«®ª ¢ hPages.Size áâà ­¨æ
ld bc,hPages.Size*256 + Dss.GetMem
RST ToDSS
jr c,err_mem ; ­¥â ¯ ¬ïâ¨
ld (hBlock),a ; åí­¤« ¡«®ª 
;ld (hBlock),a ; åí­¤« ¡«®ª 
; á®§¤ âì ᯨ᮪ ¢ë¤¥«. áâà ­¨æ
ld hl,hPages
ld c,0C5h
RST ToBIOS
; ¢ª«. à ¡®çãî áâà ­¨æã ¢ Page3 (¨á¯. ¤«ï ¡ãä¥à  á¨áâ. ®¡« á⨠¤¨áª¥âë)
ld a,(BuffSys)
out (Page3),a
; ¢ª«. à ¡®çãî áâà ­¨æã ¢ SLOT3 (¨á¯. ¤«ï ¡ãä¥à  á¨áâ. ®¡« á⨠¤¨áª¥âë)
ld a,(hPages.BuffSys2)
out (SLOT3),a
; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
ld bc,Dss.ScanKey*256 + Dss.K_CLEAR
RST ToDSS
@ -112,29 +95,13 @@ err_mem: ld hl,NoMem
NoMem: db "Not enough memory !",0Dh,0Ah,0
hBlock: db 0 ; åí­¤« ¢ë¤¥«. ¡«®ª 
hPages:
BuffSys: db 0 ; åí­¤« à ¡®ç¥© áâà ­¨æë (+¤«ï á¨áâ. ®¡« áâ¨)
BuffTrk: db 0 ; åí­¤« áâà. ¡ãä¥à  áâàãªâãàë ¤®à®¦ª¨ (¨ "system.exe")
Win1: db 0 ; åí­¤« áâà. á®åà. íªà ­ 
Win2: db 0 ; åí­¤« áâà. á®åà. £«. ®ª®­ ä®à¬ â¨«ª¨
TRBoot: db 0 ; åí­¤« ¡ãä¥à  § £àã§ç¨ª  TR-DOS
SBuff0: db 0 ; åí­¤« ¡ãä¥à  "system.exe"
SBuff1: db 0 ; åí­¤«ë ¡ãä¥à  ¯®¤
SBuff2: db 0 ; ä ©« "system.dos"
db 0xFF ; á⮯-¡ ©â ᯨ᪠
;[]=================== <20> ç «® ¯à®£à ¬¬ë =========================[]
Begin: ; á®åà. íªà ­
call SaveScreen
; á®åà. ¯®«®¦. ªãàá®à  á¨áâ. íªà ­ 
ld c,8Eh
ld c,BIOS.LP_GET_PLACE
RST ToBIOS
ld (sys_cursor_coords),de
; ¨­¨æ. ¤à ©¢¥à ¬ë誨
@ -148,47 +115,61 @@ Begin: ;
RST ToDSS
continue: call ReadInit ; ç⥭¨¥ "fformat.ini" ¨ ­ áâனª 
call CopyBootTRD ; ᪮¯¨à. ¡ãâ ¨§ "boot.$b" (¥á«¨ ¥áâì)
call CopySysFiles ; ᪮¯¨à. á¨áâ. ä ©«ë ¢ ¡ãä¥àë
;call CopySysFiles ; ᪮¯¨à. á¨áâ. ä ©«ë ¢ ¡ãä¥àë
;[]==============================================================[]
include "dialog.asm"
include "listbox.asm"
include "radio.asm"
include "mouse.asm"
include "map.asm"
include "exit.asm"
include "estex.asm"
include "format.asm"
;[]==============================================================[]
;[]==============================================================[]
NoMouse: db "Driver mouse not installed",0Dh,0Ah,0
Title: db " Floppy disk formatting utility. Version "
db major_version + "0","."
db (minor_version / 10) + "0",(minor_version % 10) + "0"
;db " (c) 2005-2025 "
db " (c) 2005-2025 Sprinter Team "
;
;ds 562 ; 565 + start2 = 672 (_2 -_1)
;[]==============================================================[]
; ¢¥ªâ®à ¤«ï ®â®¡à ¦¥­¨ï ªãàá®à 
rst38: di
push iy
push ix
push hl
push de
push bc
push af
ld a,(CurILFl)
or a
call nz,PrnILCr
pop af
pop bc
pop de
pop hl
pop ix
pop iy
vect: jp 0x0000 ;  ¤à¥á á¨áâ. ¢¥ªâ®à 
;[]==============================================================[]
;hBlock: db 0 ; åí­¤« ¢ë¤¥«. ¡«®ª 
hPages:
.BuffSys2: db #FF ; åí­¤« à ¡®ç¥© áâà ­¨æë (+¤«ï á¨áâ. ®¡« áâ¨)
.BuffTrk: db #FF ; åí­¤« áâà. ¡ãä¥à  áâàãªâãàë ¤®à®¦ª¨ (¨ "system.exe")
.Win1: db #FF ; åí­¤« áâà. á®åà. íªà ­ 
.Win2: db #FF ; åí­¤« áâà. á®åà. £«. ®ª®­ ä®à¬ â¨«ª¨
.TRBoot: db #FF ; åí­¤« ¡ãä¥à  § £àã§ç¨ª  TR-DOS
;.SBuff0: db #FF ; åí­¤« ¡ãä¥à  "system.exe"
;.SBuff1: db #FF ; åí­¤«ë ¡ãä¥à  ¯®¤
;.SBuff2: db #FF ; ä ©« "system.dos"
.Size equ $-hPages
db 0xFF ; á⮯-¡ ©â ᯨ᪠
; ¡ãä¥à ¤«ï ä㭪樨 ¯®¨áª  ä ©« 
BuffName: ds 45
; á®åà. ⥪ã騩 ¯ãâì (ª â «®£)
CurDir: ds 256
; <20> ¡®ç¨© ¡ãä¥à Input Line
CompBuff: ds 16
_1:
; _1:
DialData: ds 16
; <20>ãä¥à § £®«®¢ª  ¢ë¢®¤. ®ª­ 
@ -198,28 +179,23 @@ DialTab: ds 128
; <20>ãä¥à ¯®¤ ®¡ê¥ªâë
ReCompBuff: ds 512
_2:
NoMouse: db "Driver mouse not installed",0Dh,0Ah,0
Title: db " Floppy disk formatting utility Version "
db major_version + "0","."
db (minor_version / 10) + "0",(minor_version % 10) + "0"
db " (c) 2005-2007 "
;
ds 562 ; 565 + start2 = 672 (_2 -_1)
;[]==============================================================[]
include "exit.asm"
include "estex.asm"
include "form.asm"
;[]==============================================================[]
ds 80
Stack: db 0 ; ¡ãä¥à ¯®¤ á⥪ ¯à®£à ¬¬ë
ES_Boot: incbin "estex.bs" ; § £àã§ç¨ª Estex
;[]==============================================================[]
;[]==============================================================[]
ES_BPB equ $
;ES_Boot equ ES_BPB + 512
; incbin "estex.bs" ; § £àã§ç¨ª Estex
;[]==============================================================[]
CurPath equ ES_BPB + 512 ;!TEST
;[]==============================================================[]
; <20>ãä¥à á¨á⥬­®© ®¡« á⨠¤¨áª¥âë
L2400:
L2400 equ CurPath + 257
;[]==============================================================[]

View File

@ -38,15 +38,15 @@ FFORM1: call ClearMap ;
call HiddenMouse ; áªàëâì ¬ëèªã
call set_1440
; Žâªàëâì ¯®àâë ƒ93
ld a,1Ch
out (SysPort),a
ld a,SYS_PORT.CNF_3
out (SYS_PORT.RAM),a
call A0626 ; á¡à®á¨âì ª®­â஫«¥à
; ¤¥à­ãâì £®«®¢ª®©
ld a,70
out (REGDATA),a
ld a,18h ; ¯¥à¥©â¨ ­  § ¤ ­. ¤®à®¦ªã
call A092C ; § ­¥á⨠ª®¬ ­¤ã
call A092A ; ­  0-î ¤®à®¦ªã
call FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
call FDC_CMD.zeroTrk ; ­  0-î ¤®à®¦ªã
;
; ¯à®¢¥à¨âì ­ «¨ç¨¥ ¤¨áª¥âë
call L0C65 ; â¥áâ ­  ç⥭¨¥ ᥪâ®à 
@ -82,7 +82,7 @@ FFORM1: call ClearMap ;
ld hl,SystemArea ; "Writing system area..."
call PutDialWn
call HiddenMouse ; áªàëâì ¬ëèªã
call L09D9 ; § ¯¨áì á¨áâ. ®¡« áâ¨
call SysWR ; § ¯¨áì á¨áâ. ®¡« áâ¨
call ClsDial ; § ªàëâì ®ª­® ¤¨ «®£ 
pop af
ld (ColDialWn),a
@ -90,23 +90,24 @@ FFORM1: call ClearMap ;
ld a,(RetCode)
or a
jr nz,Parsing ; ¡ë«¨ ®è¨¡ª¨ ¯à¨ § ¯¨á¨ á¨áâ. ®¡« áâ¨
call A092A ; ­  0-î ¤®à®¦ªã
call FDC_CMD.zeroTrk ; ­  0-î ¤®à®¦ªã
; ‡ ªàëâì ¯®àâë ƒ93
call Abort
ld a,(_OS)
or a
jp nz,okno1 ; ¯à¨ tr-dos, cp/m-80
;
ld a,(cSystem) ; ä« £ ª®¯¨à. á¨á⥬­ëå ä ©«®¢
or a
call nz,WriteSysFiles ; § ¯¨áì á¨áâ. ä ©«®¢ ­  ¤¨áª¥âã
call CreateLabel ; á®§¤ âì ¬¥âªã ¤¨áª¥âë, ¥á«¨ § ¤ ­ 
;call CreateLabel ; á®§¤ âì ¬¥âªã ¤¨áª¥âë, ¥á«¨ § ¤ ­ 
jp okno1 ; "”®à¬. § ¢¥à襭®", ¢ë室 ¨§ ä㭪樨 fformat
Abort: call A0626 ; á¡à®á¨âì ª®­â஫«¥à
; § ªàëâì ¯®àâë ƒ93
ld a,4
out (SysPort),a
ld a,SYS_PORT.CNF_0
out (SYS_PORT.RAM),a
ld c,1 ; ¯®ª § âì ¬ëèªã
RST ToDSS.Mouse
ret
@ -247,9 +248,10 @@ L0870: ld a,(side)
A0626: ex af,af'
ld a,(DISK) ; ¤¨áª
and 3
ld c,a
ld a,00011000b ; á¡à®á ƒ93 ­ã«¥¬ 2-£® ¡¨â 
or c
;ld c,a
;ld a,00011000b ; á¡à®á ƒ93 ­ã«¥¬ 2-£® ¡¨â 
;or c
or %0001'1000
out (REGCTRL),a
set 2,a ; 1Ch
out (REGCTRL),a
@ -284,9 +286,10 @@ delay: ; >=16. usec delay
;A0929: ld a,0D0h
; jr A092C
; £®«®¢ªã ­  0-î ¤®à®¦ªã
A092A: ld a,8
FDC_CMD.zeroTrk:
ld a,8
; ¯®á« âì ª®¬ ­¤ã
A092C: out (REGCOM),a
FDC_CMD: out (REGCOM),a
exx
ld b,3+3; ; 3 áç¥â稪
call delay ; ¬¨ªà®-¯ ã§ 
@ -337,12 +340,12 @@ L07B3: call L0870 ;
; ‡ ¯¨áì á¨áâ. ®¡« á⨠ms-dos ¨«¨ trd-¡ãâ 
L09D9: ld a,(density)
SysWR: ld a,(density)
ld c,8Fh ; turbo on/off
RST ToBIOS
xor a
ld (tracks),a
call A092A ; ¯¥à¥©â¨ ­  0-î ¤®à®¦ªã
call FDC_CMD.zeroTrk ; ¯¥à¥©â¨ ­  0-î ¤®à®¦ªã
ld hl,L2400 ; ¡ãä¥à á¨áâ. ®¡« áâ¨
ld (L0AC8),hl
ld a,(_OS)
@ -354,7 +357,7 @@ L09D9: ld a,(density)
;jp _cpm80
; Š®¯¨àã¥â 2-î FAT ¨ § ¯¨á뢠¥â á¨áâ. ®¡« áâì ¤¨áª¥âë,
; ¯à¨ ¢ª«. ®¯æ¨¨ ª®¯¨àã¥â § £àã§ç¨ª Estex ¢ ᥪâ®àë 2..4.
_msdos: ld a,(media5) ; ç¨á«® ᥪâ®à®¢ ­  FAT
_msdos: ld a,(MS_Boot.media5) ; ç¨á«® ᥪâ®à®¢ ­  FAT
ld e,a
ld hl,0
ld bc,512
@ -372,47 +375,51 @@ _msdos: ld a,(media5) ;
add hl,de
ex de,hl
ldir
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a
jr z,.loc2
;
; bpb boot loader
;ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
;or a
;jr z,.loc2
; ª®¯¨à. § £àã§ç¨ª  Estex ¢ á¨áâ. ®¡« áâì
ld hl,ES_Boot ; ª®¤ § £àã§ç¨ª 
ld de,L2400+512 ; ­ ç «® 1-© FAT
ld bc,1536 ; 512*3 ᥪâ. = à §¬¥à § £àã§ç¨ª 
ldir
;ld hl,ES_Boot ; ª®¤ § £àã§ç¨ª 
;ld de,L2400+512 ; ­ ç «® 1-© FAT
;ld bc,1536 ; 512*3 ᥪâ. = à §¬¥à § £àã§ç¨ª 
;ldir
; ᪮à४â. BPB ¢ ¡ãä¥à¥
ld a,(media5)
inc a
ld (L2400+14),a
ld a,1 ; ç¨á«® ª®¯¨© FAT
ld (L2400+16),a ; ᬥé. ­  ç¨á«® ª®¯¨©
;ld a,(MS_Boot.media5)
;inc a
;ld (L2400+14),a
;ld a,1 ; ç¨á«® ª®¯¨© FAT
;ld (L2400+16),a ; ᬥé. ­  ç¨á«® ª®¯¨©
;
;
.loc2: call L07AF ; ®¦¨¤ ­¨¥ £®â®¢­®á⨠­£¬¤
; § ¯¨áì 0-© áâ®à®­ë
ld a,1
ld (sect),a ; 1-© ᥪâ®à (boot)
call L0870 ; áâ®à®­ã ¨ ¤¨áª ¢ ª®­â஫«¥à
L08F0: call L0906 ; § ¯¨áì ᥪâ®à 
.loopWr0: call L0906 ; § ¯¨áì ᥪâ®à 
ret nz ; ®è¨¡ª¨ § ¯¨á¨
ld a,(sect) ; ⥪. ᥪâ®à
inc a
ld (sect),a
loc02: cp 18+1 ; § ¯à¥¤¥«ì­ë© ᥪâ®à
jr nz,L08F0
.maxSector0+1: cp 18+1 ; § ¯à¥¤¥«ì­ë© ᥪâ®à
jr nz,.loopWr0
; § ¯¨áì 1-© áâ®à®­ë
ld a,1
ld (side),a ; ⥪. áâ®à®­ 
ld (sect),a ; ⥪. ᥪâ®à
call L0870 ; áâ®à®­ã ¨ ¤¨áª ¢ ª®­â஫«¥à
L08F6: call L0906 ; § ¯¨áì ᥪâ®à 
.loopWr1: call L0906 ; § ¯¨áì ᥪâ®à 
ret nz ; ®è¨¡ª¨ § ¯¨á¨
ld a,(sect) ; ⥪. ᥪâ®à
inc a
ld (sect),a
loc03: cp 18+1 ; § ¯à¥¤. ᥪâ®à ?
jr nz,L08F6
.maxSector1+1: cp 18+1 ; § ¯à¥¤. ᥪâ®à ?
jr nz,.loopWr1
ret
; ‡ ¯¨áì á¨áâ. ®¡« á⨠TR-DOS.
; <20>ਠboot-¤¨áª¥ ª®à४â¨àã¥â ­ ç «® ᢮¡. ¬¥áâ ,
; ç¨á«® ᢮¡. ᥪâ®à®¢ ¨ ç¨á«® § ¯¨á. ä ©«®¢
@ -504,16 +511,16 @@ _trdos: xor a ;
; ‘ª®¯¨à®¢ âì ⥫® ¡ãâ  ¨§ ¡ãä¥à  TRBoot ¢ ¡ãä¥à L2400+1000h
copy1: exx
in a,(Page1)
in a,(SLOT1)
ex af,af'
ld a,(TRBoot)
out (Page1),a ; ¯®¤ª«. ¡ãä¥à
ld hl,4000h ; ­ ç «® Page1
ld a,(hPages.TRBoot)
out (SLOT1),a ; ¯®¤ª«. ¡ãä¥à
ld hl,4000h ; ­ ç «® SLOT1
ld de,L2400+1000h
SizeBt: ld bc,4000h
ldir
ex af,af'
out (Page1),a ; ¯®¤ª«. ¡ãä¥à
out (SLOT1),a ; ¯®¤ª«. ¡ãä¥à
exx
ret
@ -573,10 +580,10 @@ A0875: push de
; ‡ ¯¨áì ¤®à®¦ª¨
L091B: in a,(Page3)
L091B: in a,(SLOT3)
push af
ld a,(BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨
ld a,(hPages.BuffTrk)
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨
ld hl,L4000 ; ­ ç «® ¤ ­­ëå
ld (L0AC8),hl
call L0870 ; ¢ ª®­â஫«¥à áâ®à®­ã ¨ ¤¨áª
@ -585,7 +592,7 @@ L091B: in a,(Page3)
ld a,0xF4 ; § ¯¨áì ¤®à®¦ª¨
call A0875
pop af
out (Page3),a
out (SLOT3),a
ret
@ -598,7 +605,7 @@ NxtTrack:
L0759: ld a,(tracks) ; ⥪. ¤®à®¦ª 
out (REGDATA),a ; ॣ¨áâà ¤ ­­ëå
ld a,18h ; ¯¥à¥©â¨ ­  § ¤ ­. ¤®à®¦ªã
jp A092C ; § ­¥á⨠ª®¬ ­¤ã
jp FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
@ -621,7 +628,7 @@ L0C65: ld a,(sect) ; ⥪. ᥪ
or 0x80
; 0-ï áâ®à®­ : 80h
; 1-ï áâ®à®­ : 88h
call A092C ; § ­¥á⨠ª®¬ ­¤ã
call FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
di
ld c,REGCOM
ld b,3 ; áç¥â稪 ¯®¯ë⮪
@ -728,7 +735,7 @@ _done2: xor a
;[]==============================================================[]
; ¢ëç¨á«¨âì ï祩ªã bad-ᥪâ®à  ¢ FAT-¥
L0ACF: ld hl,(media6) ; ᥪâ®à®¢ ­  áâ®à®­ã
L0ACF: ld hl,(MS_Boot.media6) ; ᥪâ®à®¢ ­  áâ®à®­ã
add hl,hl ; *2 (ᥪâ®à®¢ ­  ¢áî ¤®à®¦ªã)
ex de,hl
ld hl,0
@ -739,7 +746,7 @@ L0AD8: add hl,de
ld a,(side) ; ⥪. áâ®à®­ 
or a
jr z,L0AE8
ld de,(media6) ; ᥪâ®à®¢ ­  áâ®à®­ã
ld de,(MS_Boot.media6) ; ᥪâ®à®¢ ­  áâ®à®­ã
add hl,de
L0AE8: ld a,(sect) ; ⥪. ᥪâ®à
ld e,a
@ -757,7 +764,7 @@ L0AE8: ld a,(sect) ; ⥪. ᥪ
ld a,l
rra
ld l,a
ld a,(media1) ; ᥪâ®à®¢ ­  ª« áâ¥à
ld a,(MS_Boot.media1) ; ᥪâ®à®¢ ­  ª« áâ¥à
ld e,a
ld d,0
add hl,de
@ -808,7 +815,7 @@ L0A2C: push hl
; ᥪâ®à®¢ ­  +2 («ãç訩 ¢ à¨ ­â).
;
add_offset:
ld hl,(media6) ; ç¨á«® ᥪâ®à®¢ ¢ ⥪. ä®à¬ â¥
ld hl,(MS_Boot.media6) ; ç¨á«® ᥪâ®à®¢ ¢ ⥪. ä®à¬ â¥
ld a,(_OS) ; ⨯ Ž‘-¨
or a
jr z,.loc0 ; ms-dos
@ -921,10 +928,10 @@ GAP1 equ 50
GAP3 dw 108 ; ¯®-㬮«ç ­¨î ¤«ï 1.44Mb
; <20>®¤£®â®¢¨âì § £®«®¢ª¨ ᥪâ®à®¢ ¤®à®¦ª¨ (®¤­®© áâ®à®­ë)
L0BAA: in a,(Page3)
L0BAA: in a,(SLOT3)
push af
ld a,(BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
ld a,(hPages.BuffTrk)
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
xor a
ld (L0BA9),a ; ®¡­ã«¨âì áç¥â稪 ᥪâ®à®¢
;
@ -969,17 +976,17 @@ L0BB6: ld bc,553 ;
loc05: cp 18 ; ¯®á«. ᥪâ®à ?
jr nz,L0BB2
pop af
out (Page3),a ; ¢®ááâ. à ¡. áâà ­¨æã
out (SLOT3),a ; ¢®ááâ. à ¡. áâà ­¨æã
ret
; ‘®§¤ ¥â ¢ ¡ãä¥à¥ áâàãªâãàã ¤®à®¦ª¨
; <20>ãä¥à: 0xC000..0xFFFF
L0B21: in a,(Page3)
L0B21: in a,(SLOT3)
push af
ld a,(BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
ld a,(hPages.BuffTrk)
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
call CLEAR ; § ¯®«­¨âì ¡ãä¥à ª®¤®¬ 0x4E
ld hl,L4000 ; ­ ç «® ¡ãä¥à  ¤ ­­ëå ¤®à®¦ª¨
xor a
@ -1051,7 +1058,7 @@ loc08: cp 18 ;
jr nz,L0B3E
; GAP4B, ®áâ â®ª ¤®à®¦ª¨ (¡ãä¥à 㦥 § ¯®«­¥­ 0x4E)
pop af
out (Page3),a ; ¢ª«. à ¡®çãî áâà ­¨æã 0xC000
out (SLOT3),a ; ¢ª«. à ¡®çãî áâà ­¨æã 0xC000
ret
FILL: ld (hl),c
@ -1084,19 +1091,21 @@ CLEAR: ld (L0ACD),sp
; ¬ ªá. ¤«¨­  ®¡« áâ¨: 0x4C00 ¤«ï 1.74Mb
L09A8: ld de,L2400 ; ¡ãä¥à Boot-ᥪâ®à 
ld hl,MS_Boot ; ms-dos boot-ᥪâ®à
ld bc,512 ; ¤«¨­  boot- 
ldir
ld bc,MS_Boot.SIZE ; ¤«¨­  boot- 
ldir ;!TEST
ex de,hl ; hl = ­ ç «® FAT ¢ ¡ãä¥à¥
loc07: ld bc,16896 ; 6656/16896 ¤«¨­  FAT-®¢ + Root dir
ld e,0 ; ¡ ©â § ¯®«­¥­¨ï
call L0994 ; ¯¥à¥ª çª  ¥ -> (hl)
ld a,(media4) ; ¡ ©â-®¯¨á â¥«ì ä®à¬ â  ¤¨áª 
ld a,(MS_Boot.media4) ; ¡ ©â-®¯¨á â¥«ì ä®à¬ â  ¤¨áª 
ld hl,L2400+512
ld (hl),a ; § ­¥á⨠¯¥à¢ë¬ ¡ ©â®¬ ¢ FAT
inc hl
ld (hl),0FFh ; 2 ¨ 3-© ¡ ©âë FAT
inc hl
ld (hl),0FFh
call CreateLabel ; á®§¤ âì ¬¥âªã ¤¨áª¥âë, ¥á«¨ § ¤ ­ 
call CreateSerialNumber
ret
L0994: ld (hl),e
@ -1114,32 +1123,33 @@ L0994: ld (hl),e
FSETUP: ld a,(_OS)
or a
jr nz,noMSDOS
frm1: ld a,18 ; ç¨á«® ᥪâ®à®¢
.sectorsAll+1: ld a,18 ; ç¨á«® ᥪâ®à®¢
ld (loc05+1),a
ld (loc08+1),a
SSect: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (media6),hl ;;
.sectorsSide+1: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (MS_Boot.media6),hl
inc a ; § ¯à¥¤. ᥪâ®à
ld (loc02+1),a
ld (loc03+1),a
ld (_msdos.maxSector0),a
ld (_msdos.maxSector1),a
ld (loc06+1),a
frm2: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë
.lastSector+1: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë
ld (LastSect),a
frm3: ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (media1),a
.sectorsPerCluster+1:
ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (MS_Boot.media1),a
frm4: ld a,0xF0 ; ¡ ©â ä®à¬ â 
ld (media4),a
ld (MS_Boot.media4),a
frm5: ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (loc07+1),hl
frm6: ld hl,224 ; § ¯¨á¥© ¢ ª®à­¥
ld (media2),hl
ld (MS_Boot.media2),hl
ASect: ld hl,2880 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (media3),hl ;;
ld (MS_Boot.media3),hl
FSect: ld hl,9 ; ᥪâ®à®¢ ­  FAT
ld (media5),hl ;;
ld (MS_Boot.media5),hl
ret
;
noMSDOS:dec a
noMSDOS: dec a
jr nz,SetCPM
; <20> áâநâì ä®à¬ â¨«ªã ­  ä®à¬ â TR-DOS
ld a,16 ; ç¨á«® ᥪâ®à®¢
@ -1254,7 +1264,7 @@ L0BFF: ld a,(density)
call InitElapsedTime ; á®åà. ¨ á¡à®á¨âì ¢à¥¬ï
call L07AF ; ®¦¨¤ ­¨¥ £®â®¢­®á⨠­£¬¤
; 横« ä®à¬ â. ¤®à®¦¥ª
L0C14: call L0BDA ; ä®à¬ â¨à®¢ ­¨¥
L0C14: call FORMAT_TRK ; ä®à¬ â¨à®¢ ­¨¥
ret c ; ä®à¬ â. ¯à¥à¢ ­®
ret nz ; ¥áâì ®è¨¡ª¨ ç⥭¨ï
; ­¥â ®è¨¡®ª
@ -1271,10 +1281,10 @@ TRACKS: ld a,82
; ”®à¬ â¨à. ®¤­®© ¤®à®¦ª¨
L0BDA: xor a
FORMAT_TRK: xor a
ld (side),a ; ⥪. áâ®à®­ 
ld (RetCode),a ; á¡à. ¢®§¢à. ª®¤
L0BDE: ;ld a,2
.loop: ;ld a,2
;ld (L0C64),a ; ç¨á«® 3-å à §®¢ëå ¯®¯ë⮪
call L0BAA ; ¨­¨æ. § £®«®¢ª®¢ ᥪâ®à®¢ ¤®à®¦ª¨
call L0759 ; ãáâ. £®«®¢ªã ­  ⥪. ¤®à®¦ªã
@ -1292,7 +1302,7 @@ L0BDE: ;ld a,2
inc (hl) ; ᬥ­  áâ®à®­ë
ld a,(hl) ; ⥪. áâ®à®­ 
cp 1+1 ; § ¯à¥¤¥«ì­ ï ?
jr nz,L0BDE
jr nz,.loop
xor a
ret
@ -1483,100 +1493,39 @@ CalcTime:
;-------------------------------------------------+
; MS-DOS § £àã§ç¨ª ¤¨áª¥â (¨§ fformat), 512 ¡ ©â. |
; ä®à¬ â 1.44Mb. |
; ¤«ï 720kB á¬. ¬¥âªã '#' |
;-------------------------------------------------+
MS_Boot:
db 0xEB,0x3C,0x90 ; 3 ¡ ©â , ª®¤ ¯¥à¥å®¤  ­  § £àã§ç¨ª
db "DSS 1.60" ; 8 ¡ ©â, OEM ID
;BPB, 17 ¡ ©â
BPB: dw 512 ; ¡ ©â ­  ᥪâ®à
media1: db 1 ; # 2, ᥪâ®à®¢ ­  ª« áâ¥à
dw 1 ; § à¥§¥à¢. ᥪâ®à®¢
db 2 ; ç¨á«® FAT-®¢
media2: dw 224 ; # 112, § ¯¨á¥© ¢ ª®à­¥
media3: dw 2880 ; # 1440, ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
media4: db 0xF0 ; # 0xF9, ¡ ©â ä®à¬ â 
media5: dw 9 ; # 3, ᥪâ®à®¢ ­  FAT
media6: dw 18 ; # 9, ᥪâ®à®¢ ­  áâ®à®­ã
.pc_code: db 0xEB,0xFE,0x00 ; 3 ¡ ©â , ª®¤ ¯¥à¥å®¤  ­  § £àã§ç¨ª
; 8 ¡ ©â, OEM ID
db "DSS "
.dss_major_ver: db "1."
.dss_minor_ver: db "71"
;BPB, 17 ¡ ©â
.BPB: dw 512 ; ¡ ©â ­  ᥪâ®à
.media1: db 1 ; # 2, ᥪâ®à®¢ ­  ª« áâ¥à
.reserved: dw 1 ; § à¥§¥à¢. ᥪâ®à®¢
.fat_num: db 2 ; ç¨á«® FAT-®¢
.media2: dw 224 ; # 112, § ¯¨á¥© ¢ ª®à­¥
.media3: dw 2880 ; # 1440, ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
.media4: db 0xF0 ; # 0xF9, ¡ ©â ä®à¬ â 
.media5: dw 9 ; # 3, ᥪâ®à®¢ ­  FAT
.media6: dw 18 ; # 9, ᥪâ®à®¢ ­  áâ®à®­ã
dw 2 ; ª®«-¢® áâ®à®­ ¤¨áª 
;extended boot-record
;extended boot-record
dw 0,0 ; áªàëâëå ᥪâ®à®¢
dw 0,0 ; ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
dw 0 ; 䨧. ­®¬¥à ¤¨áª 
db 0x29 ; ᨣ­ âãà  à áè. boot-§ ¯¨á¨
dw 96C2h,2D3Ah ; á¥à¨©­ë© ­®¬¥à ¤¨áª¥âë 2D3A:96C2
db "NO NAME " ; 11 ¡ ©â, ¬¥âª  ¤¨áª¥âë
.serial: dw 0000,0000 ; á¥à¨©­ë© ­®¬¥à ¤¨áª¥âë 2D3A:96C2
.label: db "NO NAME " ; 11 ¡ ©â, ¬¥âª  ¤¨áª¥âë
db "FAT12 " ; 8 ¡ ©â, ID ä ©«®¢®© á¨á⥬ë
;---------------------------------------------------------------------
db 0xFA,0x33,0xD2,0x8E,0xD2,0xBC,0xF0,0x7B
db 0xFB,0xB8,0xC0,0x07,0x8E,0xD8,0xE8,0x89
db 0x00,0xBE,0xFE,0x00,0xFC,0xBB,0x70,0x00
db 0xE8,0x25,0x00,0x32,0xE4,0xCD,0x16,0x3C
db 0x1B,0x74,0x18,0x3C,0x0D,0x74,0x08,0x3C
db 0x20,0x74,0x04,0x3C,0x6F,0x75,0xEC,0xBE
db 0xDF,0x01,0xE8,0x0B,0x00,0xBE,0xC1,0x01
db 0xE8,0x05,0x00,0xE8,0x5C,0x00,0xCD,0x19
db 0xAC,0x0A,0xC0,0x74,0x46,0x3C,0x01,0x75
db 0x05,0xAC,0x8A,0xD8,0xEB,0xF2,0x3C,0x02
db 0x75,0x0A,0xAD,0x8B,0xD0,0x56,0xE8,0x62
db 0x00,0x5E,0xEB,0xE4,0x3C,0x03,0x75,0x0A
db 0xAC,0xA2,0x00,0x00,0x89,0x36,0x01,0x00
db 0xEB,0xD6,0x3C,0x04,0x75,0x0C,0xFE,0x0E
db 0x00,0x00,0x74,0x04,0x8B,0x36,0x01,0x00
db 0xEB,0xC6,0x33,0xC9,0xA8,0x80,0x74,0x05
db 0x24,0x7F,0x8A,0xC8,0xAC,0x41,0xE8,0x17
db 0x00,0xEB,0xB5,0x36,0xA1,0x6C,0x04,0x05
db 0x04,0x00,0x36,0x39,0x06,0x6C,0x04,0x72
db 0xF9,0xC3,0xB8,0x03,0x00,0xCD,0x10,0xC3
db 0x56,0x3C,0x0A,0x74,0x10,0xB4,0x09,0xCD
db 0x10,0x02,0xD1,0x80,0xFA,0x50,0x73,0x05
db 0xE8,0x08,0x00,0x5E,0xC3,0xFE,0xC6,0x32
db 0xD2,0xEB,0xF5,0xB4,0x02,0xCD,0x10,0xC3
; 21 ¡ ©â
db " FFORMAT Version "
db major_version + "0","."
db (minor_version / 10) + "0",(minor_version % 10) + "0"
;
db 0xBA,0x20,0x01,0x1F,0x03,0x07,0xCF,0xB0
db 0x04,0x91,0xB0,0x01,0x4E,0x80,0xC9,0xA7
db 0xCD,0x80,0xBB,0x01,0x1F,0x93,0xB0,0x03
db 0x06,0x91,0xB0,0x01,0x4E,0x80,0xBA,0xA7
db 0x20,0x80,0xBA,0x01,0x07,0x81,0xB0,0x01
db 0x1F,0x91,0xB0,0x04,0x91,0xB0,0x01,0x4E
db 0x80,0xC8,0xA7,0xCD,0x80,0xBC,0x01,0x07
db 0x81,0xB0,0x01,0x1F,0x91,0xB0,0x93,0xB0
db 0x01,0x07,0xA9,0xB0,0x01,0x1F,0x91,0xB0
db 0x03,0x07,0xCF,0xB0,0x04,0x01,0x70
; 16 ¡ ©â
db " RLE Boot record"
db 0xC6,0x20,0x01,0x4F,0x02,0x15,0x0A
; 36 ¡ ©â
db "Sorry, but this disk is not bootable"
db 0x02,0x16,0x0B
; 33 ¡ ©â 
db "Insert SYSTEM disk into the drive"
db 0x01,0x7F,0x02,0x22,0x0D
; ­¥ ­ ¦ âë© ¡ãâ®­
db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,""
db 0x01,0x40,0x80,0xDC,0x02,0x23,0x0E,0x89
db 0xDF,0x02,0x00,0x19,0x00,0x01,0x4E,0x02
db 0x22,0x0D,0x20,0x01,0x7F
; ­ ¦ âë© ¡ãâ®­
db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,""
db 0x01,0x4E,0x02,0x23,0x0E,0x89,0x20,0x02
db 0x00,0x19,0x00
dw 0xAA55
block 510-62,0
dw #AA55
.SIZE EQU $-MS_Boot
@ -1609,7 +1558,7 @@ L0D25: ld c,31h
ld a,(tracks)
out (REGDATA),a
ld a,18h ; ¯¥à¥©â¨ ­  § ¤ ­. ¤®à®¦ªã
call A092C ; § ­¥á⨠ª®¬ ­¤ã
call FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
call L07B3 ; ®¦¨¤ ­¨¥ £®â®¢­®á⨠<20>ƒŒ„
ret z ; ­¥â ®è¨¡®ª
call okno3 ; "‚áâ ¢ì⥠¤¨áª¥âã"

View File

@ -814,10 +814,10 @@ LstBoxInv:
LD B,A
CALL GetPutA
PUSH DE
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
LD A,(Win2)
OUT (Page3),A
LD A,(hPages.Win2)
OUT (SLOT3),A
LD A,(IY+3)
SUB (IY+2)
SUB 3
@ -843,7 +843,7 @@ lbclr1: INC DE ; 横
ex af,af'
ld (de),a
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
LD E,(IY+2)
INC E
@ -860,10 +860,10 @@ lbclr1: INC DE ; 横
PrnLstBox:
PUSH IY
PUSH IX
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
LD A,(Win2)
OUT (Page3),A
LD A,(hPages.Win2)
OUT (SLOT3),A
PUSH IX
POP IY
LD IX,DialData
@ -937,7 +937,7 @@ PrLsBx5:PUSH AF
JR NZ,PrLsBx5
PrLsBx6:CALL PutDial
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
POP IY
RET
@ -1005,14 +1005,14 @@ LBB1: ld a,l
SUB (IX+1)
LD B,A
CALL GetPutA
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
LD A,(Win2)
OUT (Page3),A
LD A,(hPages.Win2)
OUT (SLOT3),A
LD A,"±"
LD (DE),A
POP AF
OUT (Page3),A
OUT (SLOT3),A
LD A,(IY+3)
SUB 2
LD E,A
@ -1046,14 +1046,14 @@ LBe1: POP DE
SUB (IX+1)
LD B,A
CALL GetPutA
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
LD A,(Win2)
OUT (Page3),A
LD A,(hPages.Win2)
OUT (SLOT3),A
LD A,"þ"
LD (DE),A
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
POP IY
RET

View File

@ -9,6 +9,7 @@
include './shared_includes/constants/dss_equ.inc'
include './shared_includes/constants/bios_equ.inc'
include './shared_includes/constants/sp2000.inc'
org #9200 - exe_begin.size
@ -32,22 +33,30 @@ Packed: incbin 'build/format.hrs'
Start: ld c,0 ; ã§­ âì ¢¥àá¨î „Ž‘
RST ToDSS
ld hl,0145h ; 1.69
and a
sbc hl,de
jr c,ok ; > 1.69
ld hl,-#0147 ; 1.71
add hl,de
jr c,dss_ver_ok ; >= 1.71
;
ld hl,ver_err
ld c,5Ch
.error_exit: ld c,Dss.PChars
RST ToDSS
ld bc,#2641
.loop: ld bc,DSS_Error.sys.COMMON_ERROR*256 + Dss.Exit
RST ToDSS
ret
jr .loop
ver_err: db "Invalid DSS version, DSS 1.70 or higher is required.",0Dh,0Ah,0
ver_err: db "Invalid DSS version, DSS 1.71 or higher is required.",0Dh,0Ah,0
no_mem_err: db "Error: no free memory!",0Dh,0Ah,0
ok: LD HL,#6200 ;!HARDCODE
dss_ver_ok: ; ¢ë¤¥«ï¥¬ áâà ­¨æã ¯®¤ à á¯ ª®¢ ­­ë© ª®¤
ld bc,1*256 + Dss.GetMem
RST ToDSS
jr nc,.mem_ok
;
ld hl,no_mem_err
jr Start.error_exit
;
.mem_ok: out (SLOT1),a
LD HL,#6200 ;!HARDCODE
LD BC,Dss.AppInfo.EXE_HomeDir
RST ToDSS
;

283
MAP.ASM
View File

@ -57,8 +57,7 @@ count: db 5
; <20> áâனª  ®ª­  ¯à®æ¥áá  ä®à¬ â¨à®¢ ­¨ï
Setup_Map:
xor a
Setup_Map: xor a
ld (_OS),a
ld hl,553
ld (L0BB6+1),hl
@ -68,25 +67,80 @@ Setup_Map:
ld (SecCode+1),a ; ª®¤ à §¬¥à  ᥪâ®à 
ld hl,INTERL1
ld (INTERL+1),hl ; ãáâ. ¨­â¥à«¨¢ ¤«ï < 21 ᥪâ®à 
;
;
ld hl,LABEL ; ¡ãä¥à ¨¬¥­¨ ¬¥âª¨
ld a,(hl)
or a
jr nz,.loc0
;
ld hl,.loc22 ; "NO NAME "
.loc0: ld de,LABEL1
ld b,11
.loc1: ld a,(hl)
or a
jr z,.loc2
ld (de),a
inc hl
inc de
djnz .loc1
LD A,(HL)
CP ' '+1
JR C,.no_name
;
.loop1: LD A,(HL)
AND A
jr z,.empty
CP '*'
JR Z,.no_name
CP '.'
JR Z,.no_name
CP '"'
JR Z,.no_name
CP '+'
JR Z,.no_name
CP ','
JR Z,.no_name
CP '/'
JR Z,.no_name
CP ':'
JR Z,.no_name
CP ';'
JR Z,.no_name
CP '<'
JR Z,.no_name
CP '='
JR Z,.no_name
CP '>'
JR Z,.no_name
CP '['
JR Z,.no_name
CP '\'
JR Z,.no_name
CP ']'
JR Z,.no_name
CP '|'
JR Z,.no_name
LD (DE),A
INC HL
INC DE
DJNZ .loop1
jr .loc3
.loc2: ld a," " ; § ¯®«­¨âì ®áâ â®ª "LABEL" ¯à®¡¥«®¬
ld (de),a
inc de
djnz .loc2
;
.empty: ld a,b
cp 11
jr z,.no_name
;
ex de,hl
.loop2: ld (hl)," "
inc hl
djnz .loop2
jr .loc3
;
.no_name: ld hl,.loc22
ld de,LABEL1
ld bc,11
push hl
ldir
pop hl
ld de,LABEL
ld c,11
ldir
;
;
.loc3: ld hl,(CurElem1) ; ⥪. ¯®«®¦. 㪠§ â¥«ï ä®à¬ â 
ld a,h
add a,l
@ -211,8 +265,7 @@ Setup_Map:
.loc18: db "830 kB "
.loc50: db "TR-DOS "
.loc51: db "CP/M-80"
;
.loc19: db "(Standart mode) "
.loc29: db "(Optimize sectors)"
.loc20: db "(Quick format) "
@ -349,11 +402,11 @@ SetMedia:
ld hl,3E00h
ld (Avail),hl
ld a,18 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,2880 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -363,7 +416,7 @@ SetMedia:
.loc13: ld a,0F0h ; ¡ ©â ä®à¬ â 
ld (frm4+1),a
ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (frm3+1),a
ld (FSETUP.sectorsPerCluster),a
ld hl,224 ; § ¯¨á¥© ¢ ª®à­¥
ld (frm6+1),hl
.loc12: ld hl,Avail
@ -381,11 +434,11 @@ SetMedia:
ld hl,7E00h
ld (Avail),hl
ld a,19 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,19 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3040 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -399,11 +452,11 @@ SetMedia:
ld hl,0BA00h
ld (Avail),hl
ld a,20 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,20 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3200 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -417,11 +470,11 @@ SetMedia:
ld hl,5A00h
ld (Avail),hl
ld a,20 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,20 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3280 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -435,11 +488,11 @@ SetMedia:
ld hl,0AA00h
ld (Avail),hl
ld a,20 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,20 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3320 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -455,11 +508,11 @@ SetMedia:
ld hl,0FA00h
ld (Avail),hl
ld a,21 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,21 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3360 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -473,11 +526,11 @@ SetMedia:
ld hl,0A200h
ld (Avail),hl
ld a,21 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,21 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3444 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -491,11 +544,11 @@ SetMedia:
ld hl,0F200h
ld (Avail),hl
ld a,21 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,21 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,38 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,18944 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3486 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -516,21 +569,21 @@ SetMedia:
ld hl,2400h
ld (Avail),hl
ld a,9 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,9 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld hl,1440 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (ASect+1),hl
.loc15: ld hl,6656 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld a,14 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,3 ; ᥪâ®à®¢ ­  FAT
ld (FSect+1),hl
ld a,0F9h ; ¡ ©â ä®à¬ â 
ld (frm4+1),a
ld a,2 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (frm3+1),a
ld (FSETUP.sectorsPerCluster),a
ld hl,112 ; § ¯¨á¥© ¢ ª®à­¥
ld (frm6+1),hl
jp .loc12
@ -558,9 +611,9 @@ SetMedia:
ld hl,1660 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (ASect+1),hl
.loc16: ld a,10 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,10 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld hl,36 ; à §¬¥à ¬¥¦á¥ªâ. ¯à®¡¥« 
ld (GAP3),hl
ld hl,INTERL3 ; ãáâ. ¨­â¥à«¨¢ ¤«ï 21 ᥪâ®à 
@ -825,27 +878,125 @@ SetDrive:
; << ”ã­ªæ¨ï á®§¤ ­¨ï  âਡãâ  "¬¥âª  ⮬ " ã¡à ­  ¨§ DSS >>
;
; ‘®§¤ ­¨¥ ¬¥âª¨ ¤¨áª¥âë (MS-DOS)
; (¡ ©â  âਡãâ  ­ å®¤¨âáï ¯® ᬥé. +11 ®â ­ ç «  § ¯¨á¨)
CreateLabel:
ret
ld hl,LABEL ; ¨¬ï ¬¥âª¨
ld a,(hl)
or a
ret z
call SetDisketa ; ãáâ. ⥪ã騬 ¤¨áª®¬ ¤¨áª¥âã
; á®§¤ âì ä ©«
ld hl,LABEL ; ¨¬ï ¬¥âª¨
ld a,08h ;  âਡãâ "¬¥âª  ⮬ "
ld c,0Ah
RST ToDSS
jr c,.loc1 ; ®è¨¡ª  á®§¤ ­¨ï ¬¥âª¨
;ret c
; § ªàëâì ä ©«
ld c,12h
RST ToDSS
.loc1: jp RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
; ld hl,LABEL ; ¨¬ï ¬¥âª¨
; ld a,(hl)
; or a
; ret z
; call SetDisketa ; ãáâ. ⥪ã騬 ¤¨áª®¬ ¤¨áª¥âã
; ; á®§¤ âì ä ©«
; ld hl,LABEL ; ¨¬ï ¬¥âª¨
; ld a,08h ;  âਡãâ "¬¥âª  ⮬ "
; ld c,0Ah
; RST ToDSS
; jr c,.loc1 ; ®è¨¡ª  á®§¤ ­¨ï ¬¥âª¨
; ;ret c
; ; § ªàëâì ä ©«
; ld c,12h
; RST ToDSS
; .loc1: jp RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
; ><|?*/\:"
ld hl,LABEL1
ld de,L2400 + BOOT_SECTOR.FAT.LABEL
LD BC,11 ; áç¥â稪
LDIR
RET
; ;
; LD A,(HL)
; CP ' '+1
; JR C,.no_name
; .loop1: LD A,(HL)
; AND A
; jr z,.empty
; CP '*'
; JR Z,.no_name
; CP '.'
; JR Z,.no_name
; CP '"'
; JR Z,.no_name
; CP '+'
; JR Z,.no_name
; CP ','
; JR Z,.no_name
; CP '/'
; JR Z,.no_name
; CP ':'
; JR Z,.no_name
; CP ';'
; JR Z,.no_name
; CP '<'
; JR Z,.no_name
; CP '='
; JR Z,.no_name
; CP '>'
; JR Z,.no_name
; CP '['
; JR Z,.no_name
; CP '\'
; JR Z,.no_name
; CP ']'
; JR Z,.no_name
; CP '|'
; JR Z,.no_name
; LD (DE),A
; INC HL
; INC DE
; DJNZ .loop1
; RET
; ;
; .empty: ld a,b
; cp 11
; jr z,.no_name
; ;
; ex de,hl
; .loop2: ld (hl)," "
; inc hl
; djnz .loop2
; ret
; ;
; .no_name: ld hl,Setup_Map.loc22
; ld de,L2400 + BOOT_SECTOR.FAT.LABEL
; ld bc,11
; push hl
; ldir
; pop hl
; ld de,LABEL
; ld c,11
; ldir
; ret
; ‚ë室­ë¥ §­ ç¥­¨ï:
; D - ¤¥­ì
; E - ¬¥áïæ
; IX - £®¤
; H - ç á
; L - ¬¨­ãâë
; B - ᥪ㭤ë
; C - ¤¥­ì ­¥¤¥«¨
;!TEST
CreateSerialNumber:
ld c,Dss.SysTime
rst ToDSS
;
ex de,hl
add ix,de
ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER + 2),ix
;
ld a,d
ld d,b
xor c
.loop: rra
djnz .loop
;
ld e,h
ld h,l
ld l,e
;
ld e,a
add hl,de
; ld e,l
; ld l,h
; ld h,e
ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER),hl
ret

608
RADIO.ASM

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022
Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1

View File

@ -1,4 +1,6 @@
define RELEASE 1
; ०¨¬ ª®¬¯¨«ï樨 ¨á室­¨ª 
DEFINE release 1
; ¢¥àá¨ï ¯à®£à ¬¬ë
DEFINE FF_Version '1.13.2'
major_version equ 1
minor_version equ 16