mirror of
https://github.com/PDP-10/its.git
synced 2026-05-01 22:16:35 +00:00
158 lines
4.2 KiB
Common Lisp
158 lines
4.2 KiB
Common Lisp
;;; -*- LISP -*-
|
|
;;;
|
|
;;; KMP's ANIMAL Init File
|
|
;;;
|
|
;;; Created 2:14am Saturday, 23 September 1978
|
|
;;;
|
|
|
|
(COMMENT)
|
|
|
|
;; Temporary measures ...
|
|
|
|
(PROGN (CLOSE (PROG2 NIL INFILE (INPUSH -1)))
|
|
(CURSORPOS 'A TYO)
|
|
(PRINC '|The All-New ANIMAL program. (Old one temporarily out of order)|
|
|
TYO)
|
|
(TERPRI TYO)
|
|
(PRINC '|Please mention you're using ANIMAL version 2 in any bug notes.|
|
|
TYO)
|
|
(TERPRI TYO)
|
|
(PRINC '|End all input with a period!| TYO)
|
|
(TERPRI TYO)
|
|
(LOAD '((PIQUE) ANIMAL FASL))
|
|
(NOINTERRUPT T)
|
|
(SSTATUS TOPLEVEL '(ANIMAL))
|
|
(SETUP-FOR-ANIMAL))
|
|
|
|
(PROGN
|
|
|
|
;; Fix QUIT for KMP...
|
|
|
|
(COND ((MEMQ (STATUS UNAME) '(KMP TNP))
|
|
(DEFUN QUIT N
|
|
(CURSORPOS 'A TYO)
|
|
(PRINC '|Do you really want to kill this job? | TYO)
|
|
(CLEAR-INPUT TYI)
|
|
(COND ((MEMBER (TYI TYI) '(89. 121.))
|
|
(PRINC '| [Yes]| TYO)
|
|
(VALRET '|:KILL |))
|
|
(T
|
|
(PRINC '| [No]| TYO)
|
|
NIL))))
|
|
(T
|
|
(TERPRI TYO)
|
|
(PRINC '|There is an all new, very experimental Animal game| TYO)
|
|
(TERPRI TYO)
|
|
(PRINC '|by doing :KMP;ANIMAL. Please specify in any notes to| TYO)
|
|
(TERPRI TYO)
|
|
(PRINC '|BUG-ANIMAL which game you are using.| TYO)
|
|
(TERPRI TYO)))
|
|
|
|
;; Turn off interrupts while this loads
|
|
|
|
(NOINTERRUPT T)
|
|
|
|
;; Turn off load messages
|
|
|
|
(SSTATUS FEATURE NOLDMSG)
|
|
|
|
;; Send KMP a message if he's logged in.
|
|
|
|
(DEFPROP IOTA ((DSK LIBLSP) IOTA FASL) AUTOLOAD)
|
|
|
|
(COND ((AND (NOT (EQ (STATUS USERID) 'KMP))
|
|
(PROBEF '((USR *) KMP HACTRN)))
|
|
(LET ((BASE 10.) (*NOPOINT T) ((HOUR MIN) (STATUS DAYTIME)))
|
|
(ERRSET
|
|
(IOTA ((STREAM '((CLI *) KMP HACTRN) '(OUT)))
|
|
(MAPC (FUNCTION (LAMBDA (X) (PRINC X STREAM)))
|
|
(LIST
|
|
'|/[Message from The Animal Game at MIT-MC |
|
|
(COND ((ZEROP (\ HOUR 12.)) '|12|) (T (\ HOUR 12.)))
|
|
'/:
|
|
(COND ((< MIN 10.) (IMPLODE (LIST '/0 (+ MIN 48.))))
|
|
(T MIN))
|
|
(COND ((ZEROP (// HOUR 12.)) '|am|)
|
|
(T '|pm|))
|
|
'/] (ASCII 13.) (STATUS UNAME)
|
|
'| is gonna play against me!|))
|
|
(TERPRI STREAM))
|
|
NIL))))
|
|
|
|
;; Turn off ^S interrupt - trap it manually
|
|
|
|
(SSTATUS TTYINT 19. NIL)
|
|
|
|
;; Allocate core - load it in...
|
|
|
|
(ALLOC '(LIST 150000))
|
|
(LOAD '((DSK KMP) ANIMAL FASL))
|
|
|
|
;; <CR> to indicate we are doing something...
|
|
|
|
(TERPRI TYO)
|
|
|
|
;; Close this file
|
|
|
|
(CLOSE (PROG2 T INFILE (INPUSH -1)))
|
|
|
|
;; Is animal locked for some reason?
|
|
|
|
(COND ((PROBEF LOCK-DATA-FILE)
|
|
(PRINTC '|ANIMAL will not be available for a few minutes.| TYO)
|
|
(PRINTC '|I working on the data base. If you get this| TYO)
|
|
(PRINTC '|message and I am not logged in, please do :BUG ANIMAL| TYO)
|
|
(PRINTC '|Sorry for the inconvenience.| TYO)
|
|
(QUIT))
|
|
((PROBEF LOCK-PROGRAM-FILE)
|
|
(PRINTC '|ANIMAL will not be available for a few minutes.| TYO)
|
|
(PRINTC '|I am testing some new features. If you get this| TYO)
|
|
(PRINTC '|message and I am not logged in, please do :BUG ANIMAL| TYO)
|
|
(PRINTC '|Sorry for the inconvenience.| TYO)
|
|
(QUIT))
|
|
((PROBEF LOCK-RANDOM-FILE)
|
|
(PRINTC '|ANIMAL is out of service for an uncertain amount| TYO)
|
|
(PRINTC '|of time. Send mail to KMP@MC for explanation.| TYO)
|
|
(QUIT)))
|
|
|
|
;; Offer to print news if any...
|
|
|
|
(COND ((PROBEF NEWS-FILE)
|
|
(PROG (CHAR INFO *NOPOINT TIME DATE)
|
|
(SETQ *NOPOINT T)
|
|
TOP (TERPRI TYO)
|
|
(SETQ INFO (CAR (DIRECTORY (LIST NEWS-FILE) '(CREDATE CRETIME))))
|
|
(SETQ TIME (CADR (MEMQ 'CRETIME INFO)))
|
|
(SETQ DATE (CADR (MEMQ 'CREDATE INFO)))
|
|
(PRINC '|News last updated | TYO)
|
|
(DATE-AND-TIME-PRINC DATE TIME)
|
|
(PRINC '|.| TYO)
|
|
(TERPRI TYO)
|
|
(PRINC '|--Read News?-- (Y OR N)| TYO)
|
|
(CLEAR-INPUT TYI)
|
|
(SETQ CHAR (TYI TYI))
|
|
(COND ((MEMBER CHAR '(89. 121.))
|
|
(PRINTC '|(Type a <CONTROL-S>| TYO)
|
|
(PRINC '| to flush rest of output)| TYO)
|
|
(TERPRI TYO)
|
|
(CLEAR-INPUT TYI)
|
|
(APPLY 'PRINTFILE (NCONS NEWS-FILE)))
|
|
((= CHAR 12.)
|
|
(CURSORPOS 'C TYO)
|
|
(GO TOP))
|
|
((MEMBER CHAR '(2120. 63.))
|
|
(PRINTC '|Information about latest improvements.| TYO)
|
|
(GO TOP))
|
|
((MEMBER CHAR '(78. 110.))
|
|
(TERPRI TYO))
|
|
(T
|
|
(PRINC '| ?? Type "?" for help.|)
|
|
(GO TOP))))))
|
|
|
|
;; Run the game...
|
|
|
|
(ANIMAL))
|
|
|
|
|
|
|
|
|