BOCHS 1.3 VMS Build Procedure ----------------------------- This little kit includes files to help build Bochs 1.3 on VMS, you should have the following files: VMS.TXT this file MAKE_VMS.COM a DCL procedure to build Bochs [.IODEV]CDROM.H amended C++ header for CD support on VMS [.IODEV]CDROM_VMS.CC C++ source for CD support on VMS Requirements ------------ To build you need C++ and C compilers, to run you need DECwindows, these versions work for me: OpenVMS Alpha 7.2-2 Compaq C++ V6.2-016 Compaq C V6.2-00 DECwindows V1.2-6 Building Bochs -------------- Unzip the BOCHS-1_3_VMS.ZIP file in the BOCHS-1_3 directory. Run MAKE_VMS $ @make_vms all If this runs okay you should end up with a BOCHS.EXE in the [.BIN] directory. Before running Bochs you need to install the X11 VGA font: $ copy [.font]vga.pcf sys$common:[sysfont.decw.user_common] $ @sys$update:decw$mkfontdir To use the new font you need to restart your DECwindows session. Before running Bochs you may want to set your process priority to 0. To run Bochs try this: $ mc [.bin]bochs "log: sys$output" Locations of BIOS and disk images are specified in the .BOCHSRC file MAKE_VMS.COM ------------ $ @MAKE_VMS PHASE [OPTIONS] Valid phase are: ALL perform all phases (complete build) CONFIG generate CONFIG.H header file VERSION generate BXVERSION.H header file MAIN generate MAIN objects CPU generate CPU objects FPU generate FPU objects GUI generate GUI objects IODEV generate IODEV objects MEMORY generate MEMORY objects LINK generate BOCHS image Valid options are: DEBUG enable /DEBUG qualifier for compiles and links PICKUP resume a failed build operation from the point of failure Notes: Work files, object libraries and the Bochs image are created in the [.BIN] directory. MAKE_VMS.COM plays fast and loose with the contents of this directory, notably multiple version of the Bochs image will not be retained across builds! To provide the PICKUP funtionality some logical names prefixed with BOCHS_MAKE_VMS_ are defined in the process logical name table. To cope with #include requirements for the FPU module it defines the logicals LINUX and ASM, these should be deassigned if the build is clean. Once the CONFIG.H and BXVERSION.H header files have been created these will not be automatically recreated on subsequent builds. MAKE_VMS.COM reflects fixed Bochs configure options (see DO_CONFIG: "Configure Options"), if you want to change these options you may need to add compile steps as well as edit the CONFIG.H header file. MAKE_VMS.COM reflects some C RTL features that may not be right for earlier C RTL versions (see DO_CONFIG: "Stuff that configure should find out"). Using Bochs ----------- Disk images Note that some interaction between Bochs and the C RTL can cause the disk image container file to grow to the allocated file size. It may be best to make the container files a multiple of the VMS disk cluster size. Raw floppy drive access doesn't work (yet) on VMS, to use a floppy you'll need to copy it to a file, use MOUNT/FOREIGN and COPY. An empty disk image container file of N blocks can be created like this: $ append/new/alloc=N nla0: a.dsk $ set file a.dsk/attr=(rfm:fix,lrl:512,rat:none)/end Limited CD-ROM Support The read_toc (read table of contents) function is not implemented. Linux can complain about this on mount, but can still access the CD. I've tested the CD support with a Linux Mandrake install CD, it works well enough to use as an install source. The CD device is not dismounted on exit, the code is in there but doesn't seem to get called. The 1.3 action=ask functionality doesn't work, it always dies regardless of what you ask it to do. --- Graham Burley, 29-Dec-2001 burley@encompasserve.org