Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LINIT  - initialization (hook on "P"-channel and printer init)
  3. ;LPRINT - print ZX simbol (with token decode)
  4. ;LBYTE  - print simbol (without token decode)
  5. ;LCOPY  - print screen
  6.  
  7.                 include ../../macros.a80
  8.  
  9.                 ORG 0X5B00   ;23296
  10. LINIT           JR INIT
  11.  
  12. LBYTE           JR OUTBYTE
  13.  
  14. LCOPY           LD HL,GRSET1
  15.                 CALL OUTSTR
  16.                 LD HL,0X4000
  17.                 LD C,0X03
  18. LCOP5           LD B,0X08
  19. LCOP4           PUSH BC
  20.                 PUSH HL
  21.                 LD HL,GRSET2
  22.                 CALL OUTSTR
  23.                 POP HL
  24.                 LD D,H
  25.                 LD E,L
  26.                 LD B,0X20
  27. LCOP3           PUSH BC
  28.                 LD C,0X08
  29. LCOP2           LD B,0X08
  30. LCOP1           RLC (HL)
  31.                 RLA
  32.                 INC H
  33.                 DJNZ LCOP1
  34.                 CALL OUTBYTE
  35.                 LD H,D
  36.                 LD L,E
  37.                 DEC C
  38.                 JR NZ,LCOP2
  39.                 INC E
  40.                 PUSH DE
  41.                 POP HL
  42.                 POP BC
  43.                 DJNZ LCOP3
  44.                 POP BC
  45.                 DJNZ LCOP4
  46.                 LD A,H
  47.                 ADD A,0X08
  48.                 LD H,A
  49.                 DEC C
  50.                 JR NZ,LCOP5
  51.                 LD HL,GRSET3
  52. OUTSTR          LD A,(HL)
  53.                 CP 0XFF
  54.                 RET Z
  55.                 CALL OUTBYTE
  56.                 INC HL
  57.                 JR OUTSTR
  58.  
  59. OUTBYTE         PUSH BC
  60.                 PUSH HL
  61.                 CALL LP01
  62.                 POP HL
  63.                 POP BC
  64.                 RET
  65.  
  66. INIT            LD DE,0XFFBF
  67.                 LD C,0XFD
  68.                 LD B,D          ;FF
  69.                 LD A,0XFE               ;for TS or TSFM
  70.                 OUT (C),A               ;select first chip
  71.                 LD A,7
  72.                 OUT (C),A
  73.                 LD B,E          ;BF
  74.                 LD A,0X7F
  75.                 OUT (C),A
  76.                 LD B,D          ;FF
  77.                 LD A,0X0F
  78.                 OUT (C),A
  79.                 LD B,E          ;BF
  80.                 LD A,0XFE
  81.                 OUT (C),A
  82.                 LD HL,(0X5C4F)
  83.                 LD DE,0X0F
  84.                 ADD HL,DE
  85.                 LD DE,LPRINT
  86.                 LD (HL),E
  87.                 INC HL
  88.                 LD (HL),D
  89.                 LD HL,INTX
  90.                 JR OUTSTR
  91.  
  92. LPRINT          CP 0X0D
  93.                 JR NZ,LP02
  94.                 CALL LP01
  95.                 LD A,0X0A
  96.                 JR LP01
  97.  
  98. LP02            CP 0X20
  99.                 RET C
  100.                 CP 0X7F
  101.                 JR C,LP01
  102.                 CP 0XA5
  103.                 JP NC,0X09F4
  104.                 CP 0X90
  105.                 JR C,LP03
  106.                 SUB 0X4F
  107.                 JR LP01
  108.  
  109. LP03            LD A,0X20
  110. LP01            PUSH BC
  111.                 PUSH AF
  112.                 LD BC,0XFFFD
  113.                 LD A,0X0E
  114.                 OUT (C),A
  115.                 LD B,0XBF
  116.                 POP AF
  117.                 OUT (C),A
  118.                 LD B,0XFF
  119.                 LD A,0X0F
  120.                 OUT (C),A
  121. LP04            CALL 0X1F54
  122.                 JR NC,LP05
  123.                 IN A,(C)
  124.                 RLA
  125.                 JR NC,LP04
  126.                 LD A,7
  127.                 OUT (C),A
  128.                 LD B,0XBF
  129.                 LD A,0XFF
  130.                 OUT (C),A
  131.                 PUSH IX
  132.                 POP IX
  133.                 LD A,0X7F
  134.                 OUT (C),A
  135.                 POP BC
  136.                 RET
  137.  
  138. LP05            RST 8
  139.                 DB 0X14                 ; BREAK into program
  140.  
  141.                 DUPL 0X5BE0-$,0
  142. ;Command code for 9-pin EPSON-compatibility printers
  143. ;Printer initialization
  144. INTX            DB 0X1B,0X40,0X07,0X07,0XFF,0XFF,0XFF,0XFF
  145. ;setup1 (before screen copy)
  146. GRSET1          DB 0X1B,0X41,0X08,0XFF,0XFF,0XFF,0XFF,0XFF
  147. ;setup2 (every new line)
  148. GRSET2          DB 0X0D,0X0A,0X1B,0X2A,0X05,0X00,0X01,0XFF
  149. ;setup2 (after complete screen copy)
  150. GRSET3          DB 0X0D,0X0A,0X1B,0X32,0X07,0X07,0X07,0XFF
  151.