1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-28 10:52:52 +00:00

TS LISPM and CADR.

This commit is contained in:
Lars Brinkhoff
2019-03-01 18:48:19 +01:00
parent 6737e043c7
commit 816cf7e217
3 changed files with 305 additions and 0 deletions

47
src/lmcons/cc.(init) Normal file
View File

@@ -0,0 +1,47 @@
(COMMENT SYMBOL 15000 LIST 140000 FIXNUM 50000) ;-*-LISP-*-
(PROGN
(SETQ PURE 2) ;SUPPOSEDLY DOING THIS AND NEVER CALLING PURIFY
;WILL CAUSE (SSTATUS UUOLINKS) TO WORK. WHAT A CROCK!
(SETQ FOR-CADR NIL)
(DEFUN COMPLETE-LOAD ()
(CURSORPOS 'C)
(PRINT 'RESET-ALL-MEMORIES)
(CC-REGISTER-DEPOSIT RARSET 0)
(PRINT 'CC-CLEAR-CORE)
(CC-CLEAR-CORE)
(PRINT 'CC-LOAD-UCODE)
(CC-LOAD-UCODE)
(PRINT 'LOAD-COLD)
(LOAD-COLD)
(PRINT 'CC)
(TERPRI)
(CC))
(SSTATUS GCWHO 1)
(SETQ CTALK-BARF-AT-WRITE-ERRORS T)
(DEFPROP UNFASL (UNFASL FASL DSK LMCONS) AUTOLOAD)
(DEFPROP TECO (LISPT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP LEDIT (LEDIT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP FLOAD (LEDIT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP CLOAD (LEDIT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP BS (BS FASL DSK LIBLSP) AUTOLOAD)
(FASLOAD UTIL FASL DSK LISPM)
(FASLOAD UTIL1 FASL DSK LISPM)
(READFILE '(QCOM > DSK LISPM))
(FASLOAD CC FASL DSK LMCONS)
(FASLOAD CCLOW FASL DSK LMCONS)
(CC-CONSOLE-INIT)
(FASLOAD CLOAD FASL DSK LMCONS)
(FASLOAD CCDISK FASL DSK LMCONS)
(READFILE '(CL > DSK LMCONS))
(FASLOAD QF FASL DSK LMCONS) ;turd has to be loaded after QCOM
(TERPRI)
)
(PROGN (CLOSE (PROG2 NIL INFILE (INPUSH -1)))
(PRINC '|Loading microcode symbols.|)
(CC-LOAD-UCODE-SYMBOLS)
(TERPRI)
(PDUMP))

81
src/lmcons/ccd.(init) Normal file
View File

@@ -0,0 +1,81 @@
(COMMENT SYMBOL 15000 LIST 140000 FIXNUM 50000) ;-*-LISP-*-
(PROGN
(SETQ PURE 2) ;SUPPOSEDLY DOING THIS AND NEVER CALLING PURIFY
;WILL CAUSE (SSTATUS UUOLINKS) TO WORK. WHAT A CROCK!
(SETQ FOR-CADR T)
(DEFUN COMPLETE-LOAD ()
(CURSORPOS 'C)
(PRINT 'RESET-ALL-MEMORIES)
(CC-REGISTER-DEPOSIT RARSET 0)
(PRINT 'CC-CLEAR-CORE)
(CC-CLEAR-CORE)
(PRINT 'CC-LOAD-UCODE)
(CC-LOAD-UCODE)
(PRINT 'LOAD-COLD)
(LOAD-COLD)
(PRINT 'CC)
(TERPRI)
(CC))
(SETSYNTAX 43 'NORMAL 43) ;NEEDED TO LOAD MICROCODE SYMBOLS
(DEFUN RECORD-SOURCE-FILE-NAME (N) T)
(DEFUN SPECIAL FEXPR (L) T)
(DEFUN UNSPECIAL FEXPR (L) T)
;PREPARE FOR DUMPING
(DEFUN PDUMP ()
(CNSUSP)
(SUSPEND '|:PDUMP LISPM1;TS CADR|)
(CNSINI)
(SETQ CC-FULL-SAVE-VALID NIL)
(SETQ CC-PASSIVE-SAVE-VALID NIL)
(SETQ CC-DISK-TYPE NIL)
'READY)
(SSTATUS GCWHO 1)
(SETQ CTALK-BARF-AT-WRITE-ERRORS T)
(DEFPROP UNFASL (UNFASL FASL DSK LMCONS) AUTOLOAD)
(DEFPROP TECO (LISPT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP LEDIT (LEDIT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP FLOAD (LEDIT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP CLOAD (LEDIT FASL DSK LIBLSP) AUTOLOAD)
(DEFPROP BS (BS FASL DSK LIBLSP) AUTOLOAD)
(FASLOAD UTIL FASL DSK LISPM)
(FASLOAD UTIL1 FASL DSK LISPM)
(READFILE '(QCOM > DSK LISPM))
(FASLOAD CCGSYL FASL DSK LMCONS)
(FASLOAD CC FASL DSK LMCONS)
(LOAD '((LMCONS)CADREG >)) ;NO OVERLAYING ANY MORE
(LOAD '((LMCONS)CADRD FASL))
;Don't bother with diagnostics in pdp10 version, they just take up space
;Load them in by hand if you really want them.
; (LOAD '((LMCONS)DPDIAG FASL))
; (LOAD '((LMCONS)ADRTST FASL))
; (LOAD '((LMCONS)SHFTST FASL))
; (LOAD '((LMCONS)DSPTST FASL))
(LOAD '((LMCONS)TDBG FASL))
(LOAD '((LMCONS)ZERO FASL))
(LOAD '((LMCONS)CADLD FASL))
(SORT '(1) 'LESSP) ;GET SORT INTO CORE
(SSTATUS UUOLINKS) ;BECAUSE OF OVERLAYING
(CC-CONSOLE-INIT)
(LOAD '((LCADR)PACKED FASL))
(FASLOAD CLOAD FASL DSK LCADR)
(FASLOAD CCDISK FASL DSK LCADR)
(FASLOAD CADTLK FASL DSK LCADR)
(FASLOAD QF FASL DSK LCADR) ;turd has to be loaded after QCOM
(TERPRI))
(PROGN (CLOSE (PROG2 NIL INFILE (INPUSH -1)))
(PRINC '|Load microcode symbols for version:|)
(APPLY 'CC-LOAD-UCODE-SYMBOLS
(LIST '(LISPM1) 'UCADR (IMPLODE (NCONC ((LAMBDA (IBASE BASE *NOPOINT)
(EXPLODEN (READ)))
10. 10. T)
'(S Y M)))))
(TERPRI)
(PDUMP))

177
src/lmcons/lispm.10 Normal file
View File

@@ -0,0 +1,177 @@
TITLE LISP MACHINE CONSOLE PROGRAM LOADER
A=1
B=2
C=3
D=4
E=5
T=6
TT=7
P=17
TYICH=11
TYOCH=12
PDL: -20,,.
BLOCK 20
XJNAME: 0
GO: MOVE P,PDL
.OPEN TYICH,[.UAI,,'TTY]
.LOSE 1400
.OPEN TYOCH,[.UAO,,'TTY]
.LOSE 1400
.SUSET [.RXJNAME,,XJNAME]
MOVE A,XJNAME
CAME A,[SIXBIT/LISPM/]
CAMN A,[SIXBIT/CADR/]
CAIA
.VALUE [ASCIZ/: UNRECOGNIZED XJNAME î/]
MOVE A,[SQUOZE 0,MAXJ]
.EVAL A,
.LOSE
SUBI A,1
FJ: .CALL [ SETZ
'USRVAR
MOVEI %JSNUM(A)
[SIXBIT/JNAME/]
SETZM B ]
JRST FJ1
CAMN B,XJNAME
JRST REOWNP
FJ1: SOJG A,FJ
NEWJOB: MOVE A,[SIXBIT/CADR/]
CAME A,XJNAME
MOVE A,[SIXBIT/CC/]
.CALL [ SETZ
SIXBIT/OPEN/
[.UII,,17]
[SIXBIT/DSK/]
[SIXBIT/TS/]
A
SETZ [SIXBIT/LISPM1/]]
JRST RELOAD
CAMN A,[SIXBIT/CC/]
.VALUE [ASCIZ\ :LOADING PDUMPED VERSION

:LOAD DSK:LISPM1;TS CC
:GOî\]
.VALUE [ASCIZ\ :LOADING PDUMPED VERSION

:LOAD DSK:LISPM1;TS CADR
:GOî\]
RELOAD: CAMN A,[SIXBIT/CC/]
.VALUE [ASCIZ\ :LOADING NEW VERSION FROM SCRATCH

:LOAD SYS:TS LISP
:JCL LMCONS;CC (INIT)
:GOî\]
.VALUE [ASCIZ\ :LOADING NEW VERSION FROM SCRATCH

:LOAD SYS:TS LISP
:JCL LMCONS;CCD (INIT)
:GOî\]
REOWNP: .SUSET [.RUIND,,B]
CAMN A,B
JRST FJ1 ;robot
.CALL [ SETZ
'USRVAR
MOVEI %JSNUM(A)
[SIXBIT/APRC/]
SETZM B ]
JRST FJ1
JUMPL B,REOWN2
.CALL [ SETZ
'USRVAR
MOVEI %JSNUM(A)
[SIXBIT/UNAME/]
SETZM TT ]
JRST FJ1
PUSHJ P,SIXOUT
MOVEI TT,[ASCIZ\ LISPM EXISTS AND ISN'T DISOWNED. CONTINUE?\]
REOWN4: PUSHJ P,ASZOUT
PUSHJ P,YORN
.BREAK 16,160000
JRST FJ1
REOWN2: .CALL [ SETZ
'USRVAR
MOVEI %JSNUM(A)
[SIXBIT/UNAME/]
SETZM C ]
.LOSE 1000
.CALL [ SETZ
'USRVAR
MOVEI %JSNUM(A)
[SIXBIT/INTB/]
SETZM TT ]
.LOSE 1000
JUMPGE TT,REOWN3 ;NOT TOP LEVEL
MOVEI TT,[ASCIZ\REOWN \]
PUSHJ P,ASZOUT
MOVE TT,C
PUSHJ P,SIXOUT
.IOT TYOCH,[40]
MOVE TT,XJNAME
PUSHJ P,SIXOUT
.IOT TYOCH,[77]
PUSHJ P,YORN
JRST FJ1
MOVE TT,[IDPB T,E]
MOVEM TT,SIXOUI
MOVE TT,C
MOVE E,[260700,,BAR]
PUSHJ P,SIXOUT
MOVE E,[440700,,BAZ]
MOVE TT,XJNAME
PUSHJ P,SIXOUT
.VALUE FOO
FOO: ASCII\:KILL\
ASCII\ :UJO\
BAR: ASCII\B \
ASCII\ \
BAZ: ASCIZ\LISPM P\
REOWN3: MOVE TT,C
PUSHJ P,SIXOUT
.IOT TYOCH,[40]
MOVE TT,XJNAME
PUSHJ P,SIXOUT
MOVEI TT,[ASCIZ/ IS PART OF A DISOWNED TREE. CONTINUE?/]
JRST REOWN4
SIXOUT: SETZ T,
LSHC T,6
ADDI T,40
SIXOUI: .IOT TYOCH,T ;PATCHED TO IDPB
JUMPN TT,SIXOUT
CPOPJ: POPJ P,
ASZOUT: HRLI TT,440700
ASZOU1: ILDB T,TT
JUMPE T,CPOPJ
.IOT TYOCH,T
JRST ASZOU1
YORN: .IOT TYICH,TT
.IOT TYOCH,[^M]
CAIE TT,"Y
CAIN TT,"y
JRST POPJ1
CAIE TT,"N
CAIN TT,"n
POPJ P,
MOVEI TT,[ASCIZ\[Y OR N] \]
PUSHJ P,ASZOUT
JRST YORN
POPJ1: AOS (P)
POPJ P,
END GO