[LispM-Hackers] First Function

Dave Richards dave@synergy.org
Sun, 3 Mar 2002 15:15:08 -0800


Ok, we're golden.

;Come here when machine starts.  Provides a base frame.
(DEFUN LISP-TOP-LEVEL ()
   (LISP-REINITIALIZE NIL)                      ;(Re)Initialize critical
variables and things
   (TERPRI (OR TV:INITIAL-LISP-LISTENER *TERMINAL-IO*))
   ;;  LISP-TOP-LEVEL1 supposedly never returns, but loop anyway in case
   ;;  someone forces it to return with the error-handler.
   (LOOP DOING
         (IF (FBOUNDP 'PROCESS-TOP-LEVEL)
             (PROCESS-TOP-LEVEL)
             (LISP-TOP-LEVEL1 (OR TV:INITIAL-LISP-LISTENER
*TERMINAL-IO*)))))

Translates to:

; (DEFUN LISP-TOP-LEVEL ()

; (LISP-REINITIALIZE NIL)
 pc=0000   SET_NIL PDL
 pc=0001 c CALL_1_DEST_INDS FEF|#o5

; (OR TV:INITIAL-LISP-LISTENER
;     *TERMINAL-IO*)
 pc=0002   PUSH FEF|#o4
 pc=0003 b BR_NOT_NIL_ELSE_POP disp=#o1
 pc=0004   PUSH FEF|#o3

; (TERPRI ...)
 pc=0005 c CALL_1_DEST_INDS FEF|#o6

; (LOOP DOING ...)

; (FBOUNDP 'PROCESS-TOP-LEVEL)
 pc=0006   PUSH FEF|#o7
 pc=0007 m miscop=#o237

; (IF ...)
 pc=0010 b BR_NIL disp=#o2

; (PROCESS-TOP-LEVEL)
 pc=0011 c CALL_0_DEST_INDS FEF|#o10
 pc=0012 b BR_ALWAYS_NIL disp=#o773

; (OR TV:INITIAL-LISP-LISTENER *TERMINAL-IO*)
 pc=0013   PUSH FEF|#o4
 pc=0014 b BR_NOT_NIL_ELSE_POP disp=#o1
 pc=0015   PUSH FEF|#o3

; (LISP-TOP-LEVEL1 ...)
 pc=0016 c CALL_1_DEST_INDS FEF|#o11
 pc=0017 b BR_ALWAYS_NIL disp=#o766