Jump to content

Photo

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

TI-99/4A SOFTWARE INTERNET

442 replies to this topic

#26 InsaneMultitasker OFFLINE  

InsaneMultitasker

    Stargunner

  • 1,731 posts

Posted Tue Dec 16, 2014 9:33 AM

Very cool!

 

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. 



#27 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Tue Dec 16, 2014 9:44 AM

Very cool!

 

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. 

 

Very cool indeed!   :)  

It's great, it's not just P-BOX users, now V1 Nano-PEB'ers can get in on the action too.  



#28 OLD CS1 OFFLINE  

OLD CS1

    River Patroller

  • 3,939 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Dec 16, 2014 10:11 AM

And its own markup language, to boot.

<99ml>

Now just need a language add-on for Notepad++.



#29 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Tue Dec 16, 2014 10:39 AM

And its own markup language, to boot.

<99ml>

Now just need a language add-on for Notepad++.

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



#30 OLD CS1 OFFLINE  

OLD CS1

    River Patroller

  • 3,939 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Dec 16, 2014 11:22 AM

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?

 

Spoiler

 

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



#31 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Tue Dec 16, 2014 11:43 AM

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.



#32 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Tue Dec 16, 2014 11:48 AM

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.



#33 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Tue Dec 16, 2014 11:53 AM

 

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.



#34 OLD CS1 OFFLINE  

OLD CS1

    River Patroller

  • 3,939 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Dec 16, 2014 1:26 PM

 

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.



#35 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Tue Dec 16, 2014 1:55 PM

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



#36 OLD CS1 OFFLINE  

OLD CS1

    River Patroller

  • 3,939 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Dec 16, 2014 2:54 PM

Sure.  It can return whatever you want.  In the Internet world, we use NTP :)  In fact, the "daytime" service returns a human-readable date/time stamp over UDP or TCP.  Though not a lot of sites provide it versus NTP.



#37 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 760 posts
  • Location:Belgium

Posted Tue Dec 16, 2014 3:05 PM

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.



#38 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 760 posts
  • Location:Belgium

Posted Tue Dec 16, 2014 3:18 PM

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, Tue Dec 16, 2014 3:18 PM.


#39 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Tue Dec 16, 2014 3:52 PM

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.



#40 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Tue Dec 16, 2014 3:54 PM

Sure.  It can return whatever you want.  

 

Damn, this is just getting and better!  ;)



#41 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Tue Dec 16, 2014 3:58 PM

 

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.



#42 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Tue Dec 16, 2014 4:22 PM

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;-)



#43 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Tue Dec 16, 2014 4:31 PM

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.



#44 OLD CS1 OFFLINE  

OLD CS1

    River Patroller

  • 3,939 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Dec 16, 2014 4:55 PM

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.



#45 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Wed Dec 17, 2014 10:10 AM

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)?



#46 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Wed Dec 17, 2014 8:57 PM

 

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

Attached Files


Edited by --- Ω ---, Wed Dec 17, 2014 10:38 PM.


#47 mjnurney OFFLINE  

mjnurney

    Space Invader

  • 16 posts
  • Location:Yorkshire - Milton Keynes

Posted Thu Dec 18, 2014 1:43 AM

awesome ....I need a Lantronix UDS-10 now!



#48 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Thu Dec 18, 2014 2:43 AM

 

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



#49 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 760 posts
  • Location:Belgium

Posted Thu Dec 18, 2014 4:42 AM

 

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 :)



#50 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 760 posts
  • Location:Belgium

Posted Thu Dec 18, 2014 4:43 AM

 

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?







Also tagged with one or more of these keywords: TI-99/4A, SOFTWARE, INTERNET

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users