• Please review our updated Terms and Rules here

PD68 68000 based VME system running Idris

I've built a lot of 68k SBCs (described in the "Home Brew" Group on this site), and have gotten CP/M 68k running on most of them. I'd like to be able to move beyond that, hence my interest in this code.
The Idris kernel can be ported using the code available in the file system image. You need to provide some sort of startup code and device drivers - these can be derived from the existing code (a.s is the startup code). This code is then linked with the binary kernel object file (res.68k) to create the Idris kernel. As I mentioned above, my emulator can run the original Idris compiler and linker from the disk image now.

Together with Skip Tavakkolian, who contributed to the Idris port to the Atari ST (see this 2017 post to the 9fans mailing list) back in the 80s, I'm trying to convince the (we assume) current Idris IP owner, Tasking, to release the Idris source under an open source license. However, we don't have the source, unfortunately, and it's unclear if there are copies left at Tasking. No response so far, I guess I need to make a trip to Munich :).

Skip managed to boot his old Idris floppy images in the Hatari ST emulator and created a video of the boot process at https://photos.app.goo.gl/ykedBD6oWBZGYf7W9, which he allowed to link here. Currently, there seems to be a problem with the ACSI hard disk controller emulation, so installing Idris to a hard disk partition fails at the moment.
 
Last edited:
>> There's a function at 0x00f00132 which outputs a string (pointer in a0) to the UART.

Ahhh ... I see. I never would have guessed if you hadn't pointed me at it! So I take it that the code at e6 initializes both ports of the UART, and then does a little stall loop at the end before returning. I wonder what kind of UART (DUART?)?

Thanks for the pointers!

Roger
 
So I take it that the code at e6 initializes both ports of the UART, and then does a little stall loop at the end before returning. I wonder what kind of UART (DUART?)?
Yes, the code at e6 initializes both UARTs (first one at 0xf87981, second at 0xf87941) to 9600 8N1. The UARTs are Motorola/Signetics 2661 (also labeled as MC68661).

http://matthieu.benoit.free.fr/cross/data_sheets/SCN2661.pdf

These functions are a bit special, since they expect register A1 to contain the return address. I think this was done to enable the printing of error messages without working RAM. A standard JSR would push the return address onto the stack, which would be difficult without RAM :).
 
The computer is mentioned quite often in the news letter of the PD68 club; MPUlaren (The name is sort of a joke on the "hempulare" which is slang for someone that does stuff on his own).

In MPUlaren 1986:2 I found this ad:


Screenshot 2025-08-29 at 12.08.49.png

Haven't been able to find much about the person Öyvind Moe and the company name "Computer Media Products AS" is far to generic to turn up anything useful.

Thers is an archive of MPUlaren newletter here.
 
Last edited:
We finally have an update on Idris, though not on the PD68 so far.

Skip Tavakkolian was involved in porting Idris to the Atari ST in the 1980s (see the Usenet posting linked below). I knew Skip already from his work on Plan 9 and he confirmed that he still had working disk images and documentation for the Atari port. The related disk images and scanned manuals are now available on github.

However, actually running Idris turned out to be more difficult. Idris worked nicely in the Hatari ST emulator when running from the boot floppy, but complained about an "interrupt scanner timeout" when trying to access the ACSI hard disk. Hampa Hug's ST emulation in PCE worked significantly better, but also show the timeout message once in a while.

A thread on the hatari-dev mailing list confirmed our suspicion that the interrupt problems resulted from a shortcut in the emulator which delivered data requested via DMA/ACSI immediately, something which takes significant time on a real spinning hard disk. Compared to most Atari hard disk drivers, which poll for the completion of a DMA transfer, Idris waits for an interrupt signaled by the MFP (M68901). In addition, the driver seems to clear the interrupt condition after sending out a subsequent request for data. Since the interrupt arrived immediately, this results in the interrupt for the data just requested to be deleted, which results in the timeout message.

Christian Zeitz diagnosed the problem in details and provided a patch for Hatari which enables installing Idris to an emulated ACSI hard disk image. This also allows us to compile the kernel and run the X10 (not a typo!) window system that was available for the Atari ST Idris port (see the attached screenshot). So this enables us to run a complete 68k-based Idris in emulation now! This should be binary compatible with the PD68 version.

Running on a real ST is still problematic if you don't have a working magnetic disk. I tried to use the ACSI2STM SD card-based hard disk emulator and couldn't get this to work. I assume that there also might be timing issues involved here, but will have to confirm this.

While investigating the Idris port and history, I developed a number of rudimentary tools for Idris user space and full system emulation (of the PD68, but a lot of support is still missing such as an emulation of a SCSI/SASI hard disk connected to the 68230 PIA chip of the PD68) as well as a tool to extract symbols from Idris a.out-style binaries. I still have to clean up the code and fix some things and will publish the tools then.

There's an older 2.x version of Idris disk images available on bitsavers, which use a significantly smaller kernel than the 3.x versions for the ST and PD68 here. I confirmed that it's also possible to build a 2.x Idris kernel from the partial sources and object files on the 2.x version, which results in a much smaller kernel image (around 50kB instead of 100kB for 3.x).

This might also allow some interesting new ports of Idris, e.g. to 68328/Dragonball-based Palm Pilots or the TI92 calculator series...

Some links:
idris_x10.png
 
I may be of a little help regarding the PD68 build, I do not have the hardware, but it was I that delivered the Idris 3.x to PD68, I still have some documentation (Idris for 68k) and some other data.
 
Wow. That is amazing!

It would be very interesting to scan the documentation and dump out the contents of any media that you have.

I have floppy drives and a good page feed scanner that can do the work.

Are you located in Sweden?
 
The binder I have is named 68000 Monoboard.
It has several sections:
1. Description of software and hardware
2. Strappefelt (Norwegian)
3. Schematics (A3)
4. MVME101BUG DEBUG PACKAGE USERS'S MANUAL maybe on bitsavers? MVME101BUG/D2.
5. Device driver sources and listing (1985)
6. Updates and debug stuff
7. EMACS? An EMACS-like editor in C for UNIX

PD68 install documents install/description and configuration in this one.
The schamatics are in A3 format will take a little bit longer to scan.

So this is the section 1 and section 2 of the binder.
 

Attachments

Whow, this is great and it seems we're getting a lot of Idris 68k information collected!

Skip Tavakkolian has his Atari ST Idris disks and manuals up on gihub (https://github.com/9nut/IDRIS-OS-for-Atari-ST), the Hatari Atari ST emulator was patched so it can run Idris (the Idris driver is a bit "unusual" in terms of handling ACSI/DMA interrupts – see https://listengine.tuxfamily.org/lists.tuxfamily.org/hatari-devel/2025/09/msg00007.html) – oops, I just noticed that I wrote about this above, sorry – and there was some effort to find working Idris floppies or image a hard disk for a Sage-IV system that was used to develop the Amiga (https://forum.vcfed.org/index.php?threads/sage-iv-and-stride-at-vcf-west-in-amiga-exhibit.1253501/).

I am also in contact with the (suspected) current copyright owner of Idris, Tasking GmbH in Munich/Germany. They are very supportive but didn't manage to find any information on Idris so far – not surprising after three company takeovers, I'm afraid.
 
Last edited:
Btw., one of my former students is now studying for his master's degree at Chalmers and I guess he would be willing to help with the effort of scanning...
 
The first PDF (PD68-install-2.pdf) seems to solve the question on how the PD68 booted: "Kortet innehaller bade en UNIX-liknande kärna (IDRIS) och debugger (monitor) i E-PROM" ("the card contains both a UNIX-like kernel (IDRIS) and debugger (monitor) in E-PROM" – now the two years working at NTNU in Trondheim made some sense, after all :)).

With the schematics we could even build a clone of the PD68, this would certainly be nice... people already created clones of the Apple Lisa 2, Mac Plus and Atari ST, so that's not impossible considering the PD68 didn't use any exotic custom chips if I didn't miss any on the board photo (though we would also need the PAL sources in case they are read protected).
 
The schematics pdf seems to be too big, so I sent it to Mattis, I will try to upload it to a github account later.
Maybe I will upload a lowresolution.
/Bengt
 
Looking at the schematics, I wonder how easy it would be to port that IDRIS/monitor ROM to other simple 68K boards.

I have for instance this 68020-based board with 512KB ROM, 1MB RAM, a 68882, a 68230 and a 68681. Originally intended for some embedded application, but looks like it's just a general-purpose development board shoehorned into that particular use-case. It doesn't have a disk controller, but it shouldn't be too hard to throw together something.
 

Attachments

  • DSC_0339[1].JPG
    DSC_0339[1].JPG
    2.3 MB · Views: 8
It doesn't have a disk controller, but it shouldn't be too hard to throw together something.
The PD68 also doesn't have a dedicated disk controller – if the 68230 on your 68020 board isn't used for any specific purpose, the simple SCSI bus adapter on the last page of the PD68 schematics should work for this board, too. The board seems to have 1 MB of SRAM, which is sufficient to run Idris.

It might be easier to port a version of the Idris kernel instead of the PD68 ROM to your board if the firmware of that board already supports some sort of loading a kernel, e.g. using S-records via a serial line.

We have Idris example device drivers and linkable kernel objects for versions 2 and 3. The major difference of the 68020 is the exception stack format, but it seems that Idris 3 might be able to handle this already. Drivers for the 68230 and 68681 are also available.
 
  • Like
Reactions: per
The PD68 also doesn't have a dedicated disk controller – if the 68230 on your 68020 board isn't used for any specific purpose, the simple SCSI bus adapter on the last page of the PD68 schematics should work for this board, too. The board seems to have 1 MB of SRAM, which is sufficient to run Idris.

It might be easier to port a version of the Idris kernel instead of the PD68 ROM to your board if the firmware of that board already supports some sort of loading a kernel, e.g. using S-records via a serial line.

We have Idris example device drivers and linkable kernel objects for versions 2 and 3. The major difference of the 68020 is the exception stack format, but it seems that Idris 3 might be able to handle this already. Drivers for the 68230 and 68681 are also available.
Aah! Yeah, that's most likely a much easier solution.

I am pretty sure the 68230 is just hooked up directly to the card edge connector. This board came out of a decommissioned laser-based particle size analyzer, so the IO signals would for sure have been of use elsewhere in that box.
 
Back
Top