--- /dev/null
+<PACKAGE "FORMAT">
+
+<USE "PP">
+
+<ENTRY FORMAT>
+
+<DEFINE FORMAT (IN-NM "OPT" (OUT-NM .IN-NM)
+ "AUX" DENSE (QUICKPRINT T) (LOOKAHEAD T)
+ "AUX" INCHAN OUTCHAN)
+ #DECL ((IN-NM OUT-NM) STRING (INCHAN) <OR FALSE CHANNEL>
+ (OUTCHAN) <SPECIAL <OR FALSE CHANNEL>>
+ (DENSE QUICKPRINT LOOKAHEAD) <SPECIAL <OR ATOM FALSE>>)
+ <COND
+ (<SET INCHAN <OPEN "READ" .IN-NM>>
+ <UNWIND
+ <COND
+ (<SET OUTCHAN <OPEN "PRINT" "TEMP.FORMAT">>
+ <UNWIND <REPEAT (OLDKEY NEWKEY ITM (FIRST-ITEM? T))
+ #DECL ((OLDKEY NEWKEY) ATOM (ITM) ANY)
+ <SET ITM <READ .INCHAN '<RETURN>>>
+ <COND (<AND <TYPE? .ITM FORM>
+ <NOT <EMPTY? .ITM>>
+ <TYPE? <1 .ITM> ATOM>>
+ <SET NEWKEY <1 .ITM>>)
+ (ELSE <SET NEWKEY <TYPE .ITM>>)>
+ <SET DENSE <GETPROP .NEWKEY DENSE>>
+ <COND (.FIRST-ITEM? <SET FIRST-ITEM? %<>>)
+ (ELSE
+ <REPEAT ((CRLFS
+ <OR <GETPROP .OLDKEY .NEWKEY>
+ <GETPROP ANY .NEWKEY>
+ <GETPROP .OLDKEY ANY 2>>))
+ #DECL ((CRLFS) FIX)
+ <COND (<==? .CRLFS 0> <RETURN>)
+ (ELSE
+ <CRLF .OUTCHAN>
+ <SET CRLFS <- .CRLFS 1>>)>>)>
+ <EPRIN1 .ITM>
+ <SET OLDKEY .NEWKEY>>
+ <FLUSH .OUTCHAN>>
+ <CLOSE .INCHAN>
+ <AND <CLOSE .OUTCHAN>
+ <RENAME "TEMP.FORMAT" .OUT-NM>>
+ "DONE")
+ (ELSE <CLOSE .INCHAN> #FALSE (Cannot-open-output-file))>
+ <CLOSE .INCHAN>>)
+ (ELSE #FALSE (Cannot-open-input-file))>>
+
+<ENDPACKAGE>
+
+<PUTPROP SETG MANIFEST 1>
+<PUTPROP SETG SETG 1>
+<PUTPROP NEWTYPE SETG 1>
+<PUTPROP MSETG SETG 1>
+<PUTPROP MSETG MSETG 1>
+<PUTPROP SETG MSETG 1>
+<PUTPROP NEWTYPE MSETG 1>
+<PUTPROP PUTPROP PUTPROP 1>
+<PUTPROP GDECL DENSE T>
+<PUTPROP MANIFEST DENSE T>
+<PUTPROP ENTRY DENSE T>
+<PUTPROP RENTRY DENSE T>