Omega-TI Posted October 29, 2014 Share Posted October 29, 2014 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. 3 Quote Link to comment Share on other sites More sharing options...
Albert Posted October 29, 2014 Share Posted October 29, 2014 How does AtariAge look? Where do I need to include some tags? ..Al 3 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted October 29, 2014 Share Posted October 29, 2014 All I see is blonde, brunette, red-head... 4 Quote Link to comment Share on other sites More sharing options...
matthew180 Posted October 30, 2014 Share Posted October 30, 2014 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. 3 Quote Link to comment Share on other sites More sharing options...
firepod Posted October 30, 2014 Share Posted October 30, 2014 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. 3 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted October 30, 2014 Share Posted October 30, 2014 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 1 Quote Link to comment Share on other sites More sharing options...
Stuart Posted October 30, 2014 Share Posted October 30, 2014 (edited) 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 October 30, 2014 by Stuart 2 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted October 31, 2014 Author Share Posted October 31, 2014 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. This is freaking AWESOME though Stuart! I still cannot get over the fact that it's on... a TI! 2 Quote Link to comment Share on other sites More sharing options...
Stuart Posted November 1, 2014 Share Posted November 1, 2014 Anyone out there got a web server with PHP running that I can test a small file on? Stuart Quote Link to comment Share on other sites More sharing options...
MarkO Posted November 1, 2014 Share Posted November 1, 2014 (edited) 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 November 1, 2014 by MarkO 1 Quote Link to comment Share on other sites More sharing options...
Stuart Posted November 1, 2014 Share Posted November 1, 2014 --- Ω --- 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. 2 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted November 1, 2014 Share Posted November 1, 2014 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? 2 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted November 2, 2014 Share Posted November 2, 2014 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: 1 Quote Link to comment Share on other sites More sharing options...
jens-eike Posted November 4, 2014 Share Posted November 4, 2014 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.com/watch?v=ucNYLsjKaTQ Quote Link to comment Share on other sites More sharing options...
Stuart Posted December 15, 2014 Share Posted December 15, 2014 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 Lantronix9-way D-type Male 25-way D-type FemalePin 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 3 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted December 15, 2014 Author Share Posted December 15, 2014 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. Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted December 15, 2014 Author Share Posted December 15, 2014 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. Quote Link to comment Share on other sites More sharing options...
Stuart Posted December 15, 2014 Share Posted December 15, 2014 (edited) 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 December 15, 2014 by Stuart 2 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted December 15, 2014 Author Share Posted December 15, 2014 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! Quote Link to comment Share on other sites More sharing options...
Stuart Posted December 15, 2014 Share Posted December 15, 2014 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 2 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted December 16, 2014 Author Share Posted December 16, 2014 -- INT1540_O - uses the 1st RS-232 port (CRU >1540) on the card at CRU >1500. 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? 4 Quote Link to comment Share on other sites More sharing options...
Willsy Posted December 16, 2014 Share Posted December 16, 2014 How effing cool is THAT??????!!!! :thumbsup: Quote Link to comment Share on other sites More sharing options...
Stuart Posted December 16, 2014 Share Posted December 16, 2014 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. 2 Quote Link to comment Share on other sites More sharing options...
TheMole Posted December 16, 2014 Share Posted December 16, 2014 Cool! Any way to get this to work in an emulator? Quote Link to comment Share on other sites More sharing options...
+mizapf Posted December 16, 2014 Share Posted December 16, 2014 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.