Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 18.01.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,0XC1
  61.                 LD D,A
  62.                 LD E,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.                 LD (HL),A
  79.                 POP HL
  80.                 POP DE
  81.                 INC D
  82.                 ELSE
  83.                 PUSH HL
  84.                 PUSH DE
  85.                 LD B,D
  86.                 LD L,E
  87.                 LD H,0
  88.                 LD D,H
  89.                 ADD HL,HL       ;X2
  90.                 ADD HL,HL       ;X4
  91.                 ADD HL,DE       ;X5
  92.                 ADD HL,HL       ;10
  93.                 ADD HL,HL       ;20
  94.                 ADD HL,HL       ;40
  95.                 ADD HL,HL       ;80
  96.                 LD E,B
  97.                 ADD HL,DE
  98.                 LD DE,0XC000
  99.                 ADD HL,DE
  100.                 LD (HL),A
  101.                 SET 3,H
  102.                 LD A,(TXT_COLOR)
  103.                 LD (HL),A
  104.                 POP DE
  105.                 POP HL
  106.                 INC D
  107.                 ENDIF
  108.                 RET
  109.  
  110. ;ОЧИСТКА ТЕКСТМОДНОГО ЭКРАНА
  111. CLS_TXTMODE8    IF TXTMODE_DEBUG=0
  112.                 LD BC,0XFF77
  113.                 LD A,0XA7
  114.                 OUT (C),A
  115.                 LD BC,WIN_A3
  116.                 LD A,0X77
  117.                 OUT (C),A
  118.                 LD A," "
  119.                 LD HL,0XC1C0
  120.                 CALL CLS_TXTMODE81
  121.                 LD HL,0XD1C0
  122.                 CALL CLS_TXTMODE81
  123.                 LD A,0X0F
  124.                 LD HL,0XE1C0
  125.                 CALL CLS_TXTMODE81
  126.                 LD HL,0XF1C0
  127. CLS_TXTMODE81   LD D,H
  128.                 LD E,L
  129.                 INC DE
  130.                 LD BC,0X40*25
  131.                 LD (HL),A
  132.                 LDIR
  133.                 RET
  134.                 ELSE
  135.                 LD BC,0XFF77
  136.                 LD A,0XA4
  137.                 OUT (C),A
  138.                 LD BC,WIN_A3
  139.                 LD A,0X76
  140.                 OUT (C),A
  141.                 LD A," "
  142.                 LD HL,0XC000
  143.                 CALL CLS_TXTMODE81
  144.                 LD A,0X0F
  145.                 LD HL,0XC800
  146. CLS_TXTMODE81   LD D,H
  147.                 LD E,L
  148.                 INC DE
  149.                 LD BC,0X800
  150.                 LD (HL),A
  151.                 LDIR
  152.                 RET
  153.                 ENDIF
  154.  
  155. ;СОХРАНЕНИЕ ТЕКСТМОДНОГО ЭКРАНА
  156. STORE_TXTMODE   IF TXTMODE_DEBUG=0
  157.                 LD BC,WIN_A3
  158.                 LD A,0X77
  159.                 OUT (C),A
  160.                 LD DE,0X8000+OFFSET_SCRSAVE
  161.                 LD HL,0XC1C0
  162.                 LD BC,0X40*25
  163.                 LDIR
  164.                 LD HL,0XD1C0
  165.                 LD BC,0X40*25
  166.                 LDIR
  167.                 LD HL,0XE1C0
  168.                 LD BC,0X40*25
  169.                 LDIR
  170.                 LD HL,0XF1C0
  171.                 LD BC,0X40*25
  172.                 LDIR
  173.                 ELSE
  174.                 LD BC,WIN_A3
  175.                 LD A,0X76
  176.                 OUT (C),A
  177.                 LD HL,0XC000
  178.                 LD DE,0X8000+OFFSET_SCRSAVE
  179.                 LD BC,0X1000
  180.                 LDIR
  181.                 ENDIF
  182.                 RET
  183.  
  184. ;ВОССТАНОВЛЕНИЕ ТЕКСТМОДНОГО ЭКРАНА
  185. RESTORE_TXTMODE IF TXTMODE_DEBUG=0
  186.                 LD HL,0X8000+OFFSET_SCRSAVE
  187.                 LD DE,0XC1C0
  188.                 LD BC,0X40*25
  189.                 LDIR
  190.                 LD DE,0XD1C0
  191.                 LD BC,0X40*25
  192.                 LDIR
  193.                 LD DE,0XE1C0
  194.                 LD BC,0X40*25
  195.                 LDIR
  196.                 LD DE,0XF1C0
  197.                 LD BC,0X40*25
  198.                 LDIR
  199.                 ELSE
  200.                 LD HL,0X8000+OFFSET_SCRSAVE
  201.                 LD DE,0XC000
  202.                 LD BC,0X1000
  203.                 LDIR
  204.                 ENDIF
  205.                 RET
  206.  
  207. MAGIC_FONT      LD A,4
  208.                 LD BC,WIN_A2
  209.                 OUT (C),A
  210.                 LD HL,0X8000+CP866_UTL
  211.                 LD DE,0
  212.                 LD BC,0X800
  213.                 LD A,4
  214.                 OUT (PEVO_CONF),A
  215.                 LDIR
  216.                 LD A,1
  217.                 OUT (PEVO_CONF),A
  218.                 LD A,0X7D
  219.                 LD BC,WIN_A2
  220.                 OUT (C),A
  221.                 XOR A
  222.                 LD BC,WIN_P2
  223.                 OUT (C),A
  224.                 RET
  225.  
  226. RESTORE_FONT    LD HL,0X8000+OFFSET_FNTSAVE
  227.                 LD DE,0
  228.                 LD BC,0X800
  229.                 LD A,4
  230.                 OUT (PEVO_CONF),A
  231.                 LDIR
  232.                 LD A,1
  233.                 OUT (PEVO_CONF),A
  234.                 RET
  235.  
  236. COMPARE_FONT    CALL CMPFONT3
  237.                 LD HL,TXT_VERIFY_FONT
  238.                 CALL PRTT_MSG
  239.                 LD A,IXL
  240.                 AND A
  241.                 LD HL,TXT_VERIFY_OK
  242.                 JP Z,PRTT_MSG
  243.                 LD HL,TXT_VERIFY_ERR
  244.                 JP PRTT_MSG
  245.  
  246. CMPFONT3        LD BC,WIN_A1
  247.                 LD A,4
  248.                 OUT (C),A
  249.                 LD IXL,1
  250.                 LD HL,0X8000+OFFSET_FNTSAVE
  251.                 LD DE,0X4000+CP866_FONT
  252.                 CALL CMPFONT1
  253.                 LD A,IXL
  254.                 AND A
  255.                 RET Z
  256.                 LD HL,0X8000+OFFSET_FNTSAVE
  257.                 LD DE,0X4000+ATM_FONT
  258. CMPFONT1        LD BC,0X800
  259. CMPFONT2        LD A,(DE)
  260.                 CP (HL)
  261.                 RET NZ
  262.                 INC HL
  263.                 INC DE
  264.                 DEC BC
  265.                 LD A,B
  266.                 OR C
  267.                 JR NZ,CMPFONT2
  268.                 LD IXL,0
  269.                 RET
  270.