(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")(FILECREATED "12-Jun-90 11:00:52" {DSK}<usr>local>lde>lispcore>library>REMOTEVMEM.;2 10969        changes to%:  (VARS REMOTEVMEMCOMS)      previous date%: "15-Feb-85 18:17:43" {DSK}<usr>local>lde>lispcore>library>REMOTEVMEM.;1)(* ; "Copyright (c) 1982, 1983, 1984, 1985, 1990 by Venue & Xerox Corporation.  All rights reserved.")(PRETTYCOMPRINT REMOTEVMEMCOMS)(RPAQQ REMOTEVMEMCOMS       ((FNS CLEARPAGECACHE OPENREMOTEVMEMFILE CLOSEREMOTEVMEMFILE VMAPPAGE REMOTEPMAP REMOTERETURN              REMOTESETWORD \TR.NOSERVER DEBUGGINGTRSERVER)        (INITVARS (REMOTEPAGELST)               (REMOTECACHESIZE 100))        (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS REMOTEVMEMFILE)               (CONSTANTS \PUPSOC.TELERAID)               (CONSTANTS * TRPUPTYPES)               (ADDVARS * (LIST (CONS 'PUPTYPES TRPUPTYPES)))               (GLOBALVARS REMOTECACHESIZE REMOTEPAGELST)               (ADDVARS (DONTCOMPILEFNS DEBUGGINGTRSERVER))               (FILES (LOADCOMP)                      PUP VMEM))))(DEFINEQ(CLEARPAGECACHE  [LAMBDA NIL                                            (* lmm "20-AUG-81 16:45")    (SETQ REMOTEPAGELST])(OPENREMOTEVMEMFILE  [LAMBDA (HOST)                                         (* bvm%: "13-Jul-84 17:20")    (SETQ VMEMFILE (create REMOTEVMEMFILE                          REMOTEVMEMADDR _ (ETHERPORT HOST)                          REMOTEVMEMSOCKET _ (OPENPUPSOCKET])(CLOSEREMOTEVMEMFILE  [LAMBDA NIL                                            (* bvm%: "13-Jul-84 17:11")    (CLEARPAGECACHE)    (AND VMEMFILE (fetch REMOTEVMEMSOCKET of VMEMFILE)         (CLOSEPUPSOCKET (fetch REMOTEVMEMSOCKET of VMEMFILE])(VMAPPAGE  [LAMBDA (PAGE#)                                        (* lmm " 4-Oct-84 15:45")    (PROG ((ENTRY (ASSOC PAGE# REMOTEPAGELST))           TAIL)          (IF ENTRY              THEN (MOVETOP ENTRY REMOTEPAGELST)                    (RETURN (CDR ENTRY)))          [push REMOTEPAGELST (CONS PAGE# (SETQ ENTRY (REMOTEPMAP VMEMFILE PAGE# (\ALLOCBLOCK                                                                                                                                                                                   WORDSPERPAGE                                                                                          ]          (IF (CDR (SETQ TAIL (NTH REMOTEPAGELST REMOTECACHESIZE)))              THEN (RPLACD TAIL))          (RETURN ENTRY])(REMOTEPMAP  [LAMBDA (FL PAGE# BUFFER)                              (* bvm%: "13-Feb-85 12:35")    (OR (EQ FL VMEMFILE)        (SHOULDNT))    (PROG ((SOC (fetch REMOTEVMEMSOCKET of FL))           INPUP OUTPUP)          (SETUPPUP (SETQ OUTPUP (ALLOCATE.PUP))                 (fetch REMOTEVMEMADDR of FL)                 \PUPSOC.TELERAID TR.GIVEPAGE (LLSH PAGE# 8)                 SOC)          (to \MAXETHERTRIES when (SETQ INPUP (\EXCHANGEPUPS SOC OUTPUP NIL T))             do (SELECTC (fetch PUPTYPE of INPUP)                        (TR.HEREISPAGE (RETURN (\BLT BUFFER (fetch PUPCONTENTS of INPUP)                                                     WORDSPERPAGE)))                        (TR.ERROR (RETURN (INVALIDADDR (UNFOLD PAGE# WORDSPERPAGE))))                        (\PT.ERROR (RETURN (\TR.NOSERVER)))                        NIL) finally (ERROR "REMOTE SYSTEM NOT RESPONDING"))          (RELEASE.PUP OUTPUP)          (AND INPUP (RELEASE.PUP INPUP))          (RETURN BUFFER])(REMOTERETURN  [LAMBDA NIL                                            (* bvm%: "13-Feb-85 12:35")    (bind INPUP (OUTPUP _ (ALLOCATE.PUP))           (SOC _ (fetch REMOTEVMEMSOCKET of VMEMFILE))       first (SETUPPUP OUTPUP (fetch REMOTEVMEMADDR of VMEMFILE)                        \PUPSOC.TELERAID TR.GO NIL SOC) to \MAXETHERTRIES       when (SETQ INPUP (EXCHANGEPUPS SOC OUTPUP NIL T))       do (SELECTC (PROG1 (fetch PUPTYPE of INPUP)                              (RELEASE.PUP INPUP))                  (TR.GOACK (replace PUPTYPE of OUTPUP with TR.GOREPLY)                            (add (fetch PUPID of OUTPUP)                                   1)                            (replace EPREQUEUE of OUTPUP with 'FREE)                            (SENDPUP SOC OUTPUP)                            (RETURN))                  (\PT.ERROR (RETURN (\TR.NOSERVER)))                  NIL) finally (ERROR "REMOTE SYSTEM NOT RESPONDING")                             (RELEASE.PUP OUTPUP])(REMOTESETWORD  [LAMBDA (PTR VALUE)                                    (* bvm%: "13-Feb-85 12:35")    (bind INPUP (OUTPUP _ (ALLOCATE.PUP))           (SOC _ (fetch REMOTEVMEMSOCKET of VMEMFILE))       first (SETUPPUP OUTPUP (fetch REMOTEVMEMADDR of VMEMFILE)                        \PUPSOC.TELERAID TR.STORE NIL SOC)             (PROGN (PUTPUPWORD OUTPUP 0 (VHILOC PTR))                    (PUTPUPWORD OUTPUP 1 (VLOLOC PTR))                    (PUTPUPWORD OUTPUP 2 VALUE)                    (add (fetch PUPLENGTH of OUTPUP)                           (UNFOLD 3 BYTESPERWORD))) to \MAXETHERTRIES       when (SETQ INPUP (EXCHANGEPUPS SOC OUTPUP NIL T))       do (SELECTC (fetch PUPTYPE of INPUP)                  (TR.STOREDONE (RETURN))                  (TR.ERROR (RETURN (ERROR "INVALID ADDRESS" PTR)))                  (\PT.ERROR (RETURN (\TR.NOSERVER)))                  NIL) finally (ERROR "REMOTE SYSTEM NOT RESPONDING"))    VALUE])(\TR.NOSERVER  [LAMBDA NIL                                            (* bvm%: "13-Feb-85 12:38")    (ERROR (PORTSTRING (fetch REMOTEVMEMADDR of VMEMFILE))           "not running TeleRaid server" T])(DEBUGGINGTRSERVER  [LAMBDA NIL                                            (* bvm%: "14-MAR-83 18:07")    (PROG ((SOC (\CREATESOCKET \PUPSOC.TELERAID))           VA STLOC STVAL INPUP OUTPUP)      LP  (SETQ INPUP (GETPUP SOC T))          (SELECTC (fetch PUPTYPE of INPUP)              (TR.GIVEPAGE (printout T "REQUEST FOR VA " (SETQ VA (fetch PUPID of INPUP))                                  T)                           (SETUPPUP INPUP (fetch PUPSOURCE of INPUP)                                  (fetch PUPSOURCESOCKET of INPUP)                                  TR.HEREISPAGE VA SOC)                           (replace PUPLENGTH of INPUP with (IPLUS BYTESPERPAGE \PUPOVLEN                                                                               ))                           (for I from 0 to 511 do (PUTPUPBYTE INPUP I                                                                          (VGETBASEBYTE VA I)))                           (replace EPREQUEUE of INPUP with 'FREE)                           (SENDPUP SOC INPUP))              (TR.STORE [SETQ STPTR (VVAG2 (GETPUPBYTE INPUP 1)                                           (IPLUS (LLSH (GETPUPBYTE INPUP 2)                                                        8)                                                  (GETPUPBYTE INPUP 3]                        (SETQ STVAL (IPLUS (LLSH (GETPUPBYTE INPUP 4)                                                 8)                                           (GETPUPBYTE INPUP 5)))                        (printout T "store word " STVAL " at " STPTR T)                        (VPUTBASE STPTR 0 STVAL)                        (SETUPPUP INPUP (fetch PUPSOURCE of INPUP)                               (fetch PUPSOURCESOCKET of INPUP)                               TR.STOREDONE                               (fetch PUPID of INPUP)                               SOC)                        (replace EPREQUEUE of INPUP with 'FREE)                        (SENDPUP SOC INPUP))              (TR.GO (SETUPPUP (SETQ OUTPUP (ALLOCATE.PUP))                            (fetch PUPSOURCE of INPUP)                            (fetch PUPSOURCESOCKET of INPUP)                            TR.GOACK                            (fetch PUPID of INPUP)                            SOC)                     (COND                        ([AND (SETQ INPUP (EXCHANGEPUPS SOC OUTPUP NIL NIL 10000))                              (EQ (fetch PUPTYPE of INPUP)                                  TR.GOREPLY)                              (EQUAL (fetch PUPID of INPUP)                                     (IPLUS 1 (fetch PUPID of OUTPUP]                         (GO DONE))                        (T (printout T "GO SEQUENCE ABORTED" T)))                                                             (* acknowledge pup AND WAIT FOR                                                            REPLY)                     )              (printout T "WRONG PUP TYPE" T))          (GO LP)      DONE          (RETURN]))(RPAQ? REMOTEPAGELST )(RPAQ? REMOTECACHESIZE 100)(DECLARE%: EVAL@COMPILE DONTCOPY (DECLARE%: EVAL@COMPILE(RECORD REMOTEVMEMFILE (RVFTAG RVFFN (REMOTEVMEMADDR . REMOTEVMEMSOCKET))                           RVFTAG _ 'PMAP RVFFN _ (FUNCTION REMOTEPMAP)))(DECLARE%: EVAL@COMPILE (RPAQQ \PUPSOC.TELERAID 27)(CONSTANTS \PUPSOC.TELERAID))(RPAQQ TRPUPTYPES ((TR.GIVEPAGE 197)                       (TR.HEREISPAGE 193)                       (TR.STORE 198)                       (TR.STOREDONE 192)                       (TR.GO 199)                       (TR.GOACK 194)                       (TR.GOREPLY 131)                       (TR.ERROR 196)))(DECLARE%: EVAL@COMPILE (RPAQQ TR.GIVEPAGE 197)(RPAQQ TR.HEREISPAGE 193)(RPAQQ TR.STORE 198)(RPAQQ TR.STOREDONE 192)(RPAQQ TR.GO 199)(RPAQQ TR.GOACK 194)(RPAQQ TR.GOREPLY 131)(RPAQQ TR.ERROR 196)(CONSTANTS (TR.GIVEPAGE 197)       (TR.HEREISPAGE 193)       (TR.STORE 198)       (TR.STOREDONE 192)       (TR.GO 199)       (TR.GOACK 194)       (TR.GOREPLY 131)       (TR.ERROR 196)))(ADDTOVAR PUPTYPES (TR.GIVEPAGE 197)                       (TR.HEREISPAGE 193)                       (TR.STORE 198)                       (TR.STOREDONE 192)                       (TR.GO 199)                       (TR.GOACK 194)                       (TR.GOREPLY 131)                       (TR.ERROR 196))(DECLARE%: DOEVAL@COMPILE DONTCOPY(GLOBALVARS REMOTECACHESIZE REMOTEPAGELST))(ADDTOVAR DONTCOMPILEFNS DEBUGGINGTRSERVER)(FILESLOAD (LOADCOMP)       PUP VMEM))(PUTPROPS REMOTEVMEM COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1990))(DECLARE%: DONTCOPY  (FILEMAP (NIL (1098 9242 (CLEARPAGECACHE 1108 . 1244) (OPENREMOTEVMEMFILE 1246 . 1530) (CLOSEREMOTEVMEMFILE 1532 . 1808) (VMAPPAGE 1810 . 2620) (REMOTEPMAP 2622 . 3689) (REMOTERETURN 3691 . 4783) (REMOTESETWORD 4785 . 5812) (\TR.NOSERVER 5814 . 6036) (DEBUGGINGTRSERVER 6038 . 9240)))))STOP