Newbie questions

83 views
Skip to first unread message

Béla Bréda

unread,
Aug 31, 2025, 2:30:57 PMAug 31
to UniBone
I'm starting to try out my Unibone on a PDP-11/05. The machine has 8 KW of memory. So far, only the memory expansion available under the "tm" menu works, but the "m i" command available under the "td" menu hangs and only runs when I press the "RUN" key on the PDP-11. What could be the reason for this? Am I doing something wrong?
The second thing I would like to ask is that the base address of the RL11 controller is 774400 according to the program, but the PDP-11/05 can only address 64 kB of memory, i.e. the range 0-177777. Does this cause any problems?
Unfortunately, I haven't been able to get the RL11 to work so far, but I don't know if there's a problem with the addressing or something else.
Can someone give me a step-by-step description that will definitely work with the PDP-11/05?

Jay Jaeger

unread,
Aug 31, 2025, 5:12:55 PMAug 31
to UniBone
Not sure what "program" you are referring to, but UNIBUS addresses are 18 bits, even on a PDP/11-05.  When a PDP-11 program uses addresses with the high two bits on, the address bits get extended, so if a PDP-11 program uses address 174400, it shows up as 774400 on the bus.  So, yes, your settings on the RL11 should be for 774400.  (But, here I will assume you are talking about a Unibone RL11 emulation.  Note that for that to work you need to use the right script and disk image - make sure there are no unexpected error messages.)

The top 4K or 8K bytes of addresses are reserved for I/O addresses because they get extended in this way.  If you don't have, or have not read the processor handbook relevant to the PDP-11/05 and the other PDP-11/05 manuals, available on bitsavers, I recommend you do so - it will help you make sense of things.

PDP-11/05 materials:                       http://bitsavers.org/pdf/dec/pdp11/1105/

Steps I take for a new machine:

0.  If at all possible, run the Unibone tests in an empty backplane, as recommended to make sure the Unibone itself is healthy.
0.  Make sure you have bus grant jumpers in unused slots, and also have appropriate NPG continuity and that the Unibone is in a slot with the NPG wire wrap jumper on the backplane removed.
1.  Before installing the Unibone, use the PDP-11/05 console to make sure all of the data bits work (Deposit a 0 at loc 0, a 1 at loc 2, a 2 at location 4, etc.)
2.  Before installing the Unibone, use the PDP-11/05  console to make sure all the address bits work using load address - deposit the address at each location:
     0, 2, 4, 10, 20, 40, 100, .... 100000 
3.  Examine the various device registers from the *PDP-11/05 console* : so, serial board, your RL11 controller if you have one, etc  (e.g., examine location 174400 and see what is there)
4.  Then do those steps 1-3 with the Unibone in place from the Unibone - but there you need to use the full 18 bit address, and also the Unibone memory tests, and if using RL11 emulation, check the device registers are accessible from the PDP-11/05 console.

Assuming your PDP-11/05 has some of its own memory, I would avoid turning on memory emulation in the Unibone at first until you figure things out, so comment out the relevant commands in the emulation script you use.

JRJ

Mark Matlock

unread,
Aug 31, 2025, 6:11:24 PMAug 31
to Béla Bréda, UniBone
On a PDP-11/05, RT-11 is a good place to start. It has plenty of room on RL02 drives which are emulated well by the UniBone.

In the /10.03_app_demo/5_applications/rt11.rl02/ directory are RL02 disk images with RT-11 and few other related things.
the .sh files there cause .cmd files to execute with the UniBone commands. Below is an example of the .cmd file that I
use for my PDP-11/05. The m i command at the end, will see how much memory you have and emulate the rest. Also,
the m ll dl.lst loads a RL02 bootstrap into 10000 so to run that from a M9312 console rom
you would:

@L 10000
@S

Good Luck,
Mark



# pdp1105.cmd
# inputfile for demo to select a rl1 device in the "device test" menu.
# Read in with command line option  "demo --cmdfile ..."
dbg c                   #clear debug log file
d                       # device menu

sd dl11
dis dl11                # use emulated serial console
p addr 776500           # 2nd DL-11 for serial printer or TU58
p iv 300
#p addr 777550          # 2nd DL-11 for Paper Tape
#p iv 70
en dl11                 #enable DL-11
# en kw11

#pwr                    # reboot PDP-11
#.wait 3000             # wait for PDP-11 to reset

en rl                   # enable RL11 controller

# mount RT11 v5.5 in RL02 #0 and start
en rl0                  # enable drive #0
sd rl0                  # select
p emulation_speed 10    # 10x speed. Load disk in 5 seconds
# set type to "rl02"
p runstopbutton 0       # released: "LOAD"
p powerswitch 1         # power on, now in "load" state
p image pdp1105.rl02 # mount pdp1105 system image file
#p image rt11v5.5_05.rl02 # mount image file with test pattern
#p shared_filesystem RT11 # now share RT11 image with local Linux directory
#p shared_dir shared_rl0        # relative path of subdir for shared files
p runstopbutton 1       # press RUN/STOP, will start

# mount Basic Sources in RL02 #1 and start
en rl1                  # enable drive #1
sd rl1                  # select
p emulation_speed 10    # 10x speed. Load disk in 5 seconds
# set type to "rl02"
p runstopbutton 0       # released: "LOAD"
p powerswitch 1         # power on, now in "load" state
p image basic.rl02      # mount basic source image file
#p shared_filesystem RT11 # now share RT11 image with local Linux directory
#p shared_dir shared_rl1        # relative path of subdir for shared files
p runstopbutton 1       # press RUN/STOP, will start

# mount RT11 GAMES in RL02 #2 and start
en rl2                  # enable drive #2
sd rl2                  # select
p emulation_speed 10    # 10x speed. Load disk in 5 seconds
# set type to "rl02"
p runstopbutton 0       # released: "LOAD"
p powerswitch 1         # power on, now in "load" state
p image games.rl02      # mount games image file
#p image scratch2.rl02  # mount image file with test pattern
#p image rt11v5.5_games_34.rl02 # mount image file
#p shared_filesystem RT11 # now share RT11 image with local Linux directory
#p shared_dir shared_rl2        # relative path of subdir for shared files
p runstopbutton 1       # press RUN/STOP, will start

# mount scratch3.rl02 in RL02 #3 and start
en rl3                  # enable drive #3
sd rl3                  # select
p emulation_speed 10    # 10x speed. Load disk in 5 seconds
# set type to "rl02"
p runstopbutton 0       # released: "LOAD"
p powerswitch 1         # power on, now in "load" state
p image rtuser.rl02     # mount image file
#p image scratch3.rl02  # mount image file
p shared_filesystem RT11 # now share RT11 image with local Linux directory
p shared_dir shared_rl3 # relative path of subdir for shared files
p runstopbutton 1       # press RUN/STOP, will start

.print Disk drive now on track after 5 secs
.wait   6000            # wait until drive spins up
p                       # show all params of RL3

dbg c                   # clear debug flag

m i                     # install max UNIBUS memory

# Deposit bootloader into memory
m ll dl.lst

.print RL drives ready.
.print RL0 content accessible in shared Linux directory "shared_rl0"
.print RL3 content in "shared_rl3"
.print RL11 boot loader installed.
.print Start 10000 to boot from drive 0, 10010 for drive 1, ...
.print Reload with "m ll"


--
You received this message because you are subscribed to the Google Groups "UniBone" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unibone+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/unibone/3a5e2ac7-90d1-4eb1-887b-1e7e4074c44en%40googlegroups.com.

Béla Bréda

unread,
Sep 1, 2025, 11:32:31 AMSep 1
to UniBone
Thanks for the information. I think I understand the addressing stuff.

By "program" I mean the "demo" application. After issuing the "ld" command, a list of emulated devices is displayed, along with the memory addresses used by the various controllers.

I tried the Unibone in an empty DD-11 backplane. The latch test basically ran, but it reported errors on the PA, PB, ACLO, DCLO signals. Is this normal or should I deal with it?

I have run punched tape BASIC on my machine before, so I think the hardware is fine.

I will try to see if I can read the emulated RL drive status registers from the console, and if the memory test runs without errors.

First question: can I do the Unibone latch test with it built into the PDP-11, but the processor in HALT state?

Second question: I saw that Unibone can emulate an M9312 bootstrap module. Is this enabled by default? I'm asking because I have an M9301 bootstrap module in my machine and I'm afraid that the two cards might get stuck.

Third question: should I start the memory expansion from the "demo" application so that the console emulation running from the bootstrap card is working and the processor is in RUN state?

Béla

Message has been deleted

Jay Jaeger

unread,
Sep 1, 2025, 3:07:08 PMSep 1
to UniBone
On Monday, September 1, 2025 at 10:32:31 AM UTC-5 bela.b...@gmail.com wrote:
Thanks for the information. I think I understand the addressing stuff.

Also, note that there are to different sorts of memory tests one can run on the Unibone.  One is as a bus arbiter, without the processor.  That is the one that one might use to test memory in a backplane that has just the memory and the Unibone (I have done it that way).  The other is with the procesor as the bus arbiter, which is what I would use in an actual machine with a CPU in it.  I forget which is which off the top of my head.
 
By "program" I mean the "demo" application. After issuing the "ld" command, a list of emulated devices is displayed, along with the memory addresses used by the various controllers.

I tried the Unibone in an empty DD-11 backplane. The latch test basically ran, but it reported errors on the PA, PB, ACLO, DCLO signals. Is this normal or should I deal with it?

Yes, you should investigate that.  I doubt ACLO or DCLO would cause issues, but PA and PB could, though maybe not in your 11/05 unless it has parity memory installed.  None of them would cause issues unless the Unibone were actually driving them into their active state; I doubt the demo app looks at those signals.  Note that the backplane needs to be *simply* terminated for testing: so no SACK turnaround should be jumpered on the terminator, etc.  I use one of the old M930 original resistor-only terminators to test.
 

I have run punched tape BASIC on my machine before, so I think the hardware is fine.


Great.
 
I will try to see if I can read the emulated RL drive status registers from the console, and if the memory test runs without errors.

First question: can I do the Unibone latch test with it built into the PDP-11, but the processor in HALT state?

I don't think that would work well.
 

Second question: I saw that Unibone can emulate an M9312 bootstrap module. Is this enabled by default? I'm asking because I have an M9301 bootstrap module in my machine and I'm afraid that the two cards might get stuck.


It would not be enabled by default, nor would I enable it if another ROM card is present that uses the same address space.  Note that the Unibone emulation of the M9312 is just the ROM - it doesn't emulate the termination of course  I have an M9312 in my PDP-11/24 and an M9301 in my PDP-11/34 with Unibones in each - but without emulating any ROM in them.  Works just fine.  
 
Third question: should I start the memory expansion from the "demo" application so that the console emulation running from the bootstrap card is working and the processor is in RUN state?

You need to start the demo app for the machine to be able to run at all.  (I don't know of any other way to start the memory expansion aside from the demo app - unless one were to replicate what it is doing.  The processor does not need to be running a program (in Run state) to do the memory test (and probably should not be running.)

If the memory test is hanging, that might point to a problem where the Unibone is in a slot with the NPG jumper wire in the backplane still in place, or a missing NPG jumper wire or missing grant jumper in an otherwise empty slot, because those might prevent the NPG request from the Unibone reaching the processor.  That is the first place I'd look for this problem.
 

Béla


Béla Bréda

unread,
Sep 1, 2025, 4:30:24 PMSep 1
to UniBone
Thank you all for your help so far. I don't know how to respond to the letters? Only to the author or to everyone in the group? I'd rather use the latter. One of my replies was deleted for some reason. Sorry if I don't repeat it.

The point is that I got to the point where the virtual RL02 drive works based on the status information, but I haven't been able to boot it yet. 

The execution of the "m i" command still hangs, it only runs through if I press the "RUN" key on the machine. I have no idea what the reason for this could be. 
The interesting thing is that under the "tm" menu item, the "sz" and "m" commands work without any problems.

Another problem is that when executing the "m ll dl.lst" command, I get this message: "No entry address at "start" label is 177777777777." What does this mean?
After a while, this message appears: 
"Write result_timeout @ 000000
Error writing UNIBUS memory"

The interesting thing is that somehow the loader was written to the memory, because I checked the memory contents on the machine with the EXAMINE function and everything was fine.

By the way, I have experienced that when I execute the "ll dl.lst" command from the "tm" menu, I do not get such an error message.

Could there be some significance or explanation for the fact that memory expansion and file loading into memory work well from the "tm" menu, but they do not work properly from the "d" menu?

I tried to start the loader from address 10000, but the execution stops immediately. Or the machine stops with the "RUN" LED on, but the program does not run. I think this happens when a program refers to a non-existent address.

That's all I've gotten so far.

Béla

Jay Jaeger

unread,
Sep 1, 2025, 5:24:44 PMSep 1
to UniBone
On Monday, September 1, 2025 at 3:30:24 PM UTC-5 bela.b...@gmail.com wrote:
Thank you all for your help so far. I don't know how to respond to the letters? Only to the author or to everyone in the group? I'd rather use the latter. One of my replies was deleted for some reason. Sorry if I don't repeat it.

The point is that I got to the point where the virtual RL02 drive works based on the status information, but I haven't been able to boot it yet. 


I think you are saying that the registers appear OK, but actual read operations are not working.  That is not an unusual issue to see with DMA devices. (See below)
 
The execution of the "m i" command still hangs, it only runs through if I press the "RUN" key on the machine. I have no idea what the reason for this could be. 
The interesting thing is that under the "tm" menu item, the "sz" and "m" commands work without any problems.


I don't remember exactly what the various memory things do, so I will leave others to comment on that.
 
Another problem is that when executing the "m ll dl.lst" command, I get this message: "No entry address at "start" label is 177777777777." What does this mean?
After a while, this message appears: 
"Write result_timeout @ 000000
Error writing UNIBUS memory"


What I think it is telling you is that it is having problems writing to memory in the case where the CPU is doing the arbitration, i.e., the NPR/NPG process isn't working.

This, along with the failure to boot from an emulated RL02 feels to me like an issue with the NPR/NPG process -- most likely that the NPG signal is not making it from the processor to the Unibone because either 1) One of the slots between the processor and the Unibone does not have a DMA peripheral in it and does not have CA1/CB1 jumpered OR 2) The jumper is still in place in the slot that contains the Unibone.
 
The interesting thing is that somehow the loader was written to the memory, because I checked the memory contents on the machine with the EXAMINE function and everything was fine.

If the loader ends up being written to *emulated* memory that could hapen.  Otherwise, I don't know.
 

By the way, I have experienced that when I execute the "ll dl.lst" command from the "tm" menu, I do not get such an error message.


This is not a big surprise: those do not do any DMA.
 
Could there be some significance or explanation for the fact that memory expansion and file loading into memory work well from the "tm" menu, but they do not work properly from the "d" menu?

Depends on a lot of things I don't remember without actually firing up my Unibone.
 

I tried to start the loader from address 10000, but the execution stops immediately. Or the machine stops with the "RUN" LED on, but the program does not run. I think this happens when a program refers to a non-existent address.

Or, the processor has issued an NPG but the DMA never happens, so the Unibone never releases NPR.
 

That's all I've gotten so far.

Check your NPG grant continuity:  CA1-CB1 on all non CPU Unibus slots should show continuity but NOT in the slot where you have the Unibone.  If you haven't read up on the non processor grant (DMA) process, do that first.

This REALLY feels like that is your issue.

Also, examine the Unibone documentation to distinguish in cases where the *Unibone* does DMA arbitration (in which case the grants are issued by it to itself) vs. when the CPU does DMA arbitratiion (which requires the NPR/NPG process to work between the Unibone and the CPU.  I don't remember withouta actually firing it up which menu / commands use the CPU arbitration vs. which do the arbitration in the Unibone.

JRJ
 

Béla

Ashlin Inwood

unread,
Sep 1, 2025, 6:18:01 PMSep 1
to UniBone
A few things I will point out from using the Unibone with my 11/40.
  1. For the 11/40 to do any DMA the CPU has to be running. I run the program 000777 (endless loop). I think this is why RUN helps.
  2. If the Unibone emulates memory in the same address as real memory, you will get collisions, and things will stop running randomly. (like your loader)
    1. If DMA is not working (the CPU is not running), it can't test what memory exists, and it will emulate all memory, disregarding any memory installed in the system.
  3. If you write a program (m ll <name>) to an address where the CPU is running from, you'll get issues (it will stop, lock up etc).
  4. "No entry address at "start" label is 177777777777", is not an issues. I think it means that it looked at the listing and it could not work out where the program entry point is.
  5. Some of the scripts have a "reset" in them, which causes me a lot of issues because the 11/40 has no boot roms, is does not have anything to run on startup.

So I think you have two issues that are giving you lots of symptoms.
  1. You need to have the CPU running to service DMA requests from the Unibone when it wants to muck with memory
  2. NPR and other grant lines might not be set up right.
My advice is don't use emulated memory, don't add any emulated devices. Just run the demo program and ensure you can read and write to memory reliably.
Write some very small programs and load them into memory with m ll and see how they load and run.

Béla Bréda

unread,
Sep 2, 2025, 2:04:54 PMSep 2
to UniBone
I see that NPG IN and NPG OUT (CA1-CB1) terminals are shorted on every free C slot. Is it possible on a PDP-11/05? If it true, I think I found the root of the problems.


Béla

pbi...@gmail.com

unread,
Sep 2, 2025, 2:23:08 PMSep 2
to Béla Bréda, UniBone

Note that the PDP-11/05 (3U) has four different backplanes (Configurations 1 & 2, -N, and -S).  Which is yours?

--

You received this message because you are subscribed to the Google Groups "UniBone" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unibone+u...@googlegroups.com.

Message has been deleted
Message has been deleted
Message has been deleted

Béla Bréda

unread,
Sep 3, 2025, 12:05:19 AMSep 3
to UniBone
Thanks for the information. Based on this, I will try to get the virtual RL11 drive up and running.

Béla

Béla Bréda

unread,
Sep 3, 2025, 12:05:19 AMSep 3
to UniBone
Unfortunately, I don't know which version is which. I have the flat version, but that's all I know about it. What's the difference between them or where can I look it up?

Béla

Béla Bréda

unread,
Sep 3, 2025, 12:05:19 AMSep 3
to UniBone
Sorry, but I don't know which one is which. I have the flat version. That's about all I know about it. What's the difference between the versions? Or where can I look it up?

Béla

Béla Bréda

unread,
Sep 3, 2025, 12:05:19 AMSep 3
to UniBone
Why are my messages being deleted?

pbi...@gmail.com

unread,
Sep 3, 2025, 1:59:19 AMSep 3
to Béla Bréda, UniBone

I’m not sure what “flat version” means.  Perhaps you mean the chassis is 3U (5.25”) tall, rather than 6U (10.5”) tall?  In that case you presumably have either “Configuration1” or “Configuration 2”.

 

The Computer History Wiki @gunkies has a good description of the variations.  At the moment the site is offline but you can see the page in IA:  https://web.archive.org/web/20250422180355/https://gunkies.org/wiki/PDP-11/05

 

-----

Original version

The original /05 and /10 came with backplanes wired to hold MM11-L 16 Kbyte core memory units. There were two different backplanes (all four backplanes are un-named, but the part numbers, given below, are etched into the large PCB on each).

 

One, (called "Configuration 1" in DEC documentation, backplane part #54-10035), held two memory units, with one slot left for quad-height SPC devices. The other ("Configuration 2", backplane part #54-09818) held one memory unit, and provided four SPC slots; it could also hold a DF11 Communications Line Adapter to convert the asynchronous serial line console line to EIA RS-232.

 

Here are the slot assignments in the backplanes (as seen from the board insertion side of the backplane, not the wire-wrap pin side, as is common in DEC documentation).

 

Configuration 1:

Connector

Slot

A

B

C

D

E

F

1

M7260 CPU board #0

2

M7261 CPU board #1

3

G110 Memory Control

4

G231 Memory Driver

5

UNIBUS Terminator

H213/H214 Core stack

6

G110 Memory Control

7

G231 Memory Driver

8

UNIBUS Out

H213/H214 Core stack

9

KM11-1

KM11-2

SPC

 

Configuration 2:

Connector

Slot

A

B

C

D

E

F

1

M7260 CPU board #0

2

M7261 CPU board #1

3

G110 Memory Control

4

G231 Memory Driver

5

UNIBUS Terminator

H213/H214 Core stack

6

Unused

SPC

7

UNIBUS Out

SPC

8

KM11-1

KM11-2

SPC

9

DF11

SPC

Note that the slots are numbered from 1 at the start; this is the inverse of the numbering for these backplanes in some DEC documentation.

 

-----

If you have Configuration 1 then the only slot that the Unibone would fit is Slot 9; if Configuration 2 then any of slots 6 thru 9.  What do you have installed for memory and where: one MM11-L, two MM11-L, one or two third-party memory modules, none at all?

Jay Jaeger

unread,
Sep 3, 2025, 9:31:10 AMSep 3
to UniBone
Paul:  His machine was reported to run OK before he started adding the Unibone, and so long as he 1) left his terminator in place (reported to be an M9301) and 2) picked a slot that had a G727 grant card in place before he put in his Unibone, the backplane he has probably doesn't matter to us.  He reported that his machine was an 8Kw machine -- so, if he had more than one G727 grant card in the thing, then it was most likely configuration 2 (unless some previous owner yanked out the memory and put in G727's out of ignorance).

The other correspondent (ashlin...) may have identified why his machine has to be in RUN state for certain things to work (such as doing memory access tests using CPU arbitration) - that is something I was unaware of.

Bela:  If the slot you picked for your Unibone did not pereviously have a G727 grant card in place, and instead was completely empty [and is one of the slots 6-8 as listed by Paul] it is possible that you stuck your Unibone in what was designed to be a memory slot.  If you didn't remove a G727 to put in your Unibone, then you should move the Unibone to a slot that has a G727, removing the G727 in the process.

Also, It is not unusual for the machine to come with all of the CA1/CB1 NPG wire wrap jumpers in place on all slots unless it had a DMA peripheral at some point.  Just remove the one for the slot the Unibone is in (though if the Unibone is the *only* DMA capable device, it might not matter - haven't thought that all the way through)

Also, it might help if you give us he layout of what cards are where in your backplane before you put in the Unibone. 

finally, your message may not be (probably not) being actually deleted.  I have seen reports in the last couple of days from other Google groups where people got that response, only to have the message eventually make its way out to the group.

JRJ

Béla Bréda

unread,
Sep 3, 2025, 11:02:19 AMSep 3
to Jay Jaeger, UniBone
As I wrote in my previous post, the problem was solved yesterday. There where NPG jumper wires in all free slots. There wasn't any DMA card in it before Unibone. It was an OEM machine with an external expansion box with special interface cards.  
Thank you for your help too!

Béla Bréda

unread,
Sep 3, 2025, 2:50:11 PMSep 3
to UniBone
I'm able to run several OPs today. Everything is fine with the Unibone.
Thanks for your help!

Béla
Reply all
Reply to author
Forward
0 new messages