IRIS Disks

Logical Units

IRIS partitioned disk drives in a manner very similar to today’s drive partitioning.
Each partition was referred to as a LOGICAL UNIT (LU).
Logical Unit zero (LU0) contained the operating system files, and any other desired user files (similar to C:\ drive on windows)
Other Logical Units (LUn) could contain any type of file.
LU’s have the following characteristics:

  • An LU consists of one or more cylinders on a given drive type.
  • LU’s must begin and end on cylinder boundaries.
  • RDA’s on LU zero are limited to: 0 – 77777 (32768 blocks).
  • RDA’s on other LU’s are limited to: 0 – 177776 (65535 blocks).

File Types

IRIS supported a wide variety of file types, each with its own features and handling.
Examples include:

  • Processors (e.g. RUN, BASIC, COPY, LIBR)
  • Device Drivers (terminal, printer, mag tape, etc)
  • System function drivers to extend system abilities
    (decimal arithmetic, advanced terminal functions, etc)
  • Basic programs (interpreted)
  • Text files
  • Formatted Data Files (defined later)
  • Contiguous unformatted data files
  • Contiguous Indexed files
  • Stand-alone assembly utilities (e.g. backup)
  • Other types as defined by developers

Internal File Structure

Every file contains a Header block and one or more ‘data’ blocks. The header block contains a lot of info about the file, including the location of its data blocks. All of the above file types are structured in one of three ways:

  • Contiguous: The entire file is made up of contiguous disk blocks.
  • Random: File blocks can be scattered all over, yet treated as a unit.
  • Hybrid: Structured like Random, but with contiguous blocks.
    (only DMAP and DISCSUBS are in this group)

A contiguous file can be any length, and its starting and ending points are defined by the RDA of the Header block and the number of blocks in the file.
A random file can be in one of two formats.

  • Simple: Header block identifies up to 200 (128) data blocks (block list is in the last half of the header block).
  • Extended: Header block identifies up to 200 (128) extender blocks, each of which identifies up to 400 (256) data blocks for a total of 100000 (65536) data blocks.

Random files are created in simple format, and modified to extender format automatically by the system when the file exceeds 200 (128) data blocks.


2 thoughts on “IRIS Disks

  1. Hector SamkowHector Samkow

    Block 0 of the boot disk contained (1) the first few instructions for loading IRIS, and (2) BZUP (Block Zero Utility Package), an incredibly powerful troubleshooting tool comprised of about 250 bytes of machine code.

  2. David TakleDavid Takle Post author

    Thanks for including that note. Actually BZUP was amazingly capable, given how small it was. Unfortunately, some of the later disk controllers offloaded too much work to software, and the drivers got too big to accommodate all that code in one block. So a lot of the later versions of IRIS had BZUP stripped out of Block zero and only the simple driver remained along with instructions to move itself to another location and bring in Block 2 which was the REX header. Strangely, they buried the code for loading the rest of REX inside Block 2.

    In retrospect, it would have been better to (a) limit block 0 to a simple disk driver and the ability to load sector 2; (b) put the rest of the boot logic in block 2 along with a more sophisticated debugger; (c) relocate the REX header to another place (block 4?).

Leave a Reply