/* BEGIN INCLUDE FILE: tape_ansi_cseg.incl.pl1 */ /* */ /* 1) Modified: 12/01/75 by Ross E. Klinger -- to allow */ /* for allocation of the attach and open descriptions */ /* within the cseg structure. */ dcl cP ptr; /* pointer on which cseg structure is based */ dcl cseg_tseg_version_1 fixed bin internal static options (constant) init (1); dcl 1 cseg based (cP), /* control structure */ 2 file_set_lock bit (1) aligned, /* "1"b if file set in use */ 2 invalid bit (1) aligned, /* invalid cseg - delete at detach time bit */ 2 standard fixed bin, /* label standard */ /* 1 - ANSI standard */ /* 2 - IBM/OS-VS */ /* 3 - IBM/DOS-VM */ 2 attach_description, /* iox_ attach description */ 3 length fixed bin (17), /* actual length of string */ 3 string char (256), /* maximum is 256 characters */ 2 open_description, /* iox_ open description */ 3 length fixed bin (17), /* actual length of string */ 3 string char (32), /* maximum is 32 */ 2 module char (12) varying, /* IO module name */ 2 owner_id char (14), /* owner identifier */ 2 ndrives fixed bin, /* maximum number of drives to be used */ 2 nactive fixed bin, /* number of drives actually in use */ 2 write_ring bit (1) aligned, /* volumes mounted with write rings */ 2 protect bit (1) aligned, /* volumes have rings, but are hardware protected */ 2 density fixed bin, /* file set recording density */ /* 2 - 800 bpi NRZI */ /* 3 - 1600 bpi PE */ 2 vcN fixed bin, /* number of links in volume chain */ 2 fcP ptr, /* file chain pointer */ 2 flP ptr, /* pointer to file link of current file */ 2 hdw_status, /* hardware status structure */ 3 bits bit (72) aligned, /* IOM status */ 3 no_minor fixed bin, /* number of minor status codes */ 3 major fixed bin (35), /* major status */ 3 minor (10) fixed bin (35), /* minor status */ 2 lbl_buf char (80), /* label I/O buffer */ 2 open_mode fixed bin, /* opening mode */ /* 4 - sequential_input */ /* 5 - sequential_output */ 2 close_rewind bit (1) aligned, /* rewind volume at next close */ 2 force bit (1) aligned, /* force file overwrite switch */ 2 user_labels bit (1) aligned, /* process user labels switch */ 2 no_labels bit (1) aligned, /* "1"b if volume has no labels */ 2 output_mode fixed bin, /* 0 - input */ /* 1 - extend */ /* 2 - modify */ /* 3 - write */ /* 4 - create */ 2 replace_id char (17), /* replace file identifier */ 2 retain fixed bin, /* 0 - default to rcp_ defaults */ /* 1 - unassign drives and volumes */ /* 2 - retain drives, unassign volumes */ /* 3 - unassign drives, retain volumes */ /* 4 - retain drives and volumes */ 2 lrec, /* logical record IO control data */ 3 bufP ptr, /* pointer to current processing buffer */ 3 nc_buf fixed bin, /* number of characters in buffer */ 3 offset fixed bin, /* current processing offset within buffer */ 3 saveP ptr, /* pointer to current D/V format RCW/RDW */ 3 file_lock bit (1) aligned, /* "1"b if file in use */ 3 blkcnt fixed bin (35), /* physical block count */ 3 reccnt fixed bin (35), /* logical record count (not presently used) */ 3 code fixed bin (35), /* lrec_io_ non-restartable error code */ 2 read_length, /* read_length control data */ 3 rlP ptr, /* pointer to read_length segment */ 3 rlN fixed bin (21), /* number of characters in segment */ 2 user_label_routine (6) variable entry (char (80), bit (1)), /* 1 - read UHL */ /* 2 - write UHL */ /* 3 - read UTL */ /* 4 - write UTL */ /* 5 - read UVL */ /* 6 - write UVL */ /* THE FOLLOWING IS NEEDED ONLY WHILE TAPEIO_ / TDCM IS THE IO PROCEDURE */ 2 syncP ptr, /* pointer to synchronous IO buffer */ 2 mode fixed bin, /* 0 = binary -- 1 = 9 mode */ 2 soft_status, /* software status structure */ 3 nbuf fixed bin, /* number of suspended buffers */ 3 buf (2), 4 bufP ptr, /* pointer to buffer */ 4 count fixed bin, /* buffer character count */ 2 (free_list, busy_list, chain (3), bufct (3)) fixed bin, /* buffer management variables */ 2 wait_switch (1:63) bit (1) unaligned, /* per-drive event wait switches */ 2 tseg aligned, 3 version_num fixed bin, 3 areap ptr, /* pointer to DSM area */ 3 ev_chan fixed bin (71), /* event channel number */ 3 write_sw fixed bin (1), /* 0 = read, 1 = write */ 3 sync fixed bin (1), /* non-zero for synchronous i/o */ 3 get_size fixed bin (1), /* ON for record sizes to be returned */ 3 ws_segno bit (18), /* rcp_ kluge */ 3 drive_name char (32), 3 tracks fixed bin, 3 density bit (36), 3 buffer_offset fixed bin (12), /* offset of first buffer to be processed */ 3 buffer_count fixed bin (12), /* number of buffers to be processed */ 3 completion_status fixed bin (2), /* 0 = no pending i/o or no status */ /* 1 = normal termination of i/o */ /* 2 = non-zero major status from previous i/o */ 3 hardware_status bit (36) aligned, /* major and sub-status */ 3 error_buffer fixed bin (12), /* buffer in which i/o error occurred */ 3 command_count fixed bin (12), /* number of non-data commands to execute */ 3 command_queue (10) fixed bin (6) aligned, /* non-data-transfer commands */ 3 bufferptr (12) fixed bin (18) aligned, /* relative ptrs to buffers */ 3 buffer_size (12) fixed bin (18) aligned, /* size of buffer */ 3 mode (12) fixed bin (2) aligned, /* 0 = bin, 1 = bcd, 2 = 9 track */ 3 buffer (4) char (8192) aligned, /* data buffers */ /* END OF TAPEIO_ / TDCM DATA */ 2 vl (63), /* volume chain link */ 3 position, /* volume position */ 4 fflX fixed bin unal, /* index of first file link on volume */ 4 cflX fixed bin unal, /* index of current file link */ 4 pos fixed bin unal, /* intra-file position code */ /* 0 = in HDR group */ /* 1 - in data / passed HDR TM */ /* 2 = in EOx group / passed data TM */ 4 lflX fixed bin unal, /* index of last file link on volume */ 3 vol_data, 4 volname char (6), /* volume name */ 4 comment char (64) varying, /* mount comment */ 4 rcp_id fixed bin (6), /* TDCM DUMMY - CHANGE TO BIT (36) ALIGNED */ 4 event_chan fixed bin (71), /* rcp_ attach event channel */ 4 tape_drive char (32), /* name of tape drive */ 4 ws_segno bit (18), /* segno of IOI workspace (per drive) */ 4 write_VOL1 fixed bin, /* 0 - correct VOL1 label */ /* 1 - blank tape */ /* 2 - can't read 1st block */ /* 3 - 1st block not VOL1 label */ /* 4 - valid VOL1 label but wrong volume ID (Obsolete) */ /* 5 - correct VOL1 label, but wrong density */ /* 6 - invalid file-set format (Obsolete) */ /* -1 - correct VOL1 label of an earlier format */ /* (no authentication code) */ 4 ioi_index fixed bin, /* ioi_ index for IO */ 3 reg_data, /* registration data */ 4 volume_id char (32), /* tape uses only 1st 6 */ 4 tracks fixed bin unal, /* number of tracks */ 4 density fixed bin unal, /* density code */ 4 label_type fixed bin unal, /* volume format */ 4 usage_count fixed bin unal, /* number of attachment to this volume */ 4 read_errors fixed bin unal, /* number of read errors */ 4 write_errors fixed bin unal, /* number of write errors */ 2 chain_area area; /* file chain allocation area */ /* END INCLUDE FILE: tape_ansi_cseg.incl.pl1 */ */ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull and Bull HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by Bull HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved */