Jump to content
IGNORED

TIMXT Terminal Emulator Dev


Recommended Posts

During the past few weeks I've been mulling over how to proceed with TIMXT and its development. The code base needs some TLC and many of the routines could be more efficient if I just bit the bullet to rework or rewrite them. I figured a development thread might help me collect my thoughts and share the periodic update. On that note...

 

A few AA members (i.e., Paradroyd, duhproject) have twitter feeds where they post pictures of various BBS systems they connect to. I noticed a few cool C64 BBSs and was curious how the color and graphics were being interpreted. The C64 palette and character sets are different from the TI, and PETSCII has its own way of moving the cursor and controlling which graphics set to use.

 

With the F18A, we can adjust the palette and use the text mode attributes to display colors, just like TIMXT handles ANSI colors today. So I thought a good approach to redoing the core interpreter would be to try my hand at emulating PETSCII.

 

This week I incorporated the C64 extra graphics (thanks to Sometimes99'ers font collection) and finished all but two control routines for displaying the graphics and colors. The terminal window is hard-coded for 80 columns, though I might try to allow for a 40-column color mode to get closer to the C64 experience.

 

Note: Particles BBS allows for PETSCII in 40 and 80 columns; of course, I chose 80 for my call ;) Also, a few pictures show "@" and "]" in place of horizontal and vertical lines; I did not realize until later that there is some uniqueness to the PETSCII character sets that required me to redefine a few more characters. Scorps portal has been down so I couldn't retake the photos.

 

Don't mind the terminal status bar - I haven't updated it. What you are seeing is PETSCII at 38.4K.

 

1. PLACEHOLDER - Current Release Files

 

Shift838 pulled the EA5 and FR99 images together. This version is from early 2017 and should work with the standard RS232 and the nanoPEB. Macros cannot be saved/loaded in this version; that will be corrected in the future.

 

TIMXT_NANO.zip EA option 5 files

TIMXT_NANO.bin FR99 bin file

TIMXT-v02c-2017-01-NANO-EA5.dsk disk image (thx Schmitzi)

 

** The PETSCII version has not yet been released **

 

2. PLACEHOLDER - hardware configurations

TI terminal emulators generally do not support hardware handshaking.

 

a. TI/CorComp/Myarc RS232

The following cable is NOT configured for any RTS/CTS hardware handshaking, so be sure to turn it off if your modem is configured. AT&K0 is one common command to shut down handshaking.

 

RS232 - modem device

 

1 - 1
2 - 3
3 - 2
6 - 20
7 - 7
20 - 6

 

b. NanoPEB Serial - a standard DB9 to DB25 serial cable works well with the nano. The nano's rs232 port is configured similar to that of a PC for easy connectivity. This also means if you roll your own cable, be aware that the pins will be different.

 

c. uberGROM cart UART

Connecting the UART to a modem device requires either a TTL-to-RS232 converter or a device that can operated at TTL levels. There are only three required connections: Ground, Receive, and Transmit.

 

 

3. Links to other relevant threads:

RS232 Interrupts: http://atariage.com/forums/topic/250049-interrupt-service-routine-and-the-rs232/?do=findComment&comment=3462424

NanoPEB Serial thread: http://atariage.com/forums/topic/259886-timxt-with-nanopeb-version-1/

 

 

**Edit: added placeholders for files and configurations

post-25764-0-49457500-1494793034.jpg

post-25764-0-21327400-1494793039.jpg

post-25764-0-14656000-1494793046.jpg

post-25764-0-05830200-1494793052.jpg

post-25764-0-04467200-1494793056.jpg

post-25764-0-55683800-1494793060.jpg

Edited by InsaneMultitasker
  • Like 14
Link to comment
Share on other sites

I am using tcpser as my 'modem' with a cable connected between the ubergrom cart and PC. I was having trouble with some systems and could not figure out what was wrong. Paradroyd gave me a few ideas and bbs raw data image saves to play with, which then led me to installing a copy of Wireshark so that I could look at the packets being sent to tcpser and ultimately, to TIMXT.

 

I found out that in addition to C64 PETSCII codes, there are other controls that systems like the C128 use (i.e., flashing, underlining). TIMXT was not taking these into account and as a result, the screens were coming out wrong. Here is a good before and after example :)

 

post-25764-0-93587900-1494907704.png

post-25764-0-33853300-1494907718.png

  • Like 5
Link to comment
Share on other sites

Added some preliminary information and release files to post #1. If you have info that would be helpful to place in the post, send me a PM or share it here for inclusion.

 

FYI, I haven't released the PETSCII version. I need to finish a few changes to the interpreter before that happens. Memorial day weekend was going to be a programming weekend but family plans have made that unlikely. :ponder: I might be able to share a test version out there this week, we'll see...

Edited by InsaneMultitasker
  • Like 2
Link to comment
Share on other sites

  • 2 months later...

Quick update... I've been bogged down by non-hobby items the past two months. That said, I have made incremental progress.

 

1. The code base has been converted from my Geneve platter to text files on my PC. I haven't upgraded to a fancy editor, so for now Notepad is my tool of choice. xas99 is now able to assemble and create program images in the blink of an eye. I started to clean up code, move things around, etc. as a result.

2. Once the program is created, I copy it into the HDX server folder. I can then load and run UBERHDX to execute the TIMXT program over the HDX connection. No more sneakernet!

3. I combined the TI RS232 and ubergrom RS232 routines. The UART device and baud rate are now selectable.

4. The PETSCII emulation works flawlessly with the ubergrom UART. However, it drops characters with the RS232 card when I connect to a C64 system. If I use the same routines to dial into TheKeep or Heatwave, no characters are dropped. I -think- what is happening is that the C64 is outputting slower than the other two, and for some reason this is allowing a routine to preempt the RS232 interrupt. I have not been able to isolate the issue because it is the exact opposite of what you might expect, e.g., you would expect dropped characters from the faster system.

 

In between wracking my brain over item #4, I have jotted down a few future potential changes :

1. Moving the terminal status bar to row 26.

2. Further simplifying the menu system.

3. Activating the settings save/restore options.

 

This time of the year is often quite busy with work-related efforts coming up to speed just in time to finish before the end of the year. I'll share another update as time permits.

  • Like 3
Link to comment
Share on other sites

 

 

For your editor for the PC check out Notepad++

 

There are also TI Extended Basic and TMS9900 Language files that can be loaded in it so it makes it very readable..

 

Notepad++ main program can be downloaded HERE

 

TMS9900/TI-XB Language Highlighting file for Notepad++ HERE

 

 

post-35187-0-64251000-1501026081_thumb.jpg

Edited by Shift838
  • Like 2
Link to comment
Share on other sites

  • 1 month later...

If you have an ubergrom setup that you would like to test, PM me and I will share the hard-coded version with you. Neither my availability nor current status have changed since my July 25th post. :(

 

How in the heck did I miss this thread or forget about it!? :?

Finally, something that excites me!

 

I have an EEPROM burner, and a couple of free UberGROMs, but not one modded for WiFi. If someone wants to sell me one (via PayPal), please PM me. I'd love to be a beta tester on this project.

 

Ever since the FinalGROM came out I was wondering when I'd get to use the burner again...

 

post-35324-0-99825100-1504663995_thumb.jpg

Link to comment
Share on other sites

  • 6 months later...

While looking for a few files I came across two ZIPS I had put together last year. Both contain a PETSCII-only version of TIMXT, with ubergrom and rs232 support. I was having some trouble with the RS232 dropping characters, which confounded me to no end since the routines are the same as those used in the ANSI version. Either I messed up a routine or something got trashed when I migrated the code to the PC from my Geneve.

 

1. After you load the program and drop to terminal mode, press FCTN-5 to activate the C64 palette. You'll know this works if the status bar color changes to a pink-ish color. f you press the key more than once, you may need to press it another 15 times to cycle through the colors for the terminal characters. I don't remember why I did this... [edit: I think the palette change can render the menus invisible. The in-process version corrects this behavior]

2. The C64 backspace is mapped to CTRL-T. If you connect to a C64 system that asks you to press the backspace key, that's your cue. This is often used to detect the system type, since backspace on other systems is CTRL-H.

3. Be sure to check the RS232 configuration. I might have defaulted it to the ubergrom.

 

I recommend stearing clear of file transfers and macros. As stated in another thread, I have some things to work on before returning to TIMXT.

timxt-with tifiles header.zip

timxt1 raw.zip

Edited by InsaneMultitasker
  • Like 3
Link to comment
Share on other sites

While looking for a few files I came across two ZIPS I had put together last year. Both contain a PETSCII-only version of TIMXT, with ubergrom and rs232 support. I was having some trouble with the RS232 dropping characters, which confounded me to no end since the routines are the same as those used in the ANSI version. Either I messed up a routine or something got trashed when I migrated the code to the PC from my Geneve.

 

1. After you load the program and drop to terminal mode, press FCTN-5 to activate the C64 palette. You'll know this works if the status bar color changes to a pink-ish color. f you press the key more than once, you may need to press it another 15 times to cycle through the colors for the terminal characters. I don't remember why I did this... [edit: I think the palette change can render the menus invisible. The in-process version corrects this behavior]

2. The C64 backspace is mapped to CTRL-T. If you connect to a C64 system that asks you to press the backspace key, that's your cue. This is often used to detect the system type, since backspace on other systems is CTRL-H.

3. Be sure to check the RS232 configuration. I might have defaulted it to the ubergrom.

 

I recommend stearing clear of file transfers and macros. As stated in another thread, I have some things to work on before returning to TIMXT.

 

How are the dropped characters? Are they fixed in this version? There was also an issue where no TI RS232 being on the system where the Ubergrom wouldn't work.

 

Thanks, Tim!

Link to comment
Share on other sites

 

How are the dropped characters? Are they fixed in this version? There was also an issue where no TI RS232 being on the system where the Ubergrom wouldn't work.

 

Thanks, Tim!

 

The ubergrom doesn't drop characters. At high speed, the RS232 doesn't seem to drop either, it's when connected at high speed to a slow BBS that the problem occurs. I'm guessing there is some edge condition with the interrupt routine; it's a strange one for sure. I'm pretty sure the case where no RS232 is present was resolved, but I can't guarantee it. I didn't expect to stop working on it so 'abruptly' last year. Best I can say is give it a try if you want to play with the Petscii emulation, as I will continue to update.

 

And just a little teaser the next iteration also has rudimentary Atascii support in place. I hope I can return to working on the program before I forget everything ;)

Edited by InsaneMultitasker
  • Like 1
Link to comment
Share on other sites

  • 2 months later...

So I'm trying to use my P112 CP/M SBC with TIMXT. It does work for the most part, but it seems to hang occasionally. The P112 uses VT100 emulation although that can be changed. Does TIMXT fully support that? What is the ESCAPE key sequence in TIMXT? Does the CTRL key work as expected by VT100?

ESC and CTRL are essential in CP/M.

Link to comment
Share on other sites

So I'm trying to use my P112 CP/M SBC with TIMXT. It does work for the most part, but it seems to hang occasionally. The P112 uses VT100 emulation although that can be changed. Does TIMXT fully support that? What is the ESCAPE key sequence in TIMXT? Does the CTRL key work as expected by VT100?

ESC and CTRL are essential in CP/M.

What hangs - TIMXT or the P112? What specifically is essential? TIMXT does not transmit the vt100/ansi escape sequences for the arrow keys. There are probably other omissions as the emulation was never intended for much beyond BBS support at the time. Merging my Geneve ansi/vt100 emulation code into TIMXT is on my list of to dos but TIMXT is a low priority at the moment.

Link to comment
Share on other sites

What hangs - TIMXT or the P112? What specifically is essential? TIMXT does not transmit the vt100/ansi escape sequences for the arrow keys. There are probably other omissions as the emulation was never intended for much beyond BBS support at the time. Merging my Geneve ansi/vt100 emulation code into TIMXT is on my list of to dos but TIMXT is a low priority at the moment.

 

TIMXT hangs, as if it's choking on some incoming data. Check out the video below. What I specifically need is a way to send a CTRL-<key> combination like CTRL-Q, CTRL-X etc... as well as the standard ESCAPE key. I realize that TIMXT was not designed for this type of thing but it would have been nice if I was able to use it nonetheless :)

 

https://youtu.be/FE0RaO_vnOU

Link to comment
Share on other sites

Strange. Most if not all control characters should be passed directly to the RS232 output routine. I use Ctrl-S,Q,X for the S&T BBS system, so they should work properly.

 

Ctrl-period should map to the escape code, 0x1B (27d), on the TI keyboard.

 

From your video, my immediate ithought is that your cable is somehow not quite right and that TIMXT is getting stuck in its RS232 send character routine waiting for the remote system to properly process the character and raise/lower the proper signal.

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