This commit is contained in:
Tolik 2025-05-23 23:09:43 +10:00
parent 6d775da44b
commit dc587dda99
10 changed files with 564 additions and 489 deletions

View File

@ -346,10 +346,10 @@ PutDialWn:
PUSH IY
LD IY,DialTab
LD IX,DialData
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
kk4: LD A,(hPages.Win2) ;Page buffer
OUT (Page3),A
OUT (SLOT3),A
LD A,(HL) ;X position
LD (IX+0),A ;Xpos
INC HL
@ -414,7 +414,7 @@ DialCyc: LD A,(HL) ;Next get includes objects
POP DE
DialExt: LD (IY+0),80h ;+5 End dialog table
POP AF
OUT (Page3),A
OUT (SLOT3),A
CALL PutDial ;Put dialog window
POP IY
; Select last element
@ -826,10 +826,10 @@ BTexit: LD HL,what
RET
; <20> ¦ âì/®â¦ âì ¡ãâ®­
PushBut: IN A,(Page3)
PushBut: IN A,(SLOT3)
PUSH AF
kk5: LD A,(hPages.Win2)
OUT (Page3),A
OUT (SLOT3),A
PUSH IX
LD E,(IX+2) ;Xo
LD D,(IX+4) ;Y
@ -897,7 +897,7 @@ BTpos: LD DE,0
CALL testbut
JR NC,bt1
DI
IN A,(Page1)
IN A,(SLOT1)
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE
@ -916,7 +916,7 @@ BTpos: LD DE,0
CALL testbut
JR NC,bt1
DI
IN A,(Page1)
IN A,(SLOT1)
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE
@ -958,7 +958,7 @@ PushEx: PUSH IX
CALL testbut
JR NC,bt2
DI
IN A,(Page1)
IN A,(SLOT1)
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE
@ -976,7 +976,7 @@ PushEx: PUSH IX
INC XH
CALL testbut
JR NC,bt2
IN A,(Page1)
IN A,(SLOT1)
LD B,A
XOR A
LD C,BIOS.WIN_RESTORE ; ¨§ ¡ãä¥à  ¢ ®ª­®
@ -986,7 +986,7 @@ PushEx: PUSH IX
bt2: POP HL
POP IX
POP AF
OUT (Page3),A
OUT (SLOT3),A
LD A,(Kbutt+1)
OR A
RET NZ
@ -1101,10 +1101,10 @@ MoveOlp: BIT 6,(HL) ;Test on mark object
SetDialInv:
PUSH IX
LD IX,DialData
IN A,(Page3)
IN A,(SLOT3)
PUSH AF ;á®åà.page4
kk6: LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
OUT (SLOT3),A ;¢ª«.¡ãä¥à
LD L,C
LD H,1
LD (RDlIlen+1),HL ;Save len
@ -1140,7 +1140,7 @@ setdn2: INC HL
LD DE,(RDlIpos+1)
CALL PutDialLn
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
RET
@ -1151,10 +1151,10 @@ setdn2: INC HL
; Input: None
ResDialInv:
PUSH IX
IN A,(Page3)
IN A,(SLOT3)
PUSH AF ;á®åà.page4
kk7: LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
OUT (SLOT3),A ;¢ª«.¡ãä¥à
LD HL,(RDlIbuf+2)
LD A,(RDlIlen+1)
LD B,A
@ -1185,7 +1185,7 @@ CIflag: LD A,0 ;1-Was claster invert
CALL NZ,ResClasInv
CALL ResILCr ; á¡à®á¨âì ªãàá®à ¢ inp.line
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
LD HL,what
LD (HL),evMessage
@ -1198,10 +1198,10 @@ CIflag: LD A,0 ;1-Was claster invert
; Input: None
ResClasInv:
PUSH IX
IN A,(Page3)
IN A,(SLOT3)
PUSH AF ;á®åà.page4
kk8: LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
OUT (SLOT3),A ;¢ª«.¡ãä¥à
PUSH HL
LD HL,(RClIbuf+2)
LD A,(RClIlen+1)
@ -1231,7 +1231,7 @@ RClIpos: LD DE,0
LD (CIflag+1),A
POP HL
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
RET

418
ESTEX.ASM
View File

@ -8,113 +8,113 @@
;--- Š®¯¨à®¢ ­¨¥ á¨áâ. ä ©«®¢ ¢ ¡ãä¥àë
; ¢ëå: "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 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
; 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,(SLOT3)
; push af
; ld a,(hPages.SBuff0)
; out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à
; ld a,(hFile1)
; call ReadFile
; jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
; pop af
; out (SLOT3),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
; ;<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,(SLOT3)
; push af
; ld a,(hPages.SBuff1)
; out (SLOT3),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 (SLOT3),a ; ¯®¤ª«. 2-î áâà ­¨æã
; ld hl,WinBoxBuff ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
; ld a,(hFile2)
; ld c,13h
; RST ToDSS
; jp c,err1 ; ®è¨¡ª  ç⥭¨ï ä ©« 
; endRead: pop af
; out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
; ; § ªàëâì ä ©«
; ld a,(hFile2)
; call CloseFile
; jp c,error1 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
; ret
@ -125,7 +125,7 @@ sFlag: db 0
sFlag1: db 0
; ä« £, 0/1 - "system.dos" ¬¥­ìè¥/¡®«ìè¥ 1-© áâà ­¨æë
bigFile: db 0
;bigFile: db 0
@ -145,64 +145,76 @@ WriteSysFiles: ld a,(sFlag)
; áªàëâì ¬ëèªã
call HiddenMouse
; “áâ. ⥪ã騩 ¤¨áª ¨ ¯ãâì ­  ¤¨áª¥âã
call SetDisketa
;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 ; ®è¨¡ª  § ªàëâ¨ï ä ©« 
;ld hl,Name1 ; ¨¬ï ä ©« 
;call CreateFile
;jp c,error1 ; ®è¨¡ª  á®§¤ ­¨ï ä ©« 
;ld (hFile1),a
;; § ¯¨á âì ä ©«
;in a,(SLOT3)
;push af
;ld a,(hPages.SBuff0)
;out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à
;ld de,(Number1) ; ç¨á«® § ¯¨á. ¡ ©â
;ld a,(hFile1) ; åí­¤«
;call WriteFile
;ex af,af'
;pop af
;out (SLOT3),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-î áâà ­¨æã
;ld hl,Name2 ; ¨¬ï ä ©« 
;call CreateFile
;jr c,error1 ; ®è¨¡ª  á®§¤ ­¨ï ä ©« 
;ld (hFile2),a
;; § ¯¨á âì ä ©«
;in a,(SLOT3)
;push af
;ld a,(hPages.SBuff1)
;out (SLOT3),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 (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
; § ªàëâì ®ª­® "‡ ¯¨áì á¨áâ. ä ©«®¢"
@ -226,10 +238,10 @@ tinFile: ld a,(hFile2) ;
ld (ColDialWn),a ; ¢®ááâ. ¯à¥¦­îî ãáâ ­®¢ªã æ¢¥â  ®ª­ 
ret
;
err1: pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
; err1: pop af
; out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
;
error1: call RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
.error1: call RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
ld a,40h
ld (ColDialWn),a
ld hl,ErrSysFiles
@ -239,18 +251,19 @@ error1: call RestPath ;
ld a,1
ld (sFlag),a
ret
.sys_name: db "SYS.EXE "
.sys_prm_disk: db "A: 1"
SetDisketa: ; “áâ. ⥪ã騩 ¤¨áª ­  ä®à¬ â. ¤¨áª¥âã
ld a,(DISK)
ld c,1
RST ToDSS
; “áâ. "ª®à¥­ì" ¤¨áª¥âë
ld hl,RootDir
ld c,1Dh
RST ToDSS
ret
; SetDisketa: ; “áâ. ⥪ã騩 ¤¨áª ­  ä®à¬ â. ¤¨áª¥âã
; ld a,(DISK)
; ld c,1
; RST ToDSS
; ; “áâ. "ª®à¥­ì" ¤¨áª¥âë
; ld hl,RootDir
; ld c,1Dh
; RST ToDSS
; ret
RestPath: ; ‚®ááâ. ⥪ã騩 ¤¨áª
; ld a,(CurDisk)
@ -274,10 +287,10 @@ FirstFile: ld bc,0019h ;
; ‘®§¤ âì ä ©«
CreateFile: ld c,0Ah
ld a,20h ;  âਡãâ " à娢­ë©"
RST ToDSS
ret
; CreateFile: ld c,0Ah
; ld a,20h ;  âਡãâ " à娢­ë©"
; RST ToDSS
; ret
; Žâªàëâì ä ©«
@ -288,18 +301,18 @@ OpenFile: ld c,11h
; <20>à®ç¨â âì ä ©«
ReadFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,4000h ; ç¨á«® ç¨â ¥¬ëå ¡ ©â (1 áâà ­¨æ )
ld c,13h
RST ToDSS
ret
; 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
; WriteFile: ld hl,WinBoxBuff ;L4000 ¡ãä¥à ¤ ­­ëå
; ld c,14h
; RST ToDSS
; ret
; ‡ ªàëâì ä ©«
@ -312,16 +325,15 @@ CloseFile: ld c,12h
SysDisk: db 0 ; ­®¬¥à § £à. ¤¨áª 
Name1: db "SYSTEM.EXE",0
Name2: db "SYSTEM.DOS",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 ;
;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,':\' ; á®åà. ⥪. ¤¨áª
;
@ -347,9 +359,9 @@ compare_page: ld c,0C6h ;
ld a,1 ;¯ à ¬¥âàë 1-£® ®ª­ 
RST ToBIOS
ld a,c ;¢®â §¤¥áì ¨¤¥â áp ¢­¥­¨¥ áç¨â ­­®£®
cp Page1 ;­®¬¥p  ¯®pâ  á ⥬, ª®â®pë© ï î§ î
cp SLOT1 ;­®¬¥p  ¯®pâ  á ⥬, ª®â®pë© ï î§ î
jr z,.loc1
; ãáâ. ­®¢ë© ­®¬¥à Page1
; ãáâ. ­®¢ë© ­®¬¥à SLOT1
ld (port1+1),a
ld (port2+1),a
ld (port3+1),a
@ -358,9 +370,9 @@ compare_page: ld c,0C6h ;
ld a,3 ;¯ à ¬¥âàë 3-£® ®ª­ 
RST ToBIOS
ld a,c
cp Page3
cp SLOT3
ret z
; ãáâ. ­®¢ë© ­®¬¥à Page3
; ãáâ. ­®¢ë© ­®¬¥à SLOT3
ld (port5+1),a
ld (port6+1),a
ld (port7+1),a
@ -567,10 +579,10 @@ CopyBootTRD: xor a
jr c,trd_err ; ®è¨¡ª  ®âªàëâ¨ï
ld (hFile4),a
; ¯à®ç¨â âì ä ©«
in a,(Page3)
in a,(SLOT3)
push af
ld a,(hPages.TRBoot)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à
; ç¨â ¥¬ § £®«®¢®ª ¡ãâ 
ld hl,NameBt ; ¡ãä¥à ¯®¤ ¤ ­­ë¥
ld de,17 ; ç¨á«® ç¨â ¥¬ëå ¡ ©â
@ -590,7 +602,7 @@ CopyBootTRD: xor a
ld c,13h
RST ToDSS
pop af
out (Page3),a ; ¢®ááâ. áâà ­¨æã
out (SLOT3),a ; ¢®ááâ. áâà ­¨æã
; § ªàëâì ä ©«
ld a,(hFile4)
jp CloseFile

View File

@ -13,11 +13,10 @@
include './shared_includes/constants/dss_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 ; ­ ç «® ¡ãä¥à 
@ -58,9 +57,9 @@ Start: ld sp,Stack
ld hl,hPages
ld c,0C5h
RST ToBIOS
; ¢ª«. à ¡®çãî áâà ­¨æã ¢ Page3 (¨á¯. ¤«ï ¡ãä¥à  á¨áâ. ®¡« á⨠¤¨áª¥âë)
; ¢ª«. à ¡®çãî áâà ­¨æã ¢ SLOT3 (¨á¯. ¤«ï ¡ãä¥à  á¨áâ. ®¡« á⨠¤¨áª¥âë)
ld a,(hPages.BuffSys2)
out (Page3),a
out (SLOT3),a
; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
ld bc,Dss.ScanKey*256 + Dss.K_CLEAR
RST ToDSS
@ -116,7 +115,7 @@ Begin: ;
RST ToDSS
continue: call ReadInit ; ç⥭¨¥ "fformat.ini" ¨ ­ áâனª 
call CopyBootTRD ; ᪮¯¨à. ¡ãâ ¨§ "boot.$b" (¥á«¨ ¥áâì)
call CopySysFiles ; ᪮¯¨à. á¨áâ. ä ©«ë ¢ ¡ãä¥àë
;call CopySysFiles ; ᪮¯¨à. á¨áâ. ä ©«ë ¢ ¡ãä¥àë
;[]==============================================================[]
include "dialog.asm"
include "listbox.asm"
@ -154,9 +153,9 @@ hPages:
.Win1: db #FF ; åí­¤« áâà. á®åà. íªà ­ 
.Win2: db #FF ; åí­¤« áâà. á®åà. £«. ®ª®­ ä®à¬ â¨«ª¨
.TRBoot: db #FF ; åí­¤« ¡ãä¥à  § £àã§ç¨ª  TR-DOS
.SBuff0: db #FF ; åí­¤« ¡ãä¥à  "system.exe"
.SBuff1: db #FF ; åí­¤«ë ¡ãä¥à  ¯®¤
.SBuff2: db #FF ; ä ©« "system.dos"
;.SBuff0: db #FF ; åí­¤« ¡ãä¥à  "system.exe"
;.SBuff1: db #FF ; åí­¤«ë ¡ãä¥à  ¯®¤
;.SBuff2: db #FF ; ä ©« "system.dos"
.Size equ $-hPages
db 0xFF ; á⮯-¡ ©â ᯨ᪠
@ -189,13 +188,13 @@ Stack: db 0 ;
;[]==============================================================[]
ES_BPB equ $
ES_Boot equ ES_BPB + 512
ES_BPB equ $
;ES_Boot equ ES_BPB + 512
; incbin "estex.bs" ; § £àã§ç¨ª Estex
;[]==============================================================[]
CurPath equ ES_BPB + 512 ;!TEST
;[]==============================================================[]
; <20>ãä¥à á¨á⥬­®© ®¡« á⨠¤¨áª¥âë
L2400 equ ES_BPB+512*4 ;!HARDCODE 4 - bootloader size
L2400 equ CurPath + 257
;[]==============================================================[]

View File

@ -38,15 +38,15 @@ FFORM1: call ClearMap ;
call HiddenMouse ; áªàëâì ¬ëèªã
call set_1440
; Žâªàëâì ¯®àâë ƒ93
ld a,1Ch
out (SysPort),a
ld a,SYS_PORT.CNF_3
out (SYS_PORT.RAM),a
call A0626 ; á¡à®á¨âì ª®­â஫«¥à
; ¤¥à­ãâì £®«®¢ª®©
ld a,70
out (REGDATA),a
ld a,18h ; ¯¥à¥©â¨ ­  § ¤ ­. ¤®à®¦ªã
call A092C ; § ­¥á⨠ª®¬ ­¤ã
call A092A ; ­  0-î ¤®à®¦ªã
call FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
call FDC_CMD.zeroTrk ; ­  0-î ¤®à®¦ªã
;
; ¯à®¢¥à¨âì ­ «¨ç¨¥ ¤¨áª¥âë
call L0C65 ; â¥áâ ­  ç⥭¨¥ ᥪâ®à 
@ -82,7 +82,7 @@ FFORM1: call ClearMap ;
ld hl,SystemArea ; "Writing system area..."
call PutDialWn
call HiddenMouse ; áªàëâì ¬ëèªã
call L09D9 ; § ¯¨áì á¨áâ. ®¡« áâ¨
call SysWR ; § ¯¨áì á¨áâ. ®¡« áâ¨
call ClsDial ; § ªàëâì ®ª­® ¤¨ «®£ 
pop af
ld (ColDialWn),a
@ -90,7 +90,7 @@ FFORM1: call ClearMap ;
ld a,(RetCode)
or a
jr nz,Parsing ; ¡ë«¨ ®è¨¡ª¨ ¯à¨ § ¯¨á¨ á¨áâ. ®¡« áâ¨
call A092A ; ­  0-î ¤®à®¦ªã
call FDC_CMD.zeroTrk ; ­  0-î ¤®à®¦ªã
; ‡ ªàëâì ¯®àâë ƒ93
call Abort
ld a,(_OS)
@ -100,14 +100,14 @@ FFORM1: call ClearMap ;
ld a,(cSystem) ; ä« £ ª®¯¨à. á¨á⥬­ëå ä ©«®¢
or a
call nz,WriteSysFiles ; § ¯¨áì á¨áâ. ä ©«®¢ ­  ¤¨áª¥âã
call CreateLabel ; á®§¤ âì ¬¥âªã ¤¨áª¥âë, ¥á«¨ § ¤ ­ 
;call CreateLabel ; á®§¤ âì ¬¥âªã ¤¨áª¥âë, ¥á«¨ § ¤ ­ 
jp okno1 ; "”®à¬. § ¢¥à襭®", ¢ë室 ¨§ ä㭪樨 fformat
Abort: call A0626 ; á¡à®á¨âì ª®­â஫«¥à
; § ªàëâì ¯®àâë ƒ93
ld a,4
out (SysPort),a
ld a,SYS_PORT.CNF_0
out (SYS_PORT.RAM),a
ld c,1 ; ¯®ª § âì ¬ëèªã
RST ToDSS.Mouse
ret
@ -248,9 +248,10 @@ L0870: ld a,(side)
A0626: ex af,af'
ld a,(DISK) ; ¤¨áª
and 3
ld c,a
ld a,00011000b ; á¡à®á ƒ93 ­ã«¥¬ 2-£® ¡¨â 
or c
;ld c,a
;ld a,00011000b ; á¡à®á ƒ93 ­ã«¥¬ 2-£® ¡¨â 
;or c
or %0001'1000
out (REGCTRL),a
set 2,a ; 1Ch
out (REGCTRL),a
@ -285,26 +286,27 @@ delay: ; >=16. usec delay
;A0929: ld a,0D0h
; jr A092C
; £®«®¢ªã ­  0-î ¤®à®¦ªã
A092A: ld a,8
FDC_CMD.zeroTrk:
ld a,8
; ¯®á« âì ª®¬ ­¤ã
A092C: out (REGCOM),a
exx
ld b,3+3; ; 3 áç¥â稪
call delay ; ¬¨ªà®-¯ ã§ 
.loc2: ld de,0
.loc3: in a,(REGCOM)
;bit 7,a ; ¤¨áª¥â  ¬¥­ï« áì ? (NZ-¤ )
;...
rrca ; â¥áâ ­  0-© ¡¨â
jr nc,.loc4 ; £®â®¢
dec de
ld a,d
or e
jr nz,.loc3
djnz .loc2
.loc4: in a,(REGCOM) ; ¯®«ãç¨âì ª®¤ áâ âãá 
exx
ret
FDC_CMD: out (REGCOM),a
exx
ld b,3+3; ; 3 áç¥â稪
call delay ; ¬¨ªà®-¯ ã§ 
.loc2: ld de,0
.loc3: in a,(REGCOM)
;bit 7,a ; ¤¨áª¥â  ¬¥­ï« áì ? (NZ-¤ )
;...
rrca ; â¥áâ ­  0-© ¡¨â
jr nc,.loc4 ; £®â®¢
dec de
ld a,d
or e
jr nz,.loc3
djnz .loc2
.loc4: in a,(REGCOM) ; ¯®«ãç¨âì ª®¤ áâ âãá 
exx
ret
@ -338,94 +340,86 @@ L07B3: call L0870 ;
; ‡ ¯¨áì á¨áâ. ®¡« á⨠ms-dos ¨«¨ trd-¡ãâ 
L09D9: ld a,(density)
ld c,8Fh ; turbo on/off
RST ToBIOS
xor a
ld (tracks),a
call A092A ; ¯¥à¥©â¨ ­  0-î ¤®à®¦ªã
ld hl,L2400 ; ¡ãä¥à á¨áâ. ®¡« áâ¨
ld (L0AC8),hl
ld a,(_OS)
or a
jr z,_msdos
dec a
jr z,_trdos
ret
;jp _cpm80
; Š®¯¨àã¥â 2-î FAT ¨ § ¯¨á뢠¥â á¨áâ. ®¡« áâì ¤¨áª¥âë,
; ¯à¨ ¢ª«. ®¯æ¨¨ ª®¯¨àã¥â § £àã§ç¨ª Estex ¢ ᥪâ®àë 2..4.
SysWR: ld a,(density)
ld c,8Fh ; turbo on/off
RST ToBIOS
xor a
ld (tracks),a
call FDC_CMD.zeroTrk ; ¯¥à¥©â¨ ­  0-î ¤®à®¦ªã
ld hl,L2400 ; ¡ãä¥à á¨áâ. ®¡« áâ¨
ld (L0AC8),hl
ld a,(_OS)
or a
jr z,_msdos
dec a
jr z,_trdos
ret
;jp _cpm80
; Š®¯¨àã¥â 2-î FAT ¨ § ¯¨á뢠¥â á¨áâ. ®¡« áâì ¤¨áª¥âë,
; ¯à¨ ¢ª«. ®¯æ¨¨ ª®¯¨àã¥â § £àã§ç¨ª Estex ¢ ᥪâ®àë 2..4.
_msdos: ld a,(MS_Boot.media5) ; ç¨á«® ᥪâ®à®¢ ­  FAT
ld e,a
ld hl,0
ld bc,512
.loc0: add hl,bc
dec a
jr nz,.loc0
ld a,e
push hl
ld hl,0
ld de,L2400+512 ; ­ ç «® 1-© FAT
.loc1: add hl,bc
dec a
jr nz,.loc1
pop bc
add hl,de
ex de,hl
ldir
;
; bpb boot loader
;ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
;or a
;jr z,.loc2
; ª®¯¨à. § £àã§ç¨ª  Estex ¢ á¨áâ. ®¡« áâì
;ld hl,ES_Boot ; ª®¤ § £àã§ç¨ª 
;ld de,L2400+512 ; ­ ç «® 1-© FAT
;ld bc,1536 ; 512*3 ᥪâ. = à §¬¥à § £àã§ç¨ª 
;ldir
; ᪮à४â. BPB ¢ ¡ãä¥à¥
;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
ld (sect),a ; 1-© ᥪâ®à (boot)
call L0870 ; áâ®à®­ã ¨ ¤¨áª ¢ ª®­â஫«¥à
.loopWr0: call L0906 ; § ¯¨áì ᥪâ®à 
ret nz ; ®è¨¡ª¨ § ¯¨á¨
ld a,(sect) ; ⥪. ᥪâ®à
inc a
ld (sect),a
.maxSector0+1: cp 18+1 ; § ¯à¥¤¥«ì­ë© ᥪâ®à
jr nz,.loopWr0
; § ¯¨áì 1-© áâ®à®­ë
ld a,1
ld (side),a ; ⥪. áâ®à®­ 
ld (sect),a ; ⥪. ᥪâ®à
call L0870 ; áâ®à®­ã ¨ ¤¨áª ¢ ª®­â஫«¥à
.loopWr1: call L0906 ; § ¯¨áì ᥪâ®à 
ret nz ; ®è¨¡ª¨ § ¯¨á¨
ld a,(sect) ; ⥪. ᥪâ®à
inc a
ld (sect),a
.maxSector1+1: cp 18+1 ; § ¯à¥¤. ᥪâ®à ?
jr nz,.loopWr1
ret
_msdos: ld a,(MS_Boot.media5) ; ç¨á«® ᥪâ®à®¢ ­  FAT
ld e,a
ld hl,0
ld bc,512
.loc0: add hl,bc
dec a
jr nz,.loc0
ld a,e
push hl
ld hl,0
ld de,L2400+512 ; ­ ç «® 1-© FAT
.loc1: add hl,bc
dec a
jr nz,.loc1
pop bc
add hl,de
ex de,hl
ldir
;
; bpb boot loader
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a
jr z,.loc2
; ª®¯¨à. § £àã§ç¨ª  Estex ¢ á¨áâ. ®¡« áâì
ld hl,ES_Boot ; ª®¤ § £àã§ç¨ª 
ld de,L2400+512 ; ­ ç «® 1-© FAT
ld bc,1536 ; 512*3 ᥪâ. = à §¬¥à § £àã§ç¨ª 
ldir
; ᪮à४â. BPB ¢ ¡ãä¥à¥
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
ld (sect),a ; 1-© ᥪâ®à (boot)
call L0870 ; áâ®à®­ã ¨ ¤¨áª ¢ ª®­â஫«¥à
L08F0: call L0906 ; § ¯¨áì ᥪâ®à 
ret nz ; ®è¨¡ª¨ § ¯¨á¨
ld a,(sect) ; ⥪. ᥪâ®à
inc a
ld (sect),a
loc02: cp 18+1 ; § ¯à¥¤¥«ì­ë© ᥪâ®à
jr nz,L08F0
; § ¯¨áì 1-© áâ®à®­ë
ld a,1
ld (side),a ; ⥪. áâ®à®­ 
ld (sect),a ; ⥪. ᥪâ®à
call L0870 ; áâ®à®­ã ¨ ¤¨áª ¢ ª®­â஫«¥à
L08F6: call L0906 ; § ¯¨áì ᥪâ®à 
ret nz ; ®è¨¡ª¨ § ¯¨á¨
ld a,(sect) ; ⥪. ᥪâ®à
inc a
ld (sect),a
loc03: cp 18+1 ; § ¯à¥¤. ᥪâ®à ?
jr nz,L08F6
; § ¯¨áì § £àã§ç¨ª  ç¥à¥§ sys
ld a,(cSystem) ; ä« £ á®§¤ ­¨ï á¨áâ. ¤¨áª¥âë
or a
ret z
;
;
ret
; ‡ ¯¨áì á¨áâ. ®¡« á⨠TR-DOS.
; <20>ਠboot-¤¨áª¥ ª®à४â¨àã¥â ­ ç «® ᢮¡. ¬¥áâ ,
; ç¨á«® ᢮¡. ᥪâ®à®¢ ¨ ç¨á«® § ¯¨á. ä ©«®¢
@ -517,16 +511,16 @@ _trdos: xor a ;
; ‘ª®¯¨à®¢ âì ⥫® ¡ãâ  ¨§ ¡ãä¥à  TRBoot ¢ ¡ãä¥à L2400+1000h
copy1: exx
in a,(Page1)
in a,(SLOT1)
ex af,af'
ld a,(hPages.TRBoot)
out (Page1),a ; ¯®¤ª«. ¡ãä¥à
ld hl,4000h ; ­ ç «® Page1
out (SLOT1),a ; ¯®¤ª«. ¡ãä¥à
ld hl,4000h ; ­ ç «® SLOT1
ld de,L2400+1000h
SizeBt: ld bc,4000h
ldir
ex af,af'
out (Page1),a ; ¯®¤ª«. ¡ãä¥à
out (SLOT1),a ; ¯®¤ª«. ¡ãä¥à
exx
ret
@ -586,10 +580,10 @@ A0875: push de
; ‡ ¯¨áì ¤®à®¦ª¨
L091B: in a,(Page3)
L091B: in a,(SLOT3)
push af
ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à áâàãªâãàë ¤®à®¦ª¨
ld hl,L4000 ; ­ ç «® ¤ ­­ëå
ld (L0AC8),hl
call L0870 ; ¢ ª®­â஫«¥à áâ®à®­ã ¨ ¤¨áª
@ -598,7 +592,7 @@ L091B: in a,(Page3)
ld a,0xF4 ; § ¯¨áì ¤®à®¦ª¨
call A0875
pop af
out (Page3),a
out (SLOT3),a
ret
@ -611,7 +605,7 @@ NxtTrack:
L0759: ld a,(tracks) ; ⥪. ¤®à®¦ª 
out (REGDATA),a ; ॣ¨áâà ¤ ­­ëå
ld a,18h ; ¯¥à¥©â¨ ­  § ¤ ­. ¤®à®¦ªã
jp A092C ; § ­¥á⨠ª®¬ ­¤ã
jp FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
@ -634,7 +628,7 @@ L0C65: ld a,(sect) ; ⥪. ᥪ
or 0x80
; 0-ï áâ®à®­ : 80h
; 1-ï áâ®à®­ : 88h
call A092C ; § ­¥á⨠ª®¬ ­¤ã
call FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
di
ld c,REGCOM
ld b,3 ; áç¥â稪 ¯®¯ë⮪
@ -934,10 +928,10 @@ GAP1 equ 50
GAP3 dw 108 ; ¯®-㬮«ç ­¨î ¤«ï 1.44Mb
; <20>®¤£®â®¢¨âì § £®«®¢ª¨ ᥪâ®à®¢ ¤®à®¦ª¨ (®¤­®© áâ®à®­ë)
L0BAA: in a,(Page3)
L0BAA: in a,(SLOT3)
push af
ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
xor a
ld (L0BA9),a ; ®¡­ã«¨âì áç¥â稪 ᥪâ®à®¢
;
@ -982,17 +976,17 @@ L0BB6: ld bc,553 ;
loc05: cp 18 ; ¯®á«. ᥪâ®à ?
jr nz,L0BB2
pop af
out (Page3),a ; ¢®ááâ. à ¡. áâà ­¨æã
out (SLOT3),a ; ¢®ááâ. à ¡. áâà ­¨æã
ret
; ‘®§¤ ¥â ¢ ¡ãä¥à¥ áâàãªâãàã ¤®à®¦ª¨
; <20>ãä¥à: 0xC000..0xFFFF
L0B21: in a,(Page3)
L0B21: in a,(SLOT3)
push af
ld a,(hPages.BuffTrk)
out (Page3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
out (SLOT3),a ; ¯®¤ª«. ¡ãä¥à ¤®à®¦ª¨
call CLEAR ; § ¯®«­¨âì ¡ãä¥à ª®¤®¬ 0x4E
ld hl,L4000 ; ­ ç «® ¡ãä¥à  ¤ ­­ëå ¤®à®¦ª¨
xor a
@ -1064,7 +1058,7 @@ loc08: cp 18 ;
jr nz,L0B3E
; GAP4B, ®áâ â®ª ¤®à®¦ª¨ (¡ãä¥à 㦥 § ¯®«­¥­ 0x4E)
pop af
out (Page3),a ; ¢ª«. à ¡®çãî áâà ­¨æã 0xC000
out (SLOT3),a ; ¢ª«. à ¡®çãî áâà ­¨æã 0xC000
ret
FILL: ld (hl),c
@ -1097,8 +1091,15 @@ CLEAR: ld (L0ACD),sp
; ¬ ªá. ¤«¨­  ®¡« áâ¨: 0x4C00 ¤«ï 1.74Mb
L09A8: ld de,L2400 ; ¡ãä¥à Boot-ᥪâ®à 
ld hl,MS_Boot ; ms-dos boot-ᥪâ®à
ld bc,512 ; ¤«¨­  boot- 
ldir
ld bc,MS_Boot.SIZE ; ¤«¨­  boot- 
ldir ;!TEST
assert MS_Boot.SIZE < 512,"DEL ME!!!"
ld bc,512-MS_Boot.SIZE
ld h,d
ld l,e
dec hl
ldir
;
ex de,hl ; hl = ­ ç «® FAT ¢ ¡ãä¥à¥
loc07: ld bc,16896 ; 6656/16896 ¤«¨­  FAT-®¢ + Root dir
ld e,0 ; ¡ ©â § ¯®«­¥­¨ï
@ -1110,6 +1111,8 @@ loc07: ld bc,16896 ; 6656/16896
ld (hl),0FFh ; 2 ¨ 3-© ¡ ©âë FAT
inc hl
ld (hl),0FFh
call CreateLabel ; á®§¤ âì ¬¥âªã ¤¨áª¥âë, ¥á«¨ § ¤ ­ 
call CreateSerialNumber
ret
L0994: ld (hl),e
@ -1124,46 +1127,47 @@ L0994: ld (hl),e
; <20> áâநâì ä®à¬ â¨«ªã ­  ⥪. ä®à¬ â ¤¨áª¥âë
FSETUP: ld a,(_OS)
or a
jr nz,noMSDOS
frm1: ld a,18 ; ç¨á«® ᥪâ®à®¢
ld (loc05+1),a
ld (loc08+1),a
SSect: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (MS_Boot.media6),hl
inc a ; § ¯à¥¤. ᥪâ®à
ld (loc02+1),a
ld (loc03+1),a
ld (loc06+1),a
frm2: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë
ld (LastSect),a
frm3: ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (MS_Boot.media1),a
frm4: ld a,0xF0 ; ¡ ©â ä®à¬ â 
ld (MS_Boot.media4),a
frm5: ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (loc07+1),hl
frm6: ld hl,224 ; § ¯¨á¥© ¢ ª®à­¥
ld (MS_Boot.media2),hl
ASect: ld hl,2880 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (MS_Boot.media3),hl
FSect: ld hl,9 ; ᥪâ®à®¢ ­  FAT
ld (MS_Boot.media5),hl
ret
;
noMSDOS:dec a
jr nz,SetCPM
FSETUP: ld a,(_OS)
or a
jr nz,noMSDOS
.sectorsAll+1: ld a,18 ; ç¨á«® ᥪâ®à®¢
ld (loc05+1),a
ld (loc08+1),a
.sectorsSide+1: ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (MS_Boot.media6),hl
inc a ; § ¯à¥¤. ᥪâ®à
ld (_msdos.maxSector0),a
ld (_msdos.maxSector1),a
ld (loc06+1),a
.lastSector+1: ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à ¤¨áª¥âë
ld (LastSect),a
.sectorsPerCluster+1:
ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (MS_Boot.media1),a
frm4: ld a,0xF0 ; ¡ ©â ä®à¬ â 
ld (MS_Boot.media4),a
frm5: ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (loc07+1),hl
frm6: ld hl,224 ; § ¯¨á¥© ¢ ª®à­¥
ld (MS_Boot.media2),hl
ASect: ld hl,2880 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (MS_Boot.media3),hl
FSect: ld hl,9 ; ᥪâ®à®¢ ­  FAT
ld (MS_Boot.media5),hl
ret
;
noMSDOS: dec a
jr nz,SetCPM
; <20> áâநâì ä®à¬ â¨«ªã ­  ä®à¬ â TR-DOS
ld a,16 ; ç¨á«® ᥪâ®à®¢
jr setOS
ld a,16 ; ç¨á«® ᥪâ®à®¢
jr setOS
; <20> áâநâì ä®à¬ â¨«ªã ­  ä®à¬ â CP/M-80
SetCPM: ld a,5 ; ç¨á«® ᥪâ®à®¢
setOS: ld (loc05+1),a
ld (loc08+1),a
inc a ; § ¯à¥¤. ᥪâ®à
ld (loc06+1),a
ret
SetCPM: ld a,5 ; ç¨á«® ᥪâ®à®¢
setOS: ld (loc05+1),a
ld (loc08+1),a
inc a ; § ¯à¥¤. ᥪâ®à
ld (loc06+1),a
ret
@ -1502,7 +1506,7 @@ CalcTime:
; ¤«ï 720kB á¬. ¬¥âªã '#' |
;-------------------------------------------------+
MS_Boot:
.pc_code: db 0xEB,0x3C,0x90 ; 3 ¡ ©â , ª®¤ ¯¥à¥å®¤  ­  § £àã§ç¨ª
.pc_code: db 0xEB,0xFE,0x00 ; 3 ¡ ©â , ª®¤ ¯¥à¥å®¤  ­  § £àã§ç¨ª
; 8 ¡ ©â, OEM ID
db "DSS "
.dss_major_ver: db "1."
@ -1587,7 +1591,8 @@ MS_Boot:
db 0x00,0x19,0x00
dw 0xAA55
*/
DB 0
.SIZE EQU $-MS_Boot
@ -1620,7 +1625,7 @@ L0D25: ld c,31h
ld a,(tracks)
out (REGDATA),a
ld a,18h ; ¯¥à¥©â¨ ­  § ¤ ­. ¤®à®¦ªã
call A092C ; § ­¥á⨠ª®¬ ­¤ã
call FDC_CMD ; § ­¥á⨠ª®¬ ­¤ã
call L07B3 ; ®¦¨¤ ­¨¥ £®â®¢­®á⨠<20>ƒŒ„
ret z ; ­¥â ®è¨¡®ª
call okno3 ; "‚áâ ¢ì⥠¤¨áª¥âã"

View File

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

View File

@ -9,6 +9,7 @@
include './shared_includes/constants/dss_equ.inc'
include './shared_includes/constants/bios_equ.inc'
include './shared_includes/constants/sp2000.inc'
org #9200 - exe_begin.size

160
MAP.ASM
View File

@ -349,11 +349,11 @@ SetMedia:
ld hl,3E00h
ld (Avail),hl
ld a,18 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,18 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,2880 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -363,7 +363,7 @@ SetMedia:
.loc13: ld a,0F0h ; ¡ ©â ä®à¬ â 
ld (frm4+1),a
ld a,1 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (frm3+1),a
ld (FSETUP.sectorsPerCluster),a
ld hl,224 ; § ¯¨á¥© ¢ ª®à­¥
ld (frm6+1),hl
.loc12: ld hl,Avail
@ -381,11 +381,11 @@ SetMedia:
ld hl,7E00h
ld (Avail),hl
ld a,19 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,19 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,34 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,16896 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3040 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -399,11 +399,11 @@ SetMedia:
ld hl,0BA00h
ld (Avail),hl
ld a,20 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,20 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3200 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -417,11 +417,11 @@ SetMedia:
ld hl,5A00h
ld (Avail),hl
ld a,20 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,20 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3280 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -435,11 +435,11 @@ SetMedia:
ld hl,0AA00h
ld (Avail),hl
ld a,20 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,20 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3320 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -455,11 +455,11 @@ SetMedia:
ld hl,0FA00h
ld (Avail),hl
ld a,21 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,21 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3360 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -473,11 +473,11 @@ SetMedia:
ld hl,0A200h
ld (Avail),hl
ld a,21 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,21 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,36 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,17920 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3444 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -491,11 +491,11 @@ SetMedia:
ld hl,0F200h
ld (Avail),hl
ld a,21 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,21 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld a,38 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,18944 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld hl,3486 ; ᥪâ®à®¢ ­  ¤¨áª¥
@ -516,21 +516,21 @@ SetMedia:
ld hl,2400h
ld (Avail),hl
ld a,9 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,9 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld hl,1440 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (ASect+1),hl
.loc15: ld hl,6656 ; à §¬¥à FAT-®¢ + Root dir
ld (frm5+1),hl
ld a,14 ; ¯®á«. á«ã¦. ᥪâ®à
ld (frm2+1),a
ld (FSETUP.lastSector),a
ld hl,3 ; ᥪâ®à®¢ ­  FAT
ld (FSect+1),hl
ld a,0F9h ; ¡ ©â ä®à¬ â 
ld (frm4+1),a
ld a,2 ; ᥪâ®à®¢ ­  ª« áâ¥à
ld (frm3+1),a
ld (FSETUP.sectorsPerCluster),a
ld hl,112 ; § ¯¨á¥© ¢ ª®à­¥
ld (frm6+1),hl
jp .loc12
@ -558,9 +558,9 @@ SetMedia:
ld hl,1660 ; ᥪâ®à®¢ ­  ¤¨áª¥
ld (ASect+1),hl
.loc16: ld a,10 ; ç¨á«® ᥪâ®à®¢
ld (frm1+1),a
ld (FSETUP.sectorsAll),a
ld hl,10 ; ᥪâ®à®¢ ­  áâ®à®­ã
ld (SSect+1),hl
ld (FSETUP.sectorsSide),hl
ld hl,36 ; à §¬¥à ¬¥¦á¥ªâ. ¯à®¡¥« 
ld (GAP3),hl
ld hl,INTERL3 ; ãáâ. ¨­â¥à«¨¢ ¤«ï 21 ᥪâ®à 
@ -825,27 +825,85 @@ SetDrive:
; << ”ã­ªæ¨ï á®§¤ ­¨ï  âਡãâ  "¬¥âª  ⮬ " ã¡à ­  ¨§ DSS >>
;
; ‘®§¤ ­¨¥ ¬¥âª¨ ¤¨áª¥âë (MS-DOS)
; (¡ ©â  âਡãâ  ­ å®¤¨âáï ¯® ᬥé. +11 ®â ­ ç «  § ¯¨á¨)
CreateLabel:
; ld hl,LABEL ; ¨¬ï ¬¥âª¨
; ld a,(hl)
; or a
; ret z
; call SetDisketa ; ãáâ. ⥪ã騬 ¤¨áª®¬ ¤¨áª¥âã
; ; á®§¤ âì ä ©«
; ld hl,LABEL ; ¨¬ï ¬¥âª¨
; ld a,08h ;  âਡãâ "¬¥âª  ⮬ "
; ld c,0Ah
; RST ToDSS
; jr c,.loc1 ; ®è¨¡ª  á®§¤ ­¨ï ¬¥âª¨
; ;ret c
; ; § ªàëâì ä ©«
; ld c,12h
; RST ToDSS
; .loc1: jp RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
ld hl,LABEL
ld de,L2400 + BOOT_SECTOR.FAT.LABEL ;!TEST
ld b,11
;
.loop: ld a,(hl)
and a
jr z,.empty
ld (de),a
inc de
inc hl
djnz .loop
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,MS_Boot.label
ld bc,11
ldir
ret
ld hl,LABEL ; ¨¬ï ¬¥âª¨
ld a,(hl)
or a
ret z
call SetDisketa ; ãáâ. ⥪ã騬 ¤¨áª®¬ ¤¨áª¥âã
; á®§¤ âì ä ©«
ld hl,LABEL ; ¨¬ï ¬¥âª¨
ld a,08h ;  âਡãâ "¬¥âª  ⮬ "
ld c,0Ah
RST ToDSS
jr c,.loc1 ; ®è¨¡ª  á®§¤ ­¨ï ¬¥âª¨
;ret c
; § ªàëâì ä ©«
ld c,12h
RST ToDSS
.loc1: jp RestPath ; ¢®ááâ. ¤¨áª ¨ ¯ãâì
; RET
; ‚ë室­ë¥ §­ ç¥­¨ï:
; D - ¤¥­ì
; E - ¬¥áïæ
; IX - £®¤
; H - ç á
; L - ¬¨­ãâë
; B - ᥪ㭤ë
; C - ¤¥­ì ­¥¤¥«¨
;!TEST
CreateSerialNumber:
ld c,Dss.SysTime
rst ToDSS
;
ex de,hl
add ix,de
ld a,xl
ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER + 3),a
ld (L2400 + BOOT_SECTOR.FAT.SERIAL_NUMBER + 1),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

View File

@ -11,7 +11,7 @@ LabelBuff: DB 11 ; Max input symbols
DB 0 ; Pos X
DB 0 ; Add X
DB 0 ; Inp.Symb
LABEL: DS 12,0
LABEL: DS 12,0 ;!TEST
cSystem: DB 0 ; 01/00 - á®§¤./­¥ á®§¤. á¨áâ. ¤¨áª¥âã
@ -1327,15 +1327,15 @@ prne: LD A,(IY+2)
SUB (IX+6)
LD C,A
LD B,0
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
LD A,(hPages.Win2)
OUT (Page3),A
OUT (SLOT3),A
LDI
INC DE
JP PE,$-3
POP AF
OUT (Page3),A
OUT (SLOT3),A
RET
;;;;;;;;;;;;;;;;
@ -1471,10 +1471,10 @@ ClastI: LD E,(IX+2) ;Xo
SetClasInv:
PUSH IX
LD IX,DialData
IN A,(Page3)
IN A,(SLOT3)
PUSH AF ;á®åà.page4
LD A,(hPages.Win2)
OUT (Page3),A ;¢ª«.¡ãä¥à
OUT (SLOT3),A ;˘ŞŤ.ĄăäĽŕ
PUSH HL
LD L,C ;Len X
LD H,1 ;len Y
@ -1512,7 +1512,7 @@ SetDin2: INC HL
CALL PutDialLn
POP HL
POP AF
OUT (Page3),A
OUT (SLOT3),A
POP IX
LD E,(IX+2) ;Xo pos element
INC E
@ -1837,10 +1837,10 @@ ChangL1: INC HL ;Begin elements claster
INC HL
INC HL
POP HL ;Reset begin elem table
IN A,(Page3)
IN A,(SLOT3)
PUSH AF
LD A,(hPages.Win2)
OUT (Page3),A
OUT (SLOT3),A
ChangL2: LD D,(HL) ;Ypos
INC HL
INC HL
@ -1900,14 +1900,14 @@ cl1: BIT 7,(HL)
CALL PILCurs ; Set cursor
EI
POP AF
OUT (Page3),A
OUT (SLOT3),A
RET
;Change radio button ([x])
ChangeR: IN A,(Page3)
ChangeR: IN A,(SLOT3)
PUSH AF
LD A,(hPages.Win2)
OUT (Page3),A
OUT (SLOT3),A
LD D,(HL) ;Ypos
INC HL
INC HL
@ -1965,6 +1965,6 @@ cl2: CALL ResILCr ;
CALL PILCurs ; ãáâ. ªãàá®à
EI
POP AF
OUT (Page3),A
OUT (SLOT3),A
RET

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

View File

@ -3,4 +3,4 @@
; ¢¥àá¨ï ¯à®£à ¬¬ë
major_version equ 1
minor_version equ 15
minor_version equ 16