оптимизируем

This commit is contained in:
Tolik 2025-05-02 04:07:57 +10:00
parent a2b7e9b470
commit 6d775da44b
9 changed files with 248 additions and 243 deletions

View File

@ -296,7 +296,7 @@ PutDial: PUSH IX
CALL GetMousInfo
EXX
DI
kk2: LD A,(Win2) ;Page buffer
kk2: LD A,(hPages.Win2) ;Page buffer
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE ; ¨§ ¡ãä¥à  ¢ ⥪áâ. ®ª­®
@ -310,8 +310,7 @@ kk2: LD A,(Win2) ;Page buffer
; Close Dialog window and restore box place
ClsDial:
CALL ResILCr ; á¡à®á¨âì ªãàá®à
ClsDial: CALL ResILCr ; á¡à®á¨âì ªãàá®à
LD IX,DialData
LD A,(IX+2) ;with shadow
ADD A,2
@ -326,7 +325,7 @@ ClsDial:
EXX
DI
LD IX,WinBoxBuff ;Address Box buffers
kk3: LD A,(Win2) ;Page buffer
kk3: LD A,(hPages.Win2) ;Page buffer
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE ; ¨§ ¡ãä¥à  ¢ ⥪áâ. ®ª­®
@ -349,7 +348,7 @@ PutDialWn:
LD IX,DialData
IN A,(Page3)
PUSH AF
kk4: LD A,(Win2) ;Page buffer
kk4: LD A,(hPages.Win2) ;Page buffer
OUT (Page3),A
LD A,(HL) ;X position
LD (IX+0),A ;Xpos
@ -829,7 +828,7 @@ BTexit: LD HL,what
; <20> ¦ âì/®â¦ âì ¡ãâ®­
PushBut: IN A,(Page3)
PUSH AF
kk5: LD A,(Win2)
kk5: LD A,(hPages.Win2)
OUT (Page3),A
PUSH IX
LD E,(IX+2) ;Xo
@ -1104,7 +1103,7 @@ SetDialInv:
LD IX,DialData
IN A,(Page3)
PUSH AF ;á®åà.page4
kk6: LD A,(Win2)
kk6: LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
LD L,C
LD H,1
@ -1154,7 +1153,7 @@ ResDialInv:
PUSH IX
IN A,(Page3)
PUSH AF ;á®åà.page4
kk7: LD A,(Win2)
kk7: LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
LD HL,(RDlIbuf+2)
LD A,(RDlIlen+1)
@ -1201,7 +1200,7 @@ ResClasInv:
PUSH IX
IN A,(Page3)
PUSH AF ;á®åà.page4
kk8: LD A,(Win2)
kk8: LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
PUSH HL
LD HL,(RClIbuf+2)
@ -1270,7 +1269,7 @@ pdln: LD A,E
SUB E
LD L,A
DI
kk9: LD A,(Win2)
kk9: LD A,(hPages.Win2)
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE
@ -1317,7 +1316,6 @@ ColLstBxHI: EQU 1Eh ; 梥
ColScrlBar: EQU 0Fh ; 梥â áªà®««-¡ à 
ColInpLine: EQU 0Eh ; 梥â । ªâ. ¯®«ï ¬¥âª¨ ¤¨áª¥âë
ColDialWn: DB 17h ; 梥⠮ª­ 
ColDialInv: EQU 0Fh ; color dialog window invert
ColDialInv1: EQU 07h ; color dialog window invert
@ -1326,6 +1324,7 @@ ColFormNumber: EQU 3Eh ; 梥
ColorFrame: EQU ColFormText ; 梥â à ¬ª¨ ®¡ê¥ªâ  Frame
ColDialWn: DB 17h ; 梥⠮ª­ 
FramDSl: DB "ɻȼͺºº" ; à ¬ª  ®ª­ 
@ -1345,7 +1344,7 @@ SavDial: PUSH IX
EXX
DI
LD IX,WinBoxBuff ;Address Box buffers
kk1: LD A,(Win2) ;Page buffer
kk1: LD A,(hPages.Win2) ;Page buffer
LD B,A
XOR A
LD C,BIOS.WIN_COPY ; ª®¯¨à. ¨§ ®ª­  ¢ ¡ãä¥à

View File

@ -37,7 +37,7 @@ CopySysFiles: xor a
; ¯à®ç¨â âì ä ©«
in a,(Page3)
push af
ld a,(SBuff0)
ld a,(hPages.SBuff0)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
ld a,(hFile1)
call ReadFile
@ -91,7 +91,7 @@ tinRead: ld (Number2),ix ;
; ¯à®ç¨â âì ä ©«
in a,(Page3)
push af
ld a,(SBuff1)
ld a,(hPages.SBuff1)
out (Page3),a ; ¯®¤ª«. 1-î áâà ­¨æã
ld a,(hFile2)
call ReadFile
@ -101,7 +101,7 @@ tinRead: ld (Number2),ix ;
jr z,endRead ; ¯à®ç¨â ­ ¢¥áì ä ©«
; ç¨â ¥¬ ®áâ â®ª ä ©« 
ost: ld de,0
ld a,(SBuff2)
ld a,(hPages.SBuff2)
out (Page3),a ; ¯®¤ª«. 2-î áâà ­¨æã
ld hl,WinBoxBuff ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld a,(hFile2)
@ -154,7 +154,7 @@ WriteSysFiles: ld a,(sFlag)
; § ¯¨á âì ä ©«
in a,(Page3)
push af
ld a,(SBuff0)
ld a,(hPages.SBuff0)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
ld de,(Number1) ; ç¨á«® § ¯¨á. ¡ ©â
ld a,(hFile1) ; åí­¤«
@ -177,7 +177,7 @@ WriteSysFiles: ld a,(sFlag)
; § ¯¨á âì ä ©«
in a,(Page3)
push af
ld a,(SBuff1)
ld a,(hPages.SBuff1)
out (Page3),a ; ¯®¤ª«. 1-î áâà ­¨æã
ld de,(Number2) ; à §¬¥à "system.dos"
ld hl,4000h ; 1-­  áâà ­¨æ 
@ -191,7 +191,7 @@ WriteSysFiles: ld a,(sFlag)
call WriteFile
pop de
jr c,err1 ; ®è¨¡ª  § ¯¨á¨ ä ©« 
ld a,(SBuff2)
ld a,(hPages.SBuff2)
out (Page3),a ; ¯®¤ª«. 2-î áâà ­¨æã
;
tinFile: ld a,(hFile2) ; åí­¤«
@ -323,7 +323,7 @@ RootDir: db '\',0 ;
;
CurPath:
CurDisk: db 0,':\' ; á®åà. ⥪. ¤¨áª
CurDir: ds 256 ; á®åà. ⥪ã騩 ¯ãâì (ª â «®£)
;
TmpColor: db 0 ; ¢à¥¬. á®åà. æ¢¥â  ®ª­ 
@ -331,7 +331,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 ; ¤¥áªà¨¯â®à ä ©« 
@ -570,7 +569,7 @@ CopyBootTRD: xor a
; ¯à®ç¨â âì ä ©«
in a,(Page3)
push af
ld a,(TRBoot)
ld a,(hPages.TRBoot)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
; ç¨â ¥¬ § £®«®¢®ª ¡ãâ 
ld hl,NameBt ; ¡ãä¥à ¯®¤ ¤ ­­ë¥

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

118
FMAIN.ASM
View File

@ -29,7 +29,7 @@ WinBoxBuff equ 0xC000 ;
db 'EX' ; exe ID
db 'E' ; exe ⨯
db 0 ; exe ¢¥àá¨ï
db 1 ; exe ¢¥àá¨ï
dw 512 ; ¬«. ᬥé. ª®¤ 
dw 0 ; áâ. ᬥé. ª®¤ 
dw 0 ; end-beg, ¯¥à¢¨ç­ë© § £àã§ç¨ª
@ -49,17 +49,17 @@ 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)
ld a,(hPages.BuffSys2)
out (Page3),a
; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
ld bc,Dss.ScanKey*256 + Dss.K_CLEAR
@ -96,22 +96,6 @@ 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> ç «® ¯à®£à ¬¬ë =========================[]
@ -132,47 +116,60 @@ Begin: ;
RST ToDSS
continue: call ReadInit ; ç⥭¨¥ "fformat.ini" ¨ ­ áâனª 
call CopyBootTRD ; ᪮¯¨à. ¡ãâ ¨§ "boot.$b" (¥á«¨ ¥áâì)
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 "
;
;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+1: 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>ãä¥à § £®«®¢ª  ¢ë¢®¤. ®ª­ 
@ -182,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-2025 "
;
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
;[]==============================================================[]
;[]==============================================================[]
; <20>ãä¥à á¨á⥬­®© ®¡« á⨠¤¨áª¥âë
L2400:
L2400 equ ES_BPB+512*4 ;!HARDCODE 4 - bootloader size
;[]==============================================================[]

View File

@ -96,6 +96,7 @@ FFORM1: call ClearMap ;
ld a,(_OS)
or a
jp nz,okno1 ; ¯à¨ tr-dos, cp/m-80
;
ld a,(cSystem) ; ä« £ ª®¯¨à. á¨á⥬­ëå ä ©«®¢
or a
call nz,WriteSysFiles ; § ¯¨áì á¨áâ. ä ©«®¢ ­  ¤¨áª¥âã
@ -354,7 +355,9 @@ 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,6 +375,8 @@ _msdos: ld a,(media5) ;
add hl,de
ex de,hl
ldir
;
; bpb boot loader
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a
jr z,.loc2
@ -381,12 +386,13 @@ _msdos: ld a,(media5) ;
ld bc,1536 ; 512*3 ᥪâ. = à §¬¥à § £àã§ç¨ª 
ldir
; ᪮à४â. BPB ¢ ¡ãä¥à¥
ld a,(media5)
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
@ -411,6 +417,13 @@ L08F6: call L0906 ;
ld (sect),a
loc03: cp 18+1 ; § ¯à¥¤. ᥪâ®à ?
jr nz,L08F6
; § ¯¨áì § £àã§ç¨ª  ç¥à¥§ sys
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a
ret z
;
;
ret
; ‡ ¯¨áì á¨áâ. ®¡« á⨠TR-DOS.
@ -506,7 +519,7 @@ _trdos: xor a ;
copy1: exx
in a,(Page1)
ex af,af'
ld a,(TRBoot)
ld a,(hPages.TRBoot)
out (Page1),a ; ¯®¤ª«. ¡ãä¥à
ld hl,4000h ; ­ ç «® Page1
ld de,L2400+1000h
@ -575,7 +588,7 @@ A0875: push de
; ‡ ¯¨áì ¤®à®¦ª¨
L091B: in a,(Page3)
push af
ld a,(BuffTrk)
ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨
ld hl,L4000 ; ­ ç «® ¤ ­­ëå
ld (L0AC8),hl
@ -728,7 +741,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 +752,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 +770,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 +821,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
@ -923,7 +936,7 @@ GAP3 dw 108 ;
; <20>®¤£®â®¢¨âì § £®«®¢ª¨ ᥪâ®à®¢ ¤®à®¦ª¨ (®¤­®© áâ®à®­ë)
L0BAA: in a,(Page3)
push af
ld a,(BuffTrk)
ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
xor a
ld (L0BA9),a ; ®¡­ã«¨âì áç¥â稪 ᥪâ®à®¢
@ -978,7 +991,7 @@ loc05: cp 18 ;
; <20>ãä¥à: 0xC000..0xFFFF
L0B21: in a,(Page3)
push af
ld a,(BuffTrk)
ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
call CLEAR ; § ¯®«­¨âì ¡ãä¥à ª®¤®¬ 0x4E
ld hl,L4000 ; ­ ç «® ¡ãä¥à  ¤ ­­ëå ¤®à®¦ª¨
@ -1090,7 +1103,7 @@ L09A8: ld de,L2400 ;
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
@ -1118,7 +1131,7 @@ frm1: ld a,18 ;
ld (loc05+1),a
ld (loc08+1),a
SSect: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (media6),hl ;;
ld (MS_Boot.media6),hl
inc a ; § ¯à¥¤. ᥪâ®à
ld (loc02+1),a
ld (loc03+1),a
@ -1126,17 +1139,17 @@ SSect: ld hl,18 ; ᥪ
frm2: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë
ld (LastSect),a
frm3: ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (media1),a
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
@ -1254,7 +1267,7 @@ L0BFF: ld a,(density)
call InitElapsedTime ; á®åà. ¨ á¡à®á¨âì ¢à¥¬ï
call L07AF ; ®¦¨¤ ­¨¥ £®â®¢­®á⨠­£¬¤
; 横« ä®à¬ â. ¤®à®¦¥ª
L0C14: call L0BDA ; ä®à¬ â¨à®¢ ­¨¥
L0C14: call FORMAT_TRK ; ä®à¬ â¨à®¢ ­¨¥
ret c ; ä®à¬ â. ¯à¥à¢ ­®
ret nz ; ¥áâì ®è¨¡ª¨ ç⥭¨ï
; ­¥â ®è¨¡®ª
@ -1271,10 +1284,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 +1305,7 @@ L0BDE: ;ld a,2
inc (hl) ; ᬥ­  áâ®à®­ë
ld a,(hl) ; ⥪. áâ®à®­ 
cp 1+1 ; § ¯à¥¤¥«ì­ ï ?
jr nz,L0BDE
jr nz,.loop
xor a
ret
@ -1483,41 +1496,38 @@ 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,0x3C,0x90 ; 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
@ -1576,6 +1586,7 @@ media6: dw 18 ; # 9, ᥪ
db 0x01,0x4E,0x02,0x23,0x0E,0x89,0x20,0x02
db 0x00,0x19,0x00
dw 0xAA55
*/

View File

@ -816,7 +816,7 @@ LstBoxInv:
PUSH DE
IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
LD A,(IY+3)
SUB (IY+2)
@ -862,7 +862,7 @@ PrnLstBox:
PUSH IX
IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
PUSH IX
POP IY
@ -1007,7 +1007,7 @@ LBB1: ld a,l
CALL GetPutA
IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
LD A,"±"
LD (DE),A
@ -1048,7 +1048,7 @@ LBe1: POP DE
CALL GetPutA
IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
LD A,"þ"
LD (DE),A

View File

@ -32,22 +32,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: ld (SLOT1),a
LD HL,#6200 ;!HARDCODE
LD BC,Dss.AppInfo.EXE_HomeDir
RST ToDSS
;

View File

@ -1329,7 +1329,7 @@ prne: LD A,(IY+2)
LD B,0
IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
LDI
INC DE
@ -1473,7 +1473,7 @@ SetClasInv:
LD IX,DialData
IN A,(Page3)
PUSH AF ;á®åà.page4
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
PUSH HL
LD L,C ;Len X
@ -1839,7 +1839,7 @@ ChangL1: INC HL ;Begin elements claster
POP HL ;Reset begin elem table
IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
ChangL2: LD D,(HL) ;Ypos
INC HL
@ -1906,7 +1906,7 @@ cl1: BIT 7,(HL)
;Change radio button ([x])
ChangeR: IN A,(Page3)
PUSH AF
LD A,(Win2)
LD A,(hPages.Win2)
OUT (Page3),A
LD D,(HL) ;Ypos
INC HL

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