;LAST UPDATE: 17.05.2012 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_ IF TXTMODE_DEBUG=0
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) ;0XC1
LD D,A
LD E,LOW (CPU3+LSYM) ;0XC0
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
ELSE
PUSH HL
PUSH DE
LD B,D
LD L,E
LD H,0
LD D,H
ADD HL,HL ;X2
ADD HL,HL ;X4
ADD HL,DE ;X5
ADD HL,HL ;10
ADD HL,HL ;20
ADD HL,HL ;40
ADD HL,HL ;80
LD E,B
ADD HL,DE
LD DE,CPU3
ADD HL,DE
LD (HL),A
SET 3,H
LD A,(TXT_COLOR)
LD (HL),A
POP DE
POP HL
INC D
ENDIF
RET
;ОЧИСТКА ТЕКСТМОДНОГО ЭКРАНА
CLS_TXTMODE8 IF TXTMODE_DEBUG=0
LD BC,0XFF77
LD A,0XA7
OUT (C),A
LD BC,WIN_A3
LD A,0X77
OUT (C),A
LD A," "
LD HL,CPU3+LSYM
CALL CLSTXTMD1
LD HL,CPU3+RSYM
CALL CLSTXTMD1
LD A,0X0F
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
ELSE
LD BC,0XFF77
LD A,0XA4
OUT (C),A
LD BC,WIN_A3
LD A,0X76
OUT (C),A
LD A," "
LD HL,CPU3
CALL CLS_TXTMODE81
LD A,0X0F
LD HL,CPU3+0X800
CLS_TXTMODE81 LD D,H
LD E,L
INC DE
LD BC,0X800
LD (HL),A
LDIR
RET
ENDIF
;СОХРАНЕНИЕ ТЕКСТМОДНОГО ЭКРАНА
STORE_TXTMODE IF TXTMODE_DEBUG=0
LD BC,WIN_A3
LD A,0X77
OUT (C),A
LD DE,CPU2+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
ELSE
LD BC,WIN_A3
LD A,0X76
OUT (C),A
LD HL,CPU3
LD DE,CPU2+OFFSET_SCRSAVE
LD BC,0X1000
LDIR
RET
ENDIF
;ВОССТАНОВЛЕНИЕ ТЕКСТМОДНОГО ЭКРАНА
RESTORE_TXTMODE IF TXTMODE_DEBUG=0
LD DE,CPU2+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
ELSE
LD HL,CPU2+OFFSET_SCRSAVE
LD DE,CPU3
LD BC,0X1000
LDIR
RET
ENDIF
MAGIC_FONT LD HL,CP866_UTL
LD DE,CPU2+OFFSET_BUFSYM
LD BC,UNP_MAGICFONT
PUSH DE
CALL JUMP2PAGE4
LD HL,SYM00
LD DE,CPU2+OFFSET_BUFSYM
LD BC,END_MAGICSYM-SYM00
LDIR ;ДОБАВЛЕНИЕ СПЕЦ СИМВОЛОВ В НАБОР
LD BC,0X800
POP HL
LD DE,0
LD A,5
OUT (PEVO_CONF),A
LDIR ;УСТАНОВКА MAGIC FONT
LD A,1
OUT (PEVO_CONF),A
RET
RESTORE_FONT LD HL,CPU2+OFFSET_FNTSAVE
LD DE,0
LD BC,0X800
LD A,4
OUT (PEVO_CONF),A
LDIR
LD A,1
OUT (PEVO_CONF),A
RET