1.2. File Handler

Version II.0, February 1979

1.2.1 Files

page007 A file is a collection of information which is stored on the disk and referenced by a filename. Each disk has a directory which contains the filenames and locations of each file on the disk. The File handler, or Filer, uses the information contained in the disk directory to manipulate files.

One of the attributes of a file is its type. The type of the file determines the way in which it can be used. File types are assigned based on part of the file name.

Reserved type suffixes for filenames are:

.TEXT
.BACK
Human readable text.
.CODE Machine executable code.
.DATA Data.
.FOTO A file containing one graphic screen-image.
.GRAF Intended to be a file containing a compressed graphic image. Currently unused.
.BAD An unmovable file covering a physically damaged area of a disk.
.INFO Debugger information.

1.2.2 Volumes

A volume is any I/O device, such as the printer, the keyboard, or a disk. A “block-structured” device is one that can have a directory and files, usually a disk of some sort. A non-block-structured device does not have internal structure; it simply produces or consumes a stream of data. The printer and the keyboard, for example, are non-block-structured. The table below illustrates the reserved volume names used to refer to non-block-structured devices, the ‘unit number’ associated with each device, and the unit numbers associated with the system (booted) disk and any alternate disks.

page008

Unit Number Volume ID Description
1 CONSOLE: screen and keyboard with echo
2 SYSTERM: screen and keyboard without echo
3 GRAPHIC: the graphic ‘side’ of the screen
4 <volume name>: the system disk
5 <volume name>: the alternate disk
6 PRINTER: the line printer
7 REMIN: serial line input
8 REMOUT: serial line output
9 — 12 <volume name>: additional disk drives
Figure 1

1.2.3. The ‘Workfile’

The workfile is a scratch-pad copy of the file being worked with. It is used by the Filer, in the Editor, and by the Compiler. When the text part of a workfile is charged, the system stores it on disk under the name ‘*SYSTEM.WRK.TEXT’, and when a code version is first created, it is named ‘*SYSTEM.WRK.CODE’. There may at times exist other portions of the workfile, with appropriate names.

1.2.4. File Specification

Many Filer commands require the user to respond with at least one file specification. The diagram below illustrates the syntax of file specification.

Figure 1
Figure 2

page009 Volume i.d. syntax can be expanded thusly:

Figure 1
Figure 3

Volume names for block-structured volumes can be assigned by the user. A volume name must be 7 or less characters long and may not contain ‘~’, ‘$’, ‘?’ or ‘,’. Reserved volume names for non-block-structured devices are given in Figure 1. The character ‘~’ is the volume ID of the ‘system disk’, the disk upon which the system was booted. The character ‘:’, when used alone, is the volume ID of the ‘default disk’. The system disk and default disk are equivalent unless the default prefix (see material on P(refix) has been changed. ‘#<unit number>’ is equivalent to the name of the volume in the drive at that time.

A legal filename can consist of up to 15 characters. In order for the file to be run the last 5 characters must be .TEXT, or .CODE. Without these suffixes the file may be executed but not put in the workfile. Lower-case letters are translated to upper-case, and blanks and non-printing characters are removed from the filename. Legal characters for filenames are the alphanumerics and the special characters ‘-’, ‘/’, ‘\’, ‘_’, and ‘.’. These special characters may be used to indicate hierarchic relationships among files and/or to distinguish several related files of different types. Currently the system does not support hierarchical directories.

page010 Warning:

The II.0 Filer will not be able to access filenames containing the characters ‘$’, ‘:’, ‘=’, ‘?’, and ‘,’. If filenames contain these characters, then they should be changed before attempting to use those files with the II.0 System.

The wildcard characters, ‘=’ and ‘?’, are used to specify subsets of the directory. The Filer performs the requested action on all files meeting the specifications. A file specification containing the subset-specifying string ‘DOC=TEXT’ notifies the Filer to perform the requested action on all files whose names begin with the string ‘DOC’ and end with the string ‘TEXT’. If a ‘?’ is used in place of an ‘=’, the Filer requests verification before affecting each file meeting the specified criteria. Either or both strings may be empty. For example, a subset specification of the form ‘:<string>’ or ‘<string>=’ or even ‘=’ is valid. This last case, where both subset- specifying strings are empty, is interpreted by the Filer to specify every file on the volume, so typing ‘=’ or ‘?’ alone causes the Filer to perform the appropriate action on every file in the directory.

Given an example directory for volume MYDISK:

NAUGHTYBITS      6  23-Jun-54
MOLD.TEXT        4  29-Jun-54
USELESS.CODE    10  19-May-54
MOLD.CODE        4  29-Jun-54
NEVERMORE.TEXT  12   5-Apr-54
GOONS            5  10-Sep-52

Example:

Prompt: Remove what file?
Response: TypingN=generates the message:
MYDISK:NAUGHTYBITS    removed
MYDISK:NEVERMORE.TEXT removed
Update directory?

(At this point the user can type ‘Y’ to remove or type ‘N’, in which case the files will not be removed. The Filer always requests verification on any wildcard removes.) page011

TypingN?generates the message:
Remove NAUGHTYBITS: ?
After the user types a response, the Filer asks:
Remove NEVERMORE.TEXT: ?

Example:

Prompt: Dir listing of what vol ?
Response: Typing=TEXTcauses the Filer to list
MOLD.TEXT        4  29-Jun-54
NEVERMORE.TEXT  12   5-Apr-54

The subset-specifying strings may not ‘overlap’. For example, GOON=NS would not specify the file GOONS, whereas GOON=S would be a valid (although pointless) specification.

The size specification information is predominantly useful in the commands T(ransfer section 1.2.5.11 and M(ake section 1.2.5.17.

1.2.5. Commands and Use

Type ‘F’ at the Command level to enter the Filer and the following prompt is displayed:
Filer: G(et, S(ave, W(hat, N(ew, L(dir, R(em, C(hng, T(rans, D(ate, Q(uit [A]

Typing ‘?’ in response to this prompt displays more Filer commands:

Filer: B(ad-blks, E(xt-dir, K(rnch, M(ake, P(refix, V(ols, X(amine, Z(ero

The individual Filer commands are invoked by typing the letter found to the left of the parenthesis. For example, ‘S’ would invoke the Save command.

page012 In the Filer, answering a Yes/No question with any character other than ‘Y’ constitutes a ‘No’ answer. Typing an <esc> will return the user to the outer level of the Filer.

For each command requiring a file specification, refer to the file specification diagram (Figure 2). In many cases, the entire file specification is not necessary, and in some cases, certain parts of the file specification are not valid. Follow the specification with <carriage return>. See the required command in the following section.

Whenever a Filer command requests a file specification, the user may specify as many files as desired, by separating the file specifications with commas, and terminating this ‘file list’ with a carriage return. Commands operating on single filenames will keep reading filenames from the file list and operating on them until there are none left. Commands operating on two filenames (such as C(hange and T(rans) will take file specifications in pairs and operate on each pair until only one or none remains. If one filename remains, the Filer will prompt for the second member of the pair. If an error is detected in the list, the remainder of the list will be flushed.

1.2.5.1. G(et

Loads the designated file into the workfile.

The entire file specification is not necessary. If the volume ID is not given, the default disk is assumed. Wildcards are not allowed, and the size specification option is ignored.

Given the example directory:

FILERDOC2.TEXT
ABSURD.CODE
HYTYPER.CODE
STASIS.TEXT
LETTER1.TEXT
FILER.DOC.TEXT
STASIS.CODE

Example:

Prompt: Get what file?
Response: STASIS
The Filer responds with the message
'Text & Code file loaded'

page013 since both text and code file exist. Had the user typed ‘STASIS.TEXT’ or ‘STASIS.CODE’, the result would have been the same — both text and code versions would have been loaded. In the event that only one of the versions exists, as in the case of A.OUT, then that version would be loaded, regardless of whether text or code was requested. Typing ‘ABSURD.TEXT’ in response to the prompt would generate the message: ‘Code file loaded’. Working with the file may cause the files SYSTEM.WRK.xxxx to be created, as part of the workfile. These files will go away when the S(ave command is used. If the system is rebooted before the S(ave command is used, the name of the workfile will be forgotten.

1.2.5.2. S(ave

Saves the workfile under the filename specified by the user.

The entire file specification is not necessary. If the volume ID is not given, the default disk is assumed. Wildcards are not allowed, and the size specification option is ignored.

Example:

Prompt: Save as what file?

Response: Type a filename of 10 or less characters, observing the filename conventions in section 1.2.24 ‘FILES’. This causes the Filer to automatically remove any old file having the given name, and to save the workfile under that name. For example, typing “X” in response to the prompt causes the workfile to be saved on the default disk as X.TEXT. If a codefile has been compiled since the last update of the workfile, that codefile will be saved as X.CODE.

page014 The Filer automatically appends the suffixes .TEXT and .CODE to files of the appropriate type. Explicitly typing AFILE.TEXT in response to the prompt will cause the Filer to save this file as AFILE.TEXT.TEXT Any illegal characters in the filename will be ignored, with the exception of ‘:’. If the file specification includes volume id, the Filer assumes that the user wishes to save the workfile on another volume. For example, typing:

RED:EYE
in response to ‘Save as what file?’ will generate
MYDISK:SYSTEM.WRK.TEXT --> RED:EYE.TEXT
RED:EYE constitutes a file specification, and a ‘Y’ answer to this prompt will cause the Filer to attempt a transfer of the workfile to the specified volume and file (see section 1.2.5.11 T(ransfer.)

1.2.5.3. N(ew

Clears the workfile. Creating a blank, unnamed workfile. It will remain unnamed until it is saved.

If there is already a workfile present, the user is prompted:

Prompt: Throw away current workfile?

Response:Y’ will clear the workfile while ‘N’ returns the user to the outer level of the Filer.

If a file called workfile-name.BACK exists, then the user is prompted:

Prompt: Remove workfile-name.BACK ?

1.2.5.4. Q(uit

Returns the user to the outermost command level.

page015

1.2.5.5. W(hat

Identifies the name and state (saved or not) of the workfile.

1.2.5.6. V(olumes

Lists volumes currently on-line, with their associated unit (device) numbers.

A typical display might be:

Volumes on-line:
  1   CONSOLE:
  2   SYSTERM:
  4 # MYDISK:
  6   PRINTER:
  8   REMOTE:
  9 # BIG:
Root vol is - MYDISK:
Prefix is   - MYDISK:

The system volume is the default volume unless the prefix (see P(refix) has been changed. Block-structured devices are indicated by ‘#’.

1.2.5.7. L(dir

Lists a disk directory, or some subset thereof, to the volume and file specified (default is CONSOLE:).

The user may list any subset of the directory, using the ‘wildcard’ option, and may also write the directory, or any subset thereof, to a volume or filename other than CONSOLE. File specification will therefore be discussed in terms of source file specification and destination file specification.

Source file specification consists of a mandatory volume ID, and optional subset-specifying strings, which may be empty. Source file specifications are separated from destination file specifications by a comma (‘,’).

page016 Destination file specification consists of a volume ID, and, if the volume is a block-structured device, a filename.

The most frequent use of this command is to list the entire directory of a volume. The following display, which represents a complete directory listing for the example disk MYDISK, would be generated by typing any valid volume ID for MYDISK (see Figure 2) in response to the prompt,

Dir listing of what vol?

MYDISK:
FILERDOC2.TEXT  28  1-Sep-78
ABSURD.CODE     18  1-Sep-78
HYTYPER.CODE    12  1-Sep-78
STASIS.TEXT      8  1-Sep-78
LETTER1.TEXT    18  1-Sep-78
ASSEMDOC.TEXT   20  1-Sep-78
FILERDOC1.TEXT  24  1-Sep-78
STASIS.CODE      6  1-Sep-78
10/10 files <listed/in-dir>, 144 blocks used, 350 unused, 200 in largest

(The bottom line of the display informs the user that 10 files out of 10 files on the disk have been listed, that 130 disk blocks have been used, that 364 disk blocks remain unused, and that the largest area available is 200 blocks.)

Example:

L(dir transaction involving wildcards:

Prompt: Dir listing of what vol ?

User response: #4:FIL=TEXT
generates the following display:

MYDISK:
FILERDOC2.TEXT  28  1-Sep-78
FILERDOC1.TEXT  24  1-Sep-78
2/10 files <listed/in-dir>, 62 blocks used, 432 unused, 200 in largest

page017 Example:

L(dir transaction involving writing the directory subset to a device other than CONSOLE:

Prompt: Dir listing of what vol ?
User response: *FIL=TEXT,PRINTER: causes
MYDISK:
FILERDOC2.TEXT   28  1-Sep-78
FILERDOC1.TEXT  214  1-Sep-78
2/10 files <listed/in-dir>, 62 blocks used, 364 unused, 200 in largest
to be written to the Printer.

Example:

L(dir transaction involving writing the directory subset to a block-structured device:

Prompt: Dir listing of what vol ?
User response: #4:FIL=TEXT,#5:TRASH creates the file TRASH on the volume associated with unit 5. The TRASH file would contain:
MYDISK:
FILERDOC2.TEXT   28  1-Sep-78
FILERDOC1.TEXT  214  1-Sep-78
2/10 files <listed/in-dir>, 62 blocks used, 364 unused, 200 in largest

1.2.5.8. E(xtended list

Lists the directory in more detail than the L(dir command.

All files and unused areas are listed along with (in this order) their block length, last modification date, the starting block address, the number of bytes in the last block of the file, and the file-kind. All wildcard options and prompts are as in the L(dir command. An example display is shown below.

MYDISK:
FILERDOC2.TEXT  28  1-Sep-78    6  512  Textfile
ABSURD.CODE     18  1-Sep-78   34  512  Codefile
<UNUSED>        10             52
ABSURD          14  1-Sep-78   62  512  Datafile
HYTYPER.CODE    12  1-Sep-78   66  512  Codefile
STASIS.TEXT      8  1-Sep-78   78  512  Textfile
LETTER1.TEXT    18  1-Sep-78   86  512  Textfile
ASSEMDOC.TEXT   20  1-Sep-78  104  512  Textfile
FILERDOC1.TEXT  24  1-Sep-78  124  512  Textfile
<UNUSED>       200            148
smsis.cocc       6  1-Sep-78  348  512  Codefile
<UNUSED>       154            354
10/10 files <listed/in-dir>, 138 blocks used, 354 unused, 200 in largest

page018

1.2.5.9. C(hange

Changes file or volume name.

This command requires two file specifications. The first of these specifies the file to be changed, the second, to what it will be changed. The first specification is separated from the second specification by either a <ret> or a coma (‘,’). Any volume ID information in the second file specification is ignored, since obviously the ‘old file’ and the ‘new file’ are on the same volume! Size specification information is ignored.

Given the example file F5.TEXT, residing on the volume occupying unit 5:

Prompt: Change what file?
User Response: #5:F5.TEXT,HOOHAH

changes the name in the directory from ‘F5.TEXT’ to ‘HOOHAH’. File-kinds are originally determined by the filename, the C(hange command does not affect the file-kind. In the above case, H00HAH would still be a text file. However, since the G(et command searches for the suffix ‘.TEXT’ in order to load a text file into the workfile, HOOHAH would need to be renamed HOOHAH.TEXT in order to be loaded into the workfile.

Wildcard specifications are legal in the C(hange command. If a wildcard character is used in the first file specification, then a wildcard must be used in the second file specification. The subset-specifying strings in the first file specification are replaced by the analogous strings (henceforward called replacement strings) given in the second file specification. The Filer will not change the filename if the change would have the effect of making the filename too long (>15 characters). Given a directory of example disk NOTSANE: containing the files:

page019

POEMS.TEXT
MAUNDER.TEXT
MALPRACTICE
MAKELISTS.TEXT

Example:

Prompt: Change what file?
User response: NOTSANE:MA=TEXT,XX=GAACK causes the Filer to report
NOTSANE:MAUNDER.TEXT    -> XXUNDER.GAACK
NOTSANE:MAKELISTS.TEXT  -> XXKELISTS.GAACK

The subset-specifying strings may be empty, as may the replacement strings. The Filer considers the file specification ‘=’ (where both subset-specifying strings are empty) to specify every file on the disk. Responding to the C(hange prompt with ‘=,Z=Z’ would cause every filename on the disk to have a ‘Z’ added at front and back. Responding to the prompt with ‘Z=Z,=’ would replace each terminal and initial ‘Z’ with nothing. Given the filenames:

THIS.TEXT
THAT.TEXT

Example:

Prompt: Change what file?
User Response: T=T,

The result would be to change ‘THIS.TEXT’ to ‘HIS.TEX’, and ‘THAT.TEXT’ to ‘HAT.TEX’.

The volume name may also be changed by specifying a volume ID to be changed, and a volume ID to change to.

Example

Prompt: Charge what file?
User Response: NOTSANE:,WRKDISK:
NOTSANE: --> WRKDISK

page020

1.2.5.10. R(emove

Remove file entries from the directory.

This command requires one file specification for each file the user wishes to remove. Wildcards are legal. Size specification information is ignored. Given the example files (assuming that they are on the default volume):

AARDVARK.TEXT
ANDROID.CODE
QUINT.TEXT
AMAZING.CODE

Example

Prompt: Remove what file?
User Response: AMAZING.CODE

removes the file AMAZING.CODE from the volume directory.

Note: To remove SYSTEM.WRK.TEXT and/or SYSTEM.WRK.CODE the N(ew command should be used, or the system may get confused. Fortunately, before finalizing any wildcard removes, the Filer prompts the user with

Prompt: Update directory?
Response: ‘Y’ causes all specified files to be removed, ‘N’ returns the user to the outer level of the Filer without any removes having occurred.

As noted before, wildcard removes are legal.

Example:

Prompt: Remove what file?
User Response: A:CODE
page021 causes the Filer to remove AMAZING.CODE and ANDROID.CODE.

Warning: Remember that the Filer considers the file specification ‘=’ (where both subset-specifying strings are empty) to specify every file on the volume. Typing an ‘=’ alone will cause the Filer to remove every file on your directory!!

1.2.5.11. T(ransfer

Copies the specified file to the given destination.

This command requires the user to type two file specifications, one for the source file, and one for the destination file, separated with either a coma or <ret>. Wildcards are permitted, and size specification information is recognized for the destination file. Assume that the user wishes to transfer the file FARKLE.TEXT from the disk MYDISK to the disk BACKUP.

Example

Prompt: Transfer what file ?
User Response: MYDISK:FARKLE.TEXT
Prompt: To where?
(Note: On a one-drive machine, do not remove your source disk until you are prompted to insert the destination disk)
User Response: BACKUP:NAME.TEXT
Prompt: Put in BACKUP:
Type <space> to continue

The user should remove the source disk, insert the destination disk and type a <space>. The Filer then notifies the user:

MYDISK:FARKLE.TEXT -> BACKUP:NAME.TEXT
The Filer has made a copy of FARKLE and has written it to the disk BACKUP giving it the name NAME.TEXT. If the specified file is large, the user may be prompted to alternately insert the source and destination disks until the transfer is completed.

page022 it is often convenient to transfer a file without changing the name, and without retyping the file name. The Filer enables the user to do this by allowing the character ‘$’ to replace the filename in the destination file specification. In the above example, had the user wished to save the file FARKLE.TEXT on BACKUP under the name FARKLE.TEXT, she could have typed:

MYDISK:FARKLE.TEXT,BACKUP:$
Warning: Avoid typing the second file specification with the filename completely omitted! For example, a response to the Transfer prompt of the form:
MYDISK:FARKLE.TEXT,BACKUP:
generates the message:
Destroy BACKUP: ?
Y’ answer causes the directory of BACKUP to be wiped out!

Files may be transferred to volumes that are not block structured, such as CONSOLE: and PRINTER:, by specifying the appropriate volume ID (see Figure 1) in the destination file specification. A file name on a non-block-structured device is ignored. It is generally a good idea to make certain that the destination volume is on-line.

Example:

Prompt: Transfer what file?
User Response: FARKLE.TEXT
Prompt: To where?
User Response: PRINTER:
causes FARKLE.TEXT to be written to the printer.

The user may also transfer from non-block-structured devices, providing they are input devices. Filenames accompanying a non-block- structured device ID are ignored.

page023 The wildcard capability is allowed for T(ransfer. If the source file specification contains a wildcard character, and the destination file specification involves a block-structured device, then the destination file specification must also contain a wildcard character. The subset-specifying strings in the source file specification will be replaced by the analogous strings in the destination file specification (henceforward known as replacement strings). Any of the subset-specifying or replacement strings may be empty. Remember that the Filer considers the file specification ‘=’ to specify every file on the volume.

Example:

Given the volume MYDISK containing the files PAUCITY, PARITY and PENALTY, and the destination ODDNAMZ:

Prompt: Transfer what file?
User Response: P=TY,ODDNAMZ:V=S
would cause the Filer to reply:
MYDISK:PAUCITY      --> ODDNAMZ:VAUCIS
MYDISK:PARITY       --> ODDNAMZ:VARIS
MYDISK:PENALTY      --> ODDNAMZ:VENALS

Using ‘=’ as the source filename specification will cause the Filer to attempt to transfer every file on the disk. This will probably overflow the output buffer. (There are easier ways to transfer whole disks. If you wish to do this, please refer to the material in this section on volume-to-volume transfers.)

Using ‘=’ as the destination filename specification will have the effect of replacing the subset-specifying strings in the source specification with nothing. A brief reminder: ‘?’ may be used in place of ‘=’. The only difference is that ‘?’ causes the user to be asked for verification before the operation is performed.

A file can be transferred from a volume to the same volume by specifying the same volume ID for both source and destination file specifications. This is frequently useful when the user wishes to relocate a file on the disk. Specifying the number of blocks desired will cause the Filer to copy the file in the first-fit area of at least that size. If no size specification is given, the file is written in the largest unused area.

page024 If the user specifies the same filename for both source and destination on a same-disk transfer, then the Filer rewrites the file to the size-specified area, and removes the older copy.

Example:

Prompt: Transfer what file?
User Response: #4:QUIZZES.TEXT,#4:QUIZZES.TEXT[2O]
causes the Filer to rewrite QUIZZES.TEXT in the first 20-block area encountered (counting up from block 0) and to remove the previous version of QUIZZES.TEXT.

It is also possible to do entire volume-to-volume transfers. The file specifications for both source and destination should consist of volume ID only. Transferring a block-structured volume to another block- structured volume causes the destination volume to be ‘wiped out’ so that it becomes an exact copy of the source volume. Assume that the user desires an extra copy of the disk MYDISK: and is willing to sacrifice disk EXTRA:

Example:

Prompt: Transfer what file?
User Response: MYDISK:,EXTRA:
Prompt: Destroy EXTRA: ?
Warning: If the user types ‘Y’, the directory of EXTRA: will be destroyed! An ‘N’ response will return the user to the outer level of the Filer, and a ‘Y’ will cause EXTRA to become an exact copy of MYDISK. Often this is desirable for backup purposes, since it is relatively easy to copy a disk this way, and the volume name can be changed (see C(hng) if desired.

Although it is certainly possible to transfer a volume (disk) to another using a single disk-drive, it is a fairly tedious process, since the in-core transfer reads up the information in rather small chunks, and a great deal of disk juggling is necessary for the complete transfer to take place. page025

1.2.5.12. D(ate

Lists current system date, and enables the user to change the date.
Prompt: Date Set: <1..31>-<JAN..DEC>-<00..99>
Today is 19-Aug-78
New date?

The user may enter the correct date in the format given. After typing <ret>, the new date will be displayed. Typing only a return does not affect the current date. The hyphens are delimiters for the day, month and year fields, and it is possible to affect only one or two of these fields. For example, the year could be changed by typing ‘--79’, the month by typing ‘-Sep’, etc. The entire month- name can be entered, but will be truncated by the Filer. Slash (‘/’) is also acceptable as a delimiter. The most common input will be a single number, which will be interpreted as a new day. For example, if yesterday was the 19th of August, the user would want to type D20<ret>, which would have the desired effect of changing the date to the 20th of August. The day-month-year order is inviolate, however.

This date will be associated with any files saved during the current session and will be the date displayed for those files when the directory is listed.

1.2.5.13. P(refix

Changes the current default to the volume specified.

This command requires the user to type a volume ID. An entire file specification may be entered, but only the volume ID will be used. It is not necessary for the specified volume to be on-line.

To determine the current default volume, the user may respond to the prompt with ‘:’. To return the prefix to the booted or “Root” volume, user may respond with “*”.

1.2.5.14. B(ad blocks

Scans the disk and detects bad blocks.

This command requires the user to type a volume ID. The specified volume must be on-line. page026

Prompt: Bad block scan of what vol?
Response: <volume ID>
Prompt: Scan for 494 blocks ? <y/n>
Response may be “Y” for yes if you want to scan for the entire length of the disk. If you only wish to check a smaller portion of the disk, type “N” and you will then be prompted for the number of blocks you want the filer to scan for. The purpose of this part of the command is for disks where the filer has no idea of how ‘long‘ the device is.

Checks each block on the indicated volume for errors and lists the number of each bad block. Bad blocks can often be fixed or marked (see eX(amine).

1.2.5.15. eX(amine

Attempts to physically recover suspected bad blocks.

This command requires the user to type a volume ID. The volume must be on-line.

Example:

Prompt: Examine blocks on what volume?
Response: <volume ID> generates the
Prompt: Block-range ?
The user should have just done a bad block scan, and should enter the block number(s) returned by the bad block scan. If any files are endangered, the following prompt should appear:
Prompt: File(s) endangered:
<filename>
Fix them?
Responding ‘Y‘ will cause the Filer to examine the blocks and return either of the messages: page027
Block <block-number> may be ok
in which case the bad block has probably been fixed, or
Block <block-number> is bad
in which case the Filer will offer the user the option of marking the block(s) BAD. Blocks which are marked BAD will not be shifted during a K(runch, and will be rendered effectively harmless.

An ‘N’ response to the ‘fix them?’ prompt returns the user to the outer level of the Filer.

Warning: A block which is ‘fixed’ may contain garbage. ‘May be ok’ should be translated as ‘is probably physically ok’. Fixing a block means that the block is read, is written back out to the block and is read again. If the two reads are the same, the message is ‘may be Ok’. In the event that the reads are different, the block is declared bad and may be marked as such if so desired.

1.2.5.16. K(runch

Moves the files on the specified volume so that unused blocks are combined.

This command requires the user to type a volume ID. The specified volume must be on-line. It is recommended that the user perform a bad block scan of the volume before K(runching in order to avoid writing files over bad areas of the disk. If bad blocks are encountered, they must be either fixed or marked before the K(runch (see eX(amine).

As each file is moved, its name is reported to the console. If SYSTEM.PASCAL is moved, the system must be reinitialized by bootstrapping. Do not touch the disk, the boot-switch or the disk-drive door until K(runch tells you it has completed its task. To do otherwise may cause irreversible damage to the disk.

Example:

Prompt: Crunch what vol?
page028 Response: <volume ID>
causes Filer to prompt with:
Prompt: From end of disk, block 493 ? (y/n)
Responding ‘Y’ initiates the K(runch. Typing an ‘N’ will cause the prompt:
Prompt: Starting at block # ?
Respond with the block number at which you wish the filer to open a space on the disk.

1.2.5.17. M(ake

Creates a directory entry with the specified filename.

This command requires the user to type a file specification. Wildcard characters are not allowed. The file size specification option is extremely helpful, since, if it is omitted, the Filer creates the specified file by consuming the largest unused area of the disk. The file size is determined by following the filename with the desired number of blocks, enclosed in square brackets ‘[’ and ‘]’. Some special cases are:

[0]
equivalent to omitting the size specification. The file is created in the largest unused area.
[*]
the file is created in the second largest area, or half the largest area, whichever is larger.

Example:

Prompt: Make what file?
Response: MYDISK:FARKLE.TEXT[28]
Creates the file FARKLE.TEXT on the volume MYDISK: in the first unused 28-block area encountered. page029

1.2.5.18. Z(ero

Reformats the specified volume. The previous directory is rendered irretrievable.

Example:

Prompt: Zero dir of what vol ?
Response: <volume ID>
Prompt: Destroy <volume name> ?
Responding with a ‘Y’ generates
Prompt: Duplicate dir ?
Responding with a ‘Y’ then a duplicate directory will be maintained. This is advisable because, in the event that the disk directory is destroyed, a utility program called COPYDUPDIR can use the duplicate directory to restore the disk.
Prompt: Are there 494 blocks on the disk ? (y/n)
Responding with an ‘N’ generates
Prompt: # of blocks on the disk ?
Respond by typing the number of blocks desired. The table following this section gives the correct number of blocks for several types of disks.

A response of ‘Y’ generates

Prompt: New vol name ?
Response: User types any valid volume name.
Prompt: <new volume name> correct ?
Responding with ‘Y’ causes the Filer, if it could indeed write the new directory on the disk, to respond with the message:
<new volume name> zeroed
page030
MachineDisk typeNumber of blocks
Terak Single-density soft-sectored 8" floppy 493
Northwest Micro Double-density soft-sectored 8" floppy 1101
Zilog Single-density hard-sectored 8" floppy 607
North Star Single-density hard-sectored 5¼" floppy 167
DEC RK05 / per volume 4871

These are the numbers that one types when the filer asks for a number of blocks, as the blocks are numbered from zero. Ed.


This page last regenerated Sun Jul 25 01:11:47 2010.