Jump to content
IGNORED

Stuart's TI-99/4A - Internet Web Browser


Omega-TI

Recommended Posts

I can see this evolving over time..who knows someday we might even have the ability to display very small icon sized B&W graphics. This thing could go in so many different directions it's impossible to guess...

 

It is already capable of character definitions. The TI logo you see on the page is defined. It looks like definitions are static, but there is definitely good to be done here. Stuart, is your mark-up language open, yet?

 

 

 

<99ml>
 
Character definitions for TI logo.
<cdef:01:7CC0C0C0C0C0C0C0>
<cdef:02:C0485454486020C0>
<cdef:03:0000000000003048>
<cdef:04:FC80C04060381C0C>
<cdef:05:C408080C000000B0>
<cdef:06:981818D858585840>
<cdef:07:E82828E884848488>
<cdef:08:F84C040400000000>
<cdef:09:24180084C4703C00>
<cdef:0A:3040800000808000>

Character definition for bullet.
<cdef:0B:0000003030000000>

Colour bar.
<p><br><clr:16>    <clr:13>    <clr:11>    <clr:1D>    <clr:14>    <clr:12>    <clr:18>    <clr:15>    <clr:19>    <clr:16>   </clr></p>

Blank line in cyan.
<p><clr:17>                                       </clr></p>

TI Logo and title in cyan.
<p><clr:17>  <chr:01><chr:02><chr:03> <chr:0E><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:11></clr></p>
<p><clr:17> <chr:04><chr:05><chr:06><chr:07> <chr:12>  TEXAS INSTRUMENTS COMPUTERS  <chr:12></clr></p>
<p><clr:17>  <chr:08><chr:09><chr:0A> <chr:16><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:0F><chr:18></clr></p>

Blank line in cyan.
<p><clr:17>                                       </clr></p>

Colour bar.
<p><clr:16>    <clr:13>    <clr:11>    <clr:1D>    <clr:14>    <clr:12>    <clr:18>    <clr:15>    <clr:19>    <clr:16>   </clr><br><br></p>

Menu.

<p><chr:0B> Click <a:www.avjd51.dsl.pipex.com/z_ti_test_2.htm>here</a> for a short history of the<br>  TI-99/4A.<br></p>

<p><chr:0B> Click <a:www.avjd51.dsl.pipex.com/z_ti_test_3.htm>here</a> for the pinout of the<br>  TMS9900 processor.</p>

</99ml>

 

 

 

With a little server-side scripting, it would be possible to take a TI BASIC or Extended BASIC program and execute it via the web...

Link to comment
Share on other sites

Would you mind sharing how you are performing the dns resolution? I am wondering if your approach could be applied for other systems using the UDS devices.

 

To resolve web page URLs, the program first uses the Lantronix to pass the URL to a one-liner PHP script on one of my websites (identified by its numeric IP address, which is pretty stable) which returns the corresponding IP address for the URL, and the program then uses that to download the web page. At the moment, if the IP address of my website changes, I'll have to change it in the program and re-assemble it.

 

There's also an intermittent problem with the Lantronix - once connected to one web server, it sometimes won't connect to another web server again for another minute or so (even though it appears to have correctly closed the connection), so the program has to just sit there retrying the connection until it works.

  • Like 1
Link to comment
Share on other sites

 

It is already capable of character definitions. The TI logo you see on the page is defined. It looks like definitions are static, but there is definitely good to be done here. Stuart, is your mark-up language open, yet?

 

 

The current list of supported tags is back in post #15. I'll at some point get them up on the web with some example code.

 

The displayed screen image is assembled in a buffer in RAM then uploaded to the VDP as a bitmap image, so characters can be defined and 'printed', then redefined into something else and 'printed' again without affecting the earlier use.

  • Like 3
Link to comment
Share on other sites

 

The current list of supported tags is back in post #15. I'll at some point get them up on the web with some example code.

 

The displayed screen image is assembled in a buffer in RAM then uploaded to the VDP as a bitmap image, so characters can be defined and 'printed', then redefined into something else and 'printed' again without affecting the earlier use.

 

I swear I looked for it :)

 

That is pretty cool. So you can defined character 01 multiple times, then. Nifty.

 

With that 'side scripting' the server site could set ones RTC or possibly even strip out non-viewable stuff so a person might be able to read TEXT only of the last few messages posted on Atari Age, weather alerts or breaking news and convert them to "SIB" format. Just a thought.

 

Eh, kind-of. Server-side scripting would not allow that, as the program runs on the server side of things, and all you see in the browser is the output. If it ran client-side then, yes. That would be pretty much the same as loading and running a program. Our system (the TI) is not really set up for running programs in independent sessions (sand-boxing,) but it is not impossible.

Link to comment
Share on other sites

Could the server side do something like the following:

 

Have a webpage titled d&t.htm that when called would poll these two sites:

 

DATE TIME

 

then strip out everything except the requested information and insert the text into "SIB" format page for the TI to use?

If so, the same process could be repeated for all kinds of things like weather, news, TI product releases...

Link to comment
Share on other sites

Would it make sense to standardize the (a) set of generic retro computer tags instead of having TI specific ones? I could see a whole dedicated retro internet subcommunity flourish across a wide range of systems. Sites like atariage, or other retro computer forums and info sources could provide alternative retro-ml pages when detecting retro user agents.

Link to comment
Share on other sites

Remember that this setup requires the Lantronix UDS-10 device connected to a serial port. MESS supports serial connections; you'll need TIImageTool to serve as the bridge to the PC's serial port.

 

Fair enough, although I imagine it would be possible to emulate a Lantronix or similar device within the emulator (not a feature request, just curious :)!).

 

I guess I also don't quite understand how you use such a device from the serial side of things, and how much of the heavy lifting the device is doing. Is it basically tunneling TCP or UDP over serial (and HTTP being handled by the TI)? With commands to establish connections to certain IP/port combinations, ala netcat on Linux? Or does it handle the HTTP protocol as well?

Edited by TheMole
Link to comment
Share on other sites

Would it make sense to standardize the (a) set of generic retro computer tags instead of having TI specific ones? I could see a whole dedicated retro internet subcommunity flourish across a wide range of systems. Sites like atariage, or other retro computer forums and info sources could provide alternative retro-ml pages when detecting retro user agents.

 

Nice idea, but I think once you get past a few basic tags, the tags start being specific to the machine features. For example, with the tags I have so far, those for setting the colours and defining characters are closely tied in with the 9918 VDP.

  • Like 1
Link to comment
Share on other sites

 

I guess I also don't quite understand how you use such a device from the serial side of things, and how much of the heavy lifting the device is doing. Is it basically tunneling TCP or UDP over serial (and HTTP being handled by the TI)? With commands to establish connections to certain IP/port combinations, ala netcat on Linux? Or does it handle the HTTP protocol as well?

 

The Lantronix is doing the interfacing between the TI serial port and the Internet. So start by pushing into the Lantronix serial port the IP address of the server to connect to, then push in the text for an HTTP request. The server sends back the web page, which comes out of the Lantronix serial port (as text) with HTTP header still attached. So the TI doesn't need any form of protocol stack, it just needs to know the format of an HTTP request.

Link to comment
Share on other sites

Could the server side do something like the following:

 

Have a webpage titled d&t.htm that when called would poll these two sites:

 

DATE TIME

 

then strip out everything except the requested information and insert the text into "SIB" format page for the TI to use?

If so, the same process could be repeated for all kinds of things like weather, news, TI product releases...

 

Try www.stuartconnerdownloads.me.uk/getdatetime.php. ;-)

Link to comment
Share on other sites

You know Stuart, they say,"Imitation is the greatest form of flattery". I have a feeling that once word gets out on how you did this, there will be classic computer people copying your methods to other classic systems. I can see a spot for your name in a Wiki or in someones book someday when the topic of Retro-Computing comes up.

Link to comment
Share on other sites

The UDS is really just a TCP tunnel device. I use it to connect to my Unix machine serial ports inside of a VPN. It accepts telnet connections, which can be straight-up text without out-of-band messaging. Same for the outgoing: I can use one Unix machine to connect via the UDS to another's serial port or telnet service, or smtp service, etc.

Link to comment
Share on other sites

What might be nice is...

 

1) A thread to post links to new web pages that use Stuart's Internet Browser as they become available.

2) Some link code for a "mini web ring".

3) A volunteer to host all these micro pages that people come up with.

 

Maybe after the holidays when people have more time maybe, possibly consider a competition to see who can make the coolest or most useful webpage(s)?

Link to comment
Share on other sites

 

It works on the PC, it fails on the TI. I tried multiple times...

 

** EDIT ** Everything is failing (as of this moment).

Is this the one weak-link, being dependent on one address for resolving the addresses?

Possibly a backup address could be included in a future version, or a manual entry in case of future changes?

 

Oh yeah, I attached a cheat sheet you can print up in case you want to go back and forth between Telco and Stuart's browser.

 

** EDIT ** Seems to be working again...

post-35324-0-75589000-1418871411_thumb.jpg

post-35324-0-88211500-1418874424_thumb.jpg

Edited by --- Ω ---
Link to comment
Share on other sites

 

** EDIT ** Everything is failing (as of this moment).

Is this the one weak-link, being dependent on one address for resolving the addresses?

Possibly a backup address could be included in a future version, or a manual entry in case of future changes?

 

** EDIT ** Seems to be working again...

 

I'm pretty sure it's not the server being used to resolve the addresses, as I tried someone else's PHP server as well and found that with that also it would sometimes have to sit there retrying the connection. Pretty sure it's the Lantronix, but don't see a reason why.

Link to comment
Share on other sites

 

Nice idea, but I think once you get past a few basic tags, the tags start being specific to the machine features. For example, with the tags I have so far, those for setting the colours and defining characters are closely tied in with the 9918 VDP.

 

True, although it was very common for other systems to work with re-definable 8x8 characters as well, for instance. I reckon you could come up with a base set of tags that would work across different systems, and then allow system/browser specific definitions for the more advanced stuff... Aaargh! It's HTML all over again :)

Link to comment
Share on other sites

 

The Lantronix is doing the interfacing between the TI serial port and the Internet. So start by pushing into the Lantronix serial port the IP address of the server to connect to, then push in the text for an HTTP request. The server sends back the web page, which comes out of the Lantronix serial port (as text) with HTTP header still attached. So the TI doesn't need any form of protocol stack, it just needs to know the format of an HTTP request.

 

Cool, thanks for the info. That is indeed how I figured it would work, and it's nice to see that HTTP is done on the TI side. So I'm guessing you use certain escape sequences to get the Lantronix to connect to certain IP addresses then?

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