;LAST UPDATE: 16.08.2015 savelij
include ../../macros.a80
include ../../global_vars.a80
ORG 0X6000
TEST_READ_FONT DI
LD SP,0X6000
LD HL,0X4000
LD D,H
LD E,L
INC DE
LD BC,0X1800
LD (HL),L
LDIR
LD BC,0X300
LD (HL),%00001111
LDIR
LD DE,0X4001
LD HL,FIRST_TEST
CALL PRINT
LD A,4
OUT (PEVO_CONF),A
LD IXL,0
LD HL,0
LD DE,0X8000
LD BC,0X800
LDIR ;ПЕРВОЕ ЧТЕНИЕ ФОНТА
XOR A
OUT (PEVO_CONF),A
LD HL,0X8000
LD DE,TXT_CHARS
LD BC,0X800
TRDFNT01 LD A,(DE) ;СРАВНЕНИЕ С ИСХОДНЫМ
CP (HL)
JR Z,TRDFNT03
LD IXL,1
LD DE,0X4041
LD HL,FIRST_READ_ERR
CALL PRINT
JR TRDFNT04
TRDFNT03 INC HL
INC DE
DEC BC
LD A,B
OR C
JR NZ,TRDFNT01
LD IXL,0
LD DE,0X4801
LD HL,FIRST_PASS_OK
CALL PRINT
TRDFNT04 LD DE,0X50E1
LD HL,PRESS_SPACE
CALL PRINT
CALL WAIT_SPACE
LD HL,TXT_CHARS
; RST 8
; DB Write_font
LD A,4
OUT (PEVO_CONF),A
LD DE,0
LD BC,0X800
LDIR
DJNZ $
LD HL,0
LD DE,0X8000
LD BC,0X800
LDIR ;ЧТЕНИЕ ФОНТА
XOR A
OUT (PEVO_CONF),A
LD IXL,0
LD HL,TXT_CHARS
LD DE,0X8000
LD BC,0X800
TRDFNT02 LD A,(DE) ;СРАВНЕНИЕ
CP (HL)
JR Z,TRDFNT05
LD IXL,1
LD DE,0X4841
LD HL,SECOND_PASS_ERR
CALL PRINT
JR TRDFNT06
TRDFNT05 INC HL
INC DE
DEC BC
LD A,B
OR C
JR NZ,TRDFNT02
LD DE,0X4841
LD HL,SECOND_PASS_OK
CALL PRINT
TRDFNT06 LD DE,0X50E0
LD HL,PRESS_SPACE
CALL PRINT
CALL WAIT_SPACE
LD A,IXL
AND A
JP NZ,TEST_READ_FONT
LD A,1
OUT (PEVO_CONF),A
LD BC,0X7FFD
LD A,0X10 ;ЭКРАН 0
OUT (C),A
LD BC,0XFF77
LD A,0XA4
OUT (C),A
LD BC,WIN_A3
LD A,0X76 ;СТРАНИЦА 9
OUT (C),A
LD HL,0XC800
LD DE,0XC801
LD BC,0X800
LD (HL),%00110000
LDIR
LD DE,0X0203
LD HL,SECOND_TEST
LD C,%00111010
CALL PRINTT
LD DE,0X0905
LD HL,SCREEN0
LD C,%00011001
CALL PRINTT
CALL WAIT_SPACE
LD BC,WIN_A3
LD A,0X74 ;СТРАНИЦА 11
OUT (C),A
LD BC,0X7FFD
LD A,0X18 ;ЭКРАН 1
OUT (C),A
LD HL,0XC800
LD DE,0XC801
LD BC,0X800
LD (HL),%00001000
LDIR
LD DE,0X1204
LD HL,SECOND_TEST
LD C,%00011111
CALL PRINTT
LD DE,0X1110
LD HL,SCREEN1
LD C,%00110001
CALL PRINTT
CALL WAIT_SPACE
JR $
;D=X E=Y C=COLOR
PRINTT LD A,(HL)
INC HL
AND A
RET Z
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,0XC000
ADD HL,DE
LD (HL),A
SET 3,H
LD (HL),C
POP DE
POP HL
INC D
JR PRINTT
PRINT LD A,(HL)
INC HL
AND A
RET Z
PUSH HL
PUSH DE
PUSH DE
LD L,A
LD H,0
LD DE,TXT_CHARS
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,DE
POP DE
REPT 8
LD A,(HL)
LD (DE),A
INC HL
INC D
ENDM
POP DE
POP HL
INC E
JR PRINT
WAIT_SPACE LD A,0X7F
IN A,(0XFE)
AND 1
JR NZ,WAIT_SPACE
WAIT_SPACE1 XOR A
IN A,(0XFE)
CPL
AND 0X1F
JR NZ,WAIT_SPACE1
RET
TXT_CHARS binclude ../../page5/source/8x8_ar.fnt
; 01234567890123456789012345678901
FIRST_TEST DB " Первый тест: чтение фонта ",0
SECOND_TEST DB " Второй тест: вывод текста на текстовые экраны 9 и 11 ",0
FIRST_READ_ERR DB " Первое чтение фонта - ошибка ",0
FIRST_PASS_OK DB " Первое чтение фонта - ОК ",0
SECOND_PASS_ERR DB " Второе чтение фонта - ошибка ",0
SECOND_PASS_OK DB " Второе чтение фонта - ОК ",0
SCREEN0 DB " Цветная печать на экране номер 0 - в 9 странице ",0
SCREEN1 DB " Цветная печать на экране номер 1 - в 11 странице ",0
PRESS_SPACE DB " Press SPACE please :) ",0