I purposely kept it simple. The thing is, if I change the CPU to an 11/23+
it keeps running. I did notice most other CPU models also aborts.
A loop waiting for keyboard input could stay waiting for quite some time.
Although I could see an interrupt happening. I disabled all the
devices I wasn't using in SIMH, hoping to prevent stray interrupts but it
still did the same thing.
And just for clarity, this little program is the only thing I am loading. I
start the simulator, set the cpu, load the binary and jump to its start
address.
There is no operating system or anything else running. Just the bare
simulated metal.
- Peter
On Thu, Oct 30, 2025 at 8:03 PM Jon Elson via cctalk <cctalk(a)classiccmp.org>
wrote:
On 10/30/25 09:39, Peter Ekstrom via cctalk wrote:
Anyone here familiar with programming the 11/23
(KDF11-A) in assembler,
bare metal?
I have been trying to get a very simple test program to run on it but it
keeps halting on
an address outside of the program. Seems to always be the same address
which is why
I am thinking I must be missing something. The program runs fine on an
11/23+ or 11/70.
Below is the listing:
1 000000 .asect
2 014000 .=14000
3 014000 012706 002000 start: mov #2000,sp
4 014004 000240 loop: nop
5 014006 000776 br loop
6 .end
I have a hardware 11/23 but for convenience I have been testing on a SIMH
11/23 by
loading the binary from the simh prompt and then jumping to the start
address.
I have tested the same code on 11/23+ and 11/70 CPUs and it runs fine.
I am working in Linux and am using the following Macro11 cross-assembler:
macro11 - portable MACRO11 assembler for DEC PDP-11
Version 0.8 (07 Jul 2022)
Copyright 2001 Richard Krehbiel,
modified 2009 by Joerg Hoppe,
modified 2015-2017,2020-2021 by Olaf 'Rhialto' Seibert.
I then use the obj2bin.pl utility by Don North to convert from object
format to binary load format.
The following is what happens:
PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 29d39002
sim> set cpu 11/23
sim> load test.bin
sim> g 14000
HALT instruction, PC: 005271 (HALT)
sim>
Am I missing some initialization parts or something? I have looked
through
various manuals and
the processor handbook for the LSI-11 but if it is in there, I am missing
it.
WOW, that code is insanely simple. Is it possible there is
a timer (or other) interrupt happening? I can't see any
reason the CPU will jump out of that do-nothing loop.
Jon