Subversion Repositories pentevo

Rev

Rev 548 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 16.08.2015 savelij
  3.  
  4.                 include ../../macros.a80
  5.                 include ../../global_vars.a80
  6.  
  7.                 ORG 0X6000
  8. TEST_READ_FONT  DI
  9.                 LD SP,0X6000
  10.                 LD HL,0X4000
  11.                 LD D,H
  12.                 LD E,L
  13.                 INC DE
  14.                 LD BC,0X1800
  15.                 LD (HL),L
  16.                 LDIR
  17.                 LD BC,0X300
  18.                 LD (HL),%00001111
  19.                 LDIR
  20.                 LD DE,0X4001
  21.                 LD HL,FIRST_TEST
  22.                 CALL PRINT
  23.                 LD A,4
  24.                 OUT (PEVO_CONF),A
  25.                 LD IXL,0
  26.                 LD HL,0
  27.                 LD DE,0X8000
  28.                 LD BC,0X800
  29.                 LDIR                            ;ПЕРВОЕ ЧТЕНИЕ ФОНТА
  30.                 XOR A
  31.                 OUT (PEVO_CONF),A
  32.                 LD HL,0X8000
  33.                 LD DE,TXT_CHARS
  34.                 LD BC,0X800
  35. TRDFNT01        LD A,(DE)                       ;СРАВНЕНИЕ С ИСХОДНЫМ
  36.                 CP (HL)
  37.                 JR Z,TRDFNT03
  38.                 LD IXL,1
  39.                 LD DE,0X4041
  40.                 LD HL,FIRST_READ_ERR
  41.                 CALL PRINT
  42.                 JR TRDFNT04
  43.  
  44. TRDFNT03        INC HL
  45.                 INC DE
  46.                 DEC BC
  47.                 LD A,B
  48.                 OR C
  49.                 JR NZ,TRDFNT01
  50.                 LD IXL,0
  51.                 LD DE,0X4801
  52.                 LD HL,FIRST_PASS_OK
  53.                 CALL PRINT
  54. TRDFNT04        LD DE,0X50E1
  55.                 LD HL,PRESS_SPACE
  56.                 CALL PRINT
  57.                 CALL WAIT_SPACE
  58.                 LD HL,TXT_CHARS
  59. ;               RST 8
  60. ;               DB Write_font
  61.                 LD A,4
  62.                 OUT (PEVO_CONF),A
  63.                 LD DE,0
  64.                 LD BC,0X800
  65.                 LDIR
  66.                 DJNZ $
  67.                 LD HL,0
  68.                 LD DE,0X8000
  69.                 LD BC,0X800
  70.                 LDIR                            ;ЧТЕНИЕ ФОНТА
  71.                 XOR A
  72.                 OUT (PEVO_CONF),A
  73.                 LD IXL,0
  74.                 LD HL,TXT_CHARS
  75.                 LD DE,0X8000
  76.                 LD BC,0X800
  77. TRDFNT02        LD A,(DE)                       ;СРАВНЕНИЕ
  78.                 CP (HL)
  79.                 JR Z,TRDFNT05
  80.                 LD IXL,1
  81.                 LD DE,0X4841
  82.                 LD HL,SECOND_PASS_ERR
  83.                 CALL PRINT
  84.                 JR TRDFNT06
  85.  
  86. TRDFNT05        INC HL
  87.                 INC DE
  88.                 DEC BC
  89.                 LD A,B
  90.                 OR C
  91.                 JR NZ,TRDFNT02
  92.                 LD DE,0X4841
  93.                 LD HL,SECOND_PASS_OK
  94.                 CALL PRINT
  95. TRDFNT06        LD DE,0X50E0
  96.                 LD HL,PRESS_SPACE
  97.                 CALL PRINT
  98.                 CALL WAIT_SPACE
  99.                 LD A,IXL
  100.                 AND A
  101.                 JP NZ,TEST_READ_FONT
  102.                 LD A,1
  103.                 OUT (PEVO_CONF),A
  104.                 LD BC,0X7FFD
  105.                 LD A,0X10                       ;ЭКРАН 0
  106.                 OUT (C),A
  107.                 LD BC,0XFF77
  108.                 LD A,0XA4
  109.                 OUT (C),A
  110.                 LD BC,WIN_A3
  111.                 LD A,0X76                       ;СТРАНИЦА 9
  112.                 OUT (C),A
  113.                 LD HL,0XC800
  114.                 LD DE,0XC801
  115.                 LD BC,0X800
  116.                 LD (HL),%00110000
  117.                 LDIR
  118.                 LD DE,0X0203
  119.                 LD HL,SECOND_TEST
  120.                 LD C,%00111010
  121.                 CALL PRINTT
  122.                 LD DE,0X0905
  123.                 LD HL,SCREEN0
  124.                 LD C,%00011001
  125.                 CALL PRINTT
  126.                 CALL WAIT_SPACE
  127.                 LD BC,WIN_A3
  128.                 LD A,0X74                       ;СТРАНИЦА 11
  129.                 OUT (C),A
  130.                 LD BC,0X7FFD
  131.                 LD A,0X18                       ;ЭКРАН 1
  132.                 OUT (C),A
  133.                 LD HL,0XC800
  134.                 LD DE,0XC801
  135.                 LD BC,0X800
  136.                 LD (HL),%00001000
  137.                 LDIR
  138.                 LD DE,0X1204
  139.                 LD HL,SECOND_TEST
  140.                 LD C,%00011111
  141.                 CALL PRINTT
  142.                 LD DE,0X1110
  143.                 LD HL,SCREEN1
  144.                 LD C,%00110001
  145.                 CALL PRINTT
  146.                 CALL WAIT_SPACE
  147.                 JR $
  148.  
  149. ;D=X E=Y C=COLOR
  150. PRINTT          LD A,(HL)
  151.                 INC HL
  152.                 AND A
  153.                 RET Z
  154.                 PUSH HL
  155.                 PUSH DE
  156.                 LD B,D
  157.                 LD L,E
  158.                 LD H,0
  159.                 LD D,H
  160.                 ADD HL,HL       ;X2
  161.                 ADD HL,HL       ;X4
  162.                 ADD HL,DE       ;X5
  163.                 ADD HL,HL       ;10
  164.                 ADD HL,HL       ;20
  165.                 ADD HL,HL       ;40
  166.                 ADD HL,HL       ;80
  167.                 LD E,B
  168.                 ADD HL,DE
  169.                 LD DE,0XC000
  170.                 ADD HL,DE
  171.                 LD (HL),A
  172.                 SET 3,H
  173.                 LD (HL),C
  174.                 POP DE
  175.                 POP HL
  176.                 INC D
  177.                 JR PRINTT
  178.  
  179. PRINT           LD A,(HL)
  180.                 INC HL
  181.                 AND A
  182.                 RET Z
  183.                 PUSH HL
  184.                 PUSH DE
  185.                 PUSH DE
  186.                 LD L,A
  187.                 LD H,0
  188.                 LD DE,TXT_CHARS
  189.                 ADD HL,HL
  190.                 ADD HL,HL
  191.                 ADD HL,HL
  192.                 ADD HL,DE
  193.                 POP DE
  194.                 REPT 8
  195.                 LD A,(HL)
  196.                 LD (DE),A
  197.                 INC HL
  198.                 INC D
  199.                 ENDM
  200.                 POP DE
  201.                 POP HL
  202.                 INC E
  203.                 JR PRINT
  204.  
  205. WAIT_SPACE      LD A,0X7F
  206.                 IN A,(0XFE)
  207.                 AND 1
  208.                 JR NZ,WAIT_SPACE
  209. WAIT_SPACE1     XOR A
  210.                 IN A,(0XFE)
  211.                 CPL
  212.                 AND 0X1F
  213.                 JR NZ,WAIT_SPACE1
  214.                 RET
  215.  
  216. TXT_CHARS       binclude ../../page5/source/8x8_ar.fnt
  217.  
  218. ;                   01234567890123456789012345678901
  219. FIRST_TEST      DB " Первый тест: чтение фонта ",0
  220. SECOND_TEST     DB " Второй тест: вывод текста на текстовые экраны 9 и 11 ",0
  221. FIRST_READ_ERR  DB " Первое чтение фонта - ошибка ",0
  222. FIRST_PASS_OK   DB " Первое чтение фонта - ОК ",0
  223. SECOND_PASS_ERR DB " Второе чтение фонта - ошибка ",0
  224. SECOND_PASS_OK  DB " Второе чтение фонта - ОК ",0
  225. SCREEN0         DB " Цветная печать на экране номер 0 - в 9 странице ",0
  226. SCREEN1         DB " Цветная печать на экране номер 1 - в 11 странице ",0
  227. PRESS_SPACE     DB " Press SPACE please :) ",0
  228.