Git Product home page Git Product logo

simh's People

Contributors

9track avatar agn453 avatar al20878 avatar azbevier avatar bscottm avatar deltecent avatar hharte avatar jguillaumes avatar johnforecast avatar kenrector avatar larrybaker avatar larsbrinkhoff avatar leobru avatar lioncash avatar markemmer avatar markpizz avatar mmuman avatar ngospina avatar nj7p avatar philbudne avatar pkoning2 avatar psco avatar raywjewhurst avatar rcornwell avatar rhialto avatar rsanchovilla avatar sethm avatar shattered avatar tlhackque avatar trevorwarwick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simh's Issues

SCP: sim_printf does not properly handle sim_printf("\n");

sim_printf("\n") sends only a "\n" rather than a "\r\n".

char *c, *remnant = buf;

    while ((c = strchr (remnant, '\n'))) {
        if ((c != buf) && (*(c - 1) != '\r'))
            fprintf (stdout, "%.*s\r\n", (int)(c-remnant), remnant);
        else
            fprintf (stdout, "%.*s\n", (int)(c-remnant), remnant);
        remnant = c + 1;
        }
    fprintf (stdout, "%s", remnant);

When printing only "\n", c == buf so a "\r" is not sent along with the "\n". sim_printf("_\n") sends "_\r\n".

sim> show version
Altair 8800 (Z80) simulator V4.0-0 Current
    Simulator Framework Capabilities:
        32b data
        32b addresses
        no Ethernet
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 12
    Host Platform:
        Compiler: GCC Apple LLVM 12.0.0 (clang-1200.0.32.2)
        Simulator Compiled as C arch: x64 (Release Build) on Nov 20 2022 at 19:59:26
        Build Tool: simh-makefile
        Memory Access: Little Endian
        Memory Pointer Size: 64 bits
        Large File (>2GB) support
        SDL Video support: No Video Support
        PCRE RegEx (Version 8.43 2019-02-23) support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        OS: Darwin Patricks-iMac.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jun 21 21:18:39 PDT 2022; root:xnu-6153.141.66~1/RELEASE_X86_64 x86_64
        Processor Name: Intel(R) Core(TM) i5-4570R CPU @ 2.70GHz
        tar tool: bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.6
        curl tool: curl 7.78.0 (x86_64-apple-darwin13.4.0) libcurl/7.78.0 OpenSSL/1.1.1l zlib/1.2.11 libssh2/1.9.0 nghttp2/1.41.0
        git commit id: ffd93046+uncommitted-changes
        git commit time: 2022-11-20T12:43:37-0800

Actual output:

sim> s

Step expired
            C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0000 P=0002 NOP
                                                                  sim> s

Step expired
            C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0000 P=0003 NOP
                                                                  sim>

Expected output:

sim> s

Step expired
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0000 P=0001 NOP 
sim> s

Step expired
C0Z0M0E0I0 A=00 B=0000 D=0000 H=0000 S=0000 P=0002 NOP 
sim>

Need more process documentation

The project needs to document our processes, including:

  • Coding conventions
    • not necessarily one style, but things like API stability, debug features, language features, ...
  • Documentation technology and conventions
  • Commit contents and processes
  • Testing/CI

I'm sure there are more.

There are some initial thoughts on https://opensimh.org/contributions/, but it's a work in progress and needs more detail. But not too much.

This is a placeholder for discussions that hopefully will lead to one or more documents.

To frame the discussion:

  • In the past, there have been conventions and processes that have been a mix of folklore, reaction to events, and hard-to-find documentation.
  • We don't need a lawyer's document, but everyone should understand the rules of the road, which should predict decisions.
  • Many of the past practices have been helpful, but while they are a good starting point, all should be discussed
  • The project's goal is to be inclusive and to welcome appropriate contributions.
    • Note that not having any guidance can be as off-putting as having exacting, micromanaging rules
    • The goal is to strike a balance.

In replies, please add your thoughts, pointers to previous documents - formal or informal.

Strange behavior of the VH device on PDP-11

While setting up a config file for my PDP-11/70 and RSTS/E system, i noticed something strange:

The VH device (DHQ-11) seems to have a weird behavior.

Since my system is a Unibus machine (pdp-11/70), it's supposed to be a DHU-11 with 16 lines per unit. If i set it up this way:

set VH enable
set VH lines=32
attach VH 6000

the "show config" returns:

VH address=17760440-17760477*, vector=500-514*, BR4, lines=32, 2 units
VH0 attached to 6000, DHU mode, 0 current connections
VH1 DHU mode

which is most correct.

But if i try to set it up as 3 devices (like in my system):

set VH enable
set VH lines=48
attach VH 6000

the "show config" returns:

VH address=17760440-17760517*, vector=500-524*, BR4, lines=48, 3 units
VH0 attached to 6000, DHU mode, 0 current connections
VH1 DHU mode
VH-RCV-CON DHU mode

When i looked at the pdp11_vh.c code, i find a "VH-RCV-CON" reference in the initialization code, as a name when a unit is reset.

It seems that the DHQ code has trouble handling more than 32 lines.

Or am i overlooking something?

Device types for DL-11 and DH-11?

I'm trying to restore the config of my old RSTS/E system, from around 2000, to working order in SIMH. I managed to recover an old backup tape, and i am able to restore it to a disk image.

But i am running into a bit of a problem.

It seems that RSTS/E is very finicky about device types, and my system had a bunch of DL-11D and DL-11E (for modem control), as well as three DH-11 multiplexers.

Apparently, RSTS/E is able to tell the difference between a KL-11 and a DL-11, and ends up assigning different device designators for them. On my original HARDW LIST from RSTS/E 10.1, the DL-11D were designated DL0: to DL10:, and the DL-11E were DE0: to DE3:

Likewise, the DH-11 interfaces were designated DH0: to DH3:.

On the simulator, RSTS/E gives them designator KL0: to KL14: and the DHU end up being VH0: to VH2:

Option: HA LI

Name Address Vector Comments
TT0: 177560 060
RR0: 176700 254 BAE=+050, Units: 0(RM03) 1(RM03) 2(RM03) 3(RM03)
4(RM03) 5(RM03) 6(RM03) 7(RM03)
RU0: 172150 P520 RQDX3 Units: 0(RA81) 1(RA81) 2(RA92) 3(RA92)
TU0: 172440 224 BAE=+034, Units: 0(TE16 @tm03 #0) 1(TE16 @tm03 #0)
LP0: 177514 200
KL0: 176500 300
KL1: 176510 310
KL2: 176520 320
KL3: 176530 330
KL4: 176540 340
KL5: 176550 350
KL6: 176560 360
KL7: 176570 370
KL8: 176600 400
KL9: 176610 410
KL10: 176620 420
KL11: 176630 430
KL12: 176640 440
KL13: 176650 450
KL14: 176660 460
VH0: 160440 470 Sub-lines: 16
VH1: 160460 500 Sub-lines: 16
VH2: 160500 510 Sub-lines: 16
XE0: 174510 120 DELUA Address: 08-00-2B-13-1A-6D

KW11L 177546 100
SR 177570
DR 177570

Hertz = 60.

Other: FPU, SL, 22-Bit, Data space, Cache w/address, System ID = 4660

This has the unfortunate consequence that the keyboard lines end up with the wrong name (_KBFn: becomes _KBGn: inside RSTS/E), and the startup config file can't set the proper device types.

Is there a way to set the device type of those interfaces? Why would RSTS/E be able to tell the difference?

I'm curious that nobody ever ran into that problem before...

Greetings from another SIMH fork

Sorry for the issue clutter, but I would like to point out my own fork of SIMH at https://github.com/retroprom/simh/branches.

I do not maintain it very actively, but it contains a reasonably well-working CMake build system (that is missing tests).

Another thing I tried to do was to fix all compiler warnings, but upstream did not want the patches for "cultural reasons".

Should I try to revive those branches and submit them with you?

I might also be interested in better abstractions for external devices resources (serial and network links, disk images, MSCP SAN).

My 2.11BSD project could also use some improvements in simtools, or a more structured successor to it.

See https://github.com/retroprom/ for some of my work.

SIMH prevents screensaver/sleep on Mac OS

I recently noticed that SIMH seems to prevent Mac Os from activating the screen saver and/or sleeping the display after the number of minutes set in System Preferences.

When i ran Activity Monitor on the machine, i saw that the SIMH process was using 100% of 1 CPU.

When i used "set cpu idle", i saw that number drop quite a bit, to around 15% of 1 CPU.

But the screensaver still didn't kick in.

Im curious to know if that is a "bug" in the implementation on Mac OS, or if other versions (Windows/Linux) experience the same thing?

RK05 image created by SIMH will not attach properly - complains of non-existent parameter RK05

  • Context

The default pdp11 simulation no longer attaches RK images created by the simulator:

(base) nebula:open-simh-newest wsenn$ BIN/pdp11
PDP-11 simulator V4.0-0 Current git commit id: 6541085
sim> att rk0 rk0
%SIM-INFO: RK0: Creating new file: rk0
sim> q
Goodbye

(base) nebula:open-simh-newest wsenn$ BIN/pdp11

PDP-11 simulator V4.0-0 Current git commit id: 6541085
sim> att rk0 rk0
%SIM-ERROR: RK device: Non-existent parameter - RK05
sim> q
Goodbye

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

sim> show version
PDP-11 simulator V4.0-0 Current
Simulator Framework Capabilities:
32b data
32b addresses
Threaded Ethernet Packet transports:PCAP:VDE:NAT:UDP
Idle/Throttling support is available
Virtual Hard Disk (VHD) support
RAW disk and CD/DVD ROM support
Asynchronous I/O support (Lock free asynchronous event queue)
Asynchronous Clock support
FrontPanel API Version 12
Host Platform:
Compiler: GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)
Simulator Compiled as C arch: x64 (Release Build) on Oct 19 2022 at 11:59:05
Build Tool: simh-makefile
Memory Access: Little Endian
Memory Pointer Size: 64 bits
Large File (>2GB) support
SDL Video support: SDL Version 2.24.0, PNG Version 1.6.38, zlib: 1.2.12
PCRE RegEx (Version 8.45 2021-06-15) support for EXPECT commands
OS clock resolution: 1ms
Time taken by msleep(1): 1ms
Ethernet packet info: libpcap version 1.9.1
OS: Darwin nebula.local 21.6.0 Darwin Kernel Version 21.6.0: Wed Aug 10 14:25:27 PDT 2022; root:xnu-8020.141.5~2/RELEASE_X86_64 x86_64
Processor Name: Intel(R) Xeon(R) CPU X5670 @ 2.93GHz
tar tool: bsdtar 3.5.1 - libarchive 3.5.1 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8
curl tool: curl 7.85.0 (x86_64-apple-darwin21.3.0) libcurl/7.85.0 OpenSSL/3.0.5 zlib/1.2.12 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.3 libpsl/0.21.1 (+libidn2/2.3.2) nghttp2/1.50.0
git commit id: 6541085
git commit time: 2022-10-15T17:53:47+0200
sim>

  • how you built the simulator or that you're using prebuilt binaries

(base) nebula:sandboxes-git wsenn$ cd ~/sandboxes-git
(base) nebula:sandboxes-git wsenn$ git clone https://github.com/open-simh/simh.git open-simh-newest
Cloning into 'open-simh-newest'...
remote: Enumerating objects: 34551, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 34551 (delta 21), reused 51 (delta 18), pack-reused 34486
Receiving objects: 100% (34551/34551), 77.51 MiB | 32.89 MiB/s, done.
Resolving deltas: 100% (26745/26745), done.
Updating files: 100% (1573/1573), done.
(base) nebula:sandboxes-git wsenn$ cd open-simh-newest
(base) nebula:open-simh-newest wsenn$ make clean
lib paths are: /usr/lib /opt/local/lib /usr/lib/
include paths are: /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /opt/local/include
using macOS libpthread: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pthread.h
using libpcre: /opt/local/lib/libpcre.dylib /opt/local/include/pcre.h
using macOS dlopen with .dylib
using libedit: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline/readline.h
using libpng: /opt/local/lib/libpng.dylib /opt/local/include/png.h
using zlib: /opt/local/lib/libz.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/zlib.h
using mman: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/mman.h
rm -f -rf BIN/
(base) nebula:open-simh-newest wsenn$ make pdp11
lib paths are: /usr/lib /opt/local/lib /usr/lib/
include paths are: /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /opt/local/include
using macOS libpthread: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pthread.h
using libpcre: /opt/local/lib/libpcre.dylib /opt/local/include/pcre.h
using macOS dlopen with .dylib
using libedit: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline/readline.h
using libpng: /opt/local/lib/libpng.dylib /opt/local/include/png.h
using zlib: /opt/local/lib/libz.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/zlib.h
using mman: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/mman.h
using libSDL2: /opt/local/include/SDL2/SDL.h
*** No SDL ttf support available. BESM-6 video panel disabled.


*** Info *** Install the MacPorts libSDL2-ttf development package to provide this
*** Info *** functionality for your OS X system:
*** Info *** # port install libsdl2-ttf-dev
using libpcap: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/pcap.h
using libvdeplug: /opt/local/lib/libvdeplug.dylib /opt/local/include/libvdeplug.h


*** pdp11 Simulator being built with:
*** - compiler optimizations and no debugging support. Apple clang version 13.1.6.
*** - dynamic networking support using OSX provided libpcap components.
*** - Local LAN packet transports: PCAP VDE NAT(SLiRP)
*** - video capabilities provided by libSDL2 (Simple Directmedia Layer).
*** - Per simulator tests will be run.


*** git commit id is 6541085.
*** git commit time is 2022-10-15T17:53:47+0200.


gcc -std=c99 -U__STRICT_ANSI__ -O2 -fno-strict-overflow -finline-functions -DSIM_GIT_COMMIT_ID=65410851d5d5f3931eff322c3c677d014c18a448 -DSIM_GIT_COMMIT_TIME=2022-10-15T17:53:47+0200 -DSIM_COMPILER="Apple clang version 13.1.6" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -I/opt/local/include -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_PCRE_H -DHAVE_SYS_IOCTL -DSIM_HAVE_DLOPEN=dylib -DHAVE_EDITLINE -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN ./PDP11/pdp11_fp.c ./PDP11/pdp11_cpu.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_cis.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_rk.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rp.c ./PDP11/pdp11_rx.c ./PDP11/pdp11_stddev.c ./PDP11/pdp11_sys.c ./PDP11/pdp11_tc.c ./PDP11/pdp11_tm.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_io.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_pclk.c ./PDP11/pdp11_ry.c ./PDP11/pdp11_pt.c ./PDP11/pdp11_hk.c ./PDP11/pdp11_xq.c ./PDP11/pdp11_xu.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_rh.c ./PDP11/pdp11_tu.c ./PDP11/pdp11_cpumod.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_rf.c ./PDP11/pdp11_dl.c ./PDP11/pdp11_ta.c ./PDP11/pdp11_rc.c ./PDP11/pdp11_kg.c ./PDP11/pdp11_ke.c ./PDP11/pdp11_dc.c ./PDP11/pdp11_dmc.c ./PDP11/pdp11_kmc.c ./PDP11/pdp11_dup.c ./PDP11/pdp11_rs.c ./PDP11/pdp11_vt.c ./PDP11/pdp11_td.c ./PDP11/pdp11_io_lib.c ./PDP11/pdp11_rom.c ./PDP11/pdp11_ch.c ./PDP11/pdp11_dh.c ./PDP11/pdp11_ng.c ./PDP11/pdp11_daz.c ./display/display.c ./display/sim_ws.c ./display/ng.c ./display/vt11.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_PDP11 -I ./PDP11 -DHAVE_PCAP_NETWORK -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ -DBPF_CONST_STRING -DUSE_SHARED -DHAVE_VDE_NETWORK -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/.c slirp_glue/.c -DUSE_DISPLAY -DHAVE_LIBSDL -DUSE_SIM_VIDEO sdl2-config --cflags -DSDL_MAIN_AVAILABLE sdl2-config --libs -o BIN/pdp11 -L/opt/local/lib -lpthread -lpcre -L/opt/local/lib/ -ledit -lpng -lz -lvdeplug -L/opt/local/lib/
BIN/pdp11 RegisterSanityCheck </dev/null
Running internal register sanity checks on PDP-11 simulator.
*** Good Registers in PDP-11 simulator.
(base) nebula:open-simh-newest wsenn$

  • the simulator configuration file (or commands) which were used when the problem occurred.

  • the expected behavior and the actual behavior

expected behavior:
(base) nebula:simh-newest wsenn$ BIN/pdp11
PDP-11 simulator V4.0-0 Current git commit id: 2673530
sim> att rk0 rk0
%SIM-INFO: RK0: Creating new file: rk0
sim> q
Goodbye
(base) nebula:simh-newest wsenn$ BIN/pdp11
PDP-11 simulator V4.0-0 Current git commit id: 2673530
sim> att rk0 rk0
sim>

actual behavior:

(base) nebula:open-simh-newest wsenn$ BIN/pdp11
PDP-11 simulator V4.0-0 Current git commit id: 6541085
sim> att rk0 rk0
%SIM-INFO: RK0: Creating new file: rk0
sim> q
Goodbye

(base) nebula:open-simh-newest wsenn$ BIN/pdp11

PDP-11 simulator V4.0-0 Current git commit id: 6541085
sim> att rk0 rk0
%SIM-ERROR: RK device: Non-existent parameter - RK05
sim> q
Goodbye

  • you may also need to provide specific pointers to data files that may be necessary to demonstrate the problem

simulators not building on AXP/VMS

apologies if this is a known issue, but i was unable to find any reference besides the VMS build instructions being absent from the status document. i am attempting to build open-simh under VSI AXP/VMS 8.4-2L1 using VSI C and MMS, and i am getting the following errors:

$ mms

$!
$! Building The SYS$DISK:[.BIN.VMS.LIB]SIMH-NONET-AXP.OLB Library.
$!
$ CC/DECC/PREF=ALL/DEBUG/OPT=(LEV=5)/ARCH=HOST                /NEST=PRIMARY/NAME
=(AS_IS,SHORT)/DEF=("_LARGEFILE","SIM_ASYNCH_IO=1")                /OBJ=SYS$DISK
:[.BIN.VMS.LIB.BLD-AXP] SYS$DISK:[]SIM_CONSOLE.C, SYS$DISK:[]SIM_SOCK.C, SYS$DIS
K:[]SIM_TMXR.C, SYS$DISK:[]SIM_ETHER.C, SYS$DISK:[]SIM_TAPE.C, SYS$DISK:[]SIM_FI
O.C, SYS$DISK:[]SIM_TIMER.C, SYS$DISK:[]SIM_DISK.C, SYS$DISK:[]SIM_SERIAL.C, SYS
$DISK:[]SIM_VIDEO.C, SYS$DISK:[]SIM_SCSI.C

static t_offset get_filesystem_size (UNIT *uptr, t_bool *readonly);
.........................................................^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 364 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_ods2_filesystem_size (UNIT *uptr, uint32 physsectsz, t_bool
*readonly)
................................................................................
.^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 1257 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

if (readonly)
....^
%CC-E-BADEXPR, Invalid expression.
at line number 1338 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_ods1_filesystem_size (UNIT *uptr, uint32 physsectsz, t_bool
*readonly)
................................................................................
.^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 1343 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

if (readonly)
....^
%CC-E-BADEXPR, Invalid expression.
at line number 1399 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_ultrix_filesystem_size (UNIT *uptr, uint32 physsectsz, t_boo
l *readonly)
................................................................................
...^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 1416 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

if (readonly)
....^
%CC-E-BADEXPR, Invalid expression.
at line number 1454 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_iso9660_filesystem_size (UNIT *uptr, uint32 physsectsz, t_bo
ol *readonly)
................................................................................
....^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 1505 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

if (readonly)
....^
%CC-E-BADEXPR, Invalid expression.
at line number 1552 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_rsts_filesystem_size (UNIT *uptr, uint32 physsectsz, t_bool
*readonly)
................................................................................
.^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 1963 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

if (readonly)
....^
%CC-E-BADEXPR, Invalid expression.
at line number 2043 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_rt11_filesystem_size (UNIT *uptr, uint32 physsectsz, t_bool
*readonly)
................................................................................
.^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 2127 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

if (readonly)
....^
%CC-E-BADEXPR, Invalid expression.
at line number 2258 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

static t_offset get_filesystem_size (UNIT *uptr, t_bool *readonly)
.........................................................^
%CC-E-NOTEXPECTING, Error parsing parameter list. Found "readonly" when expectin
g one of: ",", ")".
at line number 2267 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

    if ((ret_val = checks[i] (uptr, 0, readonly)) != (t_offset)-1) {
.......................................^
%CC-E-BADEXPR, Invalid expression.
at line number 2293 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

        if ((readonly != NULL)          &&
.............^
%CC-E-BADEXPR, Invalid expression.
at line number 2299 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

    if ((ret_val = checks[i] (uptr, ctx->sector_size, readonly)) != (t_offset)-1
)
......................................................^
%CC-E-BADEXPR, Invalid expression.
at line number 2314 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

    if ((ret_val = checks[i] (uptr, ctx->sector_size, readonly)) != (t_offset)-1
)
......................................................^
%CC-E-BADEXPR, Invalid expression.
at line number 2317 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

    get_filesystem_size (uptr, &readonly);
................................^
%CC-E-BADEXPR, Invalid expression.
at line number 3292 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

    if (readonly) {
........^
%CC-E-BADEXPR, Invalid expression.
at line number 3293 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

filesystem_size = get_filesystem_size (uptr, NULL);
..................^
%CC-I-IMPLICITFUNC, In this statement, the identifier "get_filesystem_size" is i
mplicitly declared as a function.
at line number 569 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1

    t_bool readonly;
....^
%CC-I-NODCL, In this declaration, nothing is declared.
at line number 3288 in file DKA100:[SCRATCH.simh.SIMH-MASTER]SIM_DISK.C;1
%MMS-F-ABORT, For target SYS$DISK:[.BIN.VMS.LIB]SIMH-NONET-AXP.OLB, CLI returned
 abort status: %X10B91262.

as far as i can tell my environment is set up correctly, and i have increased PGFLQUOTA for my user from 256000 to 2000000, but the build still fails. is this a known issue, and if so, are there plans to continue supporting VMS as a platform in open-simh?

thank you!

Abstract CPU implementation / ASAP3 - Centurion

  • Context :: Guide request on abstract CPU coding

  • Educational proposal using simh as teaching tool on processor design
  • Looking for a Guide/Tutorial on coding an abstract CPU (similar to Malvino's SAP-3) in order to code the CENTURION CPU-6 on the simh from scratch .

With the restoration of a Centurion Microcomputer by https://www.youtube.com/@UsagiElectric and a group of people that reverse engineered almost all machine, it looks interesting to code it on simh.

Just found simh last week , and didn't quite figure how to code the SAP-3 , in order to tackle the CENTURION CPU-6 .,,
using this as a learning tool to cpu design.

  • "sim> SHOW VERSION"

simulator V4.0-0 Current
Simulator Framework Capabilities:
32b data
32b addresses
no Ethernet
Idle/Throttling support is available
Virtual Hard Disk (VHD) support
RAW disk and CD/DVD ROM support
Asynchronous I/O support (Lock free asynchronous event queue)
Asynchronous Clock support
FrontPanel API Version 12
Host Platform:
Compiler: GCC 12.2.0
Simulator Compiled as C arch: x64 (Release Build) on Jan 30 2023 at 17:59:22
Build Tool: simh-makefile
Memory Access: Little Endian
Memory Pointer Size: 64 bits
Large File (>2GB) support
SDL Video support: No Video Support
PCRE RegEx (Version 8.41 2017-07-05) support for EXPECT commands
OS clock resolution: 1ms
Time taken by msleep(1): 1ms
OS: Linux alpha 6.0.0-6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.0.12-1 (2022-12-09) x86_64 GNU/Linux
tar tool: tar (GNU tar) 1.34
curl tool: curl 7.87.0 (x86_64-pc-linux-gnu) libcurl/7.87.0 OpenSSL/3.0.7 zlib/1.2.13 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.3 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.51.0 librtmp/2.3
git commit id: 09899c1
git commit time: 2023-01-22T13:55:58-0800

  • Simulator built on Debian 11 linux, with cmake from git clone

Tags for releases in branch Supnik-Current

The branch Supnik-Current used to track Bob's releases of SimH-Classic.
And up to 2020 Bob's releases were properly tagged, last tag is v3.11-1.

With pull requests 14 and 23 the releases v3.12 and v3.12-2 were somehow added to branch Supnik-Current.
The pull 14 is labeled These commits are part Bob's of simh v3.12.
The pull 23 in fact has two commits, the first apparently reflects v3.12-2, the second an additional change.

What is the purpose of the Supnik-Current branch in open-simh ?
Pull's are including are part Bob's ..., or mix Bob's releases with other changes.
There are no tags for v3.12 and v3.12-2.
And maybe that's not even possible now.

I'd highly appreciate if Bob's releases are properly reflected in the Supnik-Current branch.
As it used to be in simh/simh, where all Simh_Classic releases from v2.3a to v3.11-1 are easily accessible.

In case of SimH-Classic we have proper releases, and that should be imho visible as tags in open-simh.

I/O error on RX50 (MSCP) after detach and attach

PDP11 emulation running RSTS V10.1. I can attach an RX50 image and mount it, but if I then unmount it, detach, attach a different image, attempting to mount that second image results in a SIMH failure:

sim> det rq3
sim> att -3 rq3 ../svn/flx/floppies/m3.dsk 
%SIM-INFO: RQ3: '../svn/flx/floppies/m3.dsk' Contains a RSTS File system
%SIM-INFO: RQ3: Pack ID: MICR3  Revision Level: 1.2 Pack Clustersize: 1
%SIM-INFO: RQ3: Last Unallocated Sector In File System: 798
sim> c
mou du3: /over/nowr
RQ I/O error: Unknown error: 316
                                RQ3 RQ I/O error: Unknown error: 316

%SIM-ERROR: Unexpected internal error while processing event for RQ3 which returned 66 - I/O error

I/O error, PC: 100640 (BR 100630)
sim> c
?Device hung or write locked

I see this on a version I built back in July, so it's been around at least for a little while.

IBM1130: Can't "attach cr <filename>"

I traced this problem to a line in cr_attach()
(file ibm1130cr.c) that seems to be treating a
pointer rather sketchily.

Yes, this is an ancient file, and has apparently worked as
expected lo these many years, but it would appear that gcc 12.2.0
is not treating this pointer operation the same way gcc has
in the past (and the way the file's author intended).

I fixed the problem by making the minimum possible change
to the code, but I would think there's no need for the
sizeof() at all -- surely MAXARGLEN+1 from the earlier
declaration of list_save would suffice as the length
argument for the strlcpy(). I'll leave that to the judgment
of whoever might undertake to commit a change to
this file.

NOTE: Yes, I know I build SimH unconventionally, with
MinGW64 and static linking (except for PCAP), but I've
been doing that for years with no problems, and in
fact I made a new PDP-11, several VAX models, and
a PDP-10KL at the same time as the 1130, and they
run their respective operating systems (various
flavors of RSX-11 and RSTS, various flavors of
VMS, and "Panda" TOPS-20) with no problems.
No, I have not tried to reproduce the IBM 1130 problem with
a MinGW 32-bit toolchain or with Microsoft Visual Studio.

NOTE_1: I built everything with HAVE_EDITLINE this time,
and with the static linking, libreadline.a wants
libncurses.a, and the latter apparently has a couple
of multiple definitions among its own object components.
Hence the "-Wl,--allow-multiple-definition". Looks
scary, I know, but presumably harmless.

Build:

1_build

Version:

2_version

Not OK:

3_not_ok

Code change:

4_code_change

OK:

5_ok

Duplicate register names in pdp6_dtc.c

Lines 73 to 77 of pdp6_dtc.c contain:

REG                 dct_reg[] = {
    {BRDATA(BUFF, dct_buf, 16, 36, NUM_DEVS_DCT), REG_HRO},
    {BRDATA(BUFF, dct_acc, 16, 36, NUM_DEVS_DCT), REG_HRO},
    {0}
};

Both of these REGister entries have the same name, but refer to different data. The names should be different.

"INVALID_SOCKET" redefined [-Werror]

Compilation of the latest source fails on NetBSD because

In file included from ./sim_ether.c:1023:
/usr/include/pcap/pcap.h:962: error: "INVALID_SOCKET" redefined [-Werror]
   #define INVALID_SOCKET -1

In file included from ./sim_ether.h:70,
                 from ./sim_ether.c:373:
./sim_sock.h:93: note: this is the location of the previous definition
 #define INVALID_SOCKET  ((SOCKET)-1)

I suppose the order of include files should be rearranged, and sim_sock.h should test if INVALID_SOCKET is already defined. I haven't checked yet if this actually works.

Or otherwise, INVALID_SOCKET couild be #undef'ed before including <pcap.h>. Which defines it as

/*
 * Some minor differences between UN*X sockets and and Winsock sockets.
 */
#ifndef _WIN32
  /*!
   * \brief In Winsock, a socket handle is of type SOCKET; in UN*X, it's
   * a file descriptor, and therefore a signed integer.
   * We define SOCKET to be a signed integer on UN*X, so that it can
   * be used on both platforms.
   */
  #define SOCKET int

  /*!
   * \brief In Winsock, the error return if socket() fails is INVALID_SOCKET;
   * in UN*X, it's -1.
   * We define INVALID_SOCKET to be -1 on UN*X, so that it can be used on
   * both platforms.
   */
  #define INVALID_SOCKET -1
#endif

Or some other way :)

microvax1 simulator tape device tq (MUA0:) not working

The microvax1 simulator tape device tq (MUA0:) is not working properly.
You can INIT a tape, but you cannot MOUNT it.

  • Context

MicroVMS V4.6
This is a severe bug, because the tape drive is not usable.

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

sim> show version
MicroVAX I (KA610) simulator V4.0-0 Current
Simulator Framework Capabilities:
64b data
64b addresses
Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
Idle/Throttling support is available
Virtual Hard Disk (VHD) support
RAW disk and CD/DVD ROM support
Asynchronous I/O support (Lock free asynchronous event queue)
Asynchronous Clock support
FrontPanel API Version 12
Host Platform:
Compiler: GCC 8.3.0
Simulator Compiled as C arch: x64 (Release Build) on Jun 15 2022 at 09:34:51
Build Tool: simh-makefile
Memory Access: Little Endian
Memory Pointer Size: 64 bits
Large File (>2GB) support
SDL Video support: SDL Version 2.0.9, PNG Version 1.6.36, zlib: 1.2.11
PCRE RegEx (Version 8.39 2016-06-14) support for EXPECT commands
OS clock resolution: 1ms
Time taken by msleep(1): 1ms
Ethernet packet info: libpcap version 1.9.0-PRE-GIT (with TPACKET_V3)
OS: Linux think 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
Processor Name: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
tar tool: tar (GNU tar) 1.30
curl tool: curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1n zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
simh git commit id: 5a7a4c7
simh git commit time: 2022-05-31T09:47:16-04:00
sim>

  • how you built the simulator or that you're using prebuilt binaries

$ make microvax1
lib paths are: /lib/ /lib/i386-linux-gnu/ /lib/x86_64-linux-gnu/ /lib32/ /usr/lib/x86_64-linux-gnu/libfakeroot/ /usr/local/lib/ /usr/lib/
include paths are: /usr/lib/gcc/x86_64-linux-gnu/8/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed /usr/include/x86_64-linux-gnu /usr/include
using libm: /lib/x86_64-linux-gnu/libm.so
using librt: /lib/x86_64-linux-gnu/librt.so
using libpthread: /lib/x86_64-linux-gnu/libpthread.so /usr/include/pthread.h
using libpcre: /lib/x86_64-linux-gnu/libpcre.so /usr/include/pcre.h
using semaphore: /usr/include/semaphore.h
using libdl: /lib/x86_64-linux-gnu/libdl.so /usr/include/dlfcn.h
using libpng: /lib/x86_64-linux-gnu/libpng.so /usr/include/png.h
using zlib: /lib/x86_64-linux-gnu/libz.so /usr/include/zlib.h
using mman: /usr/include/x86_64-linux-gnu/sys/mman.h
using libSDL2: /usr/include/SDL2/SDL.h
using libpcap: /usr/local/include/pcap.h
*** Info ***
*** Info *** microvax1 Simulator is being built with
*** Info *** minimal libpcap networking support
*** Info ***
*** Info ***
*** Info *** Simulators on your Linux platform can also be built with
*** Info *** extended LAN Ethernet networking support by using VDE Ethernet.
*** Info ***
*** Info *** To build simulator(s) with extended networking support you
*** Info *** should install the vde2 package to provide this
*** Info *** functionality for your Linux system:
*** Info *** $ sudo apt-get install libvdeplug-dev
*** Info ***


*** microvax1 Simulator being built with:
*** - compiler optimizations and no debugging support. GCC Version: 8.3.0.
*** - dynamic networking support using Linux provided libpcap components.
*** - Local LAN packet transports: PCAP TAP NAT(SLiRP)
*** - video capabilities provided by libSDL2 (Simple Directmedia Layer).
*** - Per simulator tests will be run.


gcc -std=gnu99 -U__STRICT_ANSI__ -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_COMPILER="GCC Version: 8.3.0" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_PCRE_H -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DHAVE_LINUX_CDROM -DSIM_HAVE_DLOPEN=so -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN ./VAX/vax_cpu.c ./VAX/vax_cpu1.c ./VAX/vax_fpa.c ./VAX/vax_cis.c ./VAX/vax_octa.c ./VAX/vax_cmode.c ./VAX/vax_mmu.c ./VAX/vax_sys.c ./VAX/vax_syscm.c ./VAX/vax610_stddev.c ./VAX/vax610_sysdev.c ./VAX/vax610_io.c ./VAX/vax610_syslist.c ./VAX/vax610_mem.c ./VAX/vax_vc.c ./VAX/vax_lk.c ./VAX/vax_vs.c ./VAX/vax_2681.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_xq.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_td.c ./PDP11/pdp11_io_lib.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_VAX -DVAX_610 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ./VAX -I ./PDP11 -DHAVE_PCAP_NETWORK -I/usr/local/include/ -DBPF_CONST_STRING -DUSE_SHARED -DHAVE_TAP_NETWORK -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/.c slirp_glue/.c -DHAVE_LIBSDL -DUSE_SIM_VIDEO /usr/bin/sdl2-config --cflags /usr/bin/sdl2-config --libs -o BIN/microvax1 -lm -lrt -lpthread -lpcre -ldl -lpng -lz
BIN/microvax1 RegisterSanityCheck /media/ulli/SSD-Backup/gunkies.org/OPEN simh-master/VAX/tests/vax-diag_test.ini </dev/null
Running internal register sanity checks on MicroVAX I (KA610) simulator.
*** Good Registers in MicroVAX I (KA610) simulator.

MicroVAX I (KA610) simulator V4.0-0 Current simh git commit id: 5a7a4c7

  • the simulator configuration file (or commands) which were used when the problem occurred.

SET CPU 4M
SET CPU CONHALT
SET CPU IDLE=VMS
SET CPU INSTRUCTIONS=D-FLOAT
SET CONSOLE LOG=FRANZ-CLONE_005_bugs.log

SET RQ0 ENA
SET RQ0 RD31
ATT RQ0 franz-clone.R31

SET RQ1 ENA
SET RQ1 RX50

SET RQ2 ENA
SET RQ2 RX50

SET RQ3 RD54
att RQ3 VMS047.R54

SET DZ LINES=4
ATT DZ 6666

SET TQ ENA
ATT TQ0 BB-BT05D-BE_VMS4.6_87.tap

SET LPT DIS
SET RL ENA
SET RL0 RL02
ATT RL0 TEST.RL2

SET TS DIS

SET XQ ENA
SET XQ TYPE=DEQNA

;BOOT RQ0

  • the expected behavior and the actual behavior

Using MicroVMS V4.6:
Should be:
$ mount/over=id mua0:
%MOUNT-I-MOUNTED, VMS046 mounted on _MUA0:
$
But is:
$ mount/over=id mua0:
%MOUNT-F-NOTLABELMT, tape is not labeled
$
The microvax2 simulator mounts the same image without problems.
The problem in reproducible with the following VMS commands:
sim> att tq0 test.tap
%SIM-INFO: TQ0: Tape Image 'test.tap' scanned as SIMH format
sim> c

$ init mua0: test
$ mount mua0: test
%MOUNT-F-NOTLABELMT, tape is not labeled
$

  • you may also need to provide specific pointers to data files that may be necessary to demonstrate the problem

I can provide the MicroVMS V4.6 disk image.

i7080 declaration errors observed in LTO build

  • Context

Compiling with LTO finds more errors than simple compile...

gcc -flto -std=gnu99 -U__STRICT_ANSI__  -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_GIT_COMMIT_ID=32bafbb245de6805e1d8baac6664ec1f13e33e3b+uncommitted-changes -DSIM_GIT_COMMIT_TIME=2022-10-26T16:44:58-0700  -DSIM_COMPILER="GCC Version: 9.4.0" -DSIM_BUILD_OS_VERSION="Linux RedLaptop 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO  -DHAVE_PCRE_H -DHAVE_LIBEDIT -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DHAVE_LINUX_CDROM -DSIM_HAVE_DLOPEN=so -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN  ./I7000/i7080_cpu.c ./I7000/i7080_sys.c ./I7000/i7080_chan.c ./I7000/i7080_drum.c ./I7000/i7000_cdp.c ./I7000/i7000_cdr.c ./I7000/i7000_con.c ./I7000/i7000_chan.c ./I7000/i7000_lpr.c ./I7000/i7000_mt.c ./I7000/i7000_chron.c ./I7000/i7000_dsk.c ./I7000/i7000_com.c ./I7000/i7000_ht.c  ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -I ./I7000 -DI7080 -DUSE_SIM_CARD -o BIN/i7080 -lm -lrt -lpthread -lpcre -ledit -ldl -lpng -lz
./I7000/i7080_chan.c:67:21: warning: type of ‘ioflags’ does not match original declaration [-Wlto-type-mismatch]
   67 | extern uint8        ioflags[5000/8];
      |                     ^
./I7000/i7080_cpu.c:221:21: note: array types have different bounds
  221 | uint8               ioflags[6200/8] = {0};      /* IO Error flags */
      |                     ^
./I7000/i7080_cpu.c:221:21: note: ‘ioflags’ was previously declared here
./I7000/i7080_chan.c:60:21: warning: type of ‘AC’ does not match original declaration [-Wlto-type-mismatch]
   60 | extern uint8        AC[6 * 512];
      |                     ^
./I7000/i7080_cpu.c:204:21: note: array types have different bounds
  204 | uint8               AC[6*256];                  /* store registers */
      |                     ^
./I7000/i7080_cpu.c:204:21: note: ‘AC’ was previously declared here

simh not compiling on Android

/simh $ make vax780

lib paths are: /usr/lib /data/data/com.termux/files/usr/lib /system/lib
include paths are: /data/data/com.termux/files/usr/lib/clang/15.0.6/include /data/data/com.termux/files/usr/include/arm-linux-androideabi /data/data/com.termux/files/usr/include
using libm: /system/lib/libm.so
using librt: /data/data/com.termux/files/usr/lib/librt.so
using libpthread: /data/data/com.termux/files/usr/lib/libpthread.so /data/data/com.termux/files/usr/include/pthread.h
using libpcre: /data/data/com.termux/files/usr/lib/libpcre.so /data/data/com.termux/files/usr/include/pcre.h
using semaphore: /data/data/com.termux/files/usr/include/semaphore.h
using libdl: /system/lib/libdl.so /data/data/com.termux/files/usr/include/dlfcn.h
*** Warning ***
*** Warning *** vax780 Simulator is being built WITHOUT
*** Warning *** libpcap networking support
*** Warning ***
*** Warning *** To build simulator(s) with libpcap networking support you
*** Warning *** should install the libpcap development components for
*** Warning *** for your Linux system:
*** Warning *** $ sudo apt-get install libpcap-dev
*** Warning ***
*** Info ***
*** Info *** Simulators on your Linux platform can also be built with
*** Info *** extended LAN Ethernet networking support by using VDE Ethernet.
*** Info ***
*** Info *** To build simulator(s) with extended networking support you
*** Info *** should install the vde2 package to provide this
*** Info *** functionality for your Linux system:
*** Info *** $ sudo apt-get install vde2
*** Info ***


*** vax780 Simulator being built with:
*** - compiler optimizations and no debugging support. clang version 15.0.6.
*** - Local LAN packet transports: TAP NAT(SLiRP)
*** - Per simulator tests will be run.


*** git commit id is ce79113.
*** git commit time is 2022-12-02T13:19:56+0100.


In file included from :387:
:7:9: error: 'ANDROID_API' macro redefined [-Werror,-Wmacro-redefined]
#define ANDROID_API 31
^
:381:9: note: previous definition is here
#define ANDROID_API ANDROID_MIN_SDK_VERSION
^
1 error generated.
make: *** [makefile:2175: BIN/buildtools/BuildROMs] Error 1
/simh $ uname -a
Linux localhost 4.14.186-24638760 #1 SMP PREEMPT Sat Oct 1 13:01:13 KST 2022 armv8l Android

SCP: CTAB for a device

Is it possible to add something similar to a CTAB simulator-specific command to a device? Examples may be "FORMAT" to create a blank disk media file or "DSEC" to dump a sector on the disk.

SCP: SET ON in init scripts not working as described

The values following the word "ON" are specific error codes (SCPE_xxxx) text or numeric values for xxxx. If your driving script otherwise doesn't deal with error trapping, then the general word ERROR covers everything:

sim> # enable error trapping:
sim> SET ON 
sim> # trap all non 0 values
sim> ON ERROR Echo %STATUS%-%TSTATUS%
sim> # specifically for your extended command passing status in case it is interesting...
sim> ON ERROR <your-extended-command> %STATUS%

You wouldn't have to type the above except once into an init file: ~/simh.ini

I have a ~/simh.ini file that contains:

set on
on error reg

When I run altairz80 I get the following:

% altairz80 -v

Altair 8800 (Z80) simulator V4.0-0 Current        git commit id: a06ab205
/Users/patrick/simh.ini-2> set on
/Users/patrick/simh.ini-3> on error reg
sim> show on
On Processing for input commands is disabled

sim>

I have to run altairz80 with the -o switch in order for my ON settings in ~/simh.ini to remain active.

% altairz80 -v -o

Altair 8800 (Z80) simulator V4.0-0 Current        git commit id: a06ab205
/Users/patrick/simh.ini-2> set on
/Users/patrick/simh.ini-3> on error reg
sim> show on
On Processing for input commands is enabled
    on ERROR     reg

on state and actions are inherited by nested do commands and subroutines
sim>

Is ~/simh.ini supposed to require inheritance with -o?

I have the same issue when using ./altairz80.ini

Github tagging

Not really an Issue, more a request:

It is possible at some point to start creating Github Tags so software packages can be made downstream?

Tks
António

WRITEENABLED showing inconsisently in HELP

If you type help rp and help rk, the output for show WRITEENABLED will be different:
For RK:

show RKn WRITEENABLED           Write enable disk drive

For RP:

show RPn write enabled          Write enable disk drive

(and same for RL, for example).
The culprit for that is this very strange code (scp.c line 8057):

static void fix_writelock_mtab (DEVICE *dptr)
{
MTAB *mtab;

for (mtab = dptr->modifiers; (mtab != NULL) && (mtab->mstring != NULL); ++mtab) {
    if (mtab->disp == &show_writelock)
        mtab->pstring = "WRITEENABLED";
    }
}

(it's called only once from the reset_all() function, very close to main())

As you can see it iterates the modifiers while there's "mstring" present. But both RP and RL have a modifier that precedes the write locking one that does not have the "mstring" (RP: "MASSBUS", RL: "RLV12"), which means that the flow control never reaches the "patching" with the "WRITEENABLED" string.

Now, if the code of that function is changed to have (a seemingly better expression)

(mtab != NULL) && ((mtab->mstring != NULL) || (mtab->pstring != NULL))

as the loop condition, then it would properly patch RP's MTAB but still have an issue with RL's, whose MTAB has been declared const (so no members can actually be "patched").

Isn't that easier just to replace all those occurrences of "write enabled" with "WRITEENABLED" directly in the source code -- because there's the show_writelock() print function already in there, so "write enabled" from MTAB::pstring seems as no longer used but only in the "SHOW" command.

At any rate, MTAB patching like so looks like a very bad idea, IMO (the RL's case just supports that).

vax780: segfault on saving state

  • Context

Saving the emulator's state with save foo (at the simh> prompt) segfaults and produces a (corrupt?) file that will make the emulator segfault on a subsequent launch when trying to restore state with restore foo.

  • output of "sim> SHOW VERSION"

+sim> show version
VAX 11/780 simulator V4.0-0 Current
    Simulator Framework Capabilities:
        64b data
        64b addresses
        Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 12
    Host Platform:
        Compiler: GCC 8.3.0
        Simulator Compiled as C arch: x64 (Release Build) on Sep 20 2022 at 00:20:56
        Build Tool: simh-makefile
        Memory Access: Little Endian
        Memory Pointer Size: 64 bits
        Large File (>2GB) support
        SDL Video support: No Video Support
        PCRE RegEx (Version 8.39 2016-06-14) support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        Ethernet packet info: libpcap version 1.8.1
        OS: Linux localhost 4.19.0-21-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64 GNU/Linux
        Processor Name: AMD E1-2100 APU with Radeon(TM) HD Graphics
        tar tool: tar (GNU tar) 1.30
        curl tool: curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1n zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
        simh git commit id: 84bf5f4d
        simh git commit time: 2022-09-19T09:37:17-07:00
  • how you built the simulator or that you're using prebuilt binaries

SIMH built from sources downloaded from GitHub. Make's output: mk-vax780.log

  • the simulator configuration file (or commands) which were used when the problem occurred.

vax780.txt

Can Not get Unix-V5 to run on PDP-11 SIMH 39

Can Not get Unix-V5 to run on PDP-11 SIMH 39

After firing up PDP-11 ./pdp11 setup.ini then this occurs:

sim> run 100000

Simulation stopped, PC: 100012 (BR 100012)
sim> run 0
Resetting all devices... This may not have been your intention.
The GO and CONTINUE commands do not reset devices.

HALT instruction, PC: 000002 (HALT)
sim>

sim> diskinfo system.dsk
Container: /home/ken/SIMH/simh/BIN/pdp-11/system.dsk
Simulator: PDP-11
DriveType: RK05
SectorSize: 512
SectorCount: 4872
TransferElementSize: 2
AccessFormat: SIMH
CreationTime: Tue Jan 31 18:30:14 2023
DeviceName: RK
HighwaterSector: 4872
Container Size: 2,494,464 bytes

Any help appreciated. Thanks

Ken

Console terminal issue in V3 branch

This is a Mac build of the V3 branch, pdp11. I try to boot RSTS. It boots ok, I can talk to the INIT component. When I start the OS, I get the "start timesharing" prompt, and I can answer that.
At the completion of the startup script, the startup job logs out. At this point, the terminal is unresponsive. If at this point I enter Control/E to get to the simulator prompt, I get "sim> " displayed at high speed in an infinite loop. "kill" works to terminate simh.

SCP: Discussion about adding a -q flag to "ON" command

When using the ON command, the standard stop message is displayed before the ON command is processed.

sim> set on
sim> on stop ex 0
sim> on step ex af
sim> g

Simulation stopped, PC: 05C10 (ANI 02h)
0:	00
sim> s

Step expired, PC: 05C12 (JNZ 5C0Eh)
AF:	0210
sim> 

Sometimes this information isn't wanted and takes screen space away from the desired output.

I have some code that adds a -q (quiet) switch to "ON":

sim> set on
sim> on -q stop echof -n "%TSTATUS% ";ex 0
sim> on -q step echof -n "%TSTATUS% ";ex af
sim> g
Simulation stopped 0:	00
sim> s
Step expired AF:	0210
sim> 

This puts all the desired output on 1 line instead of 3, which I've found helpful when single-stepping a lot of code, and adds quite a bit of flexibility to the ON command without impacting anyone not having any use for ON switches.

The SHOW ON command has another column added to the list to indicate if the switch is set for that stop code. If global ON ERROR is set, specific codes use their switch setting while unlisted codes use ERROR's switch setting.

sim> on 1 ex 100
sim> show on
On Processing for input commands is enabled
    on 1               ex 100
    on STEP    QUIET   echof -n "%TSTATUS% ";ex af
    on STOP    QUIET   echof -n "%TSTATUS% ";ex 0
 
sim> set break 0
sim> g 0

Breakpoint, PC: 00000 (NOP)
100:	00
sim>

The code I've written will support future ON switches as well.

Before I push a PR, I wanted to run the idea by the SCP group.

zlib is an additional MacOS brew dependency

  • Context

I tried building on MacOS (11.6.7, although that is irrelevant for this problem) starting with the listed brew dependencies and soon got a link error for zlib. After installing zlib, the build seems to be working.

VAX Simulator Entering Time Incorrectly on First Boot

  • Context

After restoring the save set from the standalone VMS 7.2 or 7.3 and booting for the first time from the hard disk you are requested to enter the date and time. The emulator appears to be attempting to enter it automatically for me, which is nice, however there appears to be an extra space in-between the date and the time which causes a %DCL-W-MAXPARM error that just endlessly repeats.

I only included output for the vax8600 simulator, but I have tried this using both the vax 8600 and the regular vax emulator and I get the same results.

I did attempt to google my issue, and I can't seem to find anything, which could definitely be my own fault. Maybe there is a simple answer to this that I have just overlooked, but I sure would appreciate any help that you all could provide me! :)

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

sim> show version
VAX 8650 simulator V4.0-0 Current
    Simulator Framework Capabilities:
        64b data
        64b addresses
        Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 12
    Host Platform:
        Compiler: GCC 12.1.0
        Simulator Compiled as C arch: x64 (Release Build) on Jul 19 2022 at 16:29:40
        Build Tool: simh-makefile
        Memory Access: Little Endian
        Memory Pointer Size: 64 bits
        Large File (>2GB) support
        SDL Video support: No Video Support
        PCRE RegEx (Version 8.45 2021-06-15) support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        Ethernet packet info: libpcap version 1.10.1 (with TPACKET_V3)
        OS: Linux souji 5.18.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 15 Jul 2022 15:33:02 +0000 x86_64 GNU/Linux
        Processor Name: Intel(R) Pentium(R) CPU G860 @ 3.00GHz
        tar tool: tar (GNU tar) 1.34
        curl tool: curl 7.84.0 (x86_64-pc-linux-gnu) libcurl/7.84.0 OpenSSL/1.1.1q zlib/1.2.12 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.3 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.48.0
        git commit id: 677e89ba
        git commit time: 2022-07-12T13:54:58-0700
  • how you built the simulator or that you're using prebuilt binaries

I am building the simulator from the open-simh/simh source myself, running Arch Linux, compiler output follows:

make vax8600
lib paths are: /usr/lib/ /usr/lib/libfakeroot/ /usr/lib32/ /lib/
include paths are:  /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/include /usr/local/include /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/include-fixed /usr/include
using libm: /usr/lib/libm.so
using librt: /usr/lib/librt.a
using libpthread: /usr/lib/libpthread.a /usr/include/pthread.h
using libpcre: /usr/lib/libpcre.so /usr/include/pcre.h
using semaphore: /usr/include/semaphore.h
using libdl: /usr/lib/libdl.a /usr/include/dlfcn.h
using libpng: /usr/lib/libpng.so /usr/include/png.h
using zlib: /usr/lib/libz.so /usr/include/zlib.h
using mman: /usr/include/sys/mman.h
using libpcap: /usr/include/pcap.h
*** Info ***
*** Info *** vax8600 Simulator is being built with
*** Info *** minimal libpcap networking support
*** Info ***
*** Info ***
*** Info *** Simulators on your Linux platform can also be built with
*** Info *** extended LAN Ethernet networking support by using VDE Ethernet.
*** Info ***
*** Info *** To build simulator(s) with extended networking support you
*** Info *** should read 0readme_ethernet.txt and follow the instructions
*** Info *** regarding the needed libvdeplug components for your Linux
*** Info *** platform
*** Info ***
***
*** vax8600 Simulator being built with:
*** - compiler optimizations and no debugging support. GCC Version: 12.1.0.
*** - dynamic networking support using Linux provided libpcap components.
*** - Local LAN packet transports: PCAP TAP NAT(SLiRP)
*** - Per simulator tests will be run.
***
*** git commit id is 677e89bab08a685c271923cd9b0077acffdad153.
*** git commit time is 2022-07-12T13:54:58-0700.
***
gcc -std=gnu99 -U__STRICT_ANSI__  -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_GIT_COMMIT_ID=677e89bab08a685c271923cd9b0077acffdad153 -DSIM_GIT_COMMIT_TIME=2022-07-12T13:54:58-0700  -DSIM_COMPILER="GCC Version: 12.1.0" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO  -DHAVE_PCRE_H -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DHAVE_LINUX_CDROM -DSIM_HAVE_DLOPEN=so -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN  ./VAX/vax_cpu.c ./VAX/vax_cpu1.c ./VAX/vax_fpa.c ./VAX/vax_cis.c ./VAX/vax_octa.c  ./VAX/vax_cmode.c ./VAX/vax_mmu.c ./VAX/vax_sys.c  ./VAX/vax_syscm.c ./VAX/vax860_stddev.c ./VAX/vax860_sbia.c ./VAX/vax860_abus.c ./VAX/vax780_uba.c ./VAX/vax7x0_mba.c ./VAX/vax860_syslist.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_xu.c ./PDP11/pdp11_ry.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_rp.c ./PDP11/pdp11_tu.c ./PDP11/pdp11_hk.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_dmc.c ./PDP11/pdp11_dup.c ./PDP11/pdp11_td.c ./PDP11/pdp11_tc.c ./PDP11/pdp11_rk.c ./PDP11/pdp11_io_lib.c ./PDP11/pdp11_ch.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_VAX -DVAX_860 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ./PDP11 -DHAVE_PCAP_NETWORK -I/usr/include/ -DBPF_CONST_STRING -DUSE_SHARED -DHAVE_TAP_NETWORK -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/*.c slirp_glue/*.c -o BIN/vax8600 -lm -lrt -lpthread -lpcre -ldl -lpng -lz  
BIN/vax8600 RegisterSanityCheck /home/horuden/src/open-simh/VAX/tests/vax-diag_test.ini </dev/null 
 Running internal register sanity checks on VAX 8600 simulator.
*** Good Registers in VAX 8600 simulator.

VAX 8600 simulator V4.0-0 Current        git commit id: 677e89ba
Running Hardware Core Test (EVKAA)

*** PASSED - VAX 8600 Hardware Core Instruction test EVKAA


Starting VAX Diagnostic Supervisor


Running - VAX Basic Instructions Exerciser EVKAB


*** PASSED - VAX Basic Instructions Exerciser EVKAB


Running - VAX Floating Point Instructions Exerciser EVKAC


*** PASSED - VAX Floating Point Instructions Exerciser EVKAC


Running - VAX Compatibility Mode Instructions Exerciser EVKAD


*** PASSED - VAX Compatibility Mode Instructions Exerciser EVKAD


*** All Diagnostic Supervisor tests PASSED ***
  • the simulator configuration file (or commands) which were used when the problem occurred.

cat vms73.ini 
;;;;    VAX 8650 Running VMS 7.2    ;;;;
;
; Set up the CPU.
SET CPU MODEL=8650
SET CPU IDLE=VMS
SET CPU 64m
;
; Set up the hard disk drives. 
; RA92 is largest-supported VAX drive. (1.5GB)
SET RQ0 ra92
ATTACH RQ0 ./disk/vax0.dsk
SET RQ1 ra92
ATTACH RQ1 ./disk/data1.dsk
SET RQ2 ra92
ATTACH RQ2 ./disk/data2.dsk
;
;Set up the CD-ROM drive.
SET RQ3 cdrom
ATTACH -r RQ3 ./disk/VAXVMS73OS.iso
;
;Set up Mag Tape Drive (TE16):
SET TU0 enable
SET TU1 disable
SET TU2 disable
SET TU3 disable
SET TU4 disable
SET TU5 disable
SET TU6 disable
SET TU7 disable
;
;Set up terminal multiplexor
SET DZ enable
SET DZ LINES=8
ATTACH DZ LINE=0,connect=/dev/ttyUSB0
ATTACH DZ 10001
;
;Set up Printing
SET LPT enable
ATTACH LPT ./print/%DATE_YYYY%%DATE_MM%%DATE_DD.txt
SET LPT append
expect -p "(DD-MMM-YYYY HH:MM)" send -t after=500k "%DATE_DD%-%DATE_MMM%-%DATE_YYYY%  %TIME_HH%:%TIME_MM%\r"; continue
;expect -p "(DD-MMM-YYYY HH:MM)" send -t after=500k "%DATE_DD%-%DATE_MMM%-%DATE_YYYY% %TIME%\r"; continue
;
; Attach Ethernet to a network interface
;SET XU enable
;SET XU mac=AA-00-04-08-00-2B
;ATTACH XU tap:tap0
;
; Disable unused devices. 
SET HK disable 
SET RL disable
SET RK disable
SET RP disable
SET RY disable
SET TC disable
SET TS disable
SET TQ disable
SET VH disable
SET TDC disable
SET RQB disable
SET RQC disable
SET RQD disable
SET XUB disable
;
; Start the emulator
;BOOT RQ0
  • the expected behavior and the actual behavior

I would expect to either A) have to enter the date and time myself, or B) for the date and time to be entered automatically correctly, i.e. without the extra space

sim> boot rq0
%SIM-INFO: Loading boot code from internal vmb.exe

%SYSBOOT-I-SYSBOOT Mapping the SYSDUMP.DMP on the System Disk
%SYSBOOT-W-SYSBOOT Can not map SYSDUMP.DMP on the System Disk
%SYSBOOT-I-SYSBOOT Mapping PAGEFILE.SYS on the System Disk
%SYSBOOT-I-SYSBOOT SAVEDUMP parameter not set to protect the PAGEFILE.SYS
   OpenVMS (TM) VAX Version BI73-7G7 Major version id = 1 Minor version id = 0
%WBM-I-WBMINFO Write Bitmap has successfully completed initialization.

           OpenVMS VAX V7.3 Installation Procedure

                         Model: VAX 8650
                 System device: RA92 - _DUA0:
                   Free Blocks: 2854566
                      CPU type: 04-00



* Please enter the date and time (DD-MMM-YYYY HH:MM) 19-Jul-2022  17:50
%DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters
 \17\

* Please enter the date and time (DD-MMM-YYYY HH:MM) 19-Jul-2022  17:50
%DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters
 \17\

* Please enter the date and time (DD-MMM-YYYY HH:MM) 19-Jul-2022  17:50
%DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters
 \17\

Incorrect disk size reporting (and patch)

On platforms that have t_addr and t_offset of different bitness (e.g. Cygwin), disk capacity for large disks may be reported buggy due to the integer overflow:

 $ ./pdp11

PDP-11 simulator V4.0-0 Current        git commit id: 94a10aba
sim>  set cpu 11/70 4m
Disabling XQ
sim> set rq0 rauser=9000
sim> show rq0
RQ0     414MB, not attached, write enabled
        RA8U, UNIT=0, autosize
        AUTO detect format

Note the 414MB for a 9G disk above.

The code responsible for the output resides in scp.c: sprint_capac(). It uses t_addr in computations, which can be a 32-bit integer (whereas t_offset is 64-bit at the same time). Note that sim_disk.c calculates disk capacity (with approximately the same flow control) using t_offset. The following patch (attached) fixes the issue:

From 59fb2f19a662ccdf45150c4f7d94661ec5f4b432 Mon Sep 17 00:00:00 2001
From: Tony Lawrence <[email protected]>
Date: Tue, 14 Jun 2022 18:15:40 -0400
Subject: [PATCH] Use 64-bit values to avoid overflow in disk capacity output

---
 scp.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scp.c b/scp.c
index 4a747cb8..2a3f4ce1 100644
--- a/scp.c
+++ b/scp.c
@@ -6473,10 +6473,10 @@ return SCPE_OK;
 const char *sprint_capac (DEVICE *dptr, UNIT *uptr)
 {
 static char capac_buf[MAX_WIDTH + 12];
-t_addr kval = (uptr->flags & UNIT_BINK)? 1024: 1000;
-t_addr mval;
+t_offset kval = (uptr->flags & UNIT_BINK)? 1024: 1000;
+t_offset mval;
 double remfrac;
-t_addr psize = uptr->capac;
+t_offset psize = (t_offset) uptr->capac;
 const char *scale, *width;

 if (sim_switches & SWMASK ('B'))
--
2.33.0

After it, the disk capacity gets reported correctly:

$ ./pdp11

PDP-11 simulator V4.0-0 Current        git commit id: 59fb2f19
sim> set cpu 11/70 4m
Disabling XQ
sim> set rq0 rauser=9000
sim> show rq0
RQ0     9004MB, not attached, write enabled
        RA8U, UNIT=0, autosize
        AUTO detect format

CH11 may be on BR5, not BR6 - Requires independent confirmation with real hardware

When implementing a CH11 workalike on a physical KS10, I observed that ITS would crash if there was a nontrivial amount of DZ11 traffic occurring simultaneously with network activity. This was traced to remote terminal connections at BR6 pre-empting the DZ11 interrupt handler at BR5, corrupting the state of the terminal IO handler. Crashes were usually in the vicinity of TYP1B.

This would indicate that the CH11 is supposed to be at BR5, as described in AIM-628, instead of BR6. Moving my CH11 workalike to BR5 resolved the crashes.

I do not have a MIT-made CH11 to confirm this with. I do not know if simh exhibits this behavior. I do believe that simh, similar to klh10, places the CH11 at BR6 by default.

Please take this issue under advisement until someone with better information is able to confirm or disprove my interpretation of events.

egrep deprecation warning messages from sim_ether.c

  • Context

When I run, e.g. the vax780 simulator, and attach an XU device, several warning messages are displayed:

VAX 11/780 simulator V4.0-0 Current        git commit id: ce791138
egrep: warning: egrep is obsolescent; using grep -E
egrep: warning: egrep is obsolescent; using grep -E
egrep: warning: egrep is obsolescent; using grep -E
egrep: warning: egrep is obsolescent; using grep -E
[... repeated about 20 more times ...]

My system has GNU grep 3.8.

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

>>> show version
VAX 11/780 simulator V4.0-0 Current
 [...]
    Host Platform:
        Compiler: GCC 12.2.0
        [...]
        OS: Linux daenerys 6.1.1-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 21 Dec 2022 22:27:55 +0000 x86_64 GNU/Linux
        [...]
        git commit id: ce791138
        git commit time: 2022-12-02T13:19:56+0100
  • how you built the simulator or that you're using prebuilt binaries

I built from source with make vax780

  • the simulator configuration file (or commands) which were used when the problem occurred.

The following vax780.ini reproduces the problem (I have an existing tap interface on my system named tapVAX):

set XU enable, TYPE=DELUA, MAC=08:00:2B:06:6A:00
attach XU tap:tapVAX
  • the expected behavior and the actual behavior

Expected behavior: no warning messages from the system tools simh is executing.

Actual behavior: many messages about using the deprecated egrep instead of grep -E.

  • Fix

Changing the egrep on lines 1786 and 1788 in sim_ether.c to grep -E prevents the warnings.

Modernize and simplify the building system

There were multiple suggestions to switch to the higher-level buildsystem for SIMH to simplify the readability, portability, and structure of the project. Two main options were offered - CMake and Meson.

CMake

@bscottm ported the SIMH to the CMake here: simh/simh#775

Add CMake build support as a parallel alternative to the makefile-based build system. This is not intended to be a replacement for the makefile-based build system (or the collection of Visual Studio solutions, for that matter.)

CMake is a meta-build system: It generates the build environment for a multiplicity of build systems (Ninja, VS 2019, VS 2015, MinGW Makefiles, to name a few). Documentation for how to use is in README-cmake.md.

Meson

To simplify compilation and cross-platform support, and inspired by various C projects that switched from Autotools to Meson, including QEMU, I did an initial work of migrating from the Makefile to Meson.

There are two implementations of this language:

For now, I did the simplest compilation without running tests and optional features. Please let me know if there is an interest in this, before I proceed.

I split into two commits - adding the buildsystem and removing the unnecessary files.
The second commit is not really necessary, since these can coexist without any conflict, making the gradual transition possible, like X.org, Wayland, Mesa, QEMU did, slowly deprecating autotools on the course of multiple releases.

My PR was simh/simh#1099 - less complete than the CMake one, I think.

SDL2 2.26.x: Unrecognized user event messages are back.

Building SIMH with SDL2 2.26.x latest release generates a series of warning messages when beeping the lunar lander's crash:

%SIM-INFO: Unrecognized user event.
%SIM-INFO:   type = 32768
%SIM-INFO:   timestamp = 142421
%SIM-INFO:   windowID = 1072955308
%SIM-INFO:   code = 10
%SIM-INFO:   data1 = 00000000
%SIM-INFO:   data2 = 00000000

%SIM-INFO: SIMH has encountered a bug in SDL2.  An upgrade to SDL2
version 2.0.14 should fix this problem.

Any historical commentary to inform the libsdl-org developers on how to fix this warning? Note: I did look through the changed files between the 2.24.x release series and 2.26.x. Nothing obvious in the 800+ files changed leaps out.

3b2 - build errors/warnings

1>3b2_stddev.c
1>..\3B2\3b2_stddev.c(297) : error C2065: 'uint32_t' : undeclared identifier
1>..\3B2\3b2_stddev.c(297) : error C2146: syntax error : missing ';' before identifier 'catchup_ticks'
1>..\3B2\3b2_stddev.c(297) : error C2065: 'catchup_ticks' : undeclared identifier
1>..\3B2\3b2_stddev.c(308) : error C2065: 'catchup_ticks' : undeclared identifier
1>..\3B2\3b2_stddev.c(308) : error C2065: 'uint32_t' : undeclared identifier
1>..\3B2\3b2_stddev.c(308) : error C2146: syntax error : missing ';' before identifier 'delta'
1>..\3B2\3b2_stddev.c(308) : warning C4552: '*' : operator has no effect; expected operator with side-effect
1>..\3B2\3b2_stddev.c(311) : error C2065: 'catchup_ticks' : undeclared identifier
1>..\3B2\3b2_stddev.c(312) : error C2065: 'catchup_ticks' : undeclared identifier
1>3b2_cpu.c
1>..\3B2\3b2_cpu.c(879) : warning C4101: 'r' : unreferenced local variable
1>..\3B2\3b2_cpu.c(1035) : warning C4101: 'r' : unreferenced local variable
1>

Stop modifying user .DSK images unconditionally (until a better solution found)

.DSK files may not be modified by simh without an explicit user consent. Suggested it to freeze the modifications by applying the following temporary patch until a further (better) solution is found / suggested. With the patch applied, the images, which have been tainted with, will still be able to provide DISKINFO, and do a potential ZAP (to remove the "footer"), but no further additions of the extraneous sector (the "footer") will be made. Also, most (if not all) functionality is going to keep working (including the infamous autosize). I've been running my systems with this patch for a long time now, since discovering the behind-the-scene modification by simh (and reporting it as an issue 1059 in the former source code repository).

From 15d77b6da98b3ae6721a97902f1a50241c6bf6fe Mon Sep 17 00:00:00 2001
From: Tony Lawrence <[email protected]>
Date: Tue, 14 Jun 2022 15:40:54 -0400
Subject: [PATCH 1/2] Disable DSK footer unconditionally

---
 sim_disk.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sim_disk.c b/sim_disk.c
index d19cf034..0355f79f 100644
--- a/sim_disk.c
+++ b/sim_disk.c
@@ -2439,6 +2439,8 @@ time_t now = time (NULL);
 t_offset total_sectors;
 t_offset highwater;

+return SCPE_OK;
+
 if ((dptr = find_dev_from_unit (uptr)) == NULL)
     return SCPE_NOATT;
 if (uptr->flags & UNIT_RO)
--
2.33.0

Questionable messages from tape attach

  • Context

Open SimH started adding some "informational" messages from the tape attach command that do not add any value, and even may be more confusing than they were supposed to be helpful (for what I guess was the idea).

Perhaps, this is not quite a new feature... I have a few versions of SimH around that I use interchangeably, and it might have happened that I wasn't using the latest ones with the tapes recently, but when I did, that's what I found out (see below).

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

Latest github pull

  • how you built the simulator or that you're using prebuilt binaries

make pdp11
  • the simulator configuration file (or commands) which were used when the problem occurred.

$ ~/simh/BIN/pdp11

PDP-11 simulator V4.0-0 Current
sim> set cpu 11/70 2m
Disabling XQ
sim> att -r tq0 ./m42kit.tap
%SIM-INFO: TQ0: unit is read only
%SIM-INFO: TQ0: Tape Image './m42kit.tap' scanned as SIMH format
%SIM-INFO: contains 17935152 bytes of tape data (4851 records, 5 tapemarks)
%SIM-INFO: A potentially unreasonable number of record sizes(12) vs tape marks (5) have been found
%SIM-INFO: The tape format (SIMH) might not be correct for the './m42kit.tap' tape image
  • the expected behavior and the actual behavior

The tape is a perfectly legal saved BRU64K system from RSX11, that I found per this thread:
https://groups.google.com/g/comp.sys.dec/c/UonphFhCNuA
and it is downloadable from here:
https://pdp-11.org.ru/files/rsx-11/rsx11m42.zip
(BTW, it's Google'able, too).

The tape is extremely convenient to cleanly unarchive a BRU tape quickly: one attaches the subject tape to the second drive tq1 and an empty disk to rq0, boots from tq0, and specifies MU1: and DU0: as prompted, then runs a BRU command to restore MU1: to DU0:, voila! But I digress...

The troubling portion of the SimH output above is in the last two lines:

%SIM-INFO: A potentially unreasonable number of record sizes(12) vs tape marks (5) have been found
%SIM-INFO: The tape format (SIMH) might not be correct for the './m42kit.tap' tape image

What's unreasonable here, is the messages themselves, because the tape is in fact perfectly fine.

I have never seen a tape device (and I worked with quite a few) that would tell me, "Hey, you installed a tape with wrong number of block sizes and/or tape-marks!" That would be ridiculous, wouldn't it?

Open SimH is supposed to be a hardware simulator, first and foremost; and while it can take an advantage of being able to peek into the files and data it's given, it still should humbly behave like a hardware simulator, not an authority. So, if the tape pre-screening (which is already far beyond any hardware behavior at all!) resulted in something 100% recognizable, then sure, go ahead and tell about your findings (like the lines 2 and 3 after the attach command).

But if SimH does not understand something (but was still successful in screening the file, otherwise), it should remain silent and let the simulated software (guest OS) drive! In this particular case, absolutely nothing was wrong with either the tape or the file.

The last two lines in that message are not helpful -- they are actually quite confusing. Especially so if the unit was attached read-only -- nothing horrible was going to happen, anyways, so why not just let it be?

After all, if the tape was read under the guest OS, that would be that OS's job to notify the user if the tape was unsuitable.

BTW, pre-screeing a large tape file may take quite a noticeable amount of time, so the command may appear as "hanging" for a moment, which is also not a good thing.

  • you may also need to provide specific pointers to data files that may be necessary to demonstrate the problem

(given above)

Thanks for considering

Strange behavior of the DZ device

According to documentation, the DZ device should allow 4 units, for a maximum of 32 lines.

But if you run a config, you can do:

set DZ enable
set DZ lines=128

with no problems!

looking into the code, i found this line close to the top of the file pdp11_dz.c:

#define MAX_DZ_MUXES 32

I believe the maximum should be 4, or the documentation in the .doc file needs to be changed... ;)

I have trouble imagining someone attaching 32 DZ-11 boards on a PDP-11 for 256 lines...

Problem with makefile and libsdl2

On my Mac, running 12.6.1 and XCode 14.1, the latest version of the makefile complains about missing SDL2 ttf support when I try to build the pdp11 simulator, even though both libsdl2 and libsdl2_ttf are installed, alongside FreeType:

using libSDL2: /opt/local/include/SDL2/SDL.h
*** No SDL ttf support available. BESM-6 video panel disabled.


*** Info *** Install the MacPorts libSDL2-ttf development package to provide this
*** Info *** functionality for your OS X system:
*** Info *** # port install libsdl2-ttf-dev

and the packages:

freetype @2.12.1_0 (active)
libsdl2 @2.26.1_0 (active)
libsdl2_ttf @2.20.1_0 (active)

BTW, the error message for MacPorts is incorrect and the package name should be "libsdl2_ttf".

This might have to do with certain TrueType fonts not being available on my Mac: i looked at the makefile, and it tries to locate certain specific fonts, but I am no expert.

Any ideas? what am i doing wrong?

i704 I/O CPY reads not implemented?

I have not been able to do reads from the card reader on i704. On the 704, reads are performed by selecting the device and then doing CPY instructions to get the data. Looking at the sources, https://github.com/simh/simh/blob/master/I7000/i7090_cpu.c#L3285, it looks to me like only write has been implemented for CPY but I am new to simh. If this is the case, I'll try to figure out how to fix it by mirroring whatever data channels do on the more recent models.

  • Context

I'm trying to understand some 704 programs and need to write some to build up some intuition.

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

IBM 704 simulator V4.0-0 Current
    Simulator Framework Capabilities:
        64b data
        32b addresses
        no Ethernet
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 12
    Host Platform:
        Compiler: GCC Apple LLVM 14.0.0 (clang-1400.0.29.202)
        Simulator Compiled as C arch: x64 (Release Build) on Dec 27 2022 at 20:17:17
        Build Tool: simh-makefile
        Memory Access: Little Endian
        Memory Pointer Size: 64 bits
        Large File (>2GB) support
        SDL Video support: No Video Support
        PCRE RegEx (Version 8.44 2020-02-12) support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        OS: Darwin Cuyamaca.local 22.2.0 Darwin Kernel Version 22.2.0: Fri Nov 11 02:08:47 PST 2022; root:xnu-8792.61.2~4/RELEASE_X86_64 x86_64
        Processor Name: Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz
        tar tool: bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8
        curl tool: curl 7.85.0 (x86_64-apple-darwin22.0) libcurl/7.85.0 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.47.0
        git commit id: ce791138
        git commit time: 2022-12-02T13:19:56+0100
  • how you built the simulator or that you're using prebuilt binaries

Make on Ventura 13.1 with up to date brew.

  • the simulator configuration file (or commands) which were used when the problem occurred.

Attached card reader to file.

  • the expected behavior and the actual behavior

I should have seen data showing up. The channel seemed to pick up the file contents, CPY was seeing a read, and the simh code ignores non-writes.

MinGW-64 conflict with sim_disk.c:CreateVirtualDisk

Respectfully request that open-simh consider renaming. This has been a problem for going on 3 years: CreateVirtualDisk is a name conflict when compiling with MinGW64 GCC, since the MinGW64 GCC 8 series.

@markpizz will gladly tell me to go tell the MinGW maintainers to Do The Right Thing and not include virtdisk.h from within whichever header file the include is currently embedded. Asking MinGW to make a change is not feasible, given the size of the user base and likely other code depending on the current MinGW header structure.

Unintended use of REG_UNIT flag in KX10 source modules

I'm in the process of merging the simh v3.12 codebase into v4. This includes changes by J. David Bryan which significantly cleaned up simh REGister code and redefined the relevant initializing macros.

The REG_UNIT flag was never intended to be explicitly mentioned in simulator code. It was a flag that was buried inside of the URDATA macro. In general the use of this macro (and thus the internally used flag) was to describe a field in a device's UNIT structure which is actually an array of values present in each of the DEVICE's units. For example, in kx10_dt.c we've currently got:

    { URDATA (POS, dt_unit[0].pos, 10, T_ADDR_W, 0,
              DT_NUMDR, PV_LEFT | REG_RO | REG_UNIT) },

In prior versions, since the URDATA macro specifically adds the REG_UNIT under the covers, explicitly stating it as part of the flags bits in the URDATA macro is outside of the intended use.

Likewise, since REG_UNIT is supposed to be an under the covers flag bit, it should not be present in any other REGister declaration. The cases:

./PDP10/kx10_lp.c(93):    { DRDATA (STATUS, lpt_unit.STATUS, 18), PV_LEFT | REG_UNIT },
./PDP10/kx10_lp.c(94):    { DRDATA (TIME, lpt_unit.wait, 24), PV_LEFT | REG_UNIT },
./PDP10/kx10_pt.c(80):    { DRDATA (STATUS, ptp_unit.STATUS, 18), PV_LEFT | REG_UNIT},
./PDP10/kx10_pt.c(81):    { DRDATA (TIME, ptp_unit.wait, 24), PV_LEFT | REG_UNIT},
./PDP10/kx10_pt.c(104):    { DRDATA (STATUS, ptr_unit.STATUS, 18), PV_LEFT | REG_UNIT},
./PDP10/kx10_pt.c(105):    { DRDATA (TIME, ptr_unit.wait, 24), PV_LEFT | REG_UNIT},

Each are actually using the REG_UNIT flag in an unintended way, since although each of these cases do refer to some field in a UNIT structure, there is only a single UNIT in each of these DEVICEs, so the intended 'array' isn't really there.

REG_UNIT is not defined in simh v3.12 anymore since there now is general support for REGisters which describe a field in an array of structures, the UNIT is just a special case of that support and the URDATA macro is defined accordingly.

If REG_UNIT was used in more than these 7 cases, it might be appropriate to define it as 0, but that's really not needed. Each of these "| REG_UNIT" string instances can be removed right now before the merged v3.12 REG changes are part of a PR.

3b2 does not make

On Liinux, 'make 3b2-400' fails because it claims that there is no rule for 3b2_cpu.c, as:
*** 3b2-400 Simulator being built with:
*** - compiler optimizations and no debugging support. GCC Version: 11.2.0.
*** - dynamic networking support using Linux provided libpcap components.
*** - Local LAN packet transports: PCAP VDE TAP
*** - Per simulator tests will be run.


make: *** No rule to make target '3B2/3b2_cpu.c', needed by 'BIN/3b2'. Stop.

Would you accept a PR to port the docs to a more approachable format?

This is something I've been itching to do for years: replace those ugly binary files with files written in a lightweight markup language like reStructuredText or AsciiDoc (both of which are rendered like Markdown on GitHub).

This wouldn't be an automated conversation, as tools like Pandoc have (at least in my experiments) discarded structurally relevant info that I assume is represented internally in the .doc files in some purely-presentational fashion.

Aside from the obvious benefits of diffing and maintainability, it also permits nifty features GitHub adds to its rendered markup, like section navigation menus and even diagrams.

I'm happy to do the heavy lifting if the answer to the above is an affirmative.

HELP BOOT prints a ton BUT help on the BOOT command

  • Context

sim> help boot
  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

Fresh pull from github

  • how you built the simulator or that you're using prebuilt binaries

make pdp11

  • the simulator configuration file (or commands) which were used when the problem occurred.

(none)

  • the expected behavior and the actual behavior

I'd expect HELP output for the BOOT command to describe that command exactly, but it looks like a few pages worth of description of the CPU registers appear prior to this (last and the only relevant) line:

bo{ot} {unit}            boot simulator

I can only wonder, why?

Segmentation violation (make error 139) while building altairz80 simulator

  • Context

  • The Altair 8800 (Z80) simulator crashes after building from source while running the sanity checks.
  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

  • Altair 8800 (Z80) simulator V4.0-0 Current simh git commit id: da6dcef8 sim> show version Altair 8800 (Z80) simulator V4.0-0 Current Simulator Framework Capabilities: 32b data 32b addresses no Ethernet Idle/Throttling support is available Virtual Hard Disk (VHD) support RAW disk and CD/DVD ROM support Asynchronous I/O support (Lock free asynchronous event queue) Asynchronous Clock support FrontPanel API Version 12 Host Platform: Compiler: GCC 12.2.1 20230111 Simulator Compiled as C arch: x64 (Release Build) on Jan 25 2023 at 21:45:29 Build Tool: simh-makefile Memory Access: Little Endian Memory Pointer Size: 64 bits Large File (>2GB) support SDL Video support: No Video Support PCRE RegEx (Version 8.45 2021-06-15) support for EXPECT commands OS clock resolution: 1ms Time taken by msleep(1): 1ms OS: Linux tovilyis.excom.com 6.1.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 18 Jan 2023 19:54:38 +0000 x86_64 GNU/Linux Processor Name: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz tar tool: tar (GNU tar) 1.34 curl tool: curl 7.87.0 (x86_64-pc-linux-gnu) libcurl/7.87.0 OpenSSL/3.0.7 zlib/1.2.13 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.4) libssh2/1.10.0 nghttp2/1.51.0 simh git commit id: da6dcef8 simh git commit time: 2022-12-06T17:13:03-08:00 sim> bye Goodbye Segmentation fault (core dumped)

  • how you built the simulator or that you're using prebuilt binaries

  • `make altairz80
    lib paths are: /usr/lib/ /usr/lib/libfakeroot/ /lib/
    include paths are: /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.1/include /usr/local/include /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.1/include-fixed /usr/include
    using libm: /usr/lib/libm.so
    using librt: /usr/lib/librt.a
    using libpthread: /usr/lib/libpthread.a /usr/include/pthread.h
    using libpcre: /usr/lib/libpcre.so /usr/include/pcre.h
    using semaphore: /usr/include/semaphore.h
    using libdl: /usr/lib/libdl.a /usr/include/dlfcn.h
    using libedit: /usr/include/editline/readline.h
    using libpng: /usr/lib/libpng.so /usr/include/png.h
    using zlib: /usr/lib/libz.so /usr/include/zlib.h
    using mman: /usr/include/sys/mman.h


*** altairz80 Simulator being built with:
*** - compiler optimizations and no debugging support. GCC Version: 12.2.1.
*** - Per simulator tests will be run.


gcc -std=gnu99 -U__STRICT_ANSI__ -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_COMPILER="GCC Version: 12.2.1" -DSIM_BUILD_TOOL=simh-makefile -I . -Werror -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_PCRE_H -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DHAVE_LINUX_CDROM -DSIM_HAVE_DLOPEN=so -DHAVE_EDITLINE -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN ./AltairZ80/altairz80_cpu.c ./AltairZ80/altairz80_cpu_nommu.c ./AltairZ80/mmd.c ./AltairZ80/s100_dj2d.c ./AltairZ80/s100_djhdc.c ./AltairZ80/altairz80_dsk.c ./AltairZ80/disasm.c ./AltairZ80/altairz80_sio.c ./AltairZ80/altairz80_sys.c ./AltairZ80/altairz80_hdsk.c ./AltairZ80/altairz80_net.c ./AltairZ80/s100_hayes.c ./AltairZ80/s100_2sio.c ./AltairZ80/s100_pmmi.c ./AltairZ80/flashwriter2.c ./AltairZ80/i86_decode.c ./AltairZ80/i86_ops.c ./AltairZ80/i86_prim_ops.c ./AltairZ80/i8272.c ./AltairZ80/insnsd.c ./AltairZ80/altairz80_mhdsk.c ./AltairZ80/mfdc.c ./AltairZ80/n8vem.c ./AltairZ80/vfdhd.c ./AltairZ80/s100_disk1a.c ./AltairZ80/s100_disk2.c ./AltairZ80/s100_disk3.c ./AltairZ80/s100_fif.c ./AltairZ80/s100_mdriveh.c ./AltairZ80/s100_icom.c ./AltairZ80/s100_jadedd.c ./AltairZ80/s100_mdsa.c ./AltairZ80/s100_mdsad.c ./AltairZ80/s100_selchan.c ./AltairZ80/s100_ss1.c ./AltairZ80/s100_64fdc.c ./AltairZ80/s100_scp300f.c ./AltairZ80/s100_tarbell.c ./AltairZ80/s100_tdd.c ./AltairZ80/wd179x.c ./AltairZ80/s100_hdc1001.c ./AltairZ80/s100_if3.c ./AltairZ80/s100_adcs6.c ./AltairZ80/m68k/m68kcpu.c ./AltairZ80/m68k/m68kdasm.c ./AltairZ80/m68k/m68kasm.c ./AltairZ80/m68k/m68kopac.c ./AltairZ80/m68k/m68kopdm.c ./AltairZ80/m68k/softfloat/softfloat.c ./AltairZ80/m68k/m68kopnz.c ./AltairZ80/m68k/m68kops.c ./AltairZ80/m68ksim.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -I ./AltairZ80 -o BIN/altairz80 -lm -lrt -lpthread -lpcre -ldl -ledit -lpng -lz
BIN/altairz80 RegisterSanityCheck </dev/null
Running internal register sanity checks on Altair 8800 (Z80) simulator.
*** Good Registers in Altair 8800 (Z80) simulator.
make: *** [makefile:2617: BIN/altairz80] Error 139`

  • the simulator configuration file (or commands) which were used when the problem occurred.

  • No configuration files, as a simulation was not being run.
  • the expected behavior and the actual behavior

  • The compiled simulator should have run the checks without errors, instead it crashed on a segmentation violation.
  • you may also need to provide specific pointers to data files that may be necessary to demonstrate the problem

Segmentation fault after changing floppy images with microvax1 and microvax2 simulators

Every time I try to change floppy images (for creating a set of VMS Standalone Backup floppies), I get a "Segmentation fault", both with the microvax1 and the microvax2 simulators. I had the same problem with changing disk images before. This is a severe bug as it prevents changing media with the simulator running.

  • Context

MicroVMS V4.6
$ @sys$UPDATE:STABACKIT

  • the output of "sim> SHOW VERSION" while running the simulator which is having the issue

microvax2:
sim> sh ver
MicroVAX II (KA630) simulator V4.0-0 Current
Simulator Framework Capabilities:
64b data
64b addresses
Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
Idle/Throttling support is available
Virtual Hard Disk (VHD) support
RAW disk and CD/DVD ROM support
Asynchronous I/O support (Lock free asynchronous event queue)
Asynchronous Clock support
FrontPanel API Version 12
Host Platform:
Compiler: GCC 8.3.0
Simulator Compiled as C arch: x64 (Release Build) on Jun 14 2022 at 22:55:04
Build Tool: simh-makefile
Memory Access: Little Endian
Memory Pointer Size: 64 bits
Large File (>2GB) support
SDL Video support: SDL Version 2.0.9, PNG Version 1.6.36, zlib: 1.2.11
PCRE RegEx (Version 8.39 2016-06-14) support for EXPECT commands
OS clock resolution: 1ms
Time taken by msleep(1): 1ms
Ethernet packet info: libpcap version 1.9.0-PRE-GIT (with TPACKET_V3)
OS: Linux think 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
Processor Name: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
tar tool: tar (GNU tar) 1.30
curl tool: curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1n zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
simh git commit id: 5a7a4c7
simh git commit time: 2022-05-31T09:47:16-04:00
sim>

microvax1:
sim> sh ver
MicroVAX I (KA610) simulator V4.0-0 Current
Simulator Framework Capabilities:
64b data
64b addresses
Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
Idle/Throttling support is available
Virtual Hard Disk (VHD) support
RAW disk and CD/DVD ROM support
Asynchronous I/O support (Lock free asynchronous event queue)
Asynchronous Clock support
FrontPanel API Version 12
Host Platform:
Compiler: GCC 8.3.0
Simulator Compiled as C arch: x64 (Release Build) on Jun 15 2022 at 09:34:51
Build Tool: simh-makefile
Memory Access: Little Endian
Memory Pointer Size: 64 bits
Large File (>2GB) support
SDL Video support: SDL Version 2.0.9, PNG Version 1.6.36, zlib: 1.2.11
PCRE RegEx (Version 8.39 2016-06-14) support for EXPECT commands
OS clock resolution: 1ms
Time taken by msleep(1): 1ms
Ethernet packet info: libpcap version 1.9.0-PRE-GIT (with TPACKET_V3)
OS: Linux think 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
Processor Name: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
tar tool: tar (GNU tar) 1.30
curl tool: curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1n zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
simh git commit id: 5a7a4c7
simh git commit time: 2022-05-31T09:47:16-04:00
sim>

  • how you built the simulator or that you're using prebuilt binaries

microvax2:
$ make microvax2
lib paths are: /lib/ /lib/i386-linux-gnu/ /lib/x86_64-linux-gnu/ /lib32/ /usr/lib/x86_64-linux-gnu/libfakeroot/ /usr/local/lib/ /usr/lib/
include paths are: /usr/lib/gcc/x86_64-linux-gnu/8/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed /usr/include/x86_64-linux-gnu /usr/include
using libm: /lib/x86_64-linux-gnu/libm.so
using librt: /lib/x86_64-linux-gnu/librt.so
using libpthread: /lib/x86_64-linux-gnu/libpthread.so /usr/include/pthread.h
using libpcre: /lib/x86_64-linux-gnu/libpcre.so /usr/include/pcre.h
using semaphore: /usr/include/semaphore.h
using libdl: /lib/x86_64-linux-gnu/libdl.so /usr/include/dlfcn.h
using libpng: /lib/x86_64-linux-gnu/libpng.so /usr/include/png.h
using zlib: /lib/x86_64-linux-gnu/libz.so /usr/include/zlib.h
using mman: /usr/include/x86_64-linux-gnu/sys/mman.h
using libSDL2: /usr/include/SDL2/SDL.h
using libpcap: /usr/local/include/pcap.h
*** Info ***
*** Info *** microvax2 Simulator is being built with
*** Info *** minimal libpcap networking support
*** Info ***
*** Info ***
*** Info *** Simulators on your Linux platform can also be built with
*** Info *** extended LAN Ethernet networking support by using VDE Ethernet.
*** Info ***
*** Info *** To build simulator(s) with extended networking support you
*** Info *** should install the vde2 package to provide this
*** Info *** functionality for your Linux system:
*** Info *** $ sudo apt-get install libvdeplug-dev
*** Info ***


*** microvax2 Simulator being built with:
*** - compiler optimizations and no debugging support. GCC Version: 8.3.0.
*** - dynamic networking support using Linux provided libpcap components.
*** - Local LAN packet transports: PCAP TAP NAT(SLiRP)
*** - video capabilities provided by libSDL2 (Simple Directmedia Layer).
*** - Per simulator tests will be run.


gcc -std=gnu99 -U__STRICT_ANSI__ -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_COMPILER="GCC Version: 8.3.0" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_PCRE_H -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DHAVE_LINUX_CDROM -DSIM_HAVE_DLOPEN=so -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN ./VAX/vax_cpu.c ./VAX/vax_cpu1.c ./VAX/vax_fpa.c ./VAX/vax_cis.c ./VAX/vax_octa.c ./VAX/vax_cmode.c ./VAX/vax_mmu.c ./VAX/vax_sys.c ./VAX/vax_syscm.c ./VAX/vax_watch.c ./VAX/vax630_stddev.c ./VAX/vax630_sysdev.c ./VAX/vax630_io.c ./VAX/vax630_syslist.c ./VAX/vax_va.c ./VAX/vax_vc.c ./VAX/vax_lk.c ./VAX/vax_vs.c ./VAX/vax_2681.c ./VAX/vax_gpx.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_xq.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_td.c ./PDP11/pdp11_io_lib.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_VAX -DVAX_630 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ./VAX -I ./PDP11 -DHAVE_PCAP_NETWORK -I/usr/local/include/ -DBPF_CONST_STRING -DUSE_SHARED -DHAVE_TAP_NETWORK -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/.c slirp_glue/.c -DHAVE_LIBSDL -DUSE_SIM_VIDEO /usr/bin/sdl2-config --cflags /usr/bin/sdl2-config --libs -o BIN/microvax2 -lm -lrt -lpthread -lpcre -ldl -lpng -lz
BIN/microvax2 RegisterSanityCheck /media/ulli/SSD-Backup/gunkies.org/OPEN simh-master/VAX/tests/vax-diag_test.ini </dev/null
Running internal register sanity checks on MicroVAX II (KA630) simulator.
*** Good Registers in MicroVAX II (KA630) simulator.

MicroVAX II (KA630) simulator V4.0-0 Current simh git commit id: 5a7a4c7

microvax1:
$ make microvax1
lib paths are: /lib/ /lib/i386-linux-gnu/ /lib/x86_64-linux-gnu/ /lib32/ /usr/lib/x86_64-linux-gnu/libfakeroot/ /usr/local/lib/ /usr/lib/
include paths are: /usr/lib/gcc/x86_64-linux-gnu/8/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed /usr/include/x86_64-linux-gnu /usr/include
using libm: /lib/x86_64-linux-gnu/libm.so
using librt: /lib/x86_64-linux-gnu/librt.so
using libpthread: /lib/x86_64-linux-gnu/libpthread.so /usr/include/pthread.h
using libpcre: /lib/x86_64-linux-gnu/libpcre.so /usr/include/pcre.h
using semaphore: /usr/include/semaphore.h
using libdl: /lib/x86_64-linux-gnu/libdl.so /usr/include/dlfcn.h
using libpng: /lib/x86_64-linux-gnu/libpng.so /usr/include/png.h
using zlib: /lib/x86_64-linux-gnu/libz.so /usr/include/zlib.h
using mman: /usr/include/x86_64-linux-gnu/sys/mman.h
using libSDL2: /usr/include/SDL2/SDL.h
using libpcap: /usr/local/include/pcap.h
*** Info ***
*** Info *** microvax1 Simulator is being built with
*** Info *** minimal libpcap networking support
*** Info ***
*** Info ***
*** Info *** Simulators on your Linux platform can also be built with
*** Info *** extended LAN Ethernet networking support by using VDE Ethernet.
*** Info ***
*** Info *** To build simulator(s) with extended networking support you
*** Info *** should install the vde2 package to provide this
*** Info *** functionality for your Linux system:
*** Info *** $ sudo apt-get install libvdeplug-dev
*** Info ***


*** microvax1 Simulator being built with:
*** - compiler optimizations and no debugging support. GCC Version: 8.3.0.
*** - dynamic networking support using Linux provided libpcap components.
*** - Local LAN packet transports: PCAP TAP NAT(SLiRP)
*** - video capabilities provided by libSDL2 (Simple Directmedia Layer).
*** - Per simulator tests will be run.


gcc -std=gnu99 -U__STRICT_ANSI__ -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_COMPILER="GCC Version: 8.3.0" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_PCRE_H -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DHAVE_LINUX_CDROM -DSIM_HAVE_DLOPEN=so -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_ZLIB -DHAVE_GLOB -DHAVE_SHM_OPEN ./VAX/vax_cpu.c ./VAX/vax_cpu1.c ./VAX/vax_fpa.c ./VAX/vax_cis.c ./VAX/vax_octa.c ./VAX/vax_cmode.c ./VAX/vax_mmu.c ./VAX/vax_sys.c ./VAX/vax_syscm.c ./VAX/vax610_stddev.c ./VAX/vax610_sysdev.c ./VAX/vax610_io.c ./VAX/vax610_syslist.c ./VAX/vax610_mem.c ./VAX/vax_vc.c ./VAX/vax_lk.c ./VAX/vax_vs.c ./VAX/vax_2681.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_xq.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_td.c ./PDP11/pdp11_io_lib.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_VAX -DVAX_610 -DUSE_INT64 -DUSE_ADDR64 -DUSE_SIM_VIDEO -I ./VAX -I ./PDP11 -DHAVE_PCAP_NETWORK -I/usr/local/include/ -DBPF_CONST_STRING -DUSE_SHARED -DHAVE_TAP_NETWORK -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/.c slirp_glue/.c -DHAVE_LIBSDL -DUSE_SIM_VIDEO /usr/bin/sdl2-config --cflags /usr/bin/sdl2-config --libs -o BIN/microvax1 -lm -lrt -lpthread -lpcre -ldl -lpng -lz
BIN/microvax1 RegisterSanityCheck /media/ulli/SSD-Backup/gunkies.org/OPEN simh-master/VAX/tests/vax-diag_test.ini </dev/null
Running internal register sanity checks on MicroVAX I (KA610) simulator.
*** Good Registers in MicroVAX I (KA610) simulator.

MicroVAX I (KA610) simulator V4.0-0 Current simh git commit id: 5a7a4c7

  • the simulator configuration file (or commands) which were used when the problem occurred.

microvax2:
; microvax2.ini

SET CPU 4M
SET CPU CONHALT
SET CPU IDLE=VMS
;SET CPU INSTRUCTIONS=D-FLOAT
SET CONSOLE LOG=FRANZ-CLONE_MV2_004.log

SET RQ0 ENA
SET RQ0 RD31
ATT RQ0 franz-clone.R31

SET RQ1 ENA
SET RQ1 RX50

SET RQ2 ENA
SET RQ2 RX50

SET RQ3 RD54
att RQ3 VMS047.R54

SET DZ LINES=4
ATT DZ 6666

SET TQ ENA
ATT TQ0 BB-BT05D-BE_VMS4.6_87.tap

SET LPT DIS
SET RL ENA
SET RL0 RL02
ATT RL0 TEST.RL2

SET TS DIS

SET XQ ENA
SET XQ TYPE=DEQNA

;BOOT

microVAX1:
; microvax1.ini

SET CPU 4M
SET CPU CONHALT
SET CPU IDLE=VMS
SET CPU INSTRUCTIONS=D-FLOAT
SET CONSOLE LOG=FRANZ-CLONE_005_bugs.log

SET RQ0 ENA
SET RQ0 RD31
ATT RQ0 franz-clone.R31

SET RQ1 ENA
SET RQ1 RX50
ATT RQ1 bootrl0.RX5

SET RQ2 ENA
SET RQ2 RX50

SET RQ3 RD54

SET RQB ENA
att RQB0 VMS047.R54

SET DZ LINES=4
ATT DZ 6666

SET TQ ENA
ATT TQ0 BB-BT05D-BE_VMS4.6_87.tap

SET LPT DIS
SET RL ENA
SET RL0 RL02
ATT RL0 TEST.RL2

SET TS DIS

SET XQ ENA
SET XQ TYPE=DEQNA

;BOOT RQ0

  • the expected behavior and the actual behavior

DUCKnet - Networking

FRANZ - MicroVAX I
FRANZ - MicroVAX I

MicroVMS V4.6

Username: SYSTEM
Welcome to MicroVMS V4.6

Last interactive login on Wednesday, 15-JUN-2022 16:15
Last non-interactive login on Saturday,  9-APR-2022 08:31

%SET-W-NOTSET, error modifying OPA0:
-SET-I-UNKTERM, unknown terminal type


Main Menu

     1 - Exit to DCL
     2 - Log out of the SYSTEM account
     3 - Invoke the MAIL utility
     4 - Invoke the PHONE utility
     5 - Add a user account to the system
     6 - Install optional software
     7 - Add or Delete a MicroVMS component
     8 - Create or Modify an Autologin Terminal
     9 - Back up or Restore the user files on a disk
    10 - Build a Standalone BACKUP kit
    11 - Set the maximum number of interactive logins
    12 - Configure the network
    13 - Shut down or start up the network
    14 - SHUT DOWN the system

Enter a number (? or ?# for HELP): 10


Enter the name of the device on which to build the kit: dua2

The standalone kit requires three floppy diskettes. The first two
floppy diskettes contain the standalone VMS system files, the last
floppy diskette contains the BACKUP application image.

The system kit and the application kit can be built separately.

Do you want to build the system kit? [Yes/No, default Yes]: yes

Do you want to build the application kit? [Yes/No, default Yes]: yes

STABACKIT offers two options to increase reliability. It can perform a pre-
scan of the floppy diskettes for bad blocks, or it can verify the kits by
comparing the each of the output files against the originals. Both of these
options can help prevent a failure to boot if the media is bad, but they also
increase the amount of time it takes to build the kit.

If you request a bad block scan, STABACKIT will use the ANALYZE /MEDIA utility
to check the floppy diskettes for defective blocks. If ANALYZE finds any
bad blocks, STABACKIT will ask you to replace the floppy diskette with a
new floppy diskette, and it will repeat the scan.

A media scan adds about 5 minutes to the time needed to create the kit.

If you request copy verification, STABACKIT will copy the file to the
output floppy diskette, and then compare the copy against the original
copy of the file. STABACKIT will abort the kit build if a data
error occurs and the copy of a file is not identical to the original.

Copy verification adds about 5 minutes to the kit build time.

Do you want to scan for bad blocks? [Yes/No, default No]:

Do you want to verify copies? [Yes/No, default No]:

Sysgen parameters for standalone VMS have been placed in file
SYS$SYSROOT:VAXVMSSYS.PAR-TEMP-00000018;3

Please place the first system floppy diskette in drive _DUA2:.
This volume will receive the volume label SYSTEM_1.

Enter "YES" when ready:
Simulation stopped, PC: 80008B1F (BRB 80008B1F)
sim> att rq2 staba046-01.rx5
%SIM-INFO: RQ2: 'staba046-01.rx5' Contains ODS2 File system
%SIM-INFO: RQ2: Volume Name: SYSTEM_1 Format: DECFILE11B Sectors In Volume: 800
sim> c
yes

%MOUNT-I-MOUNTED, SYSTEM_1 mounted on _DUA2:
%CREATE-I-CREATED, _DUA2:<SYS0.SYSEXE> created
%COPY-S-COPIED, SYS$SYSROOT:VMB.EXE;1 copied to _DUA2:<SYS0.SYSEXE>VMB.EXE;1 (57 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSBOOT.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSBOOT.EXE;1 (91 blocks)
%COPY-S-COPIED, SYS$SYSROOT:DUDRIVER.EXE;1 copied to _DUA2:<SYS0.SYSEXE>DUDRIVER.EXE;1 (31 blocks)
%COPY-S-COPIED, SYS$SYSROOT:DVDRIVER.EXE;1 copied to _DUA2:<SYS0.SYSEXE>DVDRIVER.EXE;1 (31 blocks)
%COPY-S-COPIED, SYS$SYSROOT:PUDRIVER.EXE;1 copied to _DUA2:<SYS0.SYSEXE>PUDRIVER.EXE;1 (15 blocks)
%COPY-S-COPIED, SYS$SYSROOT:PBDRIVER.EXE;1 copied to _DUA2:<SYS0.SYSEXE>PBDRIVER.EXE;1 (42 blocks)
%COPY-S-COPIED, SYS$SYSROOT:TTDRIVER.EXE;1 copied to _DUA2:<SYS0.SYSEXE>TTDRIVER.EXE;1 (44 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SCSLOA.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SCSLOA.EXE;1 (8 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOA8SS.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOA8SS.EXE;1 (28 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOAUV1.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOAUV1.EXE;1 (15 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOAWS1.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOAWS1.EXE;1 (19 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOAUV2.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOAUV2.EXE;1 (17 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOAWS2.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOAWS2.EXE;1 (21 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOAWSD.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOAWSD.EXE;1 (27 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOA410.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOA410.EXE;1 (17 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOA41W.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOA41W.EXE;1 (24 blocks)
%COPY-S-COPIED, SYS$SYSROOT:SYSLOA41D.EXE;1 copied to _DUA2:<SYS0.SYSEXE>SYSLOA41D.EXE;1 (25 blocks)
%COPY-S-COPIED, SYS$SYSROOT:VAXEMUL.EXE;1 copied to _DUA2:<SYS0.SYSEXE>VAXEMUL.EXE;1 (22 blocks)
%COPY-S-COPIED, SYS$SYSROOT:FPEMUL.EXE;1 copied to _DUA2:<SYS0.SYSEXE>FPEMUL.EXE;1 (20 blocks)
%COPY-S-COPIED, SYS$SYSROOT:VAXVMSSYS.PAR-TEMP-00000018;3 copied to _DUA2:<SYS0.SYSEXE>VAXVMSSYS.PAR;1 (15 blocks)
Copying the first 180 blocks of SYS.EXE to SYSTEM_1
%COPY-S-COPIED, SYS$SYSROOT:SYS.EXE;3 copied to _DUA2:<SYS0.SYSEXE>SYS.EXE;1 (180 blocks)

Please place the second system floppy diskette in drive _DUA2:.
This volume will receive the volume label SYSTEM_2.

Enter "YES" when ready:
Simulation stopped, PC: 80008B1F (BRB 80008B1F)
sim> att rq2 staba046-02.rx5
sim> c
yes
Segmentation fault

  • you may also need to provide specific pointers to data files that may be necessary to demonstrate the problem

AltairZ80: raise_scp300f_interrupt (not/un)defined

Build error that only seems to show up on my appveyor Debug (not Release) builds:

/usr/bin/cc -g -Werror AltairZ80/CMakeFiles/altairz80.dir/altairz80_cpu.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_cpu_nommu.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_dj2d.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_djhdc.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_dsk.c.o AltairZ80/CMakeFiles/altairz80.dir/disasm.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_sio.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_sys.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_hdsk.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_net.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_hayes.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_2sio.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_pmmi.c.o AltairZ80/CMakeFiles/altairz80.dir/flashwriter2.c.o AltairZ80/CMakeFiles/altairz80.dir/i86_decode.c.o AltairZ80/CMakeFiles/altairz80.dir/i86_ops.c.o AltairZ80/CMakeFiles/altairz80.dir/i86_prim_ops.c.o AltairZ80/CMakeFiles/altairz80.dir/i8272.c.o AltairZ80/CMakeFiles/altairz80.dir/insnsd.c.o AltairZ80/CMakeFiles/altairz80.dir/altairz80_mhdsk.c.o AltairZ80/CMakeFiles/altairz80.dir/mfdc.c.o AltairZ80/CMakeFiles/altairz80.dir/n8vem.c.o AltairZ80/CMakeFiles/altairz80.dir/vfdhd.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_disk1a.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_disk2.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_disk3.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_fif.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_mdriveh.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_icom.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_jadedd.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_mdsa.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_mdsad.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_selchan.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_ss1.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_64fdc.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_scp300f.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_tarbell.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_tdd.c.o AltairZ80/CMakeFiles/altairz80.dir/wd179x.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_hdc1001.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_if3.c.o AltairZ80/CMakeFiles/altairz80.dir/s100_adcs6.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kcpu.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kdasm.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kasm.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kopac.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kopdm.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/softfloat/softfloat.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kopnz.c.o AltairZ80/CMakeFiles/altairz80.dir/m68k/m68kops.c.o AltairZ80/CMakeFiles/altairz80.dir/m68ksim.c.o -o AltairZ80/altairz80  libsimhcore.a  /usr/lib/libvdeplug.so  slirp/libslirp.a  /usr/lib/x86_64-linux-gnu/libpcre.so  /usr/lib/x86_64-linux-gnu/libedit.so  -ltermcap  -lrt  -ldl  -lm  -pthread && :
AltairZ80/CMakeFiles/altairz80.dir/s100_djhdc.c.o: In function `raise_djhdc_interrupt':
/home/appveyor/projects/open-simh/AltairZ80/s100_djhdc.c:858: undefined reference to `raise_scp300f_interrupt'
collect2: error: ld returned 1 exit status

It isn't defined in s100_scp300f.c, where I'd expect it to be defined given it being marked extern in s100_djhdc.c and the only reference is in s100_djhdc.c (output courtesy of Github's search):

190 | extern int32 find_unit_index(UNIT *uptr);
191 | extern void raise_scp300f_interrupt(uint8 intnum);
192 |  
193 | /* These are needed for DMA. */
…   |  
854 | static void raise_djhdc_interrupt(void)
855 | {
856 | sim_debug(IRQ_MSG, &djhdc_dev, DEV_NAME ": " ADDRESS_FORMAT " Interrupt\n", PCX);
857 |  
858 | raise_scp300f_interrupt(VI1_INT);
859 |  
860 | }

Suggestion to rename all the binaries with "simh-" prefix

Installing so many binaries into /usr/bin (LInux) with such diverse names is tempting fate in the long run, that one will conflict with something from another package.
For this reason I have been changing the binary names in the Mageia simh package that I have been maintaining for years now.
Since the move to open-simh and talk of moving to cmake I thought this may be the right time to suggest this here.
I think its also more logical to have the simh packages grouped together in the bin directory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.