diff --git a/sources/EXTERNALFORMAT b/sources/EXTERNALFORMAT
index 4efd98db..24c24aa0 100644
--- a/sources/EXTERNALFORMAT
+++ b/sources/EXTERNALFORMAT
@@ -1,12 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "19-Mar-2024 18:24:39" {WMEDLEY}<sources>EXTERNALFORMAT.;88 38921  
+(FILECREATED "17-Dec-2024 15:29:21" {WMEDLEY}<sources>EXTERNALFORMAT.;90 39713  
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS \FORMATBYTESTRING \FORMATBYTESTREAM)
+      :CHANGES-TO (FNS \CHECKEOLC.CRLF)
+                  (MACROS \CHECKEOLC)
 
-      :PREVIOUS-DATE "12-Jan-2024 10:59:18" {WMEDLEY}<sources>EXTERNALFORMAT.;86)
+      :PREVIOUS-DATE "19-Mar-2024 18:24:39" {WMEDLEY}<sources>EXTERNALFORMAT.;88)
 
 
 (PRETTYCOMPRINT EXTERNALFORMATCOMS)
@@ -537,7 +538,8 @@
                        FSTRING])
 
 (\CHECKEOLC.CRLF
-  [LAMBDA (STREAM PEEKBINFLG COUNTP EOLC)                    (* ; "Edited  6-Dec-2023 23:39 by rmk")
+  [LAMBDA (STREAM PEEKBINFLG COUNTP EOLC)                    (* ; "Edited 17-Dec-2024 15:28 by rmk")
+                                                             (* ; "Edited  6-Dec-2023 23:39 by rmk")
                                                              (* ; "Edited 17-Oct-2023 11:56 by rmk")
                                                             (* ; "Edited  6-Aug-2021 23:30 by rmk:")
 
@@ -575,7 +577,12 @@
 
                                 (CHARCODE EOL))
                                (T (SELECTC EOLC
-                                      ((LIST ANY.EOLC 'ANY) 
+                                      ((LIST ANY.EOLC) 
+                                           (CL:WHEN (EQ ANY.EOLC (FFETCH (STREAM 
+                                                                                DETECTEDEOLCONVENTION
+                                                                                ) OF STREAM))
+                                               (FREPLACE (STREAM DETECTEDEOLCONVENTION) OF STREAM
+                                                  WITH CR.EOLC))
                                            (CHARCODE EOL))
                                       (CHARCODE CR]
                      ((EQ (CHARCODE LF)
@@ -589,6 +596,8 @@
                                     (\INCCODE STREAM 'NUMLFBYTES 0)
                                     (ADD *BYTECOUNTER* NUMLFBYTES))
                         ELSE (\INCCODE STREAM))
+                      (CL:WHEN (EQ ANY.EOLC (FFETCH (STREAM DETECTEDEOLCONVENTION) OF STREAM))
+                          (FREPLACE (STREAM DETECTEDEOLCONVENTION) OF STREAM WITH CRLF.EOLC))
                       (CHARCODE EOL))
                      (T (SELECTC EOLC
                             ((LIST ANY.EOLC 'ANY) 
@@ -737,13 +746,13 @@
 (\CREATE.THROUGH.EXTERNALFORMAT)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (6726 13559 (\EXTERNALFORMAT 6736 . 10514) (MAKE-EXTERNALFORMAT 10516 . 13086) (
-\EXTERNALFORMAT.DEFPRINT 13088 . 13557)) (13560 16601 (\INSTALL.EXTERNALFORMAT 13570 . 15019) (
-\REMOVE.EXTERNALFORMAT 15021 . 15852) (FIND-FORMAT 15854 . 16599)) (16602 17014 (SYSTEM-EXTERNALFORMAT
- 16612 . 17012)) (17363 33340 (\OUTCHAR 17373 . 18590) (\INCCODE 18592 . 19745) (\BACKCCODE 19747 . 
-21426) (\BACKCCODE.EOLC 21428 . 23618) (\PEEKCCODE 23620 . 23945) (\PEEKCCODE.EOLC 23947 . 24326) (
-\INCCODE.EOLC 24328 . 26127) (\FORMATBYTESTREAM 26129 . 28573) (\FORMATBYTESTRING 28575 . 30275) (
-\CHECKEOLC.CRLF 30277 . 33338)) (34622 36858 (\NULLDEVICE 34632 . 36534) (\NULL.OPENFILE 36536 . 36856
-)) (36998 38825 (\CREATE.THROUGH.EXTERNALFORMAT 37008 . 37794) (\THROUGHIN 37796 . 38216) (
-\THROUGHBACKCCODE 38218 . 38485) (\THROUGHOUTCHARFN 38487 . 38823)))))
+  (FILEMAP (NIL (6744 13577 (\EXTERNALFORMAT 6754 . 10532) (MAKE-EXTERNALFORMAT 10534 . 13104) (
+\EXTERNALFORMAT.DEFPRINT 13106 . 13575)) (13578 16619 (\INSTALL.EXTERNALFORMAT 13588 . 15037) (
+\REMOVE.EXTERNALFORMAT 15039 . 15870) (FIND-FORMAT 15872 . 16617)) (16620 17032 (SYSTEM-EXTERNALFORMAT
+ 16630 . 17030)) (17381 34132 (\OUTCHAR 17391 . 18608) (\INCCODE 18610 . 19763) (\BACKCCODE 19765 . 
+21444) (\BACKCCODE.EOLC 21446 . 23636) (\PEEKCCODE 23638 . 23963) (\PEEKCCODE.EOLC 23965 . 24344) (
+\INCCODE.EOLC 24346 . 26145) (\FORMATBYTESTREAM 26147 . 28591) (\FORMATBYTESTRING 28593 . 30293) (
+\CHECKEOLC.CRLF 30295 . 34130)) (35414 37650 (\NULLDEVICE 35424 . 37326) (\NULL.OPENFILE 37328 . 37648
+)) (37790 39617 (\CREATE.THROUGH.EXTERNALFORMAT 37800 . 38586) (\THROUGHIN 38588 . 39008) (
+\THROUGHBACKCCODE 39010 . 39277) (\THROUGHOUTCHARFN 39279 . 39615)))))
 STOP
diff --git a/sources/EXTERNALFORMAT.LCOM b/sources/EXTERNALFORMAT.LCOM
index 4e3d2dc4..ab27f430 100644
Binary files a/sources/EXTERNALFORMAT.LCOM and b/sources/EXTERNALFORMAT.LCOM differ
diff --git a/sources/FILEIO b/sources/FILEIO
index f4adfcdb..d3b5f0ed 100644
--- a/sources/FILEIO
+++ b/sources/FILEIO
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "15-Jul-2024 22:29:54" {WMEDLEY}<sources>FILEIO.;131 164656 
+(FILECREATED "17-Dec-2024 16:07:42" {MEDLEY}<sources>FILEIO.;2 165071 
 
       :EDIT-BY rmk
 
-      :CHANGES-TO (FNS \DO.PARAMS.AT.OPEN)
+      :CHANGES-TO (RECORDS STREAM)
 
-      :PREVIOUS-DATE " 8-Dec-2023 15:17:12" {WMEDLEY}<sources>FILEIO.;124)
+      :PREVIOUS-DATE "15-Jul-2024 22:29:54" {MEDLEY}<sources>FILEIO.;1)
 
 
 (PRETTYCOMPRINT FILEIOCOMS)
@@ -150,9 +150,10 @@
        '(WORD WORD FLAG (BITS 3)
               POINTER BYTE BYTE WORD WORD WORD FLAG FLAG FLAG FLAG POINTER FLAG FLAG FLAG FLAG 
               POINTER FLAG (BITS 2)
-              FLAG POINTER POINTER POINTER WORD WORD POINTER POINTER POINTER POINTER POINTER WORD 
-              WORD WORD WORD POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER
-              WORD WORD POINTER POINTER POINTER POINTER POINTER)
+              FLAG POINTER POINTER POINTER WORD WORD (BITS 2)
+              POINTER POINTER POINTER POINTER POINTER WORD WORD WORD WORD POINTER POINTER POINTER 
+              POINTER POINTER POINTER POINTER POINTER POINTER WORD WORD POINTER POINTER POINTER 
+              POINTER POINTER)
        '((STREAM 0 (BITS . 15))
          (STREAM 1 (BITS . 15))
          (STREAM 2 (FLAGBITS . 0))
@@ -181,6 +182,7 @@
          (STREAM 16 POINTER)
          (STREAM 18 (BITS . 15))
          (STREAM 19 (BITS . 15))
+         (STREAM 16 (BITS . 1))
          (STREAM 20 POINTER)
          (STREAM 22 POINTER)
          (STREAM 24 POINTER)
@@ -238,6 +240,7 @@
                   (EPAGE POINTER)
                   (EOFFSET WORD)
                   (LINELENGTH WORD)
+                  (DETECTEDEOLCONVENTION BITS 2)
                   (F1 POINTER)
                   (F2 POINTER)
                   (F3 POINTER)
@@ -319,6 +322,7 @@
            (EOFFSET WORD)                                    (* ; "Page, byte offset of eof")
            (LINELENGTH WORD)                                 (* ; 
                                                      "LINELENGTH of stream, or -1 for no line length")
+           (DETECTEDEOLCONVENTION BITS 2)                    (* ; "For input files (particularly if read with ANY.EOLD, the byte convention used for the first EOL seen on the file. Value ANY.EOLC means EOL not seen yet")
 
            (* ;; "----Following are device-specific fields----")
 
@@ -394,7 +398,8 @@
           CHARPOSITION _ 0 LINELENGTH _ (LET NIL (DECLARE (GLOBALVARS FILELINELENGTH))
                                              FILELINELENGTH)
           ENDOFSTREAMOP _ (FUNCTION \EOSERROR)
-          IMAGEOPS _ \NOIMAGEOPS EOLCONVENTION _ LF.EOLC STRMBINFN _ (FUNCTION \STREAM.NOT.OPEN)
+          IMAGEOPS _ \NOIMAGEOPS EOLCONVENTION _ LF.EOLC DETECTEDEOLCONVENTION _ ANY.EOLC STRMBINFN _
+          (FUNCTION \STREAM.NOT.OPEN)
           STRMBOUTFN _ (FUNCTION \STREAM.NOT.OPEN)
           LASTCCODE _ 65535 (CREATE (PROGN (\EXTERNALFORMAT DATUM (OR (FETCH (FDEV 
                                                                                 DEFAULTEXTERNALFORMAT
@@ -409,9 +414,10 @@
        '(WORD WORD FLAG (BITS 3)
               POINTER BYTE BYTE WORD WORD WORD FLAG FLAG FLAG FLAG POINTER FLAG FLAG FLAG FLAG 
               POINTER FLAG (BITS 2)
-              FLAG POINTER POINTER POINTER WORD WORD POINTER POINTER POINTER POINTER POINTER WORD 
-              WORD WORD WORD POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER
-              WORD WORD POINTER POINTER POINTER POINTER POINTER)
+              FLAG POINTER POINTER POINTER WORD WORD (BITS 2)
+              POINTER POINTER POINTER POINTER POINTER WORD WORD WORD WORD POINTER POINTER POINTER 
+              POINTER POINTER POINTER POINTER POINTER POINTER WORD WORD POINTER POINTER POINTER 
+              POINTER POINTER)
        '((STREAM 0 (BITS . 15))
          (STREAM 1 (BITS . 15))
          (STREAM 2 (FLAGBITS . 0))
@@ -440,6 +446,7 @@
          (STREAM 16 POINTER)
          (STREAM 18 (BITS . 15))
          (STREAM 19 (BITS . 15))
+         (STREAM 16 (BITS . 1))
          (STREAM 20 POINTER)
          (STREAM 22 POINTER)
          (STREAM 24 POINTER)
@@ -3136,39 +3143,39 @@ update the map")
 (ADDTOVAR LAMA \IS.NOT.RANDACCESSP \ILLEGAL.DEVICEOP STREAMPROP)
 )
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (27711 31827 (STREAMPROP 27721 . 28155) (GETSTREAMPROP 28157 . 28906) (PUTSTREAMPROP 
-28908 . 31675) (STREAMP 31677 . 31825)) (31870 35249 (\DEFPRINT.BY.NAME 31880 . 33032) (
-\STREAM.DEFPRINT 33034 . 34942) (\FDEV.DEFPRINT 34944 . 35247)) (35507 40548 (\GETACCESS 35517 . 35971
-) (\SETACCESS 35973 . 40546)) (60774 66743 (\DEFINEDEVICE 60784 . 63100) (\GETDEVICEFROMNAME 63102 . 
-63575) (\GETDEVICEFROMHOSTNAME 63577 . 64621) (\REMOVEDEVICE 64623 . 65746) (\REMOVEDEVICE.NAMES 65748
- . 66741)) (66783 93437 (\CLOSEFILE 66793 . 67618) (\DELETEFILE 67620 . 67914) (\DEVICEEVENT 67916 . 
-69686) (\GENERATEFILES 69688 . 70635) (\GENERATENEXTFILE 70637 . 71288) (\GENERATEFILEINFO 71290 . 
-71751) (\GETFILENAME 71753 . 72142) (\GENERIC.OUTFILEP 72144 . 72614) (\OPENFILE 72616 . 75194) (
-\DO.PARAMS.AT.OPEN 75196 . 78847) (\RENAMEFILE 78849 . 79273) (\REVALIDATEFILE 79275 . 81877) (
-\PAGED.REVALIDATEFILELST 81879 . 83437) (\PAGED.REVALIDATEFILES 83439 . 85158) (\PAGED.REVALIDATEFILE 
-85160 . 87443) (\BUFFERED.REVALIDATEFILE 87445 . 89731) (\BUFFERED.REVALIDATEFILELST 89733 . 90917) (
-\PRINT-REVALIDATION-RESULT 90919 . 91761) (\TRUNCATEFILE 91763 . 92154) (\FILE-CONFLICT 92156 . 93435)
-) (93473 98136 (\GENERATENOFILES 93483 . 95579) (\NULLFILEGENERATOR 95581 . 95825) (\NOFILESNEXTFILEFN
- 95827 . 97818) (\NOFILESINFOFN 97820 . 98134)) (98255 100163 (\FILE.NOT.OPEN 98265 . 98778) (
-\FILE.WONT.OPEN 98780 . 99108) (\ILLEGAL.DEVICEOP 99110 . 99392) (\IS.NOT.RANDACCESSP 99394 . 99840) (
-\STREAM.NOT.OPEN 99842 . 100161)) (100298 102596 (\FDEVINSTANCE 100308 . 102594)) (103798 111172 (
-CNDIR 103808 . 105113) (DIRECTORYNAME 105115 . 109298) (DIRECTORYNAMEP 109300 . 109916) (HOSTNAMEP 
-109918 . 110725) (\ADD.CONNECTED.DIR 110727 . 111170)) (111217 139496 (\BACKFILEPTR 111227 . 111415) (
-\BACKPEEKBIN 111417 . 111778) (\BACKBIN 111780 . 112131) (BIN 112133 . 112350) (\BIN 112352 . 112629) 
-(\BINS 112631 . 112917) (BOUT 112919 . 113281) (\BOUT 113283 . 113598) (\BOUTS 113600 . 113911) (
-COPYBYTES 113913 . 117245) (COPYCHARS 117247 . 120913) (COPYFILE 120915 . 121979) (\COPYOPENFILE 
-121981 . 125180) (\INFER.FILE.TYPE 125182 . 126136) (EOFP 126138 . 126435) (FORCEOUTPUT 126437 . 
-126684) (\FLUSH.OPEN.STREAMS 126686 . 127042) (CHARSET 127044 . 128403) (ACCESS-CHARSET 128405 . 
-128933) (GETEOFPTR 128935 . 129185) (GETFILEINFO 129187 . 132380) (\TYPE.FROM.FILETYPE 132382 . 132852
-) (\FILETYPE.FROM.TYPE 132854 . 133033) (GETFILEPTR 133035 . 133287) (SETFILEINFO 133289 . 137395) (
-SETFILEPTR 137397 . 139116) (BOUT16 139118 . 139303) (BIN16 139305 . 139494)) (139599 146253 (
-\GENERIC.BINS 139609 . 139889) (\GENERIC.BOUTS 139891 . 140156) (\GENERIC.RENAMEFILE 140158 . 141989) 
-(\GENERIC.OPENP 141991 . 143306) (\GENERIC.READP 143308 . 144460) (\GENERIC.CHARSET 144462 . 146251)) 
-(146254 146593 (\MAP-OPEN-STREAMS 146264 . 146591)) (148448 150528 (\EOF.ACTION 148458 . 148709) (
-\EOSERROR 148711 . 148904) (\GETEOFPTR 148906 . 149088) (\INCFILEPTR 149090 . 149440) (\PEEKBIN 149442
- . 149633) (\SETCLOSEDFILELENGTH 149635 . 149969) (\SETEOFPTR 149971 . 150159) (\SETFILEPTR 150161 . 
-150526)) (150529 151071 (\FIXPOUT 150539 . 150839) (\FIXPIN 150841 . 151069)) (151072 151638 (\BOUTEOL
- 151082 . 151636)) (154534 164398 (\BUFFERED.BIN 154544 . 155396) (\BUFFERED.PEEKBIN 155398 . 156180) 
-(\BUFFERED.BOUT 156182 . 157042) (\BUFFERED.BINS 157044 . 160729) (\BUFFERED.BOUTS 160731 . 162532) (
-\BUFFERED.COPYBYTES 162534 . 164396)))))
+  (FILEMAP (NIL (28126 32242 (STREAMPROP 28136 . 28570) (GETSTREAMPROP 28572 . 29321) (PUTSTREAMPROP 
+29323 . 32090) (STREAMP 32092 . 32240)) (32285 35664 (\DEFPRINT.BY.NAME 32295 . 33447) (
+\STREAM.DEFPRINT 33449 . 35357) (\FDEV.DEFPRINT 35359 . 35662)) (35922 40963 (\GETACCESS 35932 . 36386
+) (\SETACCESS 36388 . 40961)) (61189 67158 (\DEFINEDEVICE 61199 . 63515) (\GETDEVICEFROMNAME 63517 . 
+63990) (\GETDEVICEFROMHOSTNAME 63992 . 65036) (\REMOVEDEVICE 65038 . 66161) (\REMOVEDEVICE.NAMES 66163
+ . 67156)) (67198 93852 (\CLOSEFILE 67208 . 68033) (\DELETEFILE 68035 . 68329) (\DEVICEEVENT 68331 . 
+70101) (\GENERATEFILES 70103 . 71050) (\GENERATENEXTFILE 71052 . 71703) (\GENERATEFILEINFO 71705 . 
+72166) (\GETFILENAME 72168 . 72557) (\GENERIC.OUTFILEP 72559 . 73029) (\OPENFILE 73031 . 75609) (
+\DO.PARAMS.AT.OPEN 75611 . 79262) (\RENAMEFILE 79264 . 79688) (\REVALIDATEFILE 79690 . 82292) (
+\PAGED.REVALIDATEFILELST 82294 . 83852) (\PAGED.REVALIDATEFILES 83854 . 85573) (\PAGED.REVALIDATEFILE 
+85575 . 87858) (\BUFFERED.REVALIDATEFILE 87860 . 90146) (\BUFFERED.REVALIDATEFILELST 90148 . 91332) (
+\PRINT-REVALIDATION-RESULT 91334 . 92176) (\TRUNCATEFILE 92178 . 92569) (\FILE-CONFLICT 92571 . 93850)
+) (93888 98551 (\GENERATENOFILES 93898 . 95994) (\NULLFILEGENERATOR 95996 . 96240) (\NOFILESNEXTFILEFN
+ 96242 . 98233) (\NOFILESINFOFN 98235 . 98549)) (98670 100578 (\FILE.NOT.OPEN 98680 . 99193) (
+\FILE.WONT.OPEN 99195 . 99523) (\ILLEGAL.DEVICEOP 99525 . 99807) (\IS.NOT.RANDACCESSP 99809 . 100255) 
+(\STREAM.NOT.OPEN 100257 . 100576)) (100713 103011 (\FDEVINSTANCE 100723 . 103009)) (104213 111587 (
+CNDIR 104223 . 105528) (DIRECTORYNAME 105530 . 109713) (DIRECTORYNAMEP 109715 . 110331) (HOSTNAMEP 
+110333 . 111140) (\ADD.CONNECTED.DIR 111142 . 111585)) (111632 139911 (\BACKFILEPTR 111642 . 111830) (
+\BACKPEEKBIN 111832 . 112193) (\BACKBIN 112195 . 112546) (BIN 112548 . 112765) (\BIN 112767 . 113044) 
+(\BINS 113046 . 113332) (BOUT 113334 . 113696) (\BOUT 113698 . 114013) (\BOUTS 114015 . 114326) (
+COPYBYTES 114328 . 117660) (COPYCHARS 117662 . 121328) (COPYFILE 121330 . 122394) (\COPYOPENFILE 
+122396 . 125595) (\INFER.FILE.TYPE 125597 . 126551) (EOFP 126553 . 126850) (FORCEOUTPUT 126852 . 
+127099) (\FLUSH.OPEN.STREAMS 127101 . 127457) (CHARSET 127459 . 128818) (ACCESS-CHARSET 128820 . 
+129348) (GETEOFPTR 129350 . 129600) (GETFILEINFO 129602 . 132795) (\TYPE.FROM.FILETYPE 132797 . 133267
+) (\FILETYPE.FROM.TYPE 133269 . 133448) (GETFILEPTR 133450 . 133702) (SETFILEINFO 133704 . 137810) (
+SETFILEPTR 137812 . 139531) (BOUT16 139533 . 139718) (BIN16 139720 . 139909)) (140014 146668 (
+\GENERIC.BINS 140024 . 140304) (\GENERIC.BOUTS 140306 . 140571) (\GENERIC.RENAMEFILE 140573 . 142404) 
+(\GENERIC.OPENP 142406 . 143721) (\GENERIC.READP 143723 . 144875) (\GENERIC.CHARSET 144877 . 146666)) 
+(146669 147008 (\MAP-OPEN-STREAMS 146679 . 147006)) (148863 150943 (\EOF.ACTION 148873 . 149124) (
+\EOSERROR 149126 . 149319) (\GETEOFPTR 149321 . 149503) (\INCFILEPTR 149505 . 149855) (\PEEKBIN 149857
+ . 150048) (\SETCLOSEDFILELENGTH 150050 . 150384) (\SETEOFPTR 150386 . 150574) (\SETFILEPTR 150576 . 
+150941)) (150944 151486 (\FIXPOUT 150954 . 151254) (\FIXPIN 151256 . 151484)) (151487 152053 (\BOUTEOL
+ 151497 . 152051)) (154949 164813 (\BUFFERED.BIN 154959 . 155811) (\BUFFERED.PEEKBIN 155813 . 156595) 
+(\BUFFERED.BOUT 156597 . 157457) (\BUFFERED.BINS 157459 . 161144) (\BUFFERED.BOUTS 161146 . 162947) (
+\BUFFERED.COPYBYTES 162949 . 164811)))))
 STOP
diff --git a/sources/FILEIO.LCOM b/sources/FILEIO.LCOM
index 24abf45e..b36bfe98 100644
Binary files a/sources/FILEIO.LCOM and b/sources/FILEIO.LCOM differ
diff --git a/sources/IOCHAR.LCOM b/sources/IOCHAR.LCOM
index 15b9981d..a2701fdb 100644
Binary files a/sources/IOCHAR.LCOM and b/sources/IOCHAR.LCOM differ
diff --git a/sources/LLREAD.LCOM b/sources/LLREAD.LCOM
index 3277e737..804b126d 100644
Binary files a/sources/LLREAD.LCOM and b/sources/LLREAD.LCOM differ
