mirror of
https://github.com/Tolik-Trek/FFORMAT.git
synced 2026-06-15 09:21:43 +03:00
1741 lines
37 KiB
NASM
Executable File
1741 lines
37 KiB
NASM
Executable File
; Œ¥âª¨ "@@@" - § ª®¬¬¥â. ª®¤, çâ®¡ë ¥ ®âà ¡ âë¢ « ª«¨ª ¬ë誨 ⥪ã饩
|
||
; ¯®§¨æ¨¨ ᯨ᪠¤«ï ¢ë室 ¨§ ListBox-
|
||
;
|
||
; Œ¥âª¨ "###" - ®âà ¡®âª "Enter" ª ª Tab
|
||
;
|
||
|
||
|
||
|
||
|
||
|
||
; Žâà¨á®¢ª ®¡ê¥ªâ
|
||
; Object ~List Box~
|
||
; Input: HL-label
|
||
; Format mouse table (IY=DialTab+5):
|
||
; +0 - Object ~List Box"
|
||
; +1 - Xo position object
|
||
; +2 - Xi position object
|
||
; +3 - Yo position object
|
||
; +4 - Yi position object
|
||
; +5 - Xi position name
|
||
; +6 - ’¥ªã騩 í«¥¬¥â
|
||
; +7 - Š®«-¢® í«¥¬¥â®¢ ¢ ListBox
|
||
; +8,9 - Address list
|
||
; +0A - Y pos line up
|
||
; +0B - Y pos line down
|
||
; +0C - Previos Y pos bar
|
||
; +0D - Hot key
|
||
; +0E - Context
|
||
;
|
||
PListBox:
|
||
LD (IY+1),A
|
||
LD A,(HL) ;X pos
|
||
INC HL
|
||
LD C,A
|
||
LD (IX+4),A ;Save X pos
|
||
ADD A,(IX+0) ;Pos X from begin window
|
||
LD (IY+2),A ;+1 Xo
|
||
LD A,(HL) ;Y pos
|
||
INC HL
|
||
LD B,A
|
||
LD (IX+5),A ;Save Y pos
|
||
ADD A,(IX+1) ;Pos Y from begin window
|
||
LD (IY+4),A ;+3 Yo ;;
|
||
CALL GetPutA
|
||
LD A,(HL) ;len X
|
||
INC HL
|
||
ADD A,2
|
||
LD (IX+6),A
|
||
LD B,A
|
||
ADD A,3
|
||
ADD A,(IY+2)
|
||
LD (IY+3),A ;Xi pos
|
||
LD A,(HL) ;len Y
|
||
INC HL
|
||
ADD A,2 ;Yi pos
|
||
ADD A,(IY+4)
|
||
LD (IY+5),A
|
||
LD A,"Ú"
|
||
LD (DE),A
|
||
INC DE
|
||
ld a,ColLstBxFr
|
||
ld (de),a
|
||
INC DE
|
||
LD A," " ; ¢¥¤ãé. ¯à®¡¥« â¨â« ®ª
|
||
LD (DE),A
|
||
INC DE
|
||
INC DE
|
||
DEC B
|
||
ld a,(ColDialWn) ; 梥⠧ £®«®¢®ª ListBox-
|
||
LD C,A
|
||
LD A,(HL)
|
||
LstBox0:INC HL ; 横« ¯¥à¥®á § £®«®¢ª ListBox-
|
||
CP '~'
|
||
JR NZ,LstBox1
|
||
ld c,ColDhotkey
|
||
LD A,(HL)
|
||
INC HL
|
||
INC HL
|
||
LD (DE),A
|
||
INC DE
|
||
RES 5,A
|
||
LD (IY+0Fh),A ; hot-¡ãª¢
|
||
LD A,(DE)
|
||
AND 0F0h
|
||
OR C
|
||
LD (DE),A
|
||
INC DE
|
||
ld a,(ColDialWn)
|
||
LD C,A
|
||
DEC B
|
||
LD A,(HL)
|
||
INC HL
|
||
LstBox1:LD (DE),A
|
||
INC DE
|
||
INC DE
|
||
DEC B
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,LstBox0
|
||
INC HL
|
||
LD A," " ; 墮áâ. ¯à®¡¥« â¨â« ®ª
|
||
LD (DE),A
|
||
INC DE
|
||
INC DE
|
||
DEC B
|
||
LD A,(IX+6)
|
||
SUB B
|
||
ADD A,(IY+2)
|
||
LD (IY+6),A ;Xi pos name
|
||
LD A,B
|
||
OR A
|
||
JR Z,LstBox2
|
||
lstbx2: LD A,"Ä"
|
||
LD (DE),A
|
||
INC DE
|
||
ld a,ColLstBxFr
|
||
ld (de),a
|
||
INC DE
|
||
DJNZ lstbx2
|
||
LstBox2:LD A,"¿"
|
||
LD (DE),A
|
||
inc de
|
||
ld a,ColLstBxFr
|
||
ld (de),a
|
||
INC (IX+5)
|
||
LD A,(HL) ; ï祩ª ª®â¥ªáâ ⥪. ListBox-
|
||
LD (IY+10h),A
|
||
INC HL
|
||
; ãáâ. 㪠§ ⥫ì
|
||
ld de,(CurElem1) ; ¯®«®¦. 㪠§ ⥫ï 2-£® ListBox`
|
||
ld b,14
|
||
or a ; ª®â¥ªáâ ⥪. ListBox-a ?
|
||
jr nz,.loc1 ; 2-© ListBox
|
||
ld b,1
|
||
ld de,0 ; ¤«ï ®¤®£® "A:"
|
||
ld a,(SetDriveB2) ; ¤¨áª®¢®¤ "B:" ¥â ?
|
||
or a
|
||
jr nz,.loc1 ; "B:" ¥â
|
||
inc b
|
||
ld de,(CurElem0) ; ¯®«®¦. 㪠§ ⥫ï 1-£® ListBox`
|
||
.loc1: ld (iy+7),e ; ⥪.í«¥¬.
|
||
ld (iy+8),d ; ¯¥à¢ë© í«¥¬. áâà ¨æ¥
|
||
ld a,b
|
||
ld (elnum+1),a
|
||
ld a,d
|
||
ld b,d
|
||
ld (EndBox2+1),a
|
||
xor a
|
||
ld (iy+9),a ; ª®«-¢® í«¥¬¥â®¢
|
||
ld e,(hl)
|
||
inc hl
|
||
ld d,(hl)
|
||
inc hl
|
||
ld (iy+0Ah),e ; ¤à¥á ᯨáª
|
||
ld (iy+0Bh),d
|
||
;
|
||
.loc2: ld a,b
|
||
or a
|
||
jr z,.loc4
|
||
.loc3: ld a,(de)
|
||
inc de
|
||
cp 0Dh ; ª®¥æ áâப¨
|
||
jr nz,.loc3
|
||
dec b
|
||
jr .loc2
|
||
;
|
||
.loc4: ld (iy+11h),e ; ¤à¥á ᯨáª
|
||
ld (iy+12h),d
|
||
push hl
|
||
ex de,hl
|
||
ld a,(hl)
|
||
or a
|
||
jp z,EndBox
|
||
; Next element list
|
||
LstBox3:LD C,(IX+4) ;pos element
|
||
LD B,(IX+5)
|
||
CALL GetPutA
|
||
LD A,(IX+6)
|
||
SUB 2
|
||
LD B,A ; ¤«¨ ¢ë¢®¤. áâப ᯨáª
|
||
EX DE,HL
|
||
LD (HL),"³"
|
||
INC HL
|
||
ld (hl),ColLstBxFr
|
||
INC HL
|
||
ld c,ColListBox ; 梥â í«¥¬¥â®¢ ListBox
|
||
ld a,(ix+5)
|
||
sub (ix+1)
|
||
inc a
|
||
cp (iy+7)
|
||
jr nz,lstbx4
|
||
ld c,ColLstBxHI ; 梥â 㪠§ â¥«ï ¥ ªâ¨¢. ListBox-
|
||
lstbx4: LD (HL)," " ; ¢¥¤ãé. ¯à®¡¥« ¢ ᯨ᪥ í«¥¬¥â®¢
|
||
INC HL
|
||
LD (HL),C ; âਡãâ
|
||
INC HL
|
||
LstBox4:LD A,(DE) ; 横« ¯¥à¥®á áâப¨ ᯨ᪠ListBox-
|
||
INC DE
|
||
CP 0Dh ; ª®¥æ áâப¨
|
||
JR Z,NxtLst
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
DJNZ LstBox4 ; 横« ¯¥à¥®á áâப¨ ᯨáª
|
||
lstbx41:LD A,(DE)
|
||
INC DE
|
||
CP 0Dh ; ª®¥æ áâப¨
|
||
JR NZ,lstbx41
|
||
NxtLst: LD A,B
|
||
OR A
|
||
JR Z,LstBox5
|
||
LD A," " ; § ¯®«. á ª®æ áâப¨ í«¥¬¥â
|
||
lstbx42:LD (HL),A
|
||
INC HL
|
||
LD (HL),C ; âਡãâ
|
||
INC HL
|
||
DJNZ lstbx42
|
||
LstBox5:LD (HL)," " ; 墮áâ. ¯à®¡¥« ¢ ᯨ᪥
|
||
INC HL
|
||
LD (HL),C ; âਡãâ
|
||
INC HL
|
||
call ScrollB ; à¨á®¢ âì âਡãâë áªà®««-¡ à
|
||
INC (IY+9)
|
||
LD A,(IY+5)
|
||
SUB (IX+1)
|
||
DEC A
|
||
CP (IX+5)
|
||
JR Z,EndBox1
|
||
LD A,(HL)
|
||
OR A
|
||
JP NZ,LstBox3 ; 横« ¢ë¢®¤ ᯨáª
|
||
;--
|
||
EndBox: LD A,(IY+5)
|
||
SUB (IX+1)
|
||
SUB (IX+5)
|
||
DEC A
|
||
JR Z,EndBox1
|
||
LD B,A
|
||
LstBox6:PUSH BC
|
||
LD C,(IX+4) ;pos element
|
||
LD B,(IX+5)
|
||
CALL GetPutA
|
||
LD A,(IX+6)
|
||
LD B,A
|
||
EX DE,HL
|
||
LD (HL),"³"
|
||
INC HL
|
||
ld (hl),ColLstBxFr
|
||
INC HL
|
||
ld c,ColListBox
|
||
LD A," " ; ¯ãáâ ï áâப ¢ ᯨ᪥ (¥á«¨ ®ª® ¡®«ìè¥ ¯® Y)
|
||
lstbx6: LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
DJNZ lstbx6
|
||
; áªà®««-¡ à ¨¦¥ ᯨáª
|
||
call ScrollB ; à¨á®¢ âì âਡãâë áªà®««-¡ à
|
||
POP BC
|
||
DJNZ LstBox6
|
||
;
|
||
EndBox1:LD A,(HL)
|
||
endbx0: OR A
|
||
JR Z,EndBox2
|
||
endbx1: CP 0Dh ; ª®¥æ áâப¨
|
||
INC HL
|
||
LD A,(HL)
|
||
JR NZ,endbx1
|
||
INC (IY+9)
|
||
jr endbx0
|
||
;
|
||
EndBox2:ld a,0
|
||
add a,(iy+9)
|
||
ld (iy+9),a
|
||
LD C,(IX+4) ;End string
|
||
LD B,(IX+5)
|
||
CALL GetPutA
|
||
EX DE,HL
|
||
LD (HL),"À"
|
||
INC HL
|
||
ld (hl),ColLstBxFr
|
||
INC HL
|
||
LD B,(IX+6)
|
||
endbx2: LD A,"Ä"
|
||
LD (HL),A
|
||
INC HL
|
||
ld (hl),ColLstBxFr
|
||
INC HL
|
||
DJNZ endbx2
|
||
LD (HL),"Ù"
|
||
inc hl
|
||
ld (hl),ColLstBxFr
|
||
LD A,(IY+4)
|
||
INC A
|
||
LD (IY+0Ch),A ;line up
|
||
INC A
|
||
prevPos:ld b,0
|
||
add a,b
|
||
LD (IY+0Eh),A ;prev pos
|
||
LD A,(IY+5)
|
||
SUB 2
|
||
LD (IY+0Dh),A ;line down
|
||
POP HL
|
||
LD BC,0013h ; ¥ âண âì
|
||
LD (IY+0),C
|
||
ADD IY,BC
|
||
RET
|
||
;
|
||
; ¯à®à¨á®¢ª âਡã⮢ áªà®««-¡ à
|
||
ScrollB:LD A,(IY+4) ; Yo
|
||
SUB (IX+1) ; Y pos from begin window
|
||
INC A
|
||
CP (IX+5) ; Y ⥪. áâப¨ ᯨáª
|
||
LD B,""
|
||
JR Z,.loc1
|
||
call pos
|
||
LD B,"þ"
|
||
JR Z,.loc1
|
||
LD A,(IY+5) ; Yi
|
||
SUB (IX+1) ; Y pos from begin window
|
||
SUB 2
|
||
CP (IX+5) ; Y ⥪. áâப¨ ᯨáª
|
||
LD B,""
|
||
JR Z,.loc1
|
||
LD B,"±"
|
||
.loc1: LD (HL),B
|
||
INC HL
|
||
LD (HL),ColScrlBar
|
||
EX DE,HL
|
||
INC (IX+5) ; Y ⥪. áâப¨ ᯨáª
|
||
ret
|
||
|
||
; à áç¥â ¯®«®¦. áªà®««-¡ à ¯® ⥪. ¯®«®¦¥¨î 㪠§ ⥫ï ᯨáª
|
||
pos: exx
|
||
ld a,(iy+7)
|
||
add a,(iy+8)
|
||
ld e,a ; ᬥé. 㪠§ ⥫ï
|
||
ld c,3 ; ¢ëá®â ¡ à
|
||
call Mult8X8 ; E*C=HL, CurLine * LenScrollBar = num16bit
|
||
ld a,h
|
||
or l
|
||
jr z,ps1
|
||
elnum: ld a,0 ; ç¨á«® í«¥¬¥â®¢ ¢ ᯨ᪥
|
||
or a
|
||
jr z,$+3
|
||
dec a
|
||
ld c,a
|
||
call Divis16X8 ; HL/C=LH
|
||
ps1: ld a,l
|
||
ld (prevPos+1),a
|
||
add a,4 ; ᪮à४â. ¯®«®¦.
|
||
cp (ix+5)
|
||
exx
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;[]===================================================[]
|
||
; ‘®¡ëâ¨ï ListBox-
|
||
EListBox:
|
||
ld a,(DialTab+5+1) ; å à ªâ¥à ®¡ê¥ªâ
|
||
res 7,a
|
||
cp ListBox
|
||
jr nz,ELst1
|
||
ld hl,(DialTab+5+7) ; 2 ï祩ª¨ ⥪. ¯®«®¦. 㪠§ ⥫ï
|
||
ld a,(DialTab+5+16) ; ï祩ª ª®â¥ªáâ
|
||
or a
|
||
jr nz,ELst0
|
||
ld (CurElem0),hl ; á®åà. ¯®«®¦. ªãàá®à ¢ ListBox1
|
||
jr ELst1
|
||
ELst0: ld (CurElem1),hl ; á®åà. ¯®«®¦. ªãàá®à ¢ ListBox2
|
||
ELst1: LD HL,what ; ᯨ᮪ ᮡë⨩
|
||
LD A,(HL)
|
||
INC HL
|
||
CP evMouseFr
|
||
JP Z,ELmouse
|
||
CP evKeyboard
|
||
JP Z,ELkeys
|
||
CP evMessage
|
||
JR Z,ELmess
|
||
CP evCombKey
|
||
RET NZ
|
||
BIT 7,(IX+1)
|
||
JR NZ,ELcomb ; ¬®¦® ¯¥à¥å®¤¨âì - ®¡ê¥ªâ ¢ë¤¥«¥
|
||
PUSH IX
|
||
LD E,(IX+0)
|
||
LD D,0
|
||
ADD IX,DE
|
||
BIT 7,(IX+0)
|
||
POP IX
|
||
RET Z
|
||
INC HL
|
||
LD A,(HL) ; Shift+Tab
|
||
CP 9
|
||
RET NZ
|
||
JP SetLstBox ; ¢ë¤¥«¨âì ¯à¥¤. ®¡ê¥ªâ
|
||
;
|
||
ELmess: LD A,(HL)
|
||
INC HL
|
||
CP msHiddInvr
|
||
ret nz
|
||
BIT 7,(IX+1)
|
||
RET NZ
|
||
LD A,(IX+9)
|
||
OR A
|
||
RET Z
|
||
jp HdLstBoxI
|
||
;
|
||
ELcomb: INC HL
|
||
LD DE,ELexit
|
||
PUSH DE
|
||
LD A,(HL)
|
||
CP 58h ; Cursor Up
|
||
JR Z,ELup
|
||
CP 52h ; Cursor down
|
||
JP Z,ELdown
|
||
CP 59h ; PgUp
|
||
JP Z,ELpgup
|
||
CP 53h ; PgDwn
|
||
JP Z,ELpgdwn
|
||
CP 57h ; Home
|
||
JP Z,ELhome
|
||
CP 51h ; End
|
||
JP Z,ELend
|
||
POP DE
|
||
RET
|
||
|
||
; Šãàá®à ¢¢¥àå
|
||
ELup: LD A,(IX+9)
|
||
CP 2
|
||
RET C
|
||
LD A,(IX+7)
|
||
DEC A
|
||
JP M,ELup1
|
||
CALL RsLstBoxI ; ã¡à âì ¨¢¥àá¨î
|
||
LD (IX+7),A
|
||
CALL StLstBoxI ; ãáâ. ¨¢¥àá¨î
|
||
CALL LstBoxBar
|
||
JP ELboxex
|
||
;
|
||
ELup1: LD A,(IX+8)
|
||
DEC A
|
||
RET M
|
||
LD (IX+8),A
|
||
LD L,(IX+0Ah)
|
||
LD H,(IX+0Bh)
|
||
JR Z,ELupn1
|
||
LD L,(IX+11h)
|
||
LD H,(IX+12h)
|
||
DEC HL
|
||
DEC HL
|
||
LD A,(HL)
|
||
CP 0Dh
|
||
JR NZ,$-4
|
||
INC HL
|
||
ELupn1: LD (IX+11h),L
|
||
LD (IX+12h),H
|
||
CALL PrnLstBox
|
||
CALL LstBoxBar
|
||
JP ELboxex
|
||
|
||
; Šãàá®à ¢¨§
|
||
ELdown: LD A,(IX+9)
|
||
CP 2
|
||
RET C
|
||
LD A,(IX+5)
|
||
SUB (IX+4)
|
||
SUB 2
|
||
LD C,A
|
||
LD A,(IX+7)
|
||
ADD A,(IX+8)
|
||
INC A
|
||
CP (IX+9)
|
||
RET Z
|
||
SUB (IX+8)
|
||
CP C
|
||
JR Z,ELdown1
|
||
CALL RsLstBoxI
|
||
LD (IX+7),A
|
||
CALL StLstBoxI
|
||
CALL LstBoxBar
|
||
JP ELboxex
|
||
ELdown1:LD A,(IX+8)
|
||
INC A
|
||
LD (IX+8),A
|
||
LD L,(IX+0Ah)
|
||
LD H,(IX+0Bh)
|
||
JR Z,ELdwn1
|
||
LD L,(IX+11h)
|
||
LD H,(IX+12h)
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 0Dh
|
||
JR NZ,$-4
|
||
ELdwn1: LD (IX+11h),L
|
||
LD (IX+12h),H
|
||
CALL PrnLstBox
|
||
CALL LstBoxBar
|
||
JP ELboxex
|
||
|
||
; <20> áâà ¨æã ¢¢¥àå
|
||
ELpgup: LD A,(IX+9)
|
||
CP 2
|
||
RET C
|
||
LD A,(IX+8)
|
||
OR A
|
||
LD B,1
|
||
JP Z,ELnopg
|
||
LD A,(IX+5)
|
||
SUB (IX+4)
|
||
SUB 2
|
||
LD C,A
|
||
LD A,(IX+8)
|
||
SUB C
|
||
JR NC,$+3
|
||
SUB A
|
||
LD (IX+8),A
|
||
JR ELpgex
|
||
|
||
; <20> áâà ¨æã ¢¨§
|
||
ELpgdwn:LD A,(IX+9)
|
||
CP 2
|
||
RET C
|
||
LD A,(IX+5)
|
||
SUB (IX+4)
|
||
SUB 2
|
||
LD C,A
|
||
LD A,(IX+9)
|
||
SUB (IX+8)
|
||
LD B,A
|
||
CP C
|
||
JR C,ELnopg
|
||
JR Z,ELnopg
|
||
LD A,(IX+8)
|
||
ADD A,C
|
||
CP (IX+9)
|
||
JR C,$+6
|
||
LD A,(IX+9)
|
||
SUB C
|
||
LD (IX+8),A
|
||
ADD A,C
|
||
CP (IX+9)
|
||
JR C,ELpgex
|
||
JR Z,ELpgex
|
||
LD A,(IX+9)
|
||
SUB C
|
||
LD (IX+8),A
|
||
;
|
||
ELpgex: LD L,(IX+0Ah)
|
||
LD H,(IX+0Bh)
|
||
LD A,(IX+8)
|
||
OR A
|
||
JR Z,ELpgex1
|
||
LD B,A
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 0Dh
|
||
JR NZ,$-4
|
||
DJNZ $-6
|
||
ELpgex1:LD (IX+11h),L
|
||
LD (IX+12h),H
|
||
CALL PrnLstBox
|
||
CALL LstBoxBar
|
||
LD A,(IX+7)
|
||
ADD A,(IX+8)
|
||
CP (IX+9)
|
||
JR C,ELboxex
|
||
LD A,(IX+9)
|
||
SUB (IX+8)
|
||
LD B,A
|
||
;
|
||
ELnopg: DEC B
|
||
LD A,B
|
||
CP (IX+7)
|
||
RET Z
|
||
CALL RsLstBoxI
|
||
LD (IX+7),A
|
||
CALL StLstBoxI
|
||
CALL LstBoxBar
|
||
;
|
||
ELboxex:LD HL,what
|
||
LD (HL),evMessage
|
||
INC HL
|
||
LD (HL),msNewElem
|
||
INC HL
|
||
LD A,(IX+7)
|
||
ADD A,(IX+8)
|
||
LD (HL),A ; ⥪. í«¥¬¥â ᯨáª
|
||
CALL TransMessUp
|
||
LD B,8
|
||
elbxs1: call ExmFire
|
||
RET Z
|
||
HALT
|
||
DJNZ elbxs1
|
||
RET
|
||
|
||
; ‚ ç «® ListBox-ᯨáª
|
||
ELhome: LD A,(IX+8)
|
||
OR A
|
||
JR Z,ELhome1
|
||
LD (IX+8),0
|
||
LD L,(IX+0Ah)
|
||
LD H,(IX+0Bh)
|
||
LD (IX+11h),L
|
||
LD (IX+12h),H
|
||
CALL PrnLstBox
|
||
ELhome1:LD A,(IX+7)
|
||
OR A
|
||
RET Z
|
||
CALL RsLstBoxI
|
||
LD (IX+7),0
|
||
CALL StLstBoxI
|
||
JP LstBoxBar
|
||
|
||
; ‚ ª®¥æ ListBox-ᯨáª
|
||
ELend: LD A,(IX+8)
|
||
ADD A,(IX+7)
|
||
INC A
|
||
CP (IX+9)
|
||
RET Z
|
||
LD A,(IX+5)
|
||
SUB (IX+4)
|
||
SUB 2
|
||
LD C,A
|
||
LD A,(IX+9)
|
||
SUB C
|
||
JR C,ELend1
|
||
JR Z,ELend1
|
||
LD A,(IX+9)
|
||
SUB C
|
||
LD (IX+8),A
|
||
LD L,(IX+0Ah)
|
||
LD H,(IX+0Bh)
|
||
LD B,A
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 0Dh
|
||
JR NZ,$-4
|
||
DJNZ $-6
|
||
LD (IX+11h),L
|
||
LD (IX+12h),H
|
||
CALL RsLstBoxI
|
||
CALL PrnLstBox
|
||
LD A,(IX+9)
|
||
DEC A
|
||
SUB (IX+8)
|
||
LD (IX+7),A
|
||
CALL StLstBoxI
|
||
JP LstBoxBar
|
||
;
|
||
ELend1: CALL RsLstBoxI
|
||
LD A,(IX+9)
|
||
DEC A
|
||
LD (IX+7),A
|
||
CALL StLstBoxI
|
||
JP LstBoxBar
|
||
|
||
|
||
; Ž¡à ¡®âª ᮡë⨩ ®â ¬ë誨
|
||
ELmouse:LD E,(HL) ; Xcoord
|
||
INC HL
|
||
LD D,(HL) ; Ycoord
|
||
LD A,E
|
||
BIT 7,(IX+2)
|
||
JR NZ,$+6
|
||
CP (IX+2) ; Xo pos
|
||
RET C ; <
|
||
BIT 7,(IX+3)
|
||
RET NZ
|
||
CP (IX+3) ; Xi pos
|
||
RET NC ; >
|
||
LD A,D
|
||
CP (IX+4) ; Yo pos list box
|
||
RET C
|
||
CP (IX+5) ; Yi pos list box
|
||
RET NC
|
||
BIT 7,(IX+1) ; Sel or nosel
|
||
PUSH DE
|
||
CALL Z,SetLstBox
|
||
POP DE
|
||
LD HL,ELexit
|
||
PUSH HL
|
||
LD A,(IX+9)
|
||
OR A
|
||
RET Z
|
||
LD A,E
|
||
ADD A,2
|
||
CP (IX+3)
|
||
JR Z,ELmous1
|
||
RET NC
|
||
LD A,E
|
||
CP (IX+2)
|
||
RET Z
|
||
LD A,D
|
||
CP (IX+4)
|
||
RET Z
|
||
INC A
|
||
CP (IX+5)
|
||
RET Z
|
||
LD A,D
|
||
SUB (IX+4)
|
||
DEC A
|
||
ADD A,(IX+8)
|
||
CP (IX+9)
|
||
JR C,$+6
|
||
LD A,(IX+9)
|
||
DEC A
|
||
SUB (IX+8)
|
||
;@@@ CP (IX+7)
|
||
; JR Z,SelLine
|
||
CALL RsLstBoxI
|
||
LD (IX+7),A
|
||
CALL StLstBoxI
|
||
CALL LstBoxBar
|
||
JP ELboxex
|
||
;@@@
|
||
;SelLine:POP HL
|
||
; LD HL,what
|
||
; LD (HL),evCommand
|
||
; INC HL
|
||
; LD (HL),evNothing ;cmSelect
|
||
; RET
|
||
;
|
||
ELmous1:LD A,D
|
||
CP (IX+0Ch)
|
||
RET C
|
||
JP Z,ELup
|
||
CP (IX+0Dh)
|
||
JP Z,ELdown
|
||
RET NC
|
||
CP (IX+0Eh)
|
||
RET Z
|
||
JP C,ELpgup
|
||
JP NC,ELpgdwn
|
||
RET
|
||
|
||
|
||
; Ž¡à ¡®âª ᮡë⨩ ®â ª« ¢¨ âãàë
|
||
ELkeys: LD A,(HL)
|
||
RES 5,A
|
||
BIT 7,(IX+1) ; Sel or nosel
|
||
RET NZ
|
||
CP 9 ; Tab
|
||
JR Z,SetLstBox ; ¢ë¤¥«¨âì á«¥¤. ®¡ê¥ªâ
|
||
CP 0Dh ; ###
|
||
JR Z,SetLstBox ; ¢ë¤¥«¨âì á«¥¤. ®¡ê¥ªâ
|
||
CP (IX+0Fh) ; Hot key
|
||
RET NZ
|
||
SetLstBox:
|
||
CALL MoveObj ; Select Button
|
||
CALL ResDialInv ; Reset previos invert
|
||
LD IX,DialTab+5
|
||
LD E,(IX+2) ; Xo
|
||
INC E
|
||
LD D,(IX+4) ; Y
|
||
LD A,(IX+6) ; Xi
|
||
SUB E
|
||
LD C,A
|
||
CALL SetDialInv
|
||
LD A,(IX+9)
|
||
OR A
|
||
CALL NZ,StLstBoxI
|
||
LD HL,what
|
||
LD (HL),evMessage
|
||
INC HL
|
||
LD (HL),msNewElem
|
||
INC HL
|
||
LD A,(IX+7)
|
||
ADD A,(IX+8)
|
||
LD (HL),A ;’¥ª. í«¥¬¥â
|
||
CALL TransMessUp
|
||
ELexit: LD HL,what
|
||
LD (HL),evNothing
|
||
RET
|
||
|
||
|
||
|
||
|
||
;[]===========================================================[]
|
||
;
|
||
RsLstBoxI:
|
||
PUSH AF
|
||
ld a,ColListBox
|
||
CALL LstBoxInv
|
||
POP AF
|
||
RET
|
||
|
||
; –¢¥â ªãàá®à ¥ ªâ¨¢®£® ®¡ê¥ªâ
|
||
HdLstBoxI:
|
||
ld a,ColLstBxHI
|
||
JR LstBoxInv
|
||
|
||
StLstBoxI:
|
||
ld a,ColLstBoxI ; 梥⠢뤥«. ªãàá®à
|
||
LstBoxInv:
|
||
ld (lbcolor+1),a
|
||
PUSH IY
|
||
PUSH IX
|
||
PUSH IX
|
||
POP IY
|
||
LD IX,DialData
|
||
LD A,(IY+2)
|
||
SUB (IX+0)
|
||
INC A
|
||
LD C,A
|
||
LD A,(IY+4) ;; Yo
|
||
SUB (IX+1)
|
||
INC A
|
||
ADD A,(IY+7) ;;
|
||
LD B,A
|
||
CALL GetPutA
|
||
PUSH DE
|
||
IN A,(Page3)
|
||
PUSH AF
|
||
LD A,(Win2)
|
||
OUT (Page3),A
|
||
LD A,(IY+3)
|
||
SUB (IY+2)
|
||
SUB 3
|
||
LD L,A ; ¤«¨ ¢ë¤¥«. ªãàá®à
|
||
LD H,1
|
||
sub 2 ; ªãàá®à ¥ ¢áî è¨à¨ã ListBox-
|
||
ld b,a
|
||
ld a," "
|
||
ld (de),a ; ¢ 1-¬ ¬¥á⥠"¥ ¢ë¢®¤¨âì" ¢ë¤¥«. ªãàá®à
|
||
inc de
|
||
ld a,ColListBox ; âਡãâ (梥â ᯨ᪠ListBox- )
|
||
ld (de),a
|
||
ex af,af'
|
||
inc de
|
||
lbcolor:LD A,0
|
||
lbclr1: INC DE ; 横« ¯à®à¨á®¢ª¨ ¢ë¤¥«. ªãàá®à
|
||
LD (DE),A
|
||
INC DE
|
||
DJNZ lbclr1
|
||
ld a," "
|
||
ld (de),a ; ¢ ¯®á«. ¬¥á⥠"¥ ¢ë¢®¤¨âì" ¢ë¤¥«. ªãàá®à
|
||
inc de
|
||
ex af,af'
|
||
ld (de),a
|
||
POP AF
|
||
OUT (Page3),A
|
||
POP IX
|
||
LD E,(IY+2)
|
||
INC E
|
||
LD A,(IY+4)
|
||
INC A
|
||
ADD A,(IY+7)
|
||
LD D,A
|
||
CALL PutDialLn
|
||
POP IX
|
||
POP IY
|
||
RET
|
||
|
||
|
||
PrnLstBox:
|
||
PUSH IY
|
||
PUSH IX
|
||
IN A,(Page3)
|
||
PUSH AF
|
||
LD A,(Win2)
|
||
OUT (Page3),A
|
||
PUSH IX
|
||
POP IY
|
||
LD IX,DialData
|
||
LD L,(IY+11h)
|
||
LD H,(IY+12h)
|
||
LD A,(IY+2)
|
||
SUB (IX+0)
|
||
ADD A,2
|
||
LD C,A
|
||
LD A,(IY+4)
|
||
SUB (IX+1)
|
||
INC A
|
||
LD B,A
|
||
LD A,(IY+5)
|
||
SUB (IY+4)
|
||
SUB 2
|
||
PrLsBx0:PUSH AF
|
||
PUSH BC
|
||
CALL GetPutA
|
||
LD A,(IY+3)
|
||
SUB (IY+2)
|
||
SUB 5
|
||
LD B,A
|
||
PrLsBx1:LD A,(HL)
|
||
INC HL
|
||
CP 0Dh
|
||
JR Z,PrLsBx2
|
||
LD (DE),A
|
||
INC DE
|
||
INC DE
|
||
DJNZ PrLsBx1
|
||
LD A,(HL)
|
||
INC HL
|
||
CP 0Dh
|
||
JR NZ,$-4
|
||
PrLsBx2:LD A,B
|
||
OR A
|
||
JR Z,PrLsBx3
|
||
LD A," "
|
||
LD (DE),A
|
||
INC DE
|
||
INC DE
|
||
DJNZ $-3
|
||
PrLsBx3:POP BC
|
||
INC B
|
||
POP AF
|
||
DEC A
|
||
JR Z,PrLsBx4
|
||
LD E,(HL)
|
||
INC E
|
||
DEC E
|
||
JR NZ,PrLsBx0
|
||
PrLsBx4:OR A
|
||
JR Z,PrLsBx6
|
||
PrLsBx5:PUSH AF
|
||
PUSH BC
|
||
CALL GetPutA
|
||
LD A,(IY+3)
|
||
SUB (IY+2)
|
||
SUB 5
|
||
LD B,A
|
||
SUB A
|
||
LD (DE),A
|
||
INC DE
|
||
INC DE
|
||
DJNZ $-3
|
||
POP BC
|
||
INC B
|
||
POP AF
|
||
DEC A
|
||
JR NZ,PrLsBx5
|
||
PrLsBx6:CALL PutDial
|
||
POP AF
|
||
OUT (Page3),A
|
||
POP IX
|
||
POP IY
|
||
RET
|
||
|
||
|
||
PLstBoxI:
|
||
LD E,(IX+2) ; Xo
|
||
INC E
|
||
LD D,(IX+4) ; Y
|
||
LD A,(IX+6) ; Xi
|
||
SUB E
|
||
LD C,A
|
||
CALL SetDialInv
|
||
jp StLstBoxI
|
||
|
||
|
||
GetLstBox:
|
||
LD HL,what
|
||
INC HL
|
||
INC HL
|
||
LD A,(IX+7)
|
||
ADD A,(IX+8)
|
||
LD (HL),A
|
||
RET
|
||
|
||
|
||
; ‚¥àâ. áªà®««-¡ à ®¡ê¥ªâ ListBox
|
||
LstBoxBar:
|
||
LD A,(IX+7)
|
||
ADD A,(IX+8)
|
||
LD E,A
|
||
;LD A,(IX+0Dh) ; line down
|
||
;SUB (IX+0Ch) ; line up
|
||
;SUB 2
|
||
;LD C,A ; ¢ëá®â ¡ à
|
||
ld c,3
|
||
CALL Mult8X8 ; E*C=HL, CurLine * LenScrollBar = num16bit
|
||
LD A,H
|
||
OR L
|
||
JR Z,LBB1
|
||
LD A,(IX+9) ; num16bit / EquipElem
|
||
OR A
|
||
JR Z,$+3
|
||
DEC A
|
||
LD C,A
|
||
CALL Divis16X8 ; HL/C=LH
|
||
LBB1: ld a,l
|
||
ld (prevPos+1),a
|
||
LD A,(IX+0Ch) ; ᬥ饨¥ ®â ç «
|
||
INC A
|
||
ADD A,L
|
||
CP (IX+0Eh) ; prev pos
|
||
RET Z ; ª®£¤ L=0 ?
|
||
PUSH IY
|
||
PUSH IX
|
||
PUSH AF ;-
|
||
PUSH IX
|
||
POP IY
|
||
LD IX,DialData
|
||
LD A,(IY+3)
|
||
SUB (IX+0)
|
||
SUB 2
|
||
LD C,A
|
||
LD A,(IY+0Eh) ; prev pos
|
||
SUB (IX+1)
|
||
LD B,A
|
||
CALL GetPutA
|
||
IN A,(Page3)
|
||
PUSH AF
|
||
LD A,(Win2)
|
||
OUT (Page3),A
|
||
LD A,"±"
|
||
LD (DE),A
|
||
POP AF
|
||
OUT (Page3),A
|
||
LD A,(IY+3)
|
||
SUB 2
|
||
LD E,A
|
||
LD D,(IY+0Eh) ; 0..31
|
||
BIT 7,E
|
||
JR NZ,LBe
|
||
ld h,ColScrlBar
|
||
LD L,"±" ; ¯à¥¤¢. áâ¥à¥âì "þ"
|
||
LD BC,1BB5h ; ᨬ¢®« íªà
|
||
SUB A
|
||
RST ToBIOS
|
||
LBe: LD A,(IY+3)
|
||
SUB 2
|
||
LD E,A
|
||
POP AF ;-
|
||
LD (IY+0Eh),A ; prev pos
|
||
LD D,A ; 0..31
|
||
PUSH DE
|
||
BIT 7,E
|
||
JR NZ,LBe1
|
||
ld h,ColScrlBar
|
||
LD L,"þ" ; ®¢®¥ ¯®«®¦.
|
||
LD BC,1BB5h ; ᨬ¢®« íªà
|
||
SUB A
|
||
RST ToBIOS
|
||
LBe1: POP DE
|
||
LD A,E
|
||
SUB (IX+0)
|
||
LD C,A
|
||
LD A,D
|
||
SUB (IX+1)
|
||
LD B,A
|
||
CALL GetPutA
|
||
IN A,(Page3)
|
||
PUSH AF
|
||
LD A,(Win2)
|
||
OUT (Page3),A
|
||
LD A,"þ"
|
||
LD (DE),A
|
||
POP AF
|
||
OUT (Page3),A
|
||
POP IX
|
||
POP IY
|
||
RET
|
||
|
||
|
||
; <20>à®æ¥¤ãà 㬮¦¥¨ï (8*8bit)
|
||
; <20> ¢å®¤: E*C
|
||
; <20> ¢ë室: HL-१ã«ìâ â
|
||
Mult8X8:SUB A
|
||
LD L,A
|
||
LD H,A
|
||
LD D,A
|
||
CP C
|
||
RET Z
|
||
CP E
|
||
RET Z
|
||
LD H,C
|
||
LD B,8
|
||
.loc1: ADD HL,HL
|
||
JR NC,$+3
|
||
ADD HL,DE
|
||
DJNZ .loc1
|
||
RET
|
||
|
||
; <20>à®æ¥¤ãà ¤¥«¥¨ï (16X8bit)
|
||
; <20> ¢å®¤: HL/C
|
||
; <20> ¢ë室: L-१ã«ìâ â
|
||
; H-®áâ ⮪
|
||
Divis16X8:
|
||
LD B,8
|
||
.loc1: ADD HL,HL
|
||
LD A,H
|
||
JR C,.loc2
|
||
SUB C
|
||
JR NC,.loc3
|
||
ADD A,C
|
||
LD H,A
|
||
DJNZ .loc1
|
||
RET
|
||
.loc2: SUB C
|
||
.loc3: LD H,A
|
||
INC HL
|
||
DJNZ .loc1
|
||
RET
|
||
|
||
|
||
|
||
|
||
|
||
;[]===========================================================[]
|
||
; <20> ç «ì®¥ ®ª® ¯à®£à ¬¬ë
|
||
WinMain1:
|
||
dw 0409h,173Eh ; Yo,Xo,lenY,lenX
|
||
db " FFORMAT ",0 ; ¨¬ï ®ª
|
||
;
|
||
db ListBox ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 0203h,060Fh ; Yo,Xo,lenY,lenX
|
||
db "~D~rives",0 ; ¨¬ï ª« áâ¥à
|
||
db 0 ; ª®â. ¯®¬®éì
|
||
dw DiskList ; ᯨ᮪ í«¥¬¥â®¢
|
||
;
|
||
db ListBox
|
||
dw 0219h,061Eh ; Yo,Xo,lenY,lenX
|
||
db "~A~vailable - Tr - Sc - Type",0
|
||
db 1 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw ItemList ; ᯨ᮪ í«¥¬¥â®¢
|
||
;
|
||
db ClRadioBut ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 0C03h,0116h ; Yo,Xo,lenY,lenX
|
||
db "Options",0 ; ¨¬ï ª« áâ¥à
|
||
db "Put ~s~ystem files",0 ; ¨¬ï í«¥¬¥â
|
||
db 2 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw cSystem ; ï祩ª ¯ ¬ïâ¨
|
||
db 0 ; ª®¥æ ª« áâ¥à
|
||
;
|
||
db ClCheckBut ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 0C22h,0317h ; Yo,Xo,lenY,lenX
|
||
db "Perfomance",0 ; ¨¬ï ª« áâ¥à
|
||
db "S~t~andart mode",0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw Mode0 ; ï祩ª ¯ ¬ïâ¨
|
||
db "O~p~timize sectors",0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw Mode2 ; ï祩ª ¯ ¬ïâ¨
|
||
db "Quic~k~ format",0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw Mode1 ; ï祩ª ¯ ¬ïâ¨
|
||
db 0 ; ª®¥æ ª« áâ¥à
|
||
;
|
||
db InputLine ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 1103h ; Yo,Xo
|
||
db "~L~abel: ",0 ; ¨¬ï ª« áâ¥à
|
||
db 12 ; ¤«¨ । ªâ. áâப¨
|
||
db 4 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw LabelBuff ; ¤à¥á ¡ãä¥à । ªâ. áâப¨
|
||
;
|
||
db Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 1405h ; Yo,Xo
|
||
db " ~F~ormatting ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
db Button
|
||
dw 1417h ; Yo,Xo
|
||
db " ~O~ptions ",0
|
||
db cmOptions
|
||
db 5
|
||
;
|
||
db Button
|
||
dw 142Bh ; Yo,Xo
|
||
db " ~Q~uit ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmCancel
|
||
db 5
|
||
;
|
||
db 0xFF ; ª®¥æ ᯨáª
|
||
|
||
DiskList:
|
||
DiskA: db " X: X.XX ",0Dh
|
||
DiskB: db " X: X.XX ",0Dh,0
|
||
|
||
ItemList:
|
||
db " 1.44 Mb 80 18 DS/HD",0Dh
|
||
db " 1.52 Mb 80 19 DS/HD",0Dh
|
||
db " 1.60 Mb 80 20 DS/HD",0Dh
|
||
db " 1.64 Mb 82 20 DS/HD",0Dh
|
||
db " 1.66 Mb 83 20 DS/HD",0Dh
|
||
db " 1.68 Mb 80 21 DS/HD",0Dh
|
||
db " 1.72 Mb 82 21 DS/HD",0Dh
|
||
db " 1.74 Mb 83 21 DS/HD",0Dh
|
||
db " 720 kB 80 09 DS/DD",0Dh
|
||
db " 800 kB 80 10 DS/DD",0Dh
|
||
db " 820 kB 82 10 DS/DD",0Dh
|
||
db " 830 kB 83 10 DS/DD",0Dh
|
||
db " 636 kB - 80 - 16 TR-DOS",0Dh
|
||
db " 800 kB - 80 - 05 CPM-80",0Dh
|
||
db 0
|
||
|
||
|
||
|
||
|
||
; Žª® ®¯æ¨© ¢ë¡®à ä®à¬ â ¤¨áª®¢®¤®¢
|
||
WinOptions:
|
||
dw 0910h,0D2Fh ; Yo,Xo,lenY,lenX
|
||
db " Setup drivers ",0 ; ¨¬ï ®ª
|
||
;
|
||
db Button
|
||
dw 0A07h ; Yo,Xo
|
||
db " ~O~k ",0
|
||
db cmOkey
|
||
db 5
|
||
;
|
||
db Button
|
||
dw 0A13h ; Yo,Xo
|
||
db " ~C~ancel ",0
|
||
db cmCancel
|
||
db 5
|
||
;
|
||
db Button
|
||
dw 0A1Fh ; Yo,Xo
|
||
db " ~S~ave ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmSave
|
||
db 5
|
||
;
|
||
db ClCheckBut ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 0203h,0212h ; Yo,Xo,lenY,lenX
|
||
db "Drive A:",0 ; ¨¬ï ª« áâ¥à
|
||
db '1.44Mb 3.5"',0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw SetDriveA0 ; ï祩ª ¯ ¬ïâ¨
|
||
db ' 720kB 5.25"',0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw SetDriveA1 ; ï祩ª ¯ ¬ïâ¨
|
||
db 0 ; ª®¥æ ª« áâ¥à
|
||
;
|
||
db ClCheckBut ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 0218h,0312h ; Yo,Xo,lenY,lenX
|
||
db "Drive B:",0 ; ¨¬ï ª« áâ¥à
|
||
db '1.44Mb 3.5"',0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw SetDriveB0 ; ï祩ª ¯ ¬ïâ¨
|
||
db ' 720kB 5.25"',0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw SetDriveB1 ; ï祩ª ¯ ¬ïâ¨
|
||
db " None",0 ; ¨¬ï í«¥¬¥â
|
||
db 3 ; ª®â¥ªáâ. ¯®¬®éì
|
||
dw SetDriveB2 ; ï祩ª ¯ ¬ïâ¨
|
||
db 0 ; ª®¥æ ª« áâ¥à
|
||
;
|
||
db 0xFF ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
|
||
; Žª® ¯à®æ¥áá ä®à¬ â¨à®¢ ¨ï
|
||
WinMain2:
|
||
dw 060Bh,133Ah ; Yo,Xo,lenY,lenX
|
||
db " FFORMAT ",0 ; ¨¬ï ®ª
|
||
;
|
||
db Frame ; à ¬ª "ª àâë" 樫¨¤à®¢
|
||
dw 0502h,0534h ; Yo,Xo,lenY,lenX
|
||
;
|
||
db Frame ; à ¬ª ⥪. 樫¨¤à
|
||
dw 0C02h,0218h ; Yo,Xo,lenY,lenX
|
||
;
|
||
db Frame ; à ¬ª ¥¬ª®á⨠¤¨áª¥âë
|
||
dw 0C1Ch,031Ah ; Yo,Xo,lenY,lenX
|
||
;
|
||
db TextLine
|
||
dw 0704h ; Yo,Xo
|
||
db 75h ; 梥â áâப¨
|
||
db "ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
|
||
metka1: db "ÛÛ",0
|
||
;
|
||
db TextLine
|
||
dw 0730h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "Side 0",0
|
||
;
|
||
db TextLine
|
||
dw 0804h ; Yo,Xo
|
||
db 75h ; 梥â áâப¨
|
||
db "ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
|
||
metka2: db "ÛÛ",0
|
||
;
|
||
db TextLine
|
||
dw 0830h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "Side 1",0
|
||
;
|
||
db TextLine
|
||
dw 0904h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "0246802468024680246802468024680246802468"
|
||
metka3: db "02",0
|
||
;
|
||
db TextLine
|
||
dw 0930h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "Tracks",0
|
||
;
|
||
db TextLine
|
||
dw 0A04h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "0 1 2 3 4 5 6 7"
|
||
metka4: db " 8",0
|
||
;
|
||
db TextLine
|
||
dw 0D04h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "Head: ",0
|
||
;
|
||
db TextLine
|
||
dw 0D0Bh ; Yo,Xo
|
||
db ColFormNumber ; 梥â áâப¨
|
||
db "0",0
|
||
;
|
||
db TextLine
|
||
dw 0D0Ch ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db " Cylinder: ",0
|
||
;
|
||
db TextLine
|
||
dw 0D18h ; Yo,Xo
|
||
db ColFormNumber ; 梥â áâப¨
|
||
space4: db " 0",0
|
||
;
|
||
db TextLine
|
||
dw 0D1Eh ; Yo,Xo
|
||
db ColFormNumber ; 梥â áâப¨
|
||
space1: db "1457664",0
|
||
;
|
||
db TextLine
|
||
dw 0D25h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db " Total disk space",0
|
||
;
|
||
db TextLine
|
||
dw 0E1Eh ; Yo,Xo
|
||
db ColFormNumber ; 梥â áâப¨
|
||
db " "
|
||
space3: db " 0",0 ; ç¨á«® bad-ᥪâ®à®¢
|
||
;
|
||
db TextLine
|
||
dw 0E25h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db " Bad sectors",0
|
||
;
|
||
db TextLine
|
||
dw 0F1Eh ; Yo,Xo
|
||
db ColFormNumber ; 梥â áâப¨
|
||
space2: db "1457664",0
|
||
;
|
||
db TextLine
|
||
dw 0F25h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db " Available bytes",0
|
||
;
|
||
db TextLine
|
||
dw 0504h ; Yo,Xo
|
||
; db ColFormNumber ; 梥â áâப¨
|
||
db 30h ; äãªæ¨ï ¢ DSS ¥ ®âà ¡ âë¢ ¥â
|
||
LABEL1: db "NO NAME ",0
|
||
;
|
||
db TextLine
|
||
dw 0503h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "[",0
|
||
;
|
||
db TextLine
|
||
dw 050Fh ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "]",0
|
||
;
|
||
db TextLine
|
||
dw 052Fh ; Yo,Xo
|
||
db ColFormNumber ; 梥â áâப¨
|
||
db "DISK "
|
||
LDISK: db "A:",0
|
||
;
|
||
db TextLine
|
||
dw 052Eh ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "[",0
|
||
;
|
||
db TextLine
|
||
dw 0536h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "]",0
|
||
;
|
||
db TextLine
|
||
dw 0204h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
db "Formatting "
|
||
metka5: db "1.44 Mb",0
|
||
;
|
||
db TextLine
|
||
dw 0304h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
metka7: db "System files",0
|
||
;
|
||
db TextLine
|
||
dw 0223h ; Yo,Xo
|
||
db ColFormText ; 梥â áâப¨
|
||
metka6: db "(Optimize sectors) ",0
|
||
;
|
||
db Button
|
||
dw 1009h ; Yo,Xo
|
||
db " ~C~ancel ",0
|
||
db cmCancel
|
||
db 5
|
||
;
|
||
db 0xFF ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
|
||
; Žª® § ¯à®á ¢áâ ¢¨âì ¤¨áª¥âã
|
||
InsDiskette:
|
||
DW 0B16h,0824h ; Yo,Xo,lenY,lenX
|
||
DB " Information ",0
|
||
;
|
||
DB TextLine
|
||
DW 0305h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
DB "Insert NEW disk in drive "
|
||
DskName:db "A:",0
|
||
;
|
||
DB Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
DW 0507h ; Yo,Xo
|
||
DB " ~O~k ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
DB Button
|
||
DW 0515h ; Yo,Xo
|
||
DB " ~C~ancel ",0
|
||
db cmCancel
|
||
db 5
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
; Žª® ¯®¤â¢. ¯à¥àë¢ ¨ï ®¯¥à 樨
|
||
Interrupt:
|
||
DW 0A16h,0A24h ; Yo,Xo,lenY,lenX
|
||
DB " Confirmation ",0
|
||
;
|
||
DB TextLine
|
||
DW 0205h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
DB "FFORMAT interrupted by user",0
|
||
;
|
||
DB TextLine
|
||
DW 0408h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
DB "Do you wish to cancel",0
|
||
;
|
||
DB TextLine
|
||
DW 0507h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
DB "the current operation ?",0
|
||
;
|
||
DB Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
DW 0707h ; Yo,Xo
|
||
DB " ~Y~es ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
DB Button
|
||
DW 0715h ; Yo,Xo
|
||
DB " ~N~o ",0
|
||
db cmCancel
|
||
db 5
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
; Žª® ¯à¨ ®âáãâá⢨¨ ¤¨áª¥âë
|
||
MissingDisk:
|
||
DW 0B14h,0928h ; Yo,Xo,lenY,lenX
|
||
DB " Information ",0
|
||
;
|
||
DB TextLine
|
||
DW 0203h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
DB "The disk is missing from the drive",0
|
||
;
|
||
DB TextLine
|
||
DW 040Ah ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
DB "Please insert a disk",0
|
||
;
|
||
DB Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
DW 0609h ; Yo,Xo
|
||
DB " ~O~k ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
DB Button
|
||
DW 0617h ; Yo,Xo
|
||
DB " ~C~ancel ",0
|
||
db cmCancel
|
||
db 5
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
; Žª® ¯à¨ "¡¨â®©" ã«¥¢®© ¤®à®¦ª¥ ¤¨áª¥âë
|
||
NoForm:
|
||
DW 0B14h,0927h ; Yo,Xo,lenY,lenX
|
||
DB " Information ",0
|
||
;
|
||
DB TextLine
|
||
DW 0203h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
DB "This disk could not be formatted:",0
|
||
;
|
||
DB TextLine
|
||
DW 0305h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
DB "unrecoverable error in system",0
|
||
;
|
||
DB TextLine
|
||
DW 0403h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
DB "area or uncompatible format mode",0
|
||
;
|
||
DB Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
DW 060Fh ; Yo,Xo
|
||
DB " ~O~k ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
; Žª® ãᯥ讣® § ¢¥à襨ï ä®à¬ â¨à®¢ ¨ï
|
||
FComplite:
|
||
dw 0B18h,071Fh ; Yo,Xo,lenY,lenX
|
||
db "Í",0
|
||
;
|
||
DB TextLine
|
||
DW 0208h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
DB "Format complete",0
|
||
;
|
||
DB Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
DW 040Bh ; Yo,Xo
|
||
DB " ~O~k ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
; Žª® § ¯¨á¨ á¨áâ. ®¡« á⨠¤¨áª¥âë
|
||
SystemArea:
|
||
dw 0C19h,051Eh ; Yo,Xo,lenY,lenX
|
||
db "Í",0 ; ¡¥§ § £®«®¢ª
|
||
;
|
||
db TextLine
|
||
dw 0204h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
db "Writing system area...",0
|
||
;
|
||
db 0xFF ; ª®¥æ ᯨáª
|
||
|
||
|
||
; Žª® ãᯥ讣® ª®¯¨à®¢ ¨ï á¨áâ. ä ©«®¢
|
||
SysCopy:
|
||
dw 0C19h,051Eh ; Yo,Xo,lenY,lenX
|
||
db "Í",0 ; ¡¥§ § £®«®¢ª
|
||
;
|
||
DB TextLine
|
||
DW 0204h ; Yo,Xo
|
||
db 1Bh ; 梥â áâப¨
|
||
db "System files transfered",0
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
; Žª® § ¯¨á¨ á¨áâ. ä ©«®¢
|
||
SysWrite:
|
||
dw 0C19h,051Eh ; Yo,Xo,lenY,lenX
|
||
db "Í",0 ; ¡¥§ § £®«®¢ª
|
||
;
|
||
db TextLine
|
||
dw 0204h ; Yo,Xo
|
||
db 1Bh ; 梥â áâப¨
|
||
db "Writing system files...",0
|
||
;
|
||
db 0xFF ; ª®¥æ ᯨáª
|
||
|
||
|
||
; Žª® ãᯥ讣® ª®¯¨à®¢ ¨ï á¨áâ. ä ©«®¢
|
||
ErrSysFiles:
|
||
dw 0B19h,081Eh ; Yo,Xo,lenY,lenX
|
||
db "Í",0 ; ¡¥§ § £®«®¢ª
|
||
;
|
||
db TextLine
|
||
dw 0204h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
db "System files not found",0
|
||
db TextLine
|
||
dw 0304h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
db "or work with errors...",0
|
||
;
|
||
db Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
dw 050Bh ; Yo,Xo
|
||
db " ~O~k ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
db 0xFF ; ª®¥æ ᯨáª
|
||
|
||
|
||
; Žª® "‡ é¨â ®â § ¯¨á¨"
|
||
Protect:
|
||
dw 0C19h,071Eh ; Yo,Xo,lenY,lenX
|
||
db "Í",0 ; ¡¥§ § £®«®¢ª
|
||
;
|
||
db TextLine
|
||
dw 0203h ; Yo,Xo
|
||
db 4Fh ; 梥â áâப¨
|
||
db "Disk is write protected!",0
|
||
;
|
||
DB Button ; å à ªâ¥à ®¡ê¥ªâ
|
||
DW 040Bh ; Yo,Xo
|
||
DB " ~O~k ",0 ; ¨¬ï í«¥¬¥â
|
||
db cmOkey ; § ç. ª®¬ ¤
|
||
db 5 ; ª®â¥ªáâ. ¯®¬®éì
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
; Žª® ¨¨æ¨ «¨§ 樨 ¤¨áª®¢®¤
|
||
InitFdd:
|
||
dw 0C1Bh,0519h ; Yo,Xo,lenY,lenX
|
||
db "Í",0
|
||
;
|
||
db TextLine
|
||
dw 0203h ; Yo,Xo
|
||
db 1Fh ; 梥â áâப¨
|
||
db "Resetting drive ...",0
|
||
;
|
||
db 0FFh ; ª®¥æ ᯨáª
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
if release
|
||
else
|
||
PR: push af
|
||
push bc
|
||
push de
|
||
push hl
|
||
push ix
|
||
push iy
|
||
ld de,0100h
|
||
LD C,BIOS.LP_SET_PLACE
|
||
RST ToBIOS
|
||
ld hl,(hours) ; ç áë/¬¨ãâë
|
||
call HEXHL
|
||
ld a," "
|
||
ld bc,0182h
|
||
RST ToBIOS
|
||
ld a,(seconds) ; ᥪã¤ë
|
||
call HEX1
|
||
pop iy
|
||
pop ix
|
||
pop hl
|
||
pop de
|
||
pop bc
|
||
pop af
|
||
ret
|
||
|
||
HEXA: push hl
|
||
push de
|
||
push bc
|
||
push ix
|
||
push iy
|
||
push af
|
||
push af
|
||
ld de,0100h
|
||
LD C,BIOS.LP_SET_PLACE
|
||
RST ToBIOS
|
||
pop af
|
||
call HEX1
|
||
;ld a," "
|
||
;ld bc,0182h
|
||
;RST ToBIOS
|
||
;ld a,(ix+1)
|
||
;call HEX1
|
||
;ld a," "
|
||
;ld bc,0182h
|
||
;RST ToBIOS
|
||
;ld a,(iy+3)
|
||
;call HEX1
|
||
;ld a," "
|
||
;ld bc,0182h
|
||
;RST ToBIOS
|
||
;ld a,(iy+0Ch)
|
||
;call HEX1
|
||
;ld a," "
|
||
;ld bc,0182h
|
||
;RST ToBIOS
|
||
;ld a,(iy+0Eh)
|
||
;call HEX1
|
||
pop af
|
||
pop iy
|
||
pop ix
|
||
pop bc
|
||
pop de
|
||
pop hl
|
||
ret
|
||
|
||
|
||
HEXHL: ld a,h
|
||
call HEX1
|
||
ld a,l
|
||
HEX1: push af
|
||
rra
|
||
rra
|
||
rra
|
||
rra
|
||
call HEX2
|
||
pop af
|
||
HEX2: and 0Fh
|
||
add a,90h
|
||
daa
|
||
adc a,40h
|
||
daa
|
||
ld bc,0182h ; ¢ë¢®¤ 'a' ¢ ⥪. ¯®§¨æ¨¨ ªãàá®à
|
||
RST ToBIOS
|
||
ret
|
||
endif
|