Jump to content
InsaneMultitasker

Telco patch for NanoPEB v1 Serial and UberGROM cart

Recommended Posts

Post updated to reflect current state:

 

1. "TELCN for nano" ZIP contains two TIFILES formatted files:

a. NANOS - source for the nanopeb patch

b. TELCN - a program to patch TELCO at run-time.


The nanopeb serial port can only be accessed when the card/DSR is turned on. Although this follows TI convention, the step is not required for other RS232 cards, hence the 'incompatibility' with most direct-access serial programs.

 

To use this patch place TELCN in the same folder/disk as TELCO/P/Q.  Start Telco by running TELCN.   TELCN will patch the necessary three routines and transfer control to Telco when complete.  I originally hacked the patches into the telco files using Birdwell's disk utilities but maintenance/upkeep is a real pain so I used the more 'interactive' approach.  Note:  this patch does not change any of the Telco files, it only changes the program in memory.

 

My testing has been limited to terminal-based testing with my (sometimes flakey) nano and a 14.4k modem.  I did not try to "fix" the DTR hang-up feature.  A proper cable is required as detailed in other topics.

 

Since the question has arisen in other threads, Mass Transfer 7.4 and TIMXT also work with the nano. The latter requires the F18A.

 

2. "TELCN for Ubergrom UART" ZIP contains two TIFILES formatted files: 

a. UBERS - source for ubergrom patch

b. TELCN - program to patch TELCO at run-time

 

The ubergrom UART patch functions with Telco's terminal mode only; the file transfer routines rely on the RS232 circular interrupt buffer on a per-module basis.  I have determined that it is not feasible (for me) at this time to try to update all of the file transfer modules.  If someone comes up with the source code for Telco, I'd be happy to take a stab at it.  UART speed is locked at 38.4K.  It is possible this speed will need to be reduced to a lower baud rate for usability when connecting to systems that transmit at high speed. 

 

Edit:  attached the telco complete package Tursi provided in another Telco thread for completeness since it is the image I used for testing.

TELCN for nano.zip

Telco - Complete Package.zip

TELCN-for Ubergrom UART.zip

  • Like 5

Share this post


Link to post
Share on other sites

Tim,

  Thank you for the gift! 😃

  Can you sketch out how you do this? I know you started with a nanopeb and a program image off telco... Where did you go from there?

Dan

  • Like 1

Share this post


Link to post
Share on other sites

I partially disassembled Telco a few years ago to better understand how it uses the 9938 VRAM.  I had wondered if it was possible to adapt Telco for F18A 80 columns. "Unfortunately" and quite understandably, many programmers relocated the screen image table to another VRAM bank instead of restructuring their program's VDP usage to place the table in bank 0. Since TIMXT fulfilled my desire for high speed, color, and nano compatibility I put the Telco code aside.  

 

When the NANO serial port topic arose again this week I revisited the disassembled Telco code. It was relatively easy to find the direct serial routines and the CIB (rs232 circular interrupt buffer) routines. I did this by searching for LDCR/STCR instructions - used to read/write from/to the 9902 - and CIB addresses 8300, 8303, and 8304.  I then reviewed each routine and looked for their entry points.

 

Modifying/fixing programs requires either changing existing code or writing new routines to be executed in place of the original code.  In Telco, we needed to add code to enable and disable the RS232 so I opted to create new routines, branch to them, and return to a point after the old routine. I settled on trashing the print spooler code in favor of the new serial code.

 

All of the patch work was completed on my TI w/nano and ubergrom cart w/Gazoo's XB27 image.  I first used Birdwell's Disk Utilities (DU) file editor to hack/test TELCO and TELCP. I then wrote and assembled the patch program using FunnelWeb.  RAG linker converted the object file into the TELCN program image. Lastly, I modified the first two program bytes to >FFFF to tell the loader that there was another image file to load after TELCN.

 

Once TELCN/O/P/Q are loaded, the patch executes - it copies new code and updates old code to branch into the new.  The patch then branches to TELCO's original load address.

 

 

  • Like 5
  • Thanks 1

Share this post


Link to post
Share on other sites

Today I noticed that when used with the ubergrom patch, Telco won't return to the title screen with the quit option.  I suspect I need to reset the ubergrom cart or grom address.  Has anyone who downloaded the ubergrom patch experienced the same thing?

Share this post


Link to post
Share on other sites

This will be exceptionally useful in my Bluetooth UberGROM cart to run CFHDX over BT 

HealthyJaggedEarwig-max-1mb.gif

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites
On 1/1/2020 at 9:12 PM, InsaneMultitasker said:

Today I noticed that when used with the ubergrom patch, Telco won't return to the title screen with the quit option.  I suspect I need to reset the ubergrom cart or grom address.  Has anyone who downloaded the ubergrom patch experienced the same thing?

Yes.  It returns to the E/A screen and locks up.

 

You say that the UberGROM patch locks the UART speed at 38,400.  The status line still shows 1200, but I assume internally it still runs 38.4k.  If I change the speed to 38400 so it shows on the status line, will that break anything?

 

Sorry I forgot this was here!  This week I will be mostly unable to work, so it is a perfect opportunity to get this project done and operational :)

Share this post


Link to post
Share on other sites
45 minutes ago, OLD CS1 said:

Yes.  It returns to the E/A screen and locks up.

 

You say that the UberGROM patch locks the UART speed at 38,400.  The status line still shows 1200, but I assume internally it still runs 38.4k.  If I change the speed to 38400 so it shows on the status line, will that break anything?

 

Sorry I forgot this was here!  This week I will be mostly unable to work, so it is a perfect opportunity to get this project done and operational :)

thanks for confirming. Drat.  I'll keep this in mind for when I get back to the timxt code.  As for the speed, what the terminal shows you is of no consequence to the ubergrom routine. I did not even try to disassembly and tie the baud rate select routines into the ubergrom hack. Someone was inquiring about Telco source code (or maybe he/she was thinking about it?).  If we ever got our hands on it, I would like to install a proper patch for the ubergrom and augment with some of the TIMXT fast serial IO routines.  Maybe even add a module for F18a color ansi.  Alas, we need the code to go any further...

Share this post


Link to post
Share on other sites

if you do need to change the baud rate, the source contains the current setting. You can either re-assemble or search for the 38.4k value, then adjust to something slower. If I documented it correctly, to adjust from 38.4k to 19.2k, you would search for the value >1900 and replace it with >3200.  9600 would probably be >6400.  The value is directly after the word "BAUD" which is there solely to help find it with a hex editor.  ;)

 

URCVED EQU $
       TEXT 'BAUD'
BAUD   DATA >1900
*  >1900=38.4; >3200=19.2

  • Like 2

Share this post


Link to post
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.

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...