From f896885720d31c92f8bc244d586a5b2534107f0f Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Mon, 23 Dec 2024 23:15:19 -0800 Subject: [PATCH] INTERPRESS: separate MCCS from XCCS tables (#1928) A first step at unwinding the confusions --- sources/INTERPRESS | 303 ++++++++++++++++++++-------------------- sources/INTERPRESS.LCOM | Bin 61290 -> 61949 bytes 2 files changed, 149 insertions(+), 154 deletions(-) diff --git a/sources/INTERPRESS b/sources/INTERPRESS index 189391654..923628fe6 100644 --- a/sources/INTERPRESS +++ b/sources/INTERPRESS @@ -1,12 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "27-Oct-2024 12:09:17" {DSK}larry>il>medley>sources>INTERPRESS.;3 220681 +(FILECREATED "21-Dec-2024 19:05:30" {WMEDLEY}INTERPRESS.;44 220448 - :EDIT-BY "lmm" + :EDIT-BY rmk - :CHANGES-TO (FUNCTIONS \IPC) + :CHANGES-TO (VARS \ASCII2XCCSMAP INTERPRESSCOMS) + (FNS \ASCIIMAPARRAY \ASCIITONS \ASCII2XCCS \ASCII2MCCS \CREATEINTERPRESSFONT) - :PREVIOUS-DATE "13-Nov-2023 11:15:45" {DSK}larry>il>medley>sources>INTERPRESS.;1) + :PREVIOUS-DATE "20-Dec-2024 13:43:13" {WMEDLEY}INTERPRESS.;36) (PRETTYCOMPRINT INTERPRESSCOMS) @@ -106,8 +107,8 @@ SCIENTIFIC SPOKESMAN TITAN TREND TRENDPS TROJAN VINTAGE)) (INTERPRESSFAMILYALIASES '(LOGO LOGOTYPES-XEROX] - (COMS (* ; "NS Character Encoding") - (FNS NSMAP \COERCEASCIITONSFONT \CREATEINTERPRESSFONT \SEARCHINTERPRESSFONTS) + [COMS (* ; "NS Character Encoding") + (FNS \COERCEASCIITONSFONT \CREATEINTERPRESSFONT \SEARCHINTERPRESSFONTS) (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (noInfoCode 32768))) (INITVARS (ASCIITONSTRANSLATIONS)) @@ -124,7 +125,11 @@ (CYRILLIC CYRILLICTONSARRAY CLASSIC) (SYMBOL \SYMBOLTONSARRAY MODERN) (MATH \MATHTONSARRAY CLASSIC))) - (UGLYVARS \SYMBOLTONSARRAY HIPPOTONSARRAY CYRILLICTONSARRAY \MATHTONSARRAY)) + (UGLYVARS \SYMBOLTONSARRAY HIPPOTONSARRAY CYRILLICTONSARRAY \MATHTONSARRAY) + (VARS \ASCII2XCCSMAP) + (FNS \ASCIIMAPARRAY) + (INITVARS (\ASCII2XCCS (\ASCIIMAPARRAY \ASCII2XCCSMAP)) + (\ASCII2MCCS (\ASCIIMAPARRAY \ASCII2XCCSMAP '("$" "-"] (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\INTERPRESSINIT))) (DECLARE%: EVAL@COMPILE DONTCOPY (P (LOADDEF 'SYSTEMBRUSH 'RESOURCES 'IMAGEIO) (LOADDEF 'BRUSH 'RECORDS 'IMAGEIO]) @@ -3279,9 +3284,12 @@ (DEFINEQ (\INTERPRESSINIT - [LAMBDA NIL (* ; "Edited 2-May-2023 09:14 by lmm") + [LAMBDA NIL (* ; "Edited 20-Dec-2024 08:43 by rmk") + (* ; "Edited 26-Nov-2023 23:33 by rmk") + (* ; "Edited 14-Nov-2023 19:16 by rmk") + (* ; "Edited 2-May-2023 09:14 by lmm") (* ; "Edited 9-Dec-88 11:49 by jds") - (DECLARE (GLOBALVARS \IPIMAGEOPS \ASCIITONS \ASCIITOSTAR)) + (DECLARE (GLOBALVARS \IPIMAGEOPS)) (SETQ \IPIMAGEOPS (create IMAGEOPS IMAGETYPE _ 'INTERPRESS IMCLOSEFN _ (FUNCTION \CLOSEIPSTREAM) @@ -3325,39 +3333,6 @@ IMBITMAPSIZE _ (FUNCTION \BITMAPSIZE.IP) IMDRAWPOLYGON _ (FUNCTION \DRAWPOLYGON.IP) IMDRAWPOINT _ (FUNCTION \DRAWPOINT.IP))) - - (* ;; "FS: Removed left arrow mapping - (%"_%" 0 172)") - - (* ;; " JDS: Removed old bullet mapping (183 239 102)") - - (LET [(MAPPINGS '(("-" 33 62) - ("^" 0 173) - ("$" 0 164) - ("^N" 0 197) - ("^S" 239 37) - ("^V" 239 36) - ("^X" 0 45) - ("^O" 239 45) - ("^\" 239 44) - ("^Y" 239 46) - ("^D" 0 200) - ("^G" 0 169) - ("^H" 0 161) - ("^B" 0 191) - (96 0 185) - (155 239 36) - (156 239 37) - ("^^" 0 184] - - (* ;; "Translation table for standard ascii to NS. Last 5 are backquote, en dash, em dash, bullet, and finally the %"backward compatible%" package delimiter, rendered as the divide sign.") - - (SETQ \ASCIITONS (NSMAP NIL MAPPINGS)) (* ; - "Map from ASCII to printer character code (XC1-1-1 NS Encoding standard)") - (SETQ \ASCIITOSTAR (NSMAP NIL (CDR MAPPINGS))) - - (* ;; "Map from ASCII to wedged OSD screen & .WD file character coding (alleged to be XC2-x-x, soon to come). The difference is that `-' maps to itself for width purposes.") - - ) NIL]) ) (DEFINEQ @@ -3730,99 +3705,76 @@ (DEFINEQ -(NSMAP - [LAMBDA (ZERODEFAULT MAP) (* bvm%: "23-Oct-86 12:52") - (LET ((TABLE (ARRAY 256 'WORD 0 0))) - (OR ZERODEFAULT (for I from 0 to 255 do (SETA TABLE I I))) - [for X in MAP do (SETA TABLE (OR (FIXP (CAR X)) - (CHARCODE.DECODE (CAR X))) - (LOGOR (LLSH (CADR X) - 8) - (CADDR X] - TABLE]) - (\COERCEASCIITONSFONT - [LAMBDA (ASCIITONSMAPARRAY ASCIITONSFIXARRAY ASCIIFAMILY NSFAMILY SIZE FONTFACE ROTATION DEVICE) + [LAMBDA (ASCIITONSMAPARRAY ASCIIFAMILY NSFAMILY SIZE FONTFACE ROTATION DEVICE) + (* ; "Edited 20-Dec-2024 13:37 by rmk") (* gbn "12-Sep-85 15:10") (* ;; "Produces an ascii font with the proper widths for the ns-character correspondences defined by ASCIITONSMAPARRAY") - (* ;; "ASCIITONSFIXARRAY is for temporary problems with font compatibility between printer and widths/screen. in OS5.0 fonts") - - (PROG (CHARSETDIR [ASCIITONSMAP (fetch (ARRAYP BASE) of (\DTEST (OR ASCIITONSFIXARRAY - ASCIITONSMAPARRAY) - 'ARRAYP] + (PROG (CHARSETDIR [ASCIITONSMAP (fetch (ARRAYP BASE) of (\DTEST ASCIITONSMAPARRAY 'ARRAYP] (FD (\CREATESTARFONT NSFAMILY SIZE FONTFACE ROTATION DEVICE))) (OR FD (RETURN NIL)) [SETQ CHARSETDIR (CONS (CONS 0 (\GETCHARSETINFO 0 FD] - [bind NSCODE CS for I from 0 to 255 - unless (OR (EQ I (SETQ NSCODE (\GETBASE ASCIITONSMAP I))) - (ASSOC (SETQ CS (\CHARSET NSCODE)) - CHARSETDIR)) - do (* ; - "Run thru the translate table looking for non-0 charsets. Add their width info to the directory") - (push CHARSETDIR - (CONS CS (COND - ((\GETCHARSETINFO CS FD)) - (T (* ; - "There isn't any info for that character. Warn the guy, but continue.") - (FRESHLINE PROMPTWINDOW) - (printout PROMPTWINDOW - "Warning: Information about character set " .I3.8 CS - " missing from font " ASCIIFAMILY %, SIZE ".") - NIL] (* ; - "Return if one of the fonts couldn't be found") - [bind CHARSETINFO NSCODE (WIDTHS _ (fetch (CHARSETINFO WIDTHS) - of (\GETCHARSETINFO 0 FD))) for I - from 0 to 255 unless (EQ I (SETQ NSCODE (\GETBASE ASCIITONSMAP I))) + [bind NSCODE CS for I from 0 to 255 unless (OR (EQ I (SETQ NSCODE (\GETBASE ASCIITONSMAP I) + )) + (ASSOC (SETQ CS (\CHARSET NSCODE)) + CHARSETDIR)) + do (* ; + "Run thru the translate table looking for non-0 charsets. Add their width info to the directory") + (push CHARSETDIR (CONS CS + (COND + ((\GETCHARSETINFO CS FD)) + (T (* ; + "There isn't any info for that character. Warn the guy, but continue.") + (FRESHLINE PROMPTWINDOW) + (printout PROMPTWINDOW + "Warning: Information about character set " + .I3.8 CS " missing from font " ASCIIFAMILY %, + SIZE ".") + NIL] (* ; + "Return if one of the fonts couldn't be found") + [bind CHARSETINFO NSCODE (WIDTHS _ (fetch (CHARSETINFO WIDTHS) of (\GETCHARSETINFO 0 FD))) + for I from 0 to 255 unless (EQ I (SETQ NSCODE (\GETBASE ASCIITONSMAP I))) when (SETQ CHARSETINFO (CDR (ASSOC (\CHARSET NSCODE) - CHARSETDIR))) - do (* ; -"For each non-ASCII character, look for width info in the right NS place. If none, use zero width.") - (\FSETWIDTH WIDTHS I (\FGETWIDTH (fetch (CHARSETINFO WIDTHS) of - CHARSETINFO - ) - (\CHAR8CODE NSCODE] - [replace OTHERDEVICEFONTPROPS of FD with (fetch (ARRAYP BASE) - of (\DTEST ASCIITONSMAPARRAY - 'ARRAYP] + CHARSETDIR))) + do (* ; + "For each non-ASCII character, look for width info in the right NS place. If none, use zero width.") + (\FSETWIDTH WIDTHS I (\FGETWIDTH (fetch (CHARSETINFO WIDTHS) of CHARSETINFO) + (\CHAR8CODE NSCODE] + [replace OTHERDEVICEFONTPROPS of FD with (fetch (ARRAYP BASE) of (\DTEST ASCIITONSMAPARRAY + 'ARRAYP] [COND ((NEQ NSFAMILY ASCIIFAMILY) (* ;; "Update the font deacriptor so it looks like it's really for the family the guy wanted. Also save the info we used to get here.") (replace FONTFAMILY of FD with ASCIIFAMILY) - (replace FONTDEVICESPEC of FD with (LIST NSFAMILY SIZE FONTFACE ROTATION - DEVICE] + (replace FONTDEVICESPEC of FD with (LIST NSFAMILY SIZE FONTFACE ROTATION DEVICE] (RETURN FD]) (\CREATEINTERPRESSFONT - [LAMBDA (FAMILY SIZE FONTFACE ROTATION DEVICE) (* ; "Edited 17-Feb-87 16:49 by FS") - - (* ;; "Creates a font descriptor for an NS font for hardcopy. Tries first on the assumption that he gave us the NS font name;") + [LAMBDA (FAMILY SIZE FONTFACE ROTATION DEVICE) (* ; "Edited 21-Dec-2024 16:26 by rmk") + (* ; "Edited 20-Dec-2024 13:43 by rmk") + (* ; "Edited 17-Feb-87 16:49 by FS") - (DECLARE (GLOBALVARS \ASCIITONS \ASCIITOSTAR ASCIITONSTRANSLATIONS)) + (* ;; "Creates a font descriptor for an NS font for Interpress hardcopy. Tries first on the assumption that he gave us the NS font name;") - (* ;; "Test removal of \ASCIITOSTAR from \COERCEASCIITONSFONT, forces use of \ASCIITONS") - - (if (\COERCEASCIITONSFONT \ASCIITONS NIL FAMILY FAMILY SIZE FONTFACE ROTATION DEVICE) + (DECLARE (GLOBALVARS \ASCII2XCCS)) + (if (\COERCEASCIITONSFONT \ASCII2XCCS FAMILY FAMILY SIZE FONTFACE ROTATION DEVICE) elseif (for TRANSL in ASCIITONSTRANSLATIONS bind NEWFONT - when (AND (EQ FAMILY (CAR TRANSL)) - (SETQ NEWFONT (\COERCEASCIITONSFONT (COND - ((NULL (CADR TRANSL)) - \ASCIITONS) - ((LITATOM (CADR TRANSL)) - (EVAL (CADR TRANSL))) - (T (CADR TRANSL))) - (COND - ((NULL (CADR TRANSL)) - \ASCIITOSTAR) - (T NIL)) - FAMILY - (OR (CADDR TRANSL) - 'MODERN) - SIZE FONTFACE ROTATION DEVICE))) - do (RETURN NEWFONT]) + when (AND (EQ FAMILY (CAR TRANSL)) + (SETQ NEWFONT (\COERCEASCIITONSFONT (COND + ((NULL (CADR TRANSL)) + \ASCII2XCCS) + ((LITATOM (CADR TRANSL)) + (EVAL (CADR TRANSL))) + (T (CADR TRANSL))) + FAMILY + (OR (CADDR TRANSL) + 'MODERN) + SIZE FONTFACE ROTATION DEVICE))) + do (RETURN NEWFONT]) (\SEARCHINTERPRESSFONTS [LAMBDA (FAMILY PSIZE FACE ROTATION) (* ; "Edited 2-Jan-87 17:07 by FS") @@ -3898,6 +3850,48 @@ 61256 61290 61287 61238 61240 210 61246 61244 61247 61245 61250 61251 61270 61239 188 189 190 61264 {R 129 0} }) ") + +(RPAQQ \ASCII2XCCSMAP + (("$" "0,244" Currency to dollar) + ("-" "41,76" Hyphen to Japanese hyphen) + ("_" "0,254" Underscore to left arrow) + ("^" "0,255" Caret to Up arrow) + ("^K" "0,302" Acute) + ("^N" "0,305" Macron) + ("^S" "357,45" Em dash) + ("^V" "357,44" En dash) + ("^X" "0,55" Neutral hyphen) + ("^O" "357,55" Em quad) + ("^\" "357,54" En quad) + ("^Y" "357,56" Figure space) + ("^D" "0,310" Diaresis) + ("^G" "0,271" Left quote) + ("^H" "0,241" Inverted !) + ("^B" "0,277" Inverted ?) + ("`" "0,251" Back quote to left quote) + ("0,233" "357,44" En dash (again?)) + ("0,234" "357,45" Em dash (again?)) + ("^^" "0,270" Divide))) +(DEFINEQ + +(\ASCIIMAPARRAY + [LAMBDA (MAP SKIP) (* ; "Edited 21-Dec-2024 18:57 by rmk") + (SETQ SKIP (CHARCODE.DECODE SKIP)) + (LET ((TABLE (ARRAY 256 'WORD 0 0))) + (for I from 0 to 255 do (SETA TABLE I I)) + [for X FROMCODE in MAP eachtime [SETQ FROMCODE (OR (FIXP (CAR X)) + (CHARCODE.DECODE (CAR X] + unless (MEMB FROMCODE SKIP) do (SETA TABLE FROMCODE (CL:IF (STRINGP (CADR X)) + (CHARCODE.DECODE (CADR X)) + (LOGOR (LLSH (CADR X) + 8) + (CADDR X)))] + TABLE]) +) + +(RPAQ? \ASCII2XCCS (\ASCIIMAPARRAY \ASCII2XCCSMAP)) + +(RPAQ? \ASCII2MCCS (\ASCIIMAPARRAY \ASCII2XCCSMAP '("$" "-"))) (DECLARE%: DONTEVAL@LOAD DOCOPY (\INTERPRESSINIT) @@ -3909,44 +3903,45 @@ (LOADDEF 'BRUSH 'RECORDS 'IMAGEIO) ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (15449 16302 (\IPC 15449 . 16302)) (16535 22187 (APPENDBYTE.IP 16545 . 16681) ( -APPENDIDENTIFIER.IP 16683 . 17205) (APPENDINT.IP 17207 . 17658) (APPENDINTEGER.IP 17660 . 18232) ( -APPENDLARGEVECTOR.IP 18234 . 19199) (APPENDNUMBER.IP 19201 . 19670) (APPENDOP.IP 19672 . 20318) ( -APPENDRATIONAL.IP 20320 . 20813) (APPENDSEQUENCEDESCRIPTOR.IP 20815 . 22010) (BYTESININT.IP 22012 . -22185)) (22223 62030 (ARCTO.IP 22233 . 23514) (BEGINMASTER.IP 23516 . 23789) (BEGINPAGE.IP 23791 . -24147) (BEGINPREAMBLE.IP 24149 . 24520) (CLIPRECTANGLE.IP 24522 . 25012) (CONCAT.IP 25014 . 25279) ( -CONCATT.IP 25281 . 25548) (ENDMASTER.IP 25550 . 25994) (ENDPAGE.IP 25996 . 26373) (ENDPREAMBLE.IP -26375 . 27174) (FGET.IP 27176 . 27479) (FILLRECTANGLE.IP 27481 . 29809) (FILLTRAJECTORY.IP 29811 . -30446) (FILLNGON.IP 30448 . 32725) (FSET.IP 32727 . 33030) (GETFRAMEVAR.IP 33032 . 33350) ( -INITIALIZEMASTER.IP 33352 . 33953) (INITIALIZECOLOR.IP 33955 . 35276) (ISET.IP 35278 . 35649) ( -GETCP.IP 35651 . 35960) (LINETO.IP 35962 . 36567) (MASKSTROKE.IP 36569 . 36842) (MOVETO.IP 36844 . -37181) (ROTATE.IP 37183 . 37485) (SCALE.IP 37487 . 37790) (SCALE2.IP 37792 . 38129) (SETCOLOR.IP 38131 - . 40360) (SETRGB.IP 40362 . 41418) (SETCOLORLV.IP 41420 . 46033) (SETCOLOR16.IP 46035 . 49141) ( -SETFONT.IP 49143 . 49964) (SETSPACE.IP 49966 . 50278) (SETXREL.IP 50280 . 51464) (SETX.IP 51466 . -52983) (SETXY.IP 52985 . 54157) (SETXYREL.IP 54159 . 55465) (SETY.IP 55467 . 56776) (SETYREL.IP 56778 - . 57678) (SHOW.IP 57680 . 60940) (TRAJECTORY.IP 60942 . 61340) (TRANS.IP 61342 . 61681) (TRANSLATE.IP - 61683 . 62028)) (62061 68151 (\CHANGE-VISIBLE-REGION.IP 62071 . 65732) (\PAPERSIZE.IP 65734 . 66555) -(HEADINGOP.IP 66557 . 68149)) (68152 173162 (DEFINEFONT.IP 68162 . 69136) (FONTNAME.IP 69138 . 70068) -(INTERPRESS.BITMAPSCALE 70070 . 70879) (INTERPRESS.OUTCHARFN 70881 . 77053) (INTERPRESSFILEP 77055 . -78389) (MAKEINTERPRESS 78391 . 78575) (NEWLINE.IP 78577 . 79309) (NEWPAGE.IP 79311 . 84286) ( -NEWPAGE?.IP 84288 . 84767) (OPENIPSTREAM 84769 . 93120) (SETUPFONTS.IP 93122 . 94114) (SHOWBITMAP.IP -94116 . 98657) (\BITMAPSIZE.IP 98659 . 99436) (SHOWBITMAP1.IP 99438 . 103810) (SHOWSHADE.IP 103812 . -104765) (\BITBLT.IP 104767 . 108971) (\SCALEDBITBLT.IP 108973 . 112618) (\BLTSHADE.IP 112620 . 114078) - (\CHARWIDTH.IP 114080 . 114530) (\CLOSEIPSTREAM 114532 . 114859) (\DRAWARC.IP 114861 . 115308) ( -\DRAWCURVE.IP 115310 . 117747) (\DRAWPOINT.IP 117749 . 118786) (\DSPCOLOR.IP 118788 . 119739) ( -ENSURE.RGB 119741 . 120405) (\IPCURVE2 120407 . 133661) (\CLIPCURVELINE.IP 133663 . 138361) ( -\DRAWLINE.IP 138363 . 142095) (\CLIPLINE 142097 . 146797) (\DSPBOTTOMMARGIN.IP 146799 . 147215) ( -\DSPFONT.IP 147217 . 151264) (\DSPLEFTMARGIN.IP 151266 . 151726) (\DSPLINEFEED.IP 151728 . 152395) ( -\DSPRIGHTMARGIN.IP 152397 . 153194) (\DSPSPACEFACTOR.IP 153196 . 154325) (\DSPTOPMARGIN.IP 154327 . -154763) (\DSPXPOSITION.IP 154765 . 155752) (\DSPROTATE.IP 155754 . 155932) (\PUSHSTATE.IP 155934 . -156826) (\POPSTATE.IP 156828 . 157463) (\DEFAULTSTATE.IP 157465 . 157817) (\DSPTRANSLATE.IP 157819 . -158000) (\DSPSCALE2.IP 158002 . 158177) (\DSPYPOSITION.IP 158179 . 158480) (FILLCIRCLE.IP 158482 . -159565) (\FILLPOLYGON.IP 159567 . 160898) (\DRAWPOLYGON.IP 160900 . 167030) (\FIXLINELENGTH.IP 167032 - . 168246) (\MOVETO.IP 168248 . 168612) (\SETBRUSH.IP 168614 . 170780) (\STRINGWIDTH.IP 170782 . -171185) (\DSPCLIPPINGREGION.IP 171187 . 172363) (\DSPOPERATION.IP 172365 . 173160)) (173353 174108 ( -IP-TOS 173363 . 173623) (POP-IP-STACK 173625 . 173920) (PUSH-IP-STACK 173922 . 174106)) (174169 186733 - (\CREATECHARSET.IP 174179 . 185970) (\CHANGECHARSET.IP 185972 . 186731)) (186734 191460 ( -\INTERPRESSINIT 186744 . 191458)) (191461 192019 (SCALEREGION 191471 . 192017)) (204947 207371 ( -INTERPRESSBITMAP 204957 . 207369)) (209579 216235 (NSMAP 209589 . 210171) (\COERCEASCIITONSFONT 210173 - . 214027) (\CREATEINTERPRESSFONT 214029 . 215894) (\SEARCHINTERPRESSFONTS 215896 . 216233))))) + (FILEMAP (NIL (15741 16594 (\IPC 15741 . 16594)) (16827 22479 (APPENDBYTE.IP 16837 . 16973) ( +APPENDIDENTIFIER.IP 16975 . 17497) (APPENDINT.IP 17499 . 17950) (APPENDINTEGER.IP 17952 . 18524) ( +APPENDLARGEVECTOR.IP 18526 . 19491) (APPENDNUMBER.IP 19493 . 19962) (APPENDOP.IP 19964 . 20610) ( +APPENDRATIONAL.IP 20612 . 21105) (APPENDSEQUENCEDESCRIPTOR.IP 21107 . 22302) (BYTESININT.IP 22304 . +22477)) (22515 62322 (ARCTO.IP 22525 . 23806) (BEGINMASTER.IP 23808 . 24081) (BEGINPAGE.IP 24083 . +24439) (BEGINPREAMBLE.IP 24441 . 24812) (CLIPRECTANGLE.IP 24814 . 25304) (CONCAT.IP 25306 . 25571) ( +CONCATT.IP 25573 . 25840) (ENDMASTER.IP 25842 . 26286) (ENDPAGE.IP 26288 . 26665) (ENDPREAMBLE.IP +26667 . 27466) (FGET.IP 27468 . 27771) (FILLRECTANGLE.IP 27773 . 30101) (FILLTRAJECTORY.IP 30103 . +30738) (FILLNGON.IP 30740 . 33017) (FSET.IP 33019 . 33322) (GETFRAMEVAR.IP 33324 . 33642) ( +INITIALIZEMASTER.IP 33644 . 34245) (INITIALIZECOLOR.IP 34247 . 35568) (ISET.IP 35570 . 35941) ( +GETCP.IP 35943 . 36252) (LINETO.IP 36254 . 36859) (MASKSTROKE.IP 36861 . 37134) (MOVETO.IP 37136 . +37473) (ROTATE.IP 37475 . 37777) (SCALE.IP 37779 . 38082) (SCALE2.IP 38084 . 38421) (SETCOLOR.IP 38423 + . 40652) (SETRGB.IP 40654 . 41710) (SETCOLORLV.IP 41712 . 46325) (SETCOLOR16.IP 46327 . 49433) ( +SETFONT.IP 49435 . 50256) (SETSPACE.IP 50258 . 50570) (SETXREL.IP 50572 . 51756) (SETX.IP 51758 . +53275) (SETXY.IP 53277 . 54449) (SETXYREL.IP 54451 . 55757) (SETY.IP 55759 . 57068) (SETYREL.IP 57070 + . 57970) (SHOW.IP 57972 . 61232) (TRAJECTORY.IP 61234 . 61632) (TRANS.IP 61634 . 61973) (TRANSLATE.IP + 61975 . 62320)) (62353 68443 (\CHANGE-VISIBLE-REGION.IP 62363 . 66024) (\PAPERSIZE.IP 66026 . 66847) +(HEADINGOP.IP 66849 . 68441)) (68444 173454 (DEFINEFONT.IP 68454 . 69428) (FONTNAME.IP 69430 . 70360) +(INTERPRESS.BITMAPSCALE 70362 . 71171) (INTERPRESS.OUTCHARFN 71173 . 77345) (INTERPRESSFILEP 77347 . +78681) (MAKEINTERPRESS 78683 . 78867) (NEWLINE.IP 78869 . 79601) (NEWPAGE.IP 79603 . 84578) ( +NEWPAGE?.IP 84580 . 85059) (OPENIPSTREAM 85061 . 93412) (SETUPFONTS.IP 93414 . 94406) (SHOWBITMAP.IP +94408 . 98949) (\BITMAPSIZE.IP 98951 . 99728) (SHOWBITMAP1.IP 99730 . 104102) (SHOWSHADE.IP 104104 . +105057) (\BITBLT.IP 105059 . 109263) (\SCALEDBITBLT.IP 109265 . 112910) (\BLTSHADE.IP 112912 . 114370) + (\CHARWIDTH.IP 114372 . 114822) (\CLOSEIPSTREAM 114824 . 115151) (\DRAWARC.IP 115153 . 115600) ( +\DRAWCURVE.IP 115602 . 118039) (\DRAWPOINT.IP 118041 . 119078) (\DSPCOLOR.IP 119080 . 120031) ( +ENSURE.RGB 120033 . 120697) (\IPCURVE2 120699 . 133953) (\CLIPCURVELINE.IP 133955 . 138653) ( +\DRAWLINE.IP 138655 . 142387) (\CLIPLINE 142389 . 147089) (\DSPBOTTOMMARGIN.IP 147091 . 147507) ( +\DSPFONT.IP 147509 . 151556) (\DSPLEFTMARGIN.IP 151558 . 152018) (\DSPLINEFEED.IP 152020 . 152687) ( +\DSPRIGHTMARGIN.IP 152689 . 153486) (\DSPSPACEFACTOR.IP 153488 . 154617) (\DSPTOPMARGIN.IP 154619 . +155055) (\DSPXPOSITION.IP 155057 . 156044) (\DSPROTATE.IP 156046 . 156224) (\PUSHSTATE.IP 156226 . +157118) (\POPSTATE.IP 157120 . 157755) (\DEFAULTSTATE.IP 157757 . 158109) (\DSPTRANSLATE.IP 158111 . +158292) (\DSPSCALE2.IP 158294 . 158469) (\DSPYPOSITION.IP 158471 . 158772) (FILLCIRCLE.IP 158774 . +159857) (\FILLPOLYGON.IP 159859 . 161190) (\DRAWPOLYGON.IP 161192 . 167322) (\FIXLINELENGTH.IP 167324 + . 168538) (\MOVETO.IP 168540 . 168904) (\SETBRUSH.IP 168906 . 171072) (\STRINGWIDTH.IP 171074 . +171477) (\DSPCLIPPINGREGION.IP 171479 . 172655) (\DSPOPERATION.IP 172657 . 173452)) (173645 174400 ( +IP-TOS 173655 . 173915) (POP-IP-STACK 173917 . 174212) (PUSH-IP-STACK 174214 . 174398)) (174461 187025 + (\CREATECHARSET.IP 174471 . 186262) (\CHANGECHARSET.IP 186264 . 187023)) (187026 190646 ( +\INTERPRESSINIT 187036 . 190644)) (190647 191205 (SCALEREGION 190657 . 191203)) (204133 206557 ( +INTERPRESSBITMAP 204143 . 206555)) (208765 214180 (\COERCEASCIITONSFONT 208775 . 212264) ( +\CREATEINTERPRESSFONT 212266 . 213839) (\SEARCHINTERPRESSFONTS 213841 . 214178)) (219195 220126 ( +\ASCIIMAPARRAY 219205 . 220124))))) STOP diff --git a/sources/INTERPRESS.LCOM b/sources/INTERPRESS.LCOM index 7f63eac0cf9713d6a826ffcc7906e898e97c7331..3d1bad66ae711db944efcfdcda4f865ba1d70c9b 100644 GIT binary patch delta 3312 zcma)8U5p!76}G)COWl;_KOzuK=ZEtsKjqXUyxMdIiJamJ0>1tU9oN%7R_?GC&utp$xKB*Hu?y72h6lLhYfY zGFpOQZuev<13ApsqG4CO84VAEXJN*2&*ua_$MTV@DoEg#|V5fhc2CaTG#U25;Z5!0)p-kr`)kf`D4avSV1l z@#4q=#}E%{*)UfMwx$D{H5Dk>&Psm8*FD_wU^}`MXM~j|jItsJu4-v&p@2AdfaRqL zX_g6I_(=|vTGaGKU>TW(p&>@#5j;-C2PMk@0?oy9gxOK}?8IKq#`=P2HOJ zOPEX{HY7<3pdX{4gM@LCBx<@>aQlYi+b&2VyHATr0(X$a%hH5*UYd-C7bc_Sd0|4H zJD|_Xm_bWl0v4|=Z)3nLT722EHN!2~u6`4f#)55Xz;aT25S9@F=GN&cMSKnEN21H0Js+chYc<_viWWj;uMTo!+VvZDixDUQFIDP8o zp+sVO?lYuv!k<4S@&!#V2EQMiP1b^c4xVBEcFYJl6GF#N=GBh}PevT|cC_j9`B*nTCb9SFpCDCK`hg5N?x{6Cg+jNLWk3TRX@5qC9~D zo*`cBvg0oqmS!(uu*?C1oIOC04yuU40SPRONu$^uB0_)Yh9Nl_^UGq{j|w3IJ&TAv zNMaQTdo`9YD~y&57T&OkBHip{abN}`wK>F9w8G~Ic~@>2t8k^$ z-h?adRu5?$&*4*HEF855>Zc{tE-5N$EJhd?LLuwF8IqXP;*8q zmE4)WN{|sT$?D?HTcyIH$sYBQoM{ip2=C9v=I@*q&ubh@m(+(c6h=~n*qys|m{x44Ty#)hbKwto6Gm!We zqCTZQLc;obs+CNHpTvOjnd&FsH!&w4L{N{T{vC%vqeKQR&ZddD}xz!;fGB={H4C$DiV)N=Y9=N+ztwkYg zp(~!nX;tet@u=NqH?%e%GO)8#U}A2FpLTrAQp6IFWwfq0I%G_KDpbnHO7a*7M?adn z95F;x$yaOZk+EUkho<{yn^c&uI4_tMpsQD_&DJ@BKyooWvLc!NoKDDGif>RR w2Wwt$)*FbuG))k8ZX99bi0_OI&O->_r*t3g|3BEL>DB$Iozz|?P3DIG0b_h&FaQ7m delta 2751 zcmb7GU2GIp6yBLdzy*O)0f`SBSB2eZ>)iRDm6XoT%yuu`&P-;e^vA}iY@t9)5l}-2 zS>v0*M3Z^&L8Cq>8lnlXF5nZ1`k)~ZO-zi5kr?m+^})nMpNyV6vu$?^F|kQ^@A*IX z{Cs!+zLEXq$Lwq44Xw}Hd%RB+L>Y)!5{!}}<)M(@J3n{i!0dD#<_|+2PTJw{shu

P;v^Ut#zOF#%-w8+vN}He);@mhaP#}O*7Mwv=B;-WzM;U>kQ0RwR%rwbLx3r> zR`aYf{tttpptv&W1fCBDQ2;d^ui{4m7=pnlR$xYI7^;gD7D(z=JkUh7GmNSsSstY| zJ8WQfR+uQM8i9)EMm~$C5`8hUqU&ImLr^r#uAPmn%MdQbm!&0iVM*7@7t+Gy&ctDS#mOqig@ldfme!14m;6oQBjUd_gDX`v!U%w4}f-hAefHCP*=Ul4IS zv}Wy$&TlOEAi#*}V;_gYB5>bv&C?&WxT*OJ{`GK~nQD%mwy=*YGgW?xn%R&k$SNii zqB+P|jpT&*AgdbAduUM_d0}J*AS==$1DCg1J^Mno0kWh+p^)#(1GZTeiwJs8<}n+h zA$%3`4<%<+PWWy@7+OMvc^o+dq?Fpzrqo0>&J<-OIeV$3O-;3_)Zs*4OUHxz8OB)PQ@IpMMcO=uE=Eg!(3)RYsA6&TK0wQ89Y1t z&%qv^-%bCBd(Crlb$5LY6J6PT=-bJ2zty=OE?XVuBxv0|%-zi-!#wxXFwb*06TMzO z+xnr3okZxxg)u?xPv?>CZolm$D~zk2$cPMP5SSC#VhzT;z{W$|I(NFEE$j&e6#_3Z z8A#(LaM5sSDkg3a1wN4a|Z^ZD)Kjb56Fy0q@yY?Xg+LMkcW%U?-PZR4F6 z=C_ugVosBJzjCPKY{#Ep*v|bG|9U}f+{_dtqJke#mw+S)?URVm8v1zc5JUv!R4l6U z!U=bU@gjG01ZRaTu<W%o(7jA3yhDrhso3w#jn>%V`58&O7!BR0EtnW(`5`j&e*N zfoBAlGjKu2XSV}pdjOw?1qQ;bD98IQZp-2-#V=p{y7|WCS2nIp@h0AJ^@;e^&o(t* zzq+62i@CVx(|p#4LVWcrlgq_xuRR=#*LHEa=Cjw{-nMCK>6aySDUOp%Yq@^`{jt2G