Jump to content

Photo

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

TI-99/4A SOFTWARE INTERNET

442 replies to this topic

#1 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • 10,620 posts

Posted Wed Oct 29, 2014 12:00 PM

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

 



#2 Albert ONLINE  

Albert

    Quadrunner

  • 34,083 posts

Posted Wed Oct 29, 2014 12:02 PM

How does AtariAge look? Where do I need to include some <99ml> tags? :D

..Al

#3 OLD CS1 OFFLINE  

OLD CS1

    River Patroller

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

Posted Wed Oct 29, 2014 12:38 PM

All I see is blonde, brunette, red-head...



#4 matthew180 OFFLINE  

matthew180

    River Patroller

  • 2,408 posts
  • Location:Castaic, California

Posted Wed Oct 29, 2014 10:00 PM

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.

#5 firepod OFFLINE  

firepod

    Star Raider

  • 75 posts
  • Location:Near Chicago

Posted Wed Oct 29, 2014 10:08 PM

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. 



#6 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,391 posts
  • Location:Silver Run, Maryland

Posted Thu Oct 30, 2014 3:06 PM

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



#7 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Thu Oct 30, 2014 4:28 PM

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.ds...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, Thu Oct 30, 2014 4:35 PM.


#8 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Thu Oct 30, 2014 6:24 PM

 

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



#9 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Fri Oct 31, 2014 7:06 PM

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

 

Stuart



#10 MarkO OFFLINE  

MarkO

    Dragonstomper

  • 867 posts
  • Location:Albany, Oregon, USA, North Western Hemisphere, Planet Tera

Posted Fri Oct 31, 2014 8:43 PM

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, Fri Oct 31, 2014 8:44 PM.


#11 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Sat Nov 1, 2014 2:49 PM

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



#12 Asmusr OFFLINE  

Asmusr

    River Patroller

  • 2,465 posts
  • Location:Denmark

Posted Sat Nov 1, 2014 4:33 PM

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? 



#13 mizapf OFFLINE  

mizapf

    River Patroller

  • 2,587 posts
  • Location:Germany

Posted Sat Nov 1, 2014 6:35 PM

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:



#14 jens-eike OFFLINE  

jens-eike

    Star Raider

  • 72 posts

Posted Tue Nov 4, 2014 6:12 AM

We'll be sucked into that singularity, some of us late enough to behold that mystery but not able to tell anyone.

 

 

After the world ends, tell it to the other people at Milliways:

http://www.youtube.c...h?v=ucNYLsjKaTQ



#15 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Sun Dec 14, 2014 6:51 PM

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.

Attached Files



#16 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Sun Dec 14, 2014 7:35 PM

Stuart.... THIS IS GREAT!  I downloaded it and will try to give it a try Wednesday evening after I get back home.

There are just so many possibilities with this thing I can not even imagine them all.

 

Thanks for devoting so much time and effort to this project.  :thumbsup:  :thumbsup:  :thumbsup:  :thumbsup:



#17 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Sun Dec 14, 2014 9:06 PM

Hi Stuart,

   I had a little extra time this evening to try it, but am unable to get it to work.  I'm assuming it's setup to work on COM1, right?

The problem is, my UDS-10 is setup to work on COM3 because my first RS-232 is modified for HDX use. 

Attached Files



#18 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Mon Dec 15, 2014 2:29 AM

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.


Edited by Stuart, Mon Dec 15, 2014 2:31 AM.


#19 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Mon Dec 15, 2014 8:01 AM

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!



#20 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Mon Dec 15, 2014 12:45 PM

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.

 

Attached Files



#21 --- Ω --- OFFLINE  

--- Ω ---

    TI-Runner

  • Topic Starter
  • 10,620 posts

Posted Mon Dec 15, 2014 11:47 PM

 

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

 

 

 

 

 

gallery_35324_1027_410.jpg

A whole new era of 4A Internet capability starts here & now!

 

Great job Stuart!

 

I have one question though, how do you get back into the yellow URL entry point at the top without reloading the program?

Attached Files



#22 Willsy OFFLINE  

Willsy

    River Patroller

  • 3,024 posts
  • Location:Uzbekistan (no, really!)

Posted Tue Dec 16, 2014 2:48 AM

How effing cool is THAT??????!!!! :thumbsup:  :thumbsup: :thumbsup:  :thumbsup:  :thumbsup:  :thumbsup:  :thumbsup:  



#23 Stuart OFFLINE  

Stuart

    Dragonstomper

  • 708 posts
  • Location:Southampton, UK

Posted Tue Dec 16, 2014 2:50 AM

Excellent. ;-)  Being able to enter a new URL is one of the things I need to add. The program will also hang at the moment if you enter an invalid URL. I'll do an update over the next week or so.



#24 TheMole OFFLINE  

TheMole

    Dragonstomper

  • 760 posts
  • Location:Belgium

Posted Tue Dec 16, 2014 3:00 AM

Cool! Any way to get this to work in an emulator?



#25 mizapf OFFLINE  

mizapf

    River Patroller

  • 2,587 posts
  • Location:Germany

Posted Tue Dec 16, 2014 6:23 AM

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.







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