Closed iblowmymind closed 3 years ago
Hello blw,
the root cause is fixed, colon-characters in file items are now mapped to underlines when exporting items with FsUtil
; the apparent error (leading to the stacktrace) was a missing/incomplete printf format specification when logging the failure to create the directory (due to the colon in the directory name).
Exporting the "Index generator" now gives:
Volume 'fs1' opened
export items from: public!1/VP-LongDocs!1
exporting directory: VP-LongDocs
exporting directory: Footnotes
exporting file: FootnoteFolder.adf
exporting file: FootnoteFolderConfig.bcd
exporting directory: Index Generator
exporting directory: INDEX: Exclude These Terms
exporting file: Common Proper Nouns.USEnglish
exporting file: Most-Common Words.USEnglish
exporting file: Other Common Words.USEnglish
exporting directory: INDEX: Include These Terms
exporting file: IndexConfig.bcd
exporting file: IndexGenerator.adf
exporting directory: Shared Books
exporting file: SharedBooks.2.0e.US.messages
exporting file: SharedBooks.adf
exporting file: SharedBooksConfig.bcd
exporting directory: Table of Contents Generator
exporting file: TOCConfig.bcd
exporting file: TOCGenerator.adf
volume closed
Greetings Hans
Thanks! I'll test exporting the entire VP Applications now, and tell if I notice any issues.
(...)
exporting directory: VP IFM - Financial Solution
exporting file: ** How to Use VP Integrated Financial Management 2.0**
Exception in thread "main" java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.base/java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.base/java.io.File.createNewFile(File.java:1026)
at dev.hawala.xns.FsUtil.exportItem(FsUtil.java:234)
at dev.hawala.xns.FsUtil.exportItem(FsUtil.java:222)
at dev.hawala.xns.FsUtil.exportItem(FsUtil.java:222)
at dev.hawala.xns.FsUtil.main(FsUtil.java:403)
a similar issue occurs on asterisk signs as well, but this time because of Windows / NTFS limitations. For future guarantee, I think \ / : * ? " < > | characters (the list of characters that aren't allowed in NTFS) and NULL bytes should be replaced with underscores.
Also, a question I had, would it be possible to convert StarFont / NovaFont / NovaWidth / fbBlivetOrigins / fbCoords files to TTF / OTF / X bitmap fonts / whatever else font format there is to inspect/use it (without using XDE Typefounder since that's not archived yet), inspect Icons / Bits files or maybe even disassembling BCD and/or BOOT files? (Since the contents of a BCD contain the source code filenames, which gave me the idea)
When it comes to other various files that can be found; reading .Messages files should be easy enough since the message contents themselves are stored in plaintext, however, there are lots of characters in between the messages which make it hard to read.
And one final question, (I know these are a lot of questions, I'm just curious about how the software works, I apologise for that!) I know Mesa.db is Pilot, MoonBoot.db is Diagnostics, SAx000Initial.db is a rigid initial boot file, .boot files are like initial core programs, but what is the function of a .germ file exactly?
Thanks! -blw
Hello,
i added more character mappings, so NTFS should be also supported by FsUtil...
For your questions:
one of the 8010 floppy sets at bitsavers (XDE 4.0 i believe) has floppies labeled "Typefounder" or so; i don't know if this tool can be used to convert Xerox fonts to something else...
.message files are in fact binary files, mapping String-IDs for labels etc. to human language texts for internationalization; the program .bcd-files load the texts to display from these files. There is a special program (on the VP2.0 development disk set?) that allows to create translated (country specific) message files from a "master" file, which usually is part of the source files of an VP application
a .germ is a kind of initial program image executed by the mesa processor: like all CPUs, the mesa processor needs an instruction sequence and accompanying memory state when started. Microprocessors like 6502 or Z80 started executing instructions at memory location 0, where a ROM or a pre-loaded RAM was mapped, containing the initialization and boot code.
The Mesa PrincOps states that execution begins with an XFER to the boot location, in fact a simple jump to a started procedure, already having a stack frame, a global frame etc. Unlike a z80 or 6502, the initial state for a mesa processor is more complex: a set of global frames, pre-loaded code segments etc. A .germ is "simply" a memory dump of this initial program and memory state with several functions, the most basic being to initialize the state (e.g. the VM-map), to load and start bootfiles from various locations (floppy, disk, network); more non-basic is the world-swap feature required for the old debugger and optional since the Sword (same-world) debugger became available since XDE 5.0 (world-sap means that the current RAM content is copied to disk and the previous content is loaded back from disk, so the previous system - debugger or debuggee - is restored and continues execution; this world-swap could take up to one minute on an 6085 with 3.7 MByte RAM :-( ).
OK, have fun experimenting with the new Dodo version. Greetings, Hans
Hello,
Thank you for your latest commit! The extraction happens flawlessly now.
Icon inspection can be done with an Icon Viewer tool in the VP Devtools floppy, I will look more into that. I can (sort of) understand Mesa code now after all of this, (without the official courses I'll probably not be able to understand / write code any further), however I don't understand how the bcd / bootfiles are arranged yet. If I do, there's a really small chance that I can figure out how to disassemble Mesa code, I'll probably fail, but hey, worth a try. So if you know about the structure of compiled Mesa code, please let me know!
Wow, I must've skipped over that Typefounder floppy. I'll try running it now and see if it functions. Also, it seems like this version of Typefounder is actually for XDE 5, since the floppy label says it is. And the header might be corrupted since copying it over from Draco's XDE+Hacks disk gave a Debug.Log and froze the system. Managed to use Duchess to copy the files over to a filing server, and use the File Tool to retrieve them. But, it works great! You can inspect individual characters in many different formats (including Strike, NovaFont and StarFont), make your own fonts etc. There might be a way to export each character into bitmap files, and somehow merge them together on a more modern platform to "port" the font over? I don't know, might look into it later.
For the second point, hm, I do remember seeing a Master file utility BCD file on the VP DevTools floppy.
And for the third point, yeah, I guessed that was the case too.
-blw
I found a Mesa compiler.
Well, technically. It's for the BWS. And only VP 1.0 - 1.1. But, nevertheless, it's still a Mesa compiler. It can compile Mesa code in both simple and VP document formats. Unsure if it can Bind.
It's available in xde5.0utilsProt#11.dmk located in xde_5.0.zip
Will continue to look for more files. -blw
That's sad. It only works with VP1. There were VP1 floppies in Bitsavers, so we could use the same method you used to install VP2 over the provided emulator images to make the Draco pre-built image. Can you tell me how you did it?
-blw
Also found Pacman and Mahjong though. Also XDE File Access. And quite a few BWS Hacks.
Hello,
i already tried to create a VP 1.1 disk for Draco, but it failed: some important floppy is missing (i don't remember which), leaving the fresh but partially installed disk unbootable (crashed in the boot process, i don't remember at which point).
As Draco does not support floppy boot, the procedure was roughly as follows:
I remember that the document editor is missing in the VP 1.1 floppy set at Bitsavers, as said at least one more important disk is missing. But may be you have more luck installing VP 1.1
Hope that helps Hans
regarding mesa courses: there is a lot documentation about mesa programming at bitsavers, among that PDF files with the mesa courses, language manuals, ...
For example see:
Document Editor is missing, I noticed that too, however, I don't think that would be necessary as the only purpose of this machine is going to be to run the BWS Mesa Compiler. You can use the Simple Editor to write code that compiles as well.
Other than that, though, all of the floppies required for a core BWS install seems to be intact, other than the Document Editor.
Oh, and also, you don't need to manually search for the floppies. There is a text file containing labels on the same directory, it is as follows:
130k01861 6085 Xerox ViewPoint 1.0.2 (Installer #1) #1 of 12 1Q86
130k01871 6085 Xerox ViewPoint 1.0.2 (BasicWorkstation #1) #3 of 12 1Q86
130k01881 6085 Xerox ViewPoint 1.0.2 (BasicWorkstation #2) #4 of 12 1Q86
130k01891 6085 Xerox ViewPoint 1.0.2 (BasicWorkstation #3) #5 of 12 1Q86
130k01901 6085 Xerox ViewPoint 1.0.2 (BasicWorkstation #4) #6 of 12 1Q86
130k01910 6085 Xerox ViewPoint 1.0.2 (Common Software #1) #9 of 12 1Q86
130k01921 6085 Xerox ViewPoint 1.0.2 (Common Software #2) #10 of 12 1Q86
130k01931 6085 Xerox ViewPoint 1.0.2 (Essential Applications) #12 of 12 1Q86
130k01941 6085 Xerox ViewPoint 1.0.2 VP Object Conversion Utility 1Q86
130k01960 6085 Keyboard, Display and Mouse Diagnostics 1.0 4Q85
130k01981 6085 Xerox Viewpoint 1.0.2 VP Training Exercises #1 1Q86
130k01991 6085 Xerox Viewpoint 1.0.2 VP Training Exercises #2 1Q86
130k02000 6085 Xerox Viewpoint 1.0 File Check #1 4Q85
130k02010 6085 Xerox Viewpoint 1.0 File Check #2 4Q85
130k02020 6085 Xerox Viewpoint 1.0 File Check #3 4Q85
130k12221 6085 Xerox ViewPoint 1.0.2 (Installer #2) #2 of 12 1Q86
130k12231 6085 Xerox ViewPoint 1.0.2 (BasicWorkstation #5) #7 of 12 1Q86
130k12241 6085 Xerox ViewPoint 1.0.2 (BasicWorkstation #6) #8 of 12 1Q86
130k12250 6085 Extended Boot Diagnostics 1.0 4Q85
130k12261 6085 Xerox ViewPoint 1.0.2 VP Training Exercises #3 1Q86
130k12270 6085 Rigid Disk Diagnostics 1.0 4Q85
130k12281 6085 Xerox ViewPoint 1.0.2 (Common Software #3) #11 of 12 1Q86
130k12291 6085 Xerox ViewPoint 1.0.2 Remote System Administration 1Q86
130k16610 6085 Rigid Disk Utilities 1.1 1Q86
130k16620 6085 System Configuration Utility 1.0 1Q86
130k16670 6085 Xerox ViewPoint 1.0.2 VP Training Exercises #4 1Q86
Yep, you were right, the common software for NetCom / RemoteCom / Standalone are missing. Without them the BWS refuses to start.
(MP code 0712)
Hello!
My experimentations with throwing whatever was made by Xerox that's remotely related to Star/VP/GV into anything that can run it continues, with this time, running GlobalView for X 1.05!
This version needs to patch and tweak kernel sources and recompile it, so it only supports a very specific architecture and operating system: SunOS 4.1.4 running on SPARC (either sun4u or sun4c, from what I understand.) Luckily, QEMU can emulate the SPARCstation 5 (although a bit broken, I will come to that later), which is a sun4u machine, and it can run SunOS 4.1.4! So I decided to give it a go. Since my experience in UNIX is much better than Windows, I thought it would be easier than installing GVWIN. Note: It wasn't.
The first step was to actually install SunOS onto a virtual hard disk. As I said, the emulation, especially with the CD-ROM access on SunOS, is broken, and the system cannot read CD-ROMs when running this exact configuration. However, there is a workaround: Introducing the CD-ROM image as a secondary hard disk image, which surprisingly works! (However, it doesn't work while mounting regular ISO-9660 drives, more on that) So, that way, by following this guide, which luckily details the whole process, I installed it with a cgthree graphics card to get 1152x900 resolution (which required OFW ROMs and an original cg3 ROM, with OpenBIOS / QEMU's stock ROM it wouldn't work) and 64 MBs of RAM (mainly because the largest disk size that's "pre-defined" by the format program, SUN2.1G (2.1 GBs), only gives 100 MB's of swap space, and I didn't want to screw over partitioning since it works in a sector-size basis (and I didn't want to miscalculate), and the system requires the swap space to be at least as big as the RAM size. (256 MBs, the maximum, would crash the emulator anyway, bug?)
After installing, I tried to mount the GVX 1.05 ISO (which I downloaded from here) using the secondary-hard-disk method, however, failed. It just didn't want to work! Then I noticed: if I set up a TUN/TAP device, connect the network to it, I could (potentially) transfer files to the guest using RCP! So I reinstalled SunOS, this time with networking enabled, created a TAP device and connected to it, assigned all the values, etc. (The networking procedure is also detailed in the wiki page I followed, so that was useful) and bam! I could ping the host! Then, I tried extracting the files from the CD-ROM (using 7-Zip) and repacking it as a tar archive so that I could send it via RCP and extract it on the guest, and everything would theoretically work!
But, of course, it didn't.
Apparently, the ISO contains many files with colons in their filenames, files that have the same names with different capitalizations, etc. Since NTFS (yes, my machine is Windows, and all the time I've been using Windows to run QEMU, the TAP device, etc.) doesn't like colons in filenames, and it's not case-sensitive, so some files got overwritten and the colons got replaced to underscores, which is not what I want, since the way that GVX works is drastically different than how GVWIN works. Apparently, all the files (including all the software, BWS, etc.) are exposed on the root instead of being contained in a disk image, which is the way GVWIN does it. And, instead of running as one fullscreen app, somehow the graphics calls are translated to OPEN LOOK calls, so everything can display on different windows running on the main system desktop! So, critical components, such as GV Write, GV Calc, etc. all had colons in their filenames, and if the installer can't find those and can't install them, what's the point of even installing it in the first place? I had to create a Linux VM, mount the ISO as a virtual CD (which worked!), put everything from there in a tar archive, and transfer it to the host. And thus, now I had a tar file on my hands! And since networking worked, I used rcp to send the files to SunOS... And now I had the tar file on SunOS! And, on top of all that, it successfully extracted!
At first, I couldn't figure out the layout of the disk, but apparently what you need to run is XIST (which is the XSoft Installation Tool). I extracted the archive to directory "XSOFT" under /home (which was the biggest mount, so I chose that), you have to have OPEN LOOK / OpenWindows running (which worked flawlessly under the cg3 adapter on QEMU, and now I had an 1152x900 desktop! Running it natively on built-in VGA is not documented on the wiki though, since it's a bit old, so the only thing you have to add is "-vga cg3 -display sdl -g 1152x900" onto QEMU parameters and it would work. I could, technically, run it on VcXSrv on my host, but that crashes GVX, more on that later) since XIST is a GUI app, and you need to run it from the XIST directory. So, I changed the working dir to /home/XSOFT/XIST, run xist (since . is on PATH by default), and I was good to go! You have to choose "Install / Upgrade" from the left, and "UNIX Directory" on the right, enter the path to the directory "installdir" on the directory, in my case, it was /home/XSOFT/installdir, and then after you click the Install button, a selection comes up with all the software. It even includes Document & File Services and an XNS server, which is very interesting! For now, though I chose GlobalView for X. Choosing it will freeze for a bit, and come up with a list of parameters for installation. I just left everything on default paths (and default kernel parameters), other than disabling network (since I haven't found any way to run Dodo on this, would be interesting if you provided some guidance on how to set it up.) and clicked Next. Now it will come up with a software group selection. I just selected everything (except Document Services Access, since I didn't need it, and Extended Language Options / Keyboard Layouts, etc.), including all the screen fonts and applications, and hit install, and it actually installed. It needs a reboot for the new kernel to load in, and after it booted (while it boots it will load an XNS module, GVX emulation modules and it will wait for an XNS Time Server, even if you disable XNS Networking on configuration, which will (obviously) fail due to the lack of a time server but the system will continue booting) and after logging back in, starting OpenWindows again and launching GVX (using /usr/bin/xerox/gvx) should work! And of course, something had to go wrong. Appearantly, for whatever reason, by default, the hostname you pick isn't added to the xhost access list. So after manually adding it by running "/usr/openwin/bin/xhost +(the hostname you picked)", and starting it again, it worked! Finally, I was at the login options sheet! And it was its whole separate window, with the OPEN LOOK toolkit look & feel since all calls were somehow emulated on Mesa and translated into OPEN LOOK, I still can't figure out how they did that! But, you can't create a user. Unless you start the emulator with "/usr/bin/xerox/gvx V", which will add V to the boot flags, which brings up the Workspace Administration Sheet. And from there you can create the user, and restart without the flag, and log in, and it all worked! I was in the workspace!
So, the Type 4/5 keyboards have these "Sun Keys" which are very much like the Move, Copy, Prop's, Open, Delete, etc. keys on a Xerox workstation. In fact, they have the same purposes, so GVX just uses them for the actions. But, since a proper keyboard emulation isn't done in QEMU, and you can't send raw scancodes, so those keys are rendered unusable (for now), thus, much of the functionality of this amazing system is yet to be fully discovered. And since there's so little documentation that has surfaced (other than the "Online Help and Documentation" package), I don't know what to do! Many of the apps have autorun disabled by default, and right-clicking does in fact come with a menu that has props, move, copy, etc. it's only for icons, and icons in some specific places (such as the Workspace) and not text fields, the loader, etc. So, as I said, much of the functionality limited.
Besides, I couldn't get the Document Services to work, which asks for an "organization password" which you have to obtain from Xerox Customer Services in order to create the first Clearinghouse. Bummer! And, I couldn't figure out how to connect the NetHubGateway to the emulated machine. Would just selecting the same TAP connection which QEMU's connected to work?
And, I still don't know how exactly it works, but from what I saw and said while searching through old mailing list / Google Groups archives for Xerox, it translates BWS calls into OPEN LOOK calls, the files and filesystem is exposed to UNIX, so no volumes, virtual disks, etc. However, the NS Filing volume / Desktops has an interesting structure, (kinda similar to Dodo's filesystem structure) If you want to install an app, you drop it into /bws/newAppls, then the system will move that file into the NSFiling volume. And there isn't much other than that. The documentation included is very limited.
An interesting thing though: The CD-ROM contains a copy of Lotus 1-2-3 v1.2 for SunOS, it also has Interpress Printer Fonts (all of them, not just Classic & Modern) and a 30-day evaluation key file, however, the system runs just fine without it, so I don't know what the point of that is.
I will continue my experiments and report if I find anything interesting. -blw
Here are some screenshots:
The NSFiling volume I was talking about, Desktops has a similar structure.
The Common BWS files, except for the boot file, germ file and microcode. couldn't find those. Maybe they're embedded into the binaries?
And a note, apparently a GVX system with a built-in clearinghouse running is called a "Genesis" system. And also, apparently, VP 3.x existed! I mean, there are downgraders for it!
There's a courier server, too!
xnsstart doesn't work. Still couldn't figure it out!
And here it is, running.
Suspending seems to be not implemented.
The only buttons that seem to be working are the Win key (Keyboard), Num Lock (Cursor Keys), and Delete (you guessed it, Delete) right now.
A question: Would it be possible to dissect the binaries, somehow find the germfile, microcode, etc. from them, translate the calls into Swing GUI elements and add GV 1.x as a new target for Dwarf?
Note: there's a utility called xwsft that gets installed that can take a peek at the Desktop volumes, however it's not very usable right now since it wants a clearinghouse on the network to verify the user password. If I can get Dodo to work with this, it could technically work!
I'll move this to its own issue real quick.
Hey, Just wanted to quickly report a bug I found while exporting my VP Applications drawer to inspect it:
The bug happens when you try to export the VP application named "Index Generator" (on the Long Document Options floppy for 8010 VP2.0.6, I believe).
-blw