(FILECREATED "19-Jun-86 12:32:16" {ERIS}<LISPCORE>SOURCES>FLOPPYWORK.;1 3836   

      changes to:  (VARS FLOPPYWORKCOMS)
                   (FNS \PFLOPPY.SCAVENGE.PMPAGE.AFTER1))


(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT FLOPPYWORKCOMS)

(RPAQQ FLOPPYWORKCOMS ((FNS \PFLOPPY.SCAVENGE.PMPAGE.AFTER1)))
(DEFINEQ

(\PFLOPPY.SCAVENGE.PMPAGE.AFTER1
  (LAMBDA (PLOCATION PPMPAGE LOCATION PMPAGE)                (* kbr: "19-Jun-86 12:29")
    (PROG (LENGTH TYPE FILETYPE FILEID)
        RETRY
            (COND
              ((NOT (\PFLOPPY.READPAGENO LOCATION PMPAGE T))
                                                             (* Couldn't read this LOCATION.
                                                             Assume misformatted track. *)
                (GLOBALRESOURCE \FLOPPY.IBMD512.FLOPPYIOCB (\FLOPPY.FORMATTRACKS 
                                                                       \FLOPPY.IBMD512.FLOPPYIOCB
                                                                                   (
                                                                     \PFLOPPY.PAGENOTODISKADDRESS
                                                                                     LOCATION)
                                                                                   1 T))
                (GO RETRY)))
            (COND
              ((NOT (OR (fetch (PMPAGE INTACT) of PMPAGE)
                            (IEQP LOCATION \PFLOPPYLASTDATAPAGE)))
                (RETURN)))                                 (* Force PMPAGE to be a legal marker page.
                                                             *)
            (replace (PMPAGE SEAL) of PMPAGE with SEAL.PMPAGE)
            (replace (PMPAGE VERSION) of PMPAGE with VERSION.PMPAGE)
            (SETQ LENGTH (IPLUS LOCATION (IMINUS PLOCATION)
                                    -1))
            (COND
              ((ZEROP LENGTH)
                (SETQ TYPE PMPAGEETYPE.FREE)
                (SETQ FILETYPE FILETYPE.FREE)
                (SETQ FILEID 0))
              (T (SETQ TYPE (fetch (PMPAGE NTYPE) of PPMPAGE))
                 (SETQ FILETYPE (fetch (PMPAGE NFILETYPE) of PPMPAGE))
                 (SETQ FILEID (COND
                     ((EQ TYPE PMPAGEETYPE.PFILELIST)
                       1)
                     (T 0)))))
            (replace (PMPAGE PLENGTH) of PMPAGE with LENGTH)
            (replace (PMPAGE PTYPE) of PMPAGE with TYPE)
            (replace (PMPAGE PFILETYPE) of PMPAGE with FILETYPE)
            (replace (PMPAGE PFILEID) of PMPAGE with FILEID)
                                                             (* Fix PPMPAGE wrt PMPAGE now *)
            (replace (PMPAGE NLENGTH) of PPMPAGE with LENGTH)
            (replace (PMPAGE NTYPE) of PPMPAGE with TYPE)
            (replace (PMPAGE NFILETYPE) of PPMPAGE with FILETYPE)
            (replace (PMPAGE NFILEID) of PPMPAGE with FILEID)
            (\PFLOPPY.WRITEPAGENO PLOCATION PPMPAGE)
            (COND
              ((IEQP LOCATION \PFLOPPYLASTDATAPAGE)
                (replace (PMPAGE NLENGTH) of PMPAGE with 0)
                (replace (PMPAGE NTYPE) of PMPAGE with PMPAGEETYPE.FREE)
                (replace (PMPAGE NFILETYPE) of PMPAGE with FILETYPE.FREE)
                (replace (PMPAGE NFILEID) of PMPAGE with 0)
                (\PFLOPPY.WRITEPAGENO LOCATION PMPAGE))))))
)
(PUTPROPS FLOPPYWORK COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (355 3755 (\PFLOPPY.SCAVENGE.PMPAGE.AFTER1 365 . 3753)))))
STOP
