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.

Hardware Documentation

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

Board: :boards:ecb:cassette_intf:ecb-cassette-interface-001a-brd.pdf

Schematic: ecb-cassette-interface-001a-sch.pdf



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.

Build Information

Additional Circuit Documentation


Usage Notes

File transfer;
To use CP/M PUN: & RDR:
convert COM files to HEX with UNLOAD.
—–> creates TEST.HEX
convert HEX back to COM file use LOAD.
—–> creates TEST.COM

Playback sequence:
1.key PIP command ie. PIP TEST.HEX=RDR:[E] <CARRIAGE RETURN> play
3.Toggle play switch ON

Record sequence:
1. Toggle Record switch ON
2. Press Record on cassette player

Storing large files;
files over 25K split into smaller files with notepad.
for retrieval, concatenate files with PIP.

Link to reference for above commands:

Video Demonstrations

Below are two videos demonstrating operation of the Cassette Interface: - 300 baud. - 600 baud.



scream.bas - UART 'Scream' test program written in Microsoft BASIC - :?: CP/M program to load files from cassette?? :?:

stpkg.7z - package including MBASIC and Star Trek game in .hex format for testing Cassette Interface

Build Information

File List

FilenameFilesizeLast modified
600_baud.mov5.2 MiB2016/07/06 14:49
byte_serial_interface_tvt.pdf324.1 KiB2019/06/10 00:11
cassette.lst2.3 KiB2016/07/06 14:49
cassette001a.jpg1.1 MiB2019/05/31 17:16
cassette001a_labelled.jpg221.1 KiB2019/06/04 01:54
cassette001a_labelled_big.jpg221.1 KiB2019/06/03 18:20
cassette001a_labelled_big_copia_.jpg221.1 KiB2019/06/03 18:22
cassette_bom_001a.xls9.5 KiB2019/06/02 12:18
cassette_jsolis.jpg1.1 MiB2019/05/31 17:13
ecb-cassette-interface-001-brd.pdf728.8 KiB2016/07/06 21:23
ecb-cassette-interface-001-kicad.zip51.1 KiB2016/07/06 21:23
ecb-cassette-interface-001-sch.pdf161.2 KiB2016/07/06 21:23
ecb-cassette-interface-001a-brd.pdf631.0 KiB2019/06/02 12:17
ecb-cassette-interface-001a-gerbers.zip429.9 KiB2019/05/25 08:59
ecb-cassette-interface-001a-kicad.zip244.9 KiB2019/06/02 12:19
ecb-cassette-interface-001a-sch.pdf178.7 KiB2019/06/02 12:16
img.pdf845.0 KiB2016/07/06 14:49
kcs_300_baud.mov7.9 MiB2016/07/06 14:50
loader.com11.8 KiB2016/07/06 14:49
microtek_cassette_interface.pdf2.9 MiB2016/07/06 14:49
microtek_cassette_interface_portrait.pdf3.1 MiB2019/05/31 18:39
scream.bas399.0 B2016/07/06 14:49
stpkg.7z39.4 KiB2016/07/06 14:49
boards/ecb/cassette_intf/start.txt · Last modified: 2019/06/10 06:37 by b1ackmai1er
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0