This is just a short message to let you know that I've returned from the OpenVMS bootcamp in Nashua, and that I should be responding to e-mail messages again. I have a bit of a backlog, and I'm away for work a lot the coming weeks, so if you send me an e-mail and don't hear from me for a few days, don't worry.
The Bootcamp was great. The presentation I did on the ES40 Emulator was very well received, and even received the award for the best birds-of-a-feather session. You can read all about it, and see some pictures, in the Bootcamp 2008 Review, which you can reach from http://www.es40.org/Events. I met lots of people who might be able to provide some help with the Emulator development, especially when it comes to debugging stuff.... read more
CVS Snapshot 20080503_1030 has just become available for download. This snapshot was created yesterday, but due to technical difficulties at sourceforge, has only now become available for download. Changes since the last release (0.18) are:
- Floppy controller implementation. (29-apr-2008, Brian Wheeler)
- CDiskController is no longer a CPCIDevice. This alows for non-PCI diskcontrollers (like the
floppy controller. (29-apr-2008, Camiel Vanderhoeven)
- Added memory map dumping and memory range checking. (29-apr-2008, Brian Wheeler)
- Rewrote DMA code to make it ready for floppy support. (18-apr-2008, Brian Wheeler)
- More questions in debug confuration script. (03-apr-2008, Camiel Vanderhoeven)
- Compile on OpenVMS; new OpenVMS build scripts generated from the UNIX build scripts; Include
selected parts of Poco (Poco has dropped support for OpenVMS). (02-apr-2008, Camiel
- Created configuration file utility. (28-mar-2008, Camiel Vanderhoeven)
- Support OpenVMS file paths. (26-mar-2008, Camiel Vanderhoeven)
- Use the config.h data created by the configure script. (26-mar-2008, Camiel Vanderhoeven)
- Improved IDE locking by a) Removing all of the general register locking; b) Busmaster locking
is still in place, but it might not be needed, this locking is pretty fine grained so nothing
should time out waiting for it; c) Creating an alt_status variable which gets updated when the
real status becomes stable (i.e. at the end of the execute() run, after the drq status is
changed, etc), access to this variable is locked; d) Everything else is a free for all.
(20-mar-2008, Brian Wheeler)
- Implement an optional delayed IDE interrupt. The OSes still lose interrupts sometimes.
(20-mar-2008, Brian Wheeler)
- Create configuration files to use GNU's Autotools. (20-mar-2008, Camiel Vanderhoeven)
- Support disk image files >2GB on linux. (19-mar-2008, Camiel Vanderhoeven)
- Fixed some IDE CD-ROM issues that were introduced with the multi-threading patch. (17-mar-2008,
- Restored SDL functionality. (16-mar-2008, Camiel Vanderhoeven)
- Better exception handling, restored Serial port menu functionality (14-mar-2008, Camiel
- Ability to stop and restart threads, restored save/restore state functionality. (13-mar-2008,
- Use separate threads for devices rather than crowding everything into one thread. Use Poco
libraries for platform independent threading. NOTE: This patch breaks some functionality that
we will need to regain in the future. (05-mar-2008, Camiel Vanderhoeven)... read more
On Wednesday, May 21st, from 7:30 PM until 9:00 PM, Camiel will be doing a presentation about the ES40 Emulator at the OpenVMS Advanced Technical Bootcamp in Nashua, NH. More information and registration at http://www.hp.com/go/openvms/bootcamp. This session is not on the Agenda, but is part of the "Birds-of-a-Feather" sessions. You can find it in the session abstracts as session # 211. Note that the agenda is filled to the brim with interesting sessions from top speakers from OpenVMS development and the OpenVMS community.
I've made a new cvs snapshot available on the download page.
20080318_1530 has the following changes from release 0.18:
- Fixed some IDE CD-ROM issues that were introduced with the
multi-threading patch. (17-mar-2008, Brian Wheeler)
- Restored SDL functionality. (16-mar-2008, Camiel
- Better exception handling, restored Serial port menu
functionality (14-mar-2008, Camiel Vanderhoeven)
- Ability to stop and restart threads, restored save/restore
state functionality. (13-mar-2008, Camiel Vanderhoeven)
- Use separate threads for devices rather than crowding
everything into one thread. Use Poco libraries for platform
independent threading. NOTE: This patch breaks some
functionality that we will need to regain in the future.
(05-mar-2008, Camiel Vanderhoeven)... read more
I listed the ES40 Emulator on the Ohloh website; they keep track of CVS changes to Open Source code, and give an indication of what it would cost to develop software commercially.
According to their analysis, developing the ES40 Emulator would have cost $ 487,616. I think this is a bit too much, but it's an interesting figure. Taken together all the Open Source software I'm running on various computers adds up to over 800 million dollars. ... read more
This is to inform you that I have just applied a very large patch to CVS that affects the entire emulator. Over the past few weeks,. we've run into the limitations of running everything in a single clock-loop, calling devices' DoClock() functions. This leads to wildly varying CPU speed, and does not efficiently the processing power of modern multi-core/multi-processor CPU's.
The patch that has just been committed gets rid of the DoClock() functions, and instead lets each device run its own threads as needed. If you have a dual-core system, the emulated CPU could run on one core, with the other core taking care of all other devices.... read more
I am very pleased to announce that version 0.18 of the ES40 Emulator
has been released. We've done our best to improve compatibility of the
emulator with various host and guest operating-systems, we have
working SCSI-support for OpenVMS, improved IDE and Network
implementations, and we have improved performance.
If you're interested in the ES40 emulator, or if you're an active contributor, please consider joining one of the mailing lists.
A low-volume mailing list; used to send announcements of new versions of the emulator.
To join, send an e-mail message with the text "subscribe" to firstname.lastname@example.org
Hopefully,a higher-volume mailing list; used for development discussions, announcements of new CVS snapshots, or anything else related to the development of the emulator.
To join, send an e-mail message with the text "subscribe" to email@example.com
The latest snapshot adds:
* Integer and floating point traps.
* support for graphics without using SDL on both Windows and X-Windows.
I've just added a new package to the download section, containing builds for Windows using the latest CVS versions, and the latest sources from CVS as of 2008/01/08 17:55 GMT+1. Compiled with HAVE_NEW_IDE defined to use the new IDE controller implementation currently being developed.
Version 0.17 has been released, which adds VGA and SCSI support.
The configuration file format has changed.
Network support requires libpcap (Linux) or winpcap (Windows).
VGA support requires SDL.
If these are not available, compile without -DHAVE_SDL and/or -DHAVE_PCAP. You can also download the no_gfx or no_net versions of the Windows 32-bit executable packages.
Version 0.16 of the Alphaserver ES40 emulator has been released. Besides a few performance improvements, the biggest new feature is network support. An emulated DE500BA NIC has been added.
Things that work:
* Booting (both conversational and non-conversational)
* Telnetting into the emulator
* SET HOST into the emulator
Things that don't work:
* OpenVMS installation procedure
Yesterday, the emulator was downloaded for the 1,000th time after the project moved to Sourceforge.
Shortly after releasing version 0.14, the "first boot" version, here is version 0.15; version 0.14 was one I wanted to get out to you as soon as possible, but which had some small shortcomings.
Version 0.15 corrects a few small bugs, adds instruction set completeness, true 32-bit floating point support, and increased speed (OpenVMS boots about 4 times faster on my humble system, boot time went down from 42 minutes to 12).... read more
Finally, here's the happy news message we've all been waiting for for so long:
I can now confirm the first boot of OpenVMS on the ES40 emulator. In honour of good OpenVMS engineering practice, I've defined "first boot" as the first succesful directory listing.
This feat was accomplished by Eduardo Marcelo Serrat, who sent me a couple of patches that made this possible.
I'm currently integrating his changes into the repository, so you can expect the availability of a new version release soon.... read more
* More binary releases
* Fixed problems related to IDE disk emulation
* SRM-code replacements now use a faster mechanism
* Decompressed ROM code will be saved to disk the first time the emulator is run, to speed up loading the next time the emulator is run.
We got reports from some people that version 0.12 did not work as expected. This is due to a bug in the translation buffer code. Please compile with "NO_INTELLIGENT_TB" defined (-DNO_INTELLIGENT_TB, or put #define NO_INTELLIGENT_TB at the top of TranslationBuffer.cpp).
OpenVMS 7.3-1 gets further again in its boot process. Major fixes in the following areas:
* software interrupts
* IDE controller
* programmable interrupt controller
Version 0.11 takes booting OpenVMS a little bit further yet! Thanks to Jur van der Burg, who found the cause of the INCON_SCHED bugcheck, we were able to fix this. Version 0.11 also adds basic floating point support, as OpenVMS needs it at this point.
I managed to get OpenVMS 7.3-1 to create a sysdump while booting. On the downloads page, I've made a file "sysdump.zip" available. If you have OpenVMS 7.3-1, and have access to the OpenVMS source listings, I'd really appreciate it if you'd take a look at the crashdump with ANALYZE.
Version 0.9 introduced a couple of bugs, while some older, existing bugs were manifested as the emulator fot further into the boot process. Version 0.10 is an attempt to fix those.
(boot dqa0.0.0.15.0 -flags 0,30000)
block 0 of dqa0.0.0.15.0 is a valid boot block
reading 1226 blocks from dqa0.0.0.15.0
bootstrap code read in
base = 200000, image_start = 0, image_bytes = 99400(627712)
initializing HWRPB at 2000
initializing page table at 3f56000
initializing machine state
setting affinity to the primary CPU
jumping to bootstrap code
%APB-I-APBVER, Alpha Primary Bootstrap, Version XBC4... read more
Version 0.09 has been released. Changes are:
* major bugs fixed in the CPU emulation, allows OpenVMS to boot a bit further yet (crash now occurs far into SYSBOOT.EXE)
* support for big-endian host architectures
* small improvements in the debugger
Although this version has only one new feature, I found it important enough to increase the version number.
Release 0.08 adds a lockstep-mode for the interactive debugger.
Run the emulator on two different systems, and compare results in real-time (useful for troubleshooting porting issues). It makes realtime slower, though...
Here's how to set things up:
1. start es40_lss (slave executable) on machine A
2. start es40_lsm (master executable) on machine B
3. enter machine A's IP address when prompted for by machine B
4. connect your serial port telnet sessions to machine B only!!!
5. enter IDB commands at machine B's prompt.... read more