Jump to content
IGNORED

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


Omega-TI

Recommended Posts

You can't, even if you run a local DNS server. The issue is that if you're dealing with an IP address, DNS wouldn't be queried so you can't redirect it.

 

So maybe just "invent" an (internally) DNS-Name for your needed local APP-server´s IP-address, used by your new TI-APP ?

 

And then, what I meant was - on your firewall - just redirect Stuart´s DNS-Server-IP to your local "PHP-scripting"-DNS-server

(with that custom A-Record). Your firewall must be able to let you do that.

Then you can query your own (PHP)-DNS-server, and set an A-Record (local IP) for your locally needed APP-server there.

(Or just hexedit the browser, to point to your local (PHP)-DNS-Server, of course) :)

 

But of course, best practice would be to enable the browser to accept pure IPs, too.

 

--

 

An entry for a 2nd DNS-Server would be fine, maybe editable ?

But normally, referring to DNS´ RFCs, the 2nd DNS-Server is ONLY queried if the first one is NOT present (does not respond).

(If the first DNS-server cannot resolve to an IP, NO 2nd server is asked)

But maybe this behave can be handled/overwritten by Stuart´s browser, against the RFCs, as this is a client-thing only.

Maybe a user-"switchable/choosable" 2nd DNS-Server, and/or the function to ask a 2nd DNS-Server if the 1st cannot/does not resolve to any IP.

Link to comment
Share on other sites

Since Slinkeey is working on some things too, maybe he can chime in on what he's getting for a page size.

 

Thanks,

Corey.

 

< 1000 bytes

 

If I made it look fancy, it would go up.. Right now it is small. I am doing a proof of concept before I even think of making it look professional.

Link to comment
Share on other sites

ElectricLab, on 28 Oct 2016 - 8:33 PM, said:

 

That brings up a question I had - does the browser just discard whitespace/newlines when it's parsing the page such that it doesn't actually affect memory utilization if we get sloppy? I figured it best to reduce the traffic to a minimum to make data transfer faster and the fastest web browsing possible.

 

 

No, the page is stored in the download buffer exactly as received, so no sloppiness! At 38,400 Baud and with no handshaking, there's not really enough time to do any processing of the page data as it is downloaded.

Link to comment
Share on other sites

At 38,400 Baud and with no handshaking, there's not really enough time to do any processing of the page data as it is downloaded.

 

The modified interrupt RS232 capture routine I posted (not too long ago) might be helpful in this regard. In TIMXT, the interrupt routine adds bytes to a circular buffer while the processing routine interprets and displays the data in between interrupts. It too is operating at 38.4K with no handshaking.

Link to comment
Share on other sites

I've updated the web browser so it now supports URLs specified by IP address rather than host name. Version 9.2 available on my web site: http://www.stuartconner.me.uk/ti/ti.htm#internet_web_browser.

 

===============================

*Version 9.2 changes:
*-- Added support for a URL in the form of a numberic IP address, in addition to a textual host name. So the
* following example web page URL formats are now supported:
* -- www.stuartconner.me.uk/tibrowser/z.htm
* -- myti99.com/
* -- 198.136.54.70/~stuartc2/z.htm
* The URL in a hyperlink on a page can specify either a host name or an IP address.

  • Like 6
Link to comment
Share on other sites

Okay.... I need to figure out a few things from my side. I can pull the page up in Chrome, but from the TI.

 

<99ml>TEST</99ml>

 

I can pull this up, from the ti, if I put it on my apache server.

 

The TI just doesn't want to pull it from the embedded device.. Gotta see what's going on.

 

It's port 80... The tiny embedded webserver but be missing something that this browser possibly needs..

Edited by slinkeey
Link to comment
Share on other sites

I wonder if your embedded webserver is sending something different to the browser in terms of CONTENT-TYPE or other subtlety that Stuart's browser isn't liking, maybe even as simple as a newline character or something. I'm assuming that you can pull of the page on a modern browser served up by the embedded server OK? You could go at this a couple of different ways. You could sniff the traffic of both a successful and non-successful session and compare them. I don't know what the OS/capabilities of your embedded environment are, but if it's Linux, you could easily capture the traffic right on the device with tcpflow.

 

I'd also check the results of both the Apache server and the embedded webserver with a simple telnet check.

 

For example I just did this on my MacBook:

 

telnet 192.168.0.99 80 <enter>

GET / <enter>

<99ml>

<cdef:85:00000000647F7F3F>

<cdef:86:0000000098F8F8F0>

<cdef:89:000000040C1C3C7C>

<cdef:8A:0060E0F0F878F8F8>

<p>black on blue example:</p>

<br>

<p><clr:15><chr:85></clr><clr:15><chr:86></clr></p>

<p><clr:15><chr:87></clr><clr:15><chr:88></clr></p>

<br><br>

<p>black on blue followed by black on white:</p>

<br>

<p><clr:15><chr:85></clr><clr:15><chr:86></clr><clr:1F><chr:89></clr><clr:1F><chr:8A></clr></p>

<p><clr:15><chr:87></clr><clr:15><chr:88></clr><clr:1F><chr:8B></clr><clr:1F><chr:8C></clr></p>

</99ml>

Also - text should be in <p> tags to be reliably visible in Stuart's browser.
Link to comment
Share on other sites

Ok... Figured it out.. the UDS-10 is not able to see any of the machine's on wireless... My other wired machines plugged into the same switch can see them. I need to figure out what I have wrong in my network.

 

I duplicated this by putting my Apache server on wireless, Every machine of mine, except the TI (UDS-10) could access it.

Link to comment
Share on other sites

I'd suggest double checking the netmask on the UDS-10's TCP/IP configuration to make sure it's not inadvertently been set to mask out your subnet.

 

Can you access the UDS-10 going the other way - from a machine on wireless to the UDS-10 via telnet? If you weren't aware, they run a telnetd server on port 9999.

I do all my UDS configuration via telnet since the Java Crapplet gives me a lot of grief.

Link to comment
Share on other sites

  • 2 weeks later...

All of my machines are in the 192.168.1.xxx range, with a mask of 255.255.255.0 (24)

 

I had it all wrong.. The browser (or UDS-10) does not seem to like simple webservers... I emulated one using netcat.

 

I did some further expiriments.

 

I ran this on my notebook. I also did the same test with my desktop, with the same results..

sudo netcat -l 80 < test.htm

 

Point Chrome at this machine via IP adress and it pulls down test.html.

Point TI-99 at this machine and netcat sees that something hit it, but doesn't serve the file.

 

It's pretty neat because netcat returns some text when you hit it with a browser.

GET / HTTP/1.1
Host: 192.168.1.119
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
I should probably start a different thread for this goofing around, hey?
Edited by slinkeey
Link to comment
Share on other sites

...

For example I just did this on my MacBook:

 

telnet 192.168.0.99 80 <enter>

GET / <enter>

So I telnet to my little embedded webserver. It doesn't wait for me to do a [GET /] it just closes the connection before I can do a get, when using telnet. Works in a modern browser though. I think this is my problem.

By any chance does the TI browser rely on the UDS-10 telnetting to port 80, and then Stuarts browser just parses the text?

 

jefferoonie@jefferoonie-Aspire-V5-473P:~$ telnet 192.168.1.102 80

Trying 192.168.1.102..

Connected to 192.168.1.102.

Escape character is '^]'.

Connection closed by foreign host.

jefferoonie@jefferoonie-Aspire-V5-473P:~$

Edited by slinkeey
Link to comment
Share on other sites

I know that... I have no problem telnetting to the UDS-10

 

I was telnetting to my webserver to see what kind of traffic I get.

 

I think this is my problem.. My webserver is not friendly. It slams the door when telnetting to port 80. It behaves for a moodern browser... I think that is a great clue..

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

It's very interesting if you can view your webserver with a modern browser and then on that same machine, try to telnet to port 80 on the same webserver and have the connection immediately close. I wonder if your terminal or shell is sending any extra characters that the webserver doesn't like. If you sniff the traffic you could find out. You could try using netcat to also fetch a page, or better yet use wget or curl. Those should be indistinguishable from a modern browser as far as the webserver is concerned, as should telnetting to port 80 in a terminal.

Link to comment
Share on other sites

 

All of my machines are in the 192.168.1.xxx range, with a mask of 255.255.255.0 (24)

 

I had it all wrong.. The browser (or UDS-10) does not seem to like simple webservers... I emulated one using netcat.

 

I did some further expiriments.

 

I ran this on my notebook. I also did the same test with my desktop, with the same results..

sudo netcat -l 80 < test.htm

 

Point Chrome at this machine via IP adress and it pulls down test.html.

Point TI-99 at this machine and netcat sees that something hit it, but doesn't serve the file.

 

It's pretty neat because netcat returns some text when you hit it with a browser.

GET / HTTP/1.1
Host: 192.168.1.119
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
I should probably start a different thread for this goofing around, hey?

 

 

What you're seeing in the terminal that's running netcat is all the data that the browser sends to the server. This is how webservers discern OS, screen resolution, cookies, capabilities, etc from people browsing a site.

 

What does the netcat terminal show when you try to access it via telnetting to port 80 and also with the TI browser?

 

When I get a chance I can try to see what's going on with the TI browser not liking the output of netcat vs apache - I've only experimented with the latter.

Link to comment
Share on other sites

It's very interesting if you can view your webserver with a modern browser and then on that same machine, try to telnet to port 80 on the same webserver and have the connection immediately close. I wonder if your terminal or shell is sending any extra characters that the webserver doesn't like. If you sniff the traffic you could find out. You could try using netcat to also fetch a page, or better yet use wget or curl. Those should be indistinguishable from a modern browser as far as the webserver is concerned, as should telnetting to port 80 in a terminal.

One possibility is short timeouts, I've seen some webservers set up that way, so that a manually typed query times out before you send it.

Link to comment
Share on other sites

Embedded Webserver

jefferoonie@jefferoonie-Aspire-V5-473P:~/test$ telnet 192.168.1.102 80

Trying 192.168.1.102...
Connected to 192.168.1.102.
Escape character is '^]'.
Connection closed by foreign host.
jefferoonie@jefferoonie-Aspire-V5-473P:~/test$ wget 192.168.1.102
--2016-11-17 18:23:18-- http://192.168.1.102/
Connecting to 192.168.1.102:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25 [text/html]
Saving to: ‘index.html’
index.html 100%[===================>] 25 --.-KB/s in 0.003s
2016-11-17 18:23:18 (9.16 KB/s) - ‘index.html’ saved [25/25]
jefferoonie@jefferoonie-Aspire-V5-473P:~/test$ cat index.html
<99ml><p><TEST</p></99ml>
Server made with netcat
jefferoonie@jefferoonie-Aspire-V5-473P:~$ telnet 192.168.1.149 80
Trying 192.168.1.149...
Connected to 192.168.1.149.
Escape character is '^]'.
<99ml><p><TEST</p></99ml>Connection closed by foreign host.
jefferoonie@jefferoonie-Aspire-V5-473P:~/test$ wget 192.168.1.149
--2016-11-17 18:32:30-- http://192.168.1.149/
Connecting to 192.168.1.149:80... connected.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
Saving to: ‘index.html.1’
index.html.1 [ <=> ] 25 --.-KB/s in 0s
2016-11-17 18:32:30 (1.64 MB/s) - ‘index.html.1’ saved [25]
jefferoonie@jefferoonie-Aspire-V5-473P:~/test$ cat index.html.1
<99ml><p><TEST</p></99ml>
Edited by slinkeey
Link to comment
Share on other sites

Vorticon, on 21 Nov 2016 - 12:39 PM, said:

So I'm having an issue with versions 9.1 and 9.2 of the browser. I am able to connect just fine with 9.0, but not with the newer versions using the exact same set up. Were there any new config changes required of the UDS-10 for the newer versions?

 

Yes, the Baud rate, parity and stop bit were changed (for compatibility with the settings used for TIXMT (if I remember correctly).

 

From my web page http://www.stuartconner.me.uk/ti/ti.htm#internet_web_browser:

 

The Lantronix UDS-10 will need this configuration for Channel 1:

 

NOTE: The configuration has been changed from that used for browser v9 and earlier. Note the different Baudrate and I/F Mode settings.

  • Baudrate: 38400
  • I/F Mode: 4C (8 bit, no parity, 1 stop bit)
Link to comment
Share on other sites

 

 

Yes, the Baud rate, parity and stop bit were changed (for compatibility with the settings used for TIXMT (if I remember correctly).

 

From my web page http://www.stuartconner.me.uk/ti/ti.htm#internet_web_browser:

 

The Lantronix UDS-10 will need this configuration for Channel 1:

 

NOTE: The configuration has been changed from that used for browser v9 and earlier. Note the different Baudrate and I/F Mode settings.

  • Baudrate: 38400
  • I/F Mode: 4C (8 bit, no parity, 1 stop bit)

 

 

Also some of us have found that we must set the Increment Port on the UDS to Yes to get it to work with the Browser. I believe this is for only certain UDS devices that have a different firmware. I had to do mine that way. A few of us had quite a time because all else worked but the browser. I don't recall who figured that piece out but it helped quite a few of us.

Edited by Shift838
  • Like 1
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...