Estex-DSS/DSS/API/PutChar.asm
Tolik 12c028744a HotFix 1.
Убран баг в ATTRIB для GET на разделе FAT с кластером 64 кб.
Исправлен улёт стека в ПЗУ в процедуре запуска EXE.
Исправлен баг со скроллом в ECHOKEY.
2025-07-11 04:46:16 +10:00

129 lines
2.5 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;///////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #5B. ‚뢮¤ ᨬ¢®«  ­  íªà ­ ¢ ⥪. ¯®§¨æ¨¨.
;
; ¢å®¤: A - ᨬ¢®«
; ¢ë室: ­¥â
;///////////////////////////////////////////////////////////////////////
; PUTCHAR: ;CALL .NO_SCROLL
; CP #0E
; JR C,.control_characters
; ;
; LD BC,1*256 + BIOS.LP_PRINT_SYM
; ;[x] CR+LF+SCROLL
; RST ToBIOS
; ;
; ; ¯à®¢¥àª  ­  ¯¥à¥å®¤ ªãàá®à  ¢ á ¬®¥ ­ ç «® (X:Y == 0:0)
; CALL CURSOR
; LD A,D
; OR E
; RET NZ
; ;
; .LFF: PUSH HL
; LD BC,1*256 + BIOS.LP_SCROLL_UD
; LD DE,#0020
; RST ToBIOS
; LD DE,#1F00
; CALL LOCATE
; LD A,' '
; LD BC,#50*256 + BIOS.LP_PRINT_SYM
; RST ToBIOS
; LD DE,#1F00
; CALL LOCATE
; POP HL
; RET
; .TB_: CALL CURSOR
; IF TABisSPACES
; LD B,E
; LD A,E
; AND #F8
; ADD A,8
; SUB B
; LD B,A
; LD A,' '
; LD C,BIOS.LP_PRINT_SYM
; JP ToBIOS
; ELSE
; LD A,E
; ADD A,8
; AND #78 ;????? £«ï­ãâì, çâ® ¡ã¤¥â ¥á«¨ ª®®à¤¨­ âë ªãàá®à  ¢ ª®­æ¥ áâப¨ ¯®çâ¨
; LD E,A
; JP LOCATE
; ENDIF
; .BK_: CALL CURSOR
; XOR A
; CP E
; RET Z
; DEC E
; JP LOCATE
; ;
; .LF_: CALL CURSOR
; LD A,D
; CP #1F
; JR NC,.LFF
; INC D
; IFN EnoughtOnly_LF
; JP LOCATE
; ELSE
; CALL LOCATE
; ; !!!! <20>… à §à뢠âì LF_ ¨ CR_ !!!!
; ENDIF
; .CR_: CALL CURSOR
; LD E,0
; JP LOCATE
; ;
; .control_characters:
; CP "\r"
; JR Z,.CR_
; CP "\n"
; JR Z,.LF_
; CP "\t" ; tab
; JR Z,.TB_
; CP "\b" ; backspace
; JR Z,.BK_
; CP "\a" ; [x] Beep in PChars/PUTCHAR
; RET NZ
; ; [x] Beep in PChars/PUTCHAR
; .BELL: LD DE,1200
; PUSH HL
; LD HL,4
; CALL BEEP
; POP HL
; RET
; ;
; ; [x] -bug with Vasil's version of cursor
; .NO_SCROLL: CP #0E
; JR C,.control_characters
; LD BC,1*256 + BIOS.LP_PRINT_SYM
; JP ToBIOS
;///////////////////////////////////////////////////////////////////////
;///////////////////////////////////////////////////////////////////////
PUTCHAR: LD C,0
.NO_SCROLL: PUSH HL
;
LD L,A
XOR A ; no attr-mode
LD H,A
PUSH HL ; ª« ¤ñ¬ ­  á⥪ ¯¥ç â ¥¬ë© ᨬ¢®«
LD L,A
ADD HL,SP
;
LD A,(CLEAR.shell_color)
LD B,A
LD A,C
EX AF,AF'
XOR A ; no XY-mode
LD C,BIOS.LP_PR_LINE_DIR
LD IY,0 ; YH = YL = B
RST ToBIOS
POP HL ; ¢®ááâ ­ ¢«¨¢ ¥¬ á⥪
;
POP HL
RET
; .NO_SCROLL:
; .CHAR: DZ "X"
;///////////////////////////////////////////////////////////////////////