mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
промежуточное
This commit is contained in:
parent
f6e41854a8
commit
1199181d53
@ -1 +1 @@
|
|||||||
31
|
42
|
||||||
100
DSS/KEYINTER.ASM
100
DSS/KEYINTER.ASM
@ -110,37 +110,56 @@ SCANKEY LD HL,HOST
|
|||||||
;
|
;
|
||||||
IF CLASSIC_CURSOR ;------------------------------;
|
IF CLASSIC_CURSOR ;------------------------------;
|
||||||
|
|
||||||
ECHOKEY:
|
ECHOKEY: ;R01
|
||||||
CURCOUNT+1: LD A,#FF ;R01
|
.CURCOUNT+1: LD A,#FF
|
||||||
INC A ;R01
|
INC A
|
||||||
LD (CURCOUNT),A ;R01
|
LD (.CURCOUNT),A
|
||||||
AND #FF ;R01
|
AND #FF
|
||||||
JR NZ,NOTUR ;R01
|
JR NZ,.NOTUR
|
||||||
CURSYM+1: LD A,#00 ;R01
|
.CURSYM+1: LD A,#00
|
||||||
XOR #01 ;R01
|
XOR #01
|
||||||
LD (CURSYM),A ;R01
|
LD (.CURSYM),A
|
||||||
LD A," " ;R01
|
|
||||||
JR Z,CURSKI ;R01
|
CALL CURSOR
|
||||||
LD A,"_" ;R01
|
PUSH DE
|
||||||
CURSKI: CALL PUTCHAR ;R01
|
|
||||||
LD A,8 ;R01 BACKSPACE
|
LD A," "
|
||||||
CALL PUTCHAR ;R01
|
JR Z,.CURSKI
|
||||||
NOTUR: CALL SCANKEY
|
LD A,"_"
|
||||||
JR Z,ECHOKEY
|
.CURSKI: CALL PUTCHAR.NO_SCROLL ;R03
|
||||||
PUSH DE
|
|
||||||
PUSH BC
|
POP DE
|
||||||
PUSH AF ;R01
|
CALL LOCATE
|
||||||
LD A," " ;R01
|
;LD A,8 ; BACKSPACE
|
||||||
CALL PUTCHAR ;R01
|
;CALL PUTCHAR
|
||||||
LD A,8 ;R01 BACKSPACE
|
.NOTUR: CALL SCANKEY
|
||||||
CALL PUTCHAR ;R01
|
JR Z,ECHOKEY
|
||||||
POP AF ;R01
|
PUSH DE
|
||||||
CALL PUTCHAR
|
PUSH BC
|
||||||
POP BC
|
PUSH AF
|
||||||
POP DE
|
|
||||||
LD A,E
|
CALL CURSOR
|
||||||
AND A
|
PUSH DE
|
||||||
RET
|
|
||||||
|
LD A," "
|
||||||
|
CALL PUTCHAR.NO_SCROLL ;R03
|
||||||
|
|
||||||
|
;LD A,8 ; BACKSPACE
|
||||||
|
;CALL PUTCHAR
|
||||||
|
POP DE
|
||||||
|
POP AF
|
||||||
|
PUSH DE
|
||||||
|
;R01 [v]
|
||||||
|
CALL PUTCHAR.NO_SCROLL
|
||||||
|
|
||||||
|
POP DE
|
||||||
|
CALL LOCATE
|
||||||
|
|
||||||
|
POP BC
|
||||||
|
POP DE
|
||||||
|
LD A,E
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
|
||||||
ELSE ;------------------------------;
|
ELSE ;------------------------------;
|
||||||
|
|
||||||
@ -159,9 +178,11 @@ ECHOKEY: CALL Cursor_On ;
|
|||||||
PUSH AF
|
PUSH AF
|
||||||
CALL Cursor_Off ; ¢ëª«. ªãàá®à
|
CALL Cursor_Off ; ¢ëª«. ªãàá®à
|
||||||
POP AF
|
POP AF
|
||||||
OR A ; ¤®¡ ¢¨«
|
OR A
|
||||||
;!FIXIT scroll § ¬¥¨âì ¢ë¢®¤ ᨬ¢®« ¡¨®á®¬ ¨«¨ WRCHAR
|
;!FIXIT scroll § ¬¥¨âì ¢ë¢®¤ ᨬ¢®« ¡¨®á®¬ ¨«¨ WRCHAR
|
||||||
CALL NZ,PUTCHAR ; ¢ë¢®¤ "a" íªà
|
; LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||||
|
; RST ToBIOS
|
||||||
|
CALL NZ,PUTCHAR.NO_SCROLL ; ¤®¡ ¢¨« ¢ë¢®¤ "a" íªà
|
||||||
;
|
;
|
||||||
POP BC
|
POP BC
|
||||||
POP DE
|
POP DE
|
||||||
@ -186,11 +207,16 @@ Cursor_On: LD C,BIOS.LP_GET_PLACE ; 㧭
|
|||||||
JR Z,.put
|
JR Z,.put
|
||||||
LD B,CURSOR_ZG ; ç¥àâ
|
LD B,CURSOR_ZG ; ç¥àâ
|
||||||
LD A,(KEYFLAG) ; ä« £¨ ª« ¢ë
|
LD A,(KEYFLAG) ; ä« £¨ ª« ¢ë
|
||||||
BIT 1,A ; ¡¨â Ins
|
;BIT 1,A ; ¡¨â Ins
|
||||||
JR NZ,.put
|
AND %0000'0010 ; ¡¨â Ins
|
||||||
|
JR NZ,.put
|
||||||
LD B,INS_CUR_ZG ; ¡«®ª
|
LD B,INS_CUR_ZG ; ¡«®ª
|
||||||
.put: XOR A ; ®¬¥à ®ª
|
.put: XOR A ; ®¬¥à ®ª
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD DE,(Cursor_Off.pos)
|
||||||
|
CALL LOCATE
|
||||||
|
|
||||||
LD A,1
|
LD A,1
|
||||||
LD (Cursor_Off.Flag),A
|
LD (Cursor_Off.Flag),A
|
||||||
LD A,delay_curs
|
LD A,delay_curs
|
||||||
@ -216,6 +242,10 @@ Cursor_Off:
|
|||||||
XOR A
|
XOR A
|
||||||
LD BC,NORM_ZG*256+BIOS.WIN_PUT_SYM ; ᨬ¢®« íªà
|
LD BC,NORM_ZG*256+BIOS.WIN_PUT_SYM ; ᨬ¢®« íªà
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
|
||||||
|
LD DE,(Cursor_Off.pos)
|
||||||
|
CALL LOCATE
|
||||||
|
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; ‚¥ªâ®à ®¡á«ã¦¨¢ ¨ï ªãàá®à
|
; ‚¥ªâ®à ®¡á«ã¦¨¢ ¨ï ªãàá®à
|
||||||
|
|||||||
127
DSS/VIDEO.ASM
127
DSS/VIDEO.ASM
@ -20,70 +20,38 @@ CLEAR: LD C,BIOS.LP_CLS_WIN2
|
|||||||
|
|
||||||
; PRINT NULL-TERMINATED CHARS STRING
|
; PRINT NULL-TERMINATED CHARS STRING
|
||||||
; HL - STRING POINTER
|
; HL - STRING POINTER
|
||||||
PCHARS: ;CALL CURSOR
|
PCHARS:
|
||||||
;LD A,E
|
|
||||||
;LD (.start_x),A
|
|
||||||
|
|
||||||
.loop: LD A,(HL)
|
.loop: LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
OR A
|
OR A
|
||||||
RET Z
|
RET Z
|
||||||
;PUSH HL
|
|
||||||
;LD C,A
|
|
||||||
CALL PUTCHAR
|
CALL PUTCHAR
|
||||||
|
;!TEST CR+LF+SCROLL
|
||||||
;CALL CURSOR
|
;CALL CURSOR
|
||||||
;LD A,(.start_x)
|
;LD A,D ; ¯à®¢¥àª ¯¥à¥å®¤ ªãàá®à
|
||||||
;CP E
|
;OR E ; ¢ á ¬®¥ ç «® (X:Y == 0:0)
|
||||||
|
;CALL Z,PUTCHAR.LFF
|
||||||
;POP HL
|
;
|
||||||
JP .loop
|
JP .loop
|
||||||
NO_NEED_SCROLL: DB 1
|
|
||||||
|
|
||||||
BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
|
||||||
RST ToBIOS
|
|
||||||
XOR A
|
|
||||||
CP E
|
|
||||||
JP Z,LOCATE
|
|
||||||
DEC E
|
|
||||||
JP LOCATE
|
|
||||||
|
|
||||||
;-----[]
|
|
||||||
LF_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
|
||||||
RST ToBIOS
|
|
||||||
LD A,D
|
|
||||||
CP #1F
|
|
||||||
JR NC,LFF
|
|
||||||
INC D
|
|
||||||
IFN EnoughtOnly_LF
|
|
||||||
JP LOCATE
|
|
||||||
ELSE
|
|
||||||
CALL LOCATE
|
|
||||||
; !!!! <20>… à §àë¢ âì LF_ ¨ CR_ !!!!
|
|
||||||
ENDIF
|
|
||||||
CR_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
|
||||||
RST ToBIOS
|
|
||||||
LD E,0
|
|
||||||
JP LOCATE
|
|
||||||
;-----[]
|
|
||||||
|
|
||||||
; PRINT CHAR
|
; PRINT CHAR
|
||||||
; A - CHAR
|
; A - CHAR
|
||||||
PUTCHAR:
|
PUTCHAR:
|
||||||
;CP ' '
|
;CP ' '
|
||||||
;JR NC,CHAR
|
;JR NC,.CHAR
|
||||||
CP #0D
|
CP #0D
|
||||||
JR Z,CR_
|
JR Z,.CR_
|
||||||
CP #0A
|
CP #0A
|
||||||
JR Z,LF_
|
JR Z,.LF_
|
||||||
CP #09
|
CP #09
|
||||||
JR Z,TB_
|
JR Z,.TB_
|
||||||
CP #08
|
CP #08
|
||||||
JR Z,BK_
|
JR Z,.BK_
|
||||||
|
CP #07
|
||||||
|
JR Z,.BELL
|
||||||
;SCF
|
;SCF
|
||||||
;RET
|
;RET
|
||||||
CHAR:
|
.CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||||
LD BC,1*256 + BIOS.LP_PRINT_SYM
|
|
||||||
;!TEST CR+LF+SCROLL
|
;!TEST CR+LF+SCROLL
|
||||||
;JP ToBIOS
|
;JP ToBIOS
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
@ -93,13 +61,13 @@ CHAR:
|
|||||||
OR E
|
OR E
|
||||||
RET NZ
|
RET NZ
|
||||||
;
|
;
|
||||||
LFF: PUSH HL ;!FIXIT á®åà ïâì ⥪ã騥 ¯à¥àë¢ ¨ï
|
.LFF: PUSH HL ;!FIXIT á®åà ïâì ⥪ã騥 ¯à¥àë¢ ¨ï
|
||||||
;PUSH DE
|
;PUSH DE
|
||||||
LD BC,1*256 + BIOS.LP_SCROLL_UD
|
LD BC,1*256 + BIOS.LP_SCROLL_UD
|
||||||
LD DE,#0020
|
LD DE,#0020
|
||||||
EI
|
;EI
|
||||||
HALT
|
;HALT
|
||||||
DI
|
;DI
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
LD DE,#1F00
|
LD DE,#1F00
|
||||||
;PUSH DE
|
;PUSH DE
|
||||||
@ -107,17 +75,14 @@ LFF: PUSH HL ;!FIXIT
|
|||||||
LD A,' '
|
LD A,' '
|
||||||
LD BC,#50*256 + BIOS.LP_PRINT_SYM
|
LD BC,#50*256 + BIOS.LP_PRINT_SYM
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
EI
|
;EI
|
||||||
;POP DE
|
;POP DE
|
||||||
LD DE,#1F00
|
LD DE,#1F00
|
||||||
CALL LOCATE
|
CALL LOCATE
|
||||||
POP HL
|
POP HL
|
||||||
RET
|
RET
|
||||||
|
.TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||||
|
|
||||||
TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
|
|
||||||
IF TABisSPACES
|
IF TABisSPACES
|
||||||
LD B,E
|
LD B,E
|
||||||
LD A,E
|
LD A,E
|
||||||
@ -125,8 +90,8 @@ TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
|||||||
ADD A,8
|
ADD A,8
|
||||||
SUB B
|
SUB B
|
||||||
LD B,A
|
LD B,A
|
||||||
LD C,BIOS.LP_PRINT_SYM
|
|
||||||
LD A,' '
|
LD A,' '
|
||||||
|
LD C,BIOS.LP_PRINT_SYM
|
||||||
JP ToBIOS
|
JP ToBIOS
|
||||||
ELSE
|
ELSE
|
||||||
LD A,E
|
LD A,E
|
||||||
@ -135,6 +100,54 @@ TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
|||||||
LD E,A
|
LD E,A
|
||||||
JP LOCATE
|
JP LOCATE
|
||||||
ENDIF
|
ENDIF
|
||||||
|
.BK_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||||
|
RST ToBIOS
|
||||||
|
XOR A
|
||||||
|
CP E
|
||||||
|
;!TEST
|
||||||
|
;JP Z,LOCATE
|
||||||
|
RET Z
|
||||||
|
DEC E
|
||||||
|
JP LOCATE
|
||||||
|
.LF_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||||
|
RST ToBIOS
|
||||||
|
LD A,D
|
||||||
|
CP #1F
|
||||||
|
JR NC,.LFF ;!FIXIT áà ¡ âë¢ ¥â ª ª CRLF ¤® áªà®««¨âì á á®åà ¥¨¥¬ Y
|
||||||
|
INC D
|
||||||
|
IFN EnoughtOnly_LF
|
||||||
|
JP LOCATE
|
||||||
|
ELSE
|
||||||
|
CALL LOCATE
|
||||||
|
; !!!! <20>… à §àë¢ âì LF_ ¨ CR_ !!!!
|
||||||
|
ENDIF
|
||||||
|
.CR_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||||
|
RST ToBIOS
|
||||||
|
LD E,0
|
||||||
|
JP LOCATE
|
||||||
|
.BELL: LD DE,1200
|
||||||
|
LD HL,4
|
||||||
|
JP BEEP
|
||||||
|
.NO_SCROLL:
|
||||||
|
;CP ' '
|
||||||
|
;JR NC,.CHAR
|
||||||
|
CP #0D
|
||||||
|
JR Z,.CR_
|
||||||
|
CP #0A
|
||||||
|
JR Z,.LF_
|
||||||
|
CP #09
|
||||||
|
JR Z,.TB_
|
||||||
|
CP #08
|
||||||
|
JR Z,.BK_
|
||||||
|
CP #07
|
||||||
|
JR Z,.BELL
|
||||||
|
;SCF
|
||||||
|
;RET
|
||||||
|
._CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||||
|
;!TEST CR+LF+SCROLL
|
||||||
|
JP ToBIOS
|
||||||
|
;RST ToBIOS
|
||||||
|
;-----[]
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
147
|
171
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 0277d424098318dc45617d6fb2c1cdf405c6d345
|
Subproject commit 7e4985b40214f573ba17b707ad5191319841acdd
|
||||||
Loading…
Reference in New Issue
Block a user