Changes
== Intro ==
This interface was originally described in the book "[[Maschinenspracheprogramme und Hardware-Erweiterungen für Schneider CPC's]]" written by [[Paul Bauriedl]], released by IDEA Verlag in 1987. Around mid-nineties, it was turned into a single package and circulated in the internet.
The circuit is nearly indentical to the [[Schneider RS232 Interface]] from 1985, both circuits are using a [[Media:Mostek_3801_Data.pdf|Z80 STI]], both mapped to the same I/O port addresses. Both circuits are driven by the 4MHz signal on the CPC's expansion port, and connect CTS/RTS/DSR/DTR to the same pins, so they are (almost) 100% compatible. Some differences:
* The Schneider circuit additionally implements CHRDET.
* The Schneider circuit contains 2 diodes and 2 capacitors for converting ~8V AC to +8V/-8V DC.
* The Schneider circuit uses only 2 chips for port decoding (the overcomplicated DIY uses 5 chips for exactly the same purpose)
<gallery>
Image:SchneiderSioManualPage2.jpg|Schneider's Schematic (1985)
Image:NoPicture.png|Paul Bauriedl's Schematic (1987)
Image:Tim Riemann RS232.gif|Z80 STI Schematic (1996)
</gallery>
== How to build a RS232 - Interface for the CPC-Series! ==
Now you can plug in the interface in the CPC. Switch the power on. If the CPC doesn't work normal please switch the power off and you have to watch for faults in the connection of your interface :-(. If everything is ok then you have to copy the assembler code and do the next test.
Second part: How to program the interface. (The assembler code is saved in RS232.ASM)
Z80-STI: 50 to 19200 bps (5,6,7 or 8 bit, 1, 1 1/2, 2 stopb.stopbits, all parity flags) 24 registers, use 16 registers (direct) with F8E0-F8EF, the last 8 registers can be used indirect with a special register
== The meaning and the adresses Addresses of the registers:==
This register transfers data from and to a indirect register.
These registers are used by the interrupt handler. If you want to know
what you can do with this registers please write to Mostek for support.
Timer B value
Timer A value
USART-register. Change the connect-parameters.
Bit 7 6 5 4 3 2 1 0
x x x x x x x 0
please always set on 0
Receiver status. You need only the following bits:
Bit 0: Receiver-Enable, set to 1 if receiving is possible.
Bit 1: Memory full "1" or not "0". (If 8 Bits are
received then the interface send memory full).
Sending status. Again you need only two bits:
Bit 0: Sending-Enable, must set to "1" if sending is allowed.
Bit 7: Memory full "1" or not "0". This bit can
be used to ask if a word is send or not.
This is the send and receive register. Here you can get a word or send a word.
== Indirect registers (Choose them with register 8):==
register 0: Not used.
For more exact informations please write to Mostek and ask for support for theZ80-STI. You also can look at the assembler code.
== About the assembler code ==
'''|FORMAT''', number of bps, number of stop-bits, data bits, parity on/off, parity even/odd
Number of bps: 0 = 50 bps 1 = 75 bps 2 = 110 bps 3 = 150 bps 4 = 300 bps 5 = 600 bps 6 = 1200 bps 7 = 2400 bps Number of stop bits: 1 = 1 stop bit 0 = 2 stop bit Data bits: 0 = 7 data bits 1 = 8 data bits Parity even/odd: 1 = even 0 = odd Parity on/off: 1 = on 0 = off
== Used components: ==
== Downloads ==
[[File:Rs232cpc.lzh]] - All info and files on topic
[[Category:Peripherals]]