Medley MEDLEYFONTRATIONALE 2 4 1 MEDLEYFONTRATIONALE 1 4 By: Ron Kaplan This document last edited on Janiary 10, 2026. Introduction This is a description of the motivations for and strategy for the font and character set changes we made in 2025. The files MEDLEYFONTFORMAT.tedit, MCCS.TEDIT.tedit, and FONTCODECHANGES.tedit, all in {MEDLEY}internal>, provide the details. Rationale In a major effort during this year we addressed some significant shortcomings and inconsistencies in Medley's legacy font and character-encoding architectures. In its early implementation, in the late 1970s, Interlisp-D incorporated the font and character technologies that had been developed for the Xerox Alto. Xerox subsequently developed the multilingual Xerox Character Coding Standard (XCCS, a precursor to Unicode), and XCCS together with a collection of compatible fonts were also layered into Interlisp. The result has been serviceable but not satisfactory: the appearance of a character code in a string or on a file, for example, depended on which font happened to be installed when that code was rendered on the display or printed In 2025 we freed ourselves from previous font and character constraints by defining the Medley Character Code Standard (MCCS). MCCS conforms mostly to XCCS but some of its codes are carried over from the Alto assignments. Of importance, defining a separate standard also makes clear that we are no longer limited to just the character definitions of the now-frozen Xerox standard. The basic font architecture was also revised so that character-code mappings of all our pre-existing fonts could be modified to conform to the new standard. The result is that there is now a consistent font-independent rendering of every character code. As part of the font recoding effort we created a new "Medleyfont" file-format to give us better control over the reading and writing of font-metric information. In another significant effort, we were then able to extract the metric and glyph-bitmaps from externally available BDF fonts, write them in Medleyfont files, and easily make them available under the new architecture, either to fill in missing character information in our existing fonts, or to install new fonts that comport well with external standards. (SEQUENCE NIL NIL (0 0 0 0) ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (ALTERNATE NIL NIL (0 0 0 0) ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))))1$4È$È4È $È1È$1ŠŠ8$1ŠŠ8$1ŠŠ8$JÈ$È PAGEHEADING RUNNINGHEAD/MODERN (CHARPROPS (COLOR . BLACK)).GACHA (CHARPROPS (COLOR . BLACK))/MODERN (CHARPROPS (COLOR . BLACK))/MODERN (CHARPROPS (COLOR . BLACK))/MODERN(CHARPROPS (COLOR . BLACK))3 TIMESROMAN$(CHARPROPS (COLOR . BLACK)) HRULE.GETFN HRULE.GETFN HRULE.GETFN HRULE.GETFN HRULE.GETFN. ø ê(((CHARENCODING . MCCS)))PROPS:#DATE:k,#sú(zº