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

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

View File

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

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

118
FMAIN.ASM
View File

@ -29,7 +29,7 @@ WinBoxBuff equ 0xC000 ;
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, ¯¥à¢¨ç­ë© § £àã§ç¨ª
@ -49,17 +49,17 @@ 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 (¨á¯. ¤«ï ¡ãä¥à  á¨áâ. ®¡« á⨠¤¨áª¥âë) ; ¢ª«. à ¡®çãî áâà ­¨æã ¢ Page3 (¨á¯. ¤«ï ¡ãä¥à  á¨áâ. ®¡« á⨠¤¨áª¥âë)
ld a,(BuffSys) ld a,(hPages.BuffSys2)
out (Page3),a out (Page3),a
; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë ; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
ld bc,Dss.ScanKey*256 + Dss.K_CLEAR 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 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> ç «® ¯à®£à ¬¬ë =========================[]
@ -132,47 +116,60 @@ 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 "
;
;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+1: 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>ãä¥à § £®«®¢ª  ¢ë¢®¤. ®ª­ 
@ -182,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-2025 "
;
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
;[]==============================================================[]
;[]==============================================================[]
; <20>ãä¥à á¨á⥬­®© ®¡« á⨠¤¨áª¥âë ; <20>ãä¥à á¨á⥬­®© ®¡« á⨠¤¨áª¥âë
L2400: L2400 equ ES_BPB+512*4 ;!HARDCODE 4 - bootloader size
;[]==============================================================[]

View File

@ -96,6 +96,7 @@ FFORM1: call ClearMap ;
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 ; § ¯¨áì á¨áâ. ä ©«®¢ ­  ¤¨áª¥âã
@ -354,7 +355,9 @@ 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,6 +375,8 @@ _msdos: ld a,(media5) ;
add hl,de add hl,de
ex de,hl ex de,hl
ldir ldir
;
; bpb boot loader
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a or a
jr z,.loc2 jr z,.loc2
@ -381,12 +386,13 @@ _msdos: ld a,(media5) ;
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
@ -411,6 +417,13 @@ L08F6: call L0906 ;
ld (sect),a ld (sect),a
loc03: cp 18+1 ; § ¯à¥¤. ᥪâ®à ? loc03: cp 18+1 ; § ¯à¥¤. ᥪâ®à ?
jr nz,L08F6 jr nz,L08F6
; § ¯¨áì § £àã§ç¨ª  ç¥à¥§ sys
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a
ret z
;
;
ret ret
; ‡ ¯¨áì á¨áâ. ®¡« á⨠TR-DOS. ; ‡ ¯¨áì á¨áâ. ®¡« á⨠TR-DOS.
@ -506,7 +519,7 @@ _trdos: xor a ;
copy1: exx copy1: exx
in a,(Page1) in a,(Page1)
ex af,af' ex af,af'
ld a,(TRBoot) ld a,(hPages.TRBoot)
out (Page1),a ; ¯®¤ª«. ¡ãä¥à out (Page1),a ; ¯®¤ª«. ¡ãä¥à
ld hl,4000h ; ­ ç «® Page1 ld hl,4000h ; ­ ç «® Page1
ld de,L2400+1000h ld de,L2400+1000h
@ -575,7 +588,7 @@ A0875: push de
; ‡ ¯¨áì ¤®à®¦ª¨ ; ‡ ¯¨áì ¤®à®¦ª¨
L091B: in a,(Page3) L091B: in a,(Page3)
push af push af
ld a,(BuffTrk) ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨ out (Page3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨
ld hl,L4000 ; ­ ç «® ¤ ­­ëå ld hl,L4000 ; ­ ç «® ¤ ­­ëå
ld (L0AC8),hl ld (L0AC8),hl
@ -728,7 +741,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 +752,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 +770,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 +821,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
@ -923,7 +936,7 @@ GAP3 dw 108 ;
; <20>®¤£®â®¢¨âì § £®«®¢ª¨ ᥪâ®à®¢ ¤®à®¦ª¨ (®¤­®© áâ®à®­ë) ; <20>®¤£®â®¢¨âì § £®«®¢ª¨ ᥪâ®à®¢ ¤®à®¦ª¨ (®¤­®© áâ®à®­ë)
L0BAA: in a,(Page3) L0BAA: in a,(Page3)
push af push af
ld a,(BuffTrk) ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨ out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
xor a xor a
ld (L0BA9),a ; ®¡­ã«¨âì áç¥â稪 ᥪâ®à®¢ ld (L0BA9),a ; ®¡­ã«¨âì áç¥â稪 ᥪâ®à®¢
@ -978,7 +991,7 @@ loc05: cp 18 ;
; <20>ãä¥à: 0xC000..0xFFFF ; <20>ãä¥à: 0xC000..0xFFFF
L0B21: in a,(Page3) L0B21: in a,(Page3)
push af push af
ld a,(BuffTrk) ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨ out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
call CLEAR ; § ¯®«­¨âì ¡ãä¥à ª®¤®¬ 0x4E call CLEAR ; § ¯®«­¨âì ¡ãä¥à ª®¤®¬ 0x4E
ld hl,L4000 ; ­ ç «® ¡ãä¥à  ¤ ­­ëå ¤®à®¦ª¨ ld hl,L4000 ; ­ ç «® ¡ãä¥à  ¤ ­­ëå ¤®à®¦ª¨
@ -1090,7 +1103,7 @@ L09A8: ld de,L2400 ;
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
@ -1118,7 +1131,7 @@ frm1: ld a,18 ;
ld (loc05+1),a ld (loc05+1),a
ld (loc08+1),a ld (loc08+1),a
SSect: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã SSect: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (media6),hl ;; ld (MS_Boot.media6),hl
inc a ; § ¯à¥¤. ᥪâ®à inc a ; § ¯à¥¤. ᥪâ®à
ld (loc02+1),a ld (loc02+1),a
ld (loc03+1),a ld (loc03+1),a
@ -1126,17 +1139,17 @@ SSect: ld hl,18 ; ᥪ
frm2: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë frm2: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë
ld (LastSect),a ld (LastSect),a
frm3: ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à frm3: ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (media1),a 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 +1267,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,30 +1284,30 @@ 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 ; ãáâ. £®«®¢ªã ­  ⥪. ¤®à®¦ªã
call L091B ; § ¯¨áì æ¥«®© ¤®à®¦ª¨ call L091B ; § ¯¨áì æ¥«®© ¤®à®¦ª¨
call L0C87 ; â¥áâ ­  ç⥭¨¥ ᥪâ®à®¢ ®¤­®© áâ®à®­ë call L0C87 ; â¥áâ ­  ç⥭¨¥ ᥪâ®à®¢ ®¤­®© áâ®à®­ë
ret c ; ¢ë室 - ¯à®æ¥áá ¯à¥à¢ ­ ret c ; ¢ë室 - ¯à®æ¥áá ¯à¥à¢ ­
ret nz ; ¥áâì ®è¨¡ª¨ ç⥭¨ï ret nz ; ¥áâì ®è¨¡ª¨ ç⥭¨ï
call Map ; ¢ë¢®¤ ª àâë call Map ; ¢ë¢®¤ ª àâë
call L0D93 ; ¢ë¢®¤ "Side: X" call L0D93 ; ¢ë¢®¤ "Side: X"
call L0D92 ; ¢ë¢®¤ "Cylinder: XX" call L0D92 ; ¢ë¢®¤ "Cylinder: XX"
call ElapsedTime ; ¢ë¢®¤ ¢à¥¬¥­¨ à ¡®âë call ElapsedTime ; ¢ë¢®¤ ¢à¥¬¥­¨ à ¡®âë
call L0D25 ; ¯à¨§­ ª ­ ¦ â¨ï ª« ¢¨è¨ call L0D25 ; ¯à¨§­ ª ­ ¦ â¨ï ª« ¢¨è¨
ret c ; ¯à®æ¥áá ¯à¥à¢ ­ ret c ; ¯à®æ¥áá ¯à¥à¢ ­
ld hl,side ld hl,side
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,99 +1496,97 @@ 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,0x3C,0x90 ; 3 ¡ ©â , ª®¤ ¯¥à¥å®¤  ­  § £àã§ç¨ª
db "DSS 1.60" ; 8 ¡ ©â, OEM ID ; 8 ¡ ©â, OEM ID
;BPB, 17 ¡ ©â db "DSS "
BPB: dw 512 ; ¡ ©â ­  ᥪâ®à .dss_major_ver: db "1."
media1: db 1 ; # 2, ᥪâ®à®¢ ­  ª« áâ¥à .dss_minor_ver: db "71"
dw 1 ; § à¥§¥à¢. ᥪâ®à®¢ ;BPB, 17 ¡ ©â
db 2 ; ç¨á«® FAT-®¢ .BPB: dw 512 ; ¡ ©â ­  ᥪâ®à
media2: dw 224 ; # 112, § ¯¨á¥© ¢ ª®à­¥ .media1: db 1 ; # 2, ᥪâ®à®¢ ­  ª« áâ¥à
media3: dw 2880 ; # 1440, ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥ .reserved: dw 1 ; § à¥§¥à¢. ᥪâ®à®¢
media4: db 0xF0 ; # 0xF9, ¡ ©â ä®à¬ â  .fat_num: db 2 ; ç¨á«® FAT-®¢
media5: dw 9 ; # 3, ᥪâ®à®¢ ­  FAT .media2: dw 224 ; # 112, § ¯¨á¥© ¢ ª®à­¥
media6: dw 18 ; # 9, ᥪâ®à®¢ ­  áâ®à®­ã .media3: dw 2880 ; # 1440, ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
dw 2 ; ª®«-¢® áâ®à®­ ¤¨áª  .media4: db 0xF0 ; # 0xF9, ¡ ©â ä®à¬ â 
;extended boot-record .media5: dw 9 ; # 3, ᥪâ®à®¢ ­  FAT
dw 0,0 ; áªàëâëå ᥪâ®à®¢ .media6: dw 18 ; # 9, ᥪâ®à®¢ ­  áâ®à®­ã
dw 0,0 ; ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥ dw 2 ; ª®«-¢® áâ®à®­ ¤¨áª 
dw 0 ; 䨧. ­®¬¥à ¤¨áª  ;extended boot-record
db 0x29 ; ᨣ­ âãà  à áè. boot-§ ¯¨á¨ dw 0,0 ; áªàëâëå ᥪâ®à®¢
dw 96C2h,2D3Ah ; á¥à¨©­ë© ­®¬¥à ¤¨áª¥âë 2D3A:96C2 dw 0,0 ; ¢á¥å ᥪâ®à®¢ ­  ¤¨áª¥
db "NO NAME " ; 11 ¡ ©â, ¬¥âª  ¤¨áª¥âë dw 0 ; 䨧. ­®¬¥à ¤¨áª 
db "FAT12 " ; 8 ¡ ©â, ID ä ©«®¢®© á¨á⥬ë db 0x29 ; ᨣ­ âãà  à áè. boot-§ ¯¨á¨
;--------------------------------------------------------------------- .serial: dw 0000,0000 ; á¥à¨©­ë© ­®¬¥à ¤¨áª¥âë 2D3A:96C2
db 0xFA,0x33,0xD2,0x8E,0xD2,0xBC,0xF0,0x7B .label: db "NO NAME " ; 11 ¡ ©â, ¬¥âª  ¤¨áª¥âë
db 0xFB,0xB8,0xC0,0x07,0x8E,0xD8,0xE8,0x89 db "FAT12 " ; 8 ¡ ©â, ID ä ©«®¢®© á¨á⥬ë
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 0xFA,0x33,0xD2,0x8E,0xD2,0xBC,0xF0,0x7B
db 0x20,0x74,0x04,0x3C,0x6F,0x75,0xEC,0xBE db 0xFB,0xB8,0xC0,0x07,0x8E,0xD8,0xE8,0x89
db 0xDF,0x01,0xE8,0x0B,0x00,0xBE,0xC1,0x01 db 0x00,0xBE,0xFE,0x00,0xFC,0xBB,0x70,0x00
db 0xE8,0x05,0x00,0xE8,0x5C,0x00,0xCD,0x19 db 0xE8,0x25,0x00,0x32,0xE4,0xCD,0x16,0x3C
db 0xAC,0x0A,0xC0,0x74,0x46,0x3C,0x01,0x75 db 0x1B,0x74,0x18,0x3C,0x0D,0x74,0x08,0x3C
db 0x05,0xAC,0x8A,0xD8,0xEB,0xF2,0x3C,0x02 db 0x20,0x74,0x04,0x3C,0x6F,0x75,0xEC,0xBE
db 0x75,0x0A,0xAD,0x8B,0xD0,0x56,0xE8,0x62 db 0xDF,0x01,0xE8,0x0B,0x00,0xBE,0xC1,0x01
db 0x00,0x5E,0xEB,0xE4,0x3C,0x03,0x75,0x0A db 0xE8,0x05,0x00,0xE8,0x5C,0x00,0xCD,0x19
db 0xAC,0xA2,0x00,0x00,0x89,0x36,0x01,0x00 db 0xAC,0x0A,0xC0,0x74,0x46,0x3C,0x01,0x75
db 0xEB,0xD6,0x3C,0x04,0x75,0x0C,0xFE,0x0E db 0x05,0xAC,0x8A,0xD8,0xEB,0xF2,0x3C,0x02
db 0x00,0x00,0x74,0x04,0x8B,0x36,0x01,0x00 db 0x75,0x0A,0xAD,0x8B,0xD0,0x56,0xE8,0x62
db 0xEB,0xC6,0x33,0xC9,0xA8,0x80,0x74,0x05 db 0x00,0x5E,0xEB,0xE4,0x3C,0x03,0x75,0x0A
db 0x24,0x7F,0x8A,0xC8,0xAC,0x41,0xE8,0x17 db 0xAC,0xA2,0x00,0x00,0x89,0x36,0x01,0x00
db 0x00,0xEB,0xB5,0x36,0xA1,0x6C,0x04,0x05 db 0xEB,0xD6,0x3C,0x04,0x75,0x0C,0xFE,0x0E
db 0x04,0x00,0x36,0x39,0x06,0x6C,0x04,0x72 db 0x00,0x00,0x74,0x04,0x8B,0x36,0x01,0x00
db 0xF9,0xC3,0xB8,0x03,0x00,0xCD,0x10,0xC3 db 0xEB,0xC6,0x33,0xC9,0xA8,0x80,0x74,0x05
db 0x56,0x3C,0x0A,0x74,0x10,0xB4,0x09,0xCD db 0x24,0x7F,0x8A,0xC8,0xAC,0x41,0xE8,0x17
db 0x10,0x02,0xD1,0x80,0xFA,0x50,0x73,0x05 db 0x00,0xEB,0xB5,0x36,0xA1,0x6C,0x04,0x05
db 0xE8,0x08,0x00,0x5E,0xC3,0xFE,0xC6,0x32 db 0x04,0x00,0x36,0x39,0x06,0x6C,0x04,0x72
db 0xD2,0xEB,0xF5,0xB4,0x02,0xCD,0x10,0xC3 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 ¡ ©â ; 21 ¡ ©â
db " FFORMAT Version " db " FFORMAT Version "
db major_version + "0","." db major_version + "0","."
db (minor_version / 10) + "0",(minor_version % 10) + "0" db (minor_version / 10) + "0",(minor_version % 10) + "0"
; ;
db 0xBA,0x20,0x01,0x1F,0x03,0x07,0xCF,0xB0 db 0xBA,0x20,0x01,0x1F,0x03,0x07,0xCF,0xB0
db 0x04,0x91,0xB0,0x01,0x4E,0x80,0xC9,0xA7 db 0x04,0x91,0xB0,0x01,0x4E,0x80,0xC9,0xA7
db 0xCD,0x80,0xBB,0x01,0x1F,0x93,0xB0,0x03 db 0xCD,0x80,0xBB,0x01,0x1F,0x93,0xB0,0x03
db 0x06,0x91,0xB0,0x01,0x4E,0x80,0xBA,0xA7 db 0x06,0x91,0xB0,0x01,0x4E,0x80,0xBA,0xA7
db 0x20,0x80,0xBA,0x01,0x07,0x81,0xB0,0x01 db 0x20,0x80,0xBA,0x01,0x07,0x81,0xB0,0x01
db 0x1F,0x91,0xB0,0x04,0x91,0xB0,0x01,0x4E db 0x1F,0x91,0xB0,0x04,0x91,0xB0,0x01,0x4E
db 0x80,0xC8,0xA7,0xCD,0x80,0xBC,0x01,0x07 db 0x80,0xC8,0xA7,0xCD,0x80,0xBC,0x01,0x07
db 0x81,0xB0,0x01,0x1F,0x91,0xB0,0x93,0xB0 db 0x81,0xB0,0x01,0x1F,0x91,0xB0,0x93,0xB0
db 0x01,0x07,0xA9,0xB0,0x01,0x1F,0x91,0xB0 db 0x01,0x07,0xA9,0xB0,0x01,0x1F,0x91,0xB0
db 0x03,0x07,0xCF,0xB0,0x04,0x01,0x70 db 0x03,0x07,0xCF,0xB0,0x04,0x01,0x70
; 16 ¡ ©â ; 16 ¡ ©â
db " RLE Boot record" db " RLE Boot record"
db 0xC6,0x20,0x01,0x4F,0x02,0x15,0x0A db 0xC6,0x20,0x01,0x4F,0x02,0x15,0x0A
; 36 ¡ ©â ; 36 ¡ ©â
db "Sorry, but this disk is not bootable" db "Sorry, but this disk is not bootable"
db 0x02,0x16,0x0B db 0x02,0x16,0x0B
; 33 ¡ ©â  ; 33 ¡ ©â 
db "Insert SYSTEM disk into the drive" db "Insert SYSTEM disk into the drive"
db 0x01,0x7F,0x02,0x22,0x0D db 0x01,0x7F,0x02,0x22,0x0D
; ­¥ ­ ¦ âë© ¡ãâ®­ ; ­¥ ­ ¦ âë© ¡ãâ®­
db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,"" db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,""
db 0x01,0x40,0x80,0xDC,0x02,0x23,0x0E,0x89 db 0x01,0x40,0x80,0xDC,0x02,0x23,0x0E,0x89
db 0xDF,0x02,0x00,0x19,0x00,0x01,0x4E,0x02 db 0xDF,0x02,0x00,0x19,0x00,0x01,0x4E,0x02
db 0x22,0x0D,0x20,0x01,0x7F db 0x22,0x0D,0x20,0x01,0x7F
; ­ ¦ âë© ¡ãâ®­ ; ­ ¦ âë© ¡ãâ®­
db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,"" db "",82h,20h,01h,7Ch,"O",01h,7Fh,"k",82h,20h,""
db 0x01,0x4E,0x02,0x23,0x0E,0x89,0x20,0x02 db 0x01,0x4E,0x02,0x23,0x0E,0x89,0x20,0x02
db 0x00,0x19,0x00 db 0x00,0x19,0x00
dw 0xAA55 dw 0xAA55
*/

View File

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

View File

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

View File

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

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