DIMAL CREATES A CARTRIDGE WITH DIAGNOSTICS THAT CAN BE RUN
The big advantage of this is that there does not have to be a functional card reader (or paper tape reader) to load a diagnostic into memory and execute it. The diagnostics are put on a disk cartridge at certain cylinders, which are selected to load the diagnostic. While one could select these via a control card in the card reader, there is a manual procedure involving toggling in some words to memory that starts DIMAL directly from disk.
This would be very handy during the times when I am restoring the various peripherals for the VCF 1130 system. The alternative I have been using is to load the diagnostics into an IBM simulator, save the memory image and use my memory loader function on the actual 1130 to put that into core. It seemed handy to have all the tests on a disk pack, now that I am close to having emulated disks running.
PROBLEM ONE - CORRUPTED DIMAL DECKS ARE ALL I HAVE
The only decks I have captured for DIMAL are corrupted. When they are loaded into the simulator, as DIMAL executes it begins to do bizarre things, such as have an x0003 executed which is not a valid instruction. The result is that the program tosses out a stream of false errors - Disk Not Ready, Disk Seek Error - then reports that the CE word was not on cylinder xC7 (199, first of the four spare cylinders on a cartridge).
DIMAL MUST BE PUT ON A SPECIAL CE PACK, USED TO ALIGN DISK DRIVES
The CE pack has a couple of special cylinders recorded using an eccentric mount, so that the signal on that cylinder wanders sinusoidally around the centerline where the cylinder is defined. Thus some of the signal is before the start of the cylinder and some is after.
Using an oscilloscope and observing the signals picked up by the head, one moves the disk arm incrementally toward the special cylinder, until the pattern observed is even which means the head is now centered on the proper location for that cylinder.
The remainder of the cartridge is used for testing reads or writes, on cylinders considered scratch or available for such use. However, there is also room assigned for DIMAL and some uploaded diagnostics. The DIMAL area doesn't depend on the special cylinder signal at all, so it could be placed on any disk cartridge and used, except that the program blocks that.
TRYING TO MARK MY DISK IMAGE AS A CE PACK
IBM provides assembler listings of almost all the diagnostic decks, but not for DIMAL. I just have instructions and documentation. In one place, it suggests that the program is looking for a code xCEDC to be on that cylinder in the "CE history table". I tried zapping my disk image to put that in the start of the sector, but due to the corruption of the program decks I have, I can't determine if the errors are due to corruption or due to some pattern I still need to write on the pack.
Single stepping through the corrupted program on the simulator, I see that it reads in only one word from cylinder xC7 (199) which should be the 0xECDC if that is the value. I have my disk set with that value, but I can't get the program to work well enough to go on.
As I single step through the code operation trying to read and check the CE word, I see it updating the interrupt level handler address in a loop, incrementing the start location by 1 each time. That can't be correct or good, more evidence that the code is fatally corrupted.
No comments:
Post a Comment