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
|
||||
@ -110,32 +110,51 @@ SCANKEY LD HL,HOST
|
||||
;
|
||||
IF CLASSIC_CURSOR ;------------------------------;
|
||||
|
||||
ECHOKEY:
|
||||
CURCOUNT+1: LD A,#FF ;R01
|
||||
INC A ;R01
|
||||
LD (CURCOUNT),A ;R01
|
||||
AND #FF ;R01
|
||||
JR NZ,NOTUR ;R01
|
||||
CURSYM+1: LD A,#00 ;R01
|
||||
XOR #01 ;R01
|
||||
LD (CURSYM),A ;R01
|
||||
LD A," " ;R01
|
||||
JR Z,CURSKI ;R01
|
||||
LD A,"_" ;R01
|
||||
CURSKI: CALL PUTCHAR ;R01
|
||||
LD A,8 ;R01 BACKSPACE
|
||||
CALL PUTCHAR ;R01
|
||||
NOTUR: CALL SCANKEY
|
||||
ECHOKEY: ;R01
|
||||
.CURCOUNT+1: LD A,#FF
|
||||
INC A
|
||||
LD (.CURCOUNT),A
|
||||
AND #FF
|
||||
JR NZ,.NOTUR
|
||||
.CURSYM+1: LD A,#00
|
||||
XOR #01
|
||||
LD (.CURSYM),A
|
||||
|
||||
CALL CURSOR
|
||||
PUSH DE
|
||||
|
||||
LD A," "
|
||||
JR Z,.CURSKI
|
||||
LD A,"_"
|
||||
.CURSKI: CALL PUTCHAR.NO_SCROLL ;R03
|
||||
|
||||
POP DE
|
||||
CALL LOCATE
|
||||
;LD A,8 ; BACKSPACE
|
||||
;CALL PUTCHAR
|
||||
.NOTUR: CALL SCANKEY
|
||||
JR Z,ECHOKEY
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH AF ;R01
|
||||
LD A," " ;R01
|
||||
CALL PUTCHAR ;R01
|
||||
LD A,8 ;R01 BACKSPACE
|
||||
CALL PUTCHAR ;R01
|
||||
POP AF ;R01
|
||||
CALL PUTCHAR
|
||||
PUSH AF
|
||||
|
||||
CALL CURSOR
|
||||
PUSH DE
|
||||
|
||||
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
|
||||
@ -159,9 +178,11 @@ ECHOKEY: CALL Cursor_On ;
|
||||
PUSH AF
|
||||
CALL Cursor_Off ; ¢ëª«. ªãàá®à
|
||||
POP AF
|
||||
OR A ; ¤®¡ ¢¨«
|
||||
OR A
|
||||
;!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 DE
|
||||
@ -186,11 +207,16 @@ Cursor_On: LD C,BIOS.LP_GET_PLACE ; 㧭
|
||||
JR Z,.put
|
||||
LD B,CURSOR_ZG ; ç¥àâ
|
||||
LD A,(KEYFLAG) ; ä« £¨ ª« ¢ë
|
||||
BIT 1,A ; ¡¨â Ins
|
||||
;BIT 1,A ; ¡¨â Ins
|
||||
AND %0000'0010 ; ¡¨â Ins
|
||||
JR NZ,.put
|
||||
LD B,INS_CUR_ZG ; ¡«®ª
|
||||
.put: XOR A ; ®¬¥à ®ª
|
||||
RST ToBIOS
|
||||
|
||||
LD DE,(Cursor_Off.pos)
|
||||
CALL LOCATE
|
||||
|
||||
LD A,1
|
||||
LD (Cursor_Off.Flag),A
|
||||
LD A,delay_curs
|
||||
@ -216,6 +242,10 @@ Cursor_Off:
|
||||
XOR A
|
||||
LD BC,NORM_ZG*256+BIOS.WIN_PUT_SYM ; ᨬ¢®« íªà
|
||||
RST ToBIOS
|
||||
|
||||
LD DE,(Cursor_Off.pos)
|
||||
CALL LOCATE
|
||||
|
||||
RET
|
||||
|
||||
; ‚¥ªâ®à ®¡á«ã¦¨¢ ¨ï ªãàá®à
|
||||
|
||||
125
DSS/VIDEO.ASM
125
DSS/VIDEO.ASM
@ -20,70 +20,38 @@ CLEAR: LD C,BIOS.LP_CLS_WIN2
|
||||
|
||||
; PRINT NULL-TERMINATED CHARS STRING
|
||||
; HL - STRING POINTER
|
||||
PCHARS: ;CALL CURSOR
|
||||
;LD A,E
|
||||
;LD (.start_x),A
|
||||
|
||||
PCHARS:
|
||||
.loop: LD A,(HL)
|
||||
INC HL
|
||||
OR A
|
||||
RET Z
|
||||
;PUSH HL
|
||||
;LD C,A
|
||||
CALL PUTCHAR
|
||||
|
||||
;!TEST CR+LF+SCROLL
|
||||
;CALL CURSOR
|
||||
;LD A,(.start_x)
|
||||
;CP E
|
||||
|
||||
;POP HL
|
||||
;LD A,D ; ¯à®¢¥àª ¯¥à¥å®¤ ªãàá®à
|
||||
;OR E ; ¢ á ¬®¥ ç «® (X:Y == 0:0)
|
||||
;CALL Z,PUTCHAR.LFF
|
||||
;
|
||||
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
|
||||
; A - CHAR
|
||||
PUTCHAR:
|
||||
;CP ' '
|
||||
;JR NC,CHAR
|
||||
;JR NC,.CHAR
|
||||
CP #0D
|
||||
JR Z,CR_
|
||||
JR Z,.CR_
|
||||
CP #0A
|
||||
JR Z,LF_
|
||||
JR Z,.LF_
|
||||
CP #09
|
||||
JR Z,TB_
|
||||
JR Z,.TB_
|
||||
CP #08
|
||||
JR Z,BK_
|
||||
JR Z,.BK_
|
||||
CP #07
|
||||
JR Z,.BELL
|
||||
;SCF
|
||||
;RET
|
||||
CHAR:
|
||||
LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||
.CHAR: LD BC,1*256 + BIOS.LP_PRINT_SYM
|
||||
;!TEST CR+LF+SCROLL
|
||||
;JP ToBIOS
|
||||
RST ToBIOS
|
||||
@ -93,13 +61,13 @@ CHAR:
|
||||
OR E
|
||||
RET NZ
|
||||
;
|
||||
LFF: PUSH HL ;!FIXIT á®åà ïâì ⥪ã騥 ¯à¥àë¢ ¨ï
|
||||
.LFF: PUSH HL ;!FIXIT á®åà ïâì ⥪ã騥 ¯à¥àë¢ ¨ï
|
||||
;PUSH DE
|
||||
LD BC,1*256 + BIOS.LP_SCROLL_UD
|
||||
LD DE,#0020
|
||||
EI
|
||||
HALT
|
||||
DI
|
||||
;EI
|
||||
;HALT
|
||||
;DI
|
||||
RST ToBIOS
|
||||
LD DE,#1F00
|
||||
;PUSH DE
|
||||
@ -107,17 +75,14 @@ LFF: PUSH HL ;!FIXIT
|
||||
LD A,' '
|
||||
LD BC,#50*256 + BIOS.LP_PRINT_SYM
|
||||
RST ToBIOS
|
||||
EI
|
||||
;EI
|
||||
;POP DE
|
||||
LD DE,#1F00
|
||||
CALL LOCATE
|
||||
POP HL
|
||||
RET
|
||||
|
||||
|
||||
TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||
.TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||
RST ToBIOS
|
||||
|
||||
IF TABisSPACES
|
||||
LD B,E
|
||||
LD A,E
|
||||
@ -125,8 +90,8 @@ TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||
ADD A,8
|
||||
SUB B
|
||||
LD B,A
|
||||
LD C,BIOS.LP_PRINT_SYM
|
||||
LD A,' '
|
||||
LD C,BIOS.LP_PRINT_SYM
|
||||
JP ToBIOS
|
||||
ELSE
|
||||
LD A,E
|
||||
@ -135,6 +100,54 @@ TB_: LD C,BIOS.LP_GET_PLACE ;GET CURSOR
|
||||
LD E,A
|
||||
JP LOCATE
|
||||
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