Table of Contents
ECB Cassette Interface
The ECB Cassette Interface is a board used to load and store data on cassette tapes. Vintage computers commonly use cassette tape for program and data storage. The ECB Cassette Interface board uses the Kansas City Standard for encoding data.
- 300 & 600 baud operation through standard 16550 UART.
- Hardware encode and decode operation.
- ROMWBW CP/M BIOS support.
- 16550 UART may be used as a serial port.
- Kansas City Standard audio encoding.
The ECB-Cassette was developed by Nik Brisevac and is based on a design published in August 1976 of Microtrek Magazine by Don Kinzer.
The ECB-Cassette card incorporates an RS-232 serial port that is connected to the communication circuit of the cassette interface. The RomWBW system will automatically discover the card when it is configured at port 0x80 and CP / M will automatically map it to the RDR / PUN device. The system appears as a punch card machine with which it sends and receives ASCII characters. CP/M console redirection is used to send and receive files. Due to this limitation you can not save a binary file without first converting it to HEX.
When you connect this interface to the system it should be discovered as another UART. By default RomWBW sets it to 300,8,N,1 but it can also use the MODE command to set other baud rates for the cassette interface. ECB Cassette supports 300 and 600 baud but other rates can be set and used when the card is being used for serial communication.
Example boot output of ECB-Cassette discovery.
SBC Z80 @ 8.000MHz 0 MEM W/S, 1 I/O W/S 512KB ROM, 512KB RAM UART0: IO=0x68 16550A MODE=38400,8,N,1 UART1: IO=0x80 16550A MODE=300,8,N,1
The MONITOR input (JP3) must be connected to the headphone output or LINE OUT of the cassette recorder, the MIKE output to the microphone or the AUX output to the LINE IN connection of the recorder.
The switches on the board are not necessary to use the cassette, they are only used as a loop back on the RS-232 port to run tests.
The jumper P5 must be connected on 1-3 and 2-4 for the operation with the cassette.
Current Version: Rev 1a
Note: The pdf, gerber and Kicad board files represent the most current design which includes a jumper for the Kontron\N8VEM reset configuration. The previous version on the wiki included a pdf schematic v 001 what represents a previous design. Now all files v 001a are corrected to include this.
Additional Circuit Documentation
To use CP/M PUN: & RDR:
convert COM files to HEX with UNLOAD.
example: UNLOAD TEST.COM <CARRIAGE RETURN>
—–> creates TEST.HEX
convert HEX back to COM file use LOAD.
example: LOAD TEST.HEX <CARRIAGE RETURN>
—–> creates TEST.COM
1.key PIP command ie. PIP TEST.HEX=RDR:[E] <CARRIAGE RETURN>
3.Toggle play switch ON
1. Toggle Record switch ON
2. Press Record on cassette player
3. Key PIP command ie. PIP PUN:=TEST.HEX[E] <CARRIAGE RETURN>
Storing large files;
files over 25K split into smaller files with notepad.
for retrieval, concatenate files with PIP.
example: PIP WHOLEFILE.HEX=1STFILE.HEX[ I ],2NDFILE.HEX
Link to reference for above commands:
Below are two videos demonstrating operation of the Cassette Interface:
kcs_300_baud.mov - 300 baud.
600_baud.mov - 600 baud.
scream.bas - UART 'Scream' test program written in Microsoft BASIC
loader.com - CP/M program to load files from cassette??
stpkg.7z - package including MBASIC and Star Trek game in .hex format for testing Cassette Interface
|600_baud.mov||5.2 MiB||2016/07/06 14:49|
|byte_serial_interface_tvt.pdf||324.1 KiB||2019/06/10 00:11|
|cassette.lst||2.3 KiB||2016/07/06 14:49|
|cassette001a.jpg||1.1 MiB||2019/05/31 17:16|
|cassette001a_labelled.jpg||221.1 KiB||2019/06/04 01:54|
|cassette001a_labelled_big.jpg||221.1 KiB||2019/06/03 18:20|
|cassette001a_labelled_big_copia_.jpg||221.1 KiB||2019/06/03 18:22|
|cassette_bom_001a.xls||9.5 KiB||2019/06/02 12:18|
|cassette_jsolis.jpg||1.1 MiB||2019/05/31 17:13|
|ecb-cassette-interface-001-brd.pdf||728.8 KiB||2016/07/06 21:23|
|ecb-cassette-interface-001-kicad.zip||51.1 KiB||2016/07/06 21:23|
|ecb-cassette-interface-001-sch.pdf||161.2 KiB||2016/07/06 21:23|
|ecb-cassette-interface-001a-brd.pdf||631.0 KiB||2019/06/02 12:17|
|ecb-cassette-interface-001a-gerbers.zip||429.9 KiB||2019/05/25 08:59|
|ecb-cassette-interface-001a-kicad.zip||244.9 KiB||2019/06/02 12:19|
|ecb-cassette-interface-001a-sch.pdf||178.7 KiB||2019/06/02 12:16|
|img.pdf||845.0 KiB||2016/07/06 14:49|
|kcs_300_baud.mov||7.9 MiB||2016/07/06 14:50|
|loader.com||11.8 KiB||2016/07/06 14:49|
|microtek_cassette_interface.pdf||2.9 MiB||2016/07/06 14:49|
|microtek_cassette_interface_portrait.pdf||3.1 MiB||2019/05/31 18:39|
|scream.bas||399.0 B||2016/07/06 14:49|
|stpkg.7z||39.4 KiB||2016/07/06 14:49|