COMPILATION LISTING OF SEGMENT vtocx_to_record Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 10/28/86 1520.3 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-01-16,Fawcett), approve(86-04-10,MCR7383), 14* audit(86-05-15,Martinson), install(86-07-18,MR12.0-1098): 15* Add support for 512_WORD_IO devices. 16* END HISTORY COMMENTS */ 17 18 19 20 vtocx_to_record: proc; 21 22 dcl (ioa_, ioa_$rsnnl, com_err_, active_fnc_err_) entry options (variable); 23 dcl (record, sector) fixed bin; 24 dcl abssec fixed bin; 25 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 26 dcl cu_$af_arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 27 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin, fixed bin (35)); 28 dcl getter entry (fixed bin, ptr, fixed bin, fixed bin (35)) variable; 29 dcl gripe variable entry options (variable); 30 dcl code fixed bin (35); 31 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin); 32 dcl myname char (32); 33 dcl arg char (arglen) based (argptr); 34 dcl argptr ptr, arglen fixed bin; 35 36 dcl vtocx fixed bin; 37 dcl dvt fixed bin; 38 dcl targ char (8); 39 dcl nargs fixed bin; 40 dcl error_table_$not_act_fnc fixed bin (35) ext; 41 dcl ap1 ptr, al1 fixed bin; 42 dcl answer char (al1) varying based (ap1); 43 dcl nafsw bit (1) init ("0"b); 44 45 dcl (usable, unusable) fixed bin; 46 47 dcl (divide, hbound, mod) builtin; 48 49 50 mulphy: proc (rec) returns (fixed bin); 51 dcl (sect, rec) fixed bin; 52 sect = rec * 16; 53 sect = sect + divide (sect, usable, 17, 0) * unusable; 54 return (sect); 55 end mulphy; 56 57 phymul: proc (sect) returns (fixed bin); 58 dcl (r, sect) fixed bin; 59 r = divide (sect, sect_per_cyl (dvt), 17, 0) * unusable; 60 return (divide (sect - r, 16, 17, 0)); 61 end phymul; 62 63 64 65 myname = "vtocx_to_record"; 66 gtarg: 67 call cu_$af_return_arg (nargs, ap1, al1, code); 68 if code ^= 0 then 69 if code = error_table_$not_act_fnc then do; 70 nafsw = "1"b; 71 gripe = com_err_; 72 getter = cu_$arg_ptr; 73 end; 74 else do; 75 call active_fnc_err_ (code, myname, ""); 76 return; 77 end; 78 else do; 79 gripe = active_fnc_err_; 80 getter = cu_$af_arg_ptr; 81 end; 82 call getter (2, argptr, arglen, code); 83 if code = 0 then targ = arg; else targ = "d451"; 84 if targ = "m400" then targ = "d400"; /* For MR7.0 only */ 85 else if targ = "m451" then targ = "d451" ; /* For MR7.0 only */ 86 do dvt = 1 to hbound (device_names, 1); 87 if targ = device_names (dvt) then go to gotdvt; 88 end; 89 call gripe (0, myname, "unknown device_type ""^a"". Legal types are ^(^a ^)", targ, device_names); 90 return; 91 gotdvt: 92 usable = divide (sect_per_cyl (dvt), sect_per_rec (dvt), 17, 0) * sect_per_rec (dvt); 93 unusable = sect_per_cyl (dvt) - usable; 94 call getter (1, argptr, arglen, code); 95 if code ^= 0 then do; 96 call gripe (code, myname); 97 return; 98 end; 99 100 vtocx = cv_oct_check_ (arg, code); 101 if code ^= 0 then do; 102 call gripe (0, myname, "Invalid octal: ^a", arg); 103 return; 104 end; 105 106 if myname = "vtocx_to_record" then do; 107 record = VTOC_ORIGIN + divide (vtocx, vtoc_per_rec (dvt), 17, 0); 108 sector = mod (vtocx, vtoc_per_rec (dvt)) * sect_per_vtoc (dvt); 109 if record > rec_per_dev (dvt) then go to toobig; 110 end; 111 else if myname = "record_to_sector" then do; 112 sector = 0; 113 record = vtocx; 114 if record > rec_per_dev (dvt) then do; 115 toobig: call gripe (0, myname, "Address too big: ^o", vtocx); 116 return; 117 end; 118 end; 119 120 if myname = "sector_to_record" then do; 121 abssec = vtocx; 122 if abssec > sect_per_cyl (dvt) * cyl_per_dev (dvt) then go to toobig; 123 record = phymul (abssec); 124 sector = abssec - mulphy (record); 125 end; 126 else abssec = sector + mulphy (record); 127 if nafsw then do; 128 if myname = "vtocx_to_record" 129 then call ioa_ ("^-vtocx ^o = Rec ^o, rs ^o; abs sect ^o (^a)", vtocx, record, sector, abssec, device_names (dvt)); 130 else call ioa_ ("^-Rec ^o, rs ^o = abs sect ^o (^a)", record, sector, abssec, device_names (dvt)); 131 return; 132 end; 133 134 if myname = "vtocx_to_record" | myname = "sector_to_record" 135 then call ioa_$rsnnl ("^o", answer, (0), record); 136 else call ioa_$rsnnl ("^o", answer, (0), abssec); 137 138 139 return; 140 141 record_to_sector: entry; 142 myname = "record_to_sector"; 143 go to gtarg; 144 sector_to_record: entry; 145 myname = "sector_to_record"; 146 go to gtarg; 1 1 /* BEGIN INCLUDE FILE...disk_pack.incl.pl1 Last Modified January 1982 for new volume map */ 1 2 1 3 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-01-14,Fawcett), approve(86-05-13,MCR7383), 1 8* audit(86-05-14,LJAdams), install(86-07-18,MR12.0-1098): 1 9* Add vars PAGE_SIZE and VTOCE_SIZE, Also change the SECTORS_PER_VTOCE and 1 10* VTOCES_PER_RECORD form fixed bin constants to arrays of fixed bin 1 11* constants indexed by device type as defined in fs_dev_types.incl.pl1. 1 12* This was done for support of the 3380, and 3390 devices for 512_WORD_IO. 1 13* 2) change(86-10-21,Fawcett), approve(86-10-21,MCR7533), 1 14* audit(86-10-21,Farley), install(86-10-22,MR12.0-1193): 1 15* Change PAGE_SIZE and VTOCE_SIZE from automatic to static constants. 1 16* END HISTORY COMMENTS */ 1 17 1 18 1 19 /* 1 20* All disk packs have the standard layout described below: 1 21* 1 22* Record 0 : contains the label, as declared in fs_vol_label.incl.pl1. 1 23* Record 1 to 3 : contains the volume map, as declared in vol_map.incl.pl1 1 24* Record 4 to 5 : contains the dumper bit map, as declared in dumper_bit_map.incl.pl1 1 25* Record 6 : contains the vtoc map, as declared in vtoc_map.incl.pl1 1 26* Record 7 : formerly contained bad track list; no longer used. 1 27* Records 8 to n-1 : contain the array of vtoc entries; ( n is specified in the label) 1 28* each record contains 5 192-word vtoc entries. The last 64 words are unused. 1 29* Records n to N-1 : contain the pages of the Multics segments. ( N is specified in the label) 1 30* 1 31* Sundry partitions may exist within the region n to N-1, withdrawn or not as befits the meaning 1 32* of the particular partition. 1 33* 1 34* 1 35* 1 36* A conceptual declaration for a disk pack could be: 1 37* 1 38* dcl 1 disk_pack, 1 39* 2 label_record (0 : 0) bit(36 * 1024), 1 40* 2 volume_map_record (1 : 3) bit(36 * 1024), 1 41* 2 dumper_bit_map_record (4 : 5) bit(36 * 1024), 1 42* 2 vtoc_map_record (6 : 6) bit(36 * 1024), 1 43* 2 spare_record (7 : 7) bit(36 * 1024), 1 44* 2 vtoc_array_records (8 : n-1), 1 45* 3 vtoc_entry ( 5 ) bit(36 * 192), 1 46* 3 unused bit(36 * 64), 1 47* 2 Multics_pages_records (n : N-1) bit(36 * 1024); 1 48* 1 49* 1 50* 1 51* 1 52**/ 1 53 1 54 dcl (LABEL_ADDR init (0), /* Address of Volume Label */ 1 55 VOLMAP_ADDR init (1), /* Address of first Volume Map record */ 1 56 DUMPER_BIT_MAP_ADDR init (4), /* For initial release compaitiblity */ 1 57 VTOC_MAP_ADDR init (6), /* Address of first VTOC Map Record */ 1 58 VTOC_ORIGIN init (8), /* Address of first record of VTOC */ 1 59 DEFAULT_HCPART_SIZE init (1000), /* Size of Hardcore Partition */ 1 60 MAX_VTOCE_PER_PACK init (31774)) /* Limited by size of VTOC Map */ 1 61 fixed bin (17) int static options (constant); 1 62 1 63 /* SECTORS_PER_VTOCE & VTOCES_PER_RECORD are indexed via device type as */ 1 64 /* defined by fs_dev_types and extracted form the disk_table entry (dte) */ 1 65 /* or the physical volume table entry (pvte) device type. */ 1 66 1 67 dcl PAGE_SIZE fixed bin (17) init (1024) static options (constant); 1 68 dcl VTOCE_SIZE fixed bin (17) init (192) static options (constant); 1 69 1 70 dcl SECTORS_PER_VTOCE (9) fixed bin static options (constant) init 1 71 (0, 3, 3, 3, 3, 3, 3, 1, 1); 1 72 dcl VTOCES_PER_RECORD (9) fixed bin static options (constant) init 1 73 (0, 5, 5, 5, 5, 5, 5, 2, 2); 1 74 dcl SECTORS_PER_RECORD (9) fixed bin static options (constant) init 1 75 (0, 16, 16, 16, 16, 16, 16, 2, 2); 1 76 1 77 /* END INCLUDE FILE...disk_pack.incl.pl1 */ 147 2 1 /* Begin include file ...... fs_dev_types.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 2 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 2 6* Add support for FIPS 2 7* 3380. 2 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 2 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 2 10* Add the support for subvolumes for the MSU3380 and MSU3390. 2 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 2 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 2 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 2 14* END HISTORY COMMENTS */ 2 15 2 16 /* Modified 5/19/76 by N. I. Morris */ 2 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 2 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 2 19 /* Modified '82 by BIM for needs_alt_part */ 2 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 2 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 2 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 2 23* volmap and record stock can be expanded. */ 2 24 2 25 /* 2 26******************************************************************************** 2 27** * 2 28** WARNING: * 2 29** * 2 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 2 31** type is added. * 2 32** * 2 33** There are other include files that contain arrays indexed by the device * 2 34** index obtained by references to MODELX or MODELN in this include file. * 2 35** These must be modified when a new device type is added: * 2 36** disk_pack.incl.pl1 * 2 37** fs_dev_types_sector.incl.pl1 (included in this include) * 2 38** * 2 39******************************************************************************** 2 40**/ 2 41 2 42 2 43 dcl (maxdevt init (9), /* maximum legal devt */ 2 44 bulkdevt init (1), /* bulk store devt */ 2 45 msu0500devt init (2), /* MSU0500 device type */ 2 46 msu0451devt init (3), /* MSU0451 device type */ 2 47 msu0450devt init (3), /* MSU0450 device type */ 2 48 msu0400devt init (4), /* MSU0400 device type */ 2 49 dsu191devt init (4), /* DSU191 device type */ 2 50 dsu190devt init (5), /* DSU190 device type */ 2 51 dsu181devt init (6), /* DSU181 device type */ 2 52 msu0501devt init (7), /* MSU0501 device type */ 2 53 fips3380devt init (8), /* 3380D FIPS device type */ 2 54 fips3381devt init (9) /* 3380E FIPS device type */ 2 55 ) fixed bin (4) static options (constant); 2 56 2 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 2 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 2 59 2 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 2 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 2 62 2 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 2 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 2 65 2 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 2 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 2 68 2 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 2 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 2 71 2 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 2 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 2 74 2 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 2 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 2 77 2 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 2 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 2 80 2 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 2 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 2 83 2 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 2 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 2 86 2 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 2 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 2 89 2 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 2 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 2 92 2 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 2 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 2 95 2 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 2 97 ("abc"); 2 98 2 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 2 100 init ("a","b","c"); 2 101 2 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 2 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 2 104 2 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 2 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 2 107 2 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 2 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 2 110 2 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 2 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 2 113 2 114 2 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 2 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 2 117 2 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 2 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 2 120 2 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 2 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 2 123 2 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 2 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 2 126 2 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 2 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 2 129 2 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 2 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 2 132 2 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 2 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 2 135 2 136 dcl last_physical_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector on device (includes T&D cylinders) */ 2 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 2 138 2 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 2 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 2 141 3 1 /* Begin fs_dev_types_sector.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 3 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 3 7* Add the sector differance for devices that do 64 word IO and devices that 3 8* do 512 word IO. 3 9* END HISTORY COMMENTS */ 3 10 3 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 3 12* need all the data in fs_dev_types. This is also included in 3 13* fs_dev_types.incl.pl1 */ 3 14 3 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 3 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 3 17 3 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 3 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 3 20 3 21 dcl sect_per_rec (9) fixed bin static options (constant) init 3 22 /* table of # of sectors per record on each device */ 3 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 3 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 3 25 3 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 3 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 3 28 3 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 3 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 3 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 3 32 3 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 3 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 3 35 3 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 3 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 3 38 3 39 /* End fs_dev_types_sector.incl.pl1 */ 3 40 2 142 2 143 2 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 148 149 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/86 1025.9 vtocx_to_record.pl1 >special_ldd>install>MR12.0-1200>vtocx_to_record.pl1 147 1 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1 148 2 10/28/86 0943.0 fs_dev_types.incl.pl1 >special_ldd>install>MR12.0-1200>fs_dev_types.incl.pl1 2-142 3 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. VTOC_ORIGIN constant fixed bin(17,0) initial dcl 1-54 ref 107 abssec 000102 automatic fixed bin(17,0) dcl 24 set ref 121* 122 123* 124 126* 128* 130* 136* active_fnc_err_ 000016 constant entry external dcl 22 ref 75 79 al1 000142 automatic fixed bin(17,0) dcl 41 set ref 66* 134 136 answer based varying char dcl 42 set ref 134* 136* ap1 000140 automatic pointer dcl 41 set ref 66* 134 136 arg based char unaligned dcl 33 set ref 83 100* 102* arglen 000130 automatic fixed bin(17,0) dcl 34 set ref 82* 83 94* 100 100 102 102 argptr 000126 automatic pointer dcl 34 set ref 82* 83 94* 100 102 code 000114 automatic fixed bin(35,0) dcl 30 set ref 66* 68 68 75* 82* 83 94* 95 96* 100* 101 com_err_ 000014 constant entry external dcl 22 ref 71 cu_$af_arg_ptr 000022 constant entry external dcl 26 ref 80 cu_$af_return_arg 000024 constant entry external dcl 27 ref 66 cu_$arg_ptr 000020 constant entry external dcl 25 ref 72 cv_oct_check_ 000026 constant entry external dcl 31 ref 100 cyl_per_dev 000044 constant fixed bin(17,0) initial array dcl 2-102 ref 122 device_names 000066 constant char(4) initial array dcl 2-66 set ref 86 87 89* 128* 130* divide builtin function dcl 47 ref 53 59 60 91 107 dvt 000132 automatic fixed bin(17,0) dcl 37 set ref 59 86* 87* 91 91 91 93 107 108 108 109 114 122 122 128 130 error_table_$not_act_fnc 000030 external static fixed bin(35,0) dcl 40 ref 68 getter 000104 automatic entry variable dcl 28 set ref 72* 80* 82 94 gripe 000110 automatic entry variable dcl 29 set ref 71* 79* 89 96 102 115 hbound builtin function dcl 47 ref 86 ioa_ 000010 constant entry external dcl 22 ref 128 130 ioa_$rsnnl 000012 constant entry external dcl 22 ref 134 136 mod builtin function dcl 47 ref 108 myname 000115 automatic char(32) unaligned dcl 32 set ref 65* 75* 89* 96* 102* 106 111 115* 120 128 134 134 142* 145* nafsw 000143 automatic bit(1) initial unaligned dcl 43 set ref 43* 70* 127 nargs 000136 automatic fixed bin(17,0) dcl 39 set ref 66* r 000170 automatic fixed bin(17,0) dcl 58 set ref 59* 60 rec parameter fixed bin(17,0) dcl 51 ref 50 52 rec_per_dev 000055 constant fixed bin(21,0) initial array dcl 2-87 ref 109 114 record 000100 automatic fixed bin(17,0) dcl 23 set ref 107* 109 113* 114 123* 124* 126* 128* 130* 134* sect parameter fixed bin(17,0) dcl 58 in procedure "phymul" ref 57 59 60 sect 000160 automatic fixed bin(17,0) dcl 51 in procedure "mulphy" set ref 52* 53* 53 53 54 sect_per_cyl 000033 constant fixed bin(17,0) initial array dcl 3-15 ref 59 91 93 122 sect_per_rec 000022 constant fixed bin(17,0) initial array dcl 3-21 ref 91 91 sect_per_vtoc 000011 constant fixed bin(17,0) initial array dcl 3-26 ref 108 sector 000101 automatic fixed bin(17,0) dcl 23 set ref 108* 112* 124* 126 128* 130* seek_command 000146 automatic bit(6) initial array unaligned dcl 2-84 set ref 2-84* 2-84* 2-84* 2-84* 2-84* 2-84* 2-84* 2-84* 2-84* targ 000134 automatic char(8) unaligned dcl 38 set ref 83* 83* 84 84* 85 85* 87 89* unusable 000145 automatic fixed bin(17,0) dcl 45 set ref 53 59 93* usable 000144 automatic fixed bin(17,0) dcl 45 set ref 53 91* 93 vtoc_per_rec 000000 constant fixed bin(17,0) initial array dcl 3-29 ref 107 108 vtocx 000131 automatic fixed bin(17,0) dcl 36 set ref 100* 107 108 113 115* 121 128* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 1-54 DUMPER_BIT_MAP_ADDR internal static fixed bin(17,0) initial dcl 1-54 LABEL_ADDR internal static fixed bin(17,0) initial dcl 1-54 MAX_VTOCE_PER_PACK internal static fixed bin(17,0) initial dcl 1-54 MODEL internal static fixed bin(17,0) initial array dcl 2-57 MODELN internal static fixed bin(17,0) initial array dcl 2-63 MODELX internal static fixed bin(17,0) initial array dcl 2-60 PAGE_SIZE internal static fixed bin(17,0) initial dcl 1-67 SECTORS_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-74 SECTORS_PER_VTOCE internal static fixed bin(17,0) initial array dcl 1-70 VOLMAP_ADDR internal static fixed bin(17,0) initial dcl 1-54 VTOCES_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-72 VTOCE_SIZE internal static fixed bin(17,0) initial dcl 1-68 VTOC_MAP_ADDR internal static fixed bin(17,0) initial dcl 1-54 bulkdevt internal static fixed bin(4,0) initial dcl 2-43 cyl_per_sv internal static fixed bin(17,0) initial array dcl 2-105 dev_time internal static float bin(27) initial array dcl 2-139 dsu181devt internal static fixed bin(4,0) initial dcl 2-43 dsu190devt internal static fixed bin(4,0) initial dcl 2-43 dsu191devt internal static fixed bin(4,0) initial dcl 2-43 fips3380devt internal static fixed bin(4,0) initial dcl 2-43 fips3381devt internal static fixed bin(4,0) initial dcl 2-43 fips_type_disk internal static bit(1) initial array unaligned dcl 2-72 first_alt_sect_num internal static fixed bin(24,0) initial array dcl 2-130 first_dev_number internal static fixed bin(17,0) initial array dcl 2-69 first_rec_num internal static fixed bin(17,0) initial array dcl 2-115 first_sect_num internal static fixed bin(24,0) initial array dcl 2-124 last_alt_sect_num internal static fixed bin(24,0) initial array dcl 2-133 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 2-136 last_rec_num internal static fixed bin(18,0) initial array dcl 2-118 last_sect_num internal static fixed bin(24,0) initial array dcl 2-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 2-121 maxdevt internal static fixed bin(4,0) initial dcl 2-43 media_removable internal static bit(1) initial array unaligned dcl 2-75 msu0400devt internal static fixed bin(4,0) initial dcl 2-43 msu0450devt internal static fixed bin(4,0) initial dcl 2-43 msu0451devt internal static fixed bin(4,0) initial dcl 2-43 msu0500devt internal static fixed bin(4,0) initial dcl 2-43 msu0501devt internal static fixed bin(4,0) initial dcl 2-43 needs_alt_part internal static bit(1) initial array unaligned dcl 2-81 number_of_sv internal static fixed bin(17,0) initial array dcl 2-93 rec_per_cyl internal static fixed bin(17,0) initial array dcl 2-108 rec_per_sv internal static fixed bin(17,0) initial array dcl 2-90 sect_per_sv internal static fixed bin(24,0) initial array dcl 3-18 sect_per_track internal static fixed bin(17,0) initial array dcl 3-33 shared_spindle internal static bit(1) initial array unaligned dcl 2-78 tracks_per_cyl internal static fixed bin(17,0) initial array dcl 2-111 valid_sv_array internal static char(1) initial array unaligned dcl 2-99 valid_sv_string internal static char(3) initial unaligned dcl 2-96 words_per_sect internal static fixed bin(17,0) initial array dcl 3-36 NAMES DECLARED BY EXPLICIT CONTEXT. gotdvt 000533 constant label dcl 91 ref 87 gtarg 000324 constant label dcl 66 ref 143 146 mulphy 001233 constant entry internal dcl 50 ref 124 126 phymul 001250 constant entry internal dcl 57 ref 123 record_to_sector 001206 constant entry external dcl 141 sector_to_record 001221 constant entry external dcl 144 toobig 000716 constant label dcl 115 ref 109 122 vtocx_to_record 000313 constant entry external dcl 20 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1444 1476 1304 1454 Length 1750 1304 32 235 140 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vtocx_to_record 199 external procedure is an external procedure. mulphy internal procedure shares stack frame of external procedure vtocx_to_record. phymul internal procedure shares stack frame of external procedure vtocx_to_record. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vtocx_to_record 000100 record vtocx_to_record 000101 sector vtocx_to_record 000102 abssec vtocx_to_record 000104 getter vtocx_to_record 000110 gripe vtocx_to_record 000114 code vtocx_to_record 000115 myname vtocx_to_record 000126 argptr vtocx_to_record 000130 arglen vtocx_to_record 000131 vtocx vtocx_to_record 000132 dvt vtocx_to_record 000134 targ vtocx_to_record 000136 nargs vtocx_to_record 000140 ap1 vtocx_to_record 000142 al1 vtocx_to_record 000143 nafsw vtocx_to_record 000144 usable vtocx_to_record 000145 unusable vtocx_to_record 000146 seek_command vtocx_to_record 000160 sect mulphy 000170 r phymul THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var_desc call_ent_var call_ext_out_desc call_ext_out return_mac mdfx1 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_arg_ptr cu_$af_return_arg cu_$arg_ptr cv_oct_check_ ioa_ ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$not_act_fnc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 43 000220 2 84 000221 20 000312 65 000321 66 000324 68 000341 70 000346 71 000350 72 000354 73 000357 75 000360 76 000400 77 000401 79 000402 80 000407 82 000412 83 000430 83 000440 84 000442 85 000452 86 000461 87 000467 88 000474 89 000476 90 000532 91 000533 93 000540 94 000543 95 000561 96 000563 97 000577 100 000600 101 000624 102 000626 103 000661 106 000662 107 000666 108 000673 109 000700 110 000703 111 000704 112 000710 113 000711 114 000713 115 000716 116 000751 120 000752 121 000756 122 000760 123 000765 124 000767 125 000774 126 000775 127 001002 128 001004 130 001047 131 001102 134 001103 136 001150 139 001204 141 001205 142 001214 143 001217 144 001220 145 001227 146 001232 50 001233 52 001235 53 001240 54 001246 57 001250 59 001252 60 001257 ----------------------------------------------------------- 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