Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 9 of 9

Thread: Tape Simulator for Exidy Sorcerer

  1. #1

    Tape Simulator for Exidy Sorcerer

    The Exidy Sorcerer (http://oldcomputers.net/sorcerer.html) is an early personal computer, arriving in 1978 on the heels of the Apple II, TRS-80, and PET. It features a 2 MHz Z80, up to 48K RAM, ROM cartridges (made from 8-track tape cases!), and a high-resolution monochrome display. Half the character set is based in RAM, so 512 by 240 pixel graphic displays are possible.

    The Sorcerer comes with a cassette tape interface which can run at either 300 or 1200 baud, pretty good for its day (but not entirely reliable). The Teensy-based simulator replaces the cassette interface and transmits software from a microSD card at 20833 baud. Instead of queuing up a tape and waiting 15 minutes for a 24K program to load at 300 baud (or trying it twice at 1200 baud), the user loads a menu, selects the program, and loads it, all in under a minute.

    Teensy 3.5 has 300 times the speed and 10 times the memory of the Sorcerer, so making it a storage peripheral is like the tail wagging the dog. But Teensy is cheap and easy, and using it this way preserves the best part of the retrocomputing experience as no system emulator can.

    The Sorcerer's cassette interface is on a daughterboard which feeds a UART on the motherboard. The UART chip's spec is good up to 30k baud. The Teensy replaces the daughterboard and generates the UART clock signal (16 times the baud rate) using the FrequencyTimer2 library. In practice, the Sorcerer's ROM-based loader can't keep up at 30k baud, but it can at 21k (and 2 stop bits). Teensy's second serial port connects directly to the 5V UART chip with no level converters required.

    In operation, Teensy repeatedly transmits a small piece of Z80 code, the terminal/loader, along with the required 5-second header. When the user enters LOG (LOad and Go) the Sorcerer runs the code and signals Teensy to send a menu. Teensy uses the SDFAT library to build the menu and sends it off. Sorcerer waits for a keypress and asks Teensy for another menu or for a file. The simulator presently supports 3 file types: .BAS for BASIC files, .COM for CP/M executable files, or .BIN for MESS/MAME binary files. When a file is selected, Sorcerer jumps to its ROM-based loader and Teensy transmits the header and program at a blazing 20833 baud (actually faster than some floppy drives of the day).

    Long ago I happened on a Sorcerer motherboard without case, keyboard, and cassette interface. I upgraded its RAM to 56K and modified its ROM for a third-party keyboard, but then it languished for decades with no software to run. Thanks to Teensy and software libraries from the Internet, my Sorcerer has a new life. I decorated it with LEDs driven from a data bus buffer and hung it on the wall. A friend of mine with a complete Sorcerer uses the Teensy now instead of playing WAV files off a CD into the cassette port (still less than reliable). The Teensy 3.5 is visible at upper left, below the colored clip leads.

    Click image for larger version. 

Name:	ExTeensy.jpg 
Views:	70 
Size:	85.7 KB 
ID:	16317

  2. #2
    Quote Originally Posted by Citabria View Post
    A friend of mine with a complete Sorcerer uses the Teensy now instead of playing WAV files off a CD into the cassette port (still less than reliable).
    I meant to say that CD WAV file loading is less than reliable. Teensy has proven quite reliable.

  3. #3
    Senior Member pictographer's Avatar
    Join Date
    May 2013
    Location
    San Jose, CA
    Posts
    664
    Very cool! Thanks for sharing this. This would be great for the PJRC projects page.

  4. #4
    Senior Member
    Join Date
    Oct 2015
    Location
    Roma (IT, EU)
    Posts
    193
    Very nice! Congratulations!

  5. #5
    Thanks!

    At 20833 baud with 2 stop bits, the transfer rate is 1.85K bytes/sec. I don't know what the typical rate was for CP/M machines but the Atari 810 was about 1.0 and the CBM 1541 about 0.5 KB/sec (they used serial ports). Apple Disk II was as high as 15 KB/sec!

  6. #6
    Wiring diagram for early (32K) Sorcerers:

    Remove cassette interface daughterboard and connect Teensy as shown:

    Click image for larger version. 

Name:	ExiCass2.jpg 
Views:	7 
Size:	150.3 KB 
ID:	18066
    Last edited by Citabria; 10-31-2019 at 03:34 PM.

  7. #7
    In model II (48K) Sorcerers, the cassette interface is on the motherboard, so the Teensy must connect directly to the UART:

    Remove the power supply daughterboard. Remove the UART IC from its socket at 9E. Slightly bend up pins 17, 20, 25, and 40, just enough to clear the socket when it's plugged back in. With clip leads, connect Teensy to the UART pins:
    UART Teensy
    1 --- +5V
    3 --- Gnd
    17 -- 5 FreqOut
    20 -- 1 Tx1
    25 -- 0 Rx1
    40 -- 5 FreqOut

    Replace the daughterboard. If it interferes with the clip leads, add a spacer under the right side bolts.

  8. #8
    Senior Member
    Join Date
    Apr 2019
    Posts
    147
    can you use this tape emulator on other devices - eg CBM 64 / Spectrum ?

  9. #9
    This simulator implements the Exidy tape file format, so it's not directly portable to other systems. However, it could be adapted. I don't know C64 nor Spectrum well, but I suspect there are already several more capable disk emulators available for them. The Sorcerer had no built-in disk support, and this simulator provides some disk-like features without the need to modify Exidy's original ROMs.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •