• Please review our updated Terms and Rules here

Getting a SuperPET online

CR = 0x0D is the carriage return, always in the history of computing. :)

The WiModem does not need the LF (0x0A) to terminate a line, that just moves down one line without changing the carriage position.

@Ral-Clan, if you are actually getting the AATTII back, then it means that the ASCII is being understood and echo'd back. It would seem that the RETURN key is not being recognized (sent by the PET) Just pressing RETURN over and over again should be causing the Tx and Rx lights to both light up (sequentially). If you don't see this, then RETURN is *not* being sent. You might then look at the terminal program to see what filtering options are available.

What terminal software are you using? Perhaps I can try it or look at the code.
 
That is a good idea by Jim regarding just pressing the RETURN key.

Jim, I just wanted to double check... The SuperPET communications setup program uses 0x0D as a RETURN by default. So that is one issue that is definitely ruled out.

I would also suggest entering all of the alphabet and numbers as well as symbols to see if you get the correct echo back for each and every key. I have seen some strange things if the serial parameters are not 100% correct. For example, some characters get converted into others!

As long as we keep ruling out one issue at a time, we should eventually find the issue that is the problem! We have sorted out the wires, now we need to sort out the software.

Dave
 
I verified again on my Amiga that just pressing RETURN does in fact receive and echo the RETURN character. I looked at my code for this (now 8 years old) and I actually accept RETURN *or* LINEFEED as the termination of a line while in COMMAND mode.

@Ral-Clan - you might want to try doing an emergency reset on the off chance that some setting got changed. This would reset the "eeprom" (settings) back to the factory defaults. S-Register 3 is the character used for CR and S-Register 4 is the character for LF. If those are NULL for some reason, RETURN would be ignored. I know you said that this sucessfully worked with an Amiga, but after all of the keyboard beating trying to get a response it's possible that some setting(s) got changed (although not likely as you also need to use AT&W to store the settings).. but I am not sure what was done while it was plugged into the Amiga. The emergency reset process is described in the manual.
 
Well, I'm here to report some major success.

First of all, I was able figure out how to load terminal software into the Superpet side of things. The 6809 side. This made trouble shooting easier, as the more advanced terminal software gave me access to menus where I could adjust communication parameters.

Once I had a parameter menu to play with, I found that with parity set to SPACE, suddenly everything just worked! The SuperPet and the Wimodem232 could communicate and I could connect to bbs's.

I then went back to SuperPet 6809 terminal programs I had previously tried with no success, including the one built into ROM, and found what with parity set to SPACE, all of them work with the Wimodem232.

No other parity setting works with this hardware combination.

So the questions remain: Why did the SuperPet work straight away from 6809 mode with the US ROBOTICS modem, while set to EVEN parity? Why did that terminal program that runs from the 6502 side work with the Wimodem232?
 
Good job on getting it to work.

In terms of the serial set-up, BOTH ends of the link need to 100% agree on the configuration. However, even here, there is always still 'wiggle room'.

One question, now you have it working, is to determine how the serial parameters are setup in the Wimodem232 and see how they compare with those in the SuperPET.

I notice in the SuperPET default serial configuration, parity is set to EVEN by default, and SPACE is an option. However, noticeably absent, is an option to change the number of data bits.

There are too many variations of a theme here to discuss (I am on my phone), but sometimes you can get away with a slight misconfiguration, but most times not.

Let's take the example of a <RETURN> character ($0D). In 8-bit binary this is "0000 1101". Notice that this has an ODD number of '1' bits. If the serial line is set to EVEN parity, this means that an extra '1' bit needs to be inserted somewhere.

This is where we need to know how many data bits are going to be transmitted so we know where the parity bit is inserted. Let us ASSUME that 7 data bits are transmitted plus the parity bit. This would make the character that is transmitted as "P000 1101" or "1000 1101".

If the receiver end automatically masks out the most significant bit, it will see "0000 1101" - which is our <RETURN>. However, if the receiver is checking all 8 bits, "1000 1101" is NOT the same as "0000 1101" and a <RETURN> will not be seen.

This is only the tip of the ice berg though!

The US Robotics modem may be set up for EVEN parity. It may also be setup so it doesn't care about parity.

The configuration of the SuperPET for EVEN parity is a default setting within the 6809 ROMs. The 6502 will not use the same settings, as the BASIC ROMs etc. know nothing about the SuperPET. Likewise, the 6502 BASIC ROMs know nothing even of the existence of the serial port.

Sorry, a quick introduction, but this phone keyboard is awful!

The bottom line is, BOTH ends of the link HAVE to be configured the same for assured success.

I would normally use an oscilloscope on the serial lines to observe what is going on.

Dave
 
Thanks Dave for all your help on this issue and helping me get things sorted. It's not perfect as it goes right now but it does work. I find that keeping the modem and computer set at 300 baud is the best for reliability.

During one session I had switched both the modem and the 6809 terminal program to 1200 baud, and while it worked during that session, the next time I turned on the hardware, I had a lot of trouble getting the computer and modem to talk to each other. I had to hook the Wimodem232 back up to my Linux laptop and reset it to 300 baud to get it to work with the SuperPet again.

Also, the setup only works reliably with a cable that, as you suggested, has pin 7 connected to pin 20 on the computer side. With a straight through cable it's touch and go as to whether it will work. So there appears to be some Voodoo going on.

While all 6809 terminal software requires SPACE parity to work, I do have one piece of software specifically written for the SuperPet in 6502 mode. Although this terminal software runs from 6502 mode BASIC 4.0, it recognizes the serial port on the SuperPet's internal board. This 6502 software runs well, but only successfully works in MARK parity mode.

When the Wii modem is connected to my Linux laptop, it runs fine with EVEN parity mode.

And as I mentioned above, the US robotics modem works fine with the SuperPet in 6809 mode using EVEN parity.

Oh, and now that I am using more sophisticated 6809-based terminal software, I can play with the word length. Only a word length of seven bits works.

Interesting and confounding.
 
>>> Interesting and confounding.

Not really...

You haven't stated how the US Robotics and Wimodem232 are configured for their number of data bits, number of stop bits and parity.

This is the key!

In order to increase the line speed, you have to use some form of flow control at both ends. Software flow control (using XON/XOFF) may be your best bet.

As I understand the hardware handshake on this revision of the Wimodem232, it only works in one direction...

Dave
 
Unless you are deliberately changing the number of data bits, stop bits, and/or parity, the WiModem232 always defaults to 8N1 when you just provide the baud rate. You can change any of those with the command to set the baud rate. Those are a hardware feature, which change the hardware UART on the WiModem232. So, AT*B300 sets the baud rate to 300 with 8 data bits, no parity, and 1 stop bit. Standard modems all default to 8N1, and I am not sure how you would change that with a US Robotics modem unless it has dip switches. This is something that you really can't "auto baud".

AT*B300,7E1 would set the baud rate to 300 with 7 data bit, even parity, and 1 stop bit.

MAKE SURE that you have the latest WiModem232 firmware... I know there was a bug in baud rate settings where AT&W was not saving the suffix (data bits, parity, stop bits) so booting from power off was changing just the baud rate only. You can do an update of your WiModem232 by typing AT*UPDATE. This might explain the issue you had with 1200 baud not working after trying it again.

Hardware handshaking works both directions, via RTS/CTS. However, DSR/DTR is not supported unless you do the jumper mods which then disables RTS/CTS. This only applies to the WiModem232 V1 that @Ral-Clan has. The WiModem232 V2 and the WiModem232 Pro support RTS/CTS/DSR/DTR simutaneously.
 
Last edited:
I'm posting the following note, just as a summary for anyone who is online searching to solve the same problem that I had when starting this thread:

So I've been using the WiModem232 v1.0 for about a month now with the internal parallel port of the SuperPET. It's been reliably working using the cable I built according to instructions in Post #7.
I've been reliably able to use it at tested baud rates of 300, 1200 and 2400. I haven't needed to test any higher speeds. So I guess my initial difficulty using 1200 baud, as stated in Post 87, came down to user error.

I've played with different settings in my terminal software. All terminal software used while in 6809 CPU mode of the SuperPET must be set to a Parity of SPACE to work with the WiModem232. I have one terminal program that works from the 6502cpu side of the SuperPET that *may* behave differently. See below.

Here is my summary of all terminal programs for the SuperPET I have been able to get to work with my setup (most of the software comes from here):

SUPERCOM.BAS6
This is found on a disk image available on the web titled "TELECOM.D80". It is a Commodore BASIC 4.0 piece of software that runs from the 6502cpu side, but accesses the parallel port on the SuperPET's daughter board. Because it is written in BASIC it only has one baud rate of 300. Not many other parameters are select-able: only AUTO LINE FEED and PARITY. Parity is by default set to MARK, and it works, but I've also tried changing this to the only other two choices: EVEN and ODD, with no loss of functionality. Therefore I'm not even sure if this parameter reading is truly implemented.

For those using this software, RVS acts as a control key, and HOME recalls the menu.

The following pieces of software function from 6809 mode:

TV920 or TARDIS (by J. Toebes)
Found on a disk image named "TERMPKG.D80". I believe this software is meant to emulate a Televideo 920 terminal. This is a full featured piece of software. It runs very well EXCEPT it doesn't seem to handle the DELETE key well with three BBS's I've tried. Instead of deleting characters, the DEL key just results in placing "W" characters on-screen (although I don't think these are recieved by the host computer - rather nothing is). This is unfortunate, as it seems like a good piece of software, and no amount of experimenting with settings has resulted in a solution yet.

Key shortcuts for this piece of software are:
RVS+STOP: exit software (also REPEAT+a)
REPEAT+F: file options menu
REPEAT+T: table definition of unprefixed action codes
REPEAT+O: option menu - to set baud, parity, duplex, etc.
REPEAT+K: keyboard map (holding the REPEAT or RVS keys when this is shown shows sub-keyboard shortcuts)

COM-MASTER
On disk image "COMMASTER.D80". This is a very nice piece of software, and the best working one I have found for the SuperPET. It can emulate a dumb terminal (generic) or a Lear-Siegler ADM-3A terminal, and has many settings.
This terminal program handles the DELETE key correctly, and is currently my go-to terminal program for the SuperPET.

Key shortcuts:
RVS-SHIFT+STOP: exit program (might also be RVS+STOP)
ESC+RVS+SHIFT: enter configuration menu, where the format to change a parameter is <parameter name>=<parameter>, ie: BAUD=300, or BR=300, or PAR=SPACE

Terminal mode from microEDITOR
The Editor software provided by Watcom with the SuperPET has a basic Terminal mode. Before loading all modem parameters should be set from the "setup" menu (press "s") you see when turning on the PET. With a disk or disk image containing the microEDITOR mounted, type EDIT from the main startup menu to load. Press ENTER when prompted to start the program. From within EDIT, press the 5 key on the numpad to ensure you are in interactive mode. Enter the command TALK to enter terminal mode. That's it. It's very bare bones.

To return to interactive mode (exit terminal mode) press the STOP key. Type BYE to return to the SuperPET's main menu.

Built in terminal mode (SuperPET ROM)
There is a terminal mode built into the SuperPET's ROM. From the start menu set all modem parameters (press S). Exit this setup screen (press RETURN). From the menu type <M> <return> to enter monitor mode. Press <P><return> to enter the terminal mode. To exit terminal mode press the STOP key. You will see two chevrons (>>). Press RETURN. You will see a message like INVALID COMMAND and one chevron. Enter <q><return> and you will be brought back to the startup menu.

NEWTERM
On a disk named "NEWTERM.D80". Haven't explored this one too much. It needs to be loaded from monitor mode with and started with "G 7000".

Key shortcuts:
SHIFT+NUMPAD. (PF.) = exit to monitor
SHIFT+NUMPAD5 (PF5) = invoke setup
SHIFT+NUMPAD7 (PF7) = turn local echo on or off
SHIFT+NUMPAD0 (PF0) = switch between upper/lower case
RVS acts as CTRL


By the way, disk images can be mounted from 6502 mode (Commodore BASIC) the usual way, and then the computer live switched to 6809 mode (hot switching is allowable on the SuperPET). However, to mount disk images from within the 6809 mode the following works:

  1. Start the microEDITOR
  2. Enter interactive mode (PF5)
  3. Type: g ieee8-15.CD:<disk image name>
  4. Issue the command "di" to get a directory of the mounted disk image
  5. Exit the mEditor by typing BYE, which will return you to the startup menu
  6. Type the filename of the program you want to load, followed by RETURN to load it.
 
Last edited:
Back
Top