Not totally sure what I am going to do yet, but I am definitely offering these items up as prizes:
I can't guarantee that the keyboard still works, but it did 5 months ago!
Not totally sure what I am going to do yet, but I am definitely offering these items up as prizes:
I can't guarantee that the keyboard still works, but it did 5 months ago!
Last weekend as I was adding some features to my BAM program, I started having keyboard issues again. I found some new continuity problems on the ribbon cable due to stress from bending. I tried a few things to fix the problem, as I didn't want to keep cutting back the ribbon cable. I thought I could solder a little bridge on the cable, but the soldering pen melted right through the plastic. The traces are too thin to solder. I tried taping on aluminum foil traces with mixed results. In the end, I had to just keep cutting the ribbon cable back to an area without cracks. I barely finished that tonight.
I had some new features I wanted to add to BAM, but I quickly ran out of memory, so I couldn't implement scoring, marking mines or verifying that you found them all. So the game is pretty incomplete, but that's all I could fit in memory. I also picked up some pretty horrible coding practices from tricks to save memory on the TS1000. Things like:
10 LET O=PI-PI
20 LET I=PI/PI
Then using "O" and "I" instead of 0 and 1. Apparently, this saves memory by evaluating math with the constant PI, rather than the 5 byte long numbers for 1 and 0.
Anyway, I'm done. The BAM game is available for download as a .P file, but it's not that exciting. It's really quite sad considering the time I spent on it. I just found myself unable to be productive with only 2k of memory and a difficult to use BASIC editor. The source is listed below in image grabs from the impressive TapeConverter program for ZX81.
I never got around to making the memory expansion card with all of the keyboard issues, although I do have the parts ready to solder.
As promised, I am also offering up the working TS1000 as a prize in the RetroChallenge. I wouldn't mind keeping it for 6 months and giving it away at the end of next year's Winter Warmup, but I'll leave that up to the organizers.
Thanks for the memories TS1000!
I have a working game! Lots of features aren't implemented yet, like scoring and auto clearing areas, but it works! I learned some interesting tricks to reduce the memory size. One of the most novel I found online is for moving a cursor:
20 LET Y=Y+(INKEY$="6")-(INKEY$="7")
25 LET X=X+(INKEY$="8")-(INKEY$="5")
This little snippet replaces 4 lines of normal IF, THEN code by taking advantage of the fact that the INKEY$ comparison resolves to 1 or 0. Adding and subtracting the result for the various keys moves the stored cursor coordinates. I have to say, I really like the Sinclair implementation of BASIC. It has some printing and comparison features that are lacking in Applesoft BASIC. However, the only thing that made programming bearable was writing out the entire program before trying to enter it. Data entry and minor editing is not too bad, but trying to think out a program on the TS1000 is not fun. I will make the source and a download available shortly.
Well, I have never programmed a punch card computer, but after several days of total frustration trying to enter, test and edit a BASIC program on the TS1000, I gave up. I haven't completely given up *BAM*, I am just writing it on my MacBook, in a text editor, and then entering it into the TS1000. This reminds me of how programmers used to have to write out their programs before trying to enter them on a punch card. The TS1000 is too slow to provide a good interface for stream of consciousness BASIC program editing. By the time I get a line entered, I forget what I was trying to do. I have spent many hours working on a simple program which I could have probably finished in just a few hours on an Apple II. I'm sure that machine language programs for the Z80 processor are really the TS1000's strong suit, but unfortunately, that's not what I'm working on.
I was running out of memory very quickly when setting up the game board for minesweeper. The board is represented by a 12x12 2-dimensional array of numbers with values 0 to 9. Little did I know that a number in Sinclair BASIC is represented by 5 bytes. As a result, I was using 720 bytes of memory, over a third of the memory of the TS1000, just to do some basic addition on the numbers. Instead I will use an array of strings. It too is a 2-dimensional array, but should only take up 144 bytes, plus some overhead. The result will be a slower program (to convert from character to number and back), but way less memory use.
Finding some existing minesweeper programs online for the ZX81 was a bit disappointing. However, I don't think either of them run in the standard 2k of memory for the TS1000 (although I haven't tried either of them). Even though I received my RAM chip for the upgrade, I really want to get this running in the standard configuration. So I'll keep working on this thing.
...means "Not enough room in memory." Great. My menus were working perfectly, and I started on the actual minesweeper game logic, when I started getting report code 4 errors. So, there isn't enough room in RAM for a menu and the game. Even reducing the size of the menu names didn't help much. I will be spending the next hour deleting my last 2 days worth of work. One last picture of completed menus for posterity:
My BAM minesweeper menu system is now fully functional. Ugh, I should be done with the whole program by now. Keyboard entry on the TS1000 BASIC editor is incredibly slow. I am used to the membrane keyboard now, but you still have to wait for the screen to refresh before entering a new character, even in fast mode. Also, the editor is acting funny lately and not allowing me to EDIT existing lines. Maybe I am having memory issues?
SAVEing and LOADing is working extremely well with Audacity. I have set up a sort of version control with the audio clips. Audacity lets you mute and minimize clips as you go, and save many clips in the same project. So, I can keep all of my old saves in one project, and still play and record just the latest audio clip.
Finally, I ordered the SRAM chip I need to upgrade the RAM on the TS1000. That should be a fun project, if it arrives in time.
I'm getting the hang of programming on the TS1000. Progress is SLOW. A few tips I have learned:
I really hope game play is faster than BASIC program editing.
I bought the adapter I needed to convert from the mono headphone jack on the TS1000 to the RCA/phono jack on my iGrabber USB audio/video capture device, and then I promptly lost it before I could get it home. I borrowed another one and was finally able to get everything hooked up to my satisfaction. After a lot of experimentation I figured out a setup that gave me reliable results on my MacBook Air. I used Audacity to record and playback the audio clips.
Finally I can start writing an actual program!
After a little research, I learned you can't break your TS1000 by putting the 9v power plug in the wrong jack. This makes sense considering the 3 identical jacks on the TS1000 and how close they are.
I couldn't find any help with my audio problem online, so I started experimenting with the mini phone plug to phono (headphone to RCA) adapter that connects to my USB A/V capture dongle. As it turns out, the problem is with how the stereo adapter connects to the mono jack of the TS1000. One of the lines is crossed or grounded which is making a humming buzz loud enough to cover up the data audio. Connecting the tip of one of the phono plugs to the collar of the phono jack on my USB capture device gets rid of the humming. The data audio is then clearly audible (sounds like a modem). In the end, I was eventually able to SAVE a program on my laptop using Audacity, amplify it, then play it back. I haven't been able to get the TS1000 to LOAD the data again though. I'm sure many people have done this before, so I will do some more research. Also, I will try to pick up the correct mono adapter plug tomorrow.
Sorry for the lack of updates. I suffered a particularly gruesome injury to my finger this past weekend while working on another project. Nothing a little super glue and duct tape couldn't fix.
I fixed the loose ground strap tonight. I used a soldering attachment for a propane torch which worked perfectly. My little soldering iron was not going to get hot enough to heat everything up. The TS1000 is much more stable with the strap secured, but I still don't have audio output during a SAVE command.
The three jacks on the TS1000 are identical 3.5 mm phone connectors. It seems possible that a previous owner connected the 9v power cord to the MIC jack, frying some component. I will do some research and testing tonight to try and track down the problem.
10 PRINT "HAPPY 4TH OF JULY!"
Very close to 200 years after the end of the American Revolutionary War, the American Timex Corporation and the British company Sinclair Research came together to introduce the Timex Sinclair 1000 to America. Finally, the British had brought us affordable computer technology rather than exorbitant taxes on tea.
I spent some time today updating my blog and programming on the TS1000. I am still getting used to the membrane keyboard. It is hard to touch-type without any feedback. Although I like only having to hit one key for a BASIC command, I seem to usually end up spelling out the command anyway, then having to delete my extra typing. It can be a little hard to find some of the commands the first time also.
My biggest problem is figuring out how to save my programs. I have the MIC jack of the TS1000 hooked up to my laptop, but I just hear a "soft, humming buzz", not the "very harsh, high pitched buzz" I should expect. While the humming is certainly more pleasant sounding than the alternative, I am pretty sure there is no data in there. I haven't fixed that ground strap yet, besides taping it in place, so maybe that is part of the issue.
I think I may write a Mine Sweeper type game for this little guy. It would lend itself well to text and simple BASIC programming.
Let's try this again. Type:
P "HELLO WORLD"
and the screen shows:
PRINT "HELLO WORLD"
Press the ENTER key and:
HELLO WORLD
0/0
Success!
Wow, the TS1000 almost went into the trash can tonight. After trying to repair the keyboard ribbon cable, I plugged it back in to test my work. Unfortunately, nothing happened. I couldn't get the TS1000 to do anything at all for about 20 minutes. I thought I had killed it for sure. As it turns out, the loose end of that poorly soldered ground strap was making a connection with another component and grounding out the TS1000. Repositioning the ground strap and applying some pressure caused it to spring back to life!
Back to the keyboard... I cut the ribbon connector back slightly to undamaged traces and cut back the the surrounding plastic to fit into the circuit board connectors.
The biggest challenge was getting the old broken bits of ribbon cable out of the circuit board connector. I kept trying to insert one of the ribbon cables into the connector but there were still some tiny plastic pieces in there blocking it. I used a thin blade to get the final bits out. I ran a test and everything but keys Q-T worked! Some continuity testing showed that the ribbon cable was not making contact on pin #2 of the connector. I had bent one of the pins slightly trying get the plastic bits out so that it was no longer making contact with the ribbon cable. I used a sewing needle to bend the pin back into place and... All the keys work! I will be adding some clear packing tape to the ribbon cable to re-enforce it for the future.
Well, my statement regarding the ease of this keyboard repair was apparently premature.
I am going to stay optomistic that it is just the ribbon cable at fault because this unit looks practically new and was very complete. If the issue is stress on the ribbon cable rather than damage to the membrane, I hope I can still make a repair. Otherwise, I don't think I have the fortitude to fix this thing. Onwards...
I flip the little TS1000 over to investigate opening it up only to find the warning "No user serviceable parts inside." We'll see about that... Peel the feet off, remove the 5 screws and look inside.
At first glance, I see what appears to be a ground strap that is not connected properly. It looks like a dry solder joint due to insufficient heat on the thick strap. This is almost certainly not the cause of our keyboard issues, but it will get fixed before the TS1000 is reassembled. 2 more screws to remove the circuit board and the problem is apparent.
I had thought that the ribbon cable was a separate set of wires that connected the membrane to the circuit board. However the damaged ribbon cable is part of the membrane keyboard. Fortunately, it broke right at the circuit board, leaving plenty of good ribbon cable.
Turning on the TS1000 is a bit disappointing. There is no boot chime, no clattering of disk drives, not even the 'click' of a switch. You just plug it in and it's on. Very appliance-like. What you do get is black text on white screen with a [K] cursor. "Now you're ready to use your Timex/Sinclair 1000!"
The keyboard layout of the TS1000 is interesting and makes writing a BASIC program quite intuitive. Each of the letter keys, when pressed at the start of a line, represents a complete BASIC command. The keys are well marked so the keyboard acts as a summary of all the available BASIC commands.
To start, I type:
P "HELLO WORLD"
and the screen shows:
PRINT "HLLO OL"
Hmm, that's not right. Clearly my membrane keyboard is having problems. About half of the keyboard works. The number row does not work at all, the second row works starting at the 'Y' key, the third row work starting at the 'H' key, and the bottom row works until the 'B' key.
I hit the Enter key and:
HLLO OL
is dutifully printed at the top of the screen.
A review of a TS1000 keyboard wiring diagram indicates that the keys that don't work are consistent with damage to several wires on the keyboard ribbon connector. It seems my "working" TS1000 purchase doesn't work so well. Apparently, this is a pretty common problem and should be an easy fix.
So you want a Timex Sinclair 1000 but need to hook it up to a modern TV (in the U.S.). Well, there's an RCA/phono jack on it, so you can just hook it up to the composite video connection on the TV, right? Not so fast! Phono plugs were used for many RF applications in the 80's. The video from the TS1000 is an RF signal that we would expect to see from a modern CATV/antenna cable (coax with an 'F' connector). We need an adapter to plug it into the CATV/antenna jack of a modern TV. The adapters provided with the TS1000 won't work. Fortunately, you can buy the correct 'F'/RCA adapter from RadioShack for less than $4. This adapter plugs into the back of the TS1000 and you can use a standard CATV/coax patch cable to connect from the adapter to the TV. Then set the TV to channel 2 or 3 depending on the position of the channel selection switch at the bottom of the TS1000.
You can modify the TS1000 to output composite video, but the RF signal is good enough for most purposes.
Ok, now you know you can buy a TS1000 for less than $40, and you know how to hook it up to your TV. So, if you don't have one, go out, get one, and join me for the RetroChallenge!
Yes, the power is overwhelming.
The Timex Sinclair 1000 is pretty much a Sinclair ZX81 made for the North American market with 2kB of RAM and NTSC RF video output. Like the ZX81, it has a 3.5 MHz Z80A 8-bit processor and 8kB ROM with a BASIC interpreter. Its quite simple and very small compared to an Apple II. It is about the size and weight of a Kindle Fire HD. At a list price of $99.95 when introduced in 1982, it also cost about the same as a Kindle in 2013 dollars. Its small size and low price led to some limitations, most notably the small membrane keyboard, limited graphics and no sound.
I don't think I had ever heard of a Timex Sinclair until very recently, most likely due to following some of the RetroChallenge entries. You can get a working TS1000 for about $40 on ebay without trying hard. I found a fairly complete setup, advertised as working (more on that later), for less than $25 shipped so I just bought it. A Zilog Z80 based computer at such a low price was too much for me to resist. Considering the prices Apple IIs are fetching on ebay, the TS1000 is an affordable introduction to retro-computing, just as it was an affordable introduction to modern computing back in the 80's. This is the first vintage computer I have owned that isn't an Apple. I don't think my marriage can afford me expanding my computer inventory, so I don't plan on keeping this guy very long. (It is small enough to hide inside an Apple II though...)