• Please review our updated Terms and Rules here

Saving a TMS6110 Phrase ROM to a file.

Chr$

Experienced Member
Joined
Aug 13, 2021
Messages
155
Location
Saxony, Germany
Just noticed there is a BBC section here. It doesn't look all that busy but I'll give it a try before asking elsewhere!

The BBC Model B has by default, 2 empty sockets for TMS speech chips. One of the spaces is for a TMS5220, which is the speech processor. The other is the so-called Phrase ROM, a TMS6110 chip. The Phrase ROM contains (obviously) the phrases that get processed to ultimately emanate from the loudspeaker. Other contemporary devices used the same pair of chips to generate speech.

I am attempting to read and save (to file) the contents of a TM6100 Phrase ROM chip using a BBC Model B.

I'm using the ReadPHROM program on this page:


The content appears on screen but I am not familiar with the BBC and have no idea how to save the data that scrolls past to a file. I expect (hope) it's something obvious that BBC users know about.

Thanks.
 
We are around...

Load your BASIC program to dump the desired speech ROM.

Enter the command *SPOOL "ROMDUMP" to save anything sent to the screen to a file named "ROMDUMP". Select a more suitable filename of your choice...

RUN the BASIC program.

Enter the command *SPOOL on its own to close the spooled file after the ROM has been dumped.

See if that works for you.

Dave
 
Und eile die treppe hinunter - or something like that - if I remember correctly from my Secondary School German classes...

Dave
 
Bin schon wieder da..

It worked, sort of. The program outputs some other stuff onto the display though - it includes the byte address on the left and also the ASCII representation of the hex on the right (much like an HxD screen or similar), so what should be a 16kb file is actually 79kb odd and contains a lot of padding. Looks like I'll have to see if I can amend the basic prog to only actually show the hex part on the screen. Nearly there though.

And there are also spaces between each byte, just noticed!
 
That is down to the BASIC program of course!

I assume it dumps the ROM contents in plain ASCII for a human to read and not in binary.

If you want anything differently you will have to tweak the BASIC program to give you what you want.

Alternatively, you can write a BASIC program to process the ASCII dump and manipulate it into a format suitable for your use.

All *SPOOL does is to send whatever goes to the screen to the named file.

Dave
 
It displays both, hex in the middle, ASCII on the right. So I need to strip the address prefix on the left, the spaces between all the hex and then ASCII on the right. I'll give it a go.
 
No, I'm not clever enough. I did manage to remove the spaces, and remove the address part on the left and the ASCII readable part on the right. That generated just screens full of hex codes. Great. But when I save it to file the result is an ASCII file and when opened in a hex editor it shows the hex codes for the text and it's a complete muddle. And as it thinks each 2 digit hex number is ASCII it also gives it 2 bytes in the actual hex section, so the file is therefore exactly 2x the size it should be. Here is what I mean (the 'Decoded Text' is spot on, just in the wrong place (you know what I mean)):

badhex.jpg

I've asked the creator of the program that captures the PHROM data how best to go about getting an actual hex file of the output, instead of it scrolling on screen.
 
Yes, the output is ASCII not BINARY.

How large is the BASIC program? Are you able to post it so I can look at suggesting a modification for you?

Actually, the ASCII bit on the right is what you want (I suspect)!

Dave
 
That is a tokenised BBC BASIC program. I would have to fire up the BBC to do anything with it.

You could use your new-found *SPOOL command to list the program in ASCII though for me...

Looking at the tokenised form, the BASIC program looks to be written quite well, so it should be relatively easy to modify (I suspect).

I am guessing that we just have to comment out the parts of the program that you do not require.

Dave
 
No, I'm not clever enough. I did manage to remove the spaces, and remove the address part on the left and the ASCII readable part on the right. That generated just screens full of hex codes. Great. But when I save it to file the result is an ASCII file and when opened in a hex editor it shows the hex codes for the text and it's a complete muddle. And as it thinks each 2 digit hex number is ASCII it also gives it 2 bytes in the actual hex section, so the file is therefore exactly 2x the size it should be. Here is what I mean (the 'Decoded Text' is spot on, just in the wrong place (you know what I mean)):
As you appear to be using HxD I believe you can simply paste the text into a new file and it will convert to binary.

Any particular reason you're trying to do this as all the speech PHROM's have already been dumped.
 
Hello,

Aha, yes you're absolutely right! New blank file and pasting it in is now spot on. Good tip that, thanks.

No need to make any changes to the original program file Dave.

It's not a BBC PHROM, it's the PHROM from an ICL OPD computer, which I don't think has ever been read/dumped before. I was just using the BBC as a convenient way to achieve that.
 
Part no. is CM62025, which is on that list as unknown.

Now it's known! There was also a version of the ICL OPD for the USA with a different voice that sold in very small numbers, so potentially one of the other unknowns not too far away in part number order will be for that one.

ICL_OPD_CM62025.jpg
ROM dump attached.
 

Attachments

  • ICL OPD PHROM.zip
    482.2 KB · Views: 9
Part no. is CM62025, which is on that list as unknown.
Thanks for that, and interesting to see it's number is the one after that for the Beeb.

I'll point the curator of that wiki to your post.
 
Back
Top