Jump to content
IGNORED

SAM Speech Program


jenorton

Recommended Posts

Hi:

 

My name is Joseph Norton, from Dalton, GA.

 

I am a blind computer user and am a user of both speech and Braille.

 

Anyway, I found several different copies of the old SAM (Software Automatic Mouth" software speech program that can run on the C64.

 

In playing with it, all the copies I found come up and ask "Low or  High memory".  When you answer it says "GOODEN TAG" and is then loaded.

 

First thing I did was change the "GOODEN TAG" to "WELCOM2SAM" which works just fine.  One of the copies of SAM which I got from http://www.members.tripod.com/the-cbm-files/speak/sam64.zip consists of files which I imported into a disk image using c1541 from VICE.  There was a BASIC program called SAM, which had a REM statement saying it was "SAM Easy Boot".

 

Does anyone know if there is any advantage to using this boot program?  The only thing I think it does is keep you from having to answer the memory question.  In fact, I'm not sure if it loads it into high or low memory, since I am not familiar with Comodore BASIC.

 

Here is the listing:

 

;sam ==0801==
    5 rem easy sam boot
   20 print"{lblu}{clr}loading...{blu}{home}{down}{down}load"chr$(34)"sam.obj"chr$(34)",8"
   30 print"{down}{down}{down}{down}run"
   40 print"{down}{down}{down}{down}]pi64:]sp64:]pk64,64:]li0:]re"
   50 print"{down}print"chr$(34)"{lblu}{clr}{down}reciter on"chr$(34)":poke198,0:new{home}";
   60 forx=1to8:reada:pokex+630,a:next:poke198,8:end
   70 data 13,13,13,76,13,13,13,13

 

Any thoughts?

Link to comment
Share on other sites

Quite an interesting read. Commodore BASIC, up until around v4.0 (or if not, 5.0, perhaps?) was very much developed by Microsoft (this is obviously before either Windows 1 or 2 were a thing). Thus, the standard BASIC 2.0 used by the earlier VIC-20 is the same as that of stock C64s for some time since launch. Ditto for  many versions of BASIC for the 8-bit Apple ][ line with the main exception being Apple Integer Basic on the OG Apple ][ (and some ][+s' and //e units, if they had the proper language card installed for backwards compatibility). I see that after the 5 rem easy sam boot after the initial  ;sam ==0801==

and then went to 20 print"{Iblu}{clr} and other things after some time loading, 

then started using poke in the 50 part.

I myself am no expert on BASIC overall, nor COBOL, nor newer stuff like Javascript, Ruby, C++, or Python. Looking at the code listing, Was this listing automated past the first 1 or 2 lines, or was there more which was manually typed, such as the chr$(34) and :poke198 inputs?
Lastly, what's the main difference between low memory and high memory SAM?

Link to comment
Share on other sites

42 minutes ago, Prosystemsearch said:

Quite an interesting read. Commodore BASIC, up until around v4.0 (or if not, 5.0, perhaps?) was very much developed by Microsoft (this is obviously before either Windows 1 or 2 were a thing). Thus, the standard BASIC 2.0 used by the earlier VIC-20 is the same as that of stock C64s for some time since launch. Ditto for  many versions of BASIC for the 8-bit Apple ][ line with the main exception being Apple Integer Basic on the OG Apple ][ (and some ][+s' and //e units, if they had the proper language card installed for backwards compatibility). I see that after the 5 rem easy sam boot after the initial  ;sam ==0801==

and then went to 20 print"{Iblu}{clr} and other things after some time loading, 

then started using poke in the 50 part.

I myself am no expert on BASIC overall, nor COBOL, nor newer stuff like Javascript, Ruby, C++, or Python. Looking at the code listing, Was this listing automated past the first 1 or 2 lines, or was there more which was manually typed, such as the chr$(34) and 😛oke198 inputs?
Lastly, what's the main difference between low memory and high memory SAM?

Hi:

 

From the documentation I could find, if you loaded it high, you got more memory for your program but some functionality was not there--maybe the extra commands added into BASIC.

 

Some of the programs, though, seemed to work anyway.

 

Interestingly, the documentation acted like the RECITER program was different, and that there was a DOS Wedge included, but, I only found one machine language program, and, that has been titled "SAM/RECITER" or "SAM.OBJ" depending on the copies I looked at.

 

Again, I am not familiar enough with the Comodore family to know what I should be looking for.

 

The GUESSNUM program is missing from copies I found, but, one of the copies I found has a Poker program included.

 

Anyone have or know more about the original disk?

 

Thanks!

Link to comment
Share on other sites

So the program loads SAM.OBJ to the start of BASIC. Normally you would load an object file with the parameters ,8,1 to load it to the address it was saved, but this one relocates it automatically. The commands it issues:

 

]PI64 sets pitch to 64 on a scale 0 (impractically high) to 255 (impractically low). Default is 64.

]SP64 sets speed to 64 on a scale 0 (impractically fast) to 255 (impractically slow). Default is 72.

 

I'm not sure if ]PK sets the throat and mouth (I remember ]KN as in knobs?) but those have defaults of 128,128.

 

]LI0 turns off the screen, which is default

]RE sets SAM in reciter mode, which allows you to type in English text

 

The set of POKE commands just issue a number of carriage returns in order to automatically carry out the commands, nothing extra.

 

So basically it loads SAM.OBJ like you would do manually, sets the parameters to pretty much standard values and leaves you there. Perhaps this file upon executing automatically relocates itself to high memory (under the VIC-II chip?) to free as much RAM for BASIC as possible.

  • Thanks 1
Link to comment
Share on other sites

Ah.  Thanks.  From the stuff I read, I didn't see the ]pk thing either. Thanks for clarifying this.  This is all more or less new to me, as I never owned any of the Comodore computers when I was younger.  I knew about SAM, but, it wasn't enough motivation to purchase the C64.  Anyway, fascinating stuff

 

Oh, I found the GUESSNUM program on a disk of programs relating to SAM at https://www.rbbs.be/bam/C64-PLASTIC-8/210.d64

 

This disk even has a little talking adventure game on it.

 

Probably some other bgoodies on that site, but, doubt if they're anything I can use.

 

Thanks again!

 

Link to comment
Share on other sites

One of the data items in line 70 is 76 - this is the ASCII value for L, so it seems this boot program, along with pressing return a few times, automatically answers the Low or High Memory question with L and return to default to the low memory configuration.

 

For those who may not be familiar with Commodore BASIC, this is a technique that allows you to do things directly with the screen editor that would be difficult to automate otherwise.  It prints the commands that it wants to occur on the screen (in blue, so that they are the same color as the default background color, so you don't see them).  It spaces out everything so that the SEARCHING FOR and LOADNG and READY messages don't interfere with what it is trying to do.  Then it pokes, in this case 8, characters into the keyboard buffer, and then tells the computer that 8 keys have been typed (that's the POKE to 198).  Finally the program ends and the computer sees there are 8 keys in the keyboard buffer and performs whatever they are.

  • Like 2
Link to comment
Share on other sites

Hi again:

 

Well, from what I'm seeing, all the versions of SAM I can find seem to be "cracked" by something called 1103.  It appears the SAM and RECITER programs were 2 separate programs originally.  Anyone remember how the original disk was done? Was the original disk copy-protected? I'm guessing it was, if a group had to crack it.

Link to comment
Share on other sites

I didn't know that was a possibility. In the version I used, you switched between the modes with ]RE or ]SA. Those use the same speech synthesis, just that in reciter mode it understands plain English text but in SAM mode you need to type in the text using phonemes with inflexion on each vowel. Perhaps in low memory mode, it was only possible to have one of the two user interfaces in memory, but the cracked version found a way to compress and store both.

Link to comment
Share on other sites

Hi:

 

I found a copy of the manual on archive.org.

 

According to it, you first load "SAM", which is the program you use for phonetic input.  If you want true text-to-speech, you load another binary program "RECITER" which gives you the rest of the functionality--this is the program which asks you "Low or High memory".  That's apparently how the original version worked.

 

In the cracked version, both the SAM and RECITER programs are together, and, you have both phonetic input and text-to-speech, whichever you want, by using either the ]SAM or ]RECITER commands (abbreviated by first 2 letters).  The original SAM program would load the RECITER program with the ]LOAD command.  Now, if you type ]LO you get the cracked by 1103 message.

 

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...