DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 23226 (0x5aba) Types: TextFile Names: »INIT.P«
└─⟦e0c43619c⟧ Bits:30005797 CR80 Disc pack ( Vol:FNJ1 861029/EC CR80 S/W Package II+III+IV+V+VII ) └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_CRAM.D!INIT.P«
Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 1 Source: INIT.S ======== INIT.S 00.00001 "-------------------------------------------------------------------- 00.00002 " 00.00003 " PROJECT: AMOS 00.00004 " 00.00005 " MODULE NAME: CR File System, adaption and initialize module 00.00006 " MODULE ID NMB: CSS/920 00.00007 " MODULE VERSION: 0601 00.00008 " MODULE TYPE: MAIN MODULE 00.00009 " MODULE FILES: S 00.00010 " IO.I 00.00011 " CONFIG.S 00.00012 " GENS.D*COMON_IF.I 00.00013 " MERGE FILES: @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S 00.00014 " @**GENS.D*SWELLPREFIX.D*X2GENPARAMS.S 00.00015 " @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S 00.00016 " 00.00017 " SPECIFICATIONS: CR80 AMOS, File Management System, SPS, 00.00018 " CSS/920/SPS/0001. 00.00019 " AUTHOR/DATE: GMC/810410 00.00020 " 00.00021 " DELIVERABLE: YES 00.00022 " SOURCE LANGUAGE: SWELL 00.00023 " COMPILE COMPUTER: CR80 00.00024 " TARGET COMPUTER: CR80 00.00025 " OPERATING SYSTEM: AMOS 00.00026 " 00.00027 "-------------------------------------------------------------------- 00.00028 " 00.00029 " CHANGE RECORD 00.00030 " 00.00031 " VERSION AUTHOR/DATE DESCRIPTION OF CHANGE 00.00032 " ------- ----------- --------------------- 00.00033 " 00.00034 " 0001 NMJ/800919 Pre-release 00.00035 " 0101 GMC/801231 First official release. «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 2 Source: INIT.S 00.00036 " 0103 GMC/810223 Check of sectors available introduced. 00.00037 " 0202 GMC/810401 Minor changes to source text layout. 00.00038 " 0301 GMC/810706 Minor change to init-dcm parameters. 00.00039 " 0402 GMC/820210 A new configuration parameter, OC_output, 00.00040 " is introduced, which defines whether or 00.00041 " not INIT should write on the OC. 00.00042 " 0403 EKH/820501 Process size is fetched from iodata-ref 00.00043 " rather than from bound, for XAMOS 00.00044 " 0501 GMC/820709 The FMS no longer prints its version number. 00.00045 " 0601 JAS/830927 The coroutine monitor is accessed via the 00.00046 " coroutine-monitor-interface. 00.00047 " Parameters are given in a record rather 00.00048 " than constant parameters. 00.00049 " 00.00050 "-------------------------------------------------------------------- 00.00051 " «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 3 Source: INIT.S 00.00052 00.00052 00.00053 00.00054 MAINMODULE FMS_INIT_0601; 00.00055 "-------------------------" 00.00056 00.00057 00.00058 00.00059 %XREF %XREF %XREF 00.00060 %SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S ======== GENERALPARAMS.S ======== INIT.S 00.00061 %SOURCE @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S ======== MONITORNAMES.S ======== INIT.S 00.00062 %SOURCE @**GENS.D*SWELLPREFIX.D*X2GENPARAMS.S ======== X2GENPARAMS.S ======== INIT.S 00.00063 %SOURCE GENS.D*COMON_IF.I ======== COMON_IF.I ======== INIT.S 00.00064 00.00065 %PRINT 00.00066 %LIST 00.00067 %SOURCE GENS.D*INIT_DEFNS.S ======== INIT_DEFNS.S «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 4 Source: INIT_DEFNS.S 05.00001 "Init record definition, used by all configurable modules of the File System" 05.00002 "---------------------------------------------------------------------------" 05.00003 05.00004 "JAS / 84 04 11" 05.00005 05.00006 05.00007 05.00008 type 05.00009 port_priority = "used by ctrl 05.00010 (low_pri, 05.00011 normal_pri, 05.00012 high_pri); 05.00013 05.00014 type 05.00015 dma_port_spec = "used by ctrl 05.00016 record 05.00017 name : pname; 05.00018 ports : array [port_priority] of integer; 05.00019 end; 05.00020 05.00021 type 05.00022 init_fms = 05.00023 record 05.00024 nbr_fhs, "used by fm & dcm 05.00025 nbr_chs, "used by cram 05.00026 nbr_ths, "used by tqm & dcm 05.00027 nbr_local_ports, "used by ctrl 05.00028 nbr_dmas, "used by ctrl 05.00029 dma_port_spec_table_ptr, "used by ctrl 05.00030 nbr_fd_drvs, "used by fm 05.00031 fd_name_ptr, "used by fm 05.00032 nbr_cdc_drvs, "used by fm 05.00033 cdc_name_ptr, "used by fm 05.00034 nbr_ucbs, "used by fm 05.00035 nbr_dcbs, "used by fm 05.00036 nbr_fcbs, "used by fm 05.00037 nbr_caps, "used by fm 05.00038 time_update, "used by fm 05.00039 access_time_update, "used by fm 05.00040 nbr_dbcbs, "used by dcm 05.00041 cramteststacksize, "used by cram 05.00042 cram_init_table_ptr, "used by cram «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 5 Source: INIT_DEFNS.S 05.00043 cache_size, "used by fm, dcm & ctrl 05.00044 OC_output "used by init 05.00045 : integer; 05.00046 port_group_names "used by ctrl 05.00047 : array [port_priority] of group_name; 05.00048 end; 05.00049 ======== INIT.S 00.00068 00.00069 import var 00.00070 sectors_available : integer; 00.00071 00.00072 var 00.00073 init_corout : coroutine_descriptor; 00.00074 init_sem : semaphore; 00.00075 init_fms_params : init_fms; 00.00076 00.00077 00.00078 procedure init_sys(r6); "registers destroyed" 00.00079 00.00080 " First the process size of the FMS is checked by calling a procedure in 00.00081 " all modules giving the accumulated size of the required workspace 00.00082 " and comparing this to the free workspace. 00.00083 " Conventions for size_procedure calls 00.00084 " 00.00085 " r5 ptr to a record of type init_fms (kept) 00.00086 " r3 updated with the size of the module 00.00087 " r6 link 00.00088 " other registers, except r4, may be destroyed 00.00089 " 00.00090 " Then all modules in the system are activated by calling their initialize procedures. 00.00091 " Each module should initialize its own data structures, including coroutines 00.00092 " and semaphores. 00.00093 " Workarea may be allocated from the common workarea pool. 00.00094 " Conventions for initialize procedure calls: 00.00095 " 00.00096 " r5 ptr to a record of type init_fms (kept) 00.00097 " r0 top of free workarea pool (kept) 00.00098 " r4 call: 00.00099 " first free of workarea when called «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 6 Source: INIT.S 00.00100 " return: 00.00101 " first free of workarea; 00.00102 " on return, >> r0 implies workarea is too small 00.00103 " r6 link 00.00104 " other registers may be destroyed 00.00105 "page «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 7 Source: INIT.S 00.00106 00.00106 %SOURCE CONFIG.S ======== CONFIG.S 06.00001 "Configuration parameters" 06.00002 "------------------------" 06.00003 06.00004 06.00005 const 06.00006 06.00007 nbr_fhs = 4; "number of file handlers 06.00008 nbr_chs = 1; "number of CRAM handlers 06.00009 nbr_ths = 0; "number of transaction handlers 06.00010 06.00011 nbr_local_ports = 20; 06.00012 nbr_dmas = 0; "the number of DMA drivers, that the ctrl can 06.00013 "communicate with; 06.00014 "the names are specified in the table below. 06.00015 06.00016 nbr_fd_drvs = 1; "number of floppy disk drivers that the FMS can use; 06.00017 "the names are specified in the table below. 06.00018 nbr_cdc_drvs= 2; "number of CDC disk drivers that the FMS can use; 06.00019 "the names are specified in the table below. 06.00020 06.00021 nbr_ucbs = 65; "number of user control blocks: represents the 06.00022 "maximum number of processes that can use the FMS 06.00023 "at a time 06.00024 nbr_dcbs = 8; "number of device control blocks: represents the 06.00025 "maximum number of devices that may be assigned 06.00026 "at a time 06.00027 nbr_fcbs =160; "number of file control blocks: represents the 06.00028 "maximum number of files that may be open 06.00029 "at a time 06.00030 nbr_caps =230; "number of capabilities: represents the max nbr of 06.00031 "connections between files and users that may exist 06.00032 "at a time (and hence must be >= nbr_fcbs) 06.00033 06.00034 time_update =true; "should the file manager update the disk_time_stamps? 06.00035 access_time_update =false; "should the acces_time stamp be updated? 06.00036 06.00037 nbr_dbcbs = 2; "number of database control blocks: represents the «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 8 Source: CONFIG.S 06.00038 "maximum number of databases that may be used 06.00039 "at a time 06.00040 06.00041 cramteststacksize = 0; 06.00042 06.00043 cache_size = 58; "number of sectors in the cache: increasing this 06.00044 "value should increase efficiency, but it also 06.00045 "increases the workarea required by the FMS process; 06.00046 "normally it should be set to a low value to begin 06.00047 "with (25 for example), then the system should be 06.00048 "configured to give the FMS as large a process space 06.00049 "as possible, while still keeping it and the disk 06.00050 "drivers in the same memory section, then the cache 06.00051 "size can be increased so that the excessive process 06.00052 "space is minimal. 06.00053 06.00054 OC_output = true; 06.00055 OC_init = OC_output ior true; 06.00056 06.00057 var 06.00058 dma_port_spec_table: array [0..size(dma_port_spec)*nbr_dmas] of integer; 06.00059 "Each entry consisting of the dma process name, and the nbr of 06.00060 "ports for low, medium and high priority, respectively. 06.00061 06.00062 init 06.00063 dma_port_spec_table= 06.00064 -1; "table terminator 06.00065 06.00066 init 06.00067 init_fms_params.port_group_names= 06.00068 'SLOW', 06.00069 'FILE', 06.00070 'FAST'; 06.00071 06.00072 var 06.00073 fd_names : array [0..nbr_fd_drvs*size(pname)] of integer; 06.00074 "Each entry specifies the name of a floppy disk driver process to be used. 06.00075 06.00076 init 06.00077 fd_names= 06.00078 'FDD000', 06.00079 0; "table terminator «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 9 Source: CONFIG.S 06.00080 06.00081 var 06.00082 cdc_names : array [0..nbr_cdc_drvs*size(pname)] of integer; 06.00083 "Each entry specifies the name of a cdc disk driver process to be used. 06.00084 06.00085 init 06.00086 cdc_names= 06.00087 'CDC000', 06.00088 'CDC001', 06.00089 0; "table terminator 06.00090 06.00091 var 06.00092 cram_init_table: array [0..nbr_chs+nbr_dbcbs] of integer; 06.00093 "One entry per CRAM handler. An entry consists of the blocksize (in 06.00094 "bytes, 512*n) + no of extra (allocate) buffers, followed by the 06.00095 "identification number of each dbcb that is to be handled by handler. 06.00096 06.00097 init 06.00098 cram_init_table= 06.00099 3072+14,0,1, " 3.0 K handler with 14 extra buffers, dbcb 0+1. 06.00100 -1; "table terminator 06.00101 06.00102 ======== INIT.S 00.00107 00.00108 %SOURCE IO.I ======== IO.I 07.00001 "Process termination procedures" 07.00002 "------------------------------" 07.00003 07.00004 "JAS / 83 11 29" 07.00005 07.00006 07.00007 07.00008 import procedure terminate_me 07.00009 (r0; " C - completion code 07.00010 r1; " C - secondary completion code 07.00011 r6);" C - pseudo link «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 10 Source: IO.I 07.00012 07.00013 07.00014 07.00015 "Procedures to handle Input and Output to the Operators Console" 07.00016 "--------------------------------------------------------------" 07.00017 07.00018 "JAS / 83 12 15" 07.00019 07.00020 07.00021 07.00022 import procedure init_oc(r1; "destroyed 07.00023 r6); "link 07.00024 07.00025 import procedure out_text(r2; "address of text to be output 07.00026 r6 "link"); 07.00027 07.00028 import procedure out_line(r1; "address of text to be output 07.00029 r2; "number of bytes to be output 07.00030 r6 "link"); 07.00031 07.00032 import procedure out_hexa(r2; "integer to be output 07.00033 r6 "link"); 07.00034 07.00035 import procedure out_integer(r2; "integer to be output 07.00036 r6 "link"); 07.00037 07.00038 import procedure out_long(r12; "long integer to be output 07.00039 r6 "link"); 07.00040 ======== INIT.S 00.00109 00.00110 init 00.00111 init_fms_params.nbr_fhs = nbr_fhs; 00.00112 init_fms_params.nbr_chs = nbr_chs; 00.00113 init_fms_params.nbr_ths = nbr_ths; 00.00114 init_fms_params.nbr_local_ports = nbr_local_ports; 00.00115 init_fms_params.dma_port_spec_table_ptr = address (dma_port_spec_table); 00.00116 init_fms_params.nbr_dmas = nbr_dmas; 00.00117 init_fms_params.nbr_fd_drvs = nbr_fd_drvs; 00.00118 init_fms_params.fd_name_ptr = address(fd_names); «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 11 Source: INIT.S 00.00119 init_fms_params.nbr_cdc_drvs = nbr_cdc_drvs; 00.00120 init_fms_params.cdc_name_ptr = address(cdc_names); 00.00121 init_fms_params.nbr_ucbs = nbr_ucbs; 00.00122 init_fms_params.nbr_dcbs = nbr_dcbs; 00.00123 init_fms_params.nbr_fcbs = nbr_fcbs; 00.00124 init_fms_params.nbr_caps = nbr_caps; 00.00125 init_fms_params.time_update = time_update; 00.00126 init_fms_params.access_time_update = access_time_update and time_update; 00.00127 init_fms_params.nbr_dbcbs = nbr_dbcbs; 00.00128 init_fms_params.cramteststacksize = cramteststacksize; 00.00129 init_fms_params.cram_init_table_ptr = address(cram_init_table); 00.00130 init_fms_params.cache_size = cache_size; 00.00131 00.00132 00.00133 "Submodule initialisation procedures 00.00134 "----------------------------------- 00.00135 00.00136 import procedure size_ctrl(r5; r3; r6); 00.00137 import procedure init_ctrl(r5; r0; r4; r6); 00.00138 00.00139 import procedure size_dcm (r5; r3; r6); 00.00140 import procedure init_dcm (r5; r0; r4; r6); 00.00141 00.00142 import procedure size_fm (r5; r3; r6); 00.00143 import procedure init_fm (r5; r0; r4; r6); 00.00144 00.00145 %WHEN nbr_ths = 0 SKIP 00.00146" import procedure init_tqm(nbr_ths : integer; 00.00147" r0; r4; r6); 00.00148"%COMPILE 00.00149 00.00150 %WHEN nbr_chs = 0 SKIP 00.00151 import procedure init_cram(cramteststacksize : integer; 00.00152 cram_init_table_ptr : pointer; 00.00153 r0; r4; r6); 00.00154 %COMPILE 00.00155 00.00156 00.00157 00.00158 label 00.00159 term_small, 00.00160 ctrl_small, «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 12 Source: INIT.S 00.00161 dcm_small, 00.00162 fm_small, 00.00163 tqm_small, 00.00164 cram_small; 00.00165 00.00166 %WHEN OC_init = false SKIP 00.00167 const 00.00168 ws_txt = ' workarea size (:0:)'; 00.00169 es_txt = 'Excessive process space (:0:)'; 00.00170 ms_txt = ' Missing : (:0:)'; 00.00171 nl_txt = '(:10:)(:0:)(:0:)'; 00.00172 is_txt = 'Insufficient space for (:0:)'; 00.00173 %COMPILE 00.00174 00.00175 var 00.00176 link:integer; 00.00177 00.00178 begin "init sys 00.00179 r6=> link; 00.00180 00.00181 %WHEN OC_init = false SKIP 00.00182 init_oc(r1, r6); 00.00183 out_text(address('FMS active(:10:)(:0:)')=>r2, r6); 00.00184 %COMPILE 00.00185 00.00186 address (init_fms_params) => r5; 00.00187 0 => r3; 00.00188 size_dcm (r5, r3, r6); 00.00189 %WHEN oc_init = false SKIP 00.00190 out_text(address('DCM (:0:)')=>r2, r6); 00.00191 out_text(address(ws_txt)=>r2, r6); 00.00192 out_hexa(r3=>r2, r6); 00.00193 r3 => r4; 00.00194 %COMPILE 00.00195 size_ctrl(r5, r3, r6); 00.00196 %WHEN oc_init = false SKIP 00.00197 r3 => r1 - r4; 00.00198 out_text(address('(:10:)CTRL(:0:)')=>r2, r6); 00.00199 out_text(address(ws_txt)=>r2, r6); 00.00200 out_hexa(r1=>r2, r6); 00.00201 r3 => r4; 00.00202 %COMPILE «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 13 Source: INIT.S 00.00203 size_fm (r5, r3, r6); 00.00204 %WHEN oc_init = false SKIP 00.00205 r3 => r1 - r4; 00.00206 out_text(address('(:10:)FM (:0:)')=>r2, r6); 00.00207 out_text(address(ws_txt)=>r2, r6); 00.00208 out_hexa(r1=>r2, r6); 00.00209 out_text(address(nl_txt)=>r2, r6); 00.00210 %COMPILE 00.00211 00.00212 -size(process_head)=> r6; 00.00213 r6@process_head.iodata_ref=> r0; "XAMOS, uses iodata_ref rather than bound" 00.00214 r6@process_head.gen_head.word_size=> r4 + r6; 00.00215 00.00216 r0 => r6 - r4; 00.00217 if r6 << r3 then 00.00218 begin 00.00219 r3 - r6; 00.00220 %WHEN OC_init = false SKIP 00.00221 out_text (address('FMS workarea too small.(:0:)')=>r2, r6); 00.00222 out_text (address(ms_txt)=>r2, r6); 00.00223 out_hexa (r3=>r2, r6); 00.00224 out_text (address(nl_txt)=>r2, r6); 00.00225 %COMPILE 00.00226 terminate_me (#333=>r0, r3=>r1, r6); 00.00227 %WHEN OC_init = false SKIP 00.00228 end 00.00229 else 00.00230 begin 00.00231 r3 - r6; -r3; 00.00232 out_text (address(es_txt)=>r2, r6); 00.00233 out_text (address('(before CRAM) (:0:)')=>r2, r6); 00.00234 out_hexa (r3=>r2, r6); 00.00235 out_text (address('(:10:)(:0:)')=>r2, r6); 00.00236 %COMPILE 00.00237 end; 00.00238 00.00239 r0=> r6; 00.00240 while r6-1 >>= r4 do clr(r6@integer); "clear workarea" 00.00241 00.00242 init_dcm (r5, r0, r4, r6); 00.00243 if r0 << r4 then goto dcm_small; 00.00244 «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 14 Source: INIT.S 00.00245 init_ctrl(r5, r0, r4, r6); 00.00246 if r0 << r4 then goto ctrl_small; 00.00247 00.00248 init_fm (r5, r0, r4, r6); 00.00249 if r0 << r4 then goto fm_small; 00.00250 00.00251 %WHEN nbr_ths = 0 SKIP 00.00252" init_tqm(nbr_ths, r0, r4, r6); 00.00253" if r0 << r4 then goto tqm_small; 00.00254"%COMPILE 00.00255 00.00256 %WHEN nbr_chs = 0 SKIP 00.00257 init_cram(cramteststacksize, address(cram_init_table), r0, r4, r6); 00.00258 if r0 << r4 then goto cram_small; 00.00259 %COMPILE 00.00260 00.00261 if sectors_available => r1 < 0 then 00.00262 begin 00.00263 -r1; 00.00264 %WHEN OC_init = false SKIP 00.00265 out_text(address('Insufficient cache size.(:0:)')=> r2, r6); 00.00266 out_text(address(ms_txt)=>r2, r6); 00.00267 out_hexa (r1=>r2, r6); 00.00268 out_text (address(nl_txt)=>r2, r6); 00.00269 %COMPILE 00.00270 terminate_me (#332 => r0, r1, r6) 00.00271 end; 00.00272 00.00273 %WHEN OC_output = false SKIP 00.00274 if r4 << r0 then 00.00275 begin 00.00276 out_text (address(es_txt)=>r2, r6); 00.00277 out_text (address('(final) (:0:)')=>r2, r6); 00.00278 out_hexa(r0-r4=>r2, r6); 00.00279 out_text(address(nl_txt)=>r2, r6); 00.00280 end; 00.00281 %COMPILE 00.00282 00.00283 exit(link); 00.00284 00.00285 dcm_small: 00.00286 %WHEN OC_init = false SKIP «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 15 Source: INIT.S 00.00287 address('DCM(:10:)(:0:)') => r3; 00.00288 %COMPILE 00.00289 1 => r1; 00.00290 goto term_small; 00.00291 ctrl_small: 00.00292 %WHEN OC_init = false SKIP 00.00293 address('CTRL(:10:)(:0:)') => r3; 00.00294 %COMPILE 00.00295 2 => r1; 00.00296 goto term_small; 00.00297 fm_small: 00.00298 %WHEN OC_init = false SKIP 00.00299 address('FM(:10:)(:0:)') => r3; 00.00300 %COMPILE 00.00301 3 => r1; 00.00302 goto term_small; 00.00303 tqm_small: 00.00304 %WHEN OC_init = false SKIP 00.00305 address('TQM(:10:)(:0:)') => r3; 00.00306 %COMPILE 00.00307 4 => r1; 00.00308 goto term_small; 00.00309 cram_small: 00.00310 %WHEN OC_init = false SKIP 00.00311 address('CRAM(:10:)(:0:)') => r3; 00.00312 %COMPILE 00.00313 5 => r1; 00.00314 term_small: 00.00315 %WHEN OC_init = false SKIP 00.00316 out_text(address(is_txt)=>r2, r6); 00.00317 out_text(r3=>r2, r6); 00.00318 %COMPILE 00.00319 terminate_me (#331=>r0, r1, r6); 00.00320 00.00321 end "init_sys"; 00.00322 00.00323 00.00324 00.00325 begin "main program" 00.00326 cm_init (address(init_corout)=>r0, r7, r6); 00.00327 init_sys(r6); 00.00328 sem_init (address(init_sem)=>r5, r7, r6); «ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 16 Source: INIT.S 00.00329 cm_wait (r5, r7, r6); "wait forever" 00.00330 end; 00.00331 00.00332 00.00333 ENDMODULE«ff»Swell Compiler Version 0406 5.Nov.1984 14:09:08 Page: 17 Messages LINES: 1205 CODESIZE VARSIZE CONSTSIZE TEMPSIZE -------- ------- --------- -------- #00D2 #0038 #0070 #0000 SWELL VARIABLES: ===========BLOCK: 00.00078 INIT_SYS 004F 0000 CDC_NAMES 0056 0000 CRAM_INIT_TABLE 004A 0000 DMA_PORT_SPEC_TABLE 004B 0000 FD_NAMES 005A 0000 LINK ===========BLOCK: 00.00054 FMS_INIT_0601 0023 0000 INIT_COROUT 002F 0000 INIT_FMS_PARAMS 002C 0000 INIT_SEM 0000 0004 SECTORS_AVAILABLE