• Please review our updated Terms and Rules here

IMS Series 8000 (5000SX?) Project

Okay, so I think I'm slowly but surely making some headway on this, though not as far or as fast as I'd like. Today I used a little Arduino widget to test all of the 4116 memory on both memory cards and didn't find any errors. I also used a T48 USB EPROM burner widget to test all of the 74x logic ICs on the CPU card, the IO cards, the memory cards, and the floppy controller. In addition to verifying that the 74LS240 on the 450 CPU card that I discovered was bad and preventing the Z80 from releasing from reset, I also found a 74LS243 and a 74LS38 on one of the IO cards that was bad. I know a lot of people question (probably for good reason) the value of those testers, but a) the logic tester *did* find two bad chips, and b) it gave me a good excuse to pull and reseat all of the chips, and clean up the legs on a couple of chips that I discovered had some *serious* patina on them.

I also spent a bit of time and went over ALL of the jumpers carefully, to make sure I hadn't missed anything, and sure enough, when I mod'd the two IO cards to support 2732 chips, I didn't see that I had to cut the etches on JF, so it wasn't properly shunted for the 2732. Once all of this was done, I was now seeing the system power up, the memory parity light come on a just a bit, and then (with the IPLALL ROM in the IO card) go out. Further, if I *disable* the ROM on the 440 IO card, I do *not* see the memory parity light shut off. I think this is a good sign that the EPROM code is actually loading, and as you say, @new_castle_j, it then resets the parity error circuit and turns off the error light.

This is all the good news. I think it's a lot further along, and I'm (reasonably) more confident in the state of the hardware than I was. Having said this, it still does *not* poll the floppy drive. This might be because there's still something wrong with (or misconfigured) on the 401 floppy controller, it might be because the 401 floppy controller doesn't like the fd50to34 cable convertor widget I'm trying to use with it, and it might be because I have the jumpers on said-widget incorrectly set. It might be all of the above. :(

Thank you so much for the new version of Minimon x. It's not QUITE working, but it's at least providing the first output of ANY type I've seen (aside from a memory parity LED) from this system!

I've tried all combinations of both IO cards and memory cards. I believe I'm hooking it up correctly, based on the manual. I've got a FTDI USB to TTL serial cable with the pins broken out. Pins 1 through 5 on the 12 pin connector IO card are: TX, RX, CTS, RTS, and GND. From 1-5, I'm hooking up the FTDI cable as follows: RX, TX, RTS, CTS, and GND. (So like a null modem cable: flipping TX/RX and CTS/RTS.) I just get a little bit of gibberish when it connects, and then when I press one key I get a little more gibberish and then nothing else. It's acting like it's unhappy with the serial settings or baud rate, but based on the text of the monitor code, it should be set for 9600,N,8,1 which are the settings I'm using. (I did try a couple of other common baud rates to see if any of them worked, but had no luck.) I see the same thing in cu on the command line, Serial in macOS, and Tera Term on Windows.

I *think* this should work, but who knows. Tomorrow I'll try to wire up a proper serial port connector for it and try it with some of the other usb serial adapters I have. Like I said, SLOWLY making some progress, I think.

It's...alive?
Screenshot 2024-03-21 at 10.58.53 PM.png
 
9600 8 N 1 is the correct baud rate for using the Minimonx ROM. Here are some pictures of how my 440 IO board is wired up to a USB serial adapter, just follow the colors of the wires. Only 3 wires are needed.

IMG_20240322_092007_763.jpgIMG_20240322_092148_910.jpg
 
@new_castle_j Hrm. Okay, so you're not using CTS/RTS, and you're flipping (as I expected) RX and TX and just hooking those up along with ground. I'll pull out a female DB9 and wire it up the same way and try some other USB serial devices. I've tried this configuration (flipped RX/TX with ground) with no CTS/RTS with the USB serial adapter I've been using and I get the same gibberish on the screen. Maybe there's something up with that serial adapter. The good news (I guess?) is that the behavior is identical between both IO boards, so I think whatever is going on does not seem to be related to a specific IO board.

I have my 440 IO boards set up exactly like yours, with the exception of JJ, JK, and JL. You have the newer version of the boards which remapped the interrupts those are defining. For my older board, JJ is I7 for RTC, and JK and JL are I6 for communications. When these boards showed up, JH was jumped on top, which I believe means the external clock on the S-100 bus, rather than using the on-card clock. I've tried it both ways and it didn't seem to change anything.
 
Last edited:
WHAT?! :D It looks like it must have been an issue with that USB to serial adapter! Houston, we have...well, we have a really old computer, I guess, but it's STARTING to work! :DScreenshot 2024-03-22 at 2.22.33 PM.png
 
Okay, so I have verified that both IO cards work with the monitor ROM. I've verified that both memory cards work, and pass the monitor ROM's 'RamTest'. I need to get some replacement 74x ICs for the second IO card before I can leave it in full time, but I don't really need it at the moment. I checked and I had the drive select for the 5.25" drive set to drive 1, not drive 0. Once I set it to drive 0, with the IPLALL ROM installed (but NOT with the monitor ROM) I see the floppy light come on and stay on when I turn on the computer. I assume it would *really* like to find a CP/M diskette to boot off of. I think I'm at the point where I need to get some diskette images and figure out how I can get them onto some 5.25" media. I have a 5160 PC XT with a 360k floppy and a PC AT clone with a 1.2 MB floppy in it, so I *think* I should be able to use one of those to image a bootable diskette. This is where I'm *really* starting to get into uncharted territory. :)
 
I don't have a 5.25" CP/M Boot disk, but I'm attaching here a Dunfield disk image of the 8" CP/M boot disk, along with the CP/M boot ROM for the 440 I/O controller. The ROM is a 2716, I include it just in case, I simply don't remember if IPL-ALL also handles CP/M boot. I'll have to put some thought into how to get this onto a 5.25" disk or perhaps make it work with the Gotek floppy emulator.
 

Attachments

  • IMS CPM Boot.zip
    122.8 KB · Views: 4
I think the best scenario would be if your gotek could emulate an 8" drive. I have a lot more 8" floppies for this system that I can share. I suppose you could configure an 80 track 5.25" floppy drive to work like an 8" if you want to have a physical floppy drive on your system. Can you post a picture of the 5.25" to 8" adapter that you have?
 
I think the best scenario would be if your gotek could emulate an 8" drive. I have a lot more 8" floppies for this system that I can share. I suppose you could configure an 80 track 5.25" floppy drive to work like an 8" if you want to have a physical floppy drive on your system. Can you post a picture of the 5.25" to 8" adapter that you have?

Yeah, that's pretty much the conclusion I've come to as well, especially after reading some stuff that indicates (possibly, maybe, dunno, clear as mud?) that in some instances you need to convert PC 5.25" drives to run at 300 RPM instead of 360 to get them to work correctly with 8" controllers. I spent a bit of time last night and this morning getting a couple of goteks I bought a while back mod'd with OLED screens and rotary encoders to make them easier to use, and adde the HxC firmware to them. (I have others that have flash floppy, I just wasn't sure which one offered the best support for pretending to be an 8" drive, the few people I've read about who've done it seem to have used HxC.)

I converted that disk image that you sent last night to an HFE and tried it with a new build of the MiniMonX ROM (modified to support the 80h address that this C00400 floppy controller uses, rather than the C0h address that the 430 controller uses) and it's 'Boot CP/M' feature. That seemed to do nothing, not even ping the floppy. Then I tried to burn a copy of the ROM that you sent along with the floppy image. I believe you said that was for 2716? I think it might actually be for a 2708. (It's 1k in size.). I don't have any burnable EPROMS except 2732s, so when I built that ROM, I added duplicates of the binary content right after the 1k, 2k, and 3k marks. I know you have to do that when building PC option ROMs (and arcade ROMs) when you use a larger size than the ROM was built for, and I figured it couldn't hurt. That didn't seem to ping the drive, either. The IPLALL ROM seems to get the furthest with regards to floppys. It's definitely polling the drive, but not finding what it likes.

This is the FD50to34 adapter that I'm using:

IMG_9184.png

Because the HxC floppy utility showed that the original diskette was single sided, I have the adapter jumped to force reporting of a single sided disk to the controller. The drive motor is forced on, I think, but that doesn't mean anything to the goteks. it just gets ignored, I believe. (I think I've tried every combination of the jumpers at this point and it doesn't seem to matter.). I have a bog standard 50-pin SCSI cable (the only 50-pin cable in the house, but its straight through, so it shouldn't matter) going from the controller to the adapter, and then I have the drive hooked up to the no-twist side of a standard PC floppy cable. The gotek is jumped for DS0.

I'll take any and all floppy images you have! lol. especially if you have an image that you know should just work with the IPLALL image, because that's the one that I have the most confidence in, in terms of it seeming to be doing what it's supposed to do.
 
More mucking around with the ROM today. I did manage to build the 'monitor lifter' file, which loads at 0000H and then moves the entire monitor itself up to C600H, presumably to get it out of the way of CP/M and other programs? I've now got a 'out of the box' version working without any modifications, which means I can start modifying it. There are a bunch of modules in there that aren't hooked up to the menu, so I thought I'd see if I can get some of those working.

I also managed to verify that the load-over-serial functionality was working by writing a simple 'hello world' program that worked with the serial console. I was able to load that across the second serial port and into the system memory, and then execute it. I'm still figuring out z80 assembly, so there was a quite a bit of trail-and-error.

I also pulled down and built a copy of 'disk-utilities' so that I could try another hand at converting that CPM IMD file to HFE. It worked (the conversion program), but neither the 'CPM' ROM nor the IPLALL ROM wanted to boot off of it. IPLALL hits a few tracks at the start of the disk and then rinses and repeats without ever getting anywhere.
 
I have a gotek here, but it's got the FlashFloppy firmware which I think it not as flexible as other firmware for the gotek. Isn't there some configuration setting that has to be set to define the RPM of the emulated disk?
 
I have a gotek here, but it's got the FlashFloppy firmware which I think it not as flexible as other firmware for the gotek. Isn't there some configuration setting that has to be set to define the RPM of the emulated disk?
I believe for HFE format the drive configuration information is stored in the HFE file itself. But for flash floppy you can create an IMG.CFG that will manually override those settings for IMG, IMA, and DSK type images: https://github.com/keirf/FlashFloppy/wiki/IMG.CFG-Configuration-File
This is what the HxC Floppy Emulator software I used to convert that CP/M IMD you posted earlier showed on the converted HFE:

1711385183984.png

I honestly don't have a lot of experiences with the HFE format, though. For PC images I've always used raw IMG files, and the only other thing I've really used the Gotek on is the amiga, which uses .adf files. I tried converting that IMD to a raw IMG file and flash floppy was *very* unhappy with it and gave me an error 31 for 'bad image file'. I think I may have only tried that in the HxC emulator tool I linked above. I also have the disk-utilities software installed, maybe I'll see if it can do a better job converting to IMG.
 

Attachments

  • 1711385023636.png
    1711385023636.png
    80.8 KB · Views: 0
Last edited:
...looking at that, I'm wondering if the bitrate isn't the issue? 500kbits is standard on (HD?) PC floppies, but I wonder if it's too fast and that needs to be 250kbits for this S-100 controller? (Edit: on the HxC firmware I can override (some of) the HFE settings. I tried forcing it to 250kbits and it didn't change anything.)
 
If you want to convert the .IMD image to a RAW binary or DSK, you should use the Dave Dunfield utility, I believe it is IMDU.COM and the command is IMDU /B for binary output or something like that. I'm not in a place right now to give all of the details, but hopefully there's enough breadcrumbs here to get the idea. The CP/M boot disk is in IBM 3740 Format and would have a bit rate of 250Kbits/s, it is from single sided, single density media. I don't know if the gotek should be set to that same rate or not.
 
Yeah, I had tried creating one using IMDU, too, which I have running on the AT clone. It had the same result as the .img files the other utilities created and flash floppy just complains with an error 31.
 
So I went back and modified the MiniMonX Monitor ROM to use the 80h address that my IMS 400 Floppy Controller users, rather than the C0H address that the 430 uses (which is what the monitor ROM was set up to use). Now when I turn on the system, I see the 'activity' light come on for a bit while the floppy controller checks the gotek out, and then when I hit 'Boot from CP/M' I also see it polling the drive, but then I get a 'read id field address mark error'.

1711407087508.png

I'm *fairly* certain that these are all correct. (The first section checks out what's in the manual. I didn't verify the second section, but the 400 and the 430 both use the 765 controller chip, so I'm pretty sure they're the same.)

Code:
;; Diskette controller and DMA port equates (uPD765)
;;
DSKB:    EQU    080H        ;  base FDC port address (configurable)
CH1DMA:    EQU    DSKB+2        ;; channel 1 DMA
CH1TC:    EQU    DSKB+3        ;; channel 1 terminal count
DMAST:    EQU    DSKB+8        ;; DMA status and commands
DSEL:    EQU    DSKB+0AH    ;; drive select port
ICS:    EQU    DSKB+0DH    ;; on-board interrupt command/status
FDCMSR:    EQU    DSKB+0EH    ;; fdc main status register
DDATA:    EQU    DSKB+0FH    ;; disk data
;;
;; uPD765 diskette controller instruction set
;;
SCYCMD:    EQU    03H        ;; specify drive parameters
DRDCMD:    EQU    46H        ;; double density read data
D2RCMD:    EQU    0C6H    ;; dbl density, dbl sided read
SDSCMD:    EQU    04H        ;; sense drive status
RECCMD:    EQU    07H        ;; recalibrate
SISCMD:    EQU    08H        ;; sense interrupt
RIDCMD:    EQU    0AH        ;; read sector ID
SKCMD:    EQU    0FH        ;; seek command
SCYCMD    EQU    03H        ;; specify drive parameters

This section, however, feels like it might be different between the 5.25" drive that was in the Series 5000 that the guy who wrote the monitor ROM has and the 8" that the gotek is pretending to be for the sake of the floppy image. (Note: not saying that they're wrong, just saying that I'm not sure if they're right.)

Code:
; FDD CONSTANTS
SRT8R:    EQU    (16-3)        ;16+15        ;; 3 ms step rate (HUT=240 ms)
HLDT8:    EQU    (18)        ;2        ;; 36 ms head settle time
XLT:    EQU    0        ;no sector translation for tracks 0,1

A little bit above that, there's this line in the variables being set for the CP/M load which caught my eye, because it specifically calls out the 5.25" drive. I don't know if that needs to change for the floppy image from the 8" drive I'm using.
Code:
SYS$LEN EQU    2000H        ; System length for 5.25" diskettes, CP/M 2.2

More poking to be done...
 
Last edited:
I'm posting some 8" TurboDOS boot disk images, give these a whirl and see if you can make some more progress with them. The TurboDOS boot process doesn't rely on a boot track like CP/M does, instead the ROM will parse the disk's file directory of a file named OSLOAD.COM and pull it into memory and execute, it doesn't matter where on the disk the OSLOAD.COM file is.
 

Attachments

  • IMSTD.zip
    354.7 KB · Views: 2
I'm posting some 8" TurboDOS boot disk images, give these a whirl and see if you can make some more progress with them. The TurboDOS boot process doesn't rely on a boot track like CP/M does, instead the ROM will parse the disk's file directory of a file named OSLOAD.COM and pull it into memory and execute, it doesn't matter where on the disk the OSLOAD.COM file is.
Thanks! I'll throw in the IPLALL ROM and see what it does with those. I assume disk 1 is the 'boot disk'? This is TurboDOS 1.4?
 
Hrm. I see the same behavior with that image that I see with the CP/M image on the IPLALL ROM. The ROM activates the drive, look at the first 8 tracks very quickly, then the drive activity light goes off and after a few seconds it does the whole thing again. Just repeats that cycle. I see the same behavior with both Gotek firmwares (flash floppy and HxC).

I swapped out the 50-pin cable and the 34-pin cable just to make sure there wasn’t an issue there. I also ran through the jumpers again on the fd50to34 (and even tried the other fd50to34 just to make sure there wasn't an issue with that) and didn’t see any changes. The only jumpers on the 400 are related to recomp. I tried each setting but (as expected) it didn’t like it. I also burned a second copy of the IPLALL ROM just to be sure it wasn’t a bad copy (though I was certain it wasn’t).

I don’t know…I’m running out of ideas. Maybe the 400 FDC really just doesn’t like the Gotek? Maybe there’s something else going on with the card? I guess it’s possible that the image format software i’m trying to use is messed up, but other people using goteks with a-100 systems have reported success using the HxC converter software that I’m using to covert to hxe. I also did try a different utility with the CP/M disk and it didn’t work any better.
 
Back
Top