mirror of
https://github.com/Tolik-Trek/FFORMAT.git
synced 2026-06-15 01:11:44 +03:00
602 lines
12 KiB
NASM
Executable File
602 lines
12 KiB
NASM
Executable File
; <20> ¡®â á á¨á⥬묨 ¨ boot-ä ©« ¬¨;
|
||
; ”ãªæ¨ï áà ¢¥¨ï ¯®à⮢ ®ª® <20>¨®á ¨ ¨á¯®«ì§ã¥¬ëå ¯à®£à ¬¬®©;
|
||
;
|
||
|
||
|
||
|
||
|
||
;--- Š®¯¨à®¢ ¨¥ á¨áâ. ä ©«®¢ ¢ ¡ãä¥àë
|
||
; ¢ëå: "CY" ¯à¨ ®è¨¡ª¥
|
||
;
|
||
CopySysFiles: xor a
|
||
ld (sFlag),a
|
||
ld (bigFile),a
|
||
ld a,(ColDialWn) ; á®åà. 梥⠮ª
|
||
ld (TmpColor),a
|
||
; <20>®¬¥à § £à㧮箣® ¤¨áª
|
||
ld bc,0009h
|
||
RST ToDSS
|
||
ld (SysDisk),a
|
||
; “áâ ®¢¨âì ⥪ã騬 § £àã§®çë© ¤¨áª
|
||
ld a,(SysDisk)
|
||
ld c,1
|
||
RST ToDSS
|
||
; “áâ ®¢¨âì "ª®à¥ì" boot-¤¨áª
|
||
ld hl,RootDir
|
||
ld c,1Dh
|
||
RST ToDSS
|
||
;<3B> ©â¨ ä ©« "SYSTEM.EXE"
|
||
;ld hl,Name1
|
||
;call FirstFile
|
||
;jp c,NoFound ; ä ©« ¥ ©¤¥
|
||
; ®âªàëâì ä ©«
|
||
ld hl,Name1
|
||
call OpenFile
|
||
jp c,error1 ; ®è¨¡ª ®âªàëâ¨ï ä ©«
|
||
ld (hFile1),a
|
||
; ¯à®ç¨â âì ä ©«
|
||
in a,(Page3)
|
||
push af
|
||
ld a,(hPages.SBuff0)
|
||
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
|
||
ld a,(hFile1)
|
||
call ReadFile
|
||
jp c,err1 ; ®è¨¡ª ç⥨ï ä ©«
|
||
pop af
|
||
out (Page3),a ; ¢®ááâ. áâà ¨æã
|
||
ld (Number1),de ; ç¨á«® ¯à®ç¨â ëå ¡ ©â
|
||
; § ªàëâì ä ©«
|
||
ld a,(hFile1)
|
||
call CloseFile
|
||
jp c,error1 ; ®è¨¡ª § ªàëâ¨ï ä ©«
|
||
|
||
;<3B> ©â¨ ä ©« "SYSTEM.DOS"
|
||
;ld hl,Name2
|
||
;call FirstFile
|
||
;jp c,error1 ; ä ©« ¥ ©¤¥
|
||
; ®âªàëâì ä ©«
|
||
ld hl,Name2
|
||
call OpenFile
|
||
jp c,error1 ; ®è¨¡ª ®âªàëâ¨ï ä ©«
|
||
ld (hFile2),a
|
||
; ã§ âì à §¬¥à ä ©«
|
||
ld hl,0
|
||
ld ix,0 ; ¬«.á«®¢®
|
||
ld bc,0215h ; 㪠§ â¥«ì ®â ª®æ ä ©«
|
||
RST ToDSS
|
||
jp c,error1
|
||
push ix
|
||
pop hl
|
||
ld de,4001h
|
||
; hl >= de
|
||
ld a,l
|
||
sub e
|
||
ld l,a
|
||
ld a,h
|
||
sbc a,d
|
||
ld h,a
|
||
inc hl
|
||
ld (ost+1),hl ; á®åà. à §¬¥à ®áâ âª ä ©«
|
||
jr c,tinRead ; ä ©« < 1-© áâà ¨æë
|
||
ld a,1
|
||
ld (bigFile),a ; ä ©« > 1-© áâà ¨æë
|
||
tinRead: ld (Number2),ix ; á®åà. à §¬¥à ä ©«
|
||
; 㪠§ ⥫ì ç «® ä ©«
|
||
ld hl,0
|
||
ld ix,0 ; ¬«.á«®¢®
|
||
ld a,(hFile2)
|
||
ld bc,0015h ; 㪠§ â¥«ì ®â ç « ä ©«
|
||
RST ToDSS
|
||
jp c,error1
|
||
; ¯à®ç¨â âì ä ©«
|
||
in a,(Page3)
|
||
push af
|
||
ld a,(hPages.SBuff1)
|
||
out (Page3),a ; ¯®¤ª«. 1-î áâà ¨æã
|
||
ld a,(hFile2)
|
||
call ReadFile
|
||
jp c,err1 ; ®è¨¡ª ç⥨ï ä ©«
|
||
ld a,(bigFile)
|
||
or a
|
||
jr z,endRead ; ¯à®ç¨â ¢¥áì ä ©«
|
||
; ç¨â ¥¬ ®áâ ⮪ ä ©«
|
||
ost: ld de,0
|
||
ld a,(hPages.SBuff2)
|
||
out (Page3),a ; ¯®¤ª«. 2-î áâà ¨æã
|
||
ld hl,WinBoxBuff ; ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld a,(hFile2)
|
||
ld c,13h
|
||
RST ToDSS
|
||
jp c,err1 ; ®è¨¡ª ç⥨ï ä ©«
|
||
endRead: pop af
|
||
out (Page3),a ; ¢®ááâ. áâà ¨æã
|
||
; § ªàëâì ä ©«
|
||
ld a,(hFile2)
|
||
call CloseFile
|
||
jp c,error1 ; ®è¨¡ª § ªàëâ¨ï ä ©«
|
||
ret
|
||
|
||
|
||
|
||
; ä« £, 0/1 - ®âà ¡®â âì/¥â äãªæ¨¨ WriteSysFiles
|
||
sFlag: db 0
|
||
|
||
; ä« £, 0/1 - ®âà ¡®â âì/¥â äãªæ¨¨ § ¯¨á¨ trd-boot`
|
||
sFlag1: db 0
|
||
|
||
; ä« £, 0/1 - "system.dos" ¬¥ìè¥/¡®«ìè¥ 1-© áâà ¨æë
|
||
bigFile: db 0
|
||
|
||
|
||
|
||
;--- ‡ ¯¨áì á¨áâ. ä ©«®¢ ¤¨áª¥âã
|
||
; ¢ëå: "CY" ¯à¨ ®è¨¡ª¥
|
||
;
|
||
WriteSysFiles: ld a,(sFlag)
|
||
or a
|
||
ret nz
|
||
; Žâªàëâì ®ª®
|
||
ld a,(ColDialWn) ; á®åà. 梥⠮ª
|
||
ld (TmpColor),a
|
||
ld a,10h ; 梥⠢뢮¤. ®ª
|
||
ld (ColDialWn),a
|
||
ld hl,SysWrite ; "Writing system files..."
|
||
call PutDialWn
|
||
; áªàëâì ¬ëèªã
|
||
call HiddenMouse
|
||
; “áâ. ⥪ã騩 ¤¨áª ¨ ¯ãâì ¤¨áª¥âã
|
||
call SetDisketa
|
||
; ‘®§¤ âì ä ©« "SYSTEM.EXE"
|
||
ld hl,Name1 ; ¨¬ï ä ©«
|
||
call CreateFile
|
||
jp c,error1 ; ®è¨¡ª á®§¤ ¨ï ä ©«
|
||
ld (hFile1),a
|
||
; § ¯¨á âì ä ©«
|
||
in a,(Page3)
|
||
push af
|
||
ld a,(hPages.SBuff0)
|
||
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
|
||
ld de,(Number1) ; ç¨á«® § ¯¨á. ¡ ©â
|
||
ld a,(hFile1) ; åí¤«
|
||
call WriteFile
|
||
ex af,af'
|
||
pop af
|
||
out (Page3),a ; ¢®ááâ. áâà ¨æã
|
||
ex af,af'
|
||
jr c,error1 ; ®è¨¡ª § ¯¨á¨ ä ©«
|
||
; § ªàëâì ä ©«
|
||
ld a,(hFile1) ; åí¤«
|
||
call CloseFile
|
||
jr c,error1 ; ®è¨¡ª § ªàëâ¨ï ä ©«
|
||
|
||
; ‘®§¤ âì ä ©« "SYSTEM.DOS"
|
||
ld hl,Name2 ; ¨¬ï ä ©«
|
||
call CreateFile
|
||
jr c,error1 ; ®è¨¡ª á®§¤ ¨ï ä ©«
|
||
ld (hFile2),a
|
||
; § ¯¨á âì ä ©«
|
||
in a,(Page3)
|
||
push af
|
||
ld a,(hPages.SBuff1)
|
||
out (Page3),a ; ¯®¤ª«. 1-î áâà ¨æã
|
||
ld de,(Number2) ; à §¬¥à "system.dos"
|
||
ld hl,4000h ; 1- áâà ¨æ
|
||
ld a,(bigFile)
|
||
or a
|
||
jr z,tinFile ; ä ©« <= 1-© áâà ¨æë
|
||
ex de,hl
|
||
sbc hl,de
|
||
push hl
|
||
ld a,(hFile2) ; åí¤«
|
||
call WriteFile
|
||
pop de
|
||
jr c,err1 ; ®è¨¡ª § ¯¨á¨ ä ©«
|
||
ld a,(hPages.SBuff2)
|
||
out (Page3),a ; ¯®¤ª«. 2-î áâà ¨æã
|
||
;
|
||
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 ClsDial
|
||
; ®âªàëâì ®ª® "System files transfered"
|
||
ld hl,SysCopy
|
||
call PutDialWn
|
||
; áªàëâì ¬ëèªã
|
||
call HiddenMouse
|
||
; § ¤¥à¦ª ¢ 2 ᥪã¤ë
|
||
ei
|
||
ld b,2 ; ᥪã¤ë
|
||
1: ld a,49 ; 1/50 ᥪã¤ë
|
||
2: halt
|
||
dec a
|
||
jr nz,2B
|
||
djnz 1B
|
||
; § ªàëâì ®ª®
|
||
call ClsDial
|
||
ld a,(TmpColor)
|
||
ld (ColDialWn),a ; ¢®ááâ. ¯à¥¦îî ãáâ ®¢ªã 梥⠮ª
|
||
ret
|
||
;
|
||
err1: pop af
|
||
out (Page3),a ; ¢®ááâ. áâà ¨æã
|
||
;
|
||
error1: call RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
|
||
ld a,40h
|
||
ld (ColDialWn),a
|
||
ld hl,ErrSysFiles
|
||
call DialogW
|
||
ld a,(TmpColor)
|
||
ld (ColDialWn),a
|
||
ld a,1
|
||
ld (sFlag),a
|
||
ret
|
||
|
||
|
||
|
||
SetDisketa: ; “áâ. ⥪ã騩 ¤¨áª ä®à¬ â. ¤¨áª¥âã
|
||
ld a,(DISK)
|
||
ld c,1
|
||
RST ToDSS
|
||
; “áâ. "ª®à¥ì" ¤¨áª¥âë
|
||
ld hl,RootDir
|
||
ld c,1Dh
|
||
RST ToDSS
|
||
ret
|
||
|
||
RestPath: ; ‚®ááâ. ⥪ã騩 ¤¨áª
|
||
; ld a,(CurDisk)
|
||
; ld c,Dss.ChDisk
|
||
; RST ToDSS
|
||
; ‚®ááâ. ⥪. ¯ãâì
|
||
ld hl,CurPath
|
||
ld c,Dss.ChDir
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
|
||
|
||
; <20> ©â¨ ä ©«
|
||
FirstFile: ld bc,0019h ; ¨¬ï ¢ ä®à¬ ⥠11 ¡ ©â
|
||
ld de,BuffName ; 44 ¡ ©â ¡ãä¥à
|
||
ld a,20h ; âਡãâ " à娢ë©"
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
; ‘®§¤ âì ä ©«
|
||
CreateFile: ld c,0Ah
|
||
ld a,20h ; âਡãâ " à娢ë©"
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
; Žâªàëâì ä ©«
|
||
OpenFile: ld c,11h
|
||
ld a,1 ; ç⥨¥
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
; <20>à®ç¨â âì ä ©«
|
||
ReadFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld de,4000h ; ç¨á«® ç¨â ¥¬ëå ¡ ©â (1 áâà ¨æ )
|
||
ld c,13h
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
; ‡ ¯¨áì ä ©«
|
||
WriteFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¤ ëå
|
||
ld c,14h
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
; ‡ ªàëâì ä ©«
|
||
CloseFile: ld c,12h
|
||
RST ToDSS
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
SysDisk: db 0 ; ®¬¥à § £à. ¤¨áª
|
||
Name1: db "SYSTEM.EXE",0
|
||
Name2: db "SYSTEM.DOS",0
|
||
;Name2: db "DIAL.TXT",0
|
||
hFile1: db 0 ; åí¤« ä ©« "system.exe"
|
||
hFile2: db 0 ; åí¤« ä ©« "system.dos"
|
||
Number1: dw 0 ; à §¬¥à ä ©« "system.exe"
|
||
Number2: dw 0 ; à §¬¥à ä ©« "system.dos"
|
||
RootDir: db '\',0 ;
|
||
;
|
||
CurPath:
|
||
CurDisk: db 0,':\' ; á®åà. ⥪. ¤¨áª
|
||
|
||
;
|
||
TmpColor: db 0 ; ¢à¥¬. á®åà. 梥⠮ª
|
||
|
||
; ä ©« áâ஥ª ¯à®£à ¬¬ë
|
||
IniName: db "FFORMAT.INI",0
|
||
hFile3: db 0 ; ¤¥áªà¨¯â®à ä ©«
|
||
;Number3:dw 0 ; à §¬¥à ä ©« "fformat.ini"
|
||
|
||
TrdName: db "BOOT.$B",0 ; ¨¬ï trd-boot ä ©«
|
||
hFile4: db 0 ; ¤¥áªà¨¯â®à ä ©«
|
||
|
||
|
||
|
||
|
||
|
||
;[]===============================================[]
|
||
/*
|
||
; Ž¯à¥¤¥«¥¨¥ ⥪ã饩 ª®ä¨£ãà æ¨¨
|
||
; ¯®à⮢ ¨ ¢ª«îç¥ëå áâà ¨æ Ž‡“
|
||
compare_page: ld c,0C6h ;¯®«ãç¨âì ª®ä. ¯®à⮢
|
||
ld a,1 ;¯ à ¬¥âàë 1-£® ®ª
|
||
RST ToBIOS
|
||
ld a,c ;¢®â §¤¥áì ¨¤¥â áp ¢¥¨¥ áç¨â ®£®
|
||
cp Page1 ;®¬¥p ¯®pâ á ⥬, ª®â®pë© ï î§ î
|
||
jr z,.loc1
|
||
; ãáâ. ®¢ë© ®¬¥à Page1
|
||
ld (port1+1),a
|
||
ld (port2+1),a
|
||
ld (port3+1),a
|
||
ld (port4+1),a
|
||
.loc1: ld c,0C6h
|
||
ld a,3 ;¯ à ¬¥âàë 3-£® ®ª
|
||
RST ToBIOS
|
||
ld a,c
|
||
cp Page3
|
||
ret z
|
||
; ãáâ. ®¢ë© ®¬¥à Page3
|
||
ld (port5+1),a
|
||
ld (port6+1),a
|
||
ld (port7+1),a
|
||
ld (port8+1),a
|
||
ld (port9+1),a
|
||
ld (port10+1),a
|
||
ld (port11+1),a
|
||
ld (port12+1),a
|
||
ld (port13+1),a
|
||
ld (port14+1),a
|
||
ld (port15+1),a
|
||
ld (port16+1),a
|
||
ld (L091B+1),a
|
||
ld (port18+1),a
|
||
ld (port19+1),a
|
||
ld (L0BAA+1),a
|
||
ld (port21+1),a
|
||
ld (port22+1),a
|
||
ld (L0B21+1),a
|
||
ld (port24+1),a
|
||
ld (port25+1),a
|
||
ld (port26+1),a
|
||
ld (port27+1),a
|
||
ld (port28+1),a
|
||
ld (port29+1),a
|
||
ld (PushBut+1),a
|
||
ld (port31+1),a
|
||
ld (port32+1),a
|
||
ld (port33+1),a
|
||
ld (port34+1),a
|
||
ld (port35+1),a
|
||
ld (port36+1),a
|
||
ld (port37+1),a
|
||
ld (port38+1),a
|
||
ld (port39+1),a
|
||
ld (port40+1),a
|
||
ld (port41+1),a
|
||
ld (port42+1),a
|
||
ld (port43+1),a
|
||
ld (port44+1),a
|
||
ld (port45+1),a
|
||
ld (port46+1),a
|
||
ld (port47+1),a
|
||
ld (port48+1),a
|
||
ld (port49+1),a
|
||
ld (port50+1),a
|
||
ld (port51+1),a
|
||
ld (port52+1),a
|
||
ld (port53+1),a
|
||
ld (port54+1),a
|
||
ld (port55+1),a
|
||
ld (port56+1),a
|
||
ld (port57+1),a
|
||
ld (port58+1),a
|
||
ld (port59+1),a
|
||
ld (port60+1),a
|
||
ld (port61+1),a
|
||
ld (port62+1),a
|
||
ld (ChangeR+1),a
|
||
ld (port64+1),a
|
||
ld (port65+1),a
|
||
;
|
||
ld (port69+1),a
|
||
ld (port70+1),a
|
||
ld (port71+1),a
|
||
ld (port73+1),a
|
||
;
|
||
ld (port74+1),a
|
||
ld (port75+1),a
|
||
ld (port76+1),a
|
||
;
|
||
ld (port77+1),a
|
||
ld (port78+1),a
|
||
ret
|
||
*/
|
||
|
||
|
||
|
||
;[]===============================================[]
|
||
|
||
; —⥨¥ ä ©« áâ஥ª (¯®¨áª ¢ ⥪. ª â «®£¥)
|
||
; —¨â îâáï 2 ¡ ©â ¢ ¡ãä¥à BuffName
|
||
; <20>ਠ®è¨¡ª å - ¯à®áâ® ¢ë室
|
||
ReadInit:
|
||
; ©â¨ ä ©« "form.ini"
|
||
ld hl,IniName
|
||
call FirstFile
|
||
ret c ; ä ©« ¥ ©¤¥
|
||
; ®âªàëâì ä ©«
|
||
ld hl,IniName
|
||
ld c,11h
|
||
ld a,1 ; ç⥨¥
|
||
RST ToDSS
|
||
ret c ; ®è¨¡ª ®âªàëâ¨ï
|
||
ld (hFile3),a
|
||
; ¯à®ç¨â âì ä ©«
|
||
ld a,(hFile3)
|
||
ld hl,BuffName ; ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld de,2 ; ç¨á«® ç¨â ¥¬ëå ¡ ©â
|
||
ld c,13h
|
||
RST ToDSS
|
||
;ld (Number3),de ; ç¨á«® ¯à®ç¨â ëå ¡ ©â
|
||
; § ªàëâì ä ©«
|
||
ld a,(hFile3)
|
||
call CloseFile
|
||
jp SetParam ; áâநâì 2 ï祩ª¨ ®¯æ¨© ¤¨áª®¢
|
||
|
||
|
||
|
||
; ‡ ¯¨áì ¢ ä ©« áâ஥ª
|
||
; <20>ਠ®è¨¡ª¥ á®§¤ ¨ï - ¯à®áâ® ¢ë室
|
||
SaveInit: ; ¢®ááâ. ç «ìë© ¤¨áª ¨ ª â «®£
|
||
; ld a,(CurDisk)
|
||
; ld c,1
|
||
; RST ToDSS
|
||
; ld hl,CurDir
|
||
; ld c,Dss.ChDir
|
||
; RST ToDSS
|
||
ld hl,CurPath
|
||
ld c,Dss.ChDir
|
||
RST ToDSS
|
||
;
|
||
call GetParam ; áâநâì ¡ãä¥à ¤«ï § ¯¨á¨
|
||
; á®§¤ âì ä ©« (áãé¥áâ. ã१ ¥â ¤® ã«ï)
|
||
ld hl,IniName ; "form.ini"
|
||
ld c,0Ah
|
||
ld a,20h ; âਡãâ " à娢ë©"
|
||
RST ToDSS
|
||
ret c ; ®è¨¡ª á®§¤ ¨ï ä ©«
|
||
ld (hFile3),a ; á®åà. åí¤«
|
||
; § ¯¨áì ä ©«
|
||
ld hl,BuffName ; ¡ãä¥à ¤ ëå
|
||
ld de,2 ; ç¨á«® § ¯¨á. ¡ ©â
|
||
ld c,14h
|
||
RST ToDSS
|
||
; § ªàëâì ä ©«
|
||
ld a,(hFile3)
|
||
jp CloseFile
|
||
|
||
|
||
; <20> áâநâì ¡ãä¥à ¤«ï § ¯¨á¨ "form.ini"
|
||
GetParam: ld hl,DriveA
|
||
call .loc1
|
||
ld hl,BuffName
|
||
ld (hl),a ; ¤«ï ¤¨áª "A:"
|
||
;
|
||
ld hl,DriveB
|
||
call .loc1
|
||
ld hl,BuffName+1
|
||
ld (hl),a ; ¤«ï ¤¨áª "B:"
|
||
ret
|
||
;
|
||
.loc1: xor a
|
||
ld b,3 ; 3 ï祩ª¨
|
||
ld c,a ; áç¥â稪
|
||
.loc2: cp (hl)
|
||
jr nz,.loc3
|
||
inc hl
|
||
inc c
|
||
djnz .loc2
|
||
.loc3: ld a,c
|
||
and 3
|
||
ret
|
||
|
||
|
||
|
||
; <20> áâநâì 2 ï祩ª¨ RadioCheck- ®¯æ¨© ¤¨áª®¢
|
||
SetParam: ; ®¡ã«¨âì 6 ï祥ª ®¯æ¨© ¤¨áª®¢ A/B
|
||
ld hl,DriveA
|
||
ld b,6
|
||
xor a
|
||
.loc1: ld (hl),a
|
||
inc hl
|
||
djnz .loc1
|
||
;
|
||
ld hl,DriveA
|
||
ld de,BuffName ; ¤¨áª "A:"
|
||
ld a,(de)
|
||
ld c,a
|
||
add hl,bc
|
||
ld (hl),1 ; ®â¬¥â¨âì "RadioCheck" ¤¨áª "A:"
|
||
;
|
||
inc de ; ¡ ©â ¤¨áª "B:"
|
||
ld hl,DriveB
|
||
ld a,(de)
|
||
ld c,a
|
||
add hl,bc
|
||
ld (hl),1 ; ®â¬¥â¨âì "RadioCheck" ¤¨áª "B:"
|
||
ret
|
||
|
||
|
||
|
||
; Š®¯¨à®¢ ¨¥ trd-§ £àã§ç¨ª ¨§ ¢¥è¥£® ä ©« .
|
||
; <20>ਠ®è¨¡ª å à ¡®âë á ä ©«®¬ - ¯à®áâ® ¢ë室 ¨§ ¯/¯à®£à ¬¬ë.
|
||
CopyBootTRD: xor a
|
||
ld (sFlag1),a
|
||
; ©â¨ ä ©« "boot.$b"
|
||
ld hl,TrdName
|
||
call FirstFile
|
||
jr c,trd_err ; ä ©« ¥ ©¤¥
|
||
; ®âªàëâì ä ©«
|
||
ld hl,TrdName
|
||
call OpenFile
|
||
jr c,trd_err ; ®è¨¡ª ®âªàëâ¨ï
|
||
ld (hFile4),a
|
||
; ¯à®ç¨â âì ä ©«
|
||
in a,(Page3)
|
||
push af
|
||
ld a,(hPages.TRBoot)
|
||
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
|
||
; ç¨â ¥¬ § £®«®¢®ª ¡ãâ
|
||
ld hl,NameBt ; ¡ãä¥à ¯®¤ ¤ ë¥
|
||
ld de,17 ; ç¨á«® ç¨â ¥¬ëå ¡ ©â
|
||
ld a,(hFile4)
|
||
ld c,13h
|
||
RST ToDSS
|
||
; ç¨â ¥¬ ⥫® ¡ãâ
|
||
ld e,0
|
||
ld a,(NameBt+14) ; ã§ âì à §¬¥à ¡ãâ
|
||
ld d,a
|
||
cp 40h
|
||
jr c,.loc1
|
||
ld d,40h
|
||
.loc1: ld (SizeBt+1),de ; á®åà. à §¬¥à ¡ãâ
|
||
ld hl,L4000 ; 0C000h ¡ãä¥à ¯®¤ ¡ãâ
|
||
ld a,(hFile4)
|
||
ld c,13h
|
||
RST ToDSS
|
||
pop af
|
||
out (Page3),a ; ¢®ááâ. áâà ¨æã
|
||
; § ªàëâì ä ©«
|
||
ld a,(hFile4)
|
||
jp CloseFile
|
||
;
|
||
trd_err: ld a,1
|
||
ld (sFlag1),a
|
||
ret
|
||
|