Subversion Repositories pentevo

Rev

Rev 761 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
507 savelij 1
 
1186 savelij 2
; LAST UPDATE: 16.02.2025 savelij
550 savelij 3
 
1186 savelij 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
507 savelij 8
 
1186 savelij 9
AY_PRN_SCR      LD H,CMOS.CRCHIGH
507 savelij 10
                CALL READCMOS
1186 savelij 11
                AND CMOS_ED.M_PRINTER_AY
507 savelij 12
                JR NZ,AY_PRN_SCR1
1186 savelij 13
                LD HL,0x0EAF
553 savelij 14
                LD (RADRRET_L),HL
1186 savelij 15
                LD A,0xB0
553 savelij 16
                LD (RREG_B),A
507 savelij 17
                RET
18
 
19
AY_PRN_SCR1     LD HL,GRSET1
20
                CALL OUTSTR
1186 savelij 21
                LD HL,0x4000
507 savelij 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
1186 savelij 31
                LD B,0x20
507 savelij 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
1186 savelij 56
                LD HL,0x0EDE
553 savelij 57
                LD (RADRRET_L),HL
507 savelij 58
                LD HL,GRSET3
59
OUTSTR          LD A,(HL)
1186 savelij 60
                CP 0xFF
507 savelij 61
                RET Z
62
                CALL AY_PRN_BYTE
63
                INC HL
64
                JR OUTSTR
65
 
1186 savelij 66
AY_PRN_A_       LD H,CMOS.CRCHIGH
507 savelij 67
                CALL READCMOS
1186 savelij 68
                AND CMOS_ED.M_PRINTER_AY
550 savelij 69
                JR NZ,AY_PRN_A_1
553 savelij 70
                LD A,(RREG_B)
507 savelij 71
                CP 3
72
                SBC A,A
553 savelij 73
                LD (RREG_A),A
1186 savelij 74
                LD HL,0x0EF8
553 savelij 75
                LD (RADRRET_L),HL
507 savelij 76
                RET
77
 
585 savelij 78
AY_PRN_A_1      LD A,(RREG_A)
507 savelij 79
AY_PRN_BYTE     PUSH BC
80
                PUSH HL
81
                CALL LP01
82
                POP HL
83
                POP BC
84
                RET
85
 
1186 savelij 86
AY_PRN_INIT     LD H,CMOS.CRCHIGH
550 savelij 87
                CALL READCMOS
1186 savelij 88
                AND CMOS_ED.M_PRINTER_AY
550 savelij 89
                JR NZ,AY_PRN_INIT1
1186 savelij 90
                LD HL,0x0EDF
553 savelij 91
                LD (RADRRET_L),HL
550 savelij 92
                RET
93
 
1186 savelij 94
AY_PRN_INIT1    LD DE,0xFFBF
95
                LD C,0xFD
507 savelij 96
                LD B,D          ;FF
1186 savelij 97
                LD A,0xFE               ;for TS or TSFM
507 savelij 98
                OUT (C),A               ;select first chip
99
                LD A,7
100
                OUT (C),A
101
                LD B,E          ;BF
1186 savelij 102
                LD A,0x7F
507 savelij 103
                OUT (C),A
104
                LD B,D          ;FF
1186 savelij 105
                LD A,0x0F
507 savelij 106
                OUT (C),A
107
                LD B,E          ;BF
1186 savelij 108
                LD A,0xFE
507 savelij 109
                OUT (C),A
110
                LD HL,INTX
111
                JR OUTSTR
112
 
1186 savelij 113
EXIT_09F4       LD HL,0x09F4
553 savelij 114
                LD (RADRRET_L),HL
507 savelij 115
                RET
116
 
1186 savelij 117
AY_PRN_TOKEN    LD H,CMOS.CRCHIGH
507 savelij 118
                CALL READCMOS
1186 savelij 119
                AND CMOS_ED.M_PRINTER_AY
550 savelij 120
                JR Z,EXIT_09F4
553 savelij 121
                LD A,(RREG_A)
1186 savelij 122
                CP 0x0D
507 savelij 123
                JR NZ,LP02
124
                CALL LP01
1186 savelij 125
                LD A,0x0A
507 savelij 126
                JR LP01
127
 
1186 savelij 128
LP02            CP 0x20
507 savelij 129
                RET C
1186 savelij 130
                CP 0x7F
507 savelij 131
                JR C,LP01
1186 savelij 132
                CP 0xA5
550 savelij 133
                JR NC,EXIT_09F4
1186 savelij 134
                CP 0x90
507 savelij 135
                JR C,LP03
1186 savelij 136
                SUB 0x4F
507 savelij 137
                JR LP01
138
 
1186 savelij 139
LP03            LD A,0x20
507 savelij 140
LP01            PUSH BC
141
                PUSH AF
1186 savelij 142
                LD BC,0xFFFD
143
                LD A,0x0E
507 savelij 144
                OUT (C),A
1186 savelij 145
                LD B,0xBF
507 savelij 146
                POP AF
147
                OUT (C),A
1186 savelij 148
                LD B,0xFF
149
                LD A,0x0F
507 savelij 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
1186 savelij 158
                LD B,0xBF
159
                LD A,0xFF
507 savelij 160
                OUT (C),A
161
                PUSH IX
162
                POP IX
1186 savelij 163
                LD A,0x7F
507 savelij 164
                OUT (C),A
165
                POP BC
166
                RET
167
 
1186 savelij 168
LP05            LD HL,0x1B7B
553 savelij 169
                LD (RADRRET_L),HL
170
                LD HL,REI_DI
507 savelij 171
                SET 2,(HL)
172
                RET
173
 
1186 savelij 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
573 savelij 183
 
1186 savelij 184
BREAK_KEY       LD A,0x7F
185
                IN A,(0xFE)
573 savelij 186
                RRA
187
                RET C
1186 savelij 188
                LD A,0xFE
189
                IN A,(0xFE)
573 savelij 190
                RRA
191
                RET