• Scam Alert. Members are reminded to NOT send money to buy anything. Don't buy things remote and have it shipped - go get it yourself, pay in person, and take your equipment with you. Scammers have burned people on this forum. Urgency, secrecy, excuses, selling for friend, newish members, FUD, are RED FLAGS. A video conference call is not adequate assurance. Face to face interactions are required. Please report suspicions to the forum admins. Stay Safe - anyone can get scammed.

S100 Rabbit hole

jcdammeyer

John
Premium Member
A while ago, while attending a zoom meeting of S100 people I found out about an S100 board that could be a stand alone CP/M computer. Never to walk past an open rabbit hole I ordered the $15 US board. With shipping it came to $30 US and I still had to buy parts. The key was the Z180 processor which I ordered from AliExpress and it arrived a couple of weeks later.

Now you might as well know the real reason for diving into this rabbit hole was that I had a PLCC socket that has been sitting in a drawer for about 20 years. So what I'm really doing is using up the socket by adding lots of parts. This is what it will look like as a stand alone without the actual connection to the S100 bus motherboard. (This one is from the web site).
Z180 SBC V0.7 (FINAL).jpg

Now everyone knows rabbit holes have side passages. This has the white label on it. It's a 32 pin 512K FLASH memory for a processor that normally only talks to 64K. On this board there's a paging system so 512K of flash and 512K of RAM can be organized but of course to make the board work the FLASH memory needs to be programmed.

The hex files are available and a programmer can be ordered from AliExpress for about $150. However they aren't promising that it can work with WIN-10 or WIN-11 and the last time I bought a very expensive programmer I was screwed badly by the company. Two months after I received it out came WIN-95 and the company decided not to support that programmer on WIN-95. I was out $1000. I kept an old WIN-NT system around and used it to restore the OS9-68K system last year.

Well not wanting to be screwed again I decided instead to build my own programmer using an Arduino and a prototype board. There were some examples out there but not exactly what I wanted. So here it is wired up and monitored by my scope.
Proto-Operational.jpg

The bottom is pretty ugly but it's a prototype that will probably be used only a few times. If more than that maybe I'll make a PC board and 3D print a box.
Proto-Wired.jpg

And it works. COM5: through a terminal program shown below is the verbose setting. There's a compact setting for sending code down to it.
Flash Memory Programmer Version 0.9
Commands: (Parameters are hex)
E Erase complete device
I Read Chip ID
Px,b Program byte b into address x
Rx[,n] Read Byte at address x for optionally n bytes
Sn Sector n Erase
?,H This help screen
Manufacturer_ID=0xBF, Device_ID=0xB7
Program data 0x73 into address 0x00050
Data 0x73 read from address 0x00050
ACK
Data 0x73 read from address 0x00050
To send the code I still need to do some work on this application written in Lazarus Free Pascal so it will work on PCs, MACs and Linux systems.

1700372272085.webp

Anyway, tonight I finally got it reading the Manufacturer ID code and Device Code (size). Having a 4 channel scope with a 16 channel logic analyzer has been really handy.
So now sipping a scotch and relaxing.
 
So now sipping a scotch and relaxing.

You deserve it!

I'm normally a bit of a hoarder for old tools and electronics. The day I put my big S100 out at the curb was a very sad day that I have regretted ever since. Once upon a time, I knew every single line of code for CP/M and MSDos inside out.

The use of an Arduino is simply inspiring.

Well done John, well done indeed!
 
Me too ... not to mention the 8" drives

There is a possibity that I still have the drives. It's either that or I left them inside that drop dead gorgeous S100 frame I put out at the curb....... Maybe I'll look just to refresh my memory - no pun intended.... LOL!
 
Remember this is kind of like having the left hand threaded rear wheel nut for an MG-TC sitting in a box and deciding you need to build up the rest of the MG around it so the wheel nut won't be wasted.:rolleyes:
 
Last edited:
Now, who would do that? I once bought a spindle nose protector that didn't fit my lathe, some time later, I bought a set of collets, nope they didn't fit anything I had either. A couple years ago I picked up a stray old 13" south bend, I now have a purpose for all of the above....:rolleyes:
 
By about 1AM yesterday I had results. The Lazarus Free Pascal program downloaded 0x2045 bytes (8,261).
1700543843216.webp


And connecting to the programmer with a serial port program I did a dump and sure enough the last part of what was programmed appears to match.
1700544105920.webp


Then today I added the READ command with the size currently fixed at what I programmed. Later I'll add dialog to enter the actual amount to read.

1700544351857.webp


ERASE command is in place and just working on VERIFY now.
With all that done I've started assembling the Z180 S100 board. Theoretically it should boot and say hello. Then I can get on with other project 42's.
 
John you’re amazing.
I'm going to expand that to every & anybody that can make heads or tails from any of this thread or others like it....it's a rabbit hole I can only peek over the edge with a bewildered gaze...you folks amaze me....give me PaulL's post drill where I can watch the gears mesh & shafts turn and I will understand it in short order but this stuff just makes my head hurt!!
 
I'm going to expand that to every & anybody that can make heads or tails from any of this thread or others like it....it's a rabbit hole I can only peek over the edge with a bewildered gaze...you folks amaze me....give me PaulL's post drill where I can watch the gears mesh & shafts turn and I will understand it in short order but this stuff just makes my head hurt!!
I think that you and I are floating in the same boat..... I want to understand, it's just not a language that I speak....:rolleyes:
 
I'm not even sure why I'm building this in the first place. If I want computer modules to control things there are the very low cost Arduino clones and modules with WiFi and Blutooth. And then I have a bunch (20) of returned and repaired but not resaleable gold box modules like these:
xIM_xMU.jpg
The gold box modules have analog and relay outputs and isolated input all controlled with a very powerful digital signal processor and communicate with either RS485 or CAN bus. The white one has 6 relay drivers, 6 inputs and 5 CAN channels along with a RS485+USB port. It's like the master controller and the intention is to use if for my garden lighting and Christmas Light show software. Project #42.

The last thing I really need is more computer boards. This Z180 S100 board is really the first true hobby project in decades. No purpose other than to stimulate my brain in areas that are becoming dormant because I'm no longer working in that area. And over the last few years all I do in the metal shop is update the machines in some way. Even those are unfinished projects. Haven't built anything out of wood for years either.

The business of programming the flash memory for the Z180 S100 project would be as easy as ordering a programmer from China that I'd likely use once for this project and then not again. But the $150 or so and maybe not working with WIN-10 when I had parts on hand and only had to buy $10 worth of parts seemed like a good frugal way of doing things.

The software is just Arduino software for the target programmer and there are kits for very little money that lets one learn how to program and play with all sorts of I/O.
Yes, the learning curve is steep but then there's tons of support out there too.

I didn't have to write a windows app to do this. Could have used a terminal program that can download files and let the Arduino do the work. But it's been a while since I've written windows software from scratch. Lately all I do is maintenance on stuff I've written.

And for projects that I did many years ago but could be done with that Arduino experimenter kit here's a video that uses an ultrasonic distance detector at the bottom of the stairs and an interrupted light beam at the top of the stairs. It's somewhat unfinished with respect to wiring and covers but it works lighting the stairs at night automatically. Shaky low res video from 2011.

Can't believe it's been 12 years since I installed the stair lights.
 
I've made some progress today. Since this is a hobby project the web page is in need of updating. For some reason the processor just hung and nothing happened. Turns out the design was missing a pull up resistor that normally isn't an issue because a chip is installed for the full S100 version.
Anyway, once I got past that this is what I get from it now.

1700715409668.webp


Just need to install the rest of the bypass capacitors and figure out what file to put on the MicroSD card and I should have the CP/M OS up and running on it. And with that then Pascal, Basic, Fortrain, FORTH, Wordstar Editor not to mention some games.

1700715820060.webp


I did end up programming the flash memory 3x to diagnose the issues. So handy to have built up the flash memory programmer. Final software that goes into it will be a more extended monitor and the bios for the CP/M system.
 
Final update on this for a while. The full blown 512K software image programmed (after a few false starts) into the memory chip but it reported a ROM error and wouldn't go any further. Not sure why.
I then populated the rest of the board so I wouldn't have bags of IC's that I bought for this sitting around.
AllDevicesInstalled.jpg

And surprise surprise. Suddenly the ROM Checksum error went away and I have a working board. So now I have to get back to work-work and finish documenting and cleaning up the programming code because in a week I won't remember what I did or why.
 

Attachments

For anyone who cares I've reached the point where I think I can stop with this for a while although it's been fun. I now have the MicroSD card with both a FAT partition and a CPM partition. I can pull the card and use sneakernet to copy files onto it from my PC. Then insert into the Z180 SBC and with a special FAT.COM program put them into the CPM partition on one of a bunch of different drives.

Now only that I also can now program the flash memory from a FLASH4.COM program.

I found a Turbo Pascal 1.0 on line (I have an original 8" disk) and put it onto the CPM drive. Here's the result.

C>type test.pas
Program Test;
begin
writeln('Hello World');
end.

C>test
Hello World

So for now I think until I procure a better quality MicroSD (this one is very old from a camera and a bit worn I think) and figure out the terminal commands to make Turbo Pascal work more easily I'm going to put this aside.

The Robot Arm parts are all here and it's time I make some metal bits for it. Not only that there is now an AR4 Rev 2 with better precision... sigh...

Plus my wife gave me an Advent Calendar with twentyfour 5"x5" puzzles with 50 pieces each. So starting December 1st I get to fall down yet another rabbit hole for 24 days. Oh and the puzzles are all of decorated donuts so I think I will be very hungry all month.

And yes. I'm allowed because this section is "Not Metal Related" ;)
 
Back
Top