Subversion Repositories pentevo

Rev

Rev 549 | Rev 643 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ;LAST UPDATE: 17.05.2012 savelij
  3.  
  4. PRTT_MSG        LD A,(HL)
  5.                 AND A
  6.                 RET Z
  7.                 CALL PRTT_UPR
  8.                 INC HL
  9.                 JR PRTT_MSG
  10.  
  11. PRTT_UPR        CP " "
  12.                 JP NC,PRTT_A_
  13.                 CP 0X16
  14.                 JR Z,PRTT_COD16
  15.                 CP 0X17
  16.                 JR Z,PRTT_COD17
  17.                 CP 9
  18.                 RET NZ
  19. PRTT_COD09      LD A,D
  20.                 ADD A,8
  21.                 AND 0XF8
  22.                 LD D,A
  23.                 RET
  24.  
  25. PRTT_COD17      INC HL
  26.                 LD A,(HL)
  27.                 LD (TXT_COLOR),A                ;УСТАНОВКА ЦВЕТА ПЕЧАТИ
  28.                 RET
  29.  
  30. PRTT_COD16      INC HL
  31.                 LD E,(HL)                       ;X ПОЗИЦИЯ
  32.                 INC HL
  33.                 LD D,(HL)                       ;Y ПОЗИЦИЯ
  34.                 RET
  35.  
  36. ;ПЕЧАТЬ СИМВОЛА НА ТЕКСТМОДНОМ ЭКРАНЕ
  37. ;D-X E-Y C-COLOR
  38. PRTT_A_         IF TXTMODE_DEBUG=0
  39.                 PUSH DE
  40.                 PUSH HL
  41.                 PUSH AF
  42.                 LD L,E
  43.                 LD A,D
  44.                 LD H,0
  45.                 LD D,H
  46.                 ADD HL,HL       ;X2
  47.                 ADD HL,HL       ;X4
  48.                 ADD HL,HL       ;X8
  49.                 ADD HL,HL       ;X16
  50.                 ADD HL,HL       ;X32
  51.                 ADD HL,HL       ;X64
  52.                 LD E,A
  53.                 SRL E
  54.                 ADD HL,DE
  55.                 AND 1
  56.                 RRCA
  57.                 RRCA
  58.                 RRCA
  59.                 RRCA
  60.                 ADD A,HIGH (CPU3+LSYM)  ;0XC1
  61.                 LD D,A
  62.                 LD E,LOW (CPU3+LSYM)    ;0XC0
  63.                 ADD HL,DE
  64.                 POP AF
  65.                 LD (HL),A
  66.                 LD A,H
  67.                 XOR 0X30
  68.                 LD H,A
  69.                 LD A,D
  70.                 AND 0X10
  71.                 RLCA
  72.                 RLCA
  73.                 RLCA
  74.                 RLCA
  75.                 ADD A,L
  76.                 LD L,A
  77.                 LD A,(TXT_COLOR)
  78.                 INC A
  79.                 JR Z,PRTT_A1
  80.                 DEC A
  81.                 LD (HL),A
  82. PRTT_A1         POP HL
  83.                 POP DE
  84.                 INC D
  85.                 ELSE
  86.                 PUSH HL
  87.                 PUSH DE
  88.                 LD B,D
  89.                 LD L,E
  90.                 LD H,0
  91.                 LD D,H
  92.                 ADD HL,HL       ;X2
  93.                 ADD HL,HL       ;X4
  94.                 ADD HL,DE       ;X5
  95.                 ADD HL,HL       ;10
  96.                 ADD HL,HL       ;20
  97.                 ADD HL,HL       ;40
  98.                 ADD HL,HL       ;80
  99.                 LD E,B
  100.                 ADD HL,DE
  101.                 LD DE,CPU3
  102.                 ADD HL,DE
  103.                 LD (HL),A
  104.                 SET 3,H
  105.                 LD A,(TXT_COLOR)
  106.                 LD (HL),A
  107.                 POP DE
  108.                 POP HL
  109.                 INC D
  110.                 ENDIF
  111.                 RET
  112.  
  113. ;ОЧИСТКА ТЕКСТМОДНОГО ЭКРАНА
  114. CLS_TXTMODE8    IF TXTMODE_DEBUG=0
  115.                 LD BC,0XFF77
  116.                 LD A,0XA7
  117.                 OUT (C),A
  118.                 LD BC,WIN_A3
  119.                 LD A,0X77
  120.                 OUT (C),A
  121.                 LD A," "
  122.                 LD HL,CPU3+LSYM
  123.                 CALL CLSTXTMD1
  124.                 LD HL,CPU3+RSYM
  125.                 CALL CLSTXTMD1
  126.                 LD A,0X0F
  127.                 LD HL,CPU3+LATTR
  128.                 CALL CLSTXTMD1
  129.                 LD HL,CPU3+RATTR
  130. CLSTXTMD1       EX AF,AF'
  131.                 LD A,25
  132.                 LD B,0
  133. CLSTXTMD2       EX AF,AF'
  134.                 LD (HL),A
  135.                 EX AF,AF'
  136.                 LD D,H
  137.                 LD E,L
  138.                 INC DE
  139.                 LD C,39
  140.                 LDIR
  141.                 LD C,25
  142.                 ADD HL,BC
  143.                 DEC A
  144.                 JR NZ,CLSTXTMD2
  145.                 EX AF,AF'
  146.                 RET
  147.                 ELSE
  148.                 LD BC,0XFF77
  149.                 LD A,0XA4
  150.                 OUT (C),A
  151.                 LD BC,WIN_A3
  152.                 LD A,0X76
  153.                 OUT (C),A
  154.                 LD A," "
  155.                 LD HL,CPU3
  156.                 CALL CLS_TXTMODE81
  157.                 LD A,0X0F
  158.                 LD HL,CPU3+0X800
  159. CLS_TXTMODE81   LD D,H
  160.                 LD E,L
  161.                 INC DE
  162.                 LD BC,0X800
  163.                 LD (HL),A
  164.                 LDIR
  165.                 RET
  166.                 ENDIF
  167.  
  168. ;СОХРАНЕНИЕ ТЕКСТМОДНОГО ЭКРАНА
  169. STORE_TXTMODE   IF TXTMODE_DEBUG=0
  170.                 LD BC,WIN_A3
  171.                 LD A,0X77
  172.                 OUT (C),A
  173.                 LD DE,CPU2+OFFSET_SCRSAVE
  174.                 LD HL,CPU3+LSYM
  175.                 CALL STORETXTMD1
  176.                 LD HL,CPU3+RSYM
  177.                 CALL STORETXTMD1
  178.                 LD HL,CPU3+LATTR
  179.                 CALL STORETXTMD1
  180.                 LD HL,CPU3+RATTR
  181. STORETXTMD1     LD A,25
  182.                 LD B,0
  183. STORETXTMD2     LD C,40
  184.                 LDIR
  185.                 LD C,24
  186.                 ADD HL,BC
  187.                 DEC A
  188.                 JR NZ,STORETXTMD2
  189.                 RET
  190.                 ELSE
  191.                 LD BC,WIN_A3
  192.                 LD A,0X76
  193.                 OUT (C),A
  194.                 LD HL,CPU3
  195.                 LD DE,CPU2+OFFSET_SCRSAVE
  196.                 LD BC,0X1000
  197.                 LDIR
  198.                 RET
  199.                 ENDIF
  200.  
  201. ;ВОССТАНОВЛЕНИЕ ТЕКСТМОДНОГО ЭКРАНА
  202. RESTORE_TXTMODE IF TXTMODE_DEBUG=0
  203.                 LD DE,CPU2+OFFSET_SCRSAVE
  204.                 LD HL,CPU3+LSYM
  205.                 CALL RESTORETXTMD1
  206.                 LD HL,CPU3+RSYM
  207.                 CALL RESTORETXTMD1
  208.                 LD HL,CPU3+LATTR
  209.                 CALL RESTORETXTMD1
  210.                 LD HL,CPU3+RATTR
  211. RESTORETXTMD1   LD A,25
  212.                 LD B,0
  213. RESTORETXTMD2   LD C,40
  214.                 EX DE,HL
  215.                 LDIR
  216.                 EX DE,HL
  217.                 LD C,24
  218.                 ADD HL,BC
  219.                 DEC A
  220.                 JR NZ,RESTORETXTMD2
  221.                 RET
  222.                 ELSE
  223.                 LD HL,CPU2+OFFSET_SCRSAVE
  224.                 LD DE,CPU3
  225.                 LD BC,0X1000
  226.                 LDIR
  227.                 RET
  228.                 ENDIF
  229.  
  230. MAGIC_FONT      LD HL,CP866_UTL
  231.                 LD DE,CPU2+OFFSET_BUFSYM
  232.                 LD BC,UNP_MAGICFONT
  233.                 PUSH DE
  234.                 CALL JUMP2PAGE4
  235.                 LD HL,SYM00
  236.                 LD DE,CPU2+OFFSET_BUFSYM
  237.                 LD BC,END_MAGICSYM-SYM00
  238.                 LDIR                            ;ДОБАВЛЕНИЕ СПЕЦ СИМВОЛОВ В НАБОР
  239.                 LD BC,0X800
  240.                 POP HL
  241.                 LD DE,0
  242.                 LD A,5
  243.                 OUT (PEVO_CONF),A
  244.                 LDIR                            ;УСТАНОВКА MAGIC FONT
  245.                 LD A,1
  246.                 OUT (PEVO_CONF),A
  247.                 RET
  248.  
  249. RESTORE_FONT    LD HL,CPU2+OFFSET_FNTSAVE
  250.                 LD DE,0
  251.                 LD BC,0X800
  252.                 LD A,4
  253.                 OUT (PEVO_CONF),A
  254.                 LDIR
  255.                 LD A,1
  256.                 OUT (PEVO_CONF),A
  257.                 RET
  258.