-
Content Count
330 -
Joined
-
Last visited
Posts posted by ElectricLab
-
-
I wonder if your embedded webserver is sending something different to the browser in terms of CONTENT-TYPE or other subtlety that Stuart's browser isn't liking, maybe even as simple as a newline character or something. I'm assuming that you can pull of the page on a modern browser served up by the embedded server OK? You could go at this a couple of different ways. You could sniff the traffic of both a successful and non-successful session and compare them. I don't know what the OS/capabilities of your embedded environment are, but if it's Linux, you could easily capture the traffic right on the device with tcpflow.
I'd also check the results of both the Apache server and the embedded webserver with a simple telnet check.
For example I just did this on my MacBook:
telnet 192.168.0.99 80 <enter>
GET / <enter>
<99ml>
<cdef:85:00000000647F7F3F>
<cdef:86:0000000098F8F8F0>
<cdef:89:000000040C1C3C7C>
<cdef:8A:0060E0F0F878F8F8>
<p>black on blue example:</p>
<br>
<p><clr:15><chr:85></clr><clr:15><chr:86></clr></p>
<p><clr:15><chr:87></clr><clr:15><chr:88></clr></p>
<br><br>
<p>black on blue followed by black on white:</p>
<br>
<p><clr:15><chr:85></clr><clr:15><chr:86></clr><clr:1F><chr:89></clr><clr:1F><chr:8A></clr></p>
<p><clr:15><chr:87></clr><clr:15><chr:88></clr><clr:1F><chr:8B></clr><clr:1F><chr:8C></clr></p>
</99ml>
Also - text should be in <p> tags to be reliably visible in Stuart's browser. -
So it sounds as if the best approach is to determine *in the browser code* whether an IP address has been entered, and if so there is no need to call the DNS PHP script? Then you could use it on an internal network that isn't connected to the Internet.
Corey, any idea how big the largest browser page you have is? Interested to see how many bytes I can grab from the page buffer to use for code, if needed.
A chess board page on myti99.com is the largest page, and the amount of bytes is around 11,800. This page contains lots of custom character definitions and is probably one of the largest I'd ever make. On the server side I try to keep the size of the page down by automatically removing newline characters and keep whitespace to a minimum. That brings up a question I had - does the browser just discard whitespace/newlines when it's parsing the page such that it doesn't actually affect memory utilization if we get sloppy? I figured it best to reduce the traffic to a minimum to make data transfer faster and the fastest web browsing possible.
Since Slinkeey is working on some things too, maybe he can chime in on what he's getting for a page size.
Thanks,
Corey.
-
You could get the IP range that Stuart uses on your internal network.
Yes, you could certainly create a local static route on your network to encompass the IP address where the DNS resolver script currently resides. You could then proxy it to an internal machine running the same script or bring up a machine on that external IP address on your local subnet. This would be a bit of a nasty hack, and I don't think you'll have to do it since it sounds like Stuart is going to put a fix in place.
-
If you run a local DNS-Server in your LAN, (ie on Win/AD-Server), can´t you add a DNS-A-Record to point to this local IP-address ?
(or is Stuart´s Browser using a "fixed" DNS-Server to resolve requests)
You can't, even if you run a local DNS server. The issue is that if you're dealing with an IP address, DNS wouldn't be queried so you can't redirect it.
-
Yeah, and not all addresses contain "www"
Yeah, 192.168.1.102/test would be normal. Basically like a real web-server, that doesn't have a domain name, because it is internal.
I actually thought about rerouting traffic to your IP that does DNS resolution, internally, so I could do my own DNS resolution.
Indeed it would be handy to have it work with IP addresses instead of hostnames so you could experiment with it. What I did when I was developing was create a dev hostname, which I had to create DNS records for. I've taken to using name-based virtual hosts (Apache FTW!) and puttign some default page up if you connect to it by its IP address only.
-
I believe the browser makes a call to his DNS resolver script, via a hard-coded IP address. You'd not be able to redirect this which is why Stuart suggested a hex/edit of the browser to change this to your local IP address.
There are two fixes I can think of:
1) Stuart could modify his DNS resolver script to detect that it's being sent an IP address and not a host name, and simply return the IP address it was given.
2) Stuart could modify the browser to detect that it's been asked to go to an IP address and bypass the host name lookup, and pass this IP address on to the code which generates the call to the serial adapter.
I think the first solution is OK since the browser does cache 5 or so IP addresses so it doesn't keep trying to resolve names.
-
Thanks Corey. I actually need to park this for a couple of days until I can look at the browser source code (I'm away from home at the moment). I've a vague memory that the "www." prefix is required/expected in some areas of the program, which would give a problem if using an IP address. I need to check that before playing with the PHP script.
Sounds good. I'll be happy to test IP address functionality when you do modify the script.
I know you can leave off the 'www' when entering a URL into your browser, and it works OK.
-
1
-
-
Any disadvantage to using ...
$valid = filter_var($string, FILTER_VALIDATE_IP);
... instead of a regex?
I've not used filter_var, but it looks handy.
-
This code should do it:
<?php
# $host_name = 'myti99.com';
# $host_name = '10.192.2.4';
$host_name = '10.2.3.4/test.html';
print "host_name: $host_name\n";
if (preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', $host_name)) {
print "That's an IP address\n";
}
else {
print "That's a hostname!\n";
}
?>
I'm not sure if the IP address is passed by itself or has '/somefile.html' along with it when it's passed to your PHP script, so I wrote this regex to account for it.
You could change the preg_match to this to match only an IP address and nothing else like this:
if (preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $host_name)) {
-
Sure thing. If you want to email me the script I can change it, or when I get back to the office I'll come up with a regex to do it.
-
Stuart, wouldn't it be possible to modify the PHP script to realize it's been passed an IP address via a regex and then just return the address back to the browser?
If you want, I'd be glad to host a backup of this DNS script here in the States. The browser could be modified to set mine as secondary and automatically check the secondary
if the primary doesn't answer.
-
I've done some simple page making. I'm just toying around.. I don't want to share too many details.. People get excited... I have a real job, other hobbies, other issues, and don't want to be making vaperware.. heheheh

Very cool. I look forward to seeing what you make. If you need a place to host pages, I can provide space on myti99.com. At the very least, when you have stuff ready for prime time, we should make a webring of sorts to bring it all together.
-
1
-
-
This might have been asked, or I am doing something wrong but...
Can you just put an ip address into the adress bar. I am testing something utilizing a local webserver, that the script on your server that resolves DNS does not know about.
No, I don't think that is supported. I believe it will try to do DNS lookup on the address as though it were a name. I suppose Stuart could modify his server-side code to properly return the IP address back to the browser in this case.
So.....Are you doing some web dev work for the TI? I'll gladly share what I've learned doing so on myti99.com.
-
1
-
-
I am with you there. I use only a specific credit card for online purchases, so it's easy for me to keep tabs on it should any fraud occur. If it does, then I'm not liable anyway so that's how I justify it.
-
For what it's worth, I've bought many things from Arcade Shopper and never had a problem.
Seconded. Greg is a stand-up guy.
-
Correct. Hell if I could do that I'd fill all the slots with 32k cards lol!

In the short term, I am getting this 32k side cart. (Can I get a kit to save a little by assembling it myself?) But I don't want to give up my peb. So I might end up setting up a second console. One for everyday and one for modding and special purposes.
"So I might end up setting up a second console. One for everyday and one for modding and special purposes."
and this is how it begins!

-
I didn't see this posting until today. I've done a significant amount of programming and hardware hacking in home automation. I've been working on my main project for about 18 years, and have had all my home lights controlled with Insteon controllers for about 10 years. Insteon is similar to X10 in that it uses the power mains for comms + a wireless protocol. X10 has lots of problems and pretty much sucks compared to modern stuff. Insteon devices handshake with each other so you can have reliable messaging between devices and the controller. I really wanted the controlling computer to know the exact state of things, and I rarely find anything out of sync with Insteon.
I have whole-house stereo audio with individual channels for each room (thanks to cheap USB sound card dongles), complete integration with my ADT alarm system (all sensor data feeds into my HA system), scenes, text-to-speech (provided by festival), sprinkler control, garage door control, thermostat control, etc. All of this is my own home-grown stuff, based on Linux and MySQL as a database, and I have had control of all of this from a mobile device for about 8 years, long before the stuff you see at your favorite home improvement store appeared on shelfs. None of it uses and cloud-based stuff like Nest.
I have plans to turn it into a proper open-source project and release it into the wild. I never thought about using a TI for any part of this since I have a lot of computation going on and use a database that has millions of rows in it since I log anything that occurs in the system (including motion events from the alarm system and manual light switch presses). I can create scenes that are useful such as not allowing the kids to turn on the AC in the summer if they leave any doors or windows open
I am building a new lab in an outbuilding on my property - maybe I'll set up a TI to serve some of this purpose. I'm sure it could handle some of the simpler I/O like relay control for the sprinklers, etc. It probably could do transmits but might have a hard time keeping up with the huge streams of data I have coming in.
-
6
-
-
Someone at PRGE asked why I didn't use micro-usb for the power jack. The simple answer is, the only supply I can find of those is surface mount.
So I dismissed it early on. If that situation changes, I may adjust that in a future revision of the board. I personally like the coaxial connector you used. Micro-usb connectors that are SMT are a bad idea for something that should have strain relief.
-
Do people collect these silent 700/745/750 terminals? I just picked up a very small silent 700 because it was $25 from an estate sale. I already had a larger one with the acoustic coupler built-in.
There was a big old 700 in a locking case that is probably still there, in the Boston area. If anyone wants more details I'd be glad to pass the info on.
-
It will take a l-o-o-o-n-n-g time to erase EPROMs with a black light. You can buy UV erasers on Amazon for ~$20. They will erase EPROMs in 20 – 30 minutes, usually.
...lee
I know I erased some back in the day just by setting them on a window sill, but I think Omega's right - life's too short for EPROMS. I expect this to be on a t-shirt at the next FestWest.

-
1
-
-
I use one of these uv erasers: https://www.amazon.com/Ultraviolet-Light-EPROM-Eraser-Eraseable/dp/B00AZFZHEY
Wikipedia says this:
So I imagine you want something stronger than a black light unless you are really patient.
Now is a great time to buy black lights because of Halloween. They had little fluorescent fixtures at my local store for ~$20 last year, and they'd probably work well for erasing EPROMS.
I should point out that they work great for any Retr0brite projects that people like us probably have

-
sorry I missed it again
next year is my year to make itMine too.
-
2
-
-
An independent testing lab (@ElectricLab) reported this morning that his initial first run of the memory test prior to the fix passed, but later runs failed. After the fix, the burnin version of the test made more than 700 successful passes without failure.

Thank you so much for this testing!
I'm full steam ahead now!

Glad to help, especially for such a worthwhile project. So far, we're keeping under 1085 celsius which is the melting point of copper.
-
3
-
-
When I trace the path through the 4A mainboard, the +5v line seems to pass through a number of diodes along the way, but I don't see it going through any other components. At least I think they are diodes... black cylinders with no visible markings, they look like rectifier diodes, instead of switching diodes.
The intention:
- run the 32k board directly off the TI sideport, play some games.
- modify a speech synthesizer to pass the sideport power through, run the 32k board off the side of the speech, play some games.
- Modify nothing, use a speech synthesizer, provide yourself a +5v supply for about $5 that uses the word 'regulated' in the description, play some games.
I think everything will be fine with those options.
Absolutely. So many people are going to be happy with this.
-
1

Stuart's TI-99/4A - Internet Web Browser
in TI-99/4A Computers
Posted
I should add that I'm running Apache on the server at 192.168.0.99 in my above post.