mirror of
https://github.com/Tolik-Trek/FFORMAT.git
synced 2026-06-15 01:11:44 +03:00
210 lines
4.4 KiB
NASM
Executable File
210 lines
4.4 KiB
NASM
Executable File
; <20> ¡®â ¥â ç¥à¥§ ¯®àâë ‚ƒ93.
|
||
; ‚뤥«ï¥â 8 áâà ¨æ ¯ ¬ïâ¨.
|
||
;
|
||
; <20>ਠᮧ¤ ¨¨ § £à㧮箩 ¤¨áª¥âë, ª®¯¨àã¥â § £àã§ç¨ª Estex
|
||
; ¢ ᥪâ®àë 2..4 ¨ ª®à४â¨àã¥â BPB boot-ᥪâ®à , ãáâ ¢«¨¢ ï
|
||
; 10 § १¥à¢. ᥪâ®à®¢ (4 ¤«ï 720kB) ¨ 1 ª®¯¨î FAT. ‘ á¨á⥬-
|
||
; ®£® ¤¨áª ª®¯¨àã¥â ¤¨áª¥âã á¨áâ¥¬ë¥ ä ©«ë.
|
||
;
|
||
;
|
||
|
||
; !TODO ¡à âì § £àã§®çë© á¥ªâ®à á á¨á⥬®£® ¤¨áª , ¥ â ᪠âì ¢ ᥡ¥
|
||
; !TODO ¯¥à¥¤¥« âì ¯®¤ § ¯¨áì § £àã§ç¨ª ®¢®£® ¤®á , ª®â®àë© ¡®«ìè¥ 3-å ᥪâ®à®¢
|
||
|
||
include './shared_includes/constants/dss_equ.inc'
|
||
include './shared_includes/constants/bios_equ.inc'
|
||
include 'version.inc'
|
||
|
||
SysPort equ 0x3C ; á¨áâ. ¯®àâ (¡¥§ ¯®¤ª«. <20>‡“ ¡¨®á )
|
||
Page1 equ 0xA2 ; ¯®àâ 1-© áâà ¨æë
|
||
Page3 equ 0xE2 ; ¯®àâ 3-© áâà ¨æë
|
||
WinBoxBuff equ 0xC000 ; ç «® ¡ãä¥à
|
||
|
||
|
||
|
||
if release
|
||
org 0x6400
|
||
else
|
||
org 0x6200
|
||
|
||
db 'EX' ; exe ID
|
||
db 'E' ; exe ⨯
|
||
db 0 ; exe ¢¥àá¨ï
|
||
dw 512 ; ¬«. ᬥé. ª®¤
|
||
dw 0 ; áâ. ᬥé. ª®¤
|
||
dw 0 ; end-beg, ¯¥à¢¨çë© § £àã§ç¨ª
|
||
dw 0,0 ; १¥à¢
|
||
dw 0 ;
|
||
dw Start ; ¤à¥á § £à㧪¨ ª®¤
|
||
dw Start ; ¤à¥á ¯¥à¥¤ ç¨ ã¯à ¢«¥¨ï
|
||
dw Stack ; ¤à¥á á⥪
|
||
ds 490 ; १¥à¢
|
||
endif
|
||
|
||
|
||
Start: ld sp,Stack
|
||
; ०¨¬ âãà¡® - 1.44Mb
|
||
ld a,13h
|
||
ld c,8Fh
|
||
RST ToBIOS
|
||
; áà ¢¨âì ¨á¯. ®¬¥à ¯®à⮢ áâà ¨æ á ®¬¥à ¬¨ ¯®à⮢ <20>¨®á
|
||
;call compare_page
|
||
; ¢ë¤¥«ï¥¬ ¡«®ª ¢ 8 áâà ¨æ
|
||
ld bc,8*256 + Dss.GetMem ;!HARDCODE
|
||
RST ToDSS
|
||
jr c,err_mem ; ¥â ¯ ¬ïâ¨
|
||
ld (hBlock),a ; åí¤« ¡«®ª
|
||
; á®§¤ âì ᯨ᮪ ¢ë¤¥«. áâà ¨æ
|
||
ld hl,hPages
|
||
ld c,0C5h
|
||
RST ToBIOS
|
||
; ¢ª«. à ¡®çãî áâà ¨æã ¢ Page3 (¨á¯. ¤«ï ¡ãä¥à á¨áâ. ®¡« á⨠¤¨áª¥âë)
|
||
ld a,(BuffSys)
|
||
out (Page3),a
|
||
; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
|
||
ld bc,Dss.ScanKey*256 + Dss.K_CLEAR
|
||
RST ToDSS
|
||
; ¯®«ãç¨âì ᢮© ª â «®£
|
||
LD HL,#6200
|
||
LD DE,CurPath
|
||
LD BC,256
|
||
LDIR
|
||
; á®åà. ⥪ã騩 ¤¨áª
|
||
ld c,2
|
||
RST ToDSS
|
||
ADD A,"A"
|
||
ld (#6200),a ;!HARDCODE
|
||
; á®åà. ⥪ã騩 ¯ãâì
|
||
ld c,Dss.CurDir
|
||
ld hl,#6200+3 ; ¡ãä¥à ⥪. ¯ã⨠;!HARDCODE
|
||
RST ToDSS
|
||
; ¯¥à¥©â¨ ¢ ᢮© ª â «®£
|
||
ld hl,CurPath
|
||
ld c,#1D ; Dss.ChDir
|
||
RST ToDSS
|
||
;
|
||
jp Begin
|
||
|
||
|
||
err_mem: ld hl,NoMem
|
||
ld a,30
|
||
ld (quit+1),a
|
||
call Print
|
||
; ¢ë室 ¢ „Ž‘
|
||
jp quit
|
||
|
||
NoMem: db "Not enough memory !",0Dh,0Ah,0
|
||
|
||
|
||
hBlock: db 0 ; åí¤« ¢ë¤¥«. ¡«®ª
|
||
hPages:
|
||
BuffSys: db 0 ; åí¤« à ¡®ç¥© áâà ¨æë (+¤«ï á¨áâ. ®¡« áâ¨)
|
||
BuffTrk: db 0 ; åí¤« áâà. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨ (¨ "system.exe")
|
||
Win1: db 0 ; åí¤« áâà. á®åà. íªà
|
||
Win2: db 0 ; åí¤« áâà. á®åà. £«. ®ª® ä®à¬ ⨫ª¨
|
||
TRBoot: db 0 ; åí¤« ¡ãä¥à § £àã§ç¨ª TR-DOS
|
||
SBuff0: db 0 ; åí¤« ¡ãä¥à "system.exe"
|
||
SBuff1: db 0 ; åí¤«ë ¡ãä¥à ¯®¤
|
||
SBuff2: db 0 ; ä ©« "system.dos"
|
||
db 0xFF ; á⮯-¡ ©â ᯨáª
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;[]=================== <20> ç «® ¯à®£à ¬¬ë =========================[]
|
||
|
||
Begin: ; á®åà. íªà
|
||
call SaveScreen
|
||
; á®åà. ¯®«®¦. ªãàá®à á¨áâ. íªà
|
||
ld c,BIOS.LP_GET_PLACE
|
||
RST ToBIOS
|
||
ld (sys_cursor_coords),de
|
||
; ¨¨æ. ¤à ©¢¥à ¬ë誨
|
||
ld c,0
|
||
RST ToDSS.Mouse
|
||
jr nc,continue
|
||
ld hl,NoMouse ; ¤à ©¢¥à ¬ëè¨ ¥ ãáâ ®¢«¥
|
||
call Print
|
||
; ¦¤¥¬ ¦ â¨ï ª« ¢¨è¨
|
||
ld c,30h
|
||
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"
|
||
|
||
|
||
|
||
|
||
|
||
; ¢¥ªâ®à ¤«ï ®â®¡à ¦¥¨ï ªãàá®à
|
||
; 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 ; ¤à¥á á¨áâ. ¢¥ªâ®à
|
||
|
||
|
||
|
||
|
||
; <20> ¡®ç¨© ¡ãä¥à Input Line
|
||
CompBuff: ds 16
|
||
|
||
_1:
|
||
DialData: ds 16
|
||
|
||
; <20>ãä¥à § £®«®¢ª ¢ë¢®¤. ®ª
|
||
DialName: ds 16
|
||
|
||
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
|
||
|
||
|
||
; <20>ãä¥à á¨á⥬®© ®¡« á⨠¤¨áª¥âë
|
||
L2400:
|
||
|