BASTERM Serial Terminal in BASIC (BASLOAD)

Gerry
Posts: 51
Joined: Sat Feb 17, 2024 8:54 am
Location: Dallas, Tx.

Re: BASTERM Serial Terminal in BASIC (BASLOAD)

Post by Gerry »

Okay, hello all, I've tried the different versions of BASTERM v1, v1a, and v2 but nothing on the screen matches what I'm reading about above.
I see on the first line READY.
2nd line BANK1,4:RUN
4th line SERIAL IO (3,4,5,6,7) [7}:

I don't understand what I'm seeing. I started out with an AppleCAT 300 in my Apple IIe, but I've never seen anything like this before. I received my serial/network card a week ago. So far nothing works as described in previous posts or in what I could find as documentation.

I'm beginning to wonder why I should continue spending time and money on this. All I seen to hit are brick walls.

Thank you,
Gerry
User avatar
ahenry3068
Posts: 1166
Joined: Tue Apr 04, 2023 9:57 pm

Re: BASTERM Serial Terminal in BASIC (BASLOAD)

Post by ahenry3068 »

Gerry wrote: Sun Dec 22, 2024 5:41 am Okay, hello all, I've tried the different versions of BASTERM v1, v1a, and v2 but nothing on the screen matches what I'm reading about above.
I see on the first line READY.
2nd line BANK1,4:RUN
4th line SERIAL IO (3,4,5,6,7) [7}:

I don't understand what I'm seeing. I started out with an AppleCAT 300 in my Apple IIe, but I've never seen anything like this before. I received my serial/network card a week ago. So far nothing works as described in previous posts or in what I could find as documentation.

I'm beginning to wonder why I should continue spending time and money on this. All I seen to hit are brick walls.

Thank you,
Gerry
Have you joined the Discord yet Gerry. ? You usually get quicker answers over there. I've kind of made it my self-appointed mission to try and be a go-between from the Forum to the Discord but I can only do so much :).
voidstar
Posts: 509
Joined: Thu Apr 15, 2021 8:05 am

Re: BASTERM Serial Terminal in BASIC (BASLOAD)

Post by voidstar »

Gerry,

I'm not sure why you are seeing BANK 1,4. For BASLOAD, there is no BANK changes (at least in my original code for BASLOAD). It shouldn't hurt or cause an issue to change BANKs for this, but still wanted to clarify that it shouldn't be pertinent to the steps or results here.

Now with the "official" serial cards released and getting into peoples' hands, maybe I'll do a full video about it. I had started to awhile back, but then we ran into those gremlin issues in the original cards.

It's a bit confusing to me to call it a "Serial and Network" card - to me, Network feels like RJ45, Ethernet type stuff and connecting to a domain. But in this case, "network" is meaning the device can connect to a WiFi Network - and it does so by effectively having a built in WiModem-like device.


Backing up a little bit: the images below is what are (imo) the most pertinent aspects of the serial/network card. The TL16C550 consists of that 2550PFB. All those labels characterize a specific SMC type of chip, but ultimately it is a device that has two internal 16550 UARTs. One of those UARTs is routed directly to RS232 DB9 pins, the other UART is routed to the ESP32 that contains a built-in modem-emulation software (i.e. it gets its own power from the expansion port). The ESP32 Firmware is loaded with Zimmerman's particular interpretation of a "kind-of-Hayes-compatible" modem (mean it still uses a similar look and feel as "AT-commands" but a few subtle differences). One thing is ZiModem makes it a little obscure on what input/output ports it is using, but there are ways to determine that. For most users it doesn't matter - but can become important if you want two X16's to communicate with each other using the ESP32.

H/W notes on the TL16C550:
https://www.ti.com/lit/ds/symlink/tl16c ... 4920032494


You don't have to use the "network" portion of the card. The alternative is the "direct" serial port, DB9. If using that, then you need your own external WiModem device, or it's a lot of hoops to setup your own traditional modem (like a US Robotics vintage equipment) with an actual landline. There are various WiModem vendors (I like and suggest the ones from CBMStuff - the WiModem232 one). Like old modems, they need their own power, but also each one will have its own Hayes-compatible commands (it won't be exactly the same as ZiModem, but should be similar - like "ati" for status). This DB9 serial connector can also be used with a null-modem cable, to directly connect it to another UART (which can be another X16, or another PC with any RS232-compatible serial UART hardware).




The main limitation of BASLOAD is that it can only function at about 1200 or 2400 baud. Despite the X16 being 8MHz and a very nice serial card, the BASIC parsing on X16 still has too much overhead to support a terminal with higher speeds than this. And that's even with very little interpretation of the stream bytes. For example, adding VT100 or ANSI interpretation probably won't be realistically possible from within BASIC. So BASLOAD could be suitable for "boot-strapping" a more elaborate program over the serial connection (by modifying it recv a command that then instructs subsequent bytes to be POKE'd to a specific address).

BASTERMV1: set to a default of 300 baud and using 9FE8 (serial IO7 low)
BASTERMV1A: set to a default of 2400 baud and using 9FE0 (network IO7 low)

Other than this, the only difference between these two is that I found for the "network" portion to work under BASIC, I had to set the RTS and DSR bits in the MCR/MSR registers of the UART.

Unless you adjust the BASLOAD and produce a new PRG, then you'll need to adjust the ESP32 ZiModem software to match a suitable baud rate (using the "ATB" command). You can slowly type "ATB2400" (or 300) to get ZiModem set to that speed. When the baud rate doesn't match, it'll be semi-random on whether you get garbage character responses (which is your echo-back being misinterpreted due to the speed differences), or you might not get anything as the serial signal is rejected.



BASTERMV2: set to 2400 baud, only using the serial address
BASTERMV2 will only work for the "serial" side of the card. I didn't get around yet to BASTERMV2A that would use the network-side (but it's should just be changing SERIAL.ADDR address from the serial side to the network ports). And again, it is limited to 2400baud or slower.


Hope some of that helps for now. If other projects go smoothly and a day free's up, hopefully I can demo more about the card usage in the next week or so.
Attachments
serial_Hardware.jpg
serial_Hardware.jpg (1.25 MiB) Viewed 23 times
X16_sERIAL_PINS.jpg
X16_sERIAL_PINS.jpg (115.54 KiB) Viewed 23 times
X16_sERIAL_cARD.jpg
X16_sERIAL_cARD.jpg (170.68 KiB) Viewed 23 times
Post Reply