UsingtheInterlisp-DRS232FacilityFile:RS232.ttyCreated:Jan10,1983Revised:Feb21,1983,andAugust18,1983,byJonLWhiteBasicRS232FacililtySupportFunctionsThroughaspecialcircuitboardpluggedintotheparallelportofaDolphin,serialRS232communicationsmaybeinterfacedusingthefollowingbasicfunctions.Ascharactersarriveinattheinterfaceport,theyarestoredinaringbuffer(andtheoutputfunctionswillbuffertheirdatainaringbufferuntilitisfull,oruntilexplicitrequestismadetoforceitout).Sincethereisnomicrocodesupportforbufferingthecharactersastheycomein,therearesomelimitationsusingthisfacility--primarilythattheuserhastocalloneofthefunctionswhichwillupdatetheinputringbufferatintervalsfrequentenoughtoinsuregettingallthecharacters.RS232INIT:beforeusingtheRS232facility,itisnecessarytoinstallcertainparametersintheINS8250chipontheabovementionedboard;thefourargumentstothisfunctioncorrespondtothedesiredBaudrate(150,300,600,...9600aresupported),thenumberofbitsperserialcharacter(i.e.,7or8),whetherornottousethe8thbitasaparitybit(andifso,whetherparityistobeoddoreven),andthenumberof"stop"bits(exceptinunusualcases,1thedefaultvalue,isusedhere).CAUTION:thevalueofRS232INITasaglobalvariableisusedbythesedriverfunctions;donotresetitatanytime.Aglobalvariable,RS232XON\XOFF?,ifnon-NIL,causesthedriverfunctionstolookfor^Sontheincomingside,andto"gag"theoutputtransmitteruntilasubsequent^Qhasbeenreceived;itwillprobablycauseunduetroubletosetthisflagtotrueifthecorrespondinghostdoesn'talsoobeytheXON-XOFFprotocols.Thisvalueis,ofcourse,temporarilyturnedoffbytheFTPprotocols,whichtransmitandreceiverandombytes.RS232CLEARBUFFER:oneargument,typicallyoneof(INOUTPUTBOTH)thecorrespondingringbufferiscleared(andthedatalost);also,returnwillbedelayeduntilanycharactercurrentlybeingsentoutbytheINS8250chiphasbeenfullytransmitted(thisway,notonlyistheringbufferempty,butsoistheone-characterbufferintheINS8250).RS232FORCEOUTPUT:noarguments.Ensuresthatalldataintheoutputringbufferisactuallytransmitted"onthelines".Oneuseofthisfunctionistoensurethatalldataareout--itwon'treturnuntilthisistrue[butalsoseeRS23BACKGROUNDbelow].RS232BACKGROUND:oneargument,"state"The"state"argumentmustbeamong{OFF,INPUT,OUTPUT,BOTH,ON};exceptforinputofOFF,thisturnsonabackgroundlow-levelprocesswhichwillservicetheUARTatleastonceevery16millisecondsand/orflushouttheoutputbuffer.A"state"ofOFFshutsthisbackgroundactivityoff.A"state"ofINPUTcausesonlytheinputbuffertobeserviced;OUTPUTforonlytheoutputbuffer,andeitherONorBOTHforbothbuffers.Aperiodpî êïc/î êïb6qî ðïb6î êï`Þî Áî ˜î oîFîîôîËî¢îyîPî'îþîÕî¬îƒîZîdî À î*Ôî+«î0µî1Œî8Jï`Þî êï_†î ðï_†î êï^.îàîÖî%¨ï^.î êï\ÖîÖî2îŽîðï\Öî êï[~îyîÖî2îŽî ˜î#ôî)Õî-1î2;î4Àî8óî=,ï[~î êïZ&î ðïZ&î êïXÎî ðïXÎî êïWvî Áî ˜î oîFîîôîËî¢îyîPî'îþîÕî¬î¶î Àî)&î/Þî7sïWvî êïVî ðïVî êïTÆî Áî ˜î oîFîþî¬îdî$î)&î/Þî4î7mî>üîC/îE´îGbîGhïTÆî êïSnîyîZîd î)ýî-Yî/Þ î9î>%îA�îIïSnî êïRîô î1îî� î%Êî+«î.0î0µî4îüîDîH9îJ¾îJ¾ïP¾î êïOfî ˜î žïOfî êïNîîþîî�îî$î&¡î+«î3:î9òî% îGbîIçîIçïL¶î êïK^îLïK^î êïJîîyîƒîßî î)&î.0î2cî9òîüîC/îF‘ï?Fî êï=îî Áî ˜î oîFîPîƒî¶îdîî Àî!—î%Êî)& î3:î6–îüîC/îF‹îF‹ï=îî êï<–îúï<–î êï;>î Áî ˜î oîFî¬î�î;î Àî$î*Ôî-Yî0µî3:î6–î9òî=Nî@ªîC/îDÝîIíï;>î êï9æî Áî ˜î oîFî¢îÕîZî¶î"nî(Oî*Ôî-Yî/Þî3:î5¿î; î>üîBXîH9îIíï9æî êï8Žî Áî ˜î oîFî'îZîî!—î(Oî.0î/Þî3:î9òî?ÓîBXîF‹îF‹ï8Žî êï76îúï76î êï5Þî Áî ˜î oîFîÕî1î;î Àî)&î+«î-Yî3:î:Éî=NîA�îDîH?ï5Þî êï4†î Áî ˜î oîFî' îdî;î Àî$î)&î+«î.0î1Œî5Åï4†î êï3.î Áî ˜î oîFîîôîËî¢îPî1î!—î/î1Œî9î>üîBXîGhï3.î êï1Öî Áî ˜î oîFî¬î1îdî Àî#Eî%Êî)&î0µî5¿î9î; î@ªîDîIï1Öî êï0~î Áî ˜î oîF îZîdî î(Oî*Ôî.0î2cî:Éî; î>%îBXîIï0~î êï/&î Áî ˜î oîFîPîZîî!—î$óî)&î-Yî/Þî4î6–î9ò îE´îIï/&î êï-Îî Áî ˜î oîFîþî1îdî Àî(O î1Œî2cî6–î; î>üîA�îGhï-Îî êï,vî Áî ˜î oîF îZî;î!—î$î'xî*Ô î4î9î@ªîDîJ¾îJÄï,vî êï+î Áî ˜î oîFî'î7ï+î êï)Æî ðï)Æî êï(nî Áî ˜î¶î�îéî(Oî0µî4î6–î9òî?ÓîD ï(nî êï'î Áî ˜î oîFî¢ îdî!—î'xî)ýî0µî4èî8Dî%îA�îDîGbîGbï$fî êï#îÑï#î êï!¶î Áî ˜î oîFîyîÕîî î)&î.0î2cî5¿î9òî%îA�îF‘ï®î êïVî Áî ˜î oîFîyîZîßî"n î,‚î/Þî3:î9òî:Éî>%îA�îDîGhïVî êïþî Áî ˜î oîFîÕîZîßî Àî$óî(Oî,‚î/Þî3:î5¿î8Dî=NîC/îGhïþî êï¦î Áî ˜î oîFîyîþî1îdî!—î$ó î1Œî7sï¦î êïNî ðïNî êïöî Áî ˜îßî;î&¡î,ˆïöî êïžî Áî ˜î oîFî¢îZîéî$î&¡î+«î0µî6–î=NîBXîF‹îGbîGbïžî êïFîËîÑïFî êïîî Áî ˜î oîFî¢î¬î1îdî!—î&¡î)&î*Ô î4îî Áî ˜î oîFîþîZî�îî$î(Oî-Yî/Þ î:Éî@ªîE´îIîIï>î êïæîFîLïæî êï Žî Áî ˜î oîFî'îßî¶îdî$î&¡î)ýî/î3: îüîBXîBXïb6î êï`Þ î'îï`Þî êï_†î Áî ˜î oîFîË î¶ î$óî+«î3:î6– î@ªîDÝîIîIï_†î êï^.î oî uï^.î êï\Öî Áî ˜î oîFî'î¬îßîî$î'xî+±ï\Öî êï[~î ðï[~î êïZ&î Áî ˜ î1î¶ î$óî%Êî,‚î/Þî4îüîBXîF‹îF‹ïWvî êïVîËîÑïVî êïTÆî Áî ˜î oîFî'îþî¶îéî'xî)ýî+«î/Þî3:î5¿î; î?Ó îH?ïTÆî êïSnî Áî ˜î oîFî¢îƒîî¶î!—î)&î-Yî0µî4èî7mî:Éî?ÓîDîIíïSnî êïRî ðïRî êïP¾î Áî ˜ î1î�î$ î-Yî.0î2cî4èî8Dî=NîBXîIíïP¾î êïOfî Áî ˜î oîFîPîƒîdîî#Eî%Êî(Oî*Ôî0µî3:î9òî:Éî=Nî?ÓîH9îIíïOfî êïNî Áî ˜î oîF îƒîî;î$î(Oî+«î.0î1Œî6–î>%î@ªîBXîGbîGbïNî êïL¶îî#ïL¶î êïK^î Áî ˜î oîFîËîþî1î¶î;î"nî&¡î*Ôî/Þî5¿î>%îF‹îF‹ïK^î êïJîÑïJî êïH®î Áî ˜î oîFîËîZî Àî#Eî&¡ î/Þî2cî5¿î:ÉîBXîDÝîGhïH®î êïGVî Áî ˜î oîFîPîîéî#Eî%Êî)ýî.0î6–î>%îC/îF‘ïGVî êïEþî Áî ˜î oîFîyîƒîî�îî'xî(Oî+«î1Œî9 îBXîDãïEþî êïD¦î Áî ˜î oîFî'î¬îZîdî#Eî$î*Ôî-Y î9îî Áî ˜î oîFîPîƒîéî#E î,‚î.0î2cî4èî6–îî êï9æî Áî ˜î oîFî'îZî Àî$î,‚î.0î2iï9æî êï8Žî ðï8Žî êï76î Áî ˜ î1îîî&¡ î/Þî0µî2cî9òî%îA� îIíï5Þî êï4†î Áî ˜î oîFî'îƒîßî;î%Êî(Oî)ýî0µî1Œî4èî9òî=NîDÝîDÝï4†î êï3.îï3.î êï1Öî Áî ˜î oîFî¢ î¶î"nî$óî(Oî+«î3:î; î>% îJ¾îJÄï1Öî êï0~î Áî ˜î oîFîyîÕîZî¶î#Eî&¡î)&î,‚î0µî4î9òî>%îA�îDîDï0~î êï/&îï/&î êï-Îî Áî ˜î oîFîÕîZî¶î Àî(Oî*Ôî3:î5¿î9òî%îDîDï-Îî êï,vî¨ï,vî êï+î Áî ˜î oîFî¢î'îZîßî!—î$î)ýî-Y î6– î@ªîC/îF‘ï+î êï)Æî Áî ˜î oîFîyîþîî�î;î%Êî&¡î*Ôî/î2c îü îJ¾îJÄï ^î êïî Áî ˜î oîFîyîî;î"nî'xî,‚î0µî4î9î=NîBXîE´îH9îH9ïî êï®î#ï®î êïVî Áî ˜î oîF îƒîîéî#Eî&¡î+«î1Œî4 î=NîBXîDÝîGbîGbïVî êïþîî#ïþî êï¦î Áî ˜î oîFîyîþîî�î)ýî*Ôî/î4î6–î=Nî@ªîBXîJ¾îJ¾ï¦î êïNî oî uïNî êïöî Áî ˜î oîFîyî¬îî#Eî(Oî*Ôî.0î5¿ î?ÓîDîIîIïöî êïžî oî uïžî êïFî Áî ˜î oîFîÕ îî!—î$óî'xî/î1Œî5¿îî oî uï>î êïæî Áî ˜î oîFî¬îƒîî;î Àî#Eî*Ôî.0î/ î9òîBXîE´îF‹îF‹ïæî êï Žîôîúï Žî êï 6î Áî ˜î oîFîyî1îdîéî#Eî)&î/Þî3:î9ò îDîDÝîEºï 6î êï Þî Áî ˜î oîFîîôîËî¢î' îéî"nî*Ôî/î).However,inmostcases,thisstreamapproachwillnotworkunlesstheî êïc8î êïb6qî Áî ˜î oîFîPî¶îéî$î&¡î/î1ŒîA�îA�ïb6î êï`Þ îÛï`Þî êï_†î Áî ˜î oîFîË îdîéî(Oî*Ôî/î1Œî3:î9îüîDÝîGbîJ¾îJÄïXÎî êïWvî Áî ˜î oîFî'îZîî"nî&¡î)&î/î2cî4èî8Dî>%îDîF‹îIïWvî êïVî Áî ˜î oîFîPî' îéî#E î,‚î0µî3:î9îüîBXîH9îH?ïVî êïTÆî Áî ˜î oîFîÕîZîî"nî)ýî/î1Œî4î; î?ÓîBXîE´îE´ïTÆî êïSnî¨ïSnî êïRî Áî ˜î oîFîdîéî$î(Oî*Ôî/î3:î@ªîDîDïRî êïP¾îïP¾î êïOfî Áî ˜î oîF îƒîdî!—î$óî*Ôî-Yî0µ î%îE´îJ¾îJÄï=îî êï<–î Áî ˜î oîFîyîÕîßî!—î&¡î)&î+«î0µî4î7mî>%î@ªîDîH9îH?ï<–î êï;>î Áî ˜î oîF îîßî!—î$óî*Ôî1Œî4î7mî=Nî>%î@ªî@ªï;>î êï9æ îï9æî êï8Žî Áî ˜î oîFîËî'î¶î!—î$î'xî*Ôî/î1Œî9òî>üîC/îF‹îF‹ï8Žî êï76î¢î¨ï76î êï5Þî Áî ˜î oîFîPî¬î�î$óî%Êî)&î/Þî2c î=Nî@ªîGbîGbï5Þî êï4†îôîúï4†î êï3.î Áî ˜î oîFî¢î1î;î$óî*Ôî+«î,‚î3:î9î>%îDîGbîJ¾îJÄï3.î êï1Öî Áî ˜î oîFî¢îï1Öî êï0~î ðï0~î êï/&î Áî ˜î!—î$óî-Y î9òî=Nî>%î>%ï/&î êï-Îî‰ï-Îî êï,vî Áî ˜î oîFîþî1î;î#Eî)ýî/î7mî9òî=NîBXîDÝîH9îH9ï,vî êï+îFîLï+î êï)Æî Áî ˜î oîF îƒî�î î+«î/î2cî4èî7mî:Éî>%îC/îE´îEºï)Æî êï(nî Áî ˜î oîFî¶îî"nî&¡î'xî.0î1Œî7mîüîBXîF‹îF‹ïþî êï¦î¨ï¦î êïNî ðïNî êïöî Áî ˜î¶î;î%Ðïöî êïžî Áî ˜î oîFîPîßîé î)ýî,‚î1Œî4èî9òîî Áî ˜î oîFî¢îƒîßîî$"ï>î êïæî ðïæî êï Žî ðï Žî êï 6î ðï 6î êï Þî Áî ˜î oîFî¢îZî;î Àî'xî)ý î3:î6–î9òî?ÓîA�îGbîGhï Þî êï †îPîÕî1î;î"nî$óî+« î4èî%îDîDïZ&î êïXÎîïXÎî êïWvî oîPîZîî"nî%Êî.0î1Œî5¿î8DîüîA�îGhïWvî êïVîîyîZîé î)&î-Yî4î:Éî=Nî@ªîDîF‘ïVî êïTÆîî¢îî�îéî(Oî-_ïTÆî êïSnî ðïSnî êïRî Áî ˜î oîFî¢î1îdî#Eî&¡î+«î0µ î9òîA�îA�ïRî êïP¾ î-ïP¾î êïOfîËî¬îßîd î(Oî+«î2cî9î; îC/îE´îE´ïOfî êïNîïNî êïL¶î ˜î¢î¬î¶î�î Àî"nî'xî*Ôî/î7mî:ÉîBXîF‹îIçîIçïL¶î êïK^î uïK^î êïJîËîZî%Êî(Oî/Þî2cî6–î:Éî?ÓîC/îH9îJ¾îJÄïJî êïH® î¬îî�î$î(Oî-Yî/Þî2cî6–î7m î@ªîC/îH9îJ¾îJÄïH®î êïGVîFîPî¶î Àî&¡î(Oî0µî3:î5¿î=Nî@ªîH9îH9ïGVî êïEþîî#ïEþî êïD¦îôîPîZîßî(Oî*Ôî,‚î3: î%îBXîDÝîH9îJ¾îJÄï?Fî êï=îîPî1îî'xî,‚î/î2cî8Dî:Éîî ðï;>î êï9æî ðï9æî êï8Žî ðï8Žî êï76î ðï76î êï5Þî Áî ˜î oîFîîôîËî¢îyîPî'îþîÕî¬îƒîZî1îîßî¶î$î$óî+±ï5Þî êï4†î ðï4†î êï3.î Áî ˜î oîFî¢î1 î"nî&¡î*Ôî2c î; îDîE´îIíï3.î êï1ÖîË î¶î#Eî&¡î+«î0µî1Œî4èî9òîA�îDîJ¾îJÄï1Öî êï0~îîËî¬îî!—î$óî,‚ î5¿î=Nî?ÓîBXîE´îIîIï0~î êï/&îËîPî¬î¶î;î-Yî2cî4èî9òî>% îIçîIçï/&î êï-ÎîFîLï-Îî êï,vîFîyîþîZî¶îdî#Eî&¡î*Ôî2cî8Dî@ªîC/îC/ï,vî êï+îPîVï+î êï)Æî oîî;î&¡î)ýî2cî5¿ î>üîDîIçîIíï)Æî êï(nîîyîZ î$î&¡î)&î-Yî/Þî3:î9î; î>üîF‹îF‘ï(nî êï' îþîZîßî Àî$î)&î-Yî4èî9òî>üîDîF‹îJ¾îJÄï'î êï%¾î¢ î¶îéî"nî$óî+«î-Yî4èî9òî=NîE´îH9îH9ï%¾î êï$fîFîLï$fî êï#î¢ îßî#Eî'xî*Ôî2cî8Dî=NîE´îH9îH9ï#î êï!¶îFîLï!¶î êï ^îôîZî�î!—î(Oî*Ôî.0î5¿ î>üîA�îDîF‹îF‹ï ^î êïîôîúïî êï®îîËîƒîîdî Àî$óî*Ôî-Yî0µî5¿î>%îA�îDÝîIçîIíï®î êïVîôîþî¶îéî!—î'xî)ýî-Yî0µî5¿î=NîC/îIíïVî êïþî oî'î¬îî�îéî#Eî*Ôî3:î4î4ïþî êï¦î Áî ˜î oîFîPîÕî¶î Àî)& î2cî5¿î9òî>%îA�îIîIï¦î êïNî oî uïNî êïöîËîƒ î"nî%Ê î/î4î6–î9î; î>üîC/îE´îIîIïöî êïž îƒîZ î"nî$î(Oî,‚î0µî2cî7mî:É îDîGbîGbïžî êïFîî#ïFî êïîîîPîƒîZî¶îéî(Oî,‚î/Þî4î7mî9òî=NîBXîDÝîIîIïîî êï–î oî uï–î êï>îFîy î�î"nî&¡î*Ôî3:î4 î=Nî@ªîDîJ¾îJÄï>î êïæîîyîZî¶îéî#Eî'xî+«î1Œî5¿î8Dî:Éî>üîDÝîE´îH9îH9ïæî êï Žî#ï Žî êï 6î¢î'î1 î"nî%Êî(Oî+«î0µî4èî:Éî=Nî@ªîDÝîGbîIíï 6î êï Þîîƒî;î"nî%Êî4è î>%îBXîDÝîDÝï Þî êï †î¨ï †î êï.î oî¶î;îéî$óî'x î4î9î=NîA�îGbîGbï. # êq?€[ÇÍoutput.Caveat:OutputtothetheDolphindisplaytakesanon-trivialamountoftime(e.g.,justgoingthroughthecharacterprintoutroutines,and"painting"acharacterontothescreenbit-maprequiresoveramillisecond;scrollingamodest-sizedwindowmaytakewellover30milliseconds).Withoutadditionalmicrocodesupport,tomaintaintheinputringbufferasynchronously,itisquestionablewhetherratesabove2400baudwillbeacceptableforRS232CHAT,andtheremaybeocasionalproblemsabove1200baud).At"slower"speeds,thatis,atlessthanabout600baud,theuseofRS232BACKGROUNDmayalleviatetheseproblems.However,RS232CHATwillpayattentiontotheDSPSCROLLsettingofthechatwindow,andwilldo"roll"moderatherthan"wrap"modeprovidedthatitcandosowithoutdroppingcharacters["roll"describesthe"scrollup"actionwhentypeoutreachesthebottomofthewindow].IftheXON/XOFFprotocolisbeingused,orifthebackgroundprocessmentionedaboveisinoperation,thenlikelytherewillbenoproblemisusing"roll"mode.Escapefrom"duplex"modeismadebytypingthethecharacterwhichisfoundinthevalueof\RS232ESCAPE.CHARCODE,currentlyinitializedto(CHARACTER#B)[thishappenstobemiddle-blank].Typing"?"justaftertheescapecharacterwillgiveasmall"helpmessage;thecommandstobeusedinthismodeareallone-letter:B-sendaBREAK(0.25seconds)E-changetheescapecharacterF-deactivatetheXON\XOFFprotocolH-callthefunction(HELP),withinterruptsre-activatedL-callthefunction(RS232.PROMPT&LOGIN)O-settheXON\XOFFprotocolactiveQ-forquitandexit,presumablybacktoLISPXS-setthespeedoftheRS232port;?willdisplaychoices.-'Return'keysendstoremotehost-'Return'keysendstoremotehost^B-runa"break"orHELPloopR-callRAID7-truncateincomingcharactersto7bits(thisisnecessarywhenyouhaveopenedan8-bitconnectionignoringtheparitybit;youreallyonlywanttoseethelower7bitsinterpretedasacharactertobeprintedonthewindow).8-undothe"7-bit"modeabove(justincaseyouactuallywantedtoseetheeightbit--typicallytheprintoutwillbejustthesameasasthe7-bitprintout,butpreceededbya"#"whentheeighthbitisoninacharacter.)Additionalcontrolmaybeexercisedwiththepop-upmenuobtainedbypressingthemiddlemousebuttonwiththecursorintheRS232CHATwindowwhileRS232CHATisactive;itscommandsareessentiallyself-documenting,andareasuper-setoftheabove-mentionedcommandsavailablefromthekeyboard.Inparticular,it'spossibletoalterwhatRS232CHATthinksisthe"NewLine"character;Interlisp-D'sdefaultistochooseCR,butforconnectionstosomesystems,LFisamuchbetterchoice.Twoothercommandspermit"toggling"(thatis,switchingthestatefromonechoicetoanalternate,andvice-versa):~LocalEchoand~RollMode.ThelatterwillchangetheDSPSCROLLof\RS232CHATWINDOW;theformerwill"toggle"theuseofthelocalechostreamprovidedinthecalltoRS232CHAT(orwilluse\RS232CHATWINDOWifnostreamwasprovided).î êïc8î êïb6qîÑïb6î êï`Þî ðï`Þî êï_†î Áî ˜î oîFîþîßîdî Àî$î*Ôî1Œî6–î8D îBXîH9îJ¾îJÄï_†î êï^.îîþî1î;î$óî(Oî0µî8Dî@ªîDîDï^.î êï\Ö î'î-ï\Öî êï[~î ˜îþî1î�î"nî)&î)ýî1Œî5¿î7m îBXîIíï[~î êïZ&î ˜ îƒîdî Àî$óî)&î-Yî/Þ îüîBXîBXïVî êïTÆ î'î-ïTÆî êïSnîFîPî¬î1î!—î)&î.0î2cî8Dî9î; îC/îIïSnî êïRîîyîþî1îdî"nî%Êî*Ôî.0î1Œî4îA�îDÝîDÝïRî êïP¾îïP¾î êïOfîôîZî1î Àî)&î-Yî0µî9î; î>üîGbîGbïOfî êïNîÑïNî êïL¶î oîËîþî¶îî#Eî%Êî+«î/Þî5¿î9òî?ÓîDîDïL¶î êïK^îyîïK^î êïJîî¢îþîƒîî Àî(O î1Œî8Dî@ªîDîJ¾îJ¾ïJî êïH®î uïH®î êïGVîËîþî¶î"nî%Êî+«î.0î1Œî9î9òîüîC/îGhï?Fî êï=îîFî'î�î Àî$óî&¡î+«î0µî8Dî; îC/îE´îH9îH9ï=îî êï<–îî#ï<–î êï;>î oî¢îÕî1î� î%Ðï;>î êï9æî Áî ˜î oîîËîþî¬î¶î�î!—î(Uï9æî êï8Žî Áî ˜î oîîËî¬îîéî'~ï8Žî êï76î Áî ˜î oîîË îîdî$óî+±ï76î êï5Þî Áî ˜î oîîËîþîZîéî&¡î*Ô î4 î>+ï5Þî êï4†î Áî ˜î oîîËîþîZîéî0»ï4†î êï3.î Áî ˜î oîîËî'îƒîî&¡î+±ï3.î êï1Öî Áî ˜î oîîËî'îZî¶î À î)ýî.0î0µî4îï1Öî êï0~î Áî ˜î oîîËî'îƒî�îî"nî'xî,‚î.0î2cî9î?Ùï0~î êï/&î Áî ˜î oî¢îPîßî;î#Eî'xî)ýî/Þî3@ï/&î êï-Îî Áî ˜î oî¢îPîßî;î#Eî*Ôî-Yî3:î6œï-Îî êï,vî Áî ˜î oîôî¢îþî¬îdîéî$î'~ï,vî êï+î Áî ˜î oîîôî¢îÕî7ï+î êï)Æî Áî ˜î oîîËîZîé î)&î+«î-Yî1Œî6–î9îA�îE´îH?ï)Æî êï(nî Áî ˜î oîFîîôîËî¢îÕî¶î;î#E î,‚î4î7mî=NîA�îDÝîIíï(nî êï'î Áî ˜î oîFîîôîËî¢îÕîî�îéî#Eî(Oî)ýî.0 î8Dî:Éî%îE´îGhïVî êïþîyîÕî¶î Àî&¡î*Ôî.0î4î6–î9òîBXîGhïþî êï¦îôîZîßî!—î$óî,‚î/Þ î9òîH?ï¦î êïNîFî¢îPî¶î;î!—î/î6–î>üîC/îEºïNî êïöîPî'î¬ î Àî$óî,‚î/î4î8Dî@ªîF‹îH?ïöî êïžîFî¬ îé î+«î2cî4èî7mî=Nî@ªîDîF‘ïžî êïF îþîƒî¶î#Eî%Êî(Oî)ýî.0î4î:Éî; î;¦ïFî êïîî Áî ˜î oîFî¢î¬î;î$ î-Yî2cî5¿î>%îA�îF‹îJ¾îJ¾ïîî êï–î uï–î êï>îËîPîÕ îî"n î-Y î6–î9ò îC/îDîGbîGbï>î êïæîúïæî êï ŽîîþîZî Àî#Eî2cî5¿î; î?ÓîGbîJ¾îJ¾ï Žî êï 6î uï 6î êï Þî oîËîÕîîéî'xî)ýî-Yî1Œî4î".Thefollowingtwofunctionsaremostusefulwhentryingto"chat"toahostthroughanRS232connectionrunningataspeedhigherthanInterlisp-Dcansupportfordisplaystreamactivities:RS232LOGIN:6arguments,mostoptional.FirstisthenameofahostmachinewithwhichtheRS232portiscorresponding,secondisthedesiredusername/login.idonthatmachine,thirdisthepasswordneededthere,andfourthisthe"hostsystemtype";theremainingtwoargumentsareconcernedwheretoechotheactivitycausedbythisfunction,andaremainlyofinteresttoothersystem-levelfunctions.Ifeither"username"or"password"isNIL,thewillbeobtainedviaPROMPTFORWORDfromthekeyboard(thisissothatyoudon'thavetohavepasswordsincodefiles);thereisalsoaninternalcacheoftheinformationabouthost/username/password,justasiskeptforloginsovertheEthernet.[seedocumentationofPROMPTFORWORD]WhentheHost'ssystemtypeisknown,thenadatabaseofloginprotocolsisconsultedtofigureouthowtosend(automaticallyandblindly)thenecessarycharacterstoeffectalogin.Atconvenientmoments,theoutputfromthehost,whichisaccumulatedintheRS232linebuffer,willbeoutputfortheuser'sperusal(thefifthargumentisastreamforthisprintout:NILdefaultstotheprimaryoutput,NONEgagsthistype-out;window,filesets.allareacceptablehere).Aprimaryreasonforthisfunction'sexistence,besidesthecacheingofsuchinformationaslogin.idandpassword,istopermitloggininatspeedswhichcannotsupportRS232CHAT(seedocumentationbelow).RS232.PROMPT&LOGIN:oneargument.Promptstheuser(viaPROMPTFORWORD)totypeinthenecessaryinformation,inthePROMPTWINDOW,tocallanduseRS232LOGIN;theargumentishandedtoRS232LOGINasitsfifthargumentî êïc8î êïb6qîFî¬î�î!—î$î(Oî+« î6–î>%îE´îE´ïb6î êï`Þîï`Þî êï_†î oîËî¬ î"nî%Êî4î7mî:É îEºï_†î êï^.î ðï^.î êï\Öî Áî ˜î oîFîôîÕîZî Àî'xî.0îüîEºï\Öî êï[~î oîéî(Oî.0î3:î6œï[~î êïZ&î ðïZ&î êïXÎî Áî ˜î#Eî%Êî'xî+«î.0î3:î7mî9òîA�îC5ïXÎî êïWvî Áî ˜î oîFîîô î¶îî#Eî%Êî*Ôî-Yî2cî4èîDîIîIïWvî êïVîî#ïVî êïTÆî Áî ˜î oîFîîôîyîîé î)&î1Œî5¿î9òîüîBXîIçîIçïNî êïL¶î uïL¶î êïK^î Áî ˜î oîFîîôîÕî1î¶î Àî#Eî&¡î/î7mî; î?ÓîGbîJ¾îJ¾ïK^î êïJî uïJî êïH®î Áî ˜î oîFîîôîZî¶îî!— î*Ôî-Yî/î3:î9øïH®î êïGVî Áî ˜îéî"nî)ýî-Yî/Þî3:î8Dî%îBXîDÝîDÝï@žî êï?F îVï?Fî êï=îî Áî ˜î oîFîîôîyîÕî; î'xî(Oî,‚î2cî4è î>%î@ªîBXîF‹îF‹ï=îî êï<–îyîPî²ï<–î êï;>î Áî ˜î oîFîîôî'îZîî$î*Ôî/Þî0µî4î7m î?Ùï;>î êï9æî Áî ˜î Àî#Eî(Oî+«î3: î=NîC/îF‹îF‹ï9æî êï8Žî¨ï8Žî êï76î Áî ˜î oîFîîôî¢îƒîî¶î"nî(Oî-Yî0µî4èî9òî?ÓîDîGbîGbï76î êï5Þîúï5Þî êï4†î Áî ˜î oîFîîôîZî�îî#Eî)&î-Yî3:î6–î>%îE´îGhï4†î êï3.î Áî ˜î oîFîîôî¬îßî Àî#E î,‚î0µî3: î=Nî@ªîDîD ï3.î êï1Öî Áî ˜î oîFîîôîZî;î î(Oî,‚î/î/Þ î8Jï1Öî êï0~î ðï0~î êï/&î Áî ˜î oîFî¢îîdî%Êî)&î-Yî3:î7mî=Nî?ÓîE´îH9îIï/&î êï-ÎîîÕîZîd î&¡î-Yî/Þî1Œî6–î%î@ªîBXîEºï)Æî êï(nî Áî ˜î oîFîþî1î;î!—î&¡î*Ôî-Y î9òî?ÓîBXîDãï(nî êï'î Áî ˜î oîFîþî$î&¡î*Ôî2cî3:î8Dî:Éî>%îDãï'î êï%¾î Áî ˜î oîFî'îîdî#Eî%Êî)&î.0î4î9òî=NîE´îH?ï%¾î êï$fî Áî ˜î oîFî¬îî"nî#Eî(Oî*Ôî/î2cî9òî?ÓîBXîEºï$fî êï#î Áî ˜î oîFî¬îîdî#Eî%Êî-Yî/Þî4è î?Ó îH?ï#î êï!¶î Áî ˜î oîFîËî¬ îéî"n î+«î.0î2cî5¿î9òîüîA�îD ïî êï®î Áî ˜î oîF îZîdî1Œî5¿î8Dî:Éî>üîBXîGhï®î êïVî Áî ˜î oîFîyîÕî;îî#E î/î1Œ î=TïVî êïþî Áî ˜î oîFîîôîËî¢îÕî1îî$óî)&î+«î1Œî5¿î7mî>üîA�îEºïþî êï¦î Áî ˜î oîFî¬î1î!—î$î)ýî-Yî0µî3:î7m îDîGbîGhï¦î êïNî Áî ˜î oîFîÕî1î!— î*Ôî-Yî3:î4èî:Éî; î>% îF‘ïNî êïöî Áî ˜î oîFîÕî1îî#Eî&¡î+«î0µî3: î=Nî?ÓîC/îH9îH?ïöî êïžî Áî ˜î oîFîyî1îdîéî%Êî)&î,‚î2cî9î=NîBXîIïžî êïFî Áî ˜î oîFîËîyîZî¶îéî(Oî+«î3:î5¿î9î?ÓîEºïFî êïîî Áî ˜î oîFîyî¬îßî#Eî$î*Ôî/Þî4î7mî:É îDîIïîî êï–î Áî ˜î oîFîôî¬î�îéî$ î-Y î6–î=Nî@ªîH9îIíï–î êï>î Áî ˜î oîFîy î�îî&¡î)ýî2cî4èî7mî=NîC/îE´îGhï>î êïæî Áî ˜î oîFî'î1îî%Êî.0î2c î>%îD ïæî êï Žî ðï Žî êï 6î Áî ˜îdî Àî)&î)ýî0µî4î8DîMUMBLE")(RS232PUTFILE'{DSK}RUN.DCOM'BINARY'MODEM"MODEMRBRUN.DCOM")BothendsoftheMODEMprotocolhave"synchronizing"features,soatypicalscenarioofusagewouldbetouseRS232CHATtologintothehost,andthensimplyputtheMODEMprograminitswaitstate,bytypingwhateverargumentsitneeds,andfinallyexitingfromRS232CHATandcallingRS232GETFILE(orRS232PUTFILE)directly,withoutthefourthargument.Thefourth-argumentfacilityisprovidedsothatonemayuseRS232FTPatspeedsgreaterthanwouldbeavailableforRS232CHAT;logincouldthusbeachievedthroughuseofthefunctionRS232.PROMPT&LOGIN.TheglobalvariableRS232FTPTRACEFLG,ifnon-null,causesatraceofactivitytobeprintedoutonthefile/streamspecifiedbytheglobalvariableRS232TRACEFILE;itthevalueisPEEK,thenonlya"+"willbeprintedforsuccessfultransitofpackets,and"-"forunsuccessfulones;anyothernon-nullvaluecausesamoreverboseoutput.î êïc8î êïb6qî Áî ˜î oîFîyîßî!— î*ïb6î êï`Þî ðï`Þî êï_†î ðï_†î êï^.î ðï^.î êï\Öî Áî ˜î oîFîîôîËî¢îyîPî'îþîÕî¬îƒîZî1îîßî¶î Àî%Êî,ˆï\Öî êï[~î ðï[~î êïZ&î Áî ˜î oîFî¢îîî"n î,‚î/î0µî4î; î>üîDîH9îH?ïZ&î êïXÎîPîƒîî î)&î,‚î3:î9òîüî@ªîIîIïSnî êïRîËîþî�îéî$î&¡î)&î.0î0µî6– îC/îH9îH9ïRî êïP¾îî#ïP¾î êïOfîFî¢ î¶î$î)ýî,‚î1Œî7m î@ªîDîDïOfî êïNîyîïNî êïL¶îîyî1îßî!—î'xî*Ôî-Yî4î7mî; î=NîA�îGbîIíïL¶î êïK^ îÕî1îî#Eî%Êî*Ôî-Yî0µî6–î9òî>%îDÝîH?ïK^î êïJîôî¬îîî#Eî%Ê î/î2cî8Dî9î9òî>%î?ÓîDîH9îH9ïJî êïH®î¨ïH®î êïGVî oî¢î1î;î#Eî(Oî0µî4î5¿î; î>%îDÝîIïGVî êïEþ îƒîî"nî%Êî,‚î0µî3:î6–î; î@ªîF‘ïEþî êïD¦ î¬îî!—î%Êî)ý î4è î@ªîDîDïD¦î êïCNîïCNî êïAöî oîyîþî1îßîî$ î.0î2cî4î8Dî:É îDÝîIîIïAöî êï@žîLï@žî êï?F î'îï?Fî êï=îî ðï=îî êï<–î Áî ˜ îZîdî$ó î.0î1Œî4èî=Nî>%îC/îIíï<–î êï;>î Áî ˜î oîFîËî'îZîßî�î Àî#Eî(Oî+«î/Þî4è î>üîDÝîH9îH?ï;>î êï9æî Áî ˜î oîF îßî Àî$î&¡î,‚î0µî3:î9î>ü îIîIï9æî êï8Žî Áî ˜î oîFîËîÕîZî; î'xî*Ôî/î3:î6–î9ò îDîJ¾îJÄï8Žî êï76î Áî ˜î oîFîPîßîdî Àî(Oî-Yî1Œ î; î?ÓîDÝîGbîGhï76î êï5Þî Áî ˜î oîF îƒîdî#Eî+«î/Þî4èî7mî;  îE´îJ¾îJÄï5Þî êï4†î Áî ˜î oîF îZî�î!—î$î'xî-Yî/Þ î9î%îB^ïžî êïFî oîÕî1 î"nî'xî,‚î0µî3:î:Éî@°ïFî êïîîFîËî'î¶î+±ïîî êï–î ðï–î êï>î Áî ˜î oîFî¢îƒîî.0î0µî9î>üî@ªîDãï>î êïæî oîþîƒîî Àî$î&¡î)ý î4îüîBXîGhïæî êï Žîyîéî Àî#Eî&¡î+«î.0î3:î7mî; î=Nî@ªîD ï Žî êï 6î oî'îƒ î Àî'xî)ýî1Œî4èî8Dî;  îF‹îF‹ï 6î êï Þî#ï Þî êï †îFîPîßîéî%Êî'xî+«î2cî8Jï †î êï.î ðï. © êq?€[ǽSeveralimplementationsoftheMODEMprotocolforothermachinesareavailable:onefortheIBM/PCisavailableonfloppydiskthroughXSIS(andisalsoon[MAXC]IBMFTP.ASC).Severalfilesareavailablealsoon[MAXC]forVAX/VMSusers:XMODEM.FORandQIO.DCKareanimplementationinFORTRAN;TOXMOD.FORandFMXMOD.FORarehelpfulfordealingwiththestructureoffilesinVMS'srecordmanagementsystem.î êïc8î êïb6qî ðïb6î êï`Þî¢îî!—î$óî)ýî1Œî4èî9òîA�îDÝîDÝï`Þî êï_† îVï_†î êï^.îFî¢îþîßîdî%Êî(Oî.0î2cî9î=NîA�îDîH9îJ¾îJÄï^.î êï\Öîéî Àî'xî,‚î/Þî8Dîü îIçîIçï\Öî êï[~îFîLï[~î êïZ&î¢îƒ î Àî$î*Ôî.0î0µ î=Nî?ÓîGbîGhïZ&î êïXÎ î'îƒ î Àî$î*Ôî.0î4èî9îLIBRARY>RS232.TTY;3JONL.PA12-Mar-84 16:37:50