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: 8962 (0x2302) Types: TextFile Names: »MTCB_DATAINIT.S«
└─⟦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«
"====================================================================" "--------------------------------------------------------------------" " " " 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