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

419
ESTEX.ASM
View File

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

View File

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

154
FMAIN.ASM
View File

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

View File

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

View File

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

View File

@ -9,6 +9,7 @@
include './shared_includes/constants/dss_equ.inc' include './shared_includes/constants/dss_equ.inc'
include './shared_includes/constants/bios_equ.inc' include './shared_includes/constants/bios_equ.inc'
include './shared_includes/constants/sp2000.inc'
org #9200 - exe_begin.size org #9200 - exe_begin.size
@ -32,22 +33,30 @@ Packed: incbin 'build/format.hrs'
Start: ld c,0 ; ã§­ âì ¢¥àá¨î „Ž‘ Start: ld c,0 ; ã§­ âì ¢¥àá¨î „Ž‘
RST ToDSS RST ToDSS
ld hl,0145h ; 1.69 ld hl,-#0147 ; 1.71
and a add hl,de
sbc hl,de jr c,dss_ver_ok ; >= 1.71
jr c,ok ; > 1.69
; ;
ld hl,ver_err ld hl,ver_err
ld c,5Ch .error_exit: ld c,Dss.PChars
RST ToDSS RST ToDSS
ld bc,#2641 .loop: ld bc,DSS_Error.sys.COMMON_ERROR*256 + Dss.Exit
RST ToDSS 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
dss_ver_ok: ; ¢ë¤¥«ï¥¬ áâà ­¨æã ¯®¤ à á¯ ª®¢ ­­ë© ª®¤
ok: LD HL,#6200 ;!HARDCODE 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 LD BC,Dss.AppInfo.EXE_HomeDir
RST ToDSS RST ToDSS
; ;

283
MAP.ASM
View File

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

508
RADIO.ASM
View File

@ -6,45 +6,44 @@
; <20>ãä¥à ¨¬¥­¨ ¬¥âª¨ ¤¨áª¥âë ; <20>ãä¥à ¨¬¥­¨ ¬¥âª¨ ¤¨áª¥âë
LabelBuff: LabelBuff: DB 11 ; Max input symbols
db 11 ; Max input symbols DB 0 ; ReadyString
db 0 ; ReadyString DB 0 ; Pos X
db 0 ; Pos X DB 0 ; Add X
db 0 ; Add X DB 0 ; Inp.Symb
db 0 ; Inp.Symb LABEL: DS 12,0 ;!TEST
LABEL: ds 12,0
cSystem:db 0 ; 01/00 - á®§¤./­¥ á®§¤. á¨áâ. ¤¨áª¥âã cSystem: DB 0 ; 01/00 - á®§¤./­¥ á®§¤. á¨áâ. ¤¨áª¥âã
Mode0: db 0 ; "Standart mode" Mode0: DB 0 ; "Standart mode"
Mode2: db 1 ; "Optimize sectors" Mode2: DB 1 ; "Optimize sectors"
Mode1: db 0 ; "Quick format" Mode1: DB 0 ; "Quick format"
CurElem0:dw 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox1-  CurElem0: DW 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox1- 
CurElem1:dw 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox2-  CurElem1: DW 0 ; ⥪. ¯®«®¦. ªãàá®à  ListBox2- 
CurILFl:db 0 ; ä« £ ªãàá®à  00-¢ëª«/01-¢ª« CurILFl: DB 0 ; ä« £ ªãàá®à  00-¢ëª«/01-¢ª«
Flag: db 0 ; ä« £ ªãàá®à  00-­¥â/01-¥áâì ;Flag: DB 0 ; ä« £ ªãàá®à  00-­¥â/01-¥áâì
Timer: db 1 ; â ©¬¥à Timer: DB 1 ; â ©¬¥à
CursPos:dw 0 ; ¯®§¨æ¨ï ªãàá®à  CursPos: DW 0 ; ¯®§¨æ¨ï ªãàá®à 
_OS: db 0 ; 00/01/02 ⨯ Ž‘ (ms-dos/tr-dos/cpm) _OS: DB 0 ; 00/01/02 ⨯ Ž‘ (ms-dos/tr-dos/cpm)
; Ž¯æ¨¨ ¢ë¡®à  ä®à¬ â  FDD ; Ž¯æ¨¨ ¢ë¡®à  ä®à¬ â  FDD
; ¤¨áª "A" ; ¤¨áª "A"
DriveA: DriveA:
SetDriveA0:db 1 ; 1.44Mb 3.5" SetDriveA0: DB 1 ; 1.44Mb 3.5"
SetDriveA1:db 0 ; 720kB 5.25" SetDriveA1: DB 0 ; 720kB 5.25"
SetDriveA2:db 0 ; None (ï祩ª  ­¥ ®âá«¥¦¨¢ ¥âáï) SetDriveA2: DB 0 ; None (ï祩ª  ­¥ ®âá«¥¦¨¢ ¥âáï)
; ¤¨áª "B" ; ¤¨áª "B"
DriveB: DriveB:
SetDriveB0:db 0 ; 1.44Mb 3.5" SetDriveB0: DB 0 ; 1.44Mb 3.5"
SetDriveB1:db 1 ; 720kB 5.25" SetDriveB1: DB 1 ; 720kB 5.25"
SetDriveB2:db 0 ; None SetDriveB2: DB 0 ; None
@ -86,13 +85,13 @@ PInpLine:
LD (IY+3),A ;+3 Yo LD (IY+3),A ;+3 Yo
CALL GetPutA CALL GetPutA
EX DE,HL EX DE,HL
ld a,(ColDialWn) LD A,(ColDialWn)
LD C,A LD C,A
LD A,(DE) LD A,(DE)
PInpLp1: INC DE PInpLp1: INC DE
CP '~' CP '~'
JR NZ,PInpN0 JR NZ,PInpN0
ld c,ColDhotkey LD C,ColDhotkey
;LD C,A ;LD C,A
LD A,(DE) LD A,(DE)
INC DE INC DE
@ -107,7 +106,7 @@ PInpLp1:INC DE
INC HL INC HL
INC DE INC DE
INC (IX+4) INC (IX+4)
ld a,(ColDialWn) LD A,(ColDialWn)
LD C,A LD C,A
LD A,(DE) LD A,(DE)
INC DE INC DE
@ -151,7 +150,7 @@ PInpN0: LD (HL),A
INC DE INC DE
PUSH HL PUSH HL
next1: LD HL,0 next1: LD HL,0
ld c,ColInpLine ; 梥â áâப¨ ¢¢®¤  LD C,ColInpLine ; 梥â áâப¨ ¢¢®¤ 
;LD C,A ;LD C,A
PInpLp2: LD A,(DE) PInpLp2: LD A,(DE)
INC DE INC DE
@ -231,8 +230,8 @@ PClRadioB:
LD A,"Ú" LD A,"Ú"
LD (DE),A LD (DE),A
INC DE INC DE
ld a,ColLstBxFr ; 梥â à ¬ª¨ LD A,ColLstBxFr ; 梥â à ¬ª¨
ld (de),a LD (DE),A
INC DE INC DE
LD A," " LD A," "
LD (DE),A LD (DE),A
@ -260,15 +259,15 @@ PClRadioB:
clrd1: LD A,"Ä" clrd1: LD A,"Ä"
LD (DE),A LD (DE),A
INC DE INC DE
ld a,ColLstBxFr ; LD A,ColLstBxFr ;
ld (de),a LD (DE),A
INC DE INC DE
DJNZ clrd1 DJNZ clrd1
ClRadN1: LD A,"¿" ClRadN1: LD A,"¿"
LD (DE),A LD (DE),A
inc de INC DE
ld a,ColLstBxFr ; LD A,ColLstBxFr ;
ld (de),a LD (DE),A
INC (IX+5) INC (IX+5)
LD BC,6 ;Next element claster LD BC,6 ;Next element claster
ADD IY,BC ADD IY,BC
@ -280,16 +279,16 @@ ClRadN1:LD A,"
LD (HL),"³" LD (HL),"³"
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
LD C,(IX+6) LD C,(IX+6)
LD B,0 LD B,0
ADD HL,BC ADD HL,BC
ADD HL,BC ADD HL,BC
LD (HL),"³" LD (HL),"³"
inc hl INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC (IX+5) INC (IX+5)
EX DE,HL EX DE,HL
; ;
@ -302,7 +301,7 @@ ClRadLp:LD C,(IX+4) ;pos element
LD (HL),"³" LD (HL),"³"
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
INC HL INC HL
INC HL INC HL
@ -323,13 +322,13 @@ ClRadLp:LD C,(IX+4) ;pos element
INC HL INC HL
INC B INC B
; ;
ld a,(ColDialWn) ;Put name element LD A,(ColDialWn) ;Put name element
LD C,A LD C,A
LD A,(DE) LD A,(DE)
ClRadL1: INC DE ClRadL1: INC DE
CP '~' CP '~'
JR NZ,ClRadN0 JR NZ,ClRadN0
ld c,ColDhotkey LD C,ColDhotkey
;LD C,A ;LD C,A
LD A,(DE) LD A,(DE)
INC DE INC DE
@ -343,7 +342,7 @@ ClRadL1:INC DE
LD (HL),A LD (HL),A
INC HL INC HL
INC DE INC DE
ld a,(ColDialWn) LD A,(ColDialWn)
LD C,A LD C,A
INC B INC B
LD A,(DE) LD A,(DE)
@ -364,9 +363,9 @@ ClRadN0:LD (HL),A
ADD HL,BC ADD HL,BC
ADD HL,BC ADD HL,BC
LD (HL),"³" LD (HL),"³"
inc hl INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
LD A,(IX+5) ;Current Y pos LD A,(IX+5) ;Current Y pos
ADD A,(IX+1) ;from begin screen ADD A,(IX+1) ;from begin screen
LD (IY+0),A LD (IY+0),A
@ -409,20 +408,20 @@ ClRadN0:LD (HL),A
LD (HL),"À" LD (HL),"À"
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
LD B,(IX+6) LD B,(IX+6)
clrd2: LD A,"Ä" clrd2: LD A,"Ä"
LD (HL),A LD (HL),A
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
DJNZ clrd2 DJNZ clrd2
LD (HL),"Ù" LD (HL),"Ù"
inc hl INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
EX DE,HL EX DE,HL
PUSH IY PUSH IY
EXX EXX
@ -486,8 +485,8 @@ PClCheckB:
LD A,"Ú" LD A,"Ú"
LD (DE),A LD (DE),A
INC DE INC DE
ld a,ColLstBxFr ; LD A,ColLstBxFr ;
ld (de),a LD (DE),A
INC DE INC DE
LD A," " LD A," "
LD (DE),A LD (DE),A
@ -515,15 +514,15 @@ PClCheckB:
clch1: LD A,"Ä" clch1: LD A,"Ä"
LD (DE),A LD (DE),A
INC DE INC DE
ld a,ColLstBxFr ; LD A,ColLstBxFr ;
ld (de),a LD (DE),A
INC DE INC DE
DJNZ clch1 DJNZ clch1
ClChkN1: LD A,"¿" ClChkN1: LD A,"¿"
LD (DE),A LD (DE),A
inc de INC DE
ld a,ColLstBxFr ; LD A,ColLstBxFr ;
ld (de),a LD (DE),A
INC (IX+5) INC (IX+5)
LD BC,6 ;Next element claster LD BC,6 ;Next element claster
ADD IY,BC ADD IY,BC
@ -535,16 +534,16 @@ ClChkN1:LD A,"
LD (HL),"³" LD (HL),"³"
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
LD C,(IX+6) LD C,(IX+6)
LD B,0 LD B,0
ADD HL,BC ADD HL,BC
ADD HL,BC ADD HL,BC
LD (HL),"³" LD (HL),"³"
inc hl INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC (IX+5) INC (IX+5)
EX DE,HL EX DE,HL
; Next element ; Next element
@ -556,7 +555,7 @@ ClChkLp:LD C,(IX+4) ;pos element
LD (HL),"³" LD (HL),"³"
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
INC HL INC HL
INC HL INC HL
@ -577,13 +576,13 @@ ClChkLp:LD C,(IX+4) ;pos element
INC HL INC HL
INC B INC B
; ;
ld a,(ColDialWn) ;Put name element LD A,(ColDialWn) ;Put name element
LD C,A LD C,A
LD A,(DE) LD A,(DE)
ClChkL1: INC DE ClChkL1: INC DE
CP '~' CP '~'
JR NZ,ClChkN0 JR NZ,ClChkN0
ld c,ColDhotkey LD C,ColDhotkey
;LD C,A ;LD C,A
LD A,(DE) LD A,(DE)
INC DE INC DE
@ -597,7 +596,7 @@ ClChkL1:INC DE
LD (HL),A LD (HL),A
INC HL INC HL
INC DE INC DE
ld a,(ColDialWn) LD A,(ColDialWn)
LD C,A LD C,A
INC B INC B
LD A,(DE) LD A,(DE)
@ -618,9 +617,9 @@ ClChkN0:LD (HL),A
ADD HL,BC ADD HL,BC
ADD HL,BC ADD HL,BC
LD (HL),"³" LD (HL),"³"
inc hl INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
; ;
LD A,(IX+5) ;Current Y pos LD A,(IX+5) ;Current Y pos
ADD A,(IX+1) ;from begin screen ADD A,(IX+1) ;from begin screen
@ -664,20 +663,20 @@ ClChkN0:LD (HL),A
LD (HL),"À" LD (HL),"À"
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
LD B,(IX+6) LD B,(IX+6)
clch2: LD A,"Ä" clch2: LD A,"Ä"
LD (HL),A LD (HL),A
INC HL INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
INC HL INC HL
DJNZ clch2 DJNZ clch2
LD (HL),"Ù" LD (HL),"Ù"
inc hl INC HL
;ld a,(ColLstBxFr) ; ;ld a,(ColLstBxFr) ;
ld (hl),ColLstBxFr LD (HL),ColLstBxFr
EX DE,HL EX DE,HL
PUSH IY PUSH IY
EXX EXX
@ -697,90 +696,90 @@ clch2: LD A,"
; Input: HL-label ; Input: HL-label
; Format mouse table: None ; Format mouse table: None
; ;
PFrame: ld c,(hl) ; X pos PFrame: LD C,(HL) ; X pos
inc hl INC HL
ld b,(hl) ; Y pos LD B,(HL) ; Y pos
inc hl ; X len INC HL ; X len
inc hl ; Y len INC HL ; Y len
ld a,(hl) LD A,(HL)
push af ; á®åà. Y len PUSH AF ; á®åà. Y len
push bc PUSH BC
call GetPutA CALL GetPutA
ld a,"Ú" LD A,"Ú"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
inc de INC DE
dec hl DEC HL
ld b,(hl) ; X len LD B,(HL) ; X len
.loop1: ld a,"Ä" .loop1: LD A,"Ä"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
inc de INC DE
djnz .loop1 DJNZ .loop1
ld a,"¿" LD A,"¿"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
pop bc POP BC
.loop2: inc b .loop2: INC B
push bc PUSH BC
call GetPutA CALL GetPutA
ex de,hl EX DE,HL
ld (hl),"³" LD (HL),"³"
inc hl INC HL
ld (hl),ColorFrame LD (HL),ColorFrame
inc hl INC HL
ex de,hl EX DE,HL
ld b,(hl) ; X len LD B,(HL) ; X len
.loop3: ld a," " .loop3: LD A," "
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame ; 梥⠢­ãâਠä३¬  LD A,ColorFrame ; 梥⠢­ãâਠä३¬ 
ld (de),a LD (DE),A
inc de INC DE
djnz .loop3 DJNZ .loop3
ld a,"³" LD A,"³"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
inc de INC DE
pop bc POP BC
inc hl INC HL
dec (hl) DEC (HL)
dec hl DEC HL
jr nz,.loop2 JR NZ,.loop2
inc b INC B
call GetPutA CALL GetPutA
ld a,"À" LD A,"À"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
inc de INC DE
ld b,(hl) ; X len LD B,(HL) ; X len
inc hl INC HL
pop af POP AF
ld (hl),a ; ¢®ááâ. Y len LD (HL),A ; ¢®ááâ. Y len
.loop4: ld a,"Ä" .loop4: LD A,"Ä"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
inc de INC DE
djnz .loop4 DJNZ .loop4
ld a,"Ù" LD A,"Ù"
ld (de),a LD (DE),A
inc de INC DE
ld a,ColorFrame LD A,ColorFrame
ld (de),a LD (DE),A
inc hl INC HL
ret RET
@ -893,7 +892,7 @@ SetInLn:CALL MoveObj ;Select Input line
EI EI
InLnExt: LD HL,what InLnExt: LD HL,what
LD (HL),evNothing LD (HL),evNothing
jp GetFire JP GetFire
; Work select input line ; Work select input line
@ -1029,7 +1028,7 @@ EIcombK:BIT 7,(IX+1)
JP SetInLn ; ¢ë¤¥«¨âì ¯à¥¤. ®¡ê¥ªâ JP SetInLn ; ¢ë¤¥«¨âì ¯à¥¤. ®¡ê¥ªâ
; ;
EIcombn: PUSH IY EIcombn: PUSH IY
ld c,(hl) ; what+1 LD C,(HL) ; what+1
INC HL INC HL
LD A,(HL) ; what+2 LD A,(HL) ; what+2
LD L,(IX+9) ; Address buffer LD L,(IX+9) ; Address buffer
@ -1038,8 +1037,8 @@ EIcombn:PUSH IY
PUSH DE PUSH DE
PUSH HL PUSH HL
POP IY POP IY
bit 7,c ; ªãàá®à­ë¥ ¨«¨ shift+... ? BIT 7,C ; ªãàá®à­ë¥ ¨«¨ shift+... ?
jr nz,eicmb1 ; Shift+... JR NZ,eicmb1 ; Shift+...
CP 54h CP 54h
JR Z,ILleft ; ªãàá®à ¢«¥¢® JR Z,ILleft ; ªãàá®à ¢«¥¢®
CP 56h CP 56h
@ -1050,11 +1049,11 @@ EIcombn:PUSH IY
JP Z,ILHome ; ¢ ­ ç «® áâப¨ JP Z,ILHome ; ¢ ­ ç «® áâப¨
CP 51h CP 51h
JP Z,ILEnd ; ¢ ª®­¥æ áâப¨ JP Z,ILEnd ; ¢ ª®­¥æ áâப¨
jr eicmb2 JR eicmb2
eicmb1: cp " " eicmb1: CP " "
jr c,eicmb2 JR C,eicmb2
cp "~"+1 CP "~"+1
jp c,ILwrk2 ; ­  ¢¢®¤ ᨬ¢®«®¢ JP C,ILwrk2 ; ­  ¢¢®¤ ᨬ¢®«®¢
eicmb2: POP DE eicmb2: POP DE
POP IY POP IY
RET RET
@ -1231,15 +1230,11 @@ PrnInLn:LD A,(CurILFl)
NEG NEG
LD L,A LD L,A
LD E,H LD E,H
;LD A,E
;CP 80
;JR NC,prne
;LD A,D
;CP 31
;JR NC,prne
LD (prnadd+1),HL LD (prnadd+1),HL
LD C,BIOS.LP_SET_PLACE ; ãáâ. ¯®§¨æ¨î ªãàá®à  ;LD C,BIOS.LP_SET_PLACE ; ãáâ. ¯®§¨æ¨î ªãàá®à 
RST ToBIOS ;RST ToBIOS
LD C,Dss.Locate
RST ToDSS
LD L,(IX+9) ;Address buffer LD L,(IX+9) ;Address buffer
LD H,(IX+0Ah) LD H,(IX+0Ah)
LD A,(IY+3) LD A,(IY+3)
@ -1332,82 +1327,111 @@ prne: LD A,(IY+2)
SUB (IX+6) SUB (IX+6)
LD C,A LD C,A
LD B,0 LD B,0
IN A,(Page3) IN A,(SLOT3)
PUSH AF PUSH AF
LD A,(Win2) LD A,(hPages.Win2)
OUT (Page3),A OUT (SLOT3),A
LDI LDI
INC DE INC DE
JP PE,$-3 JP PE,$-3
POP AF POP AF
OUT (Page3),A OUT (SLOT3),A
RET RET
;;;;;;;;;;;;;;;;
;Šãàá®à ®¡ê¥ªâ  InputLine
PrnILCr:LD A,(Timer) ;¯ ã§  ¬¨£ ­¨ï
DEC A
CALL Z,PutILCr
LD (Timer),A
RET
PutILCr:LD A,(Flag)
CPL
LD (Flag),A
PILCurs: LD DE,(CursPos) ; ãáâ. ªãàá®à PILCurs: LD DE,(CursPos) ; ãáâ. ªãàá®à
LD (CrPs+1),DE LD (ResILCr.CrPs),DE
BIT 7,E BIT 7,E
JR NZ,cre JR NZ,.cre
;LD A,E ;
;CP 80 LD C,Dss.Locate
;JR NC,cre RST ToDSS
;LD A,D ;
;CP 31 LD BC,Dss.K_SETUP.ShowCursor
;JR NC,cre RST ToDSS
LD C,0B4h ; ¯®«ãç¨âì ᨬ¢®« ;
SUB A .cre: LD A,1
RST ToBIOS
LD A,(Flag)
OR A
LD B,1Bh
JR Z,NoILC
LD B,5Bh ; ªãàá®à ç¥àâ®çª®©
NoILC: LD C,0B5h ; ᨬ¢®« ­  íªà ­
SUB A
RST ToBIOS
cre: LD A,1
LD (CurILFl),A LD (CurILFl),A
LD A,12 LD A,12 ;!FIXIT ­ ¤® «¨?
RET RET
;;;;;;;;;;;;;;;;
; ‘¡à®á¨âì ªãàá®à ; ‘¡à®á¨âì ªãàá®à
ResILCr: LD A,(CurILFl) ResILCr: LD A,(CurILFl)
OR A OR A
RET Z RET Z
LD A,0FFh ;
LD (Flag),A .CrPs+1: LD DE,0
INC A
LD (CurILFl),A
LD A,12
LD (Timer),A
CrPs: LD DE,0
BIT 7,E BIT 7,E
RET NZ RET NZ
;LD A,E ;
;CP 80 LD BC,Dss.K_SETUP.HideCursor
;RET NC RST ToDSS
;LD A,D XOR A
;CP 31 LD (CurILFl),A
;RET NC
LD C,0B4h ; ¯®«ãç¨âì ᨬ¢®«
SUB A
RST ToBIOS
LD BC,1BB5h ; ᨬ¢®« ­  íªà ­
SUB A
RST ToBIOS
RET RET
;;;;;;;;;;;;;;;;
;!FIXIT CURSOR ¯¥à¥¤¥« âì ªãàá®à ­  ¤®á ¨ ã¡à âì ¯¥à¥å¢ âì ¯à¥à뢠­¨©
;Šãàá®à ®¡ê¥ªâ  InputLine
; PrnILCr: LD A,(Timer) ;¯ ã§  ¬¨£ ­¨ï
; DEC A
; CALL Z,.PutILCr
; LD (Timer),A
; RET
; ;
; .PutILCr: LD A,(Flag)
; CPL
; LD (Flag),A
; PILCurs: LD DE,(CursPos) ; ãáâ. ªãàá®à
; LD (ResILCr.CrPs),DE
; BIT 7,E
; JR NZ,.cre
; ;
; LD C,0B4h ; ¯®«ãç¨âì ᨬ¢®«
; SUB A
; RST ToBIOS
; LD A,(Flag)
; OR A
; LD B,1Bh
; JR Z,.NoILC
; LD B,5Bh ; ªãàá®à ç¥àâ®çª®©
; .NoILC: LD C,0B5h ; ᨬ¢®« ­  íªà ­
; SUB A
; RST ToBIOS
; .cre: LD A,1
; LD (CurILFl),A
; LD A,12
; RET
;;;;;;;;;;;;;;;;
; ‘¡à®á¨âì ªãàá®à
; ResILCr: LD A,(CurILFl)
; OR A
; RET Z
; LD A,#FF
; LD (Flag),A
; INC A
; LD (CurILFl),A
; LD A,12
; LD (Timer),A
; .CrPs+1: LD DE,0
; BIT 7,E
; RET NZ
; ;
; LD C,#B4 ; ¯®«ãç¨âì ᨬ¢®«
; SUB A
; RST ToBIOS
; LD BC,1BB5h ; ᨬ¢®« ­  íªà ­
; SUB A
; RST ToBIOS
; RET
;;;;;;;
; ;
InpLineI: InpLineI:
LD E,(IX+2) ;Xo LD E,(IX+2) ;Xo
@ -1435,7 +1459,7 @@ ClastI: LD E,(IX+2) ;Xo
SUB E SUB E
DEC A DEC A
LD C,A ;Len X LD C,A ;Len X
jp SetClasInv JP SetClasInv
@ -1447,10 +1471,10 @@ ClastI: LD E,(IX+2) ;Xo
SetClasInv: SetClasInv:
PUSH IX PUSH IX
LD IX,DialData LD IX,DialData
IN A,(Page3) IN A,(SLOT3)
PUSH AF ;á®åà.page4 PUSH AF ;á®åà.page4
LD A,(Win2) LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à OUT (SLOT3),A ;¢ª«.¡ãä¥à
PUSH HL PUSH HL
LD L,C ;Len X LD L,C ;Len X
LD H,1 ;len Y LD H,1 ;len Y
@ -1466,9 +1490,9 @@ SetClasInv:
EX DE,HL EX DE,HL
LD (RClIbuf+2),HL LD (RClIbuf+2),HL
LD B,E LD B,E
ld e,ColDialInv LD E,ColDialInv
;LD E,A ;LD E,A
ld d,ColDhotkey LD D,ColDhotkey
;LD D,A ;LD D,A
SetDin2: INC HL SetDin2: INC HL
LD A,(HL) LD A,(HL)
@ -1477,8 +1501,8 @@ SetDin2:INC HL
JR Z,.loc2 ;$+5 JR Z,.loc2 ;$+5
LD A,(HL) LD A,(HL)
;XOR E ;XOR E
and 0xF0 ; AND 0xF0 ;
or e ; OR E ;
LD (HL),A LD (HL),A
.loc2: INC HL .loc2: INC HL
DJNZ SetDin2 DJNZ SetDin2
@ -1488,7 +1512,7 @@ SetDin2:INC HL
CALL PutDialLn CALL PutDialLn
POP HL POP HL
POP AF POP AF
OUT (Page3),A OUT (SLOT3),A
POP IX POP IX
LD E,(IX+2) ;Xo pos element LD E,(IX+2) ;Xo pos element
INC E INC E
@ -1775,7 +1799,7 @@ ECnext: LD A,0
CALL NZ,ChangeB CALL NZ,ChangeB
EClexit: LD HL,what ;Event claster exit EClexit: LD HL,what ;Event claster exit
LD (HL),evNothing LD (HL),evNothing
jp GetFire JP GetFire
@ -1813,10 +1837,10 @@ ChangL1:INC HL ;Begin elements claster
INC HL INC HL
INC HL INC HL
POP HL ;Reset begin elem table POP HL ;Reset begin elem table
IN A,(Page3) IN A,(SLOT3)
PUSH AF PUSH AF
LD A,(Win2) LD A,(hPages.Win2)
OUT (Page3),A OUT (SLOT3),A
ChangL2: LD D,(HL) ;Ypos ChangL2: LD D,(HL) ;Ypos
INC HL INC HL
INC HL INC HL
@ -1876,14 +1900,14 @@ cl1: BIT 7,(HL)
CALL PILCurs ; Set cursor CALL PILCurs ; Set cursor
EI EI
POP AF POP AF
OUT (Page3),A OUT (SLOT3),A
RET RET
;Change radio button ([x]) ;Change radio button ([x])
ChangeR:IN A,(Page3) ChangeR: IN A,(SLOT3)
PUSH AF PUSH AF
LD A,(Win2) LD A,(hPages.Win2)
OUT (Page3),A OUT (SLOT3),A
LD D,(HL) ;Ypos LD D,(HL) ;Ypos
INC HL INC HL
INC HL INC HL
@ -1941,6 +1965,6 @@ cl2: CALL ResILCr ;
CALL PILCurs ; ãáâ. ªãàá®à CALL PILCurs ; ãáâ. ªãàá®à
EI EI
POP AF POP AF
OUT (Page3),A OUT (SLOT3),A
RET RET

@ -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