Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 31.07.2017 savelij
  3.  
  4. ;LINIT  - initialization (hook on "P"-channel and printer init)
  5. ;LPRINT - print ZX simbol (with token decode)
  6. ;LBYTE  - print simbol (without token decode)
  7. ;LCOPY  - print screen
  8.  
  9. AY_PRN_SCR      LD H,CRCCMOSHIGH;0XEF
  10.                 CALL READCMOS
  11.                 AND M_PRINTER_AY
  12.                 JR NZ,AY_PRN_SCR1
  13.                 LD HL,0X0EAF
  14.                 LD (RADRRET_L),HL
  15.                 LD A,0XB0
  16.                 LD (RREG_B),A
  17.                 RET
  18.  
  19. AY_PRN_SCR1     LD HL,GRSET1
  20.                 CALL OUTSTR
  21.                 LD HL,0X4000
  22.                 LD C,3
  23. LCOP5           LD B,8
  24. LCOP4           PUSH BC
  25.                 PUSH HL
  26.                 LD HL,GRSET2
  27.                 CALL OUTSTR
  28.                 POP HL
  29.                 LD D,H
  30.                 LD E,L
  31.                 LD B,0X20
  32. LCOP3           PUSH BC
  33.                 LD C,8
  34. LCOP2           LD B,8
  35. LCOP1           RLC (HL)
  36.                 RLA
  37.                 INC H
  38.                 DJNZ LCOP1
  39.                 CALL AY_PRN_BYTE
  40.                 LD H,D
  41.                 LD L,E
  42.                 DEC C
  43.                 JR NZ,LCOP2
  44.                 INC E
  45.                 PUSH DE
  46.                 POP HL
  47.                 POP BC
  48.                 DJNZ LCOP3
  49.                 POP BC
  50.                 DJNZ LCOP4
  51.                 LD A,H
  52.                 ADD A,8
  53.                 LD H,A
  54.                 DEC C
  55.                 JR NZ,LCOP5
  56.                 LD HL,0X0EDE
  57.                 LD (RADRRET_L),HL
  58.                 LD HL,GRSET3
  59. OUTSTR          LD A,(HL)
  60.                 CP 0XFF
  61.                 RET Z
  62.                 CALL AY_PRN_BYTE
  63.                 INC HL
  64.                 JR OUTSTR
  65.  
  66. AY_PRN_A_       LD H,CRCCMOSHIGH;0XEF
  67.                 CALL READCMOS
  68.                 AND M_PRINTER_AY
  69.                 JR NZ,AY_PRN_A_1
  70.                 LD A,(RREG_B)
  71.                 CP 3
  72.                 SBC A,A
  73.                 LD (RREG_A),A
  74.                 LD HL,0X0EF8
  75.                 LD (RADRRET_L),HL
  76.                 RET
  77.  
  78. AY_PRN_A_1      LD A,(RREG_A)
  79. AY_PRN_BYTE     PUSH BC
  80.                 PUSH HL
  81.                 CALL LP01
  82.                 POP HL
  83.                 POP BC
  84.                 RET
  85.  
  86. AY_PRN_INIT     LD H,CRCCMOSHIGH;0XEF
  87.                 CALL READCMOS
  88.                 AND M_PRINTER_AY
  89.                 JR NZ,AY_PRN_INIT1
  90.                 LD HL,0X0EDF
  91.                 LD (RADRRET_L),HL
  92.                 RET
  93.  
  94. AY_PRN_INIT1    LD DE,0XFFBF
  95.                 LD C,0XFD
  96.                 LD B,D          ;FF
  97.                 LD A,0XFE               ;for TS or TSFM
  98.                 OUT (C),A               ;select first chip
  99.                 LD A,7
  100.                 OUT (C),A
  101.                 LD B,E          ;BF
  102.                 LD A,0X7F
  103.                 OUT (C),A
  104.                 LD B,D          ;FF
  105.                 LD A,0X0F
  106.                 OUT (C),A
  107.                 LD B,E          ;BF
  108.                 LD A,0XFE
  109.                 OUT (C),A
  110.                 LD HL,INTX
  111.                 JR OUTSTR
  112.  
  113. EXIT_09F4       LD HL,0X09F4
  114.                 LD (RADRRET_L),HL
  115.                 RET
  116.  
  117. AY_PRN_TOKEN    LD H,CRCCMOSHIGH;0XEF
  118.                 CALL READCMOS
  119.                 AND M_PRINTER_AY
  120.                 JR Z,EXIT_09F4
  121.                 LD A,(RREG_A)
  122.                 CP 0X0D
  123.                 JR NZ,LP02
  124.                 CALL LP01
  125.                 LD A,0X0A
  126.                 JR LP01
  127.  
  128. LP02            CP 0X20
  129.                 RET C
  130.                 CP 0X7F
  131.                 JR C,LP01
  132.                 CP 0XA5
  133.                 JR NC,EXIT_09F4
  134.                 CP 0X90
  135.                 JR C,LP03
  136.                 SUB 0X4F
  137.                 JR LP01
  138.  
  139. LP03            LD A,0X20
  140. LP01            PUSH BC
  141.                 PUSH AF
  142.                 LD BC,0XFFFD
  143.                 LD A,0X0E
  144.                 OUT (C),A
  145.                 LD B,0XBF
  146.                 POP AF
  147.                 OUT (C),A
  148.                 LD B,0XFF
  149.                 LD A,0X0F
  150.                 OUT (C),A
  151. LP04            CALL BREAK_KEY
  152.                 JR NC,LP05
  153.                 IN A,(C)
  154.                 RLA
  155.                 JR NC,LP04
  156.                 LD A,7
  157.                 OUT (C),A
  158.                 LD B,0XBF
  159.                 LD A,0XFF
  160.                 OUT (C),A
  161.                 PUSH IX
  162.                 POP IX
  163.                 LD A,0X7F
  164.                 OUT (C),A
  165.                 POP BC
  166.                 RET
  167.  
  168. LP05            LD HL,0X1B7B
  169.                 LD (RADRRET_L),HL
  170.                 LD HL,REI_DI
  171.                 SET 2,(HL)
  172.                 RET
  173.  
  174. ;Command code for 9-pin EPSON-compatibility printers
  175. ;Printer initialization
  176. INTX            DB 0X1B,0X40,0X07,0X07,0XFF
  177. ;setup1 (before screen copy)
  178. GRSET1          DB 0X1B,0X41,0X08,0XFF
  179. ;setup2 (every new line)
  180. GRSET2          DB 0X0D,0X0A,0X1B,0X2A,0X05,0X00,0X01,0XFF
  181. ;setup2 (after complete screen copy)
  182. GRSET3          DB 0X0D,0X0A,0X1B,0X32,0X07,0X07,0X07,0XFF
  183.  
  184. BREAK_KEY       LD A,0X7F
  185.                 IN A,(0XFE)
  186.                 RRA
  187.                 RET C
  188.                 LD A,0XFE
  189.                 IN A,(0XFE)
  190.                 RRA
  191.                 RET
  192.