-
Content Count
1,020 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by Stuart
-
I tried it yesterday when you said it couldn't connect, and it worked for me. On the other hand, I've experienced before fairly long periods when it wouldn't connect. Let me sort out some sort of test program you can leave running perhaps that repeatedly retries the connection and reports the results. It's trying to connect to port 80 on 198.136.54.70.
-
Another update to add 'favourites list' functionality. The update can be loaded from the web page details in post #57. Changes are: * When the program is prompting for a URL, pressing the <Back> key aborts the URL input and returns control to the currently rendered page. * When a page is rendered, pressing the "I" key loads and renders the content from file DSK.BROWSER.FAVS. This is written/edited by the user using (for example) the E/A Editor, and saved in 'Variable 80' format. The file contains text and tags for hyperlinks to the user's favourite pages - it is in effect a web page stored on the disk. As well as hyperlinks, the page can contain any graphics or character definitions desired by the user. Long lines of text/tags can be be split across several lines in the file. A sample file is included on the disk. So to access the favourites list immediately after starting the program, press <Back> to get rid of the URL input prompt then press "I" to load and display the favourites list. There is no functionality as yet (if ever) to save a web page address to the favourites list from within the program - you'll need to edit the favourites file manually. (So it should also be possible, should it be needed at a future date, to store the IP address of the server with the script for resolving web addresses in a file, so it can be edited by the user.)
-
But as the MOTOR ON signal on the floppy interface is common to all the drives, don't all the drives spin even though only one is actually selected?
-
Agreed. I'm going to look at storing favourites in a file on the disk. (Done - see post #62)
-
You might want to check first if it is actually out on display, rather than being in a 'virtual' gallery.
-
I've done an update to the web browser and added a couple of new features. I've added details to my website - www.avjd51.dsl.pipex.com/ti/ti.htm#internet_web_browser. The sub-section "Loading and Running the Program" contains a download link, and gives the file name (now "WEB_O") and the program name needed to start the program depending on the serial port you've got the Lantronix connected to. New features are: * Added keyboard control keys "A" (go to top of page), "N" (enter new page URL) and "P" (display page source code). * Added key auto-repeat to make it easier to move the pointer. * Pressing any key while retrying a connection will abort and prompt for a new URL. * Improved handling of HTTP errors returned for a URL. * Added instruction page displayed when program starts. * Default character set is automatically reloaded when browsing to a new page. * Added different entry points (program names) for different RS-232 devices.
-
It's a possibility, yes. I'll wait though to see how often that IP address changes. It might not be a problem that warrants the effort to resolve.
-
Understanding the CRU and usage implications
Stuart replied to OLD CS1's topic in TI-99/4A Computers
But on the plus side, you're not losing memory space to I/O. And at the time, it might well have been considered fast enough. One could still implement memory mapped I/O if one needed it. -
Getting power from the joystick port for Atari TrakBalls
Stuart replied to OLD CS1's topic in TI-99/4A Computers
Could always just run a +5V/GND cable out from the internal TI-99 power supply through a small hole in the case. That's how I power my nanoPEB. -
Understanding the CRU and usage implications
Stuart replied to OLD CS1's topic in TI-99/4A Computers
Broadly correct. For CRU devices such as the TMS9901 and 9902, as well as CRUCLK, the device is also supplied with phase 3 of the processor clock. CRU cycles do indeed 'cycle steal' from normal memory accesses and everything is nice and synchronous. In a typical system that contains several CRU devices, you would decode A0-A9 to produce a chip select /CS signal for a particular CRU device, and A10-A14 would select a particular CRU bit on that device. Just making /CS active for a CRU device won't actually do anything - it needs the pulse on CRUCLK to perform a CRU access cycle. Be aware of a 'shortcut' on the TI-99/4A console circuit. For a CRU access cycle, A0-A2 are most definitely 0. There are five 9900 instructions - LREX, CKOF, CKON, RSET and IDLE - that produce a pulse on CRUCLK with A0-A2 set to a non-zero value. The intent is that this combination of signals is decoded and used to control some (non-defined) external hardware. But in the console, A0-A2 are not fully decoded, so the console hardware will interpret these five instructions are CRU accesses, with (possible) strange results. -
building a supercart from arcade shopper PCB
Stuart replied to hloberg's topic in TI-99/4A Computers
Instead of desoldering the GROM, cut the pins off near the PCB, then solder the GROM to a DIL header to give you a 'new' IC: http://www.ebay.co.uk/itm/16-Pin-Dil-Gold-Plated-IC-style-header-plug-5-pieces-/390783546925?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item5afc83b62d You can then desolder the remains of the pins individually from the PCB, which is a lot easier. -
I've also got a Netburner SBL2e serial to Ethernet converter (plus ADC and 10 digital I/O pins), which is pretty cheap (~$30 each) but needs an RS-232 level shifter and connector to work. There's a development kit available for this device. Might be worth having a think if specific features can be added to this device that will make it work better with HDx and so on - or even better, features that would benefit the wider 8-bit retro world in connecting those machines to the Internet. The development kit is $300 so there would need to be sufficient prospects to recoup this cost plus produce PCBs for the level shifter and connector, plus possibly a case. Someone would also need to take on the development side of things - that would not be me. Just a thought.
-
I'm pretty sure it's not the server being used to resolve the addresses, as I tried someone else's PHP server as well and found that with that also it would sometimes have to sit there retrying the connection. Pretty sure it's the Lantronix, but don't see a reason why.
-
building a supercart from arcade shopper PCB
Stuart replied to hloberg's topic in TI-99/4A Computers
How the other half live, eh, Willsy, where they can skip across to their parent's ranch to do their soldering, rather than have to do it on cold, hard Aberdeen granite? -
Try www.stuartconnerdownloads.me.uk/getdatetime.php.
-
The Lantronix is doing the interfacing between the TI serial port and the Internet. So start by pushing into the Lantronix serial port the IP address of the server to connect to, then push in the text for an HTTP request. The server sends back the web page, which comes out of the Lantronix serial port (as text) with HTTP header still attached. So the TI doesn't need any form of protocol stack, it just needs to know the format of an HTTP request.
-
Nice idea, but I think once you get past a few basic tags, the tags start being specific to the machine features. For example, with the tags I have so far, those for setting the colours and defining characters are closely tied in with the 9918 VDP.
-
The current list of supported tags is back in post #15. I'll at some point get them up on the web with some example code. The displayed screen image is assembled in a buffer in RAM then uploaded to the VDP as a bitmap image, so characters can be defined and 'printed', then redefined into something else and 'printed' again without affecting the earlier use.
-
To resolve web page URLs, the program first uses the Lantronix to pass the URL to a one-liner PHP script on one of my websites (identified by its numeric IP address, which is pretty stable) which returns the corresponding IP address for the URL, and the program then uses that to download the web page. At the moment, if the IP address of my website changes, I'll have to change it in the program and re-assemble it. There's also an intermittent problem with the Lantronix - once connected to one web server, it sometimes won't connect to another web server again for another minute or so (even though it appears to have correctly closed the connection), so the program has to just sit there retrying the connection until it works.
-
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.
-
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
-
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.
-
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
-
Writing to the NanoPEB Serial Port in Assembler
Stuart replied to Stuart's topic in TI-99/4A Development
Ah, yes, that the problem. I thought the state of /CTS could be sampled, but didn't realise it would it actually stop it transmitting. Thanks folks. -
Writing to the NanoPEB Serial Port in Assembler
Stuart replied to Stuart's topic in TI-99/4A Development
The NanoPEB routes the 9902 XOUT, RIN, /CTS and /RTS pins through a level shifter direct to the 9-way D-type connector.
