• Please review our updated Terms and Rules here

Looking for TMS7000 assembler

fjkraan

Experienced Member
Joined
Jul 30, 2003
Messages
173
Location
Netherlands
Hi,
Anyone aware of a TMS7000 assembler that uses the syntax of the original Texas Instruments Assembler? The syntax is well described in the 1989_TI_TMS7000_Family_Data_Manual (original at bitsavers, and a version with bookmarks or proper page numbers at https://electrickery.nl/comp/tms7k/doc/SPND001C_TI_TMS7000_Family_Data_Manual_1989_BM.pdf).
There is the open source libasm (https://github.com/tgtakaoka/libasm/tree/main) for multiple processors, but is has a different syntax, which looks more 'standard, but not very well documented. I am making a quick and dirty cheat sheet for this, but would prefer something already documented. I use Linux, but a DOS version might also work with DosBox.

Greetings & thanks,

Fred Jan
 
@NobodyIsHere: Thanks for the link. The project is somewhat confusing, as it describes a CTS256 processor based device, but the eprom.asm file contains TMS7000 code and a link to the AS macro & cross assembler source (http://john.ccac.rwth-aachen.de:8000/as/). Is the CTS256 a TMS7k application? The datasheet says it PIC7041 clone. The pinout is very similar to the TMS7000 CPU family.

Greetings,
Fred Jan

P.S. A short experiment indicates the asl assembler uses a generic assembly syntax, just like libasm (the * isn't seen as comment charcter, the ; is). Maybe this behaviour is to be expected for a multi-processor cross-assembler.
 
Last edited:
Hi
The situation for TMS7000 tool chains isn't great but it exists and works. The link above is for a classic Radio Shack CTS256/SP0256 text-to-speech (TTS) circuit of which there are several on the internet.

What is special about the link is the code is for a CTS256 expansion ROM including a debug monitor. As you know, the CTS256 is really a repackaged PIC7041 (aka TMS7041) so it can be programmed using TMS7000 code from tool chains. Really, the CTS256 itself is a fiction, it really is a relabeled TMS7041 with proprietary mask ROM.

I just recently verified that the CTS256 can be substituted with a TMS7001 (no internal ROM) plus external EPROM. Also, I was able to get a CTS256 to ignore its internal mask ROM and use its firmware in an external EPROM. Now we can have TTS circuits without CTS256 using two EPROMs: one for booting firmware and the other for expansion ROM (exceptions, debug monitor, additional functions, etc.).

It is all a bit confusing, but it seems no one that I've been able to find has decoupled the CTS256 from its internal mask ROM until now. The era of custom CTS256 firmware has arrived. Also, you don't need actual (rare, expensive) CTS256 chips to make Radio Shack style TTS circuits. The CTS256 often costs $100 plus on eBay -- if you can find them at all. The substitute parts cost less than $10 total.

I have a video of the test board in operation, but it is too big to upload.
 
I have four (4) DAISY256 PCBs leftover if anyone wants to build and experiment on their own. I will send you one of the boards if you're willing to build. Especially if you're interested in tweaking CTS256 firmware to support other TMS7xxx and TMS7xCxx variants. I am satisfied that the TMS7001 works out-of-the-box since that was what I was looking for. Or if you're overseas from the US, you can use the Gerbers to make your own PCBs. Mine worked right away with no bodges, cuts, or jumpers needed.

Definitely the TMS7001 works as a substitute for CTS256. I think the TMS70C02 is tantalizingly close to working but TI changed the serial initialization routine, so it starts and says "O-K" on power up or reset but the serial port doesn't work (not surprisingly). Would need to make some firmware tweaks and reassemble. Fortunately, we have the firmware source code and data books, so all the ingredients already exist.

I think the TMS70C02 would probably work with minor changes to the boot firmware. However, unsure whether that will happen since the proof of concept already exists which is the purpose of DAISY256. I also tried a TMS77C82, but it didn't work at all indicating even more changes to the firmware needed since it is more different. The benefit of the TMS70C02 and TMS77C82 are they are much newer, less expensive, and far more plentiful.

PS, you *do not* need a CTS256 to build and test the DAISY256 board. It works fine with a TMS7001NL-4 you can get from eBay for $5. Be sure to get the NL-4 variant for crystal compatibility with the CTS256 (10 MHz). You can also use the NL-2 version, but it requires a 5 MHz crystal (untested but should work). I needed a CTS256 to verify the baseline design works but now that it is complete, we don't need CTS256 anymore unless you choose to use one. Personally, I given the rarity and cost, I would reserve CTS256s for other projects that require them. My future TTS projects will include the TMS7001 option from here on out.
 
Last edited:
Yes, I am interested in the DAISY256 board, but the overseas option is probably best for me. And a fun reason to play with the SPO256. Do you have a reliable source? There appear to be counterfeit for this chip.

Greetings,
Fred Jan
 
I've had luck here: https://www.ebay.com/sch/i.html?_ssn=351_windsor

This would be good insurance as a SP0256 tester: https://www.ebay.com/itm/275386401515

My next goal with DAISY256 is to allow non-AL2 SP0256s to access the 59 allophone information via external ROM. Thus, non-AL2 SP0256s could serve as speech synthesis like a SP0256A-AL2. I have some test SP0256A-080s for experimentation.

I am looking for data sheets, application notes, schematics, and/or other technical data for SPR000 and/or SFD2000. Any help in locating this information, even actual SFD2000 or detailed front and back photos would help.
 
I am looking for data sheets, application notes, schematics, and/or other technical data for SPR000 and/or SFD2000. Any help in locating this information, even actual SFD2000 or detailed front and back photos would help.
No doubt you've seen the data at http://bitsavers.informatik.uni-stu...oks/1982_GI_Microelectronics_Data_Catalog.pdf. It seems the SPR000 is a processor and the SFD2000 the evaluation board with the processor and SP0256. What you are looking for is the "Speech Field Development Data Manual" from GI.
 

Attachments

  • SFD2000Description.png
    SFD2000Description.png
    133.7 KB · Views: 2
  • SFD2000BlockDiagram.png
    SFD2000BlockDiagram.png
    72.2 KB · Views: 2
Hi
Yes, I've seen that information. What the diagram is missing is pinout information on the SPR000. There is not enough information available to make a useable SPR000 project. A brief datasheet would probably be sufficient. Or an actual SFD2000 PCB so I could reverse engineer the connections and build my own model.

The other alternative is to reverse engineer the SPR000 itself using a CPLD. Probably achievable but not an easy task. I considered possibly an MCU based approach, but I don't think any are fast enough for the job since it has to complete each command in well under a microsecond. That's pretty tough for an MCU.

Fortunately, the SP0256 and SPR016 interface protocol seems fairly well documented so someone wants to give the CPLD approach a try, I would like to collaborate with them on it.
 
Back
Top