(FILECREATED "29-Jul-86 10:52:39" ("compiled on " {DSK}VPCDISK.;2) "29-Jul-86 01:13:34" tcompl'd in "Xerox Lisp 29-Jul-86 ..." dated "29-Jul-86 01:25:07") (FILECREATED "28-Jul-86 16:40:40" {DSK}VPCDISK.;5 113373 changes to: (FNS PRINDIRSTR STR2INT \VPCF.READPAGES VPCDISK.FLOPPY.TO.FILE VPCDISK.FILE.TO.FLOPPY VPCDISK.INSTALL VPCDISK.CREATE.DEVICE \VPCDISK.CREATE.FLOPPY VPCDISK.DELETE.DEVICE VPCDISK.FREEPAGES VPCDISK.GETPARTITION# VPCDISK.CHANGE.PARTITION.TYPE \VPCF.INITIALIZE.DISK \VPCF.FIND.DIR.ENTRY \VPCF.DIR.LOOKUP \VPCF.SEARCH.DIR \VPCF.READ.DIR.ENTRY \VPCF.FIND.FREE.DIR.ENTRY \VPCF.WRITE.DIR.ENTRY \VPCF.READ.FILE.DATE \VPCF.WRITE.FILE.DATE \VPCF.ROOTDIRECTORY \VPCF.NEXT.DIR.CLUSTER \VPCF.CLUSTER.TO.FILEPOS \VPCF.MAPDIR \VPCF.READ.FAT.CHAIN \VPCF.GENERATEFILES \VPCF.FILEMATCH \VPCF.FILEMATCH1 \VPCF.NEXTFILEFN \VPCF.FILEINFOFN \VPCF.GETFILEINFO \VPCF.SETFILEINFO \VPCF.OPEN.BACKING.STREAM \VPCF.CLOSE.BACKING.STREAM \VPCF.EOFP \VPCF.SETFILEPTR \VPCF.GETFILEPTR \VPCF.SETEOFPTR \VPCF.GETEOFPTR \VPCF.UPDATEOF \VPCF.BACKFILEPTR \VPCF.OPENFILE \VPCF.OPEN.FOR.INPUT \VPCF.OPEN.FOR.OUTPUT \VPCF.OPEN.FOR.BOTH \VPCF.OPEN.FOR.APPEND \VPCF.REOPENFILE \VPCF.CLOSEFILE \VPCF.DELETEFILE \VPCF.SEARCHOFDS \VPCF.DELETEOFD \VPCF.ADDOFD \VPCF.PARSENAME \VPCF.GETFILENAME \VPCF.GET.DISK \VPCF.GETNEXTBUFFER \VPCF.READ.CLUSTER \VPCF.WRITE.CLUSTER \VPCF.GET.NEXT.CLUSTER \VPCF.ALLOCATE.CLUSTERS \VPCF.ALLOCATE.CLUSTER \VPCF.DEALLOCATE.CLUSTERS \VPCF.MARK.THE.FAT \VPCF.PRINT.FATS \VPCF.GET.CLUSTER.CHAIN \VPCF.DIRTEST) (VARS VPCDISKCOMS) previous date: "28-Jul-86 14:56:21" {DSK}VPCDISK.;4) PRINDIRSTR D1 (I 2 STREAM I 1 X I 0 NAME) 2@ A@kA B @B A@ HjBl !HkXI(33Q NCHARS 26Q PRIN3 20Q PRIN3 14Q SUBSTRING 3 NCHARS) NIL () STR2INT D1 (I 1 POS I 0 STR) )@Ad @AkAk Hdgjl I(25Q GNC 22Q SUBSTRING 10Q GNC 5 SUBSTRING) (35Q % ) () \VPCF.READPAGES D1 (P 1 FILE P 0 BUFFER I 2 NOERRORFLG I 1 WHATFOR I 0 STREAM) V@@ H#@Il li ZJAdgIHB @jgh(123Q SHOULDNT 100Q \VPCF.READ.CLUSTER 54Q \ALLOCBLOCK 43Q \GETBASEFIXP) (114Q WRITE 104Q STREAM 67Q READ 36Q VPCDISK 31Q VPCFFILE 25Q STREAM 11Q STREAM 3 STREAM) () VPCDISK.FLOPPY.TO.FILEA0001 D1 (NAME ERRORSET L (0 NIL) P 1 I F 3 RESETVARSLST F 4 STREAM F 5 FLOPPYTYPE F 6 \FLOPPY.SCRATCH.BUFFER F 7 \FLOPPY.SECTORSPERTRACK F 10Q \FLOPPY.TRACKSPERCYLINDER F 11Q RESETY) gThhhScgd gUdll'dlldlldlklk Scgd gUdll)dlldll dll ll ScWWl(kIdHhciV T8TVjnlJIkY(264Q \PFLOPPY.READPAGENO 223Q SETTOPVAL 220Q SHOULDNT 132Q GETTOPVAL 115Q SETTOPVAL 112Q SHOULDNT 26Q GETTOPVAL) (276Q FDEV 271Q STREAM 136Q \FLOPPY.SECTORSPERTRACK 126Q \FLOPPY.SECTORSPERTRACK 32Q \FLOPPY.TRACKSPERCYLINDER 22Q \FLOPPY.TRACKSPERCYLINDER 2 CLOSEF) () VPCDISK.FLOPPY.TO.FILE D1 (P 4 RESETZ P 3 RESETY P 2 LISPXHIST P 1 FLOPPYTYPE P 0 STREAM I 0 TOFILE F 5 \FLOPPY.SCRATCH.BUFFER F 6 LISPXHIST F 7 RESETVARSLST) ;@gg lU UjV!Wog hg\ Lh(67Q ERROR! 60Q RESETRESTORE 46Q VPCDISK.FLOPPY.TO.FILEA0001 17Q \PFLOPPY.READPAGENO 11Q OPENSTREAM) (54Q ERROR 43Q INTERNAL 6 NEW 3 OUTPUT) ( 40Q (VPCDISK.FLOPPY.TO.FILEA0001)) VPCDISK.FILE.TO.FLOPPYA0001 D1 (NAME ERRORSET L (0 NIL) P 1 I F 3 RESETVARSLST F 4 STREAM F 5 FLOPPYTYPE F 6 \FLOPPY.SCRATCH.BUFFER F 7 \FLOPPY.SECTORSPERTRACK F 10Q \FLOPPY.TRACKSPERCYLINDER F 11Q RESETY) gThhhScgd gUdll'dlldlldlklk Scgd gUdll)dlldll dll ll ScWWl(kIHhciT6TVjnlJIV IkY(313Q \PFLOPPY.WRITEPAGENO 223Q SETTOPVAL 220Q SHOULDNT 132Q GETTOPVAL 115Q SETTOPVAL 112Q SHOULDNT 26Q GETTOPVAL) (270Q FDEV 263Q STREAM 136Q \FLOPPY.SECTORSPERTRACK 126Q \FLOPPY.SECTORSPERTRACK 32Q \FLOPPY.TRACKSPERCYLINDER 22Q \FLOPPY.TRACKSPERCYLINDER 2 CLOSEF) () VPCDISK.FILE.TO.FLOPPY D1 (P 4 RESETZ P 3 RESETY P 2 LISPXHIST P 1 FLOPPYTYPE P 0 STREAM I 0 FROMFILE F 5 LISPXHIST F 6 RESETVARSLST) C@gg Hn H Hj U!Vog hg\ Lh(77Q ERROR! 70Q RESETRESTORE 56Q VPCDISK.FILE.TO.FLOPPYA0001 36Q SETFILEPTR 23Q SETFILEPTR 11Q OPENSTREAM) (64Q ERROR 53Q INTERNAL 6 OLD 3 INPUT) ( 50Q (VPCDISK.FILE.TO.FLOPPYA0001)) VPCDISK.INSTALL D1 NIL g`dgdgdgdgdgdgdgdg dkpdg>dg dgdgdgdg dg"dg.dg0dg@dg2dg&dg4dgdh(dgRdgNdg:dg8dg6dg*dg$ (337Q \DEFINEDEVICE) (331Q \GENERIC.READP 322Q NILL 313Q \GENERIC.BINS 304Q \GENERIC.BOUTS 275Q \GENERIC.RENAMEFILE 266Q NILL 257Q NILL 243Q \VPCF.DELETEFILE 234Q \VPCF.EOFP 225Q \VPCF.BACKFILEPTR 216Q \VPCF.GETEOFPTR 207Q \VPCF.SETEOFPTR 200Q \VPCF.GETFILEPTR 171Q \VPCF.SETFILEPTR 162Q \BUFFERED.PEEKBIN 153Q \BUFFERED.BOUT 144Q \BUFFERED.BIN 135Q \VPCF.GETFILENAME 126Q \VPCF.SETFILEINFO 117Q \VPCF.GETFILEINFO 110Q \VPCF.GETNEXTBUFFER 73Q \VPCF.GENERATEFILES 64Q \VPCF.CLOSEFILE 55Q \VPCF.OPENFILE 46Q NILL 37Q \VPCF.REOPENFILE 30Q TRUE 21Q NILL 12Q PCDISK 5 FDEVTYPE# 2 PCDISK) () VPCDISK.CREATE.DEVICEA0001A0002 D1 (I 0 STREAM F 0 WASOPEN) P@ (6 CLOSEF?) NIL () VPCDISK.CREATE.DEVICEA0001 D1 (NAME ERRORSET L (0 NIL) P 1 DISK F 4 DISK F 5 FDEV F 6 NAME F 7 DISKS F 10Q STREAM F 11Q FILE F 12Q RESETVARSLST F 13Q WASOPEN F 14Q RIGID F 15Q PARTITION# F 16Q DWIMWAIT F 17Q RESETY)  U(cWWg Wgg cgWhhhWcWHQhcsoi Vi oi i Wgo dg1T" UTW ()VIIiHXgoV WVWW cUTU(JK(Kci(276Q \VPCF.INITIALIZE.DISK 263Q SHOULDNT 257Q ERROR 210Q DREMOVE 175Q CLOSEF 154Q ASKUSER 137Q TERPRI 132Q PRIN1 121Q PRIN1 113Q PRIN1 37Q OPENSTREAM 23Q GETSTREAM) (312Q FDEV 305Q FDEV 245Q N 223Q VPCDISK 202Q FDEV 170Q VPCDISK 160Q Y 145Q Y 45Q VPCDISK.CREATE.DEVICEA0001A0002 34Q OLD 31Q BOTH 20Q BOTH 3 FDEV) ( 253Q "name in use" 151Q "Replace it? " 126Q "." 107Q "Already disk named ") VPCDISK.CREATE.DEVICE D1 (P 7 RESETZ P 6 RESETY P 5 LISPXHIST P 4 DISK P 3 DISKS P 2 STREAM P 1 FDEV P 0 WASOPEN I 3 PARTITION# I 2 RIGID I 1 FILE I 0 NAME F 10Q LISPXHIST F 11Q RESETVARSLST) H@d3o@ @ bA g 2W!Wog hg_ O@(104Q ERROR! 75Q RESETRESTORE 62Q VPCDISK.CREATE.DEVICEA0001 36Q \GETDEVICEFROMNAME 30Q OPENP 22Q U-CASE 15Q ERROR) (70Q ERROR 57Q INTERNAL 33Q PCDISK) ( 54Q (VPCDISK.CREATE.DEVICEA0001) 11Q "ILLEGAL ARG") \VPCDISK.CREATE.FLOPPY D1 (I 1 SECT.PER.TRACK I 0 SIDES) `dl@ dlA Adlkl lAllo HdlI @dkllAlllo HdlI @dkklAlklo nHdl I @Al(HdlI dl j g HdI&(275Q CREATE.MONITORLOCK 266Q \PUTBASEFIXP 255Q \PUTBASEFIXP 232Q \PUTBASEFIXP 213Q SHOULDNT 153Q \PUTBASEFIXP 140Q SHOULDNT 76Q \PUTBASEFIXP 63Q SHOULDNT 22Q \PUTBASEFIXP 12Q \PUTBASEFIXP) (272Q PCDISK 2 VPCDISKTYPE#) ( 210Q "INVALID NUMBER.OF.SIDES ON FLOPPY" 135Q "INVALID NUMBER.OF.SIDES ON FLOPPY" 60Q "INVALID SECTORS.PER.TRACK INDICATOR") VPCDISK.DELETE.DEVICE D1 (P 4 DISK P 2 DISK P 1 DISKS P 0 FDEV I 0 DEVICENAME) H0g X@ bH(YdKhZHJI (@@LLiK[(54Q DREMOVE 15Q U-CASE 10Q \GETDEVICEFROMNAME) (67Q VPCDISK 47Q FDEV 23Q FDEV 5 PCDISK) () VPCDISK.FREEPAGESA0001 D1 (NAME ERRORSET L (0 NIL) F 3 DISK F 4 STREAM F 5 CLUSTER F 6 WORD F 7 RESETY) S&hi S S"g cSl nSl SSl Sl knSl ljIc H;TSl Ud T T c UkjVnVjJkغUk԰JS ci(256Q \VPCF.CLOSE.BACKING.STREAM 200Q SETFILEPTR 170Q \GETBASEFIXP 140Q \GETBASEFIXP 117Q \GETBASEFIXP 105Q \GETBASEFIXP 65Q \GETBASEFIXP 50Q \GETBASEFIXP 34Q GETSTREAM 17Q \VPCF.OPEN.BACKING.STREAM 12Q OBTAIN.MONITORLOCK) (163Q VPCDISK 133Q VPCDISK 112Q VPCDISK 100Q VPCDISK 71Q VPCDISK 60Q VPCDISK 43Q VPCDISK 31Q BOTH 24Q VPCDISK 3 VPCDISK) () VPCDISK.FREEPAGES D1 (P 12Q RESETZ P 11Q RESETY P 10Q LISPXHIST P 7 DISK P 5 STREAM P 4 WORD P 3 CLUSTER P 2 DISK P 1 DISKS P 0 FDEV I 0 DEVNAME F 13Q LISPXHIST F 14Q RESETVARSLST) f @ bg QH(YdNhZCW! Wog h_@OOiN^g_ OO(140Q ERROR! 132Q RESETRESTORE 63Q VPCDISK.FREEPAGESA0001 13Q \GETDEVICEFROMNAME 3 U-CASE) (125Q ERROR 102Q VPCDISK 60Q INTERNAL 22Q FDEV 10Q PCDISK) ( 55Q (VPCDISK.FREEPAGESA0001)) VPCDISK.GETPARTITION# D1 (P 4 DISK P 2 DISK P 1 DISKS P 0 FDEV I 0 DEVICENAME) ^@d3o@ @ bg !H(YdKhZd+j J@LLiK[h(32Q \GETDEVICEFROMNAME 22Q U-CASE 15Q ERROR) (113Q VPCDISK 100Q VPCDISK 65Q VPCDISK 41Q FDEV 27Q PCDISK) ( 11Q "ILLEGAL ARG") VPCDISK.CHANGE.PARTITION.TYPEA0001A0002 D1 (I 0 STREAM F 0 WASOPEN) P@ (6 CLOSEF) NIL () VPCDISK.CHANGE.PARTITION.TYPEA0001 D1 (NAME ERRORSET F 0 STREAM F 1 PARTITION# F 2 FILE F 3 RESETVARSLST F 4 RESETY F 5 DOS?) R Rg cgPhhhScPn P lUP lP o QQlkQkcPlQln P o P o P P P UPkPj!ci(165Q ERROR 155Q CLOSEF 150Q MEMBER 136Q SETFILEPTR 77Q ERROR 67Q CLOSEF 46Q SETFILEPTR 14Q OPENSTREAM 3 STREAMP) (22Q VPCDISK.CHANGE.PARTITION.TYPEA0001A0002 11Q BOTH) ( 162Q "Not a valid rigid disk partition" 145Q (200Q 0) 74Q "Not a valid rigid disk") VPCDISK.CHANGE.PARTITION.TYPE D1 (P 5 RESETZ P 4 RESETY P 3 LISPXHIST P 2 STREAM P 1 DISK P 0 WASOPEN I 2 DOS? I 1 PARTITION# I 0 FILE F 6 LISPXHIST F 7 RESETVARSLST) *@ !V!Wog hg] ML(45Q ERROR! 40Q RESETRESTORE 26Q VPCDISK.CHANGE.PARTITION.TYPEA0001 3 OPENP) (34Q ERROR 23Q INTERNAL) ( 20Q (VPCDISK.CHANGE.PARTITION.TYPEA0001)) \VPCF.INITIALIZE.DISK D1 (P 20Q PARTITION.OFFSET P 17Q TOTAL#CYLINDERS P 16Q BPC P 15Q SPC P 14Q SPF P 13Q CF P 12Q BPS P 11Q BPD P 10Q D P 7 RS P 6 TS P 5 CYL P 4 S P 3 H P 2 DATA.OFFSET P 1 DIR.OFFSET P 0 DISK I 3 PARTITION# I 2 RIGID I 1 DEVNAME I 0 STREAM) B0Be@n @ lU@ lo CClkCkb@lCln `g _"dO"&XkHC@ o o @ @ @ @ dklo oi i HKHlMLll HlLl? @ @ @ HKHlMLll Hl Ll? Hl @ @ @ @ Hl@ @ @ @ Hl jo k_l _n_Hl Hl k_Hl n_ @O l @ _@ @ _@O l @ _o_@O l @ @ _Hll Hll HOHlO HlHl nn HlHl On HlOl n Hl OOOnYHl nغHl Onڱ@n @ dlll @dlkl 2dlll #dlkl lll o Xl lknYHl nغHlHln HlHl nn HlJ HlI HAH@"H(1453Q \PUTBASEFIXP 1441Q \PUTBASEFIXP 1426Q \PUTBASEFIXP 1413Q \GETBASEFIXP 1373Q \PUTBASEFIXP 1337Q \GETBASEFIXP 1314Q \GETBASEFIXP 1303Q ERROR 1273Q \VPCDISK.CREATE.FLOPPY 1256Q \VPCDISK.CREATE.FLOPPY 1240Q \VPCDISK.CREATE.FLOPPY 1221Q \VPCDISK.CREATE.FLOPPY 1203Q \VPCDISK.CREATE.FLOPPY 1163Q SETFILEPTR 1127Q \GETBASEFIXP 1100Q \GETBASEFIXP 1066Q \PUTBASEFIXP 1043Q \PUTBASEFIXP 1031Q \GETBASEFIXP 1011Q \PUTBASEFIXP 776Q \GETBASEFIXP 756Q \PUTBASEFIXP 730Q \PUTBASEFIXP 714Q \PUTBASEFIXP 667Q SETFILEPTR 641Q SETFILEPTR 611Q SETFILEPTR 571Q \GETBASEFIXP 552Q \GETBASEFIXP 541Q \GETBASEFIXP 510Q ERROR 476Q \GETBASEFIXP 464Q \PUTBASEFIXP 433Q \PUTBASEFIXP 402Q \PUTBASEFIXP 364Q \PUTBASEFIXP 317Q \PUTBASEFIXP 301Q \PUTBASEFIXP 245Q TERPRI 240Q PRIN1 227Q ERROR 173Q ERROR 163Q MEMBER 117Q CREATE.MONITORLOCK 104Q SETFILEPTR 45Q ERROR 21Q SETFILEPTR) (1472Q STREAM 1466Q VPCDISK 1457Q VPCDISK 1445Q VPCDISK 1433Q VPCDISK 1406Q VPCDISK 1400Q VPCDISK 1363Q VPCDISK 1351Q VPCDISK 1332Q VPCDISK 1307Q VPCDISK 1141Q VPCDISK 1122Q VPCDISK 1073Q VPCDISK 1050Q VPCDISK 1024Q VPCDISK 1016Q VPCDISK 771Q VPCDISK 763Q VPCDISK 747Q VPCDISK 735Q VPCDISK 721Q VPCDISK 705Q VPCDISK 564Q VPCDISK 545Q VPCDISK 534Q VPCDISK 471Q VPCDISK 440Q VPCDISK 407Q VPCDISK 371Q VPCDISK 346Q VPCDISK 335Q VPCDISK 306Q VPCDISK 263Q VPCDISK 252Q VPCDISK 145Q VPCDISK 134Q VPCDISK 114Q PCDISK 110Q VPCDISKTYPE#) ( 1300Q "NOT A VALID VIRTUAL PC FLOPPY FILE" 653Q 1.5 505Q "ERROR: Unallocated Partiton" 234Q "Warning! Non-DOS partition" 224Q "Only 12-bit FATs currently supported" 170Q "Not a valid rigid disk partition" 160Q (200Q 0) 42Q "Not a valid rigid disk") PCFLOPPY.INSTALL D1 (F 0 \PCFLOPPY.FDEV) g`dgdgdgdgdgdgdgdg dkpdg dgdgdgdg dg"dgdh(dgdgdgdgRdgNdg:dg8dg6dg4dg2dg0dg.dg*dg$c P (345Q \MAKE.PMAP.DEVICE 341Q \DEFINEDEVICE) (331Q \GENERIC.READP 322Q NILL 313Q \IS.NOT.RANDACCESSP 304Q \ILLEGAL.DEVICEOP 275Q \IS.NOT.RANDACCESSP 266Q \ILLEGAL.DEVICEOP 257Q \GENERIC.BINS 250Q \GENERIC.BOUTS 241Q \GENERIC.RENAMEFILE 232Q NILL 223Q NILL 214Q NILL 205Q \PCFLOPPY.WRITEPAGES 176Q \PCFLOPPY.READPAGES 162Q NILL 153Q \BUFFERED.PEEKBIN 144Q \BUFFERED.BOUT 135Q \BUFFERED.BIN 126Q NILL 117Q NILL 110Q NILL 73Q NILL 64Q \PCFLOPPY.CLOSEFILE 55Q \PCFLOPPY.OPENFILE 46Q NILL 37Q NILL 30Q NILL 21Q NILL 12Q PCFLOPPY 5 FDEVTYPE# 2 PCFLOPPY) () \PCFLOPPY.OPEN.FOR.APPEND D1 (I 1 FDEV I 0 NAME F 2 \FLOPPY.SECTORSPERTRACK F 3 \FLOPPY.TRACKSPERCYLINDER) l dAd@djdjRSl(HdIRSl(HdI dj dn0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dhNIL (174Q \STREAM.DEFAULT.MAXBUFFERS 160Q FILELINELENGTH 151Q \FILEOUTCHARFN 142Q \EOSERROR 133Q \NOIMAGEOPS 124Q \STREAM.NOT.OPEN 115Q \STREAM.NOT.OPEN) () \PCFLOPPY.OPEN.FOR.BOTH D1 (I 1 FDEV I 0 NAME F 2 \FLOPPY.SECTORSPERTRACK F 3 \FLOPPY.TRACKSPERCYLINDER) l dAd@djdjdjRSl(HdI dj dn0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dhNIL (161Q \STREAM.DEFAULT.MAXBUFFERS 145Q FILELINELENGTH 136Q \FILEOUTCHARFN 127Q \EOSERROR 120Q \NOIMAGEOPS 111Q \STREAM.NOT.OPEN 102Q \STREAM.NOT.OPEN) () \PCFLOPPY.OPEN.FOR.INPUT D1 (I 1 FDEV I 0 NAME F 2 \FLOPPY.SECTORSPERTRACK F 3 \FLOPPY.TRACKSPERCYLINDER) l dAd@djdjdjRSl(HdI dj dn0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dhNIL (161Q \STREAM.DEFAULT.MAXBUFFERS 145Q FILELINELENGTH 136Q \FILEOUTCHARFN 127Q \EOSERROR 120Q \NOIMAGEOPS 111Q \STREAM.NOT.OPEN 102Q \STREAM.NOT.OPEN) () \PCFLOPPY.OPEN.FOR.OUTPUT D1 (I 1 FDEV I 0 NAME) l dAd@djdjdjdj dj dn0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dhNIL (146Q \STREAM.DEFAULT.MAXBUFFERS 132Q FILELINELENGTH 123Q \FILEOUTCHARFN 114Q \EOSERROR 105Q \NOIMAGEOPS 76Q \STREAM.NOT.OPEN 67Q \STREAM.NOT.OPEN) () \PCFLOPPY.OPENFILE D1 (P 0 STREAM I 4 FDEV I 3 PARAMETERS I 2 RECOG I 1 ACCESS I 0 NAME) :Adg@D g@D Adg@D g@D (67Q SHOULDNT 63Q \PCFLOPPY.OPEN.FOR.APPEND 50Q \PCFLOPPY.OPEN.FOR.BOTH 32Q \PCFLOPPY.OPEN.FOR.OUTPUT 17Q \PCFLOPPY.OPEN.FOR.INPUT) (54Q APPEND 40Q BOTH 23Q OUTPUT 7 INPUT) () \PCFLOPPY.CLOSEFILE D1 (I 0 STREAM) @ @(3 \CLEARMAP) NIL () \PCFLOPPY.READPAGES D1 (P 2 BUFFER P 1 I I 2 BUFFERS I 1 FIRSTPAGE# I 0 STREAM) &BddhkHhAIJ HIkԹ(32Q \PFLOPPY.READPAGENO) NIL () \PCFLOPPY.WRITEPAGES D1 (P 2 BUFFER P 1 I I 2 BUFFERS I 1 FIRSTPAGE# I 0 STREAM) &BddhkHhAIJ HIkԹ(32Q \PFLOPPY.WRITEPAGENO) NIL () \VPCF.FIND.DIR.ENTRY D1 (P 6 DIR P 5 ATTR P 4 EXT P 3 NAME P 2 UNPK P 1 CURDIR P 0 DIRLIST I 3 DONTCREATE.FILE I 2 DONTCREATE.DIRECTORY I 1 DISK I 0 FILENAME) J@ A H Jg'Jg'jHdNIAB YKLMIAhC (107Q \VPCF.SEARCH.DIR 66Q \VPCF.DIR.LOOKUP 22Q UNPACKFILENAME 12Q \VPCF.ROOTDIRECTORY 3 \VPCF.PARSENAME) (41Q EXTENSION 31Q NAME) () \VPCF.DIR.LOOKUPA0001 D1 (I 0 ENTRY) @ljhNIL (3 VPCFDIRENTRY) () \VPCF.DIR.LOOKUP D1 (P 1 CLUSTER P 0 ENTRY I 3 DONTCREATE I 2 DISK I 1 CURDIR I 0 DIRNAME) G@hlABgC HdHIB IB Bl IhhB o@ (104Q ERROR 74Q \VPCF.CLOSE.BACKING.STREAM 57Q \GETBASEFIXP 46Q \VPCF.CLUSTER.TO.FILEPOS 41Q \VPCF.CLUSTER.TO.FILEPOS 15Q \VPCF.SEARCH.DIR) (52Q VPCDISK 26Q VPCFDIRENTRY 10Q \VPCF.DIR.LOOKUPA0001) ( 100Q "DIRECTORY NOT FOUND") \VPCF.SEARCH.DIR D1 (P 12Q ENTRYLOC P 10Q LASTDIR P 7 ENTRY P 6 PTR P 5 FILELOC P 4 LOC P 3 LEN P 2 FINISHED P 1 EXTENSION P 0 STREAM I 6 DONTCREATE I 5 TESTFN I 4 DISK I 3 CURDIR I 2 ATTRIBUTE I 1 EXTENSION I 0 FILENAME) D"g Ad rJCl C O/OjnOO bjOOCl OCl GDHO _Ol __iih'O@OIEOkEOiC _CD bjMIFhOD ^d;`d@dIdBdlj djdlj dN _DHO O(365Q \VPCF.WRITE.DIR.ENTRY 346Q \PUTBASEFIXP 331Q \PUTBASEFIXP 272Q \VPCF.FIND.FREE.DIR.ENTRY 247Q \VPCF.NEXT.DIR.CLUSTER 237Q COPY 134Q \VPCF.READ.DIR.ENTRY 70Q \FZEROP 21Q PACKC 13Q GETSTREAM) (301Q VPCFDIRENTRYTYPE# 205Q VPCFDIRENTRY 172Q VPCFDIRENTRY 10Q BOTH 3 VPCDISK) () \VPCF.READ.DIR.ENTRYA0001 D1 (NAME ERRORSET P 6 SIZE P 5 START P 4 IDATE P 3 ATTRIBUTE P 2 EXT P 1 NAME P 0 BYTE F 24Q STREAM F 25Q PTR F 26Q DISK F 27Q RESETY F 30Q ALL) W,&hi W(W* W( HjHdlݿW0`Hlk2O O%W( _&O$O&h_$_"O k_ O&&_$O" _dOlk2O O%W( _&O$O&h_$_"O k_ O&&_$O" _dOW( _dOjll __OOW( Ok__dlO djdljHjilll Hlk2O O%W( _&O$O&h_$_"O k_ O&&_$O" l lk2O O%W( _&O$O&h_$_"O k_ O&&_$O" W( ll __OOW( Ok_W( W( W( ؽW( W( W( W( ؾ`dIdJdKdlL dMdlN dW* c.i(755Q \PUTBASEFIXP 740Q \PUTBASEFIXP 647Q \VPCF.READ.FILE.DATE 601Q PACKC 576Q DREMOVE 505Q PACKC 502Q DREMOVE 347Q \PUTBASEFIXP 251Q PACKC 152Q PACKC 23Q SETFILEPTR 13Q OBTAIN.MONITORLOCK) (710Q VPCFDIRENTRYTYPE# 61Q VPCFDIRENTRYTYPE# 4 VPCDISK) () \VPCF.READ.DIR.ENTRY D1 (P 2 RESETZ P 1 RESETY P 0 LISPXHIST I 3 ALL I 2 PTR I 1 STREAM I 0 DISK F 3 LISPXHIST F 4 RESETVARSLST) "S!Tog hgZ JI(35Q ERROR! 30Q RESETRESTORE 16Q \VPCF.READ.DIR.ENTRYA0001) (24Q ERROR 13Q INTERNAL) ( 10Q (\VPCF.READ.DIR.ENTRYA0001)) \VPCF.FIND.FREE.DIR.ENTRY D1 (P 12Q ENTRYLOC P 10Q LASTDIR P 7 CLUSTER P 6 ENTRY P 5 PTR P 4 FILELOC P 3 LOC P 2 LEN P 1 FINISHED P 0 STREAM I 1 DISK I 0 CURDIR) A"g Ik@l @ O/OjLOO @jOO@l O@l %AHOi ^E o ,Ni@A bLO(A o  @ _Ol __uA _ObdAO @O@OA @OA Al @(335Q \GETBASEFIXP 324Q \VPCF.CLUSTER.TO.FILEPOS 313Q \VPCF.CLUSTER.TO.FILEPOS 276Q \VPCF.MARK.THE.FAT 256Q \VPCF.ALLOCATE.CLUSTER 232Q COPY 217Q ERROR 210Q \VPCF.CLOSE.BACKING.STREAM 166Q \VPCF.NEXT.DIR.CLUSTER 152Q MEMBER 142Q CHCON 125Q \VPCF.READ.DIR.ENTRY 60Q \FZEROP 13Q GETSTREAM) (330Q VPCDISK 223Q VPCFDIRENTRY 135Q VPCFDIRENTRY 10Q BOTH 3 VPCDISK) ( 214Q "NO MORE DIRECTORY ENTRIES LEFT IN THE ROOT DIRECTORY" 147Q (345Q 0)) \VPCF.WRITE.DIR.ENTRYA0001 D1 (NAME ERRORSET P 0 DATEFILEPTR F 13Q STREAM F 14Q DIRENTRY F 15Q DISK F 16Q RESETY) W&hi  WW WlW WlW WW!ll JIWj!JkZW W WW[Ll!KLl!WWl __On]Nl!MNl!OOn__Ol!OOl!WH WlW hci(335Q \PUTBASEFIXP 332Q \VPCF.READ.FILE.DATE 315Q SETFILEPTR 214Q \GETBASEFIXP 146Q \VPCF.WRITE.FILE.DATE 140Q GETFILEPTR 71Q PRINDIRSTR 52Q PRINDIRSTR 33Q SETFILEPTR 13Q OBTAIN.MONITORLOCK) (323Q VPCFDIRENTRY 207Q VPCFDIRENTRY 156Q VPCFDIRENTRY 101Q VPCFDIRENTRY 60Q VPCFDIRENTRY 41Q VPCFDIRENTRY 26Q VPCFDIRENTRY 4 VPCDISK) () \VPCF.WRITE.DIR.ENTRY D1 (P 2 RESETZ P 1 RESETY P 0 LISPXHIST I 2 DIRENTRY I 1 STREAM I 0 DISK F 3 LISPXHIST F 4 RESETVARSLST) "S!Tog hgZ JI(35Q ERROR! 30Q RESETRESTORE 16Q \VPCF.WRITE.DIR.ENTRYA0001) (24Q ERROR 13Q INTERNAL) ( 10Q (\VPCF.WRITE.DIR.ENTRYA0001)) \VPCF.READ.FILE.DATE D1 (P 12Q DAY P 11Q MONTH P 10Q YEAR P 7 SECS P 6 MIN P 5 HOUR P 3 BYTE3 P 2 BYTE4 P 1 BYTE1 P 0 BYTE2 I 0 STREAM) [ @ @ @ @ IIllHl HllKk nKklJl Jl OOkټjLLjOMNO (130Q \PACKDATE 70Q RSH 50Q RSH 33Q RSH) NIL () \VPCF.WRITE.FILE.DATE D1 (P 12Q SECOND P 11Q MINUTE P 10Q HOUR P 7 YEAR P 6 MONTH P 5 DAY P 0 IDATE I 0 STREAM) ho AHk Hl Hl Hl Hl  Hl  @Ol OlOغYJl!IJl!@OlPl NlMؼ[Ll!KLl!h(74Q STR2INT 63Q STR2INT 52Q STR2INT 41Q STR2INT 30Q STR2INT 17Q STR2INT 7 GDATE) NIL ( 4 (DATEFORMAT NUMBER.OF.MONTH)) \VPCF.ROOTDIRECTORY D1 (I 0 DISK) )@l @l @l nhdh(32Q \GETBASEFIXP 21Q \GETBASEFIXP 10Q \GETBASEFIXP) (25Q VPCDISK 14Q VPCDISK 3 VPCDISK) () \VPCF.NEXT.DIR.CLUSTER D1 (P 0 CLUSTER I 1 DISK I 0 CURDIR) C @:@A XYA HA Al I@@bn@(44Q \GETBASEFIXP 33Q \VPCF.CLUSTER.TO.FILEPOS 26Q \VPCF.CLUSTER.TO.FILEPOS 20Q \VPCF.GET.NEXT.CLUSTER) (37Q VPCDISK) () \VPCF.CLUSTER.TO.FILEPOS D1 (I 1 DISK I 0 CLUSTER) Al @lAl (25Q \GETBASEFIXP 10Q \GETBASEFIXP) (20Q VPCDISK 3 VPCDISK) () \VPCF.MAPDIR D1 (P 7 ENTRYLOC P 5 ENTRY P 4 FILELOC P 3 LOC P 2 LEN P 1 FINISHED P 0 STREAM I 2 FN I 1 DISK I 0 CURDIR) z A QIY@l @O/Oj:OO .jOO@l O@l AHO ]ii@A bLMkBgOl __(134Q \VPCF.NEXT.DIR.CLUSTER 114Q \VPCF.READ.DIR.ENTRY 50Q \FZEROP 3 \VPCF.OPEN.BACKING.STREAM) (152Q STOP) () \VPCF.READ.FAT.CHAIN D1 (P 0 CLUSTER I 1 DISK I 0 STARTCLUSTER) %@1nHHJKhZHA K&I(31Q \VPCF.GET.NEXT.CLUSTER) NIL () \VPCF.GENERATEFILES D1 (P 0 DISK I 1 PATTERN I 0 FDEV) A@ AH gghIh(14Q \VPCF.FILEMATCH 4 \VPCF.GET.DISK) (23Q \VPCF.FILEINFOFN 20Q \VPCF.NEXTFILEFN) () \VPCF.FILEMATCHA0001A0002 D1 (I 0 DISK) @$g@ (17Q \VPCF.CLOSE.BACKING.STREAM) (10Q DIR 3 VPCDISK) () \VPCF.FILEMATCHA0001 D1 (NAME ERRORSET F 0 DISK F 1 RESETVARSLST F 2 FILENAME F 3 RESETY F 4 CURDIR F 5 FILELST) YgPhhhQcP$P P Pg$R ghghghghgR hTP i c ci(121Q SORT 115Q \VPCF.FILEMATCH1 106Q PACKFILENAME 56Q DIRECTORY.MATCH.SETUP 37Q \VPCF.OPEN.BACKING.STREAM 32Q \VPCF.OPEN.BACKING.STREAM) (101Q BODY 75Q VERSION 71Q EXTENSION 65Q NAME 61Q DIRECTORY 47Q DIR 44Q VPCDISK 23Q VPCDISK 2 \VPCF.FILEMATCHA0001A0002) () \VPCF.FILEMATCH D1 (P 6 RESETZ P 5 RESETY P 4 LISPXHIST P 3 FILELST P 2 ENTRY P 1 ENTRYLOC P 0 CURDIR I 1 DISK I 0 FILENAME F 7 LISPXHIST F 10Q RESETVARSLST) +A 1W!Wog hg^ NM(46Q ERROR! 41Q RESETRESTORE 27Q \VPCF.FILEMATCHA0001 3 \VPCF.ROOTDIRECTORY) (35Q ERROR 24Q INTERNAL) ( 21Q (\VPCF.FILEMATCHA0001)) \VPCF.FILEMATCH1A0001 D1 (P 1 TRIALFILE P 0 CLUSTER I 0 ENTRY F 2 MATCHLIST F 3 DISK F 4 PATTERN F 5 NAMEBODY F 6 DIRS) @l.@ jg@lj@ljHRTUV1@ HS HS Sl HhhS  cg@ Tg@g@gVgU Y I@Rc(240Q DIRECTORY.MATCH 234Q PACKFILENAME 173Q PACK* 170Q MKSTRING 151Q \NCONC2 146Q \VPCF.FILEMATCH1 131Q \GETBASEFIXP 120Q \VPCF.CLUSTER.TO.FILEPOS 113Q \VPCF.CLUSTER.TO.FILEPOS 106Q MKSTRING 23Q CHCON1) (227Q BODY 223Q DIRECTORY 216Q VPCFDIRENTRY 212Q EXTENSION 205Q VPCFDIRENTRY 201Q NAME 163Q VPCFDIRENTRY 157Q > 124Q VPCDISK 101Q VPCFDIRENTRY 55Q VPCFDIRENTRY 37Q VPCFDIRENTRY 32Q This 16Q VPCFDIRENTRY 3 VPCFDIRENTRY) () \VPCF.FILEMATCH1 D1 (P 2 ENTRY P 1 ENTRYLOC P 0 MATCHLIST I 4 DISK I 3 CURDIR I 2 DIRS I 1 NAMEBODY I 0 PATTERN) 0CDg H(12Q \VPCF.MAPDIR) (7 \VPCF.FILEMATCH1A0001) () \VPCF.NEXTFILEFN D1 (P 0 CURRENTFILE I 0 GENERATORSTATE) 6@@d@d HH $gH @(56Q \VPCF.CLOSE.BACKING.STREAM 53Q \VPCF.GET.DISK 34Q \VPCF.GET.DISK) (44Q DIR 37Q VPCDISK) () \VPCF.FILEINFOFN D1 (P 0 ENTRY I 1 FIELD I 0 GENERATORSTATE) ]@AdgHl gHl AdgHl glAgHl nk(124Q \GETBASEFIXP 73Q \GETBASEFIXP 51Q \GETBASEFIXP 32Q GDATE 27Q \GETBASEFIXP) (117Q VPCFDIRENTRY 110Q SIZE 77Q BYTESIZE 66Q VPCFDIRENTRY 57Q LENGTH 44Q VPCFDIRENTRY 36Q ICREATIONDATE 22Q VPCFDIRENTRY 13Q CREATIONDATE) () \VPCF.GETFILEINFOA0001A0002 D1 (I 0 STREAM F 0 WASOPEN) P@ (6 CLOSEF) NIL () \VPCF.GETFILEINFOA0001 D1 (NAME ERRORSET F 0 STREAM F 1 ENTRY F 2 FILE F 3 RESETVARSLST F 4 RESETY F 5 ATTRIBUTE F 6 PC.TEXTFILE.EXTENSIONS F 7 ANSWER) R R g cgPhhhScP cUdgQV gsgndgP nkذ[dglPdgP CdgdgQl (dgdgQl dg𑿅ghcci(252Q \GETBASEFIXP 222Q GDATE 217Q \GETBASEFIXP 167Q \VPCF.GETEOFPTR 131Q \VPCF.GETEOFPTR 103Q MEMB 17Q OPENSTREAM 11Q U-CASE 3 STREAMP) (266Q IREADDATE 257Q READDATE 245Q VPCFDIRENTRY 236Q IWRITEDATE 230Q ICREATIONDATE 212Q VPCFDIRENTRY 203Q WRITEDATE 175Q CREATIONDATE 160Q LENGTH 145Q BYTESIZE 122Q SIZE 114Q BINARY 107Q TEXT 75Q VPCFDIRENTRY 65Q TYPE 53Q VPCFFILE 46Q STREAM 25Q \VPCF.GETFILEINFOA0001A0002 14Q INPUT) () \VPCF.GETFILEINFO D1 (P 6 RESETZ P 5 RESETY P 4 LISPXHIST P 3 ANSWER P 2 ENTRY P 1 STREAM P 0 WASOPEN I 1 ATTRIBUTE I 0 FILE F 7 LISPXHIST F 10Q RESETVARSLST) +@ 1W!Wog hg^ NK(47Q ERROR! 41Q RESETRESTORE 27Q \VPCF.GETFILEINFOA0001 3 OPENP) (35Q ERROR 24Q INTERNAL) ( 21Q (\VPCF.GETFILEINFOA0001)) \VPCF.SETFILEINFOA0001A0002 D1 (I 0 STREAM F 0 WASOPEN) P@ (6 CLOSEF) NIL () \VPCF.SETFILEINFOA0001 D1 (NAME ERRORSET F 0 STREAM F 1 FILE F 2 RESETVARSLST F 3 RESETY F 4 ENTRY F 5 ATTRIBUTE F 6 ITSVALUE) BQ Q g cgPhhhRcP cUgPV ci(74Q \VPCF.SETEOFPTR 17Q OPENSTREAM 11Q U-CASE 3 STREAMP) (64Q LENGTH 53Q VPCFFILE 46Q STREAM 25Q \VPCF.SETFILEINFOA0001A0002 14Q BOTH) () \VPCF.SETFILEINFO D1 (P 5 RESETZ P 4 RESETY P 3 LISPXHIST P 2 ENTRY P 1 STREAM P 0 WASOPEN I 2 ITSVALUE I 1 ATTRIBUTE I 0 FILE F 6 LISPXHIST F 7 RESETVARSLST) *@ !V!Wog hg] ML(45Q ERROR! 40Q RESETRESTORE 26Q \VPCF.SETFILEINFOA0001 3 OPENP) (34Q ERROR 23Q INTERNAL) ( 20Q (\VPCF.SETFILEINFOA0001)) \VPCF.OPEN.BACKING.STREAM D1 (I 0 DISK F 0 \FLOPPY.TRACKSPERCYLINDER F 1 \FLOPPY.SECTORSPERTRACK F 2 \PCFLOPPY.TRACKSPERCYLINDER.SAVE F 3 \PCFLOPPY.SECTORSPERTRACK.SAVE) q@" &@$@"g %o@" @"g @i$@"g"PcQc@l c@l c(153Q \GETBASEFIXP 137Q \GETBASEFIXP 72Q OPENSTREAM 54Q ERROR 35Q GETSTREAM 10Q OPENP) (146Q VPCDISK 132Q VPCDISK 113Q {PCFLOPPY} 106Q VPCDISK 76Q VPCDISK 67Q BOTH 62Q VPCDISK 47Q VPCDISK 32Q BOTH 25Q VPCDISK 16Q VPCDISK 3 VPCDISK) ( 43Q "FILE IN USE") \VPCF.CLOSE.BACKING.STREAM D1 (P 5 DEVICE P 3 DISKS P 2 FILENAME P 1 DISKSTREAM P 0 FDEV I 0 DISK F 6 \VPCF.OPENFILES F 7 \PCFLOPPY.TRACKSPERCYLINDER.SAVE F 10Q \FLOPPY.SECTORSPERTRACK F 11Q \FLOPPY.TRACKSPERCYLINDER F 12Q \PCFLOPPY.SECTORSPERTRACK.SAVE) {g @"g !H(@"@V6@h$KL(i#I I @"g WcWch]"JM$hL\(110Q CLOSEF 102Q OPENP 24Q GETSTREAM 5 \GETDEVICEFROMNAME) (156Q VPCDISK 145Q VPCDISK 122Q {PCFLOPPY} 115Q VPCDISK 56Q VPCDISK 42Q VPCDISK 33Q FDEV 21Q BOTH 14Q VPCDISK 2 PCDISK) () \VPCF.EOFP D1 (P 2 CLUSTERSIZE P 1 DISK P 0 FILE I 0 STREAM) p@ HYl @Rk@@ @@J@ h@@ @J @ h(143Q IMOD 57Q \VPCF.UPDATEOF 27Q \GETBASEFIXP) (147Q STREAM 135Q STREAM 124Q STREAM 116Q STREAM 103Q STREAM 72Q STREAM 64Q STREAM 50Q STREAM 36Q STREAM 22Q VPCDISK 14Q VPCFFILE 3 STREAM) () \VPCF.SETFILEPTR D1 (P 12Q CLUSTER P 11Q CPAGE P 10Q NEXTCLUSTER P 7 FULLNAME P 6 NEWCOFFSET P 5 NEWCPAGE P 4 CLUSTERSIZE P 2 DISK P 1 DIRENTRY P 0 FILE I 1 FILEPOS I 0 STREAM) @ 1HHZl a AL۽ALܾI_@ jH@i @j @ @Mj_HI[K_MO>nOlOHOOJ@ o _HOOk_@h@j@NA(236Q \VPCF.GET.NEXT.CLUSTER 233Q MEMBER 224Q \GETACCESS 126Q \VPCF.UPDATEOF 110Q \VPCF.WRITE.CLUSTER 36Q \GETBASEFIXP) (305Q STREAM 276Q STREAM 267Q STREAM 245Q VPCFFILE 210Q VPCFFILE 150Q VPCFDIRENTRY 144Q VPCFFILE 132Q STREAM 115Q STREAM 102Q STREAM 66Q STREAM 55Q VPCFDIRENTRY 31Q VPCDISK 23Q VPCFFILE 14Q VPCFFILE 3 STREAM) ( 230Q (OUTPUT BOTH APPEND)) \VPCF.GETFILEPTR D1 (P 2 CLUSTERSIZE P 1 DISK P 0 FILE I 1 FILEPOS I 0 STREAM) ,@ HYl @@J(27Q \GETBASEFIXP) (44Q STREAM 36Q STREAM 22Q VPCDISK 14Q VPCFFILE 3 STREAM) () \VPCF.BACKFILEPTR D1 (I 0 STREAM) z@Rlo@@ @ @@kjHHj@j@j,@j@d k @@mHIIh(137Q \VPCF.SETFILEPTR 132Q \VPCF.GETFILEPTR 40Q \VPCF.UPDATEOF 33Q ERROR) (150Q STREAM 144Q STREAM 120Q STREAM 106Q STREAM 75Q STREAM 50Q STREAM 44Q STREAM 23Q STREAM 3 STREAM) ( 17Q "BACKFILEPTR illegal on APPEND-ONLY access") \VPCF.SETEOFPTR D1 (P 7 I P 5 RETURNVALUE P 4 DISKSTREAM P 3 CLUSTER P 2 CLUSTERSIZE P 1 DISK P 0 FILE I 1 FILEPOS I 0 STREAM) @ HYl I i@ jH@i @j @ AJ@ @Rlj@ IH@AJ I@ I oI M@AJ @AJ HI LKI AJ Il kAJON=Lj!Ok_h]AJ@ @RljIH@AJ zh]w@@ \@@ @@ @@ @@ @h@jHnHnM(421Q \VPCF.DEALLOCATE.CLUSTERS 320Q \GETBASEFIXP 306Q SETFILEPTR 277Q \VPCF.CLUSTER.TO.FILEPOS 267Q LAST 264Q \VPCF.GET.CLUSTER.CHAIN 213Q ERROR 202Q \VPCF.CLOSE.BACKING.STREAM 175Q \VPCF.DELETEOFD 166Q \VPCF.ALLOCATE.CLUSTERS 107Q \VPCF.UPDATEOF 71Q \VPCF.WRITE.CLUSTER 36Q \VPCF.OPEN.BACKING.STREAM 27Q \GETBASEFIXP) (577Q VPCFFILE 565Q VPCFFILE 555Q STREAM 545Q STREAM 534Q STREAM 530Q STREAM 520Q STREAM 512Q STREAM 501Q STREAM 473Q STREAM 462Q STREAM 456Q STREAM 444Q STREAM 436Q STREAM 377Q STREAM 365Q STREAM 313Q VPCDISK 256Q VPCFDIRENTRY 251Q VPCFFILE 237Q STREAM 225Q STREAM 152Q STREAM 132Q STREAM 117Q STREAM 76Q STREAM 63Q STREAM 47Q STREAM 22Q VPCDISK 14Q VPCFFILE 3 STREAM) ( 207Q "\VPCF.SETEOFPTR: DISK SPACE EXHAUSTED") \VPCF.GETEOFPTR D1 (P 2 CLUSTERSIZE P 1 DISK P 0 FILE I 0 STREAM) 0@ HYl @ @ @ J(36Q \VPCF.UPDATEOF 27Q \GETBASEFIXP) (50Q STREAM 42Q STREAM 22Q VPCDISK 14Q VPCFFILE 3 STREAM) () \VPCF.UPDATEOF D1 (P 4 BYTESPERCLUSTER P 3 EOFFSET P 2 EPAGE P 1 COFFSET P 0 CPAGE I 0 STREAM) @Rlj@Rlj@@@ @ @ l LdK JKLԺKL @J @K LIHILԸIL HJ @K@H @IdKK @LHJ@H @I h(174Q IMOD 134Q IMOD 107Q \GETBASEFIXP) (271Q STREAM 261Q STREAM 244Q STREAM 226Q STREAM 216Q STREAM 206Q STREAM 151Q STREAM 141Q STREAM 102Q VPCDISK 75Q VPCFFILE 70Q STREAM 62Q STREAM 54Q STREAM 46Q STREAM 40Q STREAM 20Q STREAM 3 STREAM) () \VPCF.OPENFILE D1 (P 1 STREAM P 0 DISK I 4 FDEV I 3 PARAMETERS I 2 RECOG I 1 ACCESS I 0 NAME) R@D Adg@HD -g@HD Adg@HD g@HD YH@ HI I(116Q \VPCF.ADDOFD 110Q \VPCF.SEARCHOFDS 102Q SHOULDNT 76Q \VPCF.OPEN.FOR.APPEND 62Q \VPCF.OPEN.FOR.BOTH 42Q \VPCF.OPEN.FOR.OUTPUT 25Q \VPCF.OPEN.FOR.INPUT 4 \VPCF.GET.DISK) (66Q APPEND 51Q BOTH 32Q OUTPUT 14Q INPUT) () \VPCF.OPEN.FOR.INPUT D1 (P 5 FULLNAME P 4 FILE P 3 DIRENTRY P 2 STREAM P 1 EXTENSION P 0 NAMEFIELD I 2 FDEV I 1 DISK I 0 NAME) w @g @g A  ghghg@ Aid [dA o@ gBgAgHgIg@ ]`dKdAKdNK_dOdMKA _dO \l dBdMdL djdjdjKl Al _dO Kl Al _dO Al _dO0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dh(413Q \GETBASEFIXP 370Q \GETBASEFIXP 357Q \GETBASEFIXP 334Q \GETBASEFIXP 323Q \GETBASEFIXP 237Q \VPCF.READ.FAT.CHAIN 146Q PACKFILENAME 103Q ERROR 72Q \VPCF.CLOSE.BACKING.STREAM 63Q \VPCF.FIND.DIR.ENTRY 55Q PACKFILENAME 51Q U-CASE 27Q \VPCF.OPEN.BACKING.STREAM 23Q U-CASE 20Q FILENAMEFIELD 11Q U-CASE 6 FILENAMEFIELD) (516Q \STREAM.DEFAULT.MAXBUFFERS 502Q FILELINELENGTH 473Q \FILEOUTCHARFN 464Q \EOSERROR 455Q \NOIMAGEOPS 446Q \STREAM.NOT.OPEN 437Q \STREAM.NOT.OPEN 406Q VPCDISK 363Q VPCDISK 352Q VPCFDIRENTRY 327Q VPCDISK 316Q VPCFDIRENTRY 231Q VPCFDIRENTRY 205Q VPCFDIRENTRY 171Q VPCFDIRENTRY 152Q VPCFFILETYPE# 141Q BODY 135Q EXTENSION 131Q NAME 124Q VPCDISK 120Q DEVICE 113Q FDEV 107Q HOST 45Q BODY 41Q HOST 35Q DEVICE 15Q EXTENSION 3 NAME) ( 77Q "FILE NOT FOUND") \VPCF.OPEN.FOR.OUTPUT D1 (P 6 CLUSTER P 5 FULLNAME P 4 FILE P 3 DIRENTRY P 2 STREAM P 1 EXTENSION P 0 NAMEFIELD I 2 FDEV I 1 DISK I 0 NAME) H@g @g A Sghghg@ Ai [dA oA gBgAgHgIg@ ]`dKdAdjdjdMdh \K^jnNNAj Kjl dBdMdL djdjdjdj dj Al _dO0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dh(334Q \GETBASEFIXP 237Q \VPCF.MARK.THE.FAT 145Q PACKFILENAME 102Q ERROR 71Q \VPCF.CLOSE.BACKING.STREAM 62Q \VPCF.FIND.DIR.ENTRY 55Q PACKFILENAME 51Q U-CASE 27Q \VPCF.OPEN.BACKING.STREAM 23Q U-CASE 20Q FILENAMEFIELD 11Q U-CASE 6 FILENAMEFIELD) (437Q \STREAM.DEFAULT.MAXBUFFERS 423Q FILELINELENGTH 414Q \FILEOUTCHARFN 405Q \EOSERROR 376Q \NOIMAGEOPS 367Q \STREAM.NOT.OPEN 360Q \STREAM.NOT.OPEN 327Q VPCDISK 245Q VPCFDIRENTRY 215Q VPCFDIRENTRY 151Q VPCFFILETYPE# 140Q BODY 134Q EXTENSION 130Q NAME 123Q VPCDISK 117Q DEVICE 112Q FDEV 106Q HOST 45Q BODY 41Q HOST 35Q DEVICE 15Q EXTENSION 3 NAME) ( 76Q "VIRTUAL DISK DISK SPACE EXHAUSTED") \VPCF.OPEN.FOR.BOTH D1 (P 5 FULLNAME P 4 FILE P 3 DIRENTRY P 2 STREAM P 1 EXTENSION P 0 NAMEFIELD I 2 FDEV I 1 DISK I 0 NAME) l @g @g A  ghghg@ Ai [dA oA gBgAgHgIg@ ]`dKdAKdNdjdMKA _dO \l dBdMdL djdjdjKl Al _dO Kl Al _dO Al _dO0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dh(400Q \GETBASEFIXP 355Q \GETBASEFIXP 344Q \GETBASEFIXP 321Q \GETBASEFIXP 310Q \GETBASEFIXP 224Q \VPCF.READ.FAT.CHAIN 145Q PACKFILENAME 102Q ERROR 71Q \VPCF.CLOSE.BACKING.STREAM 62Q \VPCF.FIND.DIR.ENTRY 55Q PACKFILENAME 51Q U-CASE 27Q \VPCF.OPEN.BACKING.STREAM 23Q U-CASE 20Q FILENAMEFIELD 11Q U-CASE 6 FILENAMEFIELD) (503Q \STREAM.DEFAULT.MAXBUFFERS 467Q FILELINELENGTH 460Q \FILEOUTCHARFN 451Q \EOSERROR 442Q \NOIMAGEOPS 433Q \STREAM.NOT.OPEN 424Q \STREAM.NOT.OPEN 373Q VPCDISK 350Q VPCDISK 337Q VPCFDIRENTRY 314Q VPCDISK 303Q VPCFDIRENTRY 216Q VPCFDIRENTRY 170Q VPCFDIRENTRY 151Q VPCFFILETYPE# 140Q BODY 134Q EXTENSION 130Q NAME 123Q VPCDISK 117Q DEVICE 112Q FDEV 106Q HOST 45Q BODY 41Q HOST 35Q DEVICE 15Q EXTENSION 3 NAME) ( 76Q "VIRTUAL DISK DISK SPACE EXHAUSTED") \VPCF.OPEN.FOR.APPEND D1 (P 5 FULLNAME P 4 FILE P 3 DIRENTRY P 2 STREAM P 1 EXTENSION P 0 NAMEFIELD I 2 FDEV I 1 DISK I 0 NAME)  @g @g A  ghghg@ Aid [dA oA gBgAgHgIg@ ]`dKdAdMKA dN dj\dLL _Ol dBdMdL djKl Al _dOKl Al _dOKl Al _dO Kl Al _dO Al _dO0dldg.dg,d`&dg"dg d`djd`dhdldjRdk@dk0dh(473Q \GETBASEFIXP 450Q \GETBASEFIXP 437Q \GETBASEFIXP 414Q \GETBASEFIXP 403Q \GETBASEFIXP 360Q \GETBASEFIXP 347Q \GETBASEFIXP 324Q \GETBASEFIXP 313Q \GETBASEFIXP 241Q LAST 204Q \VPCF.READ.FAT.CHAIN 146Q PACKFILENAME 103Q ERROR 72Q \VPCF.CLOSE.BACKING.STREAM 63Q \VPCF.FIND.DIR.ENTRY 55Q PACKFILENAME 51Q U-CASE 27Q \VPCF.OPEN.BACKING.STREAM 23Q U-CASE 20Q FILENAMEFIELD 11Q U-CASE 6 FILENAMEFIELD) (576Q \STREAM.DEFAULT.MAXBUFFERS 562Q FILELINELENGTH 553Q \FILEOUTCHARFN 544Q \EOSERROR 535Q \NOIMAGEOPS 526Q \STREAM.NOT.OPEN 517Q \STREAM.NOT.OPEN 466Q VPCDISK 443Q VPCDISK 432Q VPCFDIRENTRY 407Q VPCDISK 376Q VPCFDIRENTRY 353Q VPCDISK 342Q VPCFDIRENTRY 317Q VPCDISK 306Q VPCFDIRENTRY 234Q VPCFFILE 230Q VPCFFILE 224Q VPCFFILE 176Q VPCFDIRENTRY 152Q VPCFFILETYPE# 141Q BODY 135Q EXTENSION 131Q NAME 124Q VPCDISK 120Q DEVICE 113Q FDEV 107Q HOST 45Q BODY 41Q HOST 35Q DEVICE 15Q EXTENSION 3 NAME) ( 77Q "VIRTUAL DISK SPACE EXHAUSTED") \VPCF.REOPENFILE D1 (L (0 STREAM)) @NIL NIL () \VPCF.CLOSEFILE D1 (P 4 DISKSTREAM P 3 DIRENTRY P 2 BUFFER P 1 DISK P 0 FILE I 0 STREAM) @ 1H@HI"g @ Kl@ Il @ @Rlj@Rlj"ILK @ jHJhd@ @jR@ @g,@g.I@ I @(271Q \VPCF.CLOSE.BACKING.STREAM 264Q \VPCF.DELETEOFD 232Q \SETACCESS 214Q \VPCF.WRITE.CLUSTER 163Q \VPCF.WRITE.DIR.ENTRY 121Q \PUTBASEFIXP 106Q \GETBASEFIXP 60Q \VPCF.UPDATEOF 51Q GETSTREAM) (276Q STREAM 254Q \STREAM.NOT.OPEN 251Q STREAM 242Q \STREAM.NOT.OPEN 237Q STREAM 221Q STREAM 206Q STREAM 170Q STREAM 143Q STREAM 126Q STREAM 113Q STREAM 101Q VPCDISK 73Q STREAM 65Q VPCFDIRENTRY 46Q BOTH 41Q VPCDISK 32Q VPCFFILE 23Q STREAM 14Q VPCFFILE 3 STREAM) () \VPCF.DELETEFILEA0001A0002 D1 (I 0 DISK) @ (3 \VPCF.CLOSE.BACKING.STREAM) NIL () \VPCF.DELETEFILEA0001A0003 D1 (NAME ERRORSET F 0 CLUSTER F 1 DISK F 2 STREAM F 3 DIRENTRY F 4 RESETY) ;Q&hi RS Rl!ScjnPhciPQj (67Q \VPCF.MARK.THE.FAT 25Q SETFILEPTR 12Q OBTAIN.MONITORLOCK) (37Q VPCFDIRENTRY 20Q VPCFDIRENTRY 3 VPCDISK) () \VPCF.DELETEFILEA0001 D1 (NAME ERRORSET P 2 RESETZ P 1 RESETY P 0 LISPXHIST F 3 DISK F 4 RESETVARSLST F 5 STREAM F 6 RESETY F 7 NAME F 10Q DIRENTRY F 11Q LISPXHIST) ]S c gShhhTcghghgW Sid c%W!Tog hgZ JIc i(124Q ERROR! 116Q RESETRESTORE 104Q \VPCF.DELETEFILEA0001A0003 60Q \VPCF.FIND.DIR.ENTRY 52Q PACKFILENAME 46Q U-CASE 3 \VPCF.OPEN.BACKING.STREAM) (112Q ERROR 101Q INTERNAL 41Q BODY 35Q HOST 31Q DEVICE 11Q \VPCF.DELETEFILEA0001A0002) ( 76Q (\VPCF.DELETEFILEA0001A0003)) \VPCF.DELETEFILE D1 (P 12Q RESETZ P 11Q RESETY P 10Q LISPXHIST P 7 DIRENTRY P 6 FILE P 5 FULLNAME P 4 CLUSTER P 3 STREAM P 2 EXTENSION P 1 NAMEFIELD P 0 DISK I 1 FDEV I 0 NAME F 13Q LISPXHIST F 14Q RESETVARSLST) N @A @g @g QW! Wog hg_ OO@(104Q ERROR! 75Q RESETRESTORE 62Q \VPCF.DELETEFILEA0001 36Q U-CASE 33Q FILENAMEFIELD 21Q U-CASE 16Q FILENAMEFIELD 4 \VPCF.GET.DISK) (70Q ERROR 57Q INTERNAL 30Q EXTENSION 13Q NAME) ( 54Q (\VPCF.DELETEFILEA0001)) \VPCF.SEARCHOFDS D1 (P 1 ALIST I 1 FILENAME I 0 DISK F 2 \VPCF.OPENFILES) ,RHhYd@HXIAINIL (33Q STREAM) () \VPCF.DELETEOFD D1 (I 1 STREAM I 0 DISK F 0 \VPCF.OPENFILES) @AhP c(10Q REMOVE) NIL () \VPCF.ADDOFD D1 (I 1 STREAM I 0 DISK F 0 \VPCF.OPENFILES) A @AhPcNIL (3 STREAM) () \VPCF.PARSENAME D1 (P 2 POS P 1 DIRS P 0 DIRPART I 0 NAME) ;@g !H(oH H kغHkJk IHJk XI @(66Q REVERSE 57Q SUBATOM 45Q SUBATOM 32Q NCHARS 24Q STRPOS 6 FILENAMEFIELD) (3 DIRECTORY) ( 20Q ">") \VPCF.GETFILENAMEA0001 D1 (NAME ERRORSET F 0 FULLFILENAME F 1 FDEV F 2 DISK) PQ ci(4 \VPCF.GET.DISK) NIL () \VPCF.GETFILENAMEA0002 D1 (NAME ERRORSET F 0 FULLFILENAME F 1 RECOG F 2 DISK F 3 RESULT) LPRid !QdgdgdgP)g# QdgdgdgdgPhci(6 \VPCF.FIND.DIR.ENTRY) (77Q OLD/NEW 71Q NEW 63Q OLD 54Q OLDEST 42Q NEW 31Q OLDEST 23Q OLD 15Q OLD/NEW) () \VPCF.GETFILENAME D1 (P 2 RESULT P 1 WASOPEN P 0 DISK I 2 FDEV I 1 RECOG I 0 FULLFILENAME) (0o H" YH o IH J(44Q \VPCF.CLOSE.BACKING.STREAM 36Q \VPCF.GETFILENAMEA0002 27Q \VPCF.OPEN.BACKING.STREAM 22Q OPENP 11Q \VPCF.GETFILENAMEA0001) (15Q VPCDISK) ( 33Q (\VPCF.GETFILENAMEA0002) 6 (\VPCF.GETFILENAMEA0001)) \VPCF.GET.DISK D1 (P 1 DISK I 1 FDEV I 0 FILENAME) SAd`g b(Hh o@ @g km IIiHX(76Q MKATOM 73Q U-CASE 70Q SUBSTRING 62Q FILENAMEFIELD 50Q ERROR 16Q \GETDEVICEFROMNAME) (102Q VPCDISK 57Q DEVICE 23Q FDEV 13Q PCDISK 5 FDEVTYPE#) ( 44Q "NO DISK FOR NAME") \VPCF.GETNEXTBUFFER D1 (P 5 OLDBUFFER P 4 FILE P 3 DISK P 2 CLUSTER P 0 BUFFER I 3 NEXTCLUSTER I 2 NOERRORFLG I 1 WHATFOR I 0 STREAM) @QH@ \h@Rj@@l @ jLHB @j @Ag@Kl @;H"@Ll l YIKl @@j@@k@@ @@ @Kl @Kl 0Adg0LHBC BHjKl k hh@ gzLHBC oHjKl k KL@d ZK@ oK LJ@@ @j Ln@Kl @k ih(662Q SHOULDNT 642Q \GETBASEFIXP 555Q ERROR 544Q \VPCF.DELETEOFD 535Q \VPCF.ALLOCATE.CLUSTERS 520Q \ZEROBYTES 513Q \GETBASEFIXP 476Q \VPCF.READ.CLUSTER 460Q \EOF.ACTION 442Q \ZEROBYTES 435Q \GETBASEFIXP 413Q \VPCF.READ.CLUSTER 370Q \GETBASEFIXP 350Q \GETBASEFIXP 241Q \GETBASEFIXP 222Q \ALLOCBLOCK 212Q \GETBASEFIXP 150Q \GETBASEFIXP 102Q \VPCF.WRITE.CLUSTER 61Q \LISPERROR) (651Q STREAM 635Q VPCDISK 631Q STREAM 617Q VPCFFILE 607Q STREAM 576Q STREAM 572Q STREAM 562Q VPCFFILE 530Q STREAM 506Q VPCDISK 464Q WRITE 430Q VPCDISK 400Q READ 363Q VPCDISK 357Q STREAM 343Q VPCDISK 337Q STREAM 330Q STREAM 324Q STREAM 313Q STREAM 305Q STREAM 272Q STREAM 266Q STREAM 256Q STREAM 245Q STREAM 234Q VPCDISK 205Q VPCDISK 200Q VPCFFILE 174Q STREAM 157Q STREAM 143Q VPCDISK 134Q STREAM 126Q READ 120Q STREAM 107Q STREAM 66Q STREAM 47Q STREAM 35Q STREAM 24Q VPCFFILE 16Q STREAM 3 STREAM) ( 551Q "\VPCF.GETNEXTBUFFER: DISK SPACE EXHAUSTED") \VPCF.READ.CLUSTERA0001 D1 (NAME ERRORSET P 3 STREAM P 2 DISK P 0 CLUSTER F 7 FILE F 10Q NEWCLUSTER F 11Q BUFFER F 12Q RESETY) W&hi W W!WZ"g HjnHhGWHKHJ KWJl L6LMjNlIWHJ ici(203Q \VPCF.GET.NEXT.CLUSTER 141Q \GETBASEFIXP 124Q SETFILEPTR 121Q \VPCF.CLUSTER.TO.FILEPOS 62Q GETSTREAM 20Q OBTAIN.MONITORLOCK) (176Q VPCFFILE 155Q FDEV 150Q STREAM 134Q VPCDISK 107Q VPCFFILE 57Q BOTH 52Q VPCDISK 44Q VPCFFILE 32Q VPCFFILE 11Q VPCDISK 4 VPCFFILE) () \VPCF.READ.CLUSTER D1 (P 2 RESETZ P 1 RESETY P 0 LISPXHIST I 3 NEWCLUSTER I 2 NOERRORFLG I 1 BUFFER I 0 FILE F 3 LISPXHIST F 4 RESETVARSLST) "S!Tog hgZ JI(35Q ERROR! 30Q RESETRESTORE 16Q \VPCF.READ.CLUSTERA0001) (24Q ERROR 13Q INTERNAL) ( 10Q (\VPCF.READ.CLUSTERA0001)) \VPCF.WRITE.CLUSTERA0001 D1 (NAME ERRORSET P 3 STREAM P 2 DISK P 0 CLUSTER F 7 FILE F 10Q NEWCLUSTER F 11Q RESETY F 12Q BUFFER F 13Q BYTECOUNT) W&hi W W!WZ"g Hjo >nHh5KHJ KWW Jl L8LMjNlIici(145Q \GETBASEFIXP 124Q SETFILEPTR 121Q \VPCF.CLUSTER.TO.FILEPOS 100Q SHOULDNT 62Q GETSTREAM 20Q OBTAIN.MONITORLOCK) (161Q FDEV 154Q STREAM 140Q VPCDISK 57Q BOTH 52Q VPCDISK 44Q VPCFFILE 32Q VPCFFILE 11Q VPCDISK 4 VPCFFILE) ( 75Q "ERROR: TRYING TO WRITE AN ILLEGAL CLUSTER") \VPCF.WRITE.CLUSTER D1 (P 2 RESETZ P 1 RESETY P 0 LISPXHIST I 4 BYTECOUNT I 3 NEWCLUSTER I 2 ERRORFLG I 1 BUFFER I 0 FILE F 3 LISPXHIST F 4 RESETVARSLST) "S!Tog hgZ JI(35Q ERROR! 30Q RESETRESTORE 16Q \VPCF.WRITE.CLUSTERA0001) (24Q ERROR 13Q INTERNAL) ( 10Q (\VPCF.WRITE.CLUSTERA0001)) \VPCF.GET.NEXT.CLUSTERA0001 D1 (NAME ERRORSET F 0 STREAM F 1 DISK F 2 RESETY F 3 OFFSET F 4 WORD) )Q&hi PQl S P P cci(32Q SETFILEPTR 25Q \GETBASEFIXP 12Q OBTAIN.MONITORLOCK) (20Q VPCDISK 3 VPCDISK) () \VPCF.GET.NEXT.CLUSTER D1 (P 5 RESETZ P 4 RESETY P 3 LISPXHIST P 2 WORD P 1 OFFSET P 0 STREAM I 2 NOERRORFLG I 1 DISK I 0 CLUSTER F 6 LISPXHIST F 7 RESETVARSLST) VA"g @d@jn@nV!Wog hg] M@kjJnJ(100Q ERROR! 72Q RESETRESTORE 60Q \VPCF.GET.NEXT.CLUSTERA0001 13Q GETSTREAM) (66Q ERROR 55Q INTERNAL 10Q BOTH 3 VPCDISK) ( 52Q (\VPCF.GET.NEXT.CLUSTERA0001)) \VPCF.ALLOCATE.CLUSTERS D1 (P 1 CLUSTER P 0 DIRENTRY I 3 NEWEPAGE I 2 STREAM I 1 FILE I 0 DISK) AAnAjB CH@ YAAjHIA@I BB k AIAIAn@d"g H I(210Q \VPCF.WRITE.DIR.ENTRY 204Q GETSTREAM 114Q \VPCF.MARK.THE.FAT 54Q \VPCF.ALLOCATE.CLUSTER) (201Q BOTH 174Q VPCDISK 162Q VPCFFILE 150Q VPCFFILE 140Q VPCFFILE 125Q STREAM 121Q STREAM 105Q VPCFFILE 74Q VPCFDIRENTRY 63Q VPCFFILE 41Q STREAM 30Q VPCFFILE 14Q VPCFFILE 3 VPCFFILE) () \VPCF.ALLOCATE.CLUSTERA0001 D1 (NAME ERRORSET P 5 I P 2 WORD P 1 CLUSTER P 0 STREAM F 6 DISK F 7 RESETY) V&hi V"g 1Vl VVl Vl knVl ۻlYK7HVl Id H H غIkjJnJjIIk԰h2IVn HIV Vl kMLHj!Mk]Ici(253Q \GETBASEFIXP 241Q SETFILEPTR 236Q \VPCF.CLUSTER.TO.FILEPOS 227Q \VPCF.MARK.THE.FAT 151Q SETFILEPTR 141Q \GETBASEFIXP 116Q \GETBASEFIXP 75Q \GETBASEFIXP 63Q \GETBASEFIXP 43Q \GETBASEFIXP 27Q GETSTREAM 12Q OBTAIN.MONITORLOCK) (246Q VPCDISK 134Q VPCDISK 111Q VPCDISK 70Q VPCDISK 56Q VPCDISK 47Q VPCDISK 36Q VPCDISK 24Q BOTH 17Q VPCDISK 3 VPCDISK) () \VPCF.ALLOCATE.CLUSTER D1 (P 2 RESETZ P 1 RESETY P 0 LISPXHIST I 0 DISK F 3 LISPXHIST F 4 RESETVARSLST) "S!Tog hgZ JI(35Q ERROR! 30Q RESETRESTORE 16Q \VPCF.ALLOCATE.CLUSTERA0001) (24Q ERROR 13Q INTERNAL) ( 10Q (\VPCF.ALLOCATE.CLUSTERA0001)) \VPCF.DEALLOCATE.CLUSTERS D1 (P 2 CURPAGE P 1 CLUSTER P 0 ENDPAGE I 3 NEWEPAGE I 2 STREAM I 1 FILE I 0 DISK) tB ABCkٻjZKI@ Jk԰AII@ HkJMZLnIIkI@j Jk԰A@n Ann(145Q \VPCF.MARK.THE.FAT 121Q \VPCF.MARK.THE.FAT 64Q \VPCF.GET.NEXT.CLUSTER 41Q \VPCF.GET.NEXT.CLUSTER) (151Q VPCFFILE 134Q VPCFFILE 53Q VPCFFILE 16Q VPCFDIRENTRY 11Q VPCFFILE 3 STREAM) () \VPCF.MARK.THE.FATA0001 D1 (NAME ERRORSET P 3 OLDVALUE P 2 WORD P 1 OFFSET P 0 STREAM F 6 DISK F 7 CLUSTER F 10Q NEWVALUE F 11Q RESETY) V&hi V"g WdBHVl I H H غWkjJnJHVl I WkjHWnJn\Jl!LHWlJl]Jl!MJl!HIVl HJl!HJl!Kci(243Q SETFILEPTR 237Q \GETBASEFIXP 130Q SETFILEPTR 123Q \GETBASEFIXP 56Q SETFILEPTR 51Q \GETBASEFIXP 27Q GETSTREAM 12Q OBTAIN.MONITORLOCK) (232Q VPCDISK 116Q VPCDISK 44Q VPCDISK 24Q BOTH 17Q VPCDISK 3 VPCDISK) () \VPCF.MARK.THE.FAT D1 (P 2 RESETZ P 1 RESETY P 0 LISPXHIST I 2 NEWVALUE I 1 DISK I 0 CLUSTER F 3 LISPXHIST F 4 RESETVARSLST) 0n@o S!Tog hgZ JI(53Q ERROR! 46Q RESETRESTORE 34Q \VPCF.MARK.THE.FATA0001 14Q SHOULDNT) (42Q ERROR 31Q INTERNAL) ( 26Q (\VPCF.MARK.THE.FATA0001) 11Q "ILLEGAL FAT VALUE") \VPCF.PRINT.FATS D1 (P 2 STR P 1 X I 0 DIR) H@ !HhYgg Z i li J  i i J HX(100Q CLOSEF 73Q TERPRI 66Q PRIN1 46Q SPACES 37Q PRIN1 33Q FULLNAME 27Q OPENSTREAM 3 DIRECTORY) (60Q VPCFFILE 53Q STREAM 24Q OLD 21Q INPUT) () \VPCF.GET.CLUSTER.CHAIN D1 (P 0 CLUSTER I 1 DISK I 0 STARTCLUSTER) %@1nHHJKhZHA K&I(31Q \VPCF.GET.NEXT.CLUSTER) NIL () \VPCF.DIRTEST D1 (P 2 I P 0 TS I 1 NUMBER.OF.FILES I 0 PCDISKDIR) AkJI3oi @J i @J g X JkZAkJI-oi @J i @J JlZAlAkJI4@J g oi @J i H JkZh(256Q CLOSEF 251Q TERPRI 245Q TERPRI 241Q PRIN1 235Q CONCAT 227Q PRIN1 216Q OPENSTREAM 210Q CONCAT 153Q DELFILE 150Q CONCAT 142Q TERPRI 136Q TERPRI 132Q PRIN1 126Q CONCAT 120Q PRIN1 66Q CLOSEF 62Q OPENSTREAM 54Q CONCAT 46Q TERPRI 42Q TERPRI 36Q PRIN1 32Q CONCAT 24Q PRIN1) (213Q OUTPUT 57Q OUTPUT) ( 223Q "OPENING FILE " 114Q "DELETING FILE " 20Q "OPENING FILE ") (PRETTYCOMPRINT VPCDISKCOMS) (RPAQQ VPCDISKCOMS ((* * Implements a LISP file system, so lisp can use files on virtual IBM-PC format floppy and hard disks.) (DECLARE: DONTCOPY (RECORDS VPCDISK VPCFDIRENTRY VPCFFILE VPCDIR VPCGENERATEDFILEINFO) (CONSTANTS (VPCF.BYTES.PER.SECTOR 512) (VPCF.DIR.ENTRY.LEN 32) ( VPCF.SECTORS.PER.CYLINDER 68)) (* * Directory file attribute-byte bit meanings) (CONSTANTS ( ATTR.READONLY 1) (ATTR.HIDDEN 2) (ATTR.SYSFILE 4) (ATTR.VOLLABEL 8) (ATTR.DIR 16) (ATTR.ARCHIVE 32)) ( * * Media-type byte meanings (first byte of the FAT)) (CONSTANTS (DISK.8SEC2SIDE 255) (DISK.8SEC1SIDE 254) (DISK.9SEC2SIDE 253) (DISK.9SEC1SIDE 252) (DISK.15SEC2SIDE 249) (DISK.FDISK 248) (VPCF.EOF 4088) (* 12-bit EOF value)) (MACROS \SWIN \DSWIN \SWOUT \DSWOUT)) (INITRECORDS VPCDISK VPCFDIRENTRY VPCFFILE ) (COMS (FNS PRINDIRSTR STR2INT \VPCF.READPAGES)) (COMS (* DEVICE and FLOPPY initialization and copying) (FNS VPCDISK.FLOPPY.TO.FILE VPCDISK.FILE.TO.FLOPPY VPCDISK.INSTALL VPCDISK.CREATE.DEVICE \VPCDISK.CREATE.FLOPPY VPCDISK.DELETE.DEVICE VPCDISK.FREEPAGES VPCDISK.GETPARTITION# VPCDISK.CHANGE.PARTITION.TYPE \VPCF.INITIALIZE.DISK)) (COMS (* LISP to real PC FLOPPY functions) (FNS PCFLOPPY.INSTALL \PCFLOPPY.OPEN.FOR.APPEND \PCFLOPPY.OPEN.FOR.BOTH \PCFLOPPY.OPEN.FOR.INPUT \PCFLOPPY.OPEN.FOR.OUTPUT \PCFLOPPY.OPENFILE \PCFLOPPY.CLOSEFILE \PCFLOPPY.READPAGES \PCFLOPPY.WRITEPAGES)) (COMS (* Directory Manipulation) (FNS \VPCF.FIND.DIR.ENTRY \VPCF.DIR.LOOKUP \VPCF.SEARCH.DIR \VPCF.READ.DIR.ENTRY \VPCF.FIND.FREE.DIR.ENTRY \VPCF.WRITE.DIR.ENTRY \VPCF.READ.FILE.DATE \VPCF.WRITE.FILE.DATE \VPCF.ROOTDIRECTORY \VPCF.NEXT.DIR.CLUSTER \VPCF.CLUSTER.TO.FILEPOS \VPCF.MAPDIR \VPCF.READ.FAT.CHAIN) (FNS \VPCF.GENERATEFILES \VPCF.FILEMATCH \VPCF.FILEMATCH1 \VPCF.NEXTFILEFN \VPCF.FILEINFOFN) (FNS \VPCF.GETFILEINFO \VPCF.SETFILEINFO \VPCF.OPEN.BACKING.STREAM \VPCF.CLOSE.BACKING.STREAM)) (COMS (* FILEPTR Manipulation) (FNS \VPCF.EOFP \VPCF.SETFILEPTR \VPCF.GETFILEPTR \VPCF.BACKFILEPTR \VPCF.SETEOFPTR \VPCF.GETEOFPTR \VPCF.UPDATEOF)) ( FNS \VPCF.OPENFILE \VPCF.OPEN.FOR.INPUT \VPCF.OPEN.FOR.OUTPUT \VPCF.OPEN.FOR.BOTH \VPCF.OPEN.FOR.APPEND \VPCF.REOPENFILE \VPCF.CLOSEFILE \VPCF.DELETEFILE \VPCF.SEARCHOFDS \VPCF.DELETEOFD \VPCF.ADDOFD) (FNS \VPCF.PARSENAME \VPCF.GETFILENAME \VPCF.GET.DISK \VPCF.GETNEXTBUFFER \VPCF.READ.CLUSTER \VPCF.WRITE.CLUSTER \VPCF.GET.NEXT.CLUSTER \VPCF.ALLOCATE.CLUSTERS \VPCF.ALLOCATE.CLUSTER \VPCF.DEALLOCATE.CLUSTERS \VPCF.MARK.THE.FAT \VPCF.PRINT.FATS \VPCF.GET.CLUSTER.CHAIN \VPCF.DIRTEST) (VARS (\VPCF.OPENFILES NIL) \PCFLOPPY.TRACKSPERCYLINDER.SAVE \PCFLOPPY.SECTORSPERTRACK.SAVE) (INITVARS (PC.TEXTFILE.EXTENSIONS NIL )) (P (VPCDISK.INSTALL)) (P (PCFLOPPY.INSTALL)))) (/DECLAREDATATYPE (QUOTE VPCDISK) (QUOTE (POINTER FLAG BYTE BYTE FIXP FIXP BYTE FIXP FIXP FIXP FIXP FIXP FIXP BYTE FIXP FIXP FIXP FIXP FIXP FIXP FIXP POINTER POINTER POINTER POINTER)) (QUOTE ((VPCDISK 0 POINTER) (VPCDISK 0 (FLAGBITS . 0)) (VPCDISK 2 (BITS . 7)) (VPCDISK 2 (BITS . 135)) (VPCDISK 3 FIXP) (VPCDISK 5 FIXP) (VPCDISK 7 (BITS . 7)) (VPCDISK 8 FIXP) (VPCDISK 10 FIXP) (VPCDISK 12 FIXP) (VPCDISK 14 FIXP) (VPCDISK 16 FIXP) (VPCDISK 18 FIXP) (VPCDISK 7 (BITS . 135)) (VPCDISK 20 FIXP) (VPCDISK 22 FIXP) (VPCDISK 24 FIXP) (VPCDISK 26 FIXP) (VPCDISK 28 FIXP) (VPCDISK 30 FIXP) (VPCDISK 32 FIXP) ( VPCDISK 34 POINTER) (VPCDISK 36 POINTER) (VPCDISK 38 POINTER) (VPCDISK 40 POINTER))) (QUOTE 42)) (/DECLAREDATATYPE (QUOTE VPCFDIRENTRY) (QUOTE (POINTER POINTER BYTE FIXP WORD FIXP POINTER)) (QUOTE (( VPCFDIRENTRY 0 POINTER) (VPCFDIRENTRY 2 POINTER) (VPCFDIRENTRY 2 (BITS . 7)) (VPCFDIRENTRY 4 FIXP) ( VPCFDIRENTRY 6 (BITS . 15)) (VPCFDIRENTRY 7 FIXP) (VPCFDIRENTRY 10 POINTER))) (QUOTE 12)) (/DECLAREDATATYPE (QUOTE VPCFFILE) (QUOTE (POINTER POINTER WORD WORD FIXP POINTER POINTER)) (QUOTE (( VPCFFILE 0 POINTER) (VPCFFILE 2 POINTER) (VPCFFILE 4 (BITS . 15)) (VPCFFILE 5 (BITS . 15)) (VPCFFILE 6 FIXP) (VPCFFILE 8 POINTER) (VPCFFILE 10 POINTER))) (QUOTE 12)) (RPAQQ \VPCF.OPENFILES NIL) (RPAQQ \PCFLOPPY.TRACKSPERCYLINDER.SAVE 2) (RPAQQ \PCFLOPPY.SECTORSPERTRACK.SAVE 9) (RPAQ? PC.TEXTFILE.EXTENSIONS NIL) (VPCDISK.INSTALL) (PCFLOPPY.INSTALL) (PUTPROPS VPCDISK COPYRIGHT ("Xerox Corporation" 1986 1900)) NIL