1 TITLE SYSMAK - MAKE NEW SYSTEM WITH THE OLD
\r
3 ,SYSMAK ASSUMES AN EXISTING SYSTEM WITH A LOADER IN CORE FOR JOB 1
\r
4 ,AND HIGHEST EMORY ADDRESS IN REAL 37. TO CREATE A NEW SYSTEM, SET
\r
5 ,37 AS DESIRED, LOAD NEW SYSTEM (WITHOUT GOING INTO EXECUTION), AND
\r
6 ,START AT REAL 62. THE COMPUTE WILL HALT AFTER THE NEW SYSTEM
\r
7 ,HAS BEEN BLOCKED DOWN. TO START, PRESS CONTINUE OR START AT REAL
\r
8 ,60. EXEC DDT (IF LOADED WITH THE NEW SYSTEM) STARTS AT REAL 141.
\r
9 ;FROM REL. LOC. 30 ON UP IS BLOCKED DOWN
\r
11 ,WHEN LOADING A NEW SYSTEM, LOAD SYSINI FIRST.
\r
12 ;SYSINI CONTAINS A DISPATCH TABLE DOCUMENTED TO BE AT LOC. 60
\r
13 ;ALSO LOAD IOINI LAST SINCE IT CONTAINS SOME ONCE ONLY CODE AT END
\r
14 ;THEN LOAD SYSMAK FOLLOWED BY DDT(EXEC)
\r
15 ;BE SURE THAT LOC SYSSIZ(SIZ OF SYSTEM) IS GREATER THAN
\r
16 ;LAST LOC IN SYSMAK BEFORE STARTING TO LOAD.
\r
17 ;LOC SYSSIZ IS IN LOWER CORE AND MAY HAVE TO BE PATCHED
\r
18 ;USING CONSOLE SWITCHES.
\r
20 INTERNAL SYSMAK,MAKEND
\r
21 EXTERNAL JBTADR,JBTAD1
\r
23 SYSMAK: MOVE 1,JBTAD1 ;LOADER BLOCK ADDRESS FROM JOB ADDRESS
\r
24 MOVE 6,2(1) ;LOADER OFFSET
\r
25 ADDI 6,(1) ;BLOCK ADDRESS+OFFSET
\r
26 MOVE 2,6(1); SYSMBOL TABLE POINTER: -N,L = LOWEST AD
\r
29 MOVNS 3 ;N = SYMBOL TABLE LENGTH
\r
30 MOVE 4,DDTMEM ;MEMORY SIZE(LOC 37)
\r
31 MOVEM 4,DDTMEM(6) ;STORE IN NEW DDTMEM
\r
32 SUBI 4,200 ;ROOM FOR DECDUMP
\r
33 MOVEM 4,DDTSYM(6) ;ALSO STORE IN WHAT WILL BECOME DDTSYM
\r
34 MOVE 5,2 ;LEAVES ROOM FOR DECDMP
\r
36 HRL 5,3 ;C(5):=N,L+N
\r
38 HRRZS 4 ;C(4):=0,C(37)-200-(L+N)
\r
39 ADD 2,4 ;C(2):=-N,C(37)-200-N
\r
42 POP 5,(5) ;MOVE SYMOBOL TABLE TO TOP OF MEMORY
\r
47 HRLI 3,30(6) ;C(3):=LOADER OFFSET+LOADER BLOCK ADDRE
\r
48 HRRZ 2,6(1) ;C(2):=LOWEST LOCATION IN SYMBOL TABLE
\r
49 HRR 11,(1) ;C(11):=JRST 4,START ADDRESS
\r
50 JRST 10 ;MOVE SYSTEM TO BOTTOM OF MEMORY AND HALT
\r