Estex-DSS/DSS/API/PutChar.asm
Tolik 41ff458cd4 Пока не работает, надо доделывать BigDir.
Затащены правки из Master:
Исправлен баг с относительными путями. thx to @witchcraft2001
IF, GOTO, GOSUB/RETURN in BAT files.
Правки CLP
-bug с выводом строки в BAT
-bug M_INT: RFI is CH-A ONLY (per Z80 SIO spec)
-bug KEYINTER.ASM: russian chars fix
Num Lock numbers
2026-07-16 22:06:01 +10:00

125 lines
2.4 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
;///////////////////////////////////////////////////////////////////////