Jump to content
IGNORED

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


Omega-TI

Recommended Posts

I think that Stuart's new web browser is such a big deal that it deserves it's own thread.

 

 

Well it's actually pretty much finished running on my TM990 - will need porting to the TI-99/4A. And assuming I can get my nanoPEB talking to the Lantronix.

 

First, just to clarify that it was never going to and never will work with any 'modern' web page - there are just too many HTML tags and other stuff for the TI to handle, and there's no way you could display much of it any way with the TI's low resolution screen. Instead, I have defined a set of tags that are supported - within an outer set of <99ml></99ml> tags of course. ;-)

 

Tags currently supported are:

 

<p></p> [paragraph; text outside these tags is considered a comment and is not displayed]

<br> [line break]

<cdef:xx:yyyyyyyyyyyyyyyy> [redefine character xx; any character 00-127 can be redefined]

<clr:bf></clr> [set foreground and background colours for text]

<chr:xx> [display character with hex ASCII code xx, for characters with ASCII codes less than >20]

<a></a> [hyperlink]

<u></u> [underline]

 

The character set that is loaded includes characters for table border lines, so tables can be drawn using these.

Simple graphics can be drawn by redefining a number of characters and drawing it using those.

 

There's a sample file here: http://www.avjd51.dsl.pipex.com/z_ti_test_1.htm. You should be able to load this in your browser (where it WON'T be displayed correctly) then do 'view source' to see the actual tags. I'm not at home at the moment so can't do a screenshot.

 

The screen gives a 42 x 24 line display that can be scrolled up/down. Because characters are not all aligned on 8 pixel boundaries, there are some restrictions on changing foreground/background colours mid-line. A pointer sprite, controlled through the keyboard, enables hyperlinks to be selected.

 

To resolve addresses, the program first uses the Lantronix to connect to a one-liner PHP script on my website (which has a pretty stable IP address) which returns the numeric IP address, then uses that to download the web page. I have a problem with the IP lookup at the moment - it normally works the first time but then the Lantronix won't connect to the web server again for another minute or so. The program has built-in retrying until a connection is made, but I need to look into this.

 

No download functionality at the moment, but I think it should be possible. There will probably be a download size limit according to how much RAM is free, but should be able to maximise this by using a small standalone module to handle the download which then reloads the main browser program when it has finished.

 

Hope to get a video of it running on my TM990 around the end of the week.

 

Stuart.

 

 

 

If I'm understanding this correctly, anyone with a website could hide these <99ml> tags into any existing HTML page, but only those of us with TI's would see whats meant for us. The browser would just ignore everything else...I like it!

 

I always understood that due to the TI's memory restrictions, it would be a limited implementation, but you've gone way further than I had hoped for. GREAT JOB!

 

Now, your idea of a hosted page/script concept that does the heavy lifting & translating was a stroke of genius. I wonder how long it'll be before all us TI'ers are surfing a "TI-WEB"?

 

I imagine that after reading your post, a few people are already thinking of new TI related web page ideas. This is going to open up a WHOLE NEW interest area in the TI-World.

 

I can imagine this will end up selling a few more UDS-10's, as some people will not want to be left out of the fun.

 

  • Like 3
Link to comment
Share on other sites

Ironically, time may be on our side in this case. We waited long enough and the world came back around to small screens. :-) Due to all the mobile devices with limited screens, identify the browser to websites as a "mobile" device and you will get limited markup version of the site that might render nicely on the 99/4A.

  • Like 3
Link to comment
Share on other sites

What a great project, looks like another idea i would be interested in!!!! I can't believe how active this forum is, just amazing. I know when I first signed up I figured, ahh well I'll just use this emulator and have fun because I doubt that the real TI has anyone doing much with it "WRONG", and then to be blown away with all the mods, and future mod idea's in the works, plus all you crazy good developers are all active with it, so motivates me to get my coding skills up to par!!! I am sitting here going holy cow this is a gold mine even more so than in the 80's when I owned one.

  • Like 3
Link to comment
Share on other sites

Yeah—I remember checking online a good many years ago without seeing much activity. Then, after trying again in mid-2011, I too was blown away by all of the activity—especially, here on AtariAge! It did not take me long to get into the new-development-for-the-TI-99/4A mode!

 

...lee

  • Like 1
Link to comment
Share on other sites

Video of the browser running on my TM990 here: www.stuartconnerdownloads.me.uk/z_ti_browser_1.mpg [a stupidly large 35MB file for some reason; you might need to 'save target as' if it won't display in your browser]. This is edited to remove the periods where at the moment it has to keep retrying the connection to the server.

 

To clarify a previous comment:

 

"If I'm understanding this correctly, anyone with a website could hide these <99ml> tags into any existing HTML page, but only those of us with TI's would see whats meant for us. The browser would just ignore everything else...I like it!"

 

No. Internet Explorer for example (don't know about other browsers) will display text that is not inside <html> and <p> tags. Take a look at http://www.avjd51.dsl.pipex.com/z_ti_test_1.htm for example. The program design at the moment also requires the whole downloaded page to be held in memory (because it is re-rendered when you scroll up or down), which limits the size of the page that the browser will work with.

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

 

To clarify a previous comment:

 

No. Internet Explorer for example (don't know about other browsers) will display text that is not inside <html> and <p> tags. Take a look at http://www.avjd51.dsl.pipex.com/z_ti_test_1.htm for example. The program design at the moment also requires the whole downloaded page to be held in memory (because it is re-rendered when you scroll up or down), which limits the size of the page that the browser will work with.

 

Got it, that for the clarification and explanation. :thumbsup:

 

 

This is freaking AWESOME though Stuart! I still cannot get over the fact that it's on... a TI! :-o

 

gallery_35324_1027_52334.jpg

  • Like 2
Link to comment
Share on other sites

Anyone out there got a web server with PHP running that I can test a small file on?

 

Stuart

 

 

--- Ω --- posted a link over in the Classic Computing Forum..

 

 

I have web sites hosted at 1&1.. It appears that they currently support PHP 5.6, 5.5, 5.4, 5.2 and 4.xx

 

Did you want a simple test, or would you like something more long term??? I have a lot of space, so I could setup some web space for you to use for an extended period of time..

 

 

MarkO

 

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

 

 

--- Ω --- posted a link over in the Classic Computing Forum..

 

 

I have web sites hosted at 1&1.. It appears that they currently support PHP 5.6, 5.5, 5.4, 5.2 and 4.xx

 

Did you want a simple test, or would you like something more long term??? I have a lot of space, so I could setup some web space for you to use for an extended period of time..

 

 

MarkO

 

 

Thanks MarkO. I've sent you a PM.

 

Stuart.

  • Like 2
Link to comment
Share on other sites

How about if I emulated the RS-232 and Lantronix in Js99er.net. Then you could surf the net in Stuart's browser running on a TI inside the host browser. This alone would be quite absurd. But then imagine if Stuart's browser had a JavaScript engine. Then Stuart's browser could run Js99er which again could run Stuart's browser which again could run Js99er and so forth. Perhaps this would generate a singularity that would cause the TI universe to collapse?

  • Like 2
Link to comment
Share on other sites

Generally, I would expect not only a part of the universe to collapse, but the whole thing. We'll be sucked into that singularity, some of us late enough to behold that mystery but not able to tell anyone.

 

Apart from that, recursion is always considered to be evil:

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

I've done an initial port of my TI web browser to the TI-99/4A, if anyone wants to have a play. It still needs some tidying up. Program attached in .tidisk format. Program name is INTERNET_O - load using E/A option 3, and program name is START.

 

Your Lantronix UDS-10 will need this configuration:

 

Channel 1 configuration:
-- Baudrate: 19200
-- I/F Mode: FC (8 bit, even parity, 2 stop bits)
-- Flow: 00
-- Port No: 10001
-- ConnectMode: D4 (accept incoming unconditionally, 1-character response upon connection, manual connection)
-- Auto increment source port: N
-- Remote IP Address: 000.000.000.000
-- Remote Port: 0
-- DisConnMode: 00
-- FlushMode: 00
-- DisConnTime: 00:00
-- SendChar 1: 00
-- SendChar 2: 00

 

I usually configure the Lantronix over Telnet - the user guide contains the details. I have problems with configuring through the web app - the Connect Mode Settings:Response field usually gets reset to the default setting each time you open the web app, rather than showing the current setting.

 

I've got the NanoPEB wired to the Lantronix as follows:

 

NanoPEB Lantronix
9-way D-type Male 25-way D-type Female
Pin Pin
2 (RX) ------<<------ (RX out) 3
3 (TX) ------>>------ (TX in) 2
5 (GND) -------------- (GND) 7
7 (RTS) -->>--+
8 (CTS) --<<--+

 

On running the program, it prompts for the web page to load at the top of the screen. The "www." prefix is there already. For testing, try www.avjd51.dsl.pipex.com/z.htm. Use lower-case - ALPHA LOCK up! It should give a status message at the bottom of the page for resolving the IP address then downloading the web page. There is sometimes a problem resolving the IP address - particularly moving between pages - if it says it is retrying, it should succeed after about 60 seconds; this seems to be some sort of problem with the Lantronix not correctly dropping the previous connection to the server.

 

On the test page, there are two underlined links. Move the pointer over a link then press <Enter> to select the link and load that page. Pointer movement keys are as follows: (these are currently upper-case - so ALPHA LOCK back down, and there is no auto-repeat at the moment)

 

W E R
\|/

S - F
/|\
X C V

 

Q and Z keys scroll the screen up and down.

 

Supported tag list for pages (they are CASE sensitive):

<99ml> - start of page. All text before this tag is ignored.
</99ml> - end of page. All text after this tag is ignored.
<p> - start of paragraph. All text outside <p></p> tags is treated as a comment and ignored.
</p> - end of paragraph. Start rendering at the next line on the screen.
<br> - moves down to next line on the screen.
<a:(URL text)> - specifies hyperlink for following text.
</a> - end of link text.
<u> - underline the following text.
</u> - end of underline text.
<clr:(foreground colour code)(background colour code)> - render following characters in these colours. [see Note 1 below]
</clr> - revert back to normal colours (black on grey).
<cdef:(hex ASCII code:hex character def)> - redefine specified character. Characters are NOT automatically reloaded when loading a new page. Characters have to be defined BEFORE they are used. The same characters can be redefined several times on the same page - define each with the pattern needed before using them. Characters that are normally not used are >01 - >1F inclusive, except >0A and >0D.
<chr_lt> - '<' character (needs 'alias' in order to be able to display tags on the screen as text).
<chr:(character code in hex)> - print specified character.

 

NOTE 1: Characters are 6 pixels wide so aren't aligned with the 8-pixel blocks used by the VDP for colour control. Controlling text colour on a paragraph by paragraph basis will work. If trying to change text colour mid-paragraph, the results will depend on whether the start/end characters are exactly aligned with the edge of an 8-pixel block.

 

Colour codes for <clr> tag: (Note: A-F must be upper case)
0 - Transparent 8 - Medium Red
1 - Black 9 - Light Red
2 - Medium Green A - Dark Yellow
3 - Light Green B - Light Yellow
4 - Dark Blue C - Dark Green
5 - Light Blue D - Magenta
6 - Dark Red E - Grey
7 - Cyan F - White

 

To see these tags in use, you should be able to load the test page (or either of the two pages linked to it) in your *PC* browser (where it WON'T be displayed correctly) then do 'view source' to see the actual tags.

 

Let me know if you manage to get it working.

Internet Browser.zip

  • Like 3
Link to comment
Share on other sites

It accesses the serial port directly, switching on the card at CRU address >1300 and controlling the TMS9902 at >1340. So is your COM3 the second RS-232 port at >1380? I can change that easily if so.

Actually my second Comport is at >1500 (if I'm reading the display correctly) because the HDX is on >1300. Thanks, I can't wait to try out your new browser!

Link to comment
Share on other sites

I've attached a new disk file. This contains:

 

-- INTERNET_O - the same file as before for the 1st RS-232 port (CRU >1340) on the card at CRU >1300.

-- INT1540_O - uses the 1st RS-232 port (CRU >1540) on the card at CRU >1500.

-- INT1580_O - uses the 2nd RS-232 port (CRU >1580) on the card at CRU >1500.

 

Give the two new files a go and see if one of those works.

 

Internet Browser #2.zip

  • Like 2
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...