Subversion Repositories pentevo

Rev

Rev 831 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ; LAST UPDATE: 06.02.2025 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_         PUSH DE
  39.                 PUSH HL
  40.                 PUSH AF
  41.                 LD L,E
  42.                 LD A,D
  43.                 LD H,0
  44.                 LD D,H
  45.                 ADD HL,HL       ; x2
  46.                 ADD HL,HL       ; x4
  47.                 ADD HL,HL       ; x8
  48.                 ADD HL,HL       ; x16
  49.                 ADD HL,HL       ; x32
  50.                 ADD HL,HL       ; x64
  51.                 LD E,A
  52.                 SRL E
  53.                 ADD HL,DE
  54.                 AND 1
  55.                 RRCA
  56.                 RRCA
  57.                 RRCA
  58.                 RRCA
  59.                 ADD A,HIGH (CPU3+LSYM)
  60.                 LD D,A
  61.                 LD E,LOW (CPU3+LSYM)
  62.                 ADD HL,DE
  63.                 POP AF
  64.                 LD (HL),A
  65.                 LD A,H
  66.                 XOR 0x30
  67.                 LD H,A
  68.                 LD A,D
  69.                 AND 0x10
  70.                 RLCA
  71.                 RLCA
  72.                 RLCA
  73.                 RLCA
  74.                 ADD A,L
  75.                 LD L,A
  76.                 LD A,(TXT_COLOR)
  77.                 INC A
  78.                 JR Z,PRTT_A1
  79.                 DEC A
  80.                 LD (HL),A
  81. PRTT_A1         POP HL
  82.                 POP DE
  83.                 INC D
  84.                 RET
  85.  
  86. ; очистка текстмодного экрана
  87. CLS_TXTMODE8    LD BC,0xFF77
  88.                 LD A,0xAF
  89.                 OUT (C),A
  90.         EVOPORT WIN_P3,0xF7
  91.                 LD A," "
  92.                 LD HL,CPU3+LSYM
  93.                 CALL CLSTXTMD1
  94.                 LD HL,CPU3+RSYM
  95.                 CALL CLSTXTMD1
  96.                 LD A,MAGIC_COLOR
  97.                 LD HL,CPU3+LATTR
  98.                 CALL CLSTXTMD1
  99.                 LD HL,CPU3+RATTR
  100. CLSTXTMD1       EX AF,AF'
  101.                 LD A,25
  102.                 LD B,0
  103. CLSTXTMD2       EX AF,AF'
  104.                 LD (HL),A
  105.                 EX AF,AF'
  106.                 LD D,H
  107.                 LD E,L
  108.                 INC DE
  109.                 LD C,39
  110.                 LDIR
  111.                 LD C,25
  112.                 ADD HL,BC
  113.                 DEC A
  114.                 JR NZ,CLSTXTMD2
  115.                 EX AF,AF'
  116.                 RET
  117.  
  118. ; сохранение текстмодного экрана
  119. STORE_TXTMODE
  120.         EVOPORT WIN_P3,0xF7
  121.                 LD B,HIGH (WIN_P1)
  122.                 LD A,RAM_TEMP
  123.                 OUT (C),A
  124.                 LD DE,CPU1+OFFSET_SCRSAVE
  125.                 LD HL,CPU3+LSYM
  126.                 CALL STORETXTMD1
  127.                 LD HL,CPU3+RSYM
  128.                 CALL STORETXTMD1
  129.                 LD HL,CPU3+LATTR
  130.                 CALL STORETXTMD1
  131.                 LD HL,CPU3+RATTR
  132. STORETXTMD1     LD A,25
  133.                 LD B,0
  134. STORETXTMD2     LD C,40
  135.                 LDIR
  136.                 LD C,24
  137.                 ADD HL,BC
  138.                 DEC A
  139.                 JR NZ,STORETXTMD2
  140.                 RET
  141.  
  142. ; восстановление текстмодного экрана
  143. RESTORE_TXTMODE
  144.         EVOPORT WIN_P3,0xF7
  145.                 LD B,HIGH (WIN_P1)
  146.                 LD A,RAM_TEMP
  147.                 OUT (C),A
  148.                 LD DE,CPU1+OFFSET_SCRSAVE
  149.                 LD HL,CPU3+LSYM
  150.                 CALL RESTORETXTMD1
  151.                 LD HL,CPU3+RSYM
  152.                 CALL RESTORETXTMD1
  153.                 LD HL,CPU3+LATTR
  154.                 CALL RESTORETXTMD1
  155.                 LD HL,CPU3+RATTR
  156. RESTORETXTMD1   LD A,25
  157.                 LD B,0
  158. RESTORETXTMD2   LD C,40
  159.                 EX DE,HL
  160.                 LDIR
  161.                 EX DE,HL
  162.                 LD C,24
  163.                 ADD HL,BC
  164.                 DEC A
  165.                 JR NZ,RESTORETXTMD2
  166.                 RET
  167.  
  168. MAGIC_FONT      LD HL,CP866_FONT
  169.                 LD DE,CPU1+OFFSET_BUFSYM
  170.                 PUSH DE
  171.         ROMCALL UNPACK,ROM_RST80
  172.  
  173.                 LD HL,SYM00
  174.                 LD DE,CPU1+OFFSET_BUFSYM+0xF2*8
  175.                 LD BC,END_MAGICSYM-SYM00
  176.                 LDIR                            ; добавление спец символов в набор
  177.  
  178.                 LD BC,0x800
  179.                 POP HL
  180.                 LD DE,0
  181.         PEC_ON M_SHADOW_BF+M_FONT_BF
  182.                 LDIR                            ; установка MAGIC font
  183.         PEC_OFF M_FONT_BF
  184.                 RET
  185.  
  186. RESTORE_FONT
  187.         EVOPORT WIN_P1,RAM_SCR_FONT
  188.                 LD HL,CPU1+OFFSET_FNTSAVE
  189.                 LD DE,0
  190.                 LD BC,0x800
  191.         PEC_ON M_SHADOW_BF+M_FONT_BF
  192.                 LDIR
  193.         PEC_OFF M_FONT_BF
  194.                 RET
  195.