Home · Articles · Downloads · Hobby Wear · Forums · Web Links · News CategoriesMonday, November 29, 2021
Navigation
Home
Articles
Downloads
Hobby Wear
FAQ
Forums
Web Links
News Categories
Contact Us
Photo Gallery
OpenVMS Bigot
Search
Users Online
Guests Online: 4
No Members Online

Registered Members: 7,607
Newest Member: phatoes
Sponsors
Island Computer
View Thread
OpenVMS Hobbyist Program | Alpha Systems Forums | Emulated Alpha Forum
Page 1 of 2 1 2 >
Author Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on January 13 2017 06:19
Hi All,

I thought I'd let others know that I have been working on the ES40 emulator. I have it compiling and running, non-SMP, on Windows 10 and Cygwin. I have found and fixed quite a few issues. I'm right now working through determining why a secondary processor is not fully recognized (it is seen as available, but not configured or active). I don't think it is quite ready for prime time and have not checked in my code changes (I do have a github repository for it). Also, the code is not terribly efficient, It does use calculated jumps, but also does all kinds of questionable checks. After I get the SMP working, I'll look to make the code much more efficient.

Just thought I'd let you know.

JonB
Author RE: Alpha Cygwin Emulator - es40 -
Bruce Claremont
Member

Posts: 606
Joined: 07.01.10
Posted on January 13 2017 11:32
Good to know. Thanks for posting. Let us know when it is ready for testing.
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on March 28 2017 04:37
How about a quick update...

I found quite a few issues, some can be resolved, some require rearchtecture...

The current issue I'm working on is that the interrupt processing has a number of issues. The biggest is the timer interrupt processing. Currrently, the timer interrupt get set, but never cleared. This causes the interrupt processing to get into a tight loop. It checks the flags that an interrupt is pending (timer in this case) and sets the PC to the PAL interrupt processing code. The PAL interrupt processing code tries to clear the flag, but it does not get cleared. When returning from this code, the emulator attempts to execute the next instruction and checks for any interrupts. Since the interrupt flag is still set, the PC is again set to the PAL interrupt processing code. And so on. When there is just one CPU, the processing is sufficiently slow enough to still have the issue, but the loop is not so tight and allows other instructions to be processed. When there is more than one CPU, one of the CPUs, usually the primary, will execute fine, still with the loop, but the other CPUs will be in the tight loop.

The architectural issue is there are quite a few places where a component thread will access data, both read and write, in another component thread without the use of any kind of synchronization (mutex). Now this is not a huge problem because the emulated software is multiple execution thread safe, but it may cause some on expected and random issues. At some point, I'll reachitect the entire emulator (one thread should never access the data in another thread).

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on March 29 2017 03:02
That is very good news. However the link to firmware at the ES-40 project page is dead, so while there are some others that may want to try it, they can not.

Do you have write access to the ES-40 project to be able to post updates there?

Also one thing that is very useful to have in an emulator is a way to do paravirtualization. That is provide a way for things like VMS system services or device drivers to run code on the native platform.

Think of the advantages of ES-40 being hosted on future x86_64 VMS or even IA64/VMS.
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on March 29 2017 12:18
Unfortunately, I don't have write/update rights on the ES40 site. I did replicate the project source and have the ES40 firmware.

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on March 29 2017 13:40
ES-40 firmware located.

ftp://ftp.hp.com/pub/alphaserver/firmware/current_platforms/v7.3_release/ES40_series/
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on November 16 2017 03:07
Will either of your projects run OpenVMS 8.4 well enough to use it as a dedicated Infoserver box on Linux?
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on December 07 2017 15:47
Well I have stopped work on the es40 emulator. The multithread code was not protecting shared resources well enough, which caused some timing issues. My new emulator, DECaxp, will replicate a 21264 CPU as close as possible. Each CPU will have 4 integer threads, 2 FP threads, plus 3 other threads. I'm not too sure how many threads the system board emulation will require, yet. I'm also not emulating PALcode, like es40 does, some of which does not match the real PALcode.

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on December 08 2017 02:27
Please add paravirtulization support to it.

This is where we can device drivers and privileged code call host native modules.
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on December 09 2017 00:59
Hi All,

It was brought to my attention that I did not have a URL to where the code is for the emulator. So here it is: https://github.com/JonathanBelanger/DECaxp. As for paravirtualization, I will look into it. I'm still implementing the actual CPU emulation (currently at Dcache and Bcache an associated code). I have all of the following near completion:

1. Icache
2. Instruction decode
3. ITB
4. Branch prediction
5. All instructions (integer and FP)
6. Integer Pipeline (4 of them)
7. FP pipeline (2 of them)
8. Dcache (I'm refactoring this at present)
9. DTB
10. System Interface (refactoring along with Dcache)
11. Bcache
12. All IPRs and CSRs
13. All initialization code (CPU only)
14. Pretty much all threading code, which includes thread-to-thread interfaces

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on December 09 2017 03:38
Sounds good.

Please add a libvirt API for the configuration instead of rolling your own to my wishlist.

A libvirt API will allow your emulator to be more easily deployed by standard cloud orchestration tools.
Author RE: Alpha Cygwin Emulator - es40 -
goodbyespy
Member

Posts: 19
Location: Saint Petersburs, Russia.
Joined: 17.11.17
Posted on February 25 2018 10:38
Hello Jonathan! I have compiled es40 under FreeBSD 10.3 stable. But es40 work very slowly. Can you help me with advice?
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on March 15 2018 13:31
I can try and get you a copy of what I have, but there are issues with threads and data handling. If you go to the other thread I started about a new alpha emulator, there are some updates.

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
goodbyespy
Member

Posts: 19
Location: Saint Petersburs, Russia.
Joined: 17.11.17
Posted on April 07 2018 02:51
Hello Jonathan! While I am waiting a new alpha emulator I would like to use es40. But source files System.cpp and System.h has "bad" symbols 97 and 92.To compile yours version es40 I have removed this symbols. How can I upload this files for you?
Author RE: Alpha Cygwin Emulator - es40 -
KenAllan
Member

Posts: 1
Location: London
Joined: 21.06.18
Posted on June 21 2018 05:23
Hello,
I have been interested in ES40 emulator for some time. As I made code changes, it became apparent that the random failures I was getting related to memory size. After some investigation I changed a macro definition in cpu_defs.h, here is my version:


#define DATA_PHYS(addr,flags,align) \
if ((addr) & (align)) { \
u64 a1 = (addr); \
u64 a2 = (addr) + (align); \
if ((a1 ^ a2) & ~X64(1fff)) /*page boundary crossed*/ \
{ \
state.fault_va = addr; \
state.exc_sum = ((REG_1 & 0x1f) << 8); \
state.mm_stat = (I_GETOP(ins) << 4) | ((flags & ACCESS_WRITE) ? 1 : 0); \
printf("unaligned access %d, %d -> trap! ",flags,align); \
printf("exc_sum = 0x%04" LL "x, fault_va = 0x%016" LL "x, mm_stat = 0x%03" LL "x.\n",state.exc_sum, state.fault_va, state.mm_stat); \
GO_PAL(UNALIGN); return 0; \
} \
} \
DATA_PHYS_NT(addr,flags)

I changed the mask constant from fff into 1fff, I also added the 'return 0;', I no longer get any random failures.
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on August 11 2018 04:24
The ES40 emulator is pretty good, but I kept running into those same random errors. I also found a number of other errors. I could never get the SMP running, and I kept getting random error in the console. Also, one of the limitations in ES40 is that it replaces the PAL code with its own versions, so it will allow OpenVMS to run, but may or may not allow for any of the UNIX variants. It all depends upon the PAL code to be executed. At some point, in the distant future, I may write some code to convert the PAL/Console code into emulated code, that should run much faster.

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on August 14 2018 02:37
Is either the es-40 project or your new project stable enough to function as an OpenVMS system setup as an INFOSERVER?
Author RE: Alpha Cygwin Emulator - es40 -
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on August 14 2018 07:40
ES40 is probably the closest, but the project has been archived and does have issues (see some of the recommended changes above to make it far more stable). My emulator is not even close to being stable. It has only executed a few thousand instructions and does not yet have anything beyond the CPU that has been tested. If you are looking for something stable and supported, then I'd recommend some of the commercial versions. Some even come with freeware versions, though their functionality is artificially limited.

Sorry,

~Jon.
Author RE: Alpha Cygwin Emulator - es40 -
malmberg
Moderator

Posts: 527
Joined: 15.04.08
Posted on August 15 2018 03:11
My home systems are currently two under powered to support both a Windows VM and an emulator, and freeVMS appears to be now the only commercial version available to hobbyists for free.

I have a Raspberry Pi that I would hope I can get LXD containers running that should be able to support an AXP emulator.

It would be very useful to have an Infoserver appliance for test booting various versions of VMS on both emulators and physical systems.
Author RE: Alpha Cygwin Emulator - es40 -
m2-guy
Member

User Avatar

Posts: 38
Location: Provence
Joined: 19.12.07
Posted on January 14 2019 21:32
last change on https://github.com/JonathanBelanger/DECaxp was several months ago. hopefully this project is still alive
Page 1 of 2 1 2 >
Jump to Forum:
Login
Username

Password



Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
Member Poll
Are you going to OpenVMS Boot Camp 2016?

Yes

No

You must login to vote.
Shoutbox
You must login to post a message.

gtackett
October 27 2021
Make that DECdfs _2.1A_ for Vax

gtackett
October 27 2021
I'm looking for DECdfs V2.4A kit for VAX. Asking here just in case anyone is still listening.

MarkRLV
September 17 2021
At one time, didn't this web site have a job board? I would love to use my legacy skills one last time in my career.

malmberg
January 18 2021
New Hobbyist PAKs for VAX/VMS are no longer available according to reports. Only commercial licenses are reported to be for sale from HPE

dfilip
January 16 2021
Can someone please point me to hobbyist license pak? I'm looking for VAX/VMS 7.1, DECnet Phase IV, and UCX/TCPIP ... have the 7.1 media, need the license paks ... thanks!

Bart
October 16 2020
OpenVMS, and this website!

malmberg
September 05 2020
VSI community non-commercial licenses for AXP/IA64 are available now.

malmberg
September 05 2020
See the forum about licensing. Don't know if HPE hobby licenses still being issued. Commercial licenses still being sold.

silfox70
September 01 2020
I need the license for OpenVMS7.3. Where can I find them?

malmberg
August 29 2020
Eisner, which is currently being moved, got an SSH update and the keys were updated to more modern encryption standards.

jiml
July 11 2020
ssh to eisner is now giving (on linux) "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" , Has the server key in fact changed ? Of WHO can we ask that somewhere on the eisner webpage they

wyan
May 06 2020
Turns out I had an account here, it still was set to my location a decade ago, so hey, I'm back after over a decade!

Hein
April 21 2020
Hi all, haven't been here in years. Good to see it is all there still. I'm looking around at the forum to stop/start msipcap - 'could not be stopped' - for now. I'll shutdown FreeA

EstesDave
January 09 2020
does anyone have or know of DRB32 manuals

romaxmaniax
November 04 2019
V6.1

Shoutbox Archive