Changes
initial version - please have a look at the description (I am not sure if this is detailed enough)
This 8bit Printer Port expansion is described in the book [[Maschinenspracheprogramme und Hardware-Erweiterungen für Schneider CPC's]] by [[Paul Bauriedl]]. It only connects to the centronics port of the CPC and doesn't require internal modifications.
== Description ==
In this design, only the lower 4 bits of the printer port are directly connected to the printer. The upper 4 bits are generated with the help of a latch (LS 75). If you want to print, you have to send the upper 4 bits in D0-D3 and set D4 to high to buffer the values in the latch which is connected to D4-D7 of the printer. The rest of the data can be sent by the normal printer routine of the firmware (with D4 set to 0 to disable the latch).
== Schematics ==
[[Image:8bitPrinterPortPaulBauriedl.png]]]
== Listing ==
<pre>
10 ;Patch fuer 8-bit Centronics
20 ;direkt unter HIMEM (+Floppy)
30 ;
40 indjmp: equ #bdf1
50 ;
60 org 42619-40
70 ;Initialisieren
80 ld hl, (indjmp+1)
90 ld (retour+1),hl
100 ld hl,bit0
110 ld (indjmp+1),hl
120 ret
130 ;
140 ;neue Ausgaberoutine
150 ;ist ueber Druckerindirektion
160 ;#BDF1 eingeschleift
170 ;
180 bit0: ld b,#ef
190 push af
200 srl a
210 srl a
220 srl a
230 srl a
240 out (c),a
250 set 4,a
260 out (c),a
270 res 4,a
280 out (c),a
290 pop af
300 and #0f
310 ;Jump wird beruecksichtigt
320 ;je nach System!
330 retour: jp #07f8
</pre>
== Description ==
In this design, only the lower 4 bits of the printer port are directly connected to the printer. The upper 4 bits are generated with the help of a latch (LS 75). If you want to print, you have to send the upper 4 bits in D0-D3 and set D4 to high to buffer the values in the latch which is connected to D4-D7 of the printer. The rest of the data can be sent by the normal printer routine of the firmware (with D4 set to 0 to disable the latch).
== Schematics ==
[[Image:8bitPrinterPortPaulBauriedl.png]]]
== Listing ==
<pre>
10 ;Patch fuer 8-bit Centronics
20 ;direkt unter HIMEM (+Floppy)
30 ;
40 indjmp: equ #bdf1
50 ;
60 org 42619-40
70 ;Initialisieren
80 ld hl, (indjmp+1)
90 ld (retour+1),hl
100 ld hl,bit0
110 ld (indjmp+1),hl
120 ret
130 ;
140 ;neue Ausgaberoutine
150 ;ist ueber Druckerindirektion
160 ;#BDF1 eingeschleift
170 ;
180 bit0: ld b,#ef
190 push af
200 srl a
210 srl a
220 srl a
230 srl a
240 out (c),a
250 set 4,a
260 out (c),a
270 res 4,a
280 out (c),a
290 pop af
300 and #0f
310 ;Jump wird beruecksichtigt
320 ;je nach System!
330 retour: jp #07f8
</pre>