diff --git a/src/lmcons/cc.(init) b/src/lmcons/cc.(init) new file mode 100644 index 00000000..7a958fc4 --- /dev/null +++ b/src/lmcons/cc.(init) @@ -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)) diff --git a/src/lmcons/ccd.(init) b/src/lmcons/ccd.(init) new file mode 100644 index 00000000..42506b2a --- /dev/null +++ b/src/lmcons/ccd.(init) @@ -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)) \ No newline at end of file diff --git a/src/lmcons/lispm.10 b/src/lmcons/lispm.10 new file mode 100644 index 00000000..8c6ad525 --- /dev/null +++ b/src/lmcons/lispm.10 @@ -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