mirror of
https://github.com/PDP-10/its.git
synced 2026-02-03 23:32:51 +00:00
Resolves #908: Reconcile two different versions of LSRRTN.
Resolves #912: Fix reference to BMT1;ANIMAL ONEWS in GAMES; ANIMAL NEWS.
This commit is contained in:
@@ -6,4 +6,4 @@ happen sadly (not really something in my control to fix completely), but
|
||||
I hope they'll happen less often.
|
||||
|
||||
That's about it. The game is essentially unchanged over the last two years.
|
||||
Those interested in old news can print the file BMT1;ANIMAL ONEWS.
|
||||
Those interested in old news can print the file GAMES;ANIMAL ONEWS.
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
title LLSRTN - LISP interface to -*-MIDAS-*- inquir lookups
|
||||
|
||||
.fasl
|
||||
.insrt sys:.fasl defs
|
||||
|
||||
;;Set up and include the inquire database hacking routines
|
||||
|
||||
lsrtns"$$ulnm==0 ;don't need last name search
|
||||
lsrtns"$$ulnp==0 ;don't need abbrev l.name lookup
|
||||
lsrtns"$$unam==0 ;don't need name permutation
|
||||
|
||||
;;define some acs for lsrtns use
|
||||
lsrtns"a==t
|
||||
lsrtns"b==tt
|
||||
lsrtns"c==d
|
||||
lsrtns"d==r
|
||||
lsrtns"e==f
|
||||
|
||||
.insrt syseng;lsrtns
|
||||
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;;(LSRMAP <number of pages to use>)
|
||||
;;opens up and maps in the inquir database for looking up people.
|
||||
;;Returns a file object to be passed to other routines.
|
||||
;;Uses GETCOR to reserve address space. Don't try this too many times
|
||||
;;since the addr space isn't reused.
|
||||
|
||||
.entry LSRMAP SUBR 1+1
|
||||
|
||||
jsp t,fxnv1 ;get & save # pages to use, a->tt
|
||||
push fxp,tt
|
||||
;; (open '|inquir;lsr1 >| '(in))
|
||||
movei a,.atom INQUIR/;LSR1/ >
|
||||
movei b,.sx (IN)
|
||||
call 2,.function OPEN
|
||||
push p,a
|
||||
;; extract I/O channel number from the file array, into TT
|
||||
movei tt,f.chan
|
||||
move tt,@ttsar(a)
|
||||
push fxp,tt
|
||||
;; get pages via getcor
|
||||
move tt,-1(fxp) ;# pages
|
||||
pushj p,getcor ;request addr space from Lisp
|
||||
jumpe tt,corlos ;its addr is returned zero if none avbl
|
||||
idivi tt,2000 ;cvt to page number
|
||||
movn d,-1(fxp) ;get number of pages requested to construct
|
||||
hrl tt,d ;aobjn to them
|
||||
;; construct args for lsrmap
|
||||
move lsrtns"b,tt ;aobjn to free page range
|
||||
move lsrtns"a,(fxp) ;disk channel number
|
||||
;; Get the INQUIR data base mapped in
|
||||
pushj p,lsrtns"lsrmap ;try to map in the data base
|
||||
jrst lsrluz ;no skip if it lost
|
||||
;; I guess we won, clean up and return the file object.
|
||||
opnbye: sub fxp,[2,,2]
|
||||
pop p,a
|
||||
popj p,
|
||||
|
||||
;; Random error routines, return () instead of file obj.
|
||||
corlos:
|
||||
lsrluz: move a,(p) ;get the file obj
|
||||
call 1,.function CLOSE ;close it
|
||||
setzm (p) ;return ()
|
||||
jrst opnbye
|
||||
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;;(LSRUNM <file obj returned by LSRMAP> <uname>)
|
||||
;;Returns a magic number to be passed to LSRITM, etc., or -1 if uname unknown.
|
||||
;;Actually, the "magic number" is the entry's core address returned
|
||||
;;by the lib subr.
|
||||
|
||||
.entry LSRUNM SUBR 2+1
|
||||
|
||||
push p,cfix1 ;NCALLable!
|
||||
movei tt,f.chan ;pick up disk channel number
|
||||
move tt,@ttsar(a)
|
||||
push fxp,tt ;and save it
|
||||
move a,b ;(car (pnget <uname> 6))
|
||||
movei b,.atom #6.
|
||||
call 2,.function PNGET
|
||||
hlrz a,(a)
|
||||
move lsrtns"b,(a) ;set up uname in 6bit for lsrunm
|
||||
pop fxp,lsrtns"a ;the channel
|
||||
pushj p,lsrtns"lsrunm ;get entry addr in lsrtns"b
|
||||
movni lsrtns"b,1 ;-1 for loss
|
||||
move tt,lsrtns"b ;move to where Lisp wants it.
|
||||
popj p,
|
||||
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;;(LSRITM <item number> <magic number>)
|
||||
;;returns the <item number> slot of the entry <magic number> returned
|
||||
;;by LSRUNM.
|
||||
;;This file sets the symbols I$UNAM etc to the correct values.
|
||||
;;Look after this function, and in :INFO LIB LSRTNS .
|
||||
|
||||
.entry LSRITM SUBR 2+1
|
||||
|
||||
jsp t,fxnv1 ;item number, a->tt
|
||||
jsp t,fxnv2 ;address, b->d
|
||||
push fxp,d ;save so we don't have to worry about ac corres
|
||||
movem tt,lsrtns"a
|
||||
pop fxp,lsrtns"b
|
||||
pushj p,lsrtns"lsritm ;returns bp in lsrtns"a
|
||||
skipa d,[440700,,[0]] ;unless there was no skip: use null string then
|
||||
move d,lsrtns"a ;d is input bp
|
||||
setz b, ;start with ()
|
||||
chlp: ildb tt,d ;get a char
|
||||
jumpe tt,chlpx ;zero terminates
|
||||
jsp t,fxcons ;turn into fixnum
|
||||
call 2,.function CONS ;cons onto list
|
||||
move b,a
|
||||
jrst chlp ;go for another char
|
||||
chlpx: move a,b ;reverse the list and atomify
|
||||
call 1,.function NREVERSE
|
||||
jcall 1,.function IMPLODE
|
||||
|
||||
.sxeva (SETQ I$UNAM #0 ) ;UNAME
|
||||
.sxeva (SETQ I$NAME #1 ) ;FULL NAME
|
||||
.sxeva (SETQ I$NICK #2 ) ;NICKNAME
|
||||
.sxeva (SETQ I$SSN #3 ) ;SOC SEC NUMBER
|
||||
.sxeva (SETQ I$MITA #4 ) ;MIT ADDRESS
|
||||
.sxeva (SETQ I$MITT #5 ) ;MIT TELEPHONE NUMBER
|
||||
.sxeva (SETQ I$HOMA #6 ) ;HOME ADDRESS
|
||||
.sxeva (SETQ I$HOMT #7 ) ;HOME TELEPHONE NUMBER
|
||||
.sxeva (SETQ I$SUPR #10 ) ;SUPERVISOR(S)
|
||||
.sxeva (SETQ I$PROJ #11 ) ;PROJECT
|
||||
.sxeva (SETQ I$DIR #12 ) ;FILE DIR NAMES
|
||||
.sxeva (SETQ I$AUTH #13 ) ;AUTHORIZATION
|
||||
.sxeva (SETQ I$GRP #14 ) ;GROUP AFFILIATION
|
||||
.sxeva (SETQ I$REL #15 ) ;RELATION TO GROUP
|
||||
.sxeva (SETQ I$BRTH #16 ) ;BIRTHDAY
|
||||
.sxeva (SETQ I$REM #17 ) ;REMARKS
|
||||
.sxeva (SETQ I$NETA #20 ) ;NETWORK ADDRESS
|
||||
.sxeva (SETQ I$ALTR #21 ) ;USER AND TIME OF LAST ALTERATION
|
||||
.sxeva (SETQ I$MACH #22 ) ;ITS-S TO BE KNOWN ON.
|
||||
|
||||
fasend
|
||||
@@ -29,7 +29,7 @@
|
||||
;;; close our INQUIR disk channel.
|
||||
;;;
|
||||
|
||||
(DEFPROP LSRMAP ((DSK games) LSRRTN FASL) AUTOLOAD)
|
||||
(DEFPROP LSRMAP ((DSK inquir) LSRRTN FASL) AUTOLOAD)
|
||||
|
||||
(DECLARE (SPECIAL *INQUIR-FILE-OBJECT*)
|
||||
(*EXPR LSRMAP LSRITM LSRUNM))
|
||||
|
||||
Reference in New Issue
Block a user