1
0
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:
Eric Swenson
2018-05-20 21:57:00 -07:00
parent d07f118808
commit e9a608ecc7
5 changed files with 236 additions and 144 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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))