; LAST UPDATE: 06.02.2025 savelij
PRTT_MSG LD A,(HL)
AND A
RET Z
CALL PRTT_UPR
INC HL
JR PRTT_MSG
PRTT_UPR CP " "
JP NC,PRTT_A_
CP 0x16
JR Z,PRTT_COD16
CP 0x17
JR Z,PRTT_COD17
CP 9
RET NZ
PRTT_COD09 LD A,D
ADD A,8
AND 0xF8
LD D,A
RET
PRTT_COD17 INC HL
LD A,(HL)
LD (TXT_COLOR),A ; установка цвета печати
RET
PRTT_COD16 INC HL
LD E,(HL) ; X позиция
INC HL
LD D,(HL) ; Y позиция
RET
; печать символа на текстмодном экране
; D-X E-Y C-COLOR
PRTT_A_ PUSH DE
PUSH HL
PUSH AF
LD L,E
LD A,D
LD H,0
LD D,H
ADD HL,HL ; x2
ADD HL,HL ; x4
ADD HL,HL ; x8
ADD HL,HL ; x16
ADD HL,HL ; x32
ADD HL,HL ; x64
LD E,A
SRL E
ADD HL,DE
AND 1
RRCA
RRCA
RRCA
RRCA
ADD A,HIGH (CPU3+LSYM)
LD D,A
LD E,LOW (CPU3+LSYM)
ADD HL,DE
POP AF
LD (HL),A
LD A,H
XOR 0x30
LD H,A
LD A,D
AND 0x10
RLCA
RLCA
RLCA
RLCA
ADD A,L
LD L,A
LD A,(TXT_COLOR)
INC A
JR Z,PRTT_A1
DEC A
LD (HL),A
PRTT_A1 POP HL
POP DE
INC D
RET
; очистка текстмодного экрана
CLS_TXTMODE8 LD BC,0xFF77
LD A,0xAF
OUT (C),A
EVOPORT WIN_P3,0xF7
LD A," "
LD HL,CPU3+LSYM
CALL CLSTXTMD1
LD HL,CPU3+RSYM
CALL CLSTXTMD1
LD A,MAGIC_COLOR
LD HL,CPU3+LATTR
CALL CLSTXTMD1
LD HL,CPU3+RATTR
CLSTXTMD1 EX AF,AF'
LD A,25
LD B,0
CLSTXTMD2 EX AF,AF'
LD (HL),A
EX AF,AF'
LD D,H
LD E,L
INC DE
LD C,39
LDIR
LD C,25
ADD HL,BC
DEC A
JR NZ,CLSTXTMD2
EX AF,AF'
RET
; сохранение текстмодного экрана
STORE_TXTMODE
EVOPORT WIN_P3,0xF7
LD B,HIGH (WIN_P1)
LD A,RAM_TEMP
OUT (C),A
LD DE,CPU1+OFFSET_SCRSAVE
LD HL,CPU3+LSYM
CALL STORETXTMD1
LD HL,CPU3+RSYM
CALL STORETXTMD1
LD HL,CPU3+LATTR
CALL STORETXTMD1
LD HL,CPU3+RATTR
STORETXTMD1 LD A,25
LD B,0
STORETXTMD2 LD C,40
LDIR
LD C,24
ADD HL,BC
DEC A
JR NZ,STORETXTMD2
RET
; восстановление текстмодного экрана
RESTORE_TXTMODE
EVOPORT WIN_P3,0xF7
LD B,HIGH (WIN_P1)
LD A,RAM_TEMP
OUT (C),A
LD DE,CPU1+OFFSET_SCRSAVE
LD HL,CPU3+LSYM
CALL RESTORETXTMD1
LD HL,CPU3+RSYM
CALL RESTORETXTMD1
LD HL,CPU3+LATTR
CALL RESTORETXTMD1
LD HL,CPU3+RATTR
RESTORETXTMD1 LD A,25
LD B,0
RESTORETXTMD2 LD C,40
EX DE,HL
LDIR
EX DE,HL
LD C,24
ADD HL,BC
DEC A
JR NZ,RESTORETXTMD2
RET
MAGIC_FONT LD HL,CP866_FONT
LD DE,CPU1+OFFSET_BUFSYM
PUSH DE
ROMCALL UNPACK,ROM_RST80
LD HL,SYM00
LD DE,CPU1+OFFSET_BUFSYM+0xF2*8
LD BC,END_MAGICSYM-SYM00
LDIR ; добавление спец символов в набор
LD BC,0x800
POP HL
LD DE,0
PEC_ON M_SHADOW_BF+M_FONT_BF
LDIR ; установка MAGIC font
PEC_OFF M_FONT_BF
RET
RESTORE_FONT
EVOPORT WIN_P1,RAM_SCR_FONT
LD HL,CPU1+OFFSET_FNTSAVE
LD DE,0
LD BC,0x800
PEC_ON M_SHADOW_BF+M_FONT_BF
LDIR
PEC_OFF M_FONT_BF
RET