|
|
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 - metrics - download
Length: 11240 (0x2be8)
Types: TextFile
Names: »MTCB_DATAINIT.P«
└─⟦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.P«
======== MTCB_DATAINIT.S
00.00001 "===================================================================="
00.00002 "--------------------------------------------------------------------"
00.00003 " "
00.00004 " PROCEDURE NAME: MTCB_DATAINIT "
00.00005 " NUMBER: 08.00.00 "
00.00006 " "
00.00007 " SUBSYSTEM NAME: - "
00.00008 " "
00.00009 " COPYRIGHT: CHRISTIAN ROVSING A/S "
00.00010 " "
00.00011 " CF/800804 RELEASE: 01 VERSION: 00 "
00.00012 " "
00.00013 "--------------------------------------------------------------------"
00.00014 " "
00.00015 " FUNCTION: "
00.00016 " INITIALIZES THE DATA AREA USED BY THE MTCB MONITOR "
00.00017 " "
00.00018 " INPUT: "
00.00019 " TAKEN FROM CONFIGURATION TABLE ON PAGE 1, "
00.00020 " WORD 0 CONTAINS POINTER TO MTCB RECORD TYPE MTCB1 "
00.00021 " "
00.00022 " OUTPUT: "
00.00023 " INITIALIZED MTCB DATA AREA "
00.00024 " "
00.00025 "--------------------------------------------------------------------"
00.00026 " "
00.00027 " USE OF REGISTERS: "
00.00028 " "
00.00029 " CALL: RETURN: "
00.00030 " R0: - KEPT "
00.00031 " R1: - KEPT "
00.00032 " R2: - KEPT "
00.00033 " R3: - KEPT "
00.00034 " R4: - KEPT "
00.00035 " R5: - KEPT "
00.00036 " R6: LINK KEPT "
00.00037 " R7: - KEPT "
00.00038 " "
00.00039 " USE OF RETURN POINTS: "
00.00040 " LINK: DONE "
00.00041 " "
00.00042 "--------------------------------------------------------------------"
00.00043 " "
00.00044 " LIST OF PROCEDURES CALLED: NONE "
00.00045 " "
00.00046 "--------------------------------------------------------------------"
00.00047 " "
00.00048 " MODIFICATIONS: - "
00.00049 " "
00.00050 "--------------------------------------------------------------------"
00.00051 "===================================================================="
00.00052
00.00053
00.00054
00.00055 SUBMODULE MTCB_DATAINIT;
00.00056
00.00057
00.00058 %SOURCE
======== MTCB_TYPES.S
======== MTCB_DATAINIT.S
00.00058
00.00059
00.00060
00.00061 EXPORT PROCEDURE MTCB_DATAINIT "CALLED BY ESP PROCESS
00.00062 (R6); "LINK
00.00063
00.00064
00.00065
00.00066 VAR
00.00067 SAVE: ARRAY[0..7] OF INTEGER;
00.00068
00.00069 " SUBSYSTEM UPDATE MASKS
00.00070 "---------------------------
00.00071
00.00072 CONST
00.00073 US1= #0000; " READ ONLY ACCESS
00.00074 US2= #0780; " WRITE USERWORDS(4-7)
00.00075 US3= #0180; " NSS ACCESS
00.00076 US4= #07B1; " WRITE CONTROL MSG. PAR.
00.00077 US5= #07BF; " WRITE NARRATIVE MSG. PAR
00.00078 US6= #07FF; " WRITE ALL
00.00079
00.00080 «ff»00.00081 "PAGE
00.00081 BEGIN
00.00082
00.00083 "********************************************"
00.00084 " "
00.00085 " INITIALIZATION OF BASIC POINTERS "
00.00086 " "
00.00087 "********************************************"
00.00088
00.00089 R7=>SAVE[7];
00.00090 STC(6,ADDRESS(SAVE[7])=>R7);
00.00091 SVS(R1); "GET PSW
00.00092 R1=>R3;
00.00093 SETS (R3,2=>R7); "SET BIT 2
00.00094 CLRS (R3,3=>R7); "CLEAR BIT 3, PAGE 1 DEFINED
00.00095 R3 IOR (#E000=>R7); "SET DISABLE INTERRUPTS
00.00096 8@INTEGER=>R2;
00.00097 LDS(R3); "CHANGE TO PAGE 1
00.00098 (-R2)@INTEGER=>R6+R2; "POINTER MTCB1 DATA TO R6
00.00099 R6@MTCB1.PAGE=>R7;
00.00100 R6@MTCB1.OFFS=>R5+R2;
00.00101 R3=>R4;
00.00102 CLRS (R3,2=>R0); R3 IOR (R7 SHIFTLL 2); "MTCB PSW IN R3
00.00103 R6@MTCB1.MPCB=>R0;
00.00104 R6@MTCB1.MPROC=>R7;
00.00105 LDS(R3); "CHANGE TO MTCB DATA PAGE
00.00106 R0=>R5@MTCB2.MPCB;
00.00107 R7=>R5@MTCB2.MPROC;
00.00108 ADDRESS(R5@MTCB2.SEM)=>R0+1-R2; "R0 = ABS PPCBI0
00.00109 R0=>R5@MTCB2.PPCBI0;
00.00110 R0+1+R5@MTCB2.MPCB=>R5@MTCB2.PSAAR1;
00.00111 0=>R7=>R5@MTCB2.SAARWUS;
00.00112 LDS(R4); "BACK TO PAGE 1
00.00113 R6@MTCB1.NMTCB=>R4;
00.00114 R6@MTCB1.NPDB=>R7;
00.00115 R6@MTCB1.NIMF=>R6;
00.00116 LDS(R3); "TO MTCB DATA PAGE AGAIN
00.00117 R4=>R5@MTCB2.NMTCB;
00.00118 R6=>R5@MTCB2.NIMF;
00.00119 R7=>R5@MTCB2.NPDB;
00.00120 R5@MTCB2.MPROC=>R7 SHIFTLL 4; "16*MPROC IN R7
00.00121 R0+R7=>R5@MTCB2.PUPMASK;
00.00122 R0+6=>R5@MTCB2.PMTCB;
00.00123 R4=>R7 SHIFTLL 3 +R4; "9*NMTCB IN R7
00.00124 R0+R7=>R5@MTCB2.PIMF;
00.00125 R0+R6=>R5@MTCB2.PPDB;
00.00126 6=>R7=>R5@MTCB2.NSUBSYS;
00.00127 1=>R7=>R5@MTCB2.IFFMTCB;
00.00128 R7=>R5@MTCB2.IFFIMF;
00.00129 R7=>R5@MTCB2.IFFPDB;
00.00130
00.00131 R0+R5@MTCB2.NPDB+R2;
00.00132 ADDRESS(R5@MTCB2.SEM)=>R7; R0-1;
00.00133 WHILE R7<R0 DO
00.00134 0=>(R7+1)@INTEGER; "FILL MTCB AREA WITH ZEROES
00.00135
00.00136
00.00137 «ff»00.00138 "PAGE
00.00138 "********************************************"
00.00139 " "
00.00140 " INITIALIZATION OF PCB INDEXED TABLE "
00.00141 " "
00.00142 "********************************************"
00.00143
00.00144 R5@MTCB2.PPCBI0=>R3+R2;
00.00145 R3-1=>R6+R5@MTCB2.MPCB;
00.00146 WHILE R6>=R3 DO
00.00147 0=>(R3+1)@INTEGER; "FILL PCB INDEXED TABLE_
00.00148 "WITH ZEROES
00.00149
00.00150
00.00151 "********************************************"
00.00152 " "
00.00153 " INITIALIZATION OF SUBSYSTEMS UPDATE MASK "
00.00154 " "
00.00155 "********************************************"
00.00156
00.00157 R5@MTCB2.PUPMASK=>R3+R2;
00.00158 US1=>R3@INTEGER; "FILLING
00.00159 US2=>(R3+1)@INTEGER; "UP
00.00160 US3=>(R3+1)@INTEGER; "SUB-
00.00161 US4=>(R3+1)@INTEGER; "SYSTEMS
00.00162 US5=>(R3+1)@INTEGER; "UPDATE
00.00163 US6=>(R3+1)@INTEGER; "MASK
00.00164
00.00165 «ff»00.00166 "PAGE
00.00166 "********************************************"
00.00167 " "
00.00168 " INITIALIZATION OF MTCB AREA "
00.00169 " AS A LINKED LIST "
00.00170 " "
00.00171 "********************************************"
00.00172
00.00173 R5@MTCB2.NMTCB=>R4;
00.00174 R3-8;
00.00175 1=>R6;
00.00176 WHILE R6<R4 DO "FILL-IN
00.00177 R6+1=>(R3+9)@INTEGER; "INDEX LINKS IN MTCB WORD 0
00.00178 0=>(R3+9)@INTEGER; "LAST LINK=0
00.00179
00.00180
00.00181 "********************************************"
00.00182 " "
00.00183 " INITIALIZATION OF LINKED IMF LIST "
00.00184 " "
00.00185 "********************************************"
00.00186
00.00187 R5@MTCB2.NIMF=>R4;
00.00188 R3+8;
00.00189 1=>R6;
00.00190 WHILE R6<R4 DO "FILL-IN
00.00191 R6+1=>(R3+1)@INTEGER; "LINK INDICES
00.00192 0=>(R3+1)@INTEGER; "LAST LINK=0
00.00193
00.00194 "********************************************"
00.00195 " "
00.00196 " INITIALIZATION OF LINKED PDB LIST "
00.00197 " "
00.00198 "********************************************"
00.00199
00.00200 R5@MTCB2.NPDB=>R4;
00.00201 1=>R6;
00.00202 WHILE R6<R4 DO "FILL-IN
00.00203 R6+1=>(R3+1)@INTEGER; "LINK INDICES
00.00204 0=>(R3+1)@INTEGER; "LAST LINK=0
00.00205
00.00206 «ff»00.00207 "PAGE
00.00207 "********************************************"
00.00208 " "
00.00209 " INITIALIZATION OF GLOBAL SEMAPHORE "
00.00210 " "
00.00211 "********************************************"
00.00212
00.00213 0=>R7=>R5@MTCB2.SEM;
00.00214
00.00215 LDS(R1); "CHANGE TO OWN PAGE
00.00216
00.00217
00.00218 UNS(6,ADDRESS(SAVE[0])=>R7);
00.00219 SAVE[7]=>R7;
00.00220
00.00221 EXIT(R6);
00.00222
00.00223 END "MTCB_DATAINIT";
00.00224
00.00225 ENDMODULE
LINES: 329
CODESIZE VARSIZE CONSTSIZE TEMPSIZE
-------- ------- --------- --------
#0094 #0008 #0000 #0000 2