Coder Social home page Coder Social logo

axpbox's People

Contributors

athornton avatar davemcincork avatar lenticularis39 avatar raymiiorg avatar stottsc 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

axpbox's Issues

Cirrus - port 0x3C5 not implmented

I downloaded vgabios 0.7b BIOS image and tried to boot. It crashed after starting drivers SRM message printed.

cirrus: VGABios $Id: vgabios.c 226 2020-01-02 21:36:23Z vruppert $
Exception in CPU thread: Not implemented: io write 3c5: index 6 unhandled: /home/sword7/axpbox/src/src/Cirrus.cpp, line 1475.
Emulator Failure: Threading error: CPU thread has died: /home/sword7/axpbox/src/src/AlphaCPU.cpp, line 517
Stop threads: cpu0 srl0 sym cirrus ali kbd nic
Freeing memory in use by system...
pci0.1(sym53c810).disk0.0(file): Closing file.
pci0.1(sym53c810).disk0.1(file): Closing file.

TCP/IP Configuration Blues

The story so far ...

Got OpenVMS v8.4-2L1 installed, configured, licensed and running under VSI's community PAK. And there was much rejoicing. Seriously, this is an awesome piece of work. Being back at a DCL command prompt is like being reunited with a long lost friend.

TCP/IP configuration, less so. Inception-a-like, my current setup looks like this.

  • Physical machine: MacBook Pro running Big Sur 11.3.1
  • VirtualBox 6.1.22 running an Ubuntu 20.04 guest with 1024 MB memory, 4 CPUs and a 20 GB HDD
  • Two network interfaces:
  1. NAT - assigned 10.0.2.15 on enp0s3
  2. Bridged (to my Mac's USB-C ethernet adaptor) - assigned 172.20.0.249 by my LAN's DHCP server on enp0s8
  • axpbox v1.0 at commit hash 85834441a54d4439907e185a6d53b06335dcd596
  • Network config in es40.cfg defined as
pci0.4 = dec21143 
{ 
        adapter = "enp0s3";
        mac = "08-00-DE-AD-BE-EF";
}

TCP/IP allegedly configured in VMS as follows:

$ tcpip show int  
                                                           Packets
Interface   IP_Addr         Network mask          Receive          Send     MTU
 
 LO0        127.0.0.1       255.0.0.0                   8             8    4096
 WE0        10.0.2.25       255.255.255.0               0             7    1500

$ tcpip show route
  
                             DYNAMIC
  
Type           Destination                           Gateway
  
AN    0.0.0.0                               10.0.2.2
AN    10.0.2.0/24                           10.0.2.25
AH    10.0.2.25                             10.0.2.25
AH    127.0.0.1                             127.0.0.1

I'm missing something glaringly obvious I know, but even with port forwarding set up. I can't ping from inside VMS to any external IP nor ping "into" VMS from the Ubuntu guest.

What am I missing?

OpenVMS Crash on Starting DECnet Phase IV

Hi,

I am not sure this is an issue specific to my environment, but this happens on OpenVMS 8.4 (VSI) and 8.3 (HP). After installing DECnet Phase IV, attempting to start DECnet using sys$manager:startnet causes a OpenVMS machine check crash.

My complete instance of axpbox (with disk) is bzip2'd 208M; please let me know where I can upload it privately. I am running Linux opensuse 4.20.12-1-default #1 SMP Mon Feb 25 06:04:48 UTC 2019 (5cf91fd) x86_64 x86_64 x86_64 GNU/Linux, and the OpenVMS crash text is:

$ @SYS$MANAGER:STARTNET.COM

OpenVMS Alpha Operating System V8.4-2L1 - BUGCHECK ****

Bugcheck code = 00000215: MACHINECHK, Machine check while in kernel mode**


Thanks
Supratim

autocreate filesize works up to 2 GB disks

Somethig is wrong with autocreating disks, I got an email from an OpenVMS system manager at the belgian railways with a reproduction scenario. I did recently change the disk creation to fix #19 , so I'll have a look myself first.

  • 0 up to 2000 M = OK
  • 2000M up to 4000M = negative filesize
  • 4000M up to 6000M = file created, but - 2 GB in size
  • 6000M up to 8000M = negative filesize again
  • 9000M up to 10000M = file created, but - 8 GB in size

1 GB, es40.cfg

autocreate_size = 1000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) 1000MB file disk-0.img created
pci0.15(ali_ide).disk0.0(file): Mounted file disk-0.img, 2048000 512-byte blocks, 2560/16/50.


$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 1048576000 Nov 15 07:31 disk-0.img

2 GB, es40.cfg

autocreate_size = 2000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) 2000MB file disk-0.img created
pci0.15(ali_ide).disk0.0(file): Mounted file disk-0.img, 4096000 512-byte blocks, 5120/16/50.

$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 2097152000 Nov 15 07:33 disk-0.img

3 GB es40.cfg

autocreate_size = 3000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) -1096MB file disk-0.img created

$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 0 Nov 15 07:34 disk-0.img

4 GB es40.cfg

autocreate_size = 4000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) -96MB file disk-0.img created

$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 0 Nov 15 07:37 disk-0.img

5 GB es40.cfg

autocreate_size = 5000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) 904MB file disk-0.img created
pci0.15(ali_ide).disk0.0(file): Mounted file disk-0.img, 1851392 512-byte blocks, 3616/16/32.

$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 947912704 Nov 15 07:38 disk-0.img

6 GB es40.cfg

autocreate_size = 6000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) 1904MB file disk-0.img created
pci0.15(ali_ide).disk0.0(file): Mounted file disk-0.img, 3899392 512-byte blocks, 7168/16/34.

$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 1996488704 Nov 15 07:40 disk-0.img

7 GB es40.cfg

autocreate_size = 7000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) -1192MB file disk-0.img created

8 GB es40.cfg

autocreate_size = 8000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) -192MB file disk-0.img created

9 GB es40.cfg

autocreate_size = 9000M;

Result:

pci0.15(ali_ide).disk0.0(file): file does not exist: disk-0.img
pci0.15(ali_ide).disk0.0(file) 808MB file disk-0.img created
pci0.15(ali_ide).disk0.0(file): Mounted file disk-0.img, 1654784 512-byte blocks, 3232/16/32.

$ \ls -la disk-0.img 
-rw-rw-r-- 1 remy remy 847249408 Nov 15 07:42 disk-0.img

Spurious "set multiple mode" messages

I'm trying to install Tru64 UNIX 5.1B onto an IDE disk. (The installation is actually working although very slowly.) I'm seeing the following message appear numerous times.

Set multiple mode: sector_count = 128

I believe this message should be conditional based on DEBUG_IDE_MULTIPLE in AliM1543C_ide.cpp. (I'd submit a PR but I'm not yet ready to go there.)

For the record, I'm trying this on an M1 Mac mini (i.e., Apple silicon or ARM64).

Support VDE and tap

This will require refactoring of the networking adapter class to support multiple backends.

Large output leads to semaphore exceeding limit crash.

I tested some more. I tried execute 'dir/full sys$system'. It crashed in middle of large output results. It scrolls so fast like in SIMH VAX emulator (almost same speed match). Take a look on crash information at end.

Tim


$ dir/full sys$system

:
:

OPENVMS$FTP.EXE;1 File ID: (3763,1,0)
Size: 6/16 Owner: [SYSTEM]
Created: 21-DEC-2016 13:39:23.01
Modified: 21-DEC-2016 13:39:23.01 (1)
Expires:
Backup:
Effective:
Recording:
Accessed: 17-NOV-2020 21:13:22.46
Attr Mod: 21-DEC-2016 13:39:23.01
Data Mod: 21-DEC-2016 13:39:23.01
Linkcount: 1
File organization: Sequential
Shelved state: Online
Caching attribute: Writethrough
File attributes: Allocation: 16, Extend: 0, Global buffer count: 0
No version limit, Contiguous best try
Record format: Fixed length 512 byte records
Record attributes: None
RMS attributes: None
Journaling enabled: None
File protection: System:RWED, Owner:RWED, Group:RE, World:RE
Access Cntrl List: None
Client attributes: None

OPENVMS$FTPDIR.EXE;1 File ID: (3764,1,0)
Size: 6/16 Owner: [SYSTEM]
Created: 21-DEC-2016 13:39:23.06
Modified: 21-DEC-2016 13:39:23.07 (1)
Expires:
Backup:
Effective:
Recording:
Accessed: 17-NOV-2020 21:13:22.49
Attr Mod: 21-DEC-2016 13:39:23.07
Data Mod: 21-DEC-2016 13:39:23.07
Linkcount: 1
File organization: Sequential
Shelved state: Online
Caching attribute: Writethrough
File attributes: Allocation: 16, Extend: 0, Global buffer count: 0
No version limit, Contiguous best try
Record format: Fixed length 512 byte records
Record attributes: None
RMS attributes: None
Journaling enabled: None
File protection: System:RWED, Owner:RWED, Group:RE, World:RE
Access Cntrl List: None
Connection closed by foreign host.
sword7@tsux1vm:~/axpbox/data$


Exception in CPU thread: System exception: cannot signal semaphore: count would exceed maximum.
Emulator Failure: Threading error: CPU thread has died: /home/sword7/axpbox/src/src/AlphaCPU.cpp, line 517
Stop threads: cpu0 srl0 symException in SYM thread: Threading error: Locking error (Timeout: /home/sword7/axpbox/src/src/base/Mutex.cpp, line 124) trying to lock mutex sym-reg from thread .
: /home/sword7/axpbox/src/src/base/Mutex.cpp, line 128.
ali kbd
Freeing memory in use by system...
pci0.1(sym53c810).disk0.0(file): Closing file.

Binary recompilaton recommendation (enhancement)

I just tested some performance comparing with real hardware. With AXPbox emulator, I got 63.0 VUPs with i7-8800K processor. That 63.0 VUP is same performance as one of fastest VAX 4000 and 7000/9000 series.

I googled some and now learned CharonAXP emulator runs at 800 VUPs with JIT binary recompilation enabled.

Real AlphaServer ES40 hardware performs 800 to 1000 VUPs.

My recommendation is implementing JIT binary recompilation to speed up AXPbox emulator.

Thanks,
Tim

Bringing up graphical window with SDL crashes when interactive debugger happens

I'm trying to use the debugger to poke ARC (#13), but enabling it (CMake debug build, CXXFLAGS="-DIDB") causes a segfault when the graphical window pops up.

[calvin@salient build]$ gdb --args ./axpbox run
GNU gdb (GDB) Fedora 9.1-5.fc32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./axpbox...
(gdb) run
Starting program: /home/calvin/src/axpbox/build/axpbox run
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.31-2.fc32.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
%GUI-I-INS: Installing sdl module as the ES40 GUI
sys0(tsunami): $Id: System.cpp,v 1.79 2008/06/12 07:29:44 iamcamiel Exp $
%FLS-F-NOREST: Flash could not be restored from rom/flash.rom
sys0(tsunami): $Id: Flash.cpp,v 1.19 2008/03/24 22:11:50 iamcamiel Exp $
dma: $Id: DMA.cpp,v 1.9 2008/04/29 09:24:52 iamcamiel Exp $
pci0.19(ali_usb): $Id: AliM1543C_usb.cpp,v 1.6 2008/03/14 15:30:50 iamcamiel Exp $
%DPR-F-NOREST: DPR could not be restored from rom/dpr.rom
sys0(tsunami): $Id: DPR.cpp,v 1.23 2008/06/12 07:29:44 iamcamiel Exp $
cpu0(ev68cb)(0): $Id: AlphaCPU.cpp,v 1.82 2009/03/16 01:33:27 iamcamiel Exp $
serial0(serial): Waiting for connection on port 21264.
[Detaching after fork from child process 70146]
serial0(serial): $Id: Serial.cpp,v 1.51 2008/06/03 09:07:56 iamcamiel Exp $
serial1(serial): Waiting for connection on port 21265.
[Detaching after fork from child process 70152]
serial1(serial): $Id: Serial.cpp,v 1.51 2008/06/03 09:07:56 iamcamiel Exp $
%IDE-I-INIT: New IDE emulator initialized.
pci0.1(cirrus): $Id: Cirrus.cpp,v 1.23 2008/05/31 15:47:09 iamcamiel Exp $
pci0.7(ali): $Id: AliM1543C.cpp,v 1.66 2008/05/31 15:47:07 iamcamiel Exp $
kbc: $Id: Keyboard.cpp,v 1.10 2008/05/31 15:47:09 iamcamiel Exp $
%SYS-I-READROM: Reading decompressed ROM image from rom/decompressed.rom.
%SYM-I-PATCHROM: Patching ROM for speed.
%SYS-I-ROMLOADED: ROM Image loaded successfully!
%DPR-F-NOREST: DPR could not be restored from rom/dpr.rom
sys0(tsunami): $Id: DPR.cpp,v 1.23 2008/06/12 07:29:44 iamcamiel Exp $
This is the ES40 interactive debugger. To start non-interactively, run es40,
Or run this executable (es40_idb) with a last argument of @<script-file>
IDB 0000000000008000 P>run
%IDB-F-NOBRKP: No breakpoint set, press Ctrl-C to end run.
Arbitration 0000000000010000 from CPU 0 (@13e39)... won  0000000800010000
Arbitration clear from CPU 0 (@13f55).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
cirrus: VGABios $Id: vgabios.c 226 2020-01-02 21:36:23Z vruppert $
cirrus: VBE Bios $Id: vbe.c 228 2020-01-02 23:09:02Z vruppert $
cirrus: vgabios call ah00 al03 bx95FA cx0000 dx03C5
cirrus: mode search 03 found line 03

Program received signal SIGSEGV, Segmentation fault.
0x00000000004e0f96 in bx_sdl_gui_c::palette_change (this=0x552a70, index=0, red=0, green=0, blue=0) at /home/calvin/src/axpbox/src/gui/sdl.cpp:1136
1136	  palette[index] = SDL_MapRGB(sdl_screen->format, palred, palgreen, palblue);
Missing separate debuginfos, use: dnf debuginfo-install SDL-1.2.15-43.fc32.x86_64 libX11-1.6.9-3.fc32.x86_64 libXau-1.0.9-3.fc32.x86_64 libgcc-10.1.1-1.fc32.x86_64 libpcap-1.9.1-3.fc32.x86_64 libstdc++-10.1.1-1.fc32.x86_64 libxcb-1.13.1-4.fc32.x86_64
(gdb) where
#0  0x00000000004e0f96 in bx_sdl_gui_c::palette_change (this=0x552a70, index=0, red=0, green=0, blue=0) at /home/calvin/src/axpbox/src/gui/sdl.cpp:1136
#1  0x000000000049c682 in CCirrus::write_b_3c9 (this=0x55a330, value=<optimized out>) at /home/calvin/src/axpbox/src/Cirrus.cpp:1564
#2  0x000000000049cc41 in CCirrus::io_write_b (this=<optimized out>, address=<optimized out>, data=<optimized out>) at /home/calvin/src/axpbox/src/Cirrus.cpp:896
#3  0x000000000049cd82 in CCirrus::io_write (this=0x55a330, address=969, dsize=<optimized out>, data=0) at /home/calvin/src/axpbox/src/Cirrus.cpp:849
#4  0x000000000049fb03 in CCirrus::WriteMem_Legacy (this=0x55a330, index=<optimized out>, address=<optimized out>, dsize=<optimized out>, data=<optimized out>) at /home/calvin/src/axpbox/src/Cirrus.cpp:509
#5  0x00000000004af22f in CPCIDevice::WriteMem (this=0x55a330, index=2, address=9, dsize=<optimized out>, data=0) at /home/calvin/src/axpbox/src/PCIDevice.cpp:397
#6  0x00000000004bd338 in CSystem::WriteMem (this=0x554c30, address=8804615848905, dsize=dsize@entry=8, data=0, source=source@entry=0x7ffff33d5010) at /home/calvin/src/axpbox/src/System.cpp:761
#7  0x00000000004157bc in CAlphaCPU::execute (this=0x7ffff33d5010) at /home/calvin/src/axpbox/src/AlphaCPU.cpp:842
#8  0x00000000004bc377 in CSystem::SingleStep (this=0x554c30) at /home/calvin/src/axpbox/src/System.cpp:575
#9  0x00000000004c0af3 in CTraceEngine::parse (this=this@entry=0x7ffff2d20010, command=command@entry=0x7fffffffaa30) at /home/calvin/src/axpbox/src/TraceEngine.cpp:989
#10 0x00000000004c21e1 in CTraceEngine::run_script (this=0x7ffff2d20010, filename=filename@entry=0x0) at /home/calvin/src/axpbox/src/TraceEngine.cpp:818
#11 0x000000000049b6e4 in main_sim (argc=argc@entry=1, argv=argv@entry=0x7fffffffd660) at /home/calvin/src/axpbox/src/AlphaSim.cpp:338
#12 0x00000000004ae098 in main (argc=2, argv=0x7fffffffd660) at /home/calvin/src/axpbox/src/Main.cpp:21

NetBSD 9.0 : error boot Unknown SCSI command

Hello,

I know NetBSD 9.0 has some problems booting under axpbox, but I got a different error from the one mentioned in the wiki.
I am running under Mac OS X Big Sur, and during the boot from cdrom I got this

Exception in SYM thread: Not implemented: pci0.1(sym53c810).disk0.0(file): Unknown SCSI command 0xa3.
: /home/fausap/axpbox/src/Disk.cpp, line 1498.
Emulator Failure: Threading error: SYM thread has died: /home/fausap/axpbox/src/Sym53C810.cpp, line 1503

I built the version directly from the github repo using clang.
Any idea how to fix this?

thanks,
Fausto

Building AXPbox on Windows with libpcap

Hello!

I never really used Visual Studio with CMake before, so I donโ€™t know how to install the libpcap / npcap development libraries and get CMake to detect them. Does a Windows build even support building with pcap support? Do I need to use winpcap or is npcap fine? How do I get it to work with VS + CMake? (Or should I be cross-compiling to Windows on WSL2?) (I use clang with VS btw, for the better performance in AXPbox)

Trigger component operation instead of looping with sleep

Several components contain a loop that does something every 10 milliseconds (e.g. DEC21143). I believe this could be improved by having these triggered when needed using some thread safe mechanism, e.g. a semaphore.

(Issue #5 is kind of related.)

NetBSD 9.2 networking kernel panic

As reported by @RaymiiOrg, NetBSD 9.2 kernel panicks when booting with the Tulip NIC and manual networking setup during the installation:

/dev/rsd0a: file system is clean; not checking
Setting sysctl variables:
ddb.onpanic: 1 -> 0
[   7.9697692] cd0: no disk label
swapctl: setting dump device to /dev/sd0b
swapctl: adding /dev/sd0b as swap device at priority 0
Starting file system checks:
rndctl: no entropy in seed
Setting tty flags.
Starting network.
Hostname: netbsd.spnw.nl
IPv6 mode: host
Configuring network interfaces: tlp0[  13.7300354] tlp0: receive process failed to idle: state RUNNING - WAIT
[  13.7666263] tlp0: receive process failed to idle: state RUNNING - WAIT
[  13.7854181] tlp0: receive process failed to idle: state RUNNING - WAIT
[  13.7962981] stray dec 6600 irq 20
[  13.7980337] stray dec 6600 irq 20
[  13.7987652] stray dec 6600 irq 20
[  13.7994967] stray dec 6600 irq 20
[  13.8002541] stray dec 6600 irq 20; stopped logging
[  13.8002541] panic: kernel diagnostic assertion "mutex_owned(&cpu_lock)" failed: file "/usr/src/sys/arch/alpha/pci/pci_6600.c", line 362 
[  13.8032401] cpu0: Begin traceback...
[  13.8032401] alpha trace requires known PC =eject=
[  13.8045611] cpu0: End traceback...

[  13.8045611] dump to dev 8,1 not possible
[  13.8045611] rebooting...

When activating the emulated NIC manually with ifconfig, it times out:

[ 187.4467845] tlp0: filter setup and transmit timeout
[ 187.4678969] tlp0: receive process failed to idle: state RUNNING - WAIT

Slow networking

Saw the below error including unstable / slow network while testing DECwindows via X forwarding.

On a debian machine in the same network (no firewalls in between), started X server:

Xephyr -screen 1024x786 -ac -query 0.0.0.0 :1

Setup the remote display in openvms:

set display/create/node=10.0.2.15/transport=tcpip/server=1

(10.0.2.15 is the debian vm, 1 is the x display (:1)

Started an application on OpenVMS:

RUN DECW$EXAMPLES:ICO.EXE 

Or multiple, mail & file manager:

SPAWN/NOWAIT/INPUT=NL: RUN SYS$SYSTEM:DECW$MAIL.EXE
SPAWN/NOWAIT/INPUT=NL: RUN SYS$SYSTEM:VUE$MASTER

afbeelding

Most often it works speedly:

afbeelding

The ICO program moves smoothly, but cannot show that on a screenshot:

afbeelding

But after a few minutes, it became quite slow, even crashing:

afbeelding

afbeelding

This was the x servers output:

afbeelding

On the AXPbox command line window:


CPacketQueue(rx_queue):add() packet lost! Size = 4314.. dst: 08-00-de-ad-be-ef .. src: 52-54-00-12-35-02
CPacketQueue(rx_queue):add() packet lost! Size = 2894.. dst: 08-00-de-ad-be-ef .. src: 52-54-00-12-35-02
CPacketQueue(rx_queue):add() packet lost! Size = 2894.. dst: 08-00-de-ad-be-ef .. src: 52-54-00-12-35-02
CPacketQueue(rx_queue):add() packet lost! Size = 2894.. dst: 08-00-de-ad-be-ef .. src: 52-54-00-12-35-02
CPacketQueue(rx_queue):add() packet lost! Size = 2894.. dst: 08-00-de-ad-be-ef .. src: 52-54-00-12-35-02
CPacketQueue(rx_queue):add() packet lost! Size = 2894.. dst: 08-00-de-ad-be-ef .. src: 52-54-00-12-35-02

Configure Networking?

Do you have any idea how to configure networking? In the video of Stevens Machine Room he uses the prompt on eth0 and, after installing TCP/IP everything just seems to work, but I can't get that to happen. eth0 is enx1062e5f117c9 on my Ubuntu 20.04 machine, and I've compiled with pcap support.

This is in es40.cfg:

pci0.4 = dec21143 
{
  adapter = "enx1062e5f117c9" 
  mac = "08-00-DE-AD-BE-EF"; 
}

Even if I use an empty config block:

pci0.4 = dec21143 
{
}

and use the prompt question on all different interfaces, no luck with TCP/IP setup.

I'm sure I've configured that correctly, default gateway, DNS server, correct license, IP address on the interface, hosts database, etc. (@SYS$STARTUP:TCPIP$CONFIG.COM and @SYS$STARTUP:TCPIP$STARTUP)

Installed pcap libs and recompiled with pcap support:

$ sudo apt install libpcap-dev 

I even tried to setup a bridge and tap interface, which is what I often do for QEMU/KVM VM's:

As root:

ip link add br0 type bridge
ip link set br0 up

# Replace eth0 with your network interface (ip addr), in my case it was enx1062e5f117c9
ip link set enx1062e5f117c9 up
ip link set enx1062e5f117c9 master br0

# Drop existing IP from eth0, replace 10.0.0.15 by your IP on 
ip addr del 10.0.0.15/24 dev enx1062e5f117c9
ip addr flush dev enx1062e5f117c9

# Assign IP to br0, replace 10.0.0.15 by your IP
ip addr add 10.0.0.15/24 brd + dev br0
ip route default via 10.0.0.1 dev br0

# I had to update my DNS
systemd-resolve -i br0 --set-dns 10.0.0.101


# add a tap interface
ip tuntap add dev tap0 mode tap user remy
ip link set dev tap0 up
ip link set tap0 master br0

To resolve this error:

tap0: You don't have permission to capture on that device (socket: Operation not permitted): /home/remy/tmp/axpbox/src/DEC21143.cpp, line 432

I gave the binary correct capabilities:

sudo setcap cap_net_raw,cap_net_bind_service=+eip ./axpbox

It then stopped complaining, but all further tests I made sure to run as root.

OpenVMS config:

$ tcpip
TCPIP> show route
  
                             DYNAMIC
  
Type           Destination                           Gateway
  
AN    0.0.0.0                               10.0.0.1
AN    10.0.0.0/24                           10.0.0.120
AH    10.0.0.120                            10.0.0.120
AH    127.0.0.1                             127.0.0.1


TCPIP> show interface
                                                           Packets
Interface   IP_Addr         Network mask          Receive          Send     MTU
 
 LO0        127.0.0.1       255.0.0.0                   0             0    4096
 WE0        10.0.0.120      255.255.255.0             370           305    1500

Funny thing is, I have a ping running from my linux host, and the data sent received does increase:

TCPIP> show interface
                                                           Packets
Interface   IP_Addr         Network mask          Receive          Send     MTU
 
 LO0        127.0.0.1       255.0.0.0                   0             0    4096
 WE0        10.0.0.120      255.255.255.0             402           327    1500

Pings keep giving a destination unreachable sadly.

On the host I see arp requests:

$ sudo tcpdump -nvi br0 dst 10.0.0.120
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
19:16:29.950333 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.120 tell 10.0.0.15, length 28
19:16:30.959119 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.120 tell 10.0.0.15, length 28
19:16:31.983138 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.120 tell 10.0.0.15, length 28
19:16:33.007208 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.120 tell 10.0.0.15, length 28

If I force the MAC address on the host:

arp -i br0 -s 10.0.0.120 08:00:2b:e5:40:00 

No luck:

$ sudo tcpdump -nvi br0 dst 10.0.0.120 or src 10.0.0.120
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
19:19:03.535151 IP (tos 0x0, ttl 64, id 56938, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.0.15 > 10.0.0.120: ICMP echo request, id 12, seq 151, length 64
19:19:04.559115 IP (tos 0x0, ttl 64, id 56974, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.0.15 > 10.0.0.120: ICMP echo request, id 12, seq 152, length 64

tcpdump on openvms, after setting the arp mac of the host interface correctly in openvms:

$ tcpdump -nv 
tcpdump: Filtering in user process
tcpdump: listening on WE0, link-type EN10MB (Ethernet), capture size 96 bytes
# after a minute or so
 Cancel 


0 packets captured
0 packets received by filter
0 packets dropped by kernel

I do see some code differences in the DEC21143.cpp file from here: https://github.com/JonathanBelanger/es40-ng and here: https://github.com/veprbl/es40 with your one and that of SRM.

Support ARC firmware

AlphaServer ES40 supports two types of BIOS - SRM and ARC, the former being used for most operating systems, while the latter is required to run Windows NT and can also boot Linux. Currently only SRM firmware works - attempting to switch over to ARC freezes the console, leaving the SRM prompt accessible from another terminal:

AlphaServer ES40 Console V7.3-1, built on Feb 27 2007 at 12:57:47
P00>>>alphabios
loading ARC firmware
starting console on CPU 0
initialized idle PCB
initializing idle process PID
lowering IPL
CPU 0 speed is 800 MHz
create powerup

OpenVMS 7.3 IDE drive mount %MOUNT-F-DRVERR, fatal drive error

Trying to activate my license from an ISO in OpenVMS 7.3 Alpha:

$ show dev dqb0 /full

Disk A$DQB0:, device type pak.iso, is online, file-oriented device, shareable,
    available to cluster, error logging is enabled.

    Error count                    0    Operations completed                  3
    Owner process                 ""    Owner UIC                      [SYSTEM]
    Owner process ID        00000000    Dev Prot            S:RWPL,O:RWPL,G:R,W
    Reference count                0    Default buffer size                 512
    Total blocks            16515072    Sectors per track                    63
    Total cylinders            16384    Tracks per cylinder                  16

$ mount /override=ident dqb0	
%MOUNT-F-DRVERR, fatal drive error

$ SET DEF  _A$DQB0:[000000]
$ show def
  A$DQB0:[000000]
%DCL-I-INVDEF, A$DQB0:[000000] does not exist
$ mount dqb0                	
_Label: a
_Log name: a
%MOUNT-F-DRVERR, fatal drive error

$ sho sys /full
OpenVMS V7.3  on node A  25-JAN-2021 09:30:50.09  Uptime  0 00:29:31
        AlphaServer ES40


The AXPbox console:

Start threads: cpu0 srl0 ide0 ide1 nic ali kbd
*** CPU0 *** STARTING ***
Arbitration 0000000000010000 from CPU 0 (@13e39)... won  0000000800010000
Arbitration clear from CPU 0 (@13f55).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
ide1.0 aborting on command 0xec 
*** IP interrupt set for CPU 0 from CPU 0(@ 110d5)
*** IP interrupt cleared for CPU 0 from CPU 0(@ 1a140c).
ide1.0 aborting on command 0xec 
ide1.0 aborting on command 0x91 
ide1.0 aborting on command 0xec 
ide1.0 aborting on command 0x91 
ide1.0 aborting on command 0xec 
ide1.0 aborting on command 0x91 
ide1.0 aborting on command 0xec 
ide1.0 aborting on command 0x91 

IDE config section:

     pci0.15 = ali_ide
     {
       disk0.0 = file
       {
         file =          "disk1.img";
         serial_number = "VMS";
         rev_number    = "8.4";
         model_number  = "OpenVMS8.3";
         read_only     = false;
         cdrom         = false;
         autocreate_size = 6000M;
       }
       disk1.0 = file
       {
         file          = "pak.iso";
         read_only     = true;
         cdrom         = true;
       }
     }

When changing the device in the es40.cfg file to use SCSI, it can be mounted:

$ mount /over=id dka100
%MOUNT-I-WRITELOCK, volume is write locked
%MOUNT-I-CDROM_ISO, license: (1 of 1) , mounted on  _A$DKA100:
$ SET DEF _A$DKA100:[000000]
$ dir

Directory A$DKA100:[000000]

ALPHA_CO.COM;1      

Total of 1 file.
$ 

config section:

  pci0.3 = sym53c810
  {
       disk0.0 = file
       {
         file =          "disk1.img";
         serial_number = "VMS";
         rev_number    = "8.4";
         model_number  = "OpenVMS8.3";
         read_only     = false;
         cdrom         = false;
         autocreate_size = 6000M;
       }
       disk0.1 = file
       {
         file          = "pak.iso";
         read_only     = true;
         cdrom         = true;
       }
  }

On OpenVMS 8.4 I can mount the ISO as an IDE drive.

axpbox loses time

I started axpbox at 11:37 AM; by 2:10 PM the clock had lost 11-1/2 minutes (these commands were run within a second of each other):

Host:

adam@t410:~$ ps ugax | grep axp | grep -v grep; date
root      9682  101  1.5 1321572 122020 pts/3  Sl+  11:37 155:11 ./axpbox run -f es40.cfg
Mon Mar 15 14:10:50 MST 2021

Guest (OpenVMS 8.4-2L1):

$ show time
  15-MAR-2021 13:59:18

It's a slow host machine but not that slow (snappier than a Pi, anyway): model name : Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz w/8GB RAM (the emulated Alpha is only a 1024MB machine).

vmstar fails on in OpenVMS installed on axpbox

I noticed that vmstar (http://antinode.info/dec/sw/vmstar.html) fails on OpenVMS (at least the 8.4-2L1). Both versions compiled with and without "large-file-support" fail when extracting files from a .tar file.
A typical error (I use the Openssl distribution just as an example) is shown below:

$ tar -xf OPENSS-1_1_1G_TAR.
tar : directory checksum error for:
 OpenSSL CHANGES
 ----------------------------

 This is high-level summary of the most important changes.
  Fo
SYSTEM-F-DATALOST, data lost
$

What you see is part of a file that is to be extracted. It looks that some files are extracted correctly, but at a certain point is misreads the file or loses position.

Typing characters on serial is slow

When you type a character, it takes a long time for it to arrive to the VM and be sent back to be printed.

This is caused by the inefficient implementation of Serial.cpp, which waits 20 milliseconds for each cycle in the thread (if the sleep is removed, the delay disappears).

Build needs C++14 feature hint on MacOS

When building on MacOS 10.13.6 using MacPort's CMake 3.18.4 and Apple LLVM version 10.0.0 (clang-1000.11.45.5), it fails due to

[  8%] Building CXX object CMakeFiles/axpbox.dir/src/AlphaCPU.cpp.o
In file included from .../axpbox/src/AliM1543C.cpp:266:
.../axpbox/src/AliM1543C.hpp:211:20: error: function definition does not declare parameters
  std::atomic_bool myThreadDead{false};
                   ^
.../axpbox/src/AliM1543C.cpp:496:21: **error: no member named 'make_unique' in namespace 'std'**
    myThread = std::make_unique<std::thread>([this](){ this->run(); });
               ~~~~~^
.../axpbox/src/AliM1543C.cpp:496:44: error: expected '(' for function-style cast or type construction
    myThread = std::make_unique<std::thread>([this](){ this->run(); });
                                ~~~~~~~~~~~^
.../axpbox/src/AliM1543C.cpp:496:46: error: expected expression
    myThread = std::make_unique<std::thread>([this](){ this->run(); });
                                             ^

Fix is to request C++14 features:
target_compile_features(axpbox PUBLIC cxx_std_14)

With this, there are only a few warnings about type mismatches between long and long long arguments.

Thanks for the great work on this!

Floating point copyright notices

At the tail end of the two floating point modules (IEEE and VAX), there's a brief notice that code was modeled on or incorporated from the SimH Alpha code, and a simple copyright 2003.

The SimH code is licensed under the most permissive open source license (MIT X11/JPEG style), but it does have one requirement: that derivative works reproduce the original copyright notice in full. This is for protection of the derivative work, showing that it does not derive from a more restrictive license type, such as GPL.

The SimH Alpha modules are in the SimH GitHub repository and are the best place to get the exact wording.

MacOS TCP/IP networking setup

Running OpenVMS AXP in axpbox that is build natively on MacOS 10.13.6 (High Sierra).
I also have the latest Parallels Desktop running Windows and Linux VMs successfully.
I want to get the OpenVMS TCPIP software running so that it can connect to my network (and the internet). I have added the following into the es40.cfg file:

pci0.4 = dec21143
{
adapter = "bridge0"
mac = "08-00-DE-AD-BE-EF"
}

When axpbox starts it lists all of the interfaces and asks me to select one: but which? Should I connect direct to 'en1' which is the WiFi interface ('en0' is the Ethernet interface but I don't have an ethernet connection to this iMac) or 'bridge1' which I think is the Parallels bridge.
My understanding of networking, especially on the MacOS, is basic at best so if someone has this working I would love to see the correct incantations.
Happy to provide any other information but I don't know what at this stage.
Susan

2 CPU system boots very slowly with a lot of errors

Hello,

I am trying to boot a system with 2 CPU and 1GB of RAM.
I installed it with a single cpu and everything went smooth (I followed the official upgrade procedure from VSI).
When I try to boot with 2 CPU I got the following on the axpbox console

fausap@fausap-MS-7B86:~/VMS$ ./axpbox run
sys0(tsunami): $Id: System.cpp,v 1.79 2008/06/12 07:29:44 iamcamiel Exp $
flash: 2097156 bytes restored.
%FLS-I-RESTST: Flash state restored from rom/flash.rom
sys0(tsunami): $Id: Flash.cpp,v 1.19 2008/03/24 22:11:50 iamcamiel Exp $
pci0.15(ali_ide).disk0.0(file): Mounted file disk1, 12288000 512-byte blocks, 15360/16/50.
pci0.2(sym53c810).disk0.0(file): Mounted file AVMS842L2LP2.ISO, 163750 2048-byte blocks, 655/10/25.
dma: $Id: DMA.cpp,v 1.9 2008/04/29 09:24:52 iamcamiel Exp $
pci0.19(ali_usb): $Id: AliM1543C_usb.cpp,v 1.6 2008/03/14 15:30:50 iamcamiel Exp $
dpr: 16384 bytes restored.
%DPR-I-RESTST: DPR state restored from rom/dpr.rom
sys0(tsunami): $Id: DPR.cpp,v 1.23 2008/06/12 07:29:44 iamcamiel Exp $
cpu0(ev68cb)(0): $Id: AlphaCPU.cpp,v 1.82 2009/03/16 01:33:27 iamcamiel Exp $
cpu1(ev68cb)(1): $Id: AlphaCPU.cpp,v 1.82 2009/03/16 01:33:27 iamcamiel Exp $
serial0(serial): Waiting for connection on port 21264.
serial0(serial): $Id: Serial.cpp,v 1.51 2008/06/03 09:07:56 iamcamiel Exp $
serial1(serial): Waiting for connection on port 21265.
serial1(serial): $Id: Serial.cpp,v 1.51 2008/06/03 09:07:56 iamcamiel Exp $
%IDE-I-INIT: New IDE emulator initialized.
pci0.2(sym53c810): $Id: Sym53C810.cpp,v 1.14 2008/05/31 15:47:13 iamcamiel Exp $
pci0.3(dec21143): MAC set to 08-00-2b-e5-40-01
pci0.3(dec21143): $Id: DEC21143.cpp,v 1.36 2008/05/31 15:47:09 iamcamiel Exp $
! CONFIGURATION WARNING ! vga_console set to true, but no VGA card installed.
pci0.7(ali): $Id: AliM1543C.cpp,v 1.66 2008/05/31 15:47:07 iamcamiel Exp $
kbc: $Id: Keyboard.cpp,v 1.10 2008/05/31 15:47:09 iamcamiel Exp $
%SYS-I-READROM: Reading decompressed ROM image from rom/decompressed.rom.
%SYM-I-PATCHROM: Patching ROM for speed.
%SYS-I-ROMLOADED: ROM Image loaded successfully!
dpr: 16384 bytes restored.
%DPR-I-RESTST: DPR state restored from rom/dpr.rom
sys0(tsunami): $Id: DPR.cpp,v 1.23 2008/06/12 07:29:44 iamcamiel Exp $
Start threads: cpu0 cpu1 srl0 srl1 ide0 ide1 sym nic ali kbd
*** CPU0 *** STARTING ***
Arbitration 0000000000010000 from CPU 0 (@13e39)... won  0000000800010000
Arbitration clear from CPU 0 (@13f55).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
Arbitration 0000000000010000 from CPU 0 (@13351)... won  0000000800010000
Arbitration clear from CPU 0 (@133b9).
*** DPR *** Starting CPU 1 ***
*** CPU1 *** STARTING ***
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu0: lock broken by cpu1(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
cpu1: lock broken by cpu0(ev68cb).   
Arbitration 0000000000020000 from CPU 1 (@13351)... won  00000008000200e0
Arbitration clear from CPU 1 (@133b9).
*** IP interrupt set for CPU 0 from CPU 0(@ 110d5)
*** IP interrupt set for CPU 1 from CPU 0(@ 110d5)
*** IP interrupt cleared for CPU 0 from CPU 0(@ 1a140c).
*** IP interrupt cleared for CPU 1 from CPU 0(@ 1a140c).

and on the serial terminal 0 I have

process idle, pcb = 001ABF50
[...]
SYSFAULT CPU1 - pc = 001a0e84
exception context saved starting at 001ACD10
[...]
CPU 1 unable to complete console mode transition 1
CPU 1: begin = 8416303305, end = 32416304258, delta = 24000000953

a lot of times then

%SMP-F-CPUBAD, CPU #1 cpu type does not match that of primary

a SHOW CPU command shows:

$ show cpu

System: ANUBIS, AlphaServer ES40

CPU ownership sets:
   Active               0
   Configure            0,1

CPU state sets:
   Potential            0
   Autostart            0-3
   Powered Down         None
   Not Present          2,3
   Hard Excluded        None
   Failover             None
$ set cpu/start 1
%SYSTEM-W-WRONGSTATE, CPU 1 is in the wrong state for the requested operation

how to build with gcc?

-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Searching 16 bit integer - Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for alarm
-- Looking for alarm - found
-- Looking for arpa/inet.h
-- Looking for arpa/inet.h - found
-- Looking for arpa/telnet.h
-- Looking for arpa/telnet.h - found
-- Looking for atexit
-- Looking for atexit - found
-- Looking for ctype.h
-- Looking for ctype.h - found
-- Looking for errno.h
-- Looking for errno.h - found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for fopen
-- Looking for fopen - found
-- Looking for fopen64
-- Looking for fopen64 - not found
-- Looking for fork
-- Looking for fork - found
-- Looking for fseek
-- Looking for fseek - found
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for fseeko64
-- Looking for fseeko64 - not found
-- Looking for ftell
-- Looking for ftell - found
-- Looking for ftello
-- Looking for ftello - found
-- Looking for ftello64
-- Looking for ftello64 - not found
-- Looking for gmtime_s
-- Looking for gmtime_s - not found
-- Looking for inet_aton
-- Looking for inet_aton - found
-- Looking for inet.h
-- Looking for inet.h - not found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for in.h
-- Looking for in.h - not found
-- Looking for isblank
-- Looking for isblank - found
-- Looking for localtime_s
-- Looking for localtime_s - not found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for memset
-- Looking for memset - found
-- Looking for netinet/in.h
-- Looking for netinet/in.h - found
-- Looking for pow
-- Looking for pow - not found
-- Looking for process.h
-- Looking for process.h - not found
-- Looking for pthread_self in pthread
-- Looking for pthread_self in pthread - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for select
-- Looking for select - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for socket
-- Looking for socket - found
-- Looking for socket.h
-- Looking for socket.h - not found
-- Looking for sqrt
-- Looking for sqrt - not found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for strcasecmp
-- Looking for strcasecmp - found
-- Looking for strchr
-- Looking for strchr - found
-- Looking for strdup
-- Looking for strdup - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strncasecmp
-- Looking for strncasecmp - found
-- Looking for strspn
-- Looking for strspn - found
-- Looking for sys/param.h
-- Looking for sys/param.h - found
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/wait.h
-- Looking for sys/wait.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for vfork
-- Looking for vfork - found
-- Looking for vfork.h
-- Looking for vfork.h - not found
-- Looking for windows.h
-- Looking for windows.h - not found
-- Looking for winsock2.h
-- Looking for winsock2.h - not found
-- Looking for ws2tcpip.h
-- Looking for ws2tcpip.h - not found
-- Check size of _Bool
-- Check size of _Bool - done
-- Looking for _fseeki64
-- Looking for _fseeki64 - not found
-- Looking for _ftelli64
-- Looking for _ftelli64 - not found
-- Looking for _strdup
-- Looking for _strdup - not found
-- Looking for _stricasecmp
-- Looking for _stricasecmp - not found
-- Looking for _stricmp
-- Looking for _stricmp - not found
-- Looking for pcap.h
-- Looking for pcap.h - not found
-- Looking for SDL/SDL.h
-- Looking for SDL/SDL.h - not found
-- Looking for X11/X.h
-- Looking for X11/X.h - not found
CMake Warning at CMakeLists.txt:133 (message):
  pcap not found.  Building without network support


CMake Warning at CMakeLists.txt:139 (message):
  sdl not found.  Building without SDL graphics support


CMake Warning at CMakeLists.txt:145 (message):
  x11 not found.  Building without x11 graphics support


-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Looking for include files time.h, sys/time.h
-- Looking for include files time.h, sys/time.h - found
-- C++ compiler flags  : 
-- C compiler flags    : 
-- Linker flags        :   
-- Configuring done
-- Generating done
-- Build files have been written to: /home/allan/alpha/axpbox/build

$ sudo apt-get install libsdl1.2-dev
$ sudo apt-get install libpcap-dev

./axpbox run
sys0(tsunami): $Id: System.cpp,v 1.79 2008/06/12 07:29:44 iamcamiel Exp $
%FLS-F-NOREST: Flash could not be restored from rom/flash.rom
sys0(tsunami): $Id: Flash.cpp,v 1.19 2008/03/24 22:11:50 iamcamiel Exp $
Segmentation fault

Build on Mac OS 10.13

I have an iMac (running MacOS 10.13 - High Sierra; it is a mid-2011 model and so cannot run anything later (*)) and I was wanting to build axpbox natively. (I've built in on a Linux 20.04 VM under Parallels). The compiler tools are as up-to=date as they can be.

Is there a specific list of the prerequisites and how to install them (I'm assuming HomeBrew is used but there seem to be issues - e.g. SDL is installed but the 'cmake' step cannot find it)?

When I try, the 'cmake' step works but the 'make' step fails almost immediately with lots of errors (mainly of the type that indicates a significant mis-match between how the code is written and what the compiler expects).

Has anyone actually does this on MacOS and can guide me?

Thanks

Susan

(*) Planning to get one of the Apple Silicon iMacs when they are available.
(Sorry if this request is not appropriate for this area but I can't find any other user forum - pointers please if there is one.)

AXP won't keep timezone information

I have set the timezone information correctly when installing OpenVMS and is seems to be set up correctly:

$ @sys$manager:utc$time_setup show

AUTO_DLIGHT_SAV is set to "1".
OpenVMS will automatically change to/from Daylight Saving Time.
(in time zones that use Daylight Saving Time)

LOCAL TIME ZONE          = AUSTRALIA / MELBOURNE -- DAYLIGHT TIME
LOCAL SYSTEM TIME        = 22-JAN-2021 15:38:01.21 (AEDT)
TIME DIFFERENTIAL FACTOR = 11:00
TIME ZONE RULE           = AEST^10AEDT^11,M10.1.0/02,M4.1.0/03
Change AEST^ to AEDT^ on the First Sunday of October (3-Oct-2021) at 02:00
Change AEDT^ to AEST^ on the First Sunday of April (4-Apr-2021) at 03:00

However when I boot it seems to do something 'strange' with the time:

Please enter date and time (DD-MMM-YYYY HH:MM) 22-JAN-2021 15:34
%STDRV-I-STARTUP, OpenVMS startup begun at 22-JAN-2021 04:34:21.94

It seems to be taking whatever I enter and converting it back to UTC and using that.

What am I doing wrong??

(Running the VSI Alpha image in axpbox in an iMac running MacOS 10.13.6 (as fully patched as Apple provide for this old version that I can't upgrade as it is a mid-2011 iMac)

Susan

fseek in DiskFile.cpp causes segfault (was: Segfault on raspbian 64)

So I built axpbox on Raspian 64-bit

uname -a
Linux raspoe 5.4.75-v8+ #1367 SMP PREEMPT Mon Nov 9 15:11:16 GMT 2020 aarch64 GNU/Linux

configure ran as expected. see cfg file below.
on run it segfaults:

pi@raspoe ~ $ sudo /opt/axpbox/build/axpbox run /opt/axpbox/es40.cfg 
sys0(tsunami): $Id: System.cpp,v 1.79 2008/06/12 07:29:44 iamcamiel Exp $
%FLS-F-NOREST: Flash could not be restored from /opt/axpbox/rom/flash.rom
sys0(tsunami): $Id: Flash.cpp,v 1.19 2008/03/24 22:11:50 iamcamiel Exp $
Segmentatiefout

es40.cfg after editing:

pi@raspoe ~ $ cat /opt/axpbox/es40.cfg
sys0 = tsunami
{
  memory.bits = 28;
  rom.srm = "/opt/axpbox/rom/cl67srmrom.exe";
  rom.decompressed = "/opt/axpbox/rom/decompressed.rom";
  rom.flash = "/opt/axpbox/rom/flash.rom";
  rom.dpr = "/opt/axpbox/rom/dpr.rom";

  cpu0 = ev68cb
  {
    speed = 800M;
    icache = false;
    skip_memtest_hack = false;
  }

  serial0 = serial
  {
    port = 21264;
  }

  pci0.15 = ali_ide
  {
  }

  pci0.1 = dec21143
  {
    adapter = "tap1";
    mac = "08-00-2B-E5-40-00";
  }

  pci0.2 = sym53c810
  {
    disk0.0 = file
    {
      file = "/vdisk/VSIAXP.vdisk";
      cdrom = false;
      read_only = false;
    }

    disk0.1 = file
    {
      file = "/vdisk/Tools-RZ22.vdisk";
      cdrom = false;
      read_only = false;
    }

  }

  pci0.7 = ali
  {
    mouse.enabled = false;
    vga_console = false;
  }

  pci0.19 = ali_usb
  {
  }
}

since I used the default build, gdb from the core dump only gives me this:


Thread 1 (LWP 9269):
#0  0xf74fd614 in ?? ()
No symbol table info available.
#1  0x0005c270 in CDiskFile::CDiskFile(CConfigurator*, CSystem*, CDiskController*, int, int) ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

I believe at this point it should decompress the ROM ?

Running DECterm crashes OpenVMS 8.4

Opening DECterm either though CDE or console causes OpenVMS to crash with this error message:

**** OpenVMS Alpha Operating System V8.4     - BUGCHECK ****

** Bugcheck code = 00000215: MACHINECHK, Machine check while in kernel mode
** Crash CPU: 00000000    Primary CPU: 00000000    Node Name: IVABOX
** Highest CPU number:    00000003
** Active CPUs:           00000000.00000001
** Current Process:       DECW$TE_013C
** Current PSB ID:        00000001
** Image Name:            IVABOX$DKA0:[SYS0.SYSCOMMON.][SYSEXE]DECW$TERMINAL.EXE

This is accompanied by this output in the AXPbox console (possibly related to the memory dump procedure):

Arbitration 0000000000010000 from CPU 0 (@14b71)... won  00000008000100e0
Arbitration clear from CPU 0 (@14c89).
Unknown PCHIP 1 CSR 0000340 read attempted.
Unknown PCHIP 1 CSR 0000440 read attempted.
Unknown PCHIP 1 CSR 0000500 read attempted.
Unknown PCHIP 1 CSR 0000540 read attempted.
Unknown PCHIP 0 CSR 0000340 read attempted.
Unknown PCHIP 0 CSR 0000440 read attempted.
Unknown PCHIP 0 CSR 0000500 read attempted.
Unknown PCHIP 0 CSR 0000540 read attempted.

SystemException undefined for OS X Mojave build

[ 75%] Building CXX object CMakeFiles/axpbox.dir/src/base/Semaphore.cpp.o In file included from /Users/jsteve/src/axp2/src/base/Semaphore.cpp:77: /Users/jsteve/src/axp2/src/base/Semaphore_POSIX.cpp:112:11: error: use of undeclared identifier 'SystemException' throw SystemException("cannot create semaphore (condition)");

Pretty sure I have the latest stuff.. Although I like my 32bit too much to go all the way to the new stuff.

TrashCan:build jsteve$ uname -a
Darwin TrashCan.local 18.7.0 Darwin Kernel Version 18.7.0: Mon Aug 31 20:53:32 PDT 2020; root:xnu-4903.278.44~1/RELEASE_X86_64 x86_64

TrashCan:build jsteve$ cc -v
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

IDE controller crashes OpenVMS installation

When installing OpenVMS with the IDE controller, the emulator crashes on a "semaphore count exceeded" error during the execution phase.

This is probably caused by the disk thread spamming the controller thread with semaphore signals, which the controller thread isn't able to process in time.

BUG(?) with math code

Hello all,

I'm using the latest snapshot compiled under Mac OS X 10.13 and clang.
I am using OpenVMS 8.4.2L1
Everything is ok. I noticed some weird output on the console when I am compiling some math code under C.

SUBL_V 0000000000000000x - 18446744071562067968x = 18446744071562067968x + TRAP
[repeated several times]

The build is ok. So I don't know if this is a real bug or not.

regards,
Fausto

Add a monitor/debug GUI

For the purpose of debugging the OS and/or firmware a graphical debug console showing the state of the CPU (instruction pointer, disassemler et cetera) and peripheral registers, maybe with some more emulator-specific details, would be handy.

This would probably be written in Qt and could be extended into a primary GUI for AXPbox in the future.

SDL build under Mac OS X 10.13

Hello,

I'm trying to include the SDL (v 1.2.15) libraries in the build, but even if I have them installed, cmake (v. 3.19) is able to find them but not to compile the test program. This is the error:

Building C object CMakeFiles/cmTC_2c15c.dir/CheckIncludeFile.c.o
/usr/bin/clang    -o CMakeFiles/cmTC_2c15c.dir/CheckIncludeFile.c.o -c /Users/home/axpbox/b/CMakeFiles/CMakeTmp/CheckIncludeFile.c
/Users/home/axpbox/b/CMakeFiles/CMakeTmp/CheckIncludeFile.c:9:5: error: conflicting types for 'SDL_main'
int main(void)
    ^
/usr/local/include/SDL/SDL_main.h:54:14: note: expanded from macro 'main'
#define main    SDL_main
                ^
/usr/local/include/SDL/SDL_main.h:57:22: note: previous declaration is here
extern C_LINKAGE int SDL_main(int argc, char *argv[]);
                     ^
1 error generated.

I am not an expert of CMake, but maybe this can be easily fixed.

Port AXPbox from POCO to C++11 (or Qt Core 5)

Advantages:

  • Makes the codebase smaller
  • Qt is more widely used, so it should be more stable
  • It supports events
  • Qt GUI backend may be used to replace SDL and X11

Disadvantages:

  • Doesn't work on more exotic platforms

SCSI command 0x1B not implemented (53c810).

When I logged out of system, axpbox immediately crashed with unknown SCSI command 0x1B. I was able reproduce errors at some chance when I attempted to log off.

Exception in SYM thread: Not implemented: pci0.1(sym53c810).disk0.4(file): Unknown SCSI command 0x1b.
: /home/sword7/axpbox/src/src/Disk.cpp, line 1495.
Emulator Failure: Threading error: SYM thread has died: /home/sword7/axpbox/src/src/Sym53C810.cpp, line 1501
Stop threads: cpu0 srl0 sym ali kbd
Freeing memory in use by system...
pci0.1(sym53c810).disk0.0(file): Closing file.

Update:

I checked SCSI command reference and learned that system attempted to unload CD during logout command with SCSI command 1B (load/unload or start/stop unit).

Thanks,
Tim

OpenVMS install fails in execution phase

Hello,
I followed the guide here in the repo about installing OpenVMS (my version is VSI OpenVMS 8.4l1), and the installation proceeds as described until the execution phase. The two documented error messages (about the hlb file and the exe file) are displayed, I dismiss them with a "no" for the question about terminating the install. After a few minutes however, at that time the progress was on 10%, the following messages appeared:

%PCSI-E-WRITEERR, error writing DISK$ALPHASYS:[VMS$COMMON.][SYS$I18N.LOCALES.SYSTEM]UTF8-20.LOCALE;1 
-SYSTEM-F-CTRLERR, fatal controller error 
-SYSTEM-W-RESULTOVF, resultant string overflow 
%PCSI-E-WRITEERR, error writing DISK$ALPHASYS:[VMS$COMMON.][SYS$I18N.LOCALES.SYSTEM]UTF8-20.LOCALE;1 
-SYSTEM-F-CTRLERR, fatal controller error 
-SYSTEM-W-RESULTOVF, resultant string overflow 
%PCSI-E-WRITEERR, error writing DISK$ALPHASYS:[VMS$COMMON.][SYS$I18N.LOCALES.SYSTEM]UTF8-20.LOCALE;1 
-SYSTEM-F-CTRLERR, fatal controller error 
-SYSTEM-W-RESULTOVF, resultant string overflow 
%PCSI-E-WRITEERR, error writing DISK$ALPHASYS:[VMS$COMMON.][SYS$I18N.LOCALES.SYSTEM]UTF8-20.LOCALE;1 
-SYSTEM-F-CTRLERR, fatal controller error 
-SYSTEM-W-RESULTOVF, resultant string overflow 
%PCSI-E-CLOSEOUT, error closing DISK$ALPHASYS:[VMS$COMMON.][SYS$I18N.LOCALES.SYSTEM]UTF8-20.LOCALE;1 as output 
-SYSTEM-F-CTRLERR, fatal controller error 
-SYSTEM-W-RESULTOVF, resultant string overflow 
%PCSI-E-OPFAILED, operation failed 
Terminating is strongly recommended. Do you want to terminate? [YES] 

I don't know too much about the system yet, I'm just starting to learn about VMS, so I don't know what could cause the problem. Could you help me please, what could go wrong which causes these messages? After I dismiss them with "no" it starts to throw messages about nonexistent directories and I killed the process after the 10th, so don't know what would be the result at the end. I get at booting messages like "ide0.1 aborting on command 0x00" and the same message with "... command 0xec" is it possible this causes the problem? The config file is the same as in the guide, except that I replaced my file paths for disk files.
Thank you!

Serial terminal freeze

Hello,

I'm using OpenVMS 8.4 and a build under Mac OS X 10.13 with the clang compiler.
I'm experiencing a strange bug with the serial terminal.
After I logged in, if I don't do any activity for 5 mins, the terminal is someway locked, and I cannot type in it anymore, and I cannot find any way to "unlock" it.
But If I am logged out, this sort of locking doesn't happen.

I'm using XTerm as a terminal program.

On the primary console, there's no error message.

Regards,
Fausto

Build fails on MacOS BigSur ARM64 (Apple M1)

All dependencies needed are natively compiled on BigSur ARM64 (clang-1200.0.32.28)
cmake finishes
build fails on the following

[  1%] Building CXX object CMakeFiles/axpbox.dir/src/AliM1543C.cpp.o
In file included from /Users/user/SRC/axpbox/src/AliM1543C.cpp:270:
In file included from /Users/user/SRC/axpbox/src/AliM1543C.hpp:144:
In file included from /Users/user/SRC/axpbox/src/PCIDevice.hpp:62:
In file included from /Users/user/SRC/axpbox/src/SystemComponent.hpp:90:
In file included from /Users/user/SRC/axpbox/src/Configurator.hpp:92:
In file included from /Users/user/SRC/axpbox/src/StdAfx.hpp:315:
/Users/user/SRC/axpbox/src/make_unique.hpp:34:31: warning: variadic templates are a C++11 extension [-Wc++11-extensions]
template<typename T, typename ...Args>
                              ^
/Users/user/SRC/axpbox/src/make_unique.hpp:35:37: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
std::unique_ptr<T> make_unique( Args&& ...args )
                                    ^
In file included from /Users/user/SRC/axpbox/src/AliM1543C.cpp:270:
/Users/user/SRC/axpbox/src/AliM1543C.hpp:213:20: error: function definition does not declare parameters
  std::atomic_bool myThreadDead{false};
                   ^
/Users/user/SRC/axpbox/src/AliM1543C.cpp:500:46: error: expected expression
    myThread = std::make_unique<std::thread>([this](){ this->run(); });
                                             ^
/Users/user/SRC/axpbox/src/AliM1543C.cpp:997:5: error: use of undeclared identifier 'myThreadDead'; did you mean 'myThread'?
    myThreadDead.store(true);
    ^~~~~~~~~~~~
    myThread
/Users/user/SRC/axpbox/src/AliM1543C.hpp:212:32: note: 'myThread' declared here
  std::unique_ptr<std::thread> myThread;
                               ^
/Users/user/SRC/axpbox/src/AliM1543C.cpp:997:18: error: no member named 'store' in 'std::__1::unique_ptr<std::__1::thread, std::__1::default_delete<std::__1::thread>
      >'
    myThreadDead.store(true);
    ~~~~~~~~~~~~ ^
/Users/user/SRC/axpbox/src/AliM1543C.cpp:1437:7: error: use of undeclared identifier 'myThreadDead'
  if (myThreadDead.load())
      ^
2 warnings and 5 errors generated.
make[2]: *** [CMakeFiles/axpbox.dir/build.make:82: CMakeFiles/axpbox.dir/src/AliM1543C.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/axpbox.dir/all] Error 2
make: *** [Makefile:103: all] Error 2

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.