1·INTERLISP-DRELEASENOTESAppendixAImplementingDevice-IndependentGraphicsThroughImageStreamsTheInterlisp-Dsystemdoesallimagecreationthroughasetoffunctionsanddatastructuresfordevice-independentgraphics,knownpopularlyasDIG.DIGisachievedthroughtheuseofaspecialflavorofstream,knownasanimagestream.Animagestream,byconvention,isanystreamthathasitsIMAGEOPSfield(describedindetailbelow)settoavectorofmeaningfulgraphicaloperations.Usingimagestreams,youcanwriteprogramsthatdrawandprintonanoutputstreamwithoutregardtotheunderlyingdevice,beitawindow,adisk,oraDover,8044,orDiabloprinter.Forexample,thefollowingdevicesaresupportedbyimagestreams:windows,Pressstreams,Interpressstreams,andIrisstreams.ImageStreamStructureAsindicatedabove,imagestreamsuseafieldthatnootherstreamuses:IMAGEOPS.IMAGEOPSisaninstanceoftheIMAGEOPSdatatypeandcontainsavectorofthestream'sgraphicalmethods.ThemethodscontainedintheIMAGEOPScanmakearbitraryuseofthestream'sIMAGEDATAfield,whichisprovidedfortheiruse,andmaycontainanydataneeded.TheIMAGEOPSdatatypehasthefollowingfields:IMAGETYPEisthenameofanimagetype.MonochromedisplaystreamshaveanIMAGETYPEofDISPLAY;colordisplaystreamsareidentifiedas(COLORDISPLAY).TheIMAGETYPEisinformationalandcanbesettoanythingyouchoose.IMFONTCREATEisthedevicenametopasstoFONTCREATEwhenfontsarecreatedforthestream.Thefollowingfieldsareallstreammethods,andarepresentedwiththeirargumentsinthemannerofafunctiondefinition.WiththeexceptionofIMCLOSEFN,eachmethodhasacorrespondingfunctionthatconsistsofthemethod'snamewiththe"IM"prefixremoved.Allcoordinatesthatrefertopointsinadisplaydevice'sspacearemeasuredinthedevice'sunits.(TheIMSCALEmethodprovidesaccesstoadevice'sscale.)(IMCLOSEFNStream)[Streammethod]isusedbeforeastreamisCLOSEFed,e.g.,toflushbuffers,writeheaderortrailerinformation,etc.(IMDRAWLINEStreamX1Y1X2Y2WidthOperationColor)[Streammethod]drawsalineofwidthWidthfrom(X1,Y1)to(X2,Y2).(Dashingiscurrentlyhandledatahigherlevel,andthusisnotanargument.) êq?€`½ îïp`¬ÿ êq?€`½îïî êïg_p`¬îLGïÐq`FîLGïÐîLåïÐîqï"r`#îqïþEt#îLåï"îLåîLåï"q`Fï"îLåï"îqïÉr`#î·ïÉq`FïÉ îÙî2îøïÉr`#ïÉîøïÉî!æïhs`žî>îJöîLåïhî!æïfºt`#î!æïfPþ*ÿÔîLåïfºîLåîLåïfºîqïe u`{îqïe î*+ïcv`Xî*+ïcîqï[£t`#îqï[€þEtGîLåï[£îLåîLåï[£w`Xï[£îLåï[£îqïYÐx`{ îŽî*Jî3Øî<®îC;îK¥ïYÐîqïXÔt`#îqïXÃþEt#îLåïXÔîLåîLåïXÔî#ŽïV w`Xî&‰ î-¢î2—î67î85î<šîB^îGíîI;îK¦îM<îM<ïV î#ŽïTgî*î- î0l î7pî9ÉîFúîM=îM=ïTgî#ŽïRÁî(Kî.Àî0½î4î4¡î7œî9,î?rîEîG‹îJYîLîM<îM<ïRÁî#ŽïQî(fî,Mî-ãî2ñî7~î9Kî;9î;9ïQyïQî?xîC×ïQwïQîD9ïQî#ŽïN¡î&$î*Óî0\î2° î:ùî<Ôî?íîEîHWîKpîM=îM=ïN¡î#ŽïLûî+‹î.å î6Sî8#îÉîCeîH7îM<îM<ïI¯î#ŽïH î(uî*fî- î4Žî9Ìî<î=�î?îDöîFoîJîLîM<îM<ïH î#ŽïFcî(›î,÷î/2î4+î9¦î:Œî=˜îD;îG#îM<îM<ïFcî#ŽïD½î)]î,bî3Ôî6Lî;îA|îBsîIVîM=îM=ïD½î#ŽïCî)L î0î5Æî8…î:Ìî@2ïCîqï>ýz`iî îµîï>ýîqï=èr`#îqï=×þEt#îLåï=èîLåîLåï=èî#Žï;"w`Xî%ñî,’î1‘î6/î;õî>üî@ƒîC÷îG)îIŒîM<îM<ï;"î#Žï9|î(²î,Ûî5dî65î>\î@5îBœîHÓîJáîM<îM<ï9|î#Žï7Öî+²î/Iî2Ëî6î@î?IîBÄîKÝîM=îM=ï*¤î#Žï(þ î,Cî/î1µî3£î5Ýî7sî=Iî?óîEï(þî#Žï&„ î/ î0²î3Vî8î"îA¹îC— îM=îM=ï&„î#Žï$Þî'Uî*Ùî-?î2mî4‡î6âî;˜ï$Þî#Žï"dî&“î,èî0ßî3�î5‰î:qî@åîCàîF�îM<îM<ï"dî#Žï ¾î&—î)âî1î2ªî5î:^î<î=9îBà îI™îJîM<îM<ï ¾î#Žïî%öî,›î.> î7 î:Žî?ÀîBkîC” îM=îM=ïî#Žïrî);î,î1Íî3}î5óî î>bîA¦îHîM<îM<ï&î#Žï€î)Zî.&î/¼î0Ùî6kî:�ï€î#Žïy î,dî,dïyyïyî0ùïywïyîBCîGžîLåïyî#Žïÿî$ÿî(î-î.4î2ñî4cîî1î1ï 2yï 2î4·ï 2wï 2î5î8mî8æï 2yï 2î;Yî=ï 2wï 2î=âî?…î?þï 2yï 2îBrîDï 2wï 2îE]îEÂîKÜîM<îM<ï 2î#ŽïŒî)�î/ î0—î1´î6 î9Äî<ƒî?šî@úîCaîEO îL™îLñîLñïŒÿ“ êq?€`½Õ2INTERLISP-DRELEASENOTESAPPENDIXA(IMDRAWCURVEStreamKnotsClosedBrushDashing)[Streammethod]drawsacurvethroughKnots.(IMDRAWCIRCLEStreamCenterXCenterYRadiusBrushDashing)[Streammethod]drawsacircleofradiusRadiusaround(CenterX,CenterY).(IMDRAWELLIPSEStreamCenterXCenterYSemiMinorRadiusSemiMajorRadiusOrientationBrushDashing)[Streammethod]drawsanellipsearound(CenterX,CenterY).(IMFILLCIRCLEStreamCenterXCenterYRadiusTexture)[Streammethod]drawsacirclefilledwithtextureTexturearound(CenterX,CenterY).(IMBLTSHADETextureStreamDestinationLeftDestinationBottomWidthHeightOperationClippingRegion)[Streammethod]isthetexture-sourcecaseofBITBLT.DestinationLeft,DestinationBottom,Width,Height,andClippingRegionaremeasuredinStream'sunits.ThismethodisinvokedbythefunctionsBITBLTandBLTSHADE.(IMBITBLTSourceBitMapSourceLeftSourceBottomStreamDestinationLeftDestinationBottomWidthHeightSourceTypeOperationTextureClippingRegionClippedSourceLeftClippedSourceBottomScale)[Streammethod]containsthebit-map-sourcecasesofBITBLT.SourceLeft,SourceBottom,ClippedSourceLeft,ClippedSourceBottom,Width,andHeightaremeasuredinpixels;DestinationLeft,DestinationBottom,andClippingRegionareintheunitsofthedestinationstream.(IMSCALEDBITBLTSourceBitMapSourceLeftSourceBottomStreamDestinationLeftDestinationBottomWidthHeightSourceTypeOperationTextureClippingRegionClippedSourceLeftClippedSourceBottomScale)[Streammethod]isascaledversionofIMBITBLT.EachpixelinSourceBitMapisreplicatedScaletimesintheXandYdirections;currently,Scalemustbeaninteger.(IMMOVETOStreamXY)[Streammethod]movesto(X,Y).ThismethodisinvokedbythefunctionsMOVETOandRELMOVETO.IfIMMOVETOisnotsupplied,adefaultmethodcomposedofcallstotheIMXPOSITIONandIMYPOSITIONmethodsisused.(IMSTRINGWIDTHStreamStrRdtBl)[Streammethod]îLñïŒî êïgw`XîqïÐq`FîïÐîqï"r`#îqïþEt#îLåï"îLåîMîMï"î<¤ïôq`F îCÆîIîLåïôr`#ïôîLåïôîqïiq`Fî <î þïiîqïhr`#îqïhþEt#îLåïhîLåîLåïhî#Žïdšw`X î.ßî.ßïdšyïdšî3Ìî7Õî<˜î@¸îEôïdšwïdšîG2îL�îLåîLåïdšî*+ïbôî/rïbôî#Žï`zî'¸î(Õî,¼î2î2ï`zyï`zî5Ëï`zwï`zî6-ï`zî#Žï]s î/-î/-ï]syï]sî4î9 î?&îC‡ï]swï]sîCßîCßï]syï]sîGÿîGÿï]sî*+ï[Íî/gï[Íwï[ÍîBCîGžîLåï[Íî#ŽïYSî'¸î(Õî,°î.Fî2‘î2‘ïYSyïYSî6òïYSwïYSî7Jî…ïP§wïP§î?`ïP§î#ŽïM  î-Ïî-ÏïM yïM î2dïM î*+ïKúî/±î57î9ðî>ÈïKúwïKúîBCîGžîLåïKúî#ŽïI€î(Wî*î.‹î2Œî6!î;Šî;ŠïI€yïI€î@bïI€wïI€îAXîFÛîGTïI€yïI€îM=îM=ïI€î#ŽïGÚî(¼ïGÚwïGÚî)—ïGÚî#ŽïDÓ î-@î-@ïDÓyïDÓî2pî7]îAXîAXïDÓî*+ïCLî6Xî:Uî>ÕîE†îE†ïCLî*+ïA¨ î3õïA¨wïA¨îBCîGžîLåïA¨î#Žï?.î%óî)S î3üî8Xî:óîA‚îBßîBßï?.yï?.îL‚ï?.wï?.îM<îM<ï?.î#Žï=ˆyî/cï=ˆwï=ˆî1î1ï=ˆyï=ˆî4­ï=ˆwï=ˆî6Rî6Rï=ˆyï=ˆî< î< ï=ˆwï=ˆî>‡ï=ˆyï=ˆî?Ê îJ×îJ×ï=ˆwï=ˆîM=îM=ï=ˆî#Žï;âî*¢î,�î,�ï;âyï;âî1%ï;âwï;âî2ýî7;î8î;{îAîBÜîHœîJâîM=îM=ï;âî#Žï:<î)Ñî.ùî1¸î9oï:<î#Žï75î*»î*»ï75yï75 î4 î;} îE îIúîIúï75î*+ï5®î4&î@SîDPîHÐîHÐï5®î*+ï4) î20î8áî> îH3îH‹îH‹ï4)î*+ï2… î3ýî6ÅîE9îHÆï2…wï2…îLåîLåï2…î*+ï0ßî/†î4Íï0ßî#Žï.eî)õî,í î7‰î<-î>`îD‡îE|îE|ï.eyï.e îL‚ï.ewï.eîM<îM<ï.eî#Žï,¿y î,Æï,¿wï,¿î/¢î/¢ï,¿yï,¿î;Œï,¿wï,¿î>gî>gï,¿yï,¿îLƒï,¿wï,¿îM=îM=ï,¿î#Žï+yî'3ï+wï+î(šî,î,ï+yï+î0.ï+wï+î13î4Gî;šî=ÈîBßîBßï+yï+îL‚ï+wï+îM<îM<ï+î#Žï)syî/cï)swï)sî0qî3„î3„ï)syï)s î=Nï)swï)sî=ùî@³îBˆîE6îHùîJâîM=îM=ï)sî#Žï'Í î*îî/¤ï'Íî#Žï$Æî0Bî0Bï$Æyï$Æ î9¦ î@¬ï$Æî*+ï#? î3»î8¨îB£îB£ï#?î*+ï!ºî6ï!ºî*+ï 5î.(î2¨ î:Uï 5î*+ï°î0Üî6 î?Öï°î*+ï î6mîDáîHÆîHÆï wï îLåîLåï î*+ïfî/†î4Íïfî#Žïìî%î&Pî*òî0î1Éî9î9|î=8î@²îBVîBVïìyïì îKbïìwïìîKÜîM<îM<ïìî#ŽïF î*Vî*VïFyïFî-ãïFwïFî.Sî2'î3Áî65î65ïFyïFî7ïFwïFî7Œî:dî:dïFyïFî;»î;»ïFwïF îBÜ îIWîIWïFyïFîLäïFwïFîM<îM<ïFî#Žï î&ýî(ëî*Ùî/°ï î#Žï™î+âî+âï™yï™î0Ïî2 î2óï™wï™îBCîGžîLåï™î#Žïî(¡î*Òî*Òïyïî-óïwïî/Iî0<î3åî9¦î;¢îA�îDîFúîM=îM=ïî#Žïyî*.î-> î6óî7œî9îABîBóîE«îLîM<îM<ïyî#Žï Óî(Ãî.gî5äî7øî;¹î=Íî@¦ îJ~îM=îM=ï Óî#Žï - î,ôî2Êî4*î7£ï -î#Žï& î/Dï&yï&î/œî4‰î6¸î:2ï&wï&îBCîGžîLåï&ÿÇ êq?€`½Æ3·INTERLISP-DRELEASENOTESAPPENDIXAreturnsthewidthofstringStrinStream'sunits,usingStream'scurrentfont.IfIMSTRINGWIDTHisnotsupplied,itdefaultstocalling\STRINGWIDTH.GENERIC.(IMCHARWIDTHStreamCharCode)[Streammethod]returnsthewidthofcharacterCharCodeinStream'sunits.IfIMCHARWIDTHisnotsupplied,itdefaultstocalling\STRINGWIDTH.GENERIC.ThefollowingmethodsallhavecorrespondingDSPxxfunctions(e.g.,IMYPOSITIONcorrespondstoDSPYPOSITION)thatinvokethem.Theyalsohavethepropertyofreturningtheirpreviousvalue;whencalledwithNILtheyreturntheoldvaluewithoutchangingit.(IMXPOSITIONStreamXPosition)[Streammethod]setsanewX-positiononStream.(IMYPOSITIONStreamYPosition)[Streammethod]setsanewY-positiononStream.(IMFONTStreamFont)[Streammethod]setsStream'sfonttobeFont.(IMLEFTMARGINStreamLeftMargin)[Streammethod]setsStream'sleftmargintobeLeftMargin.TheleftmarginisdefinedastheX-positionsetafterthenewline.(IMRIGHTMARGINStreamRightMargin)[Streammethod]setsStream'srightmargintobeRightMargin.TherightmarginisdefinedasthemaximumX-positionatwhichcharactersareprinted;printingbeyonditcausesanewline.(IMLINEFEEDStreamDelta)[Streammethod]setsStream'slinefeeddistance(distancetomoveverticallyafteranewline)tobeDelta.(IMNEWPAGEStream)[Streammethod]causesanewpagetobestarted;thepositionissetto(DspLeftMargin,DspTopMargin).Ifnotsupplied,defaultsto(\OUTCHARStream(CHARCODE^L)).(IMSCALEStreamScale)[Streammethod]returnsthenumberofdevicepointsperscreenpoint(ascreenpointbeing~1/72inch).Scaleisignored.(IMTOPMARGINStreamYPosition)[Streammethod]SetsStream'stopmargin(theY-positionofthetopsofcharactersthatissetafteranewpage)tobeYPosition.(IMBOTTOMMARGINStreamYPosition)[Streammethod]setsStream'sbottommargin(theY-positionbeyondwhichanyprintingcausesanewpage)tobeYPosition.îLåï&î êïgw`XîLGïÐq`FîLåïÐîqï"r`#îqïþEt#îLåï"îLåîLåï"q`Fï"îLåï"îqïÉr`#î·ïÉq`FïÉ îÙî2îøïÉr`#ïÉîøïÉîFXïiq`FîL#îLåïir`#ïiîLåïiîqïhîqïhþEt#îLåïhîLåîLåïhî#Žïdšw`Xî( î+)î/î0âî5î5ïdšyïdšî6Ûïdšwïdšî7aî9î9ïdšyïdšî=¥ïdšwïdšî?=îC<îG=îG=ïdšyïdšîKÒïdšwïdšîM<îM<ïdšî#Žïbôî(Äî,8î,Íî.3 î:î;£î>HîD¨îFîK¦îM<îM<ïbôî#ŽïaNî(î9’ïaNî#Žï^G î-úï^Gyï^Gî.Rî3?î9¸ï^Gwï^GîBCîGžîLåï^Gî#Žï[Íî(¾î+eî/xî1Zî8î8ï[Íyï[Íî>—ï[Íwï[Íî?;îAîAï[Íyï[ÍîE�ï[Íwï[ÍîGSîKpîLîM<îM<ï[Íî#ŽïZ' î/î1¿î5iî<Ïî?/îEØîH±îM=îM=ïZ'î#ŽïX�î5ïX�î#ŽïVî&†î,Îî2Òî4Îî8_ îB7îFùîM<îM<ïVî#ŽïTaî', î0¢ î9î:¸ îEäîH¼îM=îM=ïTaî#ŽïR»î'»î(Zî,î/Xî3î5¤î; î=}îCòîGpîM<îM<ïR»î#ŽïQî(î,#î0¤î3óî6Ôî:8î>ÅîAyîD$îH7îM<îM<ïQî#ŽïOoî)Ýî+ïOoî#ŽïLh î-aî-aïLhyïLhî2Nî8PïLhwïLhîBCîGžîLåïLhî#ŽïIîî&xî'•î*‹î*‹ïIîyïIîî+qïIîwïIîî1Sî3Mî3MïIîyïIîî7âïIîwïIîî8DïIîî#ŽïFç î-mî-mïFçyïFçî2Zî8\ïFçwïFçîBCîGžîLåïFçî#ŽïDmî&xî'•î*‹î*‹ïDmyïDmî+qïDmwïDmî1Sî3Mî3MïDmyïDmî7âïDmwïDmî8DïDmî#ŽïAfî)§î)§ïAfyïAfî.”î1hïAfwïAfîBCîGžîLåïAfî#Žï>ìî&xî&xï>ìyï>ìî+ ï>ìwï>ìî,wî/Kî0áî2Ïî2Ïï>ìyï>ìî6ï>ìwï>ìî6ï>ìî#Žï;å î.Øî.Øï;åyï;åî3Å î:¡ï;åwï;åîBCîGžîLåï;åî#Žï9kî&¾î&¾ï9kyï9kî+Sï9kwï9kî-î/˜î4¢î6î8³î8³ï9kyï9k î?�ï9kwï9kî@�îA-îD=îFÒîKÜîM<îM<ï9kî#Žï7Åî(¨î*uî,Ðî,Ðï7Åyï7Åî-¶ï7Åwï7Åî3˜î5Òî9î;mî>cîA ï7Åî#Žï4¾ î/¾î/¾ï4¾yï4¾î4« î”îC2 îJ×îM=îM=ï0žî#Žï.øî(Éî.î3î44î9 î:)î=î?Çï.øî#Žï+ñ î,šî,šï+ñyï+ñî1‡î4Òï+ñwï+ñîBCîGžîLåï+ñî#Žï)wî&…î&…ï)wyï)wî+ï)wwï)wî,‘î/<î2iî84î>xî@îCï îIüîM<îM<ï)wî#Žï'Ñî$«î'¡î*¸î,Nî.<î.<ï'Ñyï'Ñî1‡ï'Ñwï'Ñî1éï'Ñî#Žï$Ê î,èî,èï$Êyï$Êî1}ï$Êwï$ÊîBCîGžîLåï$Êî#Žï"Pî)î*æî.Žî2Äî5 î7¬î=�î@ŽîF©îH»îK¦îM<îM<ï"Pî#Žï ªî$ï ªyï ª î-`ï ªwï ªî.œî.œï ªyï ª î7øï ªwï ªî9­î:‡î<1î?îE¿îK§îM=îM=ï ªî#Žïî+ýî+ýïyïî0’ïwïî0êî9’î+îCîFÉîH�îM<îM<ïƒî#ŽïÝî'î+î/zî3lî3lïÝyïÝî6ùïÝwïÝî7Qî8±î=øïÝî#ŽïÖ î.Iî.IïÖyïÖî36î98ïÖwïÖîBCîGžîLåïÖî#Žï\î&®î&®ï\yï\î+Cï\wï\î,­î/î3Ùî6®î6®ï\yï\î7”ï\wï\î=vî? îAhîDîF îM<îM<ï\î#Žï¶î&Vî'¶î)ðî-0î.Mî1Cî5@î6Öî8Äî8Äï¶yï¶î>Æï¶wï¶î?(ï¶î#Žï ¯î1ï ¯yï ¯î1mî6Zî<\ï ¯wï ¯îBCîGžîLåï ¯î#Žï 5î&²î&²ï 5yï 5î+Gï 5wï 5î,êî1ñî6îî9üî9üï 5yï 5î:âï 5wï 5î@ýîFGîJŸîM=îM=ï 5î#Žï �î(Ëî-£î.Àî1¶î5³î7Iî97î97ï �yï �î?9ï �wï �î?›ï �à êq?€`½84INTERLISP-DRELEASENOTESAPPENDIXA(IMSPACEFACTORStreamFactor)[Streammethod]setstheamountbywhichtomultiplythenaturalwidthofallfollowingspacecharactersonStream;isusedforjustificationoftext.Thedefaultvalueisone.Forexample,ifthenaturalwidthofaspaceinStream'scurrentfontis12units,andthespacefactorissettotwo,spacesappear24unitswide.ThevaluesreturnedbySTRINGWIDTHandCHARWIDTHarealsoaffected.(IMOPERATIONStreamOperation)[Streammethod]setsthedefaultBITBLTOperationargument.SeetheDSPOPERATIONandBITBLTdocumentationformoreinformation.(IMBACKCOLORStreamColor)[Streammethod]setsthebackgroundcolorofStream.(IMCOLORStreamColor)[Streammethod]setsthedefaultcolorofStream.InadditiontotheIMAGEOPS-bornemethodsdescribedabove,therearetwootherimportantmethods,whicharecontainedinthestreamitself.STRMBOUTFN[Streammethod]isafunctioncalledbyBOUT.YoucaninstallaSTRMBOUTFNinastreamStreamusingtheform(replace(STREAMSTRMBOUTFN)ofSTREAMwith(FUNCTIONMYBOUTFN)).OUTCHARFN[Streammethod]isthefunctionthatiscalledtooutputasinglebyte.ThisislikeSTRMBOUTFN,exceptforbeingonelevelhigher:itisintendedfortextoutput.Hence,thisfunctionshouldconvert(CHARCODEEOL)intothestream'sactualend-of-linesequenceandshouldadjustthestream'sCHARPOSITIONappropriatelybeforeinvokingthestream'sSTRMBOUTFN(bycallingBOUT)toactuallyputthecharacter.Defaultsto\FILEOUTCHARFN,whichisdefinitelynotwhatyouwant.OUTCHARFNsareinstalledusingaformlike(replace(STREAMOUTCHARFN)ofSTREAMwith(FUNCTIONMYOUTCHARFN)).IMAGEDATA[Recordfield]isusedtoholddatapertainingtothistypeofimagestream;thecontentiscompletelyuptoyou.ForInterpressdevices,thisisaninstanceofthedatatypeINTERPRESSDATA;forPress,PRESSDATA;forthedisplay,\DISPLAYDATA.CreatingImageStreams(OPENIMAGESTREAMFileImageTypeOptions)[Function]opensandreturnsanoutputstreamoftypeImageType(PRESS,INTERPRESS,DISPLAY,orothertypes)onadestinationspecifiedbyFile.Filecannameafileeitheronanormalstoragedeviceoronaprinterdevice.Inthelattercase,thefileissenttoî?›ï �î êïgw`XîqïÐq`FîïÐîqï"r`#îqïþEt#îLåï"îLåîMîMï"î<¤ïôq`F îCÆîIîLåïôr`#ïôîLåïôîqïiq`Fî <î þïiîqïhr`#îqïhþEt#îLåïhîLåîLåïhî#Žïdšw`X î/Ýïdšyïdšî05î5"î93ïdšwïdšîBCîGžîLåïdšî#Žïb î&×î)’î/î1Pî5Ïî7Äî=lî@'îESîIzîKoîM<îM<ïb î#Žï`zî)¾î-ý î5<î7Mî7Mï`zyï`zî,îA²îCã îK¦îM<îM<ï`zî#Žï^Ôî&¿î'6î*î.ôî2Îî4Mî7Œî8î: î@ÔîBîDŠîIuîM<îM<ï^Ôî#Žï].î%hî&Éî+5î,úî,úï].yï].î1�ï].wï].î3=î8{î;“î=7î?]îCrîFuîIîM<îM<ï].î#Žï[ˆî'äî)ˆî,î-âî1'î6Dî;Vî=}îA1îE&îEÃîHÑîM<îM<ï[ˆî#ŽïYâî)Xî+1 î5:î7ùî@¸îCîFîK¢ïYâî#ŽïVÛ î-®ïVÛyïVÛî.î2óî9LïVÛwïVÛîBCîGžîLåïVÛî#ŽïTaî'jî*·î0_î6yî6yïTayïTaî<ÒïTawïTaî>îEßîG)îJâîM=îM=ïTaî#ŽïR» î0,î4Nî:Ù îF$îI¡îM<îM<ïR»î#ŽïQ î+0ïQî#ŽïN î.TïNyïNî.¬î3™î7ïNwïNîBCîGžîLåïNî#ŽïK”î&xî(Ó î0Ùî4tî6 î6 ïK”yïK”î:ŸïK”wïK”î;ïK”î#ŽïH�î*‚ïH�yïH�î*Úî/Çî3AïH�wïH�îBCîGžîLåïH�î#ŽïFî&xî(Óî-‰î1$î2ºî2ºïFyïFî7OïFwïFî7±ïFî#ŽïC™î%Yî+î,íî/ˆ î;«îAÁîH¦îM<îM<ïC™î#ŽïAóî'jî*î,Þî0Æî7nî=ÞîB5îDÓîK»îM<îM<ïAóî#Žï@Mî%éî*•î-öï@Mî#Žï=F îBCîGžîLåï=Fî#Žï:Ìî$øî&î+»î/íî1Ðî6qî6Òî9Èî<…î@¢îAÉ îK»îM<îM<ï:Ìî#Žï9&î&î,î,ï9&yï9&î0›ï9&wï9&î2Kî7uî;(î?ÃîF¬îM<îM<ï9&î#Žï7€ î-ðî/†î5�î8“î@wî@wï7€yï7€îHï7€wï7€îImï7€î#Žï4yîBCîGžîLåï4yî#Žï1ÿî%î'”î-Mî0;î1Àî6î7ÊîÕîEŸîH™îM=îM=ï- î#Žï+gî(Õî,Cî3 î>õ îHÈîM=îM=ï+gî#Žï)Áî)ôî-î3o î>îA îFHîK¦îM<îM<ï)Áî#Žï(î(Øî+Cî-¢ î4î4Ûî:pî< îIîM=îM=ï(î#Žï&uî$ñ î+ î+ ï&uyï&uî-ï&uwï&uî-tî0Úî3ˆî7Pî7« îATîC½îIiîM<îM<ï&uî#Žï$Ïî$þî(“î+mî1Qî84 îAõîCÞîJGîM=îM=ï$Ïî#Žï#)î+rî+rï#)yï#) î5òï#)wï#)î7Fï#)î#Žï "îD<îI¹îLåï "î#Žï¨î%î(ªî*gî-°î0÷ î7äî9¡î îA ï¶îqïœz`iîEîãîïœîqï‡r`#îqïvþEt#îLåï‡îLåîLåï‡î#Žïäw`Xî2pî2pïäyïäî5î¦îBmîD×îGîH�îK¦îM<îM<ï xÿ… êq?€`½Ú5·INTERLISP-DRELEASENOTESAPPENDIXAtheprinterwhenthestreamisclosed.Becauseofthewaydefaultedargumentsareinterpreted,OPENIMAGESTREAMprovidesaconvenientandstandardinterfaceforinterpretinguseroutput-destinationspecifications.IfImageTypeisNIL,theimagetypeisinferredfromtheextensionfieldofFileandtheEXTENSIONSpropertiesinthelistPRINTFILETYPES.Thus,aPRESSextensiondenotesaPress-formatstream,whileIP,IPR,andINTERPRESSindicateInterpressformat.IfFilehasnoextensionbutisafileontheprinterdevice{LPT},thenImageTypeisthetypethattheindicatedprintercanprint.IfFilehasnoextensionbutisnotontheprinterdevice,thenImageTypedefaultstothetypeacceptedbythefirstprinteronDEFAULTPRINTINGHOST.File=NILisequivalenttoFILE={LPT}.Namesforprinterfilesareoftheform{LPT}PRINTERNAME.TYPE,wherePRINTERNAME,TYPE,orbothmaybeomitted.PRINTERNAMEisthenameoftheparticularprintertowhichthefileistransmittedonclosing;itdefaultstothefirstprinteronDEFAULTPRINTINGHOSTthatcanprintImageTypefiles.Asjustdescribed,theTYPEextensionsuppliestheImageTypewhenitisdefaulted.OPENIMAGESTREAMgeneratesanerrorifthespecifiedprinterdoesnotacceptthekindoffilespecifiedbyImageType.ExamplesassumingIP:isanInterpressprinter,PisaPressprinter,andDEFAULTPRINTINGHOSTis(IP:P):(OPENIMAGESTREAM)returnsanInterpressimagestreamonprinterIP:(OPENIMAGESTREAMNIL'PRESS)returnsaPressstreamonP(OPENIMAGESTREAM'{LPT}.INTERPRESS)returnsanInterpressstreamonIP:(OPENIMAGESTREAM'{CORE}FOO.PRESS)returnsaPressstreamonthefile{CORE}FOO.PRESSForcompletenessandconsistency,ifImageTypeisinferredtobeDISPLAY,thenyouarepromptedforawindowtoopen.Thefilenameinthiscaseisusedasthetitleofthewindow.Optionsisalistinpropertylistformatthatmaybeusedtospecifycertainattributesoftheimagestream;notallattributesaremeaningfulorinterpretedbyalltypesofstreams.Amongthepropertiesare:REGION,whosevalueistheregiononthepage(instreamscaleunits,0,0beingthelower-leftcornerofthepage)thattextwillfillup.ItestablishestheinitialvaluesforDSPLEFTMARGIN,DSPRIGHTMARGIN,DSPBOTTOMMARGIN,andDSPTOPMARGIN.FONTS,whosevalueisalistoffontsthatareexpectedtobeusedinthestream.Somestreams(e.g.,Interpress)aremoreefficientiftheexpectedfontsarecalledoutinadvance,butthisisnotnecessary.Thefirstfontinthislististheinitialfontofthestream;otherwisetheDEFAULTFONTforthatimagetypeisused.îM<ï xî êïgw`XîLGïÐq`FîLåïÐîqï"r`#îqïþEt#îLåï"îLåîLåï"q`Fï"îLåï"îqïÉr`#î·ïÉq`FïÉ îÙî2îøïÉr`#ïÉîøïÉîFXïiq`FîL#îLåïir`#ïiîLåïiîqïhîqïhþEt#îLåïhîLåîLåïhî#Žïdšw`Xî&Vî+Oî/ƒî2Kî7dî91î>Œî?QîE�îG îJhîM=îM=ïdšî#Žïbôî*Êî2Ùî6/ î>ÔîM=îM=ïbôî#ŽïaNî)Äî+L î3î6Aî<¢îCîE„ îM<îM<ïaNî#Žï_¨î&°î2§î<*î<*ï_¨î#Žï].î$Àî$Àï].yï].î+Éï].wï].î,+î-•î0‰î2îî7,î:Aî;«îAîDSîF¸îM<îM<ï].î#Žï[ˆî'lî)Õî)Õï[ˆyï[ˆî,ï[ˆwï[ˆî-;î0Íî3ü î=ï îE•îGéîKîM<îM<ï[ˆî#ŽïYâî0âî5Ûî8 î>îE�îL îM=îM=ïYâî#ŽïX< î,_î1Áî5»î8î;fî>y îGÖîM<îM<ïX<î#ŽïV– î*Žî/ªî0Fî1³î1³ïV–yïV–î3íïV–wïV–î4‰î7lî9ªî@sîCîDÃîF$îH£îJáîM<îM<ïV–î#ŽïTðî(¶î-Òî3î6äî6äïTðyïTðî=íïTðwïTðî>âî@ÞîCÖîG}îJáîM<îM<ïTðî#ŽïSJî)Ýî.‚î1Mî5 î5{î6»î6»ïSJyïSJî8õïSJwïSJî9fî<î>/îDËîGKîHÃîKBîM<îM<ïSJî#ŽïQ¤î%ýî*�î/”î2Ôî2ÔïQ¤yïQ¤î9ÝïQ¤wïQ¤î:Iî?ÄîAnîCÝîFüîM<îM<ïQ¤î#ŽïOþî%gî'Âî*€î/ î1îBnîBÆîBÆïOþî#ŽïM„yî%ÈïM„wïM„î&0î'øî*�î+ÿ î2öî4œî4œïM„yïM„î7qïM„wïM„î7Ùî9¡î>^î>ÆîC�îE·îJRîM<îM<ïM„î#ŽïKÞî'Êî+7î/hî4‚îHýîM<îM<ïKÞî#ŽïJ8 î.[î2Åî4‰î7×î:äî<èîB{îBé îM=îM=ïJ8î#ŽïH’î$ïî'Jî+&î,¼î/ î5†î:î;¨î?ÈîB#îD]îE½ îM=îM=ïH’î#ŽïFìî'^î.…î1xî8³î<î@OîDâîKCîM=îM=ïFìî#ŽïEFî4žî7pî:-î=yî=yïEFyïEFîD‚ïEFwïEFîDäîH:îHœîJŸîM=îM=ïEFî#ŽïC  î*œî,ýî0õî7î=%î?†î?†ïC yïC îF�ïC wïC îFíîJºîKÝîM=îM=ïC î#ŽïAú î*çî+ëî:ÿîBZîDóîIîJáîM<îM<ïAúî#Žï@Tî)ûî.Þî2¤î5bî:cî=î@xîBeîDöîKcîM<îM<ï@Tî#Žï>®yî*—ï>®wï>®î*ùï>®î#Žï<4î*{î1Uî3Âî5‹î7â î?îD_îFîGÏîIUîM<îM<ï<4î#Žï:Žî(|î+;îî-�î0Bî2¾î9Pî;�î<´îAþîC«îG³îH"îKîM<îM<ï%`î#Žï#ºî'jî(ëî+‰î.àî0@î3¯î5|î7×î:~î<î>oîC¬ï#ºî#Žï!@yî(‰ï!@wï!@î(èî*Pî+tî-¡î/)î4åî7î;Žî>^îA[îCQîFÇîHdîM<îM<ï!@î#Žïšî(Í î/£î1·î4‘î9Cî>ÐîAµîD îJÖîM<îM<ïšî#Žïô î+Eî-> î4Ýî7î9î=!î?îE îE°îJáîM<îM<ïôî#ŽïN î*`î,ÐïNî#ŽïÔî(õïÔyïÔî)¿î)¿ïÔwïÔî.Dî.«î2tî3ãî6Lî:Çî<Ïî?9îBËîDÔîIŽîM=îM=ïÔî#Žï.î'sî)Ëî-Çî05 î6‹î;+î<Õî?CîCTîF0îHõîKpîM=îM=ï.î#Žïˆî&•î'—î)j î1Šî4�î8õî> î@Î îM=îM=ïˆî#Žïâî6/îJ~îM=îM=ïâî#Žï< î/ï<î#ŽïÂî(ëî-cî1î2€î3žî5Åî7\î:áî=ªî@îFGîGÞîIÍîM<îM<ïÂî#Žïî%%î'—î,»î-*î1>î6°î:T îAŸîDîGÍîM<îM<ïî#Žï vî$íî'Šî.î1Èî4pî8Ûî;„î=GîCªîFSîI3îJÕîM<îM<ï vî#Žï Ð î*Åî+!î-ïî0²î3Šî5î7±î9Úî;?î=žîA]îD5îEÏîH.îM<îM<ï Ðî#Žï *î*î,n î6Ðî8êî;²î?æîBñîDQîGÊï *ÿÆ êq?€`½e6INTERLISP-DRELEASENOTESAPPENDIXAHEADINGistheheadingtobeplacedautomaticallyoneachpage;NILmeansnoheading.IMAGESTREAMTYPES[Associationlist]describeshowtocreateastreamforagivenimagetype.ContainsOPENSTREAM,FONTCREATE,andFONTSAVAILABLEmethods.Themaina-listisindexedbytheimage-streamtypename(e.g.,DISPLAY,PRESS,orINTERPRESS)togetanothera-listthatassociatesdevice-dependentfunctionswithgenericoperationnames.Theformatofasinglea-listentryis:(IMAGETYPE(OPENSTREAMFunctionToOpenTheStream)(FONTCREATEFunctionToCreateAFontDescriptor)(FONTSAVAILABLEFunctionToReturnAvailableFonts))Forexample,forInterpress,thea-listentryis:(INTERPRESS(OPENSTREAMOPENIPSTREAM)(FONTCREATE\CREATEINTERPRESSFONT)(FONTSAVAILABLE\SEARCHINTERPRESSFONTS))TheOPENSTREAMfunctioniscalledwiththearguments:(OPENSTREAMFNFileOptions)FileisthefilenameasitwaspassedtoOPENIMAGESTREAM,andOptionsistheOPTIONSpropertylistpassedtoOPENIMAGESTREAM.Theresultmustbeastreamoftheappropriateimagetype.TheFONTCREATEfunctioniscalledwiththearguments:(FONTCREATEFNFamilySizeFaceRotationDevice)Familyisthefamilynameforthefont,e.g.,MODERN.Sizeisthebodysizeofthefont,inprinter'spoints.Faceisathree-elementlistdescribingtheweight,slope,andexpansionofthefacedesired,e.g.,(MEDIUMITALICEXPANDED).Rotationishowmuchthefontistoberotatedfromthenormalorientation,inminutesofarc.Forexample,toprintalandscapepage,fontshavetherotation5,400(90degrees).Thefunction'sresultmustbeaFONTDESCRIPTORwiththefieldsfilledinappropriately.TheFONTSAVAILABLEfunctioniscalledwiththearguments:(FONTSAVAILABLEFNFamilySizeFaceRotationDevice)ThisfunctionreturnsalistofallfontsagreeingwiththeFamily,Size,Face,andRotationarguments;anyofthemmaybewild-carded(i.e.,equalto'*,whichmeans"any").Eachelementofthelistshouldbeaquintupleoftheform(FamilySizeFaceRotationDevice).Wherethefunctionlooksisanimplementationdecision:theFONTSAVAILABLEFNforthedisplaydevicelooksatDISPLAYFONTDIRECTORIES,theInterpresscodelooksonINTERPRESSFONTDIRECTORIES,andimplementorsofnewdevicesshouldfeelfreetointroducenewsearchpathvariables.îGÊï *î êïgw`XîqïÐq`FîïÐîqï"r`#îqïþEt#îLåï"îLåîMîMï"î<¤ïôq`F îCÆîIîLåïôr`#ïôîLåïôîqïiq`Fî <î þïiîqïhr`#îqïhþEt#îLåïhîLåîLåïhî#Žïdšw`Xî*xî,(î,Ñî/|î5Kî71î9oî>a îGzîIÄîM<îM<ïdšî#Žïbôî'tî)üî.ˆî0‚î6 ïbôî#Žï_íîBb îJŸîLåï_íî#Žï]sî*¨î.>î0iî5Zî7 îûî@¬îEîIÐîM=îM•îM•ï]sî#Žï[Íî)� î3ã î=ëî@ª îM=îM=ï[Íî#ŽïZ'î*î*�î-¦î1Uî4øî6—î<>î>Vî@ñ îJ1îM<îM<ïZ'î#ŽïX�î'©î+uî2Nî7Ûî9Ç îCˆîE]îG÷îM=îM=ïX�î#ŽïVÛî'Rî*| î1ðî>îDÀîHîM<îM<ïVÛî#ŽïU5î)ýî.“ïU5î#ŽïR»î&Xî*Íî,cî-€î1Ÿî5î8‘î9ûïR»î#ŽïPW{`× î+ôïPWî#ŽïNÜî%5 î/Iî/IïNÜ|ïNÜîBšïNÜ{ïNÜîCqïNÜî#ŽïMaî%5 î/Iî/IïMa|ïMaîIRïMa{ïMaîJ)ïMaî#ŽïKæî%5î2¥î2¥ïKæî#ŽïJk|î<ÀïJk{ïJkî>nïJkî#ŽïHw`Xî& î,!î.; î5Yî7´î;î>¦î@ïHî#ŽïE¢{`× î,ËïE¢î#ŽïD'î%5 î/I î:4ïD'î#ŽïB¬î%5 î/IîAÃïB¬î#ŽïA1î%5î2¥îFÍïA1î#Žï>Ìw`Xî&X î0Jî5Ýî7=î;eî>[î@¶ îGßï>Ìî#Žï;Å î/Æî/Æï;Åyï;Åî2ï;Åwï;Åî2Xî2Xï;Åyï;Åî7Sï;Åwï;Åî7Ìï;Åî#Žï9Kyî%Èï9Kwï9Kî&Zî'ôî*Šî,þî1î3î4sî7ƒî<¡î>qîM<îM<ï9Kî#Žï7¥î'oî'oï7¥yï7¥î,jï7¥wï7¥î-ãî0dî3àî;†îB\îE¢îK§îM=îM=ï7¥î#Žï5ÿî2àî3Àî7î;€î?vîAìîC�îHÄîJáîM<îM<ï5ÿî#Žï4Y î+Fî/zî2�ï4Yî#Žï1ßî&X î/þî5‘î6ñî;î>î@j îG“ï1ßî#Žï.Ø î/zî/zï.Øyï.Øî/Òî4Hî7Sî:¿î@sîDÆï.Øwï.ØîE?ï.Øî#Žï,^yî'¬ï,^wï,^î(î)†î+óî0î4î60î8œî;äî? îEêîFTîFTï,^yï,^îIï,^wï,^îIpîJáîM<îM<ï,^î#Žï*¸î' î* î+·î.(î1uî3 î8Àî=xî=çî=çï*¸yï*¸î@ûï*¸wï*¸îAiîBßîD îM=îM=ï*¸î#Žï)î&/ î-¶î0Žî5øî:žî=ÚîE>îGQîJ(îM<îM<ï)î#Žï'lî)^î,Ðî3‘î8¨ îA·îBlîBlï'lyï'lîGÈï'lwï'lîH~îJ;îM=îM=ï'lî#Žï%Æî'Ãî*lî-Žî/<î1 î3\î8Œî<î>ÆîCØ îK»îM<îM<ï%Æî#Žï$ î)+î+î. î.¡î1`î7µî9‹î=î>kîE’îI¸îM<îM<ï$ î#Žï"zî'î)›î/ î2þî5�î<î>ò îE¿îIÍîM<îM<ï"zî#Žï Ôî%|î&™ î3¡î6—î8òî<­î@îA‘ îJ[ï Ôî#ŽïZî&X î2ëî8~î9Þî>î@üîCW îJ€ïZî#ŽïSî2gî2¿î2¿ïSyïSî75î:@î=¬îC`îG³ïSwïSîH,ïSî#ŽïÙî&Æî,…î1•î2Þî5/î6ñî8êî<šîB¼îEÞîHdîHdïÙyïÙîL‚ïÙwïÙîM<îM<ïÙî#Žï3yî&Aï3wï3î'¢î'¢ï3yï3î*¶ï3wï3î,î/~î/~ï3yï3î4Úï3wï3î5Ú î>îAHîC…îG±îKNîM<îM<ï3î#Žï� î+hî.ˆî2oî4î5þî:(î>ÀîCÎîD2îGÖîM<îM<ï�î#Žïçî%dî'ÿî*dî/Hî1vî2Óî9bî;8î=ÓîAVîAÏïçyïçîF…îIÐîM<îM<ïçî#ŽïAî)Bî-•ïAwïAî.pïAî#ŽïÇî(„î+Tî1[î5Œî7aî9à îDWîJâîM=îM=ïÇî#Žï!î3Nî6Éî:…î@µîF–îK²îM<îM<ï!î#Žï {î7øî; îB‰îFÊîKCîM=îM=ï {î#Žï Õî:Èî>B îGöîJGîM=îM=ï Õî#Žï /î(¾î-bî0 î2Üî4rî:áî=×îBƒîE¯ îKÅï /Ø êq?€`½º7·INTERLISP-DRELEASENOTESAPPENDIXAImageStreamPredicates(IMAGESTREAMPXImageType)[Function]returnsX(possiblycoercedtoastream)ifitisanoutputimagestreamoftypeImageType(orofanytypeifImageTypeisNIL),otherwiseNIL.(IMAGESTREAMTYPEStream)[Function]returnstheimagetypeofStream.(IMAGESTREAMTYPEPStreamType)[Function]returnsTifStreamisanimagestreamoftypeType.CreatingYourOwnFlavorofImageStreamIndescribingataskascomplexasbuildinganewflavorofimagestream,nodocumentcancontainalloftheanswers,tricks,andshortcuts.Thereisnosubstituteforstudyingaworkingimplementationindoingyourown.Therefore,werecommendyoulookattheFX80STREAMpackageasanexampleofhowtocreateanewimagingdevice.FX80STREAMisaDIGinterfacefortheEpsonFX-80printerœadevicesimpleenoughtodrivethatitsdetailsdonotobscurethefundamentalsofhowitsimagestreamworks.îKÅï /î êïgw`XîLGïÐq`FîLåïÐîqï"r`#îqïþEt#îLåï"îLåîLåï"q`Fï"îLåï"îqïÉr`#î·ïÉq`FïÉ îÙî2îøïÉr`#ïÉîøïÉîFXïiq`FîL#îLåïir`#ïiîLåïiîqïhîqïhþEt#îLåïhîLåîLåïhîqïd~z`iî îµ î ïd~îqïcir`#îqïcXþEt#îLåïciîLåîLåïciî#Žï`Æw`X î/{î/{ï`Æyï`Æî0¹î7Âï`Æwï`ÆîFT îLåï`Æî#Žï^Lî(›î(›ï^Lyï^Lî)�ï^Lwï^Lî*î0/î5êî7©î8ïî>=î?ƒî@ÉîBRîDiîIîM<îM<ï^Lî#Žï\¦î(pî*=î-î-ï\¦yï\¦î4ˆï\¦wï\¦î5î7tî9@î<î?Wî@«î@«ï\¦yï\¦îG´ï\¦wï\¦îHCîIÙîM<îM<ï\¦î#Žï[î*î,¥ï[î#ŽïWùî2/î2/ïWùyïWùî6ÄïWùwïWùîFT îLåïWùî#ŽïUî(rî*Íî/î2 î3¢î3¢ïUyïUî87ïUwïUî8™ïUî#ŽïRxî3î3ïRxyïRxî8î;ïRxwïRxîFT îLåïRxî#ŽïOþî(rî)¦î*Ãî*ÃïOþyïOþî/XïOþwïOþî/°î1î2þî72î;Þî=tî@î@ïOþyïOþîC–ïOþwïOþîCøïOþîqïKäz`iîEîÎî"îôî î%®î+ëïKäîqïJÏr`#îqïJ¾þEt#îLåïJÏîLåîLåïJÏî#ŽïH¹w`Xî%$ î,7î-^î0\î23î7üî9Òî?Qî@xîCxîGiîIîM<îM<ïH¹î#ŽïGî(Àî*ßî1¿î4—î9Öî;Çî=‚î@îF'îJ}îM<îM<ïGî#ŽïEm î*ðî+ûî0Áî2Ôî5� î<Ãî?�îFîGÓîM<îM<ïEmî#ŽïCÇ î-ñî/¶î3îî7`î;î;¤ îBäîEMîM=îM=ïCÇî#ŽïB!î&Wî)‚î++î-¦ î7î=î>ðî@þîFÐîH…îK¦îM<îM<ïB!î#Žï@{î(î)pî,šî27î7Nî7Ú îAfîBúîDKîGIîM<îM<ï@{î#Žï>·î%ªî(î,jî0~î4²ï>·vï>·î6ï>·wï>·î71î;³î@,îE`îFøîJtîM<îM<ï>·î#Žï=î%¶î*‘î,æî/¨î5Œî8B îA“îC„îFáîI îM=îM=ï=î#Žï;kî(:î,cï;k êq?€`½• ~GACHA  ~GACHA  é HELVETICA  é HELVETICA é HELVETICAé HELVETICA é TIMESROMAN é TIMESROMANé HELVETICAé HELVETICAé HELVETICAé HELVETICA~GACHA C Õ e b$ 7. Y7Û</j/?=ÿÿžeõÝÿÿÿÿÿÿ&{ERIS}INTERMEZZO>DOC>DIG.PRESS;1SANNELLA18-Mar-85 13:23:13