description
ExtraIago is the start of a set of routines for dealing with the disk errors that mainly occur on the AMS-315 disks. It includes routines for reading through the system files (checkpoint, vm, etc), deleting system files, interrogating the bad page table, adding pages to the bad page table, making sure the bad pages are marked as allocated, reading disk pages and printing out their contents, and more.
ExtraIago is invoked by the Run command in Iago, which asks for a file name; you type /Indigo/Cedar5.3/Iago/ExtraIago.bcd. ExtraIago adds commands to the set offered by Iago. Type ? to see the full list of available commands.
Note that ExtraIago can only be run on a machine that has a working Cedar file system. It will run in the Cedar5.2 world as well.
Like Iago, it is only necessary to type a unique prefix of any command.
commands
AddPageToBadPageTable
takes a physical page number and adds it to the Bad Page Table
EnsureBadPagesInVAM
reads the Bad Page Table and makes sure that all the pages are marked as allocated
ListBadPages
describes the bad pages for the various logical volumes, and gives both the physical and logical page numbers, in decimal and octal
MarkPageAllocated
takes a logical volume and page number and marks the page as allocated
DescribeAllocated
extension of Iago's Describe Logical; it tries to make guesses about possible Alto partition allocations.
ReadBootFile, ReadCkptFile, ReadUCodeFile, ReadGermFile, ReadDebuggerFile, ReadDebuggeeFile, ReadVMFile
reads the appropriate system file (some of which do not have FS names); stops when an error is encounted, and reports the physcial page number. Note that this routine is SLOW for big files, like the VM file. It does tell you how many pages are in the file. There is no way to stop this routine once it starts reading.
DeleteBootFile, DeleteCkptFile, DeleteUCodeFile, DeleteGermFile, DeleteDebuggerFile, DeleteDebuggeeFile, DeleteVMFile
deletes the appropriate system file.
ReadDiskPages
takes a physcial page number, number of pages (less than 8), and a way to show the data (none, all, text, or stop to abort this command). Checks the header, reads and reports on the label and reads the data, showing it as text or both in octal and as text. For purposes of printing as text, NUL prints as space, the control charcters as *, and the characters 200B through 377B as !. If there is an error reading a page, the error is reported.
ReadFilePages
takes a fileName, number of pages (less than 8), and a way to show the data.
ReadLogicalPages
takes a logical volume, a logical page, , number of pages (less than 8), and a way to show the data.
ShowDiskAddress
takes a physcial page number and prints out the disk address in various ways.
other
The df file also contains Iago2.bcd, which can be run in your Cedar world; it opens a typescript viewer for interactions. Note that it still uses Iago for interacting with the user, and that Iago thinks it is talking to the SimpleTerminal, which handles EraseChar much differently. Iago2 gives the user access to some other Iago commands; type ?(CR) to find out what they are.