-
Content Count
330 -
Joined
-
Last visited
Posts posted by ElectricLab
-
-
I finally got call chime to work
I think it's only possible to do single tones at a time with Stuart's browser, but more volume isn't a probem. What I'll do is make it so you can customize the sound, or at least have a few to choose from. -
1
-
-
Well it's an historic day! I was actually on the chat with another human! (I'll have to fire up Eliza for when I'm not at the keyboard)
I see that there was a bug that was data-related, so I updated the database to clear my bad message. I think it's allowing for one too many characters in length.
Anyway Omega, thanks for the brief chat. I'll be back in my lab later tonight, but I have to get some grub first.
-
2
-
-
Headed there now
-
1
-
-
Dang, I just got home. One of these days we'll actually be on at the same time

-
1
-
-
Hmm I'll have to try and fix that bug. It may be data-related since that "open" game had been in open status for weeks and I've changed a couple of things since then.
I did work on it last night and changed it so the opponent's last move is highlighted when you look at the board.
-
At first I had move invalidation, where a move was made and "Saved" in the database, but then if it was invalid, I had to roll it back. I decided to do it in memory instead which is much faster.
The trick with AI s being able to store board state and multiple iterations of possible moves if you're scoring moves to narrow down the best move.
Let me know if/when you want to use my system's API.
-
Chess anyone?
I recently completed a chess game that can be used to play with other TI users on the web, using Stuart Conner's web browser.
More info at: myti99.com
Basically I took a different approach, so that I could write the code using modern object-oriented concepts, and I created an API to separate out the management of the boards, games, and validate moves, etc. I did this so that other retro platforms might be able to participate with only a local program needing to be created to use the API and "glue" it to the platform in question.
This project actually stemmed from another project I was working on, which was a 3D chess-like game. There were lots of new types of pieces that the game designer was still working on, but I needed to get busy on the coding, so it occurred to me to try creating a Piece object and have its allowed moves placed in a SQL database. This allowed us to program in new pieces and moves as they were designed - they could be just inserted into the database and Bob's your uncle. I ended up defining attributes of chess pieces, such as:
- Can a piece move over others or must pass through clear spaces? (Knight is the only one that can jump)
- Can a piece move differently on its first move? (Pawn can)
- Must a move in a particular direction require a capture (Pawn moving diagonally)
- Can a piece be left in a capturable space? (King's can't be in check)
- Can a piece move in only one direction? (Pawns)
All of these support a Z axis for the 3D chess, and I ended up with a flexible data model that I decided to exercise the system by inserting data for standard 2D chess pieces. Then I learned about Stuart's web browser via AtariAge and I thought it would be easy to make a glue program to use this API and to serve up pages in Stuart's custom (and brilliant!) 99ml markup language.
The API controls everything, and basically a call is made to it in order to make chess moves, and all the validation rules are applied there, making the glue program relatively dumb and really just the "display layer". The API can be used to get the status of a particular match, and returns a blob of data containing all pieces remaining on a board and their locations.
If someone were so inclined and wanted to play with AI without having to program all of this chess and move logic, one could register a user at myti99.com and use its credentials to access the API and:
- scan for open games and join them
- scan for games for which it's "my turn"
- dump out the status of the board to XML or JSON
- submit moves
Basically you could make a chess player and experiment with algorithms to play chess. I want to do this eventually if I find the time. I was thinking of making a really dumb chess bot that just made random moves - I might even be able to beat it then

What I found the most tricky part of chess logic is:
- Are we in check? This wasn't too hard all since I made methods like Piece->determineMoves so I could iterate through all opponent's possible moves to see if my king is in threat.
- Is my move legal? This requires iterating through a piece's allowed moves as defined in the database.
- Are we in checkmate? I never did finish this but it requires determining that a player has no valid moves remaining on the next play. Sounds easy, right?
This engine was made for a product that never made it to the market, and I was given permission to do with it I want. Some day, I might get around to implementing a 3D version which might be fun.
Anyway, if someone wants to see what I've done, I'd be glad to share. I did all the backend in object-oriented Perl, including the API. However you could use ANY language to access the API and do your thing, leaving all the validation to the backend. One could write a better-looking chess game that ran right on the TI, and was multiplayer by using this API.
PM me if you want more details. The API is fairly well documented.
-Corey.
-
Windows command prompt:
wmic logicaldisk get caption,description
That works, but only shows physical drives and not network drives. This is still handy. I still contend that the Microsoft drive letter thing is absurd and makes automation difficult because you never know what drive letter a certain partition, memory stick, etc is going to end up as. You have to go out of your way to force enumeration of drive letters in a particular order. Also In a dual boot environment with UEFI, you can have a C: and a D: drive assigned at the partition level, but when you boot into one or the other, the booted drive becomes C: no matter what. I'm sure it's because of legacy needs and lots of stuff, including M$' own stuff would probably fall on its face without %windir% being C:. It's just silliness that needs to wind up on the ash heap, right next to Microsoft Bob.
-
2
-
-
"net use" -- dates back to Windows 3.11.

NET USE only shows network mounts, and not local disks or USB-mounted drives.
There's MOUNTVOL but shows available partitions and such, but not all mounts.
-
1
-
-
The Windows drive letter thing is so ridiculous. I work on provisioning systems sometimes, and have to do image captures to external drives and boot off of special USB sticks. It's really hard to script things for other machines when the drive letters are NOT fixed or guaranteed to be the same, and sometimes drives even stack up differently on the same machine. And there's no bloody command to show which drive is mounted to what !?! Only installing CygWin and having the UNIX mount command has saved me from defenestrating a few Windows boxes.
-
Did it stop working 100%? I assume you know about the "caps lock must be up" quirk with the TIs.
-
A couple of things on these:
1. The power supply is fairly easy to get: It will take ANYTHING from 9v-30vac 1a. Make sure the tip is positive.
2. They may not have had power supplies as some of them can draw power from the Ethernet/RS232 jack. (The AC models, not so much, but the UDS-1100 accepts AC & 9-24VDC).
The UDS-10 only takes DC. The reason for the wide range is that they are designed to work with POE (Power over ethernet).
I can get those adapters for next to nothing at a local surplus joint. Let me know if you can't acquire one cheaply.
-
Vorticon, I have three of these and have never flashed or updated their settings. It's probably a good idea to do so, but I thought I'd mention that you probably don't have to.
I think the UDS device can work on 10.0.0.n, but if not, an alternative would be to create an additional 192.168.1.n network internally for it.
If you have an old unused router/wifi box with ethernet ports, you could set it up to create another subnet in your house with its WAN address on the 10.0.0.n network and on its LAN side, have a 192.168.1.x network with DHCP, where you could connect the UDS.
I skimmed the manual and I don't see that it MUST be on 192.n.n.n so perhaps it has been set to a fixed address and no DHCP in its former life. I'd do the factory reset and see if that allows it to get an IP address on your 10.0.0.n network.
To confirm that it does, I'd NMAP your internal network before (see previous post) then plug in the Lantronix, wait 30 seconds, then NMAP again and look for a new host. Or - if there's a screen on your router that shows your DHCP clients/leases, you could find it there too.
-
Vorticon - Do you for sure have a DHCP service running internally, IE when you plug a new laptop or something in, does it get an IP address and is able to connect to the Internet?
-
Vorticon,
I didn't use their software at all, but instead plugged them into my network and ran NMAP ( see what new devices appeared on my network and were handed IP addresses from my DHCP server.
(I am a UNIX guy who only begrudgingly uses windows) NMAP does work with Windows and Mac as well.
On my linux server I ran: nmap -v -sP 192.168.0.0/24
This showed me a new host, in my case: 192.168.0.248, and I just telnet'ed to it like this: telnet 192.168.0.248 9999
I went through Stuart's setup instructions here: http://www.avjd51.dsl.pipex.com/ti/ti.htm#internet_web_browser
and configured the UDS-10 and it worked fine, after sorting out the serial cables. One thing to note: I have 3 of these gadgets, and two of them do NOT support 2 stop bits (I/F Mode: FC) but they still work OK with 1 stop bit or whatever it defaulted to when I attempted to set it to FC.
Edit: You should be able to NMAP and telnet with Windows, if that's your platform. I've had to install telnet separately when I use Windows as they've (stupidly IMHO) taken it out of the normal stuff that gets installed with Windows. Telnet is such a wonderfully useful "is this network service listening?" troubleshooting program and it's what, 100K in size?
/end rant.
-
If any of you tried to access myti99.com tonight, you might have noticed it was down. I was in the process of migrating it from the server in my garage to a virtual host out in the cloud. It's now running in Dallas Texas, which is kind of appropriate. I'll now be able to offer other developers a space to develop and host their apps/games if anyone is interested.
Anyway it's back up, and Chess and Chat are working. Battleship is coming soon. Stuart will likely be releasing v9 of his browser which is needed to access the group chat.
Thanks,
Corey/ElectricLab
-
3
-
-
Omega: No, I don't have any chips or modern burner yet. I want to get set up with the right gear to do it, and I am pretty sure what to get (Thanks Greg). Anyway, just you guys wait to see see Stuart's next version of the browser. You will be amazed.
-
2
-
-
It'll be worth the wait. He and I have been working on new features and I've been doing QA when I get time. I believe he's close to publishing it, and it would be cool to have on a cartridge. I really need to learn how to burn them myself. I have too many projects cooking right now, but hopefully by summer I'll be able to delve into it.
-
3
-
-
I made a chat program for Stuarts browser, and it's on myti99.com now. The only caveat is that it requires version 9.0 of his browser which isn't released yet. I have an early copy since I've been helping to QA it, and it is amazing. It now allows for text input, so of course the first thing I did was create a chat program. I also made a way to log in by typing your screen name and PIN into forms instead of in the URL which is nice. I have a couple of game ideas that I will be coding up when I get the chance over the next few weeks. If anyone is interested in doing this, I'll share what I've done. I've written everything thus far in Perl, which would be easy to port to PHP if that's your poison. On the backend of myti99.com I use a MySQL database for the user accounts and the chess game data.
-
1
-
-
I'm really late to this thread, but I'd be interested in a board as well!
-
Did you hear the one about the extroverted retro computing enthusiast? He looks at YOUR shoes when he talks to you.
-
3
-
-
1) Mass storage in an HDX way, right on a memory card.
2) Ability to download files using Stuart's browser and save to mass storage. 99ML-style pages could be created to host files and a webring created.
3) A multicart with all the major images you'd expect, plus Stuart's browser.
With these you could do a lot and not need a PC very often, except for burning ROMs, and ??
-
3
-
-
Greg and I were chatting about this yesterday, and I would love to be involved in such a project. I was thinking that there is a lot of space above the board inside a speech synthesizer, and that it would be a good place to add a board. The little door on top would be where you'd plug in a CF or SD card.
Does anyone know - would it be possible to get the detailed specs/gerbers/code of the NanoPEB so we can pick up from there? So much brilliant work was done for the NanoPEB and it would be a perfect place to start from. I want to add, in addition to 32K ram and RS232 support, a micro controller to talk to a WiFi sub-board. I'd like to make a simple bridge that the TI would see as RSC2. That way programs like Stuart's browser could easily do networking.
All you'd need to get on the web then would be Stuart's browser on a cart and a modded speech synthesizer, which I think a lot of people have. They seem to be fairly inexpensive on eBay and readily available. It'd be a good DIY project, with boards and chips available on ArcadeShopper.
Just thinking/dreaming out loud

What do you all think?
-
2
-
-
I wish my kids would have an interest in computers, besides playing Minecraft with them. I've tried to get them to code in Scratch (https://scratch.mit.edu) but they're just not the geeks that I was at that age.
I've gotten them little electronics kits and taught them to solder. I've even had them play with Snap Circuits http://www.snapcircuits.netand Lego Mindstorms robotics kits, but they can take it or leave it.
They just don't have the geek gene - I would have gone nuts for these things, had they existed in the 70s
-
3
-

Stuart's TI-99/4A - Internet Web Browser
in TI-99/4A Computers
Posted
The question mark is a delimiter between a query string and the rest of the URL and can't be used at this time. I could ask Stuart to account for it by subbing them out for their hex equivalent, like we do for spaces.