Jump to content
IGNORED

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


Omega-TI

Recommended Posts

Omega,

 

Sorry about that (That'll teach me to make entries on my iPhone on AtariAge :))

 

To view somerandomurl.com on the TI using this program, you'd enter:

www.myti99.com/xlat/?somerandomurl.com

 

I had omitted the question mark which is necessary at this time. I could modify the web server to work without it, but I didn't take the time before.

 

As for the 'm.' in the Reddit example, that's a pseudo-standard host name that I've seen websites use to indicate a mobile site. Some sites will do device/screen resolution detection and redirect small screens to a mobile-oriented site hosted on m.whateverurl.com.

It's certainly not a true standard and not a guaranteed thing at this time.

 

This is cool ElectricLab, I was going to ask if anyone thought a translation proxy would be useful :)

 

I just received my UDS 10 in the mail today, so I'll be getting on board and trying all this out :)

  • Like 3
Link to comment
Share on other sites

 

This is cool ElectricLab, I was going to ask if anyone through a translation proxy would be useful :)

 

I just received my UDS 10 in the mail today, so I'll be getting on board and trying all this out :)

 

EXCELLENT! Glad to have you on board! 9b91736b776daabcdeb6c83c2399d8d6.png

 

Stuart's browser is sure coming into it's own now with all these these new applications and stuff.

I wonder who'll make the next big application? Speaking of which, I better turn on the TI and see if it's my move in Internet Chess!

I have three games in progress, but I think I'm about to be handed my posterior in one of them. :(

Link to comment
Share on other sites

 

This is cool ElectricLab, I was going to ask if anyone through a translation proxy would be useful :)

 

I just received my UDS 10 in the mail today, so I'll be getting on board and trying all this out :)

 

Awesome! That translation program is one I threw together quickly, and is just a collection of regexes. Are you a developer?

  • Like 1
Link to comment
Share on other sites

 

This is cool ElectricLab, I was going to ask if anyone through a translation proxy would be useful :)

 

 

 

 

Awesome! That translation program is one I threw together quickly, and is just a collection of regexes. Are you a developer?

 

Cool! I can't wait to see what you guy's work up. You'll both be at Fest West, so it's gonna be a BLAST!

Link to comment
Share on other sites

 

Awesome! That translation program is one I threw together quickly, and is just a collection of regexes. Are you a developer?

 

I am a developer, thanks to my early exposure to the TI. And I am practically your neighbor. ( unincorporated Washington County near the edges of Beaverton and Hillsboro. )

 

The filter is cool. The hint to aim at mobile sites is a good one, as they frequently reduce the noise. As popular as 'Bootstrap' is, it might even be possible to transform the layout. I was also thinking about adapting a static site generator like Jbake, to include STUARTML or whatever it is called automatically when generating sites from markdown. Just ideas at this point. I must start soldering a serial cable together for my UDS, so I can try some of this out.

 

( Someone must have noticed this already, but the UDS-10 mac-address always has '4a' in it. 00-20-4a-___, a nice way to identify the IP address from the home router )

 

-M@

  • Like 2
Link to comment
Share on other sites

 

I am a developer, thanks to my early exposure to the TI. And I am practically your neighbor. ( unincorporated Washington County near the edges of Beaverton and Hillsboro. )

 

The filter is cool. The hint to aim at mobile sites is a good one, as they frequently reduce the noise. As popular as 'Bootstrap' is, it might even be possible to transform the layout. I was also thinking about adapting a static site generator like Jbake, to include STUARTML or whatever it is called automatically when generating sites from markdown. Just ideas at this point. I must start soldering a serial cable together for my UDS, so I can try some of this out.

 

-M@

 

That's cool. I live and work to the Hillsboro Airport. We'll have to meet up for lunch one of these days. By the way, I took the chess game down for a bit while I fix the 'check/checkmate' bug. It turns out chess logic is harder than I initially thought :) Anyway I took the page down because 500 errors look especially awful on the small TI screen.

Link to comment
Share on other sites

 

Well I'll be, I had not noticed... it DOES have a 4a in the MAC address! :) :thumbsup:

 

Well that's one of the coolest coincidences ever :)

Hey jedimatt42 - I was wondering if you had any luck with that cable? I have the chess game working really well now. I am scheming on a couple of new game ideas, and it would be cool to collaborate on one.

Link to comment
Share on other sites

Is there Ethernet adapter for TI99/4A that could be used with web browser? Also IRC client would be very nice.

 

 

Sent from my iPhone using Tapatalk

 

 

Mika73, Yes there is. A handful of us are using the Lantronix UDS-10 devices. Stuart Conner has created a web browser that uses this device. All you need is:

 

A TI with a serial interface, either a PEB or NanoPEB (The sidecar interface would probably work also), A Lantronix UDS-10 box (usually readily available on eBay), an Editor/Assembler cartridge and a copy of Stuart Conner's browser which he made available here: http://www.avjd51.dsl.pipex.com/ti/ti.htm#internet_web_browser

 

 

I have made a chess game that allows for multiplayer matches using this browser, and you can play it on your TI at: myti99.com

(You first have to register using a modern computer on myti99.com)

 

I should add you might have to make a custom-made cable. There are plenty of people here to help you along the way.

 

Cheers,

Corey.

  • Like 1
Link to comment
Share on other sites

 

Well that's one of the coolest coincidences ever :)

Hey jedimatt42 - I was wondering if you had any luck with that cable? I have the chess game working really well now. I am scheming on a couple of new game ideas, and it would be cool to collaborate on one.

 

I wired it up wrong Wednesday.

Had to work too late Thursday night.

But I finally rebuilt the cable and got the UDS and TI talking last night, using TIMXT. Today I'll make a browser cartridge eprom, and then go from there. Are you partial to a particular software stack? Something linux friendly? Most of my experience is in java below the web stack, but I have JSP'ed, Grailed, cgi'ed w/perl, Clojure/Clojurescripted, and mostly do REST api now. I probably looked at php once. But PHP strikes me as a healthy choice for getting patterns established, and it is easy to deploy to hosting sites.

 

-M@

Link to comment
Share on other sites

Yes, but to be precise, the UDS is not an Ethernet adapter as you would expect in a PC, but it is a serial/TCP bridge.

 

Correct. This is the only way you'll get any network connectivity with the TI, which I guess is how I took the question. There's no way the TI has enough memory and computing power to host a TCP/IP stack and do anything else useful.

Link to comment
Share on other sites

 

I wired it up wrong Wednesday.

Had to work too late Thursday night.

But I finally rebuilt the cable and got the UDS and TI talking last night, using TIMXT. Today I'll make a browser cartridge eprom, and then go from there. Are you partial to a particular software stack? Something linux friendly? Most of my experience is in java below the web stack, but I have JSP'ed, Grailed, cgi'ed w/perl, Clojure/Clojurescripted, and mostly do REST api now. I probably looked at php once. But PHP strikes me as a healthy choice for getting patterns established, and it is easy to deploy to hosting sites.

 

-M@

 

That's cool. I'd like to get setup to burn eproms - I haven't done that since the late 80s when we used to hack our PC BIOS roms.

 

As for software for our envisioned TI webring, I created that user registration system would I though I could present to other programmers via an API, so they could write their own games and host them

where/how ever they'd like. I want it to be modeled sort of like the game center that Apple and Android uses, where anyone can create and distribute games and use a common user database. We could open this up

to other retro platforms as well, and play games against C64 users for example.

 

Basically I want the system to be language and technology agnostic on the backend so anyone who wants to create cool games or apps in their preferred language can do so and we can link them together.

It sounds like we have similar backgrounds. I have done mountains of Perl and really still like it (myTI99.com's user system and the chess game are in Perl) but I've also done PHP coding with a couple of frameworks, and I started learning Grails last year but now my day job involves hardware, C#, and Powershell.

 

I think actually straight CGI-style with Perl or PHP is going to be easiest for the fact that there is such a small amount text that you can send to the TI browser due to the platform's constraints. Stuart has done a fantastic job of pushing the limits of what a browser can do, but you can only go so far. Even with my chess game, I have to watch the whitespace that gets printed to back to the TI to save space and I keep my form variables to 1-2 character names. Quite a few times I had to find ways to reduce the output, which was actually really fun to be honest.

 

I think a little more work could be done on the browser side where whitespace can be removed from the stream as it's being loaded into the browsers parser, and things like the Apache header preamble stuff could be ignored, leaving more room for his 99ML code. Anyway I just feel that if I attempted to use a framework for the chess game, I'd have had a heck of a time making tight enough HTML/99ML.

 

Also, rIght now there is no support for cookies with the browser making it difficult to tell users apart on the web, so I got around this by using a screen name and PIN that get used in each hyperlink on the page.

Obviously this is lame in terms of security, but hopefully only Retronauts like us will be using this and gentlemanly behavior will be the norm.

I thought about trying to use the remote user's IP address for this, but IP addresses change frequently, and I needed to support two machines behind a NAT router like I did during game development.

 

This is all from my personal findings, and certainly nothing is etched in stone. I'm certainly no expert and would love to hear others' ideas.

My hope is that we can tie things together with an open user registration backend and make a webring and this thing will expand and be full of useful things to do on the web with our ancient systems :)

 

-Corey.

Edited by ElectricLab
Link to comment
Share on other sites

 

Correct. This is the only way you'll get any network connectivity with the TI, which I guess is how I took the question. There's no way the TI has enough memory and computing power to host a TCP/IP stack and do anything else useful.

 

Well, around 1997 or so I kicked off a liitle project to implement a TCP/IP stack on the Geneve; I called it TCPIP99. At least I got so far as implementing a ping server (ICMP) on a SLIP driver.

 

So I could, in fact, ping my Geneve from the PC and got back the echo replies.

 

However, with all those considerations about reassembly buffers for the IP layer, and at the same time the disappearance of modem connections, the project stalled somewhere at that point.

  • Like 2
Link to comment
Share on other sites

Hi,

 

I have tested chess today, with the NanoPEB F18A v1, XB2.7, UDS-10, Vonets VAP11N, and it works with an 1:1-cable (mouse-extension)

(There are some gender-changers and 9p->25p in th game, but (I think) no NullModem..... -> Worx

 

Same config with NanoPEB v2 -> NOPE Worx not nothing no

 

I have to check my cable tomorrow, if it is really 1:1, and the go on with the NanoPEB V2....

Wasn´t there a difference on the RS232-chip, regarding v1 and v2 ? v2 the newer UART 16550 or so ?

Should it work with the v2 ?

 

I will tell here if I can see clearly ♪♫ ...or not :)

 

Ralf

 

@Corey, is there a thread for chess-requests/ideas ?

post-41141-0-79822700-1454807770_thumb.jpg

post-41141-0-59248200-1454807777_thumb.jpg

Link to comment
Share on other sites

Hi,

 

I have tested chess today, with the NanoPEB F18A v1, XB2.7, UDS-10, Vonets VAP11N, and it works with an 1:1-cable (mouse-extension)

(There are some gender-changers and 9p->25p in th game, but (I think) no NullModem..... -> Worx

 

Same config with NanoPEB v2 -> NOPE Worx not nothing no

 

I have to check my cable tomorrow, if it is really 1:1, and the go on with the NanoPEB V2....

Wasn´t there a difference on the RS232-chip, regarding v1 and v2 ? v2 the newer UART 16550 or so ?

Should it work with the v2 ?

 

I will tell here if I can see clearly ♪♫ ...or not :)

 

Ralf

 

@Corey, is there a thread for chess-requests/ideas ?

 

 

 

Good idea

Link to comment
Share on other sites

schmitzi, on 07 Feb 2016 - 01:16 AM, said:

Same config with NanoPEB v2 -> NOPE Worx not nothing no

 

I have to check my cable tomorrow, if it is really 1:1, and the go on with the NanoPEB V2....

Wasn´t there a difference on the RS232-chip, regarding v1 and v2 ? v2 the newer UART 16550 or so ?

Should it work with the v2 ?

 

 

The browser interfaces with the TMS9902 serial chip directly, so it will only work with the NanoPEB v1. It *won't* work with the NanoPEB v2 with the 16550.

 

@Corey - maybe something to clarify on your myti99.com homepage.

 

Stuart.

  • Like 2
Link to comment
Share on other sites

 

Well, around 1997 or so I kicked off a liitle project to implement a TCP/IP stack on the Geneve; I called it TCPIP99. At least I got so far as implementing a ping server (ICMP) on a SLIP driver.

 

So I could, in fact, ping my Geneve from the PC and got back the echo replies.

 

However, with all those considerations about reassembly buffers for the IP layer, and at the same time the disappearance of modem connections, the project stalled somewhere at that point.

 

What hardware did you use to connect the Geneve to the Ethernet?

Link to comment
Share on other sites

SLIP: Serial Line Internet Protocol; sorry, I forgot to explain. Alternatively, you could implement PPP, but SLIP was enough for me for a start.

 

https://tools.ietf.org/html/rfc1055

 

Although you would eventually have a serial-based connection, you can use a PC as a router between the TI/Geneve and the Internet. You would just have to install a SLIP driver on the PC, and the PC will connect to the outside world by its full network connection. I guess you won't be able to bridge the SLIP and the Ethernet interface, but instead you would have to set up a subnet for that serial connection.

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

ElectricLab, on 06 Feb 2016 - 9:08 PM, said:snapback.png

 

Correct. This is the only way you'll get any network connectivity with the TI, which I guess is how I took the question. There's no way the TI has enough memory and computing power to host a TCP/IP stack and do anything else useful.

 

Well, around 1997 or so I kicked off a liitle project to implement a TCP/IP stack on the Geneve; I called it TCPIP99. At least I got so far as implementing a ping server (ICMP) on a SLIP driver.

 

So I could, in fact, ping my Geneve from the PC and got back the echo replies.

 

However, with all those considerations about reassembly buffers for the IP layer, and at the same time the disappearance of modem connections, the project stalled somewhere at that point.

 

That's interesting!

 

In the past few weeks I've spent considerable time looking at the 1985-ish BSD tcp/ip stack as implemented for the PDP11 (2.9 BSD, 2.11 BSD and Ultrix11). The Ultrix version of the code looks the most interesting as it was adapted to run on a PDP11 without seperate I/D space (we would need a tms99105 for that).

 

I've so far found that to support 5-10 simultaneous sockets one needs ~5KB of heap and ~30KB of buffer space. Not sure how much code is needed, my current estimate would be around 25KB. A Geneve can support that, as can a Cortex. Possibly it could work on a ti99/4a with a sams memory card.

 

My idea is similar to yours: build a tcp/ip stack with a serial line driver (SLIP, CSLIP, PPP,etc.) and use a PC as a virtual ISP. If this was still the 90's it would work dialing in to the ISP over a modem.

 

IP fragment reassembly is indeed one of the more involved bits of code, about 700 lines of C code. For a walkthrough of the code I can recommend "TCP/IP Illustrated, volume 2" by Stevens.

 

According to a contemporary usenet post it really did work on a 1970's PDP11/40 in a two user Ultrix setup. A tms9995 has about the same processing power so should be fast enough (but back then we were over the moon with response times of several seconds).

 

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