1 TITLE SYSINI - SYSTEM INITIALIZATION
\r
3 EXTERNAL APRCHN,ERROR,IOINI
\r
4 EXTERNAL DDT,NULJOB,SYSMAK,ONCE,SYSBEG,SYSBG1,SYSEND
\r
5 EXTERNAL CORTAB,CORLST,CORTAL,CORBLK,SYSSIZ,LINKSR
\r
7 ;SYSTEM INITIALIZATION DISPATCHTABLE, STARTING AT LOC. 140
\r
8 ;THIS SUBROUTINE MUST BE LOADED FIRST
\r
9 ;ROUTINE ONCE IS ONCE ONLY CODE. IT CONVERTS THE DATE
\r
10 ;AND SETS UP IO SERVICE CHAIN.
\r
16 SYSDSP: JRST SYSINI ;INITIALIZE SYSTEM VARIABLES ONCE ONLY
\r
18 JRST SYSMAK ;MAKE NEW SYSTEM
\r
19 JRST SYSINI ;INITIALIZE SYSTEM VARIABLES ALWAYS
\r
20 JEN NULJOB ;ERROR RECOVERY
\r
21 JRST SYSONE ;DO ONCE ONLY CODE OVER AGAIN
\r
22 JRST JSR2 ;BYPASS ONCE ONLY OPERATOR DIALOG
\r
23 ;(IN CASE CONSOLE TTY DOWN)
\r
26 ;INITIALIZE SYSTEM DATA STORAGE
\r
29 NXM=10000 ;NON EX MEM FLAG
\r
31 SYSONE: JSR ONCE ;ONCE ONLY CODE
\r
32 SYSINI: CONO APR,200000 ;IO RESET
\r
33 JSR1: JSR ONCE ;DO ONCE ONLY CODE ONCE
\r
34 JSR2: JSR LINKSR ;LINK IO SERVICE ROUTINES
\r
39 HRRI TAC,SYSBG1 ;CLEAR SYSTEM DATA STORAGE
\r
41 MOVSI TAC, DVDIRIN+TTYATC+TTYUSE
\r
42 HRRI TAC,ASSCON+ASSPRG
\r
43 HLRZ DEVDAT,DEVLST ;SCAN ALL DEVICES
\r
44 SYS1: ANDCAM TAC, DEVMOD(DEVDAT) ;CLEAR DIRECTORY IN CORE BIT,
\r
45 ;ASSIGNED BY CONSOLE & PROGRAM
\r
46 SETZM DEVLOG(DEVDAT) ;CLEAR LOGICAL NAME
\r
47 HLRZ DEVDAT, DEVSER(DEVDAT)
\r
49 MOVE JDAT,COREP ;SET UP CORE USE BIT TABLE
\r
51 MOVEI TAC,CORBLK ;NO. OF 1K BLOCKS IN TABLE
\r
52 SYS2: CONO APR,NXM ;CLEAR NON EX MEM
\r
53 IBP JDAT ;MOVE BYTE POINTER
\r
54 HLLZ DAT,(TAC1) ;REFERENCE MEMORY, CLEAR RT. OF DAT
\r
55 CAMLE TAC1,SYSSIZ ;HIGHEST LOC IN EXEC.
\r
56 CONSZ APR,NXM ;CAN MEMORY BE USED FOR USER PROG?
\r
57 AOJA DAT,SYS3 ;NO, MARK AS INACCESIBLE (1 BIT)
\r
59 MOVEM JDAT,CORLST ;AND SET LAST FREE BLOCK POINTER
\r
60 SYS3: DPB DAT,JDAT ;STORE 0 OR 1 IN TABLE
\r
61 ADDI TAC1,2000 ;INCREMENT MEMORY REF
\r
63 IBP CORLST ;SET TO FIRST UNAVAILABLE BLOCK
\r
65 HRRM 1,SYSDSP ;FALINTO IOGO
\r
68 ;INITIALIZE ALL IODEVICES
\r
71 EXTERNAL DEVLST, MJOBN, JBTADR,JBTSTS,IOINI
\r
72 EXTERNAL DCREQ,MTREQ,DTREQ
\r
74 IOGO: MOVEI TAC,APRCHN
\r
75 CONO APR,633440(TAC)
\r
76 HLRZ TAC, DEVLST ;CHAIN OF DEVICE DATA BLOKS
\r
77 IOG0: MOVEI TAC1,ASSPRG ;CLEAR ASSIGNED BY PROGRAM BIT
\r
78 ANDCAB TAC1,DEVMOD(TAC)
\r
79 HRLOI ITEM,IORET+7*PICHN ;CLEAR JOB NO., USER CHANNEL
\r
82 ANDM ITEM,DEVCHR(TAC) ;BUT NOT IORET BIT OR PII CHA
\r
83 SETZM DEVIOS(TAC) ;CLEAR IO STATUS WORD
\r
84 SETZM DEVBUF(TAC) ;CLEAR BUFFER ADDRESS
\r
85 HLRZ TAC, DEVSER(TAC)
\r
87 SETOM DCREQ ;CLEAR DEVICE REQUEST COUNTS
\r
91 PUSHJ PDP,IOINI ;INITIALIZE IO DEVICES
\r
92 MOVSI DAT,MJOBN ;JOB NUMBER ASSIGNED BIT
\r
93 MOVE TAC,[XWD JERR,1] ;SET ERROR BIT, CLEAR ALL 0TH
\r
94 IOG1: MOVEM TAC,JBTSTS(DAT)
\r
97 JRST NULJOB ;START THE NULL JOB
\r
99 COREP: POINT 1,CORTAB ;1 BIT BYTE POINTER TO CORE USE TABLE
\r