mirror of
https://github.com/Tolik-Trek/File-Manager.git
synced 2026-06-15 01:11:36 +03:00
1409 lines
31 KiB
NASM
Executable File
1409 lines
31 KiB
NASM
Executable File
; <20> ᪮¬¬¥â à¨âì ®¡à ¡®â稪¨ Original, Current, Blank
|
||
|
||
|
||
; <20>®¬¥à ®¡ê¥ªâ®¢
|
||
TextLine equ 0 ; áâப ⥪áâ
|
||
InputLine equ 1 ; áâப । ªâ. ⥪áâ
|
||
InpLine equ 2 ; ¢ ਠâ áâப¨ ¢¢®¤ ¤«ï ®ª "Attributes"
|
||
ClsCheckBox equ 3 ; Check Box
|
||
ClsRadioBut equ 4 ; Radio Button
|
||
Button equ 5 ; Button
|
||
HLine equ 6 ; £®à¨§. «¨¨ï
|
||
PalleteBox equ 7
|
||
TestColor equ 8
|
||
ListBox equ 9
|
||
PResident1 equ 10
|
||
PResident2 equ 11
|
||
ProcesLine equ 12
|
||
|
||
; Š®¬ ¤ë (¢ãâ२¥)
|
||
cmOkey equ 0
|
||
cmCancel equ 1
|
||
cmOriginal equ 2 ; ®â ®ª "Attributes"
|
||
cmCurrent equ 3 ; ®â ®ª "Attributes"
|
||
cmBlank equ 4 ; ®â ®ª "Attributes"
|
||
cmSelect equ 5
|
||
cmDefault equ 6
|
||
cmSkip equ 7
|
||
cmSkipAll equ 8
|
||
cmAll equ 9
|
||
cmAppend equ 10
|
||
|
||
; ‘®¡ëâ¨ï (¢ãâ२¥)
|
||
evNothing equ 0 ; ¥â ᮡë⨩
|
||
evMouseFr equ 1 ; ¦ â ª®¯ª ¬ëè¨
|
||
evKeyboard equ 2 ; ¦ â ª« ¢¨è
|
||
evCombKey equ 3 ; ¦ â ª®¬¡¨ æ¨ï ª« ¢¨è
|
||
evCommand equ 4 ; ¥áâì ª®¬ ¤
|
||
evMessage equ 5 ; ¯¥à¥¤ ç á®®¡é¥¨ï
|
||
evRunComLine equ 6 ; ®âà ¡®â âì ª®¬-áâபã
|
||
|
||
; ‘®®¡é¥¨ï (¢ãâ२¥)
|
||
msHiddInvr equ 80h
|
||
; ®¡ê¥ªâ ~¯ «¨âà ~
|
||
msNewColor equ 81h
|
||
msNewElem equ 82h
|
||
msNewList equ 83h
|
||
|
||
|
||
; ¡ãä¥à á®åà. íªà ¯®¤ áâப®© £®à¨§. ¬¥î
|
||
WinHMenuBuff equ 0C000h+1400h ; ¡ãä¥à § SysScrn ;+ManScrn
|
||
MaxDialWin equ 1400h ; ¬ ªá. à §¬¥à ®ª
|
||
|
||
|
||
|
||
|
||
|
||
|
||
; ¡®à¤îà ®ª®
|
||
FramDSl:db "ɻȼͺºº"
|
||
|
||
WinBoxBuff:
|
||
dw 0C000h ; á®åà. ç «® ¡ãä¥à®¢ ®ª®
|
||
|
||
|
||
;------------ ¤ ë¥ £« ¢®£® ®¡à ¡®â稪 ¤¨ «®£®¢ëå ®ª® --------------
|
||
DialData:
|
||
ds 16 ; â ¡«¨æ £« ¢®£® ¤¨ «. ®ª
|
||
DialName:
|
||
ds 25 ; ¡ãä¥à § £®«®¢ª®¢ ®ª®
|
||
DialTab:
|
||
ds 128 ; £« ¢ ï â ¡«¨æ ®¡ê¥ªâ®¢
|
||
;-----------------------------------------------------------------------
|
||
|
||
|
||
DialData1:
|
||
ds 16 ; â ¡«¨æ ®¡ë箣® ®ª
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; <20>¥à¥¬¥áâ¨âì ®¡ê¥ªâ (¥£® â ¡«¨æã) ¢ ç «® ’ ¡«¨æë ®¡ê¥ªâ®¢
|
||
;
|
||
; ‚室: IX-â ¡«¨æ ®¡ê¥ªâ
|
||
; ‚ë室: â ¡«¨æ ®¡ê¥ªâ ¢ ç «¥ ’ ¡«¨æë ®¡ê¥ªâ®¢ ¨
|
||
; ®¡ê¥ªâ ®â¬¥ç¥, ª ª "¢ 䮪ãá¥" (7-© ¡¨â).
|
||
;---------------------------------------------------------------------
|
||
MoveObj:set 6,(ix+0) ; ®â¬¥â¨âì ®¡ê¥ªâ ¢ ¥£® â ¡«¨æ¥
|
||
ld hl,DialTab+5 ; ’ ¡«¨æ ¢á¥å ®¡ê¥ªâ®¢
|
||
MoveOlp:bit 6,(hl) ; ⥪. ®¡ê¥ªâ ®â¬¥ç¥ ?
|
||
res 6,(hl) ; á¡à. ä« £ ®â¬¥âª¨
|
||
ret nz ; ¤ , â ¡«¨æ ®¡ê¥ªâ 㦥 ¢ ç «¥
|
||
inc hl
|
||
res 7,(hl) ; á¡à. ¯à¨§ ª 䮪ãá ®¡ê¥ªâ
|
||
dec hl
|
||
ld de,work_buffer ; Move first object in buffer
|
||
ld c,(hl) ; Len object label
|
||
ld b,0
|
||
res 6,c
|
||
ldir ; Move
|
||
push hl
|
||
push hl
|
||
ld c,(hl) ; -6
|
||
res 6,c
|
||
add hl,bc ; Search end table
|
||
bit 7,(hl)
|
||
jr z,$-6
|
||
pop bc
|
||
or a ; HL-End table,BC-Address 2 obj
|
||
sbc hl,bc ; HL-BC=Len table -1 object
|
||
ld c,l ; BC=Len table
|
||
ld b,h
|
||
pop hl
|
||
ld de,DialTab+5 ; Move to begin table
|
||
push de
|
||
ld a,b
|
||
or c
|
||
jr z,$+4
|
||
ldir
|
||
ld hl,work_buffer ; Move from buffer to end table
|
||
ld c,(hl) ; object BC=len Object label
|
||
res 6,c
|
||
ldir
|
||
pop hl
|
||
inc hl ; ï祩ª ®¬¥à ®¡ê¥ªâ (+0)
|
||
set 7,(hl) ; ãáâ. ¯à¨§ ª 䮪ãá ®¡ê¥ªâ
|
||
dec hl
|
||
jr MoveOlp
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‘®åà ¨âì ¬¥áâ® ¯®¤ ¤¨ «. ®ª®
|
||
;-------------------------------------------------
|
||
SavDial:PUSH IX
|
||
LD A,(IX+2) ;with shadow
|
||
ADD A,2
|
||
LD L,A
|
||
LD A,(IX+3)
|
||
INC A
|
||
LD H,A ; Wind len
|
||
LD E,(IX+0)
|
||
LD D,(IX+1)
|
||
LD IX,(WinBoxBuff) ; Address Box buffers
|
||
LD A,(page_dial_screen) ; Page buffer
|
||
LD C,0B2h ; ª®¯¨à. ¨§ ®ª ¢ ¡ãä¥à
|
||
call scrn4__
|
||
POP IX
|
||
RET
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20>à®æ¥¤ãà ®ç¨á⪨ ¯«®é ¤¨ 梥⮬ ¤¨ «. ®ª
|
||
; <20> ¢å®¤: IX - ®¯¨á ⥫ì
|
||
;-----------------------------------------------------------
|
||
PutDialRc:
|
||
LD HL,(WinBoxBuff)
|
||
ld bc,MaxDialWin;
|
||
add hl,bc;
|
||
LD B,(IX+3) ;Len Y
|
||
LD C,(IX+2) ;Len X
|
||
LD E," " ; ᨬ¢®« § ¯®«¥¨ï
|
||
LD A,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
putRc1_:LD D,C
|
||
LD (HL),E
|
||
INC HL
|
||
LD (HL),a ; 梥⠮ª
|
||
INC HL
|
||
DEC D
|
||
JR NZ,$-5
|
||
INC HL ; ¬¥áâ® ¤«ï ⥨
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
DJNZ putRc1_
|
||
RET
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; <20>à®æ¥¤ãà «®¦¥¨ï à ¬ª¨ ¯àאַ㣮«ìãî ¯«®é ¤ì ¤¨ «. ®ª
|
||
; <20> ¢å®¤: IX - ®¯¨á ⥫ì
|
||
; HL - ¤à¥á ®¯¨á ⥫ï à ¬ª¨
|
||
;---------------------------------------------------------------------
|
||
PutDialFr:
|
||
PUSH IY
|
||
PUSH HL
|
||
POP IY
|
||
LD HL,(WinBoxBuff)
|
||
ld bc,MaxDialWin;
|
||
add hl,bc;
|
||
LD A,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
LD C,A
|
||
LD A,(IY+0)
|
||
LD (HL),A ;First Line
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
LD B,(IX+2) ;Len DialX
|
||
DEC B
|
||
DEC B
|
||
LD A,(IY+4)
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
DJNZ $-4
|
||
LD A,(IY+1)
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
;
|
||
LD E,(IX+2) ;lenX
|
||
DEC E
|
||
DEC E
|
||
LD D,B
|
||
LD B,(IX+3) ;lenY
|
||
DEC B
|
||
DEC B
|
||
LD A,(IY+5)
|
||
PutDialFr2__:
|
||
LD (HL),A ;middle space window
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
ADD HL,DE
|
||
ADD HL,DE
|
||
LD (HL),A ;middle space window
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
DJNZ PutDialFr2__
|
||
;
|
||
LD A,(IY+2)
|
||
LD (HL),A ;End Line
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
LD B,(IX+2) ;Len X
|
||
DEC B
|
||
DEC B
|
||
LD A,(IY+4)
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
DJNZ $-4
|
||
LD A,(IY+3)
|
||
LD (HL),A
|
||
INC HL
|
||
LD (HL),C
|
||
INC HL
|
||
LD HL,DialName ; â¨â« ®ª
|
||
LD E,L
|
||
LD D,H
|
||
LD B,1
|
||
INC B ;B=Len name+2 (for space)
|
||
LD A,(HL)
|
||
INC HL
|
||
OR A ;0-End name
|
||
JR NZ,$-4
|
||
LD A,(IX+2) ;Len X
|
||
SUB B ;LenX-Len name=Len empty
|
||
SRL A ;Len empty/2=shift
|
||
LD HL,(WinBoxBuff)
|
||
ld bc,MaxDialWin;
|
||
add hl,bc;
|
||
LD C,A
|
||
LD B,0
|
||
ADD HL,BC ;get address name place
|
||
ADD HL,BC
|
||
LD (HL)," " ; ¢¥¤. ¯à®¡¥« ¨¬¥¨ ®ª
|
||
INC HL
|
||
INC HL
|
||
EX DE,HL ;HL=Adr.Name,DE=Adr.Place
|
||
PutDialFr5__:
|
||
LDI ;Move
|
||
INC DE ;Attrib place
|
||
LD A,(HL)
|
||
OR A ;0-End name
|
||
JR NZ,PutDialFr5__
|
||
LD A," " ; § ªà. ¯à®¡¥« ¨¬¥¨ ®ª
|
||
LD (DE),A
|
||
POP IY
|
||
RET
|
||
|
||
|
||
;-------------------------------------------------
|
||
; <20>à®æ¥¤ãà ¢ë¢®¤ ¢ ¡ãä¥à ⥨ ®ª
|
||
; <20> ¢å®¤: IX - ¤à¥á ®¯¨á ⥫ï
|
||
;-------------------------------------------------
|
||
PutDialSh:
|
||
LD HL,(WinBoxBuff)
|
||
ld de,MaxDialWin;
|
||
add hl,de;
|
||
LD A,(IX+2) ; Xlen
|
||
LD E,A
|
||
LD D,0
|
||
ADD HL,DE
|
||
ADD HL,DE
|
||
EXX
|
||
LD E,A ; è¨à¨ ®ª X
|
||
BIT 7,(IX+0) ; Xpos
|
||
JR Z,ExShD1 ; ¯à ¢ ï £à ¨æ íªà
|
||
LD A,(IX+0)
|
||
NEG ; ¢ A- ᪮«ìª® ®ª® § «¥§«® § íªà
|
||
SUB E ; -¤«¨ ®ª =-¢¨¤¨¬ ï ç áâì
|
||
NEG
|
||
LD E,A ; ¤«¨ ¢¨¤¨¬®© ç áâ¨
|
||
ExShD1: LD D,0
|
||
LD HL,(WinBoxBuff)
|
||
ADD HL,DE
|
||
ADD HL,DE
|
||
LD A,(HL) ; ¯¥à¢ ï «¨¨ï ¡¥§ ⥨
|
||
INC HL
|
||
EXX
|
||
LD (HL),A
|
||
INC HL
|
||
EXX
|
||
LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
LD (HL),A
|
||
INC HL
|
||
EXX
|
||
LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
LD (HL),A
|
||
INC HL
|
||
EXX
|
||
LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
LD (HL),A
|
||
INC HL
|
||
; á¥à¥¤¨ ®ª
|
||
LD B,(IX+3) ; ¤«¨ ®ª Y-1
|
||
DEC B
|
||
DShadLp:ADD HL,DE
|
||
ADD HL,DE
|
||
EXX
|
||
ADD HL,DE
|
||
ADD HL,DE
|
||
LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
LD (HL),A
|
||
INC HL
|
||
EXX
|
||
;LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
;AND 7
|
||
;JR NZ,$+4
|
||
;LD A,7
|
||
;LD (HL),A
|
||
ld (hl),color_shadow ; 梥â ⥨
|
||
INC HL
|
||
EXX
|
||
LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
LD (HL),A
|
||
INC HL
|
||
EXX
|
||
;LD A,(HL)
|
||
INC HL
|
||
EXX
|
||
;AND 7
|
||
;JR NZ,$+4
|
||
;LD A,7
|
||
;LD (HL),A
|
||
ld (hl),color_shadow ; 梥â ⥨
|
||
INC HL
|
||
DJNZ DShadLp
|
||
ADD HL,DE ; ª®¥æ «¨¨¨ ¤«ï ⥨
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
EXX
|
||
ADD HL,DE ; ª®¥æ ¡ãä¥à
|
||
ADD HL,DE
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
INC HL
|
||
EXX
|
||
LD B,E
|
||
DShadL1:EXX
|
||
DEC HL ; § ¯®«ï¥¬ á ª®æ
|
||
;LD A,(HL)
|
||
EXX
|
||
DEC HL
|
||
;AND 7
|
||
;JR NZ,$+4
|
||
;LD A,7
|
||
;LD (HL),A
|
||
ld (hl),color_shadow ; 梥â ⥨
|
||
EXX
|
||
DEC HL
|
||
LD A,(HL)
|
||
EXX
|
||
DEC HL
|
||
LD (HL),A
|
||
DJNZ DShadL1
|
||
EXX ; ¤¢ ¯¥à¢ëå § ª®¬¥áâ ¡¥§ ¨§¬¥¥¨©
|
||
DEC HL
|
||
LD A,(HL)
|
||
EXX
|
||
DEC HL
|
||
LD (HL),A
|
||
EXX
|
||
DEC HL
|
||
LD A,(HL)
|
||
EXX
|
||
DEC HL
|
||
LD (HL),A
|
||
EXX
|
||
DEC HL
|
||
LD A,(HL)
|
||
EXX
|
||
DEC HL
|
||
LD (HL),A
|
||
EXX
|
||
DEC HL
|
||
LD A,(HL)
|
||
EXX
|
||
DEC HL
|
||
LD (HL),A
|
||
RET
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20>® § ç¥¨î ª®®à¤¨ â ã§ âì ¤à¥á ¢áâ ¢ª¨ ¢ ¯ ¬ïâ¨
|
||
; Input: BC - Y/X ª®®à¤¨ âë ®â ç « ®ª
|
||
; Output: DE - ¤à¥á ¢áâ ¢ª¨
|
||
;-----------------------------------------------------------
|
||
GetPutA:PUSH HL
|
||
LD HL,(WinBoxBuff)
|
||
ld de,MaxDialWin;
|
||
add hl,de;
|
||
LD A,(IX+2) ;Len X-2
|
||
ADD A,2 ;Full len with shadow
|
||
ADD A,A ;With attributs
|
||
LD E,A ;LenX in bytes
|
||
LD D,0
|
||
LD A,B
|
||
OR A
|
||
JR Z,$+5
|
||
ADD HL,DE
|
||
DJNZ $-1
|
||
LD E,C ;$+5
|
||
ADD HL,DE ;DE-shiftX
|
||
ADD HL,DE
|
||
EX DE,HL ;DE-Address
|
||
POP HL
|
||
RET
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20>à®æ¥¤ãà ¯®¤£®â®¢ª¨ ¨ ¢ë¢®¤ ¤¨ «®£®¢®£® ®ª
|
||
; <20> ¢å®¤: HL - €¤à¥á ®¯¨á ⥫ï
|
||
;-----------------------------------------------------------
|
||
PutDialWn:
|
||
PUSH IY
|
||
LD IY,DialTab ; ’ ¡«¨æ ®¡ê¥ªâ®¢, ¨¬¥îé¨å 䮪ãá
|
||
LD IX,DialData ; â ¡«¨æ ¤¨ «. ®ª
|
||
IN A,(SLOT3)
|
||
PUSH AF
|
||
LD A,(page_dial_screen) ; áâà. ¡ãä¥à
|
||
OUT (SLOT3),A
|
||
LD A,(HL) ; X ¯®«®¦. ¤¨ «. ®ª
|
||
LD (IX+0),A ;+0 Xpos
|
||
INC HL
|
||
LD A,(HL) ; Y ¯®«®¦. ¤¨ «. ®ª
|
||
LD (IX+1),A ;+1 Ypos
|
||
INC HL
|
||
LD A,(HL) ; è¨à¨ ¤¨ «. ®ª
|
||
LD (IX+2),A ;+2 Xlen
|
||
INC HL
|
||
LD A,(HL) ; ¢ëá®â ¤¨ «. ®ª
|
||
LD (IX+3),A ;+3 Ylen
|
||
INC HL
|
||
LD DE,DialName ; â¨â« ¤¨ «. ®ª
|
||
PutDialWn1__:
|
||
LDI
|
||
LD A,(HL)
|
||
OR A
|
||
JR NZ,PutDialWn1__
|
||
LDI
|
||
PUSH HL
|
||
CALL SavDial ; á®åà. ¯«®é ¤ì íªà
|
||
CALL PutDialRc ; ®ç¨áâ¨âì ¬¥á⮠梥⮬ ®ª
|
||
LD HL,FramDSl
|
||
CALL PutDialFr ; ¢áâ ¢¨âì à ¬ªã ¨ â¨â« ®ª
|
||
CALL PutDialSh ; ¢áâ ¢¨âì â¥ì
|
||
LD A,(IX+0) ; move window
|
||
LD (IY+0),A ;+0
|
||
INC IY
|
||
ADD A,(IX+2) ; ®¬¥à ®¡ê¥ªâ
|
||
LD (IY+0),A ;+1
|
||
INC IY
|
||
LD A,(IX+1)
|
||
LD (IY+0),A ;+2
|
||
INC IY
|
||
LD A,(IX+0) ; ª®®à¤¨ âë |þ| (§ ªà.®ª®)
|
||
LD (IY+0),A ;+3
|
||
INC IY
|
||
LD A,(IX+1)
|
||
LD (IY+0),A ;+4
|
||
INC IY
|
||
POP HL
|
||
; iy=DialTab+5
|
||
; 横« ᪠¨à. ®¡ê¥ªâë ¢ ®¯¨á ⥫¥ ®ª
|
||
DialCycle:
|
||
ld a,(hl) ; ⨯ á«¥¤. ®¡ê¥ªâ ®¯¨á ⥫ï
|
||
inc hl
|
||
bit 7,a ; 0FFh test
|
||
jr nz,DialExit ; ª®¥æ ®¯¨á â¥«ï ¤¨ «. ®ª
|
||
ld de,DialCycle
|
||
push de
|
||
cp TextLine
|
||
jp z,PutTextLine ; ¢áâ ¢¨âì ⥪áâ. áâபã
|
||
cp HLine
|
||
jp z,PutHLine ; ¢áâ ¢¨âì à §¤¥«. «¨¨î
|
||
cp InputLine
|
||
jp z,PutInputLine ; ¢áâ ¢¨âì áâபã । ªâ¨à.
|
||
cp InpLine
|
||
jp z,PutInpLine ; ¢áâ ¢¨âì áâபã । ªâ¨à.
|
||
cp Button
|
||
jp z,PutButton
|
||
cp ClsRadioBut
|
||
jp z,PutClsRadioBut ; put claster radio buttons
|
||
cp ClsCheckBox
|
||
jp z,PutClsCheckBox ; put claster check buttons
|
||
cp PalleteBox
|
||
jp z,PPallete
|
||
cp TestColor
|
||
jp z,PTestCol
|
||
cp ProcesLine
|
||
jp z,PProcess
|
||
cp ListBox
|
||
jp z,PListBox
|
||
cp PResident1
|
||
jp z,PResid1
|
||
cp PResident2
|
||
jp z,PResid2
|
||
pop de
|
||
DialExit:
|
||
ld (iy+0),80h ;+5 ª®¥æ â ¡«¨æë ®¡ê¥ªâ®¢
|
||
call PutDial ; ¢ë¢¥á⨠®ª® íªà
|
||
pop af
|
||
out (SLOT3),a
|
||
pop iy
|
||
; <20> ©â¨ ¯®á«¥¤¨© (á ä¨â祩 䮪ãá ) ®¡ê¥ªâ ¢ ®¯¨á ⥫¥
|
||
ld hl,DialTab+5 ; ç «® "¬¥áâëå" â ¡«¨æ ¢ DialTab
|
||
ld d,0
|
||
SelEndL:ld e,(hl) ; à §¬¥à "¬¥á⮩" â ¡«¨æë ¢ DialTab
|
||
add hl,de
|
||
bit 7,(hl) ; 80h (á¬. ¬¥âªã "DialExit")
|
||
jr z,SelEndL ; ¥ ª®¥æ â ¡«¨æë ®¡ê¥ªâ®¢ DialTab
|
||
and a
|
||
sbc hl,de ; ¢¥àãâìáï ¯®á«¥¤. ®¡ê¥ªâ
|
||
; ¯¥à¥ª ç âì ¢ ¡ãä¥à â ¡«¨æã ¯®á«¥¤. ®¡ê¥ªâ
|
||
ld de,work_buffer ; ¢à¥¬. ¡ãä¥à
|
||
ld b,0
|
||
ld c,(hl) ; à §¬¥à "¬¥á⮩" â ¡«¨æë
|
||
ld a,c
|
||
ldir ; § ¯®«. ¡ãä¥àë DialTab+5
|
||
ld c,a
|
||
DEC HL
|
||
LD E,L
|
||
LD D,H
|
||
OR A
|
||
SBC HL,BC
|
||
PUSH HL
|
||
LD BC,DialTab+4
|
||
OR A
|
||
SBC HL,BC
|
||
LD C,L
|
||
LD B,H
|
||
POP HL
|
||
LD A,B
|
||
OR C
|
||
JR Z,$+4
|
||
LDDR
|
||
LD HL,work_buffer ; ¢à¥¬. ¡ãä¥à
|
||
LD DE,DialTab+5
|
||
LD C,(HL)
|
||
LDIR
|
||
;xor a
|
||
;ld (CIflag+1),a ; ¤«ï ®¡ê¥ªâ "¡ãââ®"
|
||
; “áâ ®¢¨âì 䮪ãá ®¡ê¥ªâ
|
||
ld ix,DialTab+5 ; ç «® ’ ¡«¨æë ®¡ê¥ªâ®¢
|
||
ld hl,DIALe__
|
||
push hl
|
||
ld a,(ix+1)
|
||
set 7,(ix+1) ; ãáâ. ¯à¨§ ª 䮪ãá
|
||
cp InputLine
|
||
jp z,InpLineI ; ¢ë¢¥á⨠ªãàá®à ¢ ®¡ê¥ªâ¥
|
||
cp InpLine
|
||
jp z,InpLineI ; ¢ë¢¥á⨠ªãàá®à ¢ ®¡ê¥ªâ¥
|
||
cp Button
|
||
jp z,ButtonI ; 䮪ãá ¡ãâ®
|
||
cp ClsRadioBut
|
||
jp z,ClastI
|
||
cp ClsCheckBox
|
||
jp z,ClastI
|
||
cp ListBox
|
||
jp z,PLstBoxI
|
||
cp PalleteBox
|
||
jp z,PLstBoxI
|
||
pop hl
|
||
DIALe__:ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;///////////////////////////////////////////////////////////
|
||
; ‚ë§®¢ ¤¨ «®£®¢®£® ®ª
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ¤¨ «. ®ª
|
||
;///////////////////////////////////////////////////////////
|
||
DialogW:ld de,(CursorPos) ; á®åà. ¯®«®¦. ªãàá®à ¢ ª®¬. áâப¥
|
||
push de
|
||
call Dialog
|
||
pop de
|
||
ld (CursorPos),de ; ¢®ááâ. ¯®«®¦. ªãàá®à
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld a,(hl)
|
||
inc hl
|
||
ret
|
||
|
||
|
||
;///////////////////////////////////////////////////////////
|
||
; ‚ë§®¢ ¤¨ «®£®¢®£® ®ª ®è¨¡ª¨
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ¤¨ «. ®ª
|
||
;///////////////////////////////////////////////////////////
|
||
DialogEr:
|
||
ld de,color_array+34 ; Select buttons
|
||
ld a,(de)
|
||
push af
|
||
push de
|
||
ld a,(color_array+35) ; Sel.buttons Warning/Errors
|
||
ld (de),a
|
||
ld de,color_array+24 ; Normal text dial. window
|
||
ld a,(de)
|
||
push af
|
||
push de
|
||
ld a,(color_array+28) ; Warning/Errors window
|
||
ld (de),a
|
||
ld de,(CursorPos) ; á®åà. ¯®«®¦. ªãàá®à ¢ ª®¬. áâப¥
|
||
push de
|
||
call Dialog
|
||
pop de
|
||
ld (CursorPos),de ; ¢®ááâ. ¯®«®¦. ªãàá®à
|
||
pop de
|
||
pop af
|
||
ld (de),a
|
||
pop de
|
||
pop af
|
||
ld (de),a
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld a,(hl)
|
||
inc hl
|
||
ret
|
||
|
||
|
||
;///////////////////////////////////////////////////////////
|
||
; ‚ë§®¢ ¯à®á⮣® ¨ä®à¬. ®ª
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ®ª
|
||
;///////////////////////////////////////////////////////////
|
||
WinSimple:
|
||
ld de,0C000h+1400h+1400h
|
||
ld (WinBoxBuff),de
|
||
call PutWindow ; ¢ë¢¥á⨠®ª®
|
||
ld hl,0C000h
|
||
ld (WinBoxBuff),hl
|
||
ret
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‡ ªàë⨥ ¯à®á⮣® ¨ä®à¬. ®ª
|
||
;-------------------------------------------------
|
||
CloseWinSimple:
|
||
ld de,0C000h+1400h+1400h
|
||
ld (WinBoxBuff),de
|
||
call close_window
|
||
ld hl,0C000h
|
||
ld (WinBoxBuff),hl
|
||
ret
|
||
|
||
|
||
;///////////////////////////////////////////////////////////
|
||
; ‚ë§®¢ ¯à®á⮣® ¨ä®à¬. ®ª ®è¨¡ª¨
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ®ª
|
||
;///////////////////////////////////////////////////////////
|
||
WinSimpleEr:
|
||
ld a,(color_array+27) ; Information window
|
||
push af
|
||
ld a,(color_array+28) ; Warning/Errors window
|
||
ld (color_array+27),a
|
||
call WinSimple ; ¢ë¢¥á⨠®ª®
|
||
pop af
|
||
ld (color_array+27),a
|
||
; ¦¤¥¬ ¦ â¨ï ª« ¢¨è¨/¬ë誨
|
||
call get_mouse_info
|
||
jr nz,CloseWinSimple ; ¡ãâ®ë ¦ âë
|
||
ld a,2 ; ®¯à®á ¡¥§ ®¦¨¤ ¨ï
|
||
rst 20h
|
||
jr z,$-8 ; ¥ ¦ âë
|
||
ld a,1 ; ®ç¨áâ¨âì ¡ãä¥à ª« ¢ë
|
||
rst 20h
|
||
jr CloseWinSimple
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Žá®¢®© ®¡à ¡®â稪 ¤¨ «®£®¢®£® ®ª
|
||
;
|
||
; ¢å®¤: hl-®¯¨á â¥«ì ®ª
|
||
;-----------------------------------------------------------
|
||
Dialog: call PutDialWn ; ¢ë¢¥á⨠¤¨ «. ®ª®
|
||
; Žá®¢®© 横« ᮡë⨩ ®ª
|
||
DialogLoop:
|
||
call handle_event ; —¨â ¥¬ ᮡë⨥
|
||
ld ix,DialTab+5 ; ’ ¡«¨æ ®¡ê¥ªâ®¢
|
||
; 横« ¯à®¢¥àª¨ ᮡëâ¨ï ª ¦¤®£® ¨§ ®¡ê¥ªâ®¢
|
||
DialLoop:
|
||
ld hl,DialWex___
|
||
push hl
|
||
ld a,(ix+1) ; ç «® â ¡«¨æë ⥪. ®¡ê¥ªâ
|
||
res 7,a ; ã¡à âì ä« £ 䮪ãá
|
||
; (⮫쪮 䮪ãáë¥ ®¡ê¥ªâë)
|
||
cp InputLine
|
||
jp z,EvInputLine
|
||
cp InpLine
|
||
jp z,EvInpLine
|
||
cp Button
|
||
jp z,EvButton
|
||
cp ClsRadioBut
|
||
jp z,EvClasterBut
|
||
cp ClsCheckBox
|
||
jp z,EvClasterBut
|
||
cp ListBox
|
||
jp z,EListBox
|
||
cp ProcesLine
|
||
jp z,EProcess
|
||
cp PalleteBox
|
||
jp z,EPallete
|
||
cp TestColor
|
||
jp z,ETestCol
|
||
cp PResident1
|
||
jp z,EResident1
|
||
cp PResident2
|
||
jp z,EResident2
|
||
pop hl
|
||
DialWex___:
|
||
ld c,(ix+0) ; ¤«¨ â ¡«¨æë ®¡ê¥ªâ ¢ DialTab
|
||
ld b,0
|
||
add ix,bc ; â ¡«¨æã á«¥¤. ®¡ê¥ªâ
|
||
bit 7,(ix+0) ; ª®¥æ ’ ¡«¨æë ®¡ê¥ªâ®¢ ?
|
||
jr z,DialLoop ; ¥â
|
||
; ¯à®¢¥àª ᮡëâ¨ï á ¬®£® ®ª
|
||
;ld de,DialogC___
|
||
ld de,DialogLoop
|
||
push de
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld a,(hl)
|
||
inc hl
|
||
cp evMouseFr ; Fire from mouse
|
||
jr z,TstExtD1 ; test on Close window
|
||
cp evKeyboard ; Event keyboard
|
||
jr z,TstKeyD ; â¥áâ Esc/Enter
|
||
cp evCombKey ; Event keyboard
|
||
jr z,TstQuitD ; â¥áâ F10
|
||
cp evCommand
|
||
jr z,TstCmnD ; ¯à®¢¥àª ª®¬ ¤ ®â ¬ë誨, ª« ¢ë
|
||
ret ; § ¤ ¢ ®á. 横« ®ª
|
||
|
||
|
||
TstKeyD:ld a,(hl) ;+1 what
|
||
cp 1Bh ; Esc
|
||
jr z,CancelD
|
||
cp 0Dh ; Enter
|
||
jr z,OkeyD
|
||
ret
|
||
;
|
||
TstQuitD:
|
||
inc hl
|
||
ld a,(hl) ;+2 what
|
||
cp 44h ; F10
|
||
jr z,CancelD
|
||
ret
|
||
;
|
||
TstCmnD:ld a,(hl) ;+1 what
|
||
cp cmCancel
|
||
jr z,CancelD
|
||
;
|
||
; ¡ãâ®ë Original, Current, Blank
|
||
ld a,(hl) ;+1 what
|
||
cp cmOriginal
|
||
;jp z,OriginalAttr
|
||
cp cmCurrent
|
||
;jp z,CurrentAttr
|
||
cp cmBlank
|
||
;jp z,BlankAttr
|
||
;
|
||
jr OkeyDn___
|
||
|
||
; Ok
|
||
OkeyD: ld hl,what
|
||
ld (hl),evCommand ; ⨯ ᮡëâ¨ï
|
||
inc hl
|
||
ld (hl),cmOkey ;+1 ®¬¥à ª®¬ ¤ë
|
||
OkeyDn___:
|
||
ld ix,DialTab+5 ; ’ ¡«¨æ ®¡ê¥ªâ®¢
|
||
OkeyLp___:
|
||
ld de,OkeyN___ ; Find clasters & get data
|
||
push de
|
||
ld a,(ix+1) ; ®¬¥à ⥪. ®¡ê¥ªâ
|
||
res 7,a ; ã¡à âì ¯à¨§ ª 䮪ãá
|
||
cp ClsRadioBut
|
||
jp z,GetClsData ; ã§ âì á®áâ. ï祩ª¨ ª« áâ¥à
|
||
cp ClsCheckBox
|
||
jp z,GetClsData
|
||
cp ListBox
|
||
jp z,GetLstBox
|
||
pop de
|
||
OkeyN___:
|
||
ld c,(ix+0) ; à §¬¥à â ¡«¨æë ⥪. ®¡ê¥ªâ
|
||
ld b,0
|
||
add ix,bc ; â ¡«¨æã á«¥¤. ®¡ê¥ªâ
|
||
bit 7,(ix+0) ; ª®¥æ ’ ¡«¨æë ®¡ê¥ªâ®¢ ?
|
||
jr z,OkeyLp___ ; ¥â
|
||
DialogE___:
|
||
; ¢ë©â¨ ¨§ ¤¨ «. ®ª
|
||
call Close_Dial_Win ; § ªàëâì ®ª®
|
||
pop de ; ¡ « á á⥪ (®á. 横« ®ª )
|
||
jp get_fire
|
||
|
||
; Cancel
|
||
CancelD:ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld (hl),evCommand
|
||
inc hl
|
||
ld (hl),cmCancel ; ®¬¥à ª®¬ ¤ë
|
||
jr DialogE___
|
||
|
||
|
||
; <20>஢¥àª ª®®à¤¨ â ¬ë誨 ¨ ¤¨ «. ®ª
|
||
TstExtD1:
|
||
ld e,(hl) ;+1 X Get mouse coords in DE
|
||
inc hl
|
||
ld d,(hl) ;+2 Y
|
||
ld ix,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
ld c,(ix+0) ; Xo «¥¢ ï
|
||
ld b,(ix+1) ; Xi ¯à ¢ ï
|
||
ld l,(ix+2) ; è¨à¨
|
||
ld h,(ix+3) ; ¢ëá®â
|
||
add hl,bc
|
||
ld a,e
|
||
cp c
|
||
jr c,CancelD ; < Xo «¥¢ ï
|
||
cp l
|
||
jr nc,CancelD ; > Xi ¯à ¢ ï
|
||
ld a,d
|
||
cp b
|
||
jr c,CancelD ; < Yo «¥¢ ï
|
||
cp h
|
||
jr nc,CancelD ; > Yi ¯à ¢ ï
|
||
ret ; ¥ ¢ë室¨âì ¨§ ¤¨ «. ®ª
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‚뢥á⨠¤¨ «®£®¢®¥ ®ª® íªà
|
||
;-----------------------------------------------------------
|
||
PutDial:push ix
|
||
ld a,(ix+2) ; with shadow
|
||
add a,2
|
||
ld l,a
|
||
ld a,(ix+3)
|
||
inc a
|
||
ld h,a ; Win len
|
||
ld e,(ix+0)
|
||
ld d,(ix+1)
|
||
ld ix,(WinBoxBuff) ; Address Box buffers
|
||
ld bc,MaxDialWin;
|
||
add ix,bc;
|
||
ld a,(page_dial_screen) ; Page buffer
|
||
ld c,0B3h ; ¨§ ¡ãä¥à ¢ ⥪áâ. ®ª®
|
||
call scrn4__
|
||
pop ix
|
||
ret
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; ‡ ªàëâì ¯à®á⮥ ®ª®
|
||
;-----------------------------------------------------------
|
||
close_window:
|
||
ld ix,DialData1 ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
jr close_dial_win1
|
||
;-----------------------------------------------------------
|
||
; ‡ ªàëâì ¤¨ «®£®¢®¥ ®ª® ¨ ¢®ááâ. ¬¥áâ® ¯®¤ ¨¬
|
||
;-----------------------------------------------------------
|
||
Close_Dial_Win:
|
||
call ResILCr ; á¡à®á¨âì ªãàá®à
|
||
ld ix,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
close_dial_win1:
|
||
ld a,(ix+2) ; with shadow
|
||
add a,2
|
||
ld l,a
|
||
ld a,(ix+3)
|
||
inc a
|
||
ld h,a ; Win len
|
||
ld e,(ix+0)
|
||
ld d,(ix+1)
|
||
ld ix,(WinBoxBuff) ; Address Box buffers
|
||
ld a,(page_dial_screen) ; Page buffer
|
||
ld c,0B3h ; ¨§ ¡ãä¥à ¢ ⥪áâ. ®ª®
|
||
jp scrn4__
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Setting dialog invert objects
|
||
;
|
||
; Input: e=X pos
|
||
; d=Y pos
|
||
; c=X len
|
||
;-----------------------------------------------------------
|
||
SetDialInv:
|
||
push ix
|
||
ld ix,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
in a,(SLOT3)
|
||
push af
|
||
ld a,(page_dial_screen) ; Page buffer
|
||
out (SLOT3),a
|
||
ld l,c
|
||
ld h,1
|
||
ld (RDlIlen+1),hl ; á®åà. à §¬¥à
|
||
ld (RDlIpos+1),de ; á®åà. ¯®«®¦.
|
||
ld a,e
|
||
sub (ix+0)
|
||
ld c,a
|
||
ld a,d
|
||
sub (ix+1)
|
||
ld b,a
|
||
call GetPutA
|
||
ex de,hl
|
||
ld (RDlIbuf+2),hl
|
||
dec e; ; 0-ï ¤«¨ ? (ª®£¤ "Input Line" ¡¥§ ¨¬¥¨)
|
||
inc e;
|
||
jr z,SetDia1; ; ¢ë©â¨
|
||
ld b,e
|
||
set_dial_tmp_inv:
|
||
ld a,(color_array+26) ; 30h 梥â Selected title (®¡ê¥ªâ )
|
||
ld e,a
|
||
ld a,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª
|
||
ld d,a
|
||
SetDin1:inc hl
|
||
ld a,(hl)
|
||
and 0Fh
|
||
cp d ; hot-¡ãª¢ ?
|
||
ld a,e
|
||
jr nz,$+5
|
||
and 0F0h
|
||
or d
|
||
ld (hl),a
|
||
inc hl
|
||
djnz SetDin1
|
||
ld ix,(RDlIbuf+2) ; Put Name with invert
|
||
ld hl,(RDlIlen+1)
|
||
ld de,(RDlIpos+1)
|
||
call PutDialLn
|
||
SetDia1:pop af
|
||
out (SLOT3),a
|
||
pop ix
|
||
ret
|
||
|
||
|
||
;-------------------------------------------------
|
||
; Set claster buttons invert
|
||
; Input:
|
||
; E - X pos
|
||
; D - Y pos
|
||
; C - X len
|
||
; (¤«ï CheckBox)
|
||
;-------------------------------------------------
|
||
SetClasInv:
|
||
;PUSH IX
|
||
;LD IX,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
;IN A,(SLOT3)
|
||
;PUSH AF ; á®åà. page4
|
||
;LD A,(page_dial_screen)
|
||
;OUT (SLOT3),A ; ¢ª«. ¡ãä¥à
|
||
;PUSH HL
|
||
;LD L,C ; Len X
|
||
;LD H,1 ; Len Y
|
||
;LD (RClIlen+1),HL ; Save len
|
||
;LD (RClIpos+1),DE ; Save pos
|
||
;dec c ; 0-ï ¤«¨ ? (ª®£¤ "Input Line" ¡¥§ ¨¬¥¨)
|
||
;inc c
|
||
;jr z,SetDia3 ; ¢ë©â¨
|
||
;LD A,E
|
||
;SUB (IX+0)
|
||
;LD C,A
|
||
;LD A,D
|
||
;SUB (IX+1)
|
||
;LD B,A
|
||
;CALL GetPutA
|
||
;EX DE,HL
|
||
;LD (RClIbuf+2),HL
|
||
;LD B,E
|
||
;ld a,(color_array+26) ; 30h 梥⠢뤥«. ®¡ê¥ªâ
|
||
;ld a,(ColDialWn) ; 梥⠤¨ «. ®ª
|
||
;ld e,a
|
||
;ld a,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª
|
||
;ld d,a
|
||
;SetDin2:inc hl
|
||
;ld a,(hl)
|
||
;and 0Fh
|
||
;cp d ; hot-¡ãª¢ ?
|
||
;ld a,e
|
||
;jr nz,$+5
|
||
;and 0F0h
|
||
;or d
|
||
;ld (hl),a
|
||
;inc hl
|
||
;djnz SetDin2
|
||
;LD IX,(RClIbuf+2) ; Put Name with invert
|
||
;LD HL,(RClIlen+1)
|
||
;LD DE,(RClIpos+1)
|
||
;CALL PutDialLn
|
||
;SetDia3:POP HL
|
||
;POP AF
|
||
;OUT (SLOT3),A
|
||
;POP IX
|
||
ld e,(ix+2) ; Xo pos element
|
||
inc e
|
||
;inc e
|
||
;inc e
|
||
ld d,(hl) ; Y pos element
|
||
ld (CursorPos),de
|
||
push hl
|
||
call PILCurs ; Set cursor
|
||
pop hl
|
||
;ld a,1
|
||
;ld (CIflag+1),a
|
||
ret
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; Res dialog invert objects
|
||
; Input: None
|
||
;-----------------------------------------------------------
|
||
ResDialInv:
|
||
push ix
|
||
in a,(SLOT3)
|
||
push af
|
||
ld a,(page_dial_screen) ; Page buffer
|
||
out (SLOT3),a
|
||
ld a,(RDlIlen+1)
|
||
or a; ; 0-ï ¤«¨ ? (ª®£¤ "Input Line" ¡¥§ ¨¬¥¨)
|
||
jr z,ResDia1; ; ¢ë©â¨
|
||
ld hl,(RDlIbuf+2)
|
||
ld b,a
|
||
ld a,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
ld e,a
|
||
ld a,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª
|
||
ld d,a
|
||
ResDin1:inc hl
|
||
ld a,(hl)
|
||
and 0Fh
|
||
cp d ; hot-¡ãª¢ ?
|
||
ld a,e
|
||
jr nz,$+5
|
||
and 0F0h
|
||
or d
|
||
ld (hl),a
|
||
inc hl
|
||
djnz ResDin1
|
||
RDlIbuf:ld ix,0 ; Put Name with invert
|
||
RDlIlen:ld hl,0
|
||
RDlIpos:ld de,0
|
||
call PutDialLn
|
||
;CIflag: ld a,0 ; 1 - Was claster invert
|
||
;or a
|
||
;call nz,ResClasInv
|
||
ResDia1:call ResILCr ; ¢ëª«. ªãàá®à ®¡ê¥ªâ "Input Line"
|
||
pop af
|
||
out (SLOT3),a
|
||
pop ix
|
||
ld hl,what
|
||
ld (hl),evMessage ; ⨯ ᮡëâ¨ï
|
||
inc hl
|
||
ld (hl),msHiddInvr ; ¢ãâà. ª®¬ ¤
|
||
jp TransMessage ; ¯¥à¥¤ âì á®®¡é¥¨¥
|
||
|
||
|
||
;-------------------------------------------------
|
||
; Res Claster invert
|
||
; Input: None
|
||
;-------------------------------------------------
|
||
ResClasInv:
|
||
push ix
|
||
IN A,(SLOT3)
|
||
PUSH AF ; á®åà. page4
|
||
LD A,(page_dial_screen)
|
||
OUT (SLOT3),A ; ¢ª«. ¡ãä¥à
|
||
push hl
|
||
;LD HL,(RClIbuf+2)
|
||
;ld a,(RClIlen+1)
|
||
;or a; ; 0-ï ¤«¨ ? (ª®£¤ "Input Line" ¡¥§ ¨¬¥¨)
|
||
;jr z,ResDia2; ; ¢ë©â¨
|
||
;ld b,a
|
||
;ld a,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
;ld e,a
|
||
;ld a,(color_array+25) ; 梥â hot-¡ãª¢ë ¤¨ «. ®ª
|
||
;ld d,a
|
||
;ResDin2:inc hl
|
||
;ld a,(hl)
|
||
;and 0Fh
|
||
;cp d ; hot-¡ãª¢ ?
|
||
;ld a,e
|
||
;jr nz,$+5
|
||
;and 0F0h
|
||
;or d
|
||
;ld (hl),a
|
||
;inc hl
|
||
;djnz ResDin2
|
||
;RClIbuf:LD IX,0 ; Put Name with invert
|
||
;RClIlen:LD HL,0
|
||
;RClIpos:LD DE,0
|
||
;CALL PutDialLn
|
||
;ResDia2:
|
||
call ResILCr ; ¢ëª«. ªãàá®à
|
||
;xor a
|
||
;LD (CIflag+1),a
|
||
pop hl
|
||
POP AF
|
||
OUT (SLOT3),A
|
||
pop ix
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‚뢮¤ íªà
|
||
;-------------------------------------------------
|
||
PutDialLn:
|
||
ld a,d
|
||
cp 31
|
||
ret nc
|
||
bit 7,e
|
||
jr z,pdln__
|
||
ld a,e
|
||
ld e,0
|
||
neg
|
||
ld c,a
|
||
sub l
|
||
neg
|
||
ld l,a
|
||
ret z
|
||
ret m
|
||
ld a,c
|
||
add a,a
|
||
db 0DDh
|
||
add a,l
|
||
db 0DDh
|
||
ld l,a
|
||
jr nc,pdln__
|
||
db 0DDh
|
||
inc h
|
||
pdln__: ld a,e
|
||
cp 80
|
||
ret nc
|
||
add a,l
|
||
cp 80
|
||
jr c,$+6
|
||
ld a,80
|
||
sub e
|
||
ld l,a
|
||
ld a,(page_dial_screen)
|
||
ld c,0B3h ; ª®¯¨à. á ¡ãä¥à íªà
|
||
jp scrn4__
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;-------------------------------------------------
|
||
; ‚뤥«¨âì ¡ãâ®
|
||
;-------------------------------------------------
|
||
PushBut:in a,(SLOT3)
|
||
push af
|
||
ld a,(page_dial_screen) ; Page buffer
|
||
out (SLOT3),a
|
||
push ix
|
||
ld e,(ix+2) ; Xo left
|
||
ld d,(ix+4) ; Y
|
||
ld a,(ix+3) ; Xi right
|
||
sub e
|
||
ld l,a
|
||
ld h,1 ; Y len
|
||
push hl ; save Len
|
||
push de ; save Pos
|
||
ld a,l
|
||
ld ix,DialData ; â ¡«¨æ ®á. ¤¨ «. ®ª
|
||
ld a,e
|
||
sub (ix+0)
|
||
ld c,a
|
||
ld a,d
|
||
sub (ix+1)
|
||
ld b,a
|
||
call GetPutA
|
||
ld c,l
|
||
sla c
|
||
ld b,0
|
||
ld hl,work_buffer
|
||
ex de,hl
|
||
ldir ; ᪮¯¨à. ¢ ¡ãä¥à
|
||
pop de
|
||
pop hl
|
||
ld ix,work_buffer
|
||
in a,(SLOT3) ; Page1
|
||
ld c,0B3h ; ¨§ ¡ãä¥à íªà
|
||
call scrn4__
|
||
ld b,8
|
||
halt
|
||
djnz $-1
|
||
pop ix
|
||
pop af
|
||
out (SLOT3),a
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;---------------------------------------------------------------------
|
||
; <20>¥à¥¤ ç á®®¡é¥¨© ¯® ®¡ê¥ªâ ¬ á ⥪ã饣® ®¡ê¥ªâ
|
||
;---------------------------------------------------------------------
|
||
TransMessUp:
|
||
push iy
|
||
push ix
|
||
jr TransEx
|
||
|
||
;---------------------------------------------------------------------
|
||
; <20>¥à¥¤ ç á®®¡é¥¨© ¯® ®¡ê¥ªâ ¬ á ¯¥à¢®£® ®¡ê¥ªâ
|
||
;---------------------------------------------------------------------
|
||
TransMessage:
|
||
push iy
|
||
push ix
|
||
ld ix,DialTab+5 ; ’ ¡«¨æ ®¡ê¥ªâ®¢
|
||
TransLp:ld hl,TransEx
|
||
push hl
|
||
ld a,(ix+1) ; ⥪ã騩 ®¡ê¥ªâ
|
||
and 7Fh ; á¡à. 7-© ¡¨â (ä« £ ¢ë¤¥«¥¨ï ®¡ê¥ªâ )
|
||
cp InputLine
|
||
jp z,EvInputLine
|
||
cp InpLine
|
||
jp z,EvInpLine
|
||
cp Button
|
||
jp z,EvButton
|
||
cp ClsCheckBox
|
||
jp z,EvClasterBut
|
||
cp ClsRadioBut
|
||
jp z,EvClasterBut
|
||
cp ListBox
|
||
jp z,EListBox
|
||
cp PalleteBox
|
||
jp z,EPallete
|
||
cp TestColor
|
||
jp z,ETestCol
|
||
cp PResident1
|
||
jp z,EResident1
|
||
cp PResident2
|
||
jp z,EResident2
|
||
pop hl
|
||
TransEx:ld c,(ix+0)
|
||
ld b,0
|
||
add ix,bc ; á«¥¤. ®¡ê¥ªâ
|
||
bit 7,(ix+0)
|
||
jr z,TransLp ; ¥ ª®¥æ â ¡«¨æë ®¡ê¥ªâ®¢
|
||
pop ix
|
||
pop iy
|
||
ld hl,what ; ¯®«¥ ᮡë⨩
|
||
ld a,(hl)
|
||
cp evMessage ; ⨯ ᮡëâ¨ï
|
||
ret nz ; test command
|
||
ld (hl),evNothing
|
||
ret
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
;===========================================================
|
||
; ‚뢮¤ Ž¡ë箣® Žª
|
||
;===========================================================
|
||
|
||
|
||
|
||
;-----------------------------------------------------------
|
||
; <20>à®æ¥¤ãà ¯®¤£®â®¢ª¨ ¨ ¢ë¢®¤ ®¡ë箣® ®ª .
|
||
; ˆá¯®«ì§ã¥âáï ¤«ï ¢ë¢®¤ ¨ä. ®ª®.
|
||
; ¢å®¤: hl=®¯¨á â¥«ì ®ª
|
||
;-----------------------------------------------------------
|
||
PutWindow:
|
||
ld a,(color_array+24) ; 梥⠤¨ «. ®ª
|
||
push af
|
||
ld a,(color_array+27) ; 梥⠨ä®à¬. ®ª®
|
||
ld (color_array+24),a ; 梥⠤¨ «. ®ª
|
||
ld ix,DialData1; ; â ¡«¨æ ¤¨ «. ®ª
|
||
in a,(SLOT3)
|
||
push af
|
||
ld a,(page_dial_screen) ; áâà. ¡ãä¥à ®ª
|
||
out (SLOT3),a
|
||
ld a,(hl) ; X ¯®«®¦. ®ª
|
||
ld (ix+0),a ;+0 Xpos
|
||
inc hl
|
||
ld a,(hl) ; Y ¯®«®¦. ®ª
|
||
ld (ix+1),a ;+1 Ypos
|
||
inc hl
|
||
ld a,(hl) ; è¨à¨ ®ª
|
||
ld (ix+2),a ;+2 Xlen
|
||
inc hl
|
||
ld a,(hl) ; ¢ëá®â ®ª
|
||
ld (ix+3),a ;+3 Ylen
|
||
inc hl
|
||
ld de,DialName ; â¨â« ®ª
|
||
put_win1__:
|
||
ldi
|
||
ld a,(hl)
|
||
or a
|
||
jr nz,put_win1__
|
||
ldi
|
||
push hl
|
||
call SavDial ; á®åà. ¯«®é ¤ì íªà
|
||
call PutDialRc ; ®ç¨áâ¨âì ¬¥á⮠梥⮬ ®ª
|
||
ld hl,FramDSl
|
||
call PutDialFr ; ¢áâ ¢¨âì à ¬ªã ¨ â¨â« ®ª
|
||
call PutDialSh ; ¢áâ ¢¨âì â¥ì
|
||
pop hl
|
||
; 横« ᪠¨à. ®¡ê¥ªâë ®¯¨á â¥«ï ®ª
|
||
put_win_cycle:
|
||
ld a,(hl) ; ⨯ á«¥¤. ®¡ê¥ªâ ®¯¨á ⥫ï
|
||
inc hl
|
||
bit 7,a ; -1 ?
|
||
jr nz,put_win_done ; ª®¥æ ®¯¨á â¥«ï ®ª
|
||
ld de,put_win_cycle
|
||
push de
|
||
cp TextLine
|
||
jp z,PutTextLine ; ¢áâ ¢¨âì ⥪áâ. áâபã
|
||
cp HLine
|
||
jp z,PutHLine ; ¢áâ ¢¨âì à §¤¥«. «¨¨î
|
||
;cp Frame
|
||
;jp z,PFrame ; ¢áâ ¢¨âì à ¬ªã
|
||
pop de
|
||
put_win_done:
|
||
call PutDial ; ¢ë¢¥á⨠®ª® íªà
|
||
pop af
|
||
out (SLOT3),a
|
||
pop af
|
||
ld (color_array+24),a ; ¢®ááâ. 梥â
|
||
ret
|