DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦19bbbdae6⟧ TextFile

    Length: 23214 (0x5aae)
    Types: TextFile
    Names: »INIT.P«

Derivation

└─⟦8c095a7f3⟧ Bits:30005798 CR80 Disc Pack ( Vol ILS systemdisk XAMOS TOS 10:01 hard boot #43c 19-7-87/JFJ )
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!INIT.P« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!INIT.P« 
└─⟦c2e810e96⟧ Bits:30005799 CR80 Disc Pack ( XAMOS 841129 ILS TOS 10-01 System Disk Tilhører ILS/MSG hard boot boot entry #43c )
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!INIT.P« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!INIT.P« 

TextFile

Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page:  1     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»



======== INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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:           @**PREFIXES.D*MXAMOS.D*SWELL.D*GENERALPARAMS.S
00.00014 "                         @**PREFIXES.D*MXAMOS.D*SWELL.D*X2GENPARAMS.S
00.00015 "                         @**PREFIXES.D*MXAMOS.D*SWELL.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         3.Jun.1985  10:44:42      Page:  2     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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         3.Jun.1985  10:44:42      Page:  3     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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 @**PREFIXES.D*MXAMOS.D*SWELL.D*GENERALPARAMS.S

======== GENERALPARAMS.S«nul»


======== INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00061 %SOURCE @**PREFIXES.D*MXAMOS.D*SWELL.D*MONITORNAMES.S

======== MONITORNAMES.S«nul»«nul»


======== INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00062 %SOURCE @**PREFIXES.D*MXAMOS.D*SWELL.D*X2GENPARAMS.S

======== X2GENPARAMS.S«nul»«nul»«nul»


======== INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00063 %SOURCE GENS.D*COMON_IF.I

======== COMON_IF.I«nul»«nul»«nul»«nul»«nul»«nul»


======== INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00064 
00.00065 %PRINT
00.00066 %LIST
00.00067 %SOURCE GENS.D*INIT_DEFNS.S

======== INIT_DEFNS.S«nul»«nul»«nul»«nul»

«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page:  4     Source: INIT_DEFNS.S«nul»«nul»«nul»«nul»

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         3.Jun.1985  10:44:42      Page:  5     Source: INIT_DEFNS.S«nul»«nul»«nul»«nul»

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«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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         3.Jun.1985  10:44:42      Page:  6     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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         3.Jun.1985  10:44:42      Page:  7     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00106 
00.00106 %SOURCE CONFIG.S

======== CONFIG.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

06.00001 "Configuration parameters"
06.00002 "------------------------"
06.00003 
06.00004 
06.00005 const
06.00006 
06.00007   nbr_fhs = 4;  "number of file handlers, was 3
06.00008   nbr_chs = 0;  "number of CRAM handlers
06.00009   nbr_ths = 0;  "number of transaction handlers
06.00010 
06.00011   nbr_local_ports = 2;
06.00012   nbr_dmas =     1;  "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=  1;  "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    = 40;  "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    =  6;  "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    =150;  "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    =225;  "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 =true; "should the acces_time stamp be updated?
06.00036 
06.00037   nbr_dbcbs   =  0;  "number of database control blocks: represents the
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page:  8     Source: CONFIG.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

06.00038                      "maximum number of databases that may be used
06.00039                      "at a time
06.00040 
06.00041   cramteststacksize = 100;
06.00042 
06.00043   cache_size = 64;  "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   = false;
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                        'DMA000', 0 , 7, 0,
06.00065                        -1;  "table terminator
06.00066 
06.00067 init
06.00068   init_fms_params.port_group_names=
06.00069                        'SLOW',
06.00070                        'FILE',
06.00071                        'FAST';
06.00072 
06.00073 var
06.00074   fd_names : array [0..nbr_fd_drvs*size(pname)] of integer;
06.00075   "Each entry specifies the name of a floppy disk driver process to be used.
06.00076 
06.00077 init
06.00078   fd_names=
06.00079             'FDD000',
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page:  9     Source: CONFIG.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

06.00080             0;      "table terminator
06.00081 
06.00082 var
06.00083   cdc_names : array [0..nbr_cdc_drvs*size(pname)] of integer;
06.00084   "Each entry specifies the name of a cdc disk driver process to be used.
06.00085 
06.00086 init
06.00087   cdc_names=
06.00088             'CDC000',
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            -1;  "table terminator
06.00100 
06.00101 

======== INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00107 
00.00108 %SOURCE IO.I

======== IO.I«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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
07.00012 
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 10     Source: IO.I«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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);
00.00119   init_fms_params.nbr_cdc_drvs            = nbr_cdc_drvs;
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 11     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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,
00.00161   dcm_small,
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 12     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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
00.00203   size_fm  (r5, r3, r6);
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 13     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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 
00.00245   init_ctrl(r5, r0, r4, r6);
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 14     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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
00.00287   address('DCM(:10:)(:0:)') => r3;
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 15     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

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);
00.00329   cm_wait (r5, r7, r6);  "wait forever"
«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 16     Source: INIT.S«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»«nul»

00.00330 end;
00.00331 
00.00332 
00.00333 ENDMODULE«ff»Swell Compiler Version  0406         3.Jun.1985  10:44:42      Page: 17      Messages


LINES:    1213


      CODESIZE  VARSIZE  CONSTSIZE  TEMPSIZE
      --------  -------  ---------  --------
       #00BA     #0038     #0068     #0000


SWELL VARIABLES:


===========BLOCK: 00.00078 INIT_SYS
 0055 0000 CDC_NAMES
 0059 0000 CRAM_INIT_TABLE
 004A 0000 DMA_PORT_SPEC_TABLE
 0051 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 «a5»