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

⟦aa3b5eb57⟧ TextFile

    Length: 8962 (0x2302)
    Types: TextFile
    Names: »MTCB_DATAINIT.S«

Derivation

└─⟦ffe699cee⟧ Bits:30005101 8" CR80 Floppy CR80FD_0060 ( VOL: SCC.V NSC Directories: EVR.D OCP.D SCCINIT.D )
    └─⟦9c1658a4c⟧ 
        └─ ⟦this⟧ »SCCINIT.D!MTCB_DATAINIT.S« 

TextFile

"===================================================================="
"--------------------------------------------------------------------"
"                                                                    "
"    PROCEDURE NAME:   MTCB_DATAINIT                                 "
"              NUMBER: 08.00.00                                      "
"                                                                    "
"    SUBSYSTEM NAME:   -                                             "
"                                                                    "
"    COPYRIGHT: CHRISTIAN ROVSING A/S                                "
"                                                                    "
"    CF/800804   RELEASE: 01  VERSION: 00                            "
"                                                                    "
"--------------------------------------------------------------------"
"                                                                    "
"    FUNCTION:                                                       "
"             INITIALIZES THE DATA AREA USED BY THE MTCB MONITOR     "
"                                                                    "
"    INPUT:                                                          "
"             TAKEN FROM CONFIGURATION TABLE ON PAGE 1,              "
"             WORD 0 CONTAINS POINTER TO MTCB RECORD TYPE MTCB1      "
"                                                                    "
"    OUTPUT:                                                         "
"             INITIALIZED MTCB DATA AREA                             "
"                                                                    "
"--------------------------------------------------------------------"
"                                                                    "
"    USE OF REGISTERS:                                               "
"                                                                    "
"             CALL:                  RETURN:                         "
"        R0: -                       KEPT                            "
"        R1: -                       KEPT                            "
"        R2: -                       KEPT                            "
"        R3: -                       KEPT                            "
"        R4: -                       KEPT                            "
"        R5: -                       KEPT                            "
"        R6: LINK                    KEPT                            "
"        R7:  -                      KEPT                            "
"                                                                    "
"        USE OF RETURN POINTS:                                       "
"        LINK:  DONE                                                 "
"                                                                    "
"--------------------------------------------------------------------"
"                                                                    "
"    LIST OF PROCEDURES CALLED: NONE                                 "
"                                                                    "
"--------------------------------------------------------------------"
"                                                                    "
"    MODIFICATIONS: -                                                "
"                                                                    "
"--------------------------------------------------------------------"
"===================================================================="



SUBMODULE MTCB_DATAINIT;


%SOURCE @**USERS.D*CF.D*MTCB_TYPES.S


EXPORT PROCEDURE MTCB_DATAINIT               "CALLED BY ESP PROCESS
                               (R6);         "LINK



VAR
  SAVE: ARRAY[0..7] OF INTEGER;

"     SUBSYSTEM UPDATE MASKS
"---------------------------

CONST
  US1=             #0000;          "  READ ONLY ACCESS
  US2=             #0780;          "  WRITE USERWORDS(4-7)
  US3=             #0180;          "  NSS ACCESS
  US4=             #07B1;          "  WRITE CONTROL MSG. PAR.
  US5=             #07BF;          "  WRITE NARRATIVE MSG. PAR
  US6=             #07FF;          "  WRITE ALL

«ff»"PAGE
BEGIN

"********************************************"
"                                            "
"  INITIALIZATION OF BASIC POINTERS          "
"                                            "
"********************************************"

  R7=>SAVE[7];
  STC(6,ADDRESS(SAVE[7])=>R7);
  SVS(R1);                                   "GET PSW
  R1=>R3;
  SETS (R3,2=>R7);                           "SET BIT 2
  CLRS (R3,3=>R7);                           "CLEAR BIT 3, PAGE 1 DEFINED
  R3 IOR (#E000=>R7);                        "SET DISABLE INTERRUPTS
  8@INTEGER=>R2;
  LDS(R3);                                   "CHANGE TO PAGE 1
  (-R2)@INTEGER=>R6+R2;                      "POINTER MTCB1 DATA TO R6
  R6@MTCB1.PAGE=>R7;
  R6@MTCB1.OFFS=>R5+R2;
  R3=>R4;
  CLRS (R3,2=>R0); R3 IOR (R7 SHIFTLL 2);    "MTCB PSW IN R3
  R6@MTCB1.MPCB=>R0;
  R6@MTCB1.MPROC=>R7;
  LDS(R3);                                   "CHANGE TO MTCB DATA PAGE
  R0=>R5@MTCB2.MPCB;
  R7=>R5@MTCB2.MPROC;
  ADDRESS(R5@MTCB2.SEM)=>R0+1-R2;            "R0 = ABS PPCBI0
  R0=>R5@MTCB2.PPCBI0;
  R0+1+R5@MTCB2.MPCB=>R5@MTCB2.PSAAR1;
  0=>R7=>R5@MTCB2.SAARWUS;
  LDS(R4);                                   "BACK TO PAGE 1
  R6@MTCB1.NMTCB=>R4;
  R6@MTCB1.NPDB=>R7;
  R6@MTCB1.NIMF=>R6;
  LDS(R3);                                   "TO MTCB DATA PAGE AGAIN
  R4=>R5@MTCB2.NMTCB;
  R6=>R5@MTCB2.NIMF;
  R7=>R5@MTCB2.NPDB;
  R5@MTCB2.MPROC=>R7 SHIFTLL 4;              "16*MPROC IN R7
  R0+R7=>R5@MTCB2.PUPMASK;
  R0+6=>R5@MTCB2.PMTCB;
  R4=>R7 SHIFTLL 3 +R4;                      "9*NMTCB IN R7
  R0+R7=>R5@MTCB2.PIMF;
  R0+R6=>R5@MTCB2.PPDB;
  6=>R7=>R5@MTCB2.NSUBSYS;
  1=>R7=>R5@MTCB2.IFFMTCB;
  R7=>R5@MTCB2.IFFIMF;
  R7=>R5@MTCB2.IFFPDB;

  R0+R5@MTCB2.NPDB+R2;
  ADDRESS(R5@MTCB2.SEM)=>R7; R0-1;
  WHILE R7<R0 DO
    0=>(R7+1)@INTEGER;                       "FILL MTCB AREA WITH ZEROES


«ff»"PAGE
"********************************************"
"                                            "
"  INITIALIZATION OF PCB INDEXED TABLE       "
"                                            "
"********************************************"

  R5@MTCB2.PPCBI0=>R3+R2;
  R3-1=>R6+R5@MTCB2.MPCB;
    WHILE R6>=R3 DO
      0=>(R3+1)@INTEGER;                     "FILL PCB INDEXED TABLE_
                                             "WITH ZEROES


"********************************************"
"                                            "
"  INITIALIZATION OF SUBSYSTEMS UPDATE MASK  "
"                                            "
"********************************************"

  R5@MTCB2.PUPMASK=>R3+R2;
  US1=>R3@INTEGER;                            "FILLING
  US2=>(R3+1)@INTEGER;                      "UP
  US3=>(R3+1)@INTEGER;                      "SUB-
  US4=>(R3+1)@INTEGER;                     "SYSTEMS
  US5=>(R3+1)@INTEGER;                        "UPDATE
  US6=>(R3+1)@INTEGER;                        "MASK

«ff»"PAGE
"********************************************"
"                                            "
"  INITIALIZATION OF MTCB AREA               "
"                 AS A LINKED LIST           "
"                                            "
"********************************************"

  R5@MTCB2.NMTCB=>R4;
  R3-8;
  1=>R6;
  WHILE R6<R4 DO                             "FILL-IN
    R6+1=>(R3+9)@INTEGER;                    "INDEX LINKS IN MTCB WORD 0
  0=>(R3+9)@INTEGER;                         "LAST LINK=0


"********************************************"
"                                            "
"  INITIALIZATION OF LINKED IMF LIST         "
"                                            "
"********************************************"

  R5@MTCB2.NIMF=>R4;
  R3+8;
  1=>R6;
  WHILE R6<R4 DO                             "FILL-IN
    R6+1=>(R3+1)@INTEGER;                    "LINK INDICES
  0=>(R3+1)@INTEGER;                         "LAST LINK=0

"********************************************"
"                                            "
"  INITIALIZATION OF LINKED PDB LIST         "
"                                            "
"********************************************"

  R5@MTCB2.NPDB=>R4;
  1=>R6;
  WHILE R6<R4 DO                             "FILL-IN
    R6+1=>(R3+1)@INTEGER;                    "LINK INDICES
  0=>(R3+1)@INTEGER;                         "LAST LINK=0

«ff»"PAGE
"********************************************"
"                                            "
"  INITIALIZATION OF GLOBAL SEMAPHORE        "
"                                            "
"********************************************"

  0=>R7=>R5@MTCB2.SEM;

  LDS(R1);                                   "CHANGE TO OWN PAGE


  UNS(6,ADDRESS(SAVE[0])=>R7);
  SAVE[7]=>R7;

  EXIT(R6);

END "MTCB_DATAINIT";

ENDMODULE