1XEROX1108USERSGUIDE6.INPUT/OUTPUTInput/outputontheXerox1108issupportedinmanyways:bykeyboard,display,mouse,rigiddisk,Ethernet,floppydisk,andRS232communications.Thischapteronlycoversaspectsofthelasttwo:thefloppydiskandRS232communications.FloppySupportThissectiondescribesInterlisp-D'sfiledevice{Floppy},whichisusedtointeractwithfloppydrivesonXerox1108machines.Usean8"double-sided,double-density,soft-sectoredfloppydisk(twokindsthatwillworkareDatalife#18071andDysan#800803-02).Insertthefloppyintothefloppydrivefaceup,theedgeofthefloppywithtwo2"-longcoverholes(oneholeperside)goinginfirst.Thewrite-protectnotchwillbeonthesameedgeasandtotheleftofacoverholeasyoulookdownonthefloppyfromabove.Ingeneral,Interlisp-Dcanbeusedtoread,write,andotherwiseinteractwithfilesonPilot-formattedfloppydisksthroughstandardInterlispinput/outputfunctions.AllfamiliaroperationssuchasLOAD,OPENFILE,READ,PRINT,BIN,BOUT,GETFILEINFO,SETFILEINFO,GETFILEPTR,SETFILEPTR,etc.,workwithfloppies.COPYFILEiscommonlyusedtoarchiveandunarchivefilesbetweenfloppiesandotherfiledevices.Filesonfloppiescanbecompiled,edited,hard-copied,etc.,justasfilesmaybeonallotherordinaryfiledevices. q?` p` q?` g_p`2~q`X2~3Cr`#,#3C3C3Cz}"'](+Q-01?33R0Qp[ +QK/u`K ,G3CK/3C3CK/v`iK/3CK/Iz IzHu`H,#3CH3C3CH0F7q`X#; , /33F70D,#& +/Z33D0BZTf&VB0@q ){33@q0> 9"&]*e-x0+33>0=%S=!%3*: 334J4J=%0;a| {#'+P.1?33;09N #(,0b339083OB> #$Q'$ /338306"&#&(N*,./33604G "$)2,u0402m  !$&I*+/332m00(!O$~')3300/!-%+' 33/!0-{ 1=! ),/33-{0+")/33+0*/ ` *c 33*/0( j"L%r+a+,p33(0&E!&)033&0%== $'~-^.133%=0#y#0' 033#0!{i c"0%+-3L33!w q?`2XEROX1108USERSGUIDEINPUT/OUTPUTNaming,Erasing,andFormattingFloppiesToeraseandestablishtrackinformationonafloppy,especiallyafloppythatisbrand-new,call(FLOPPY.FORMATNameAutoConfirmFlgSlowFlg)[Function]TheNameargumentbecomesthenameofyourfloppy.Itcanbeanystringoratomof106orfewercharacters.It'sagoodideatolabeltheoutsideofyourfloppywiththesamenameusingastickylabelandasoftmarker.AutoConfirmFlgcontrolsquestioningyouaboutdestroyingthecontentsofafloppythatappearstocontainvalidinformation.IfAUTOCONFIRMFLGisT,youwillnotbeaskedtoconfirm.SlowFlgdetermineshowthoroughaformattingjobistobedoneonthefloppyyouformat.IfSlowFlgisT,FLOPPY.FORMATcompletelyerasesyourfloppy,settingdowntrackinformationandcriticalPilotrecordsonit.WhenSlowFlgisleftNIL,onlythePilotrecordsneededtogiveyourfloppyanemptydirectoryarewritten.UseSlowFlg=Twithabrand-newfloppy.TypicallyyouwillleaveAutoConfirmFlgandSlowFlgasNIL.Forexample,doing(FLOPPY.FORMAT"MyFloppy")willcreateablankfloppynamed"MyFloppy."Becauseformattingafloppyisaveryintensiveoperationfortheinput/outputprocessor(IOP),theIOPhaslesstimetolookatthemouseandkeyboard.Whileyouareformattingafloppy,themousecursordoesnottrackthemouseaswellandkeystrokesmaybelost.Thisisnormalbehavior;itsimplymeansyoucannotdomuchelsewhileformattingafloppy.3! gq`Xbr`#,#3C3C3f3f!hw`a l7 ''f>eu`e,#3Ce3C3Ce0cq`X]#j' /2}33c0a` w"%& .0a`0^Y ^Yx^Y"g^Y&\ !|&\q\, 3C\0Z9hhZ9xZ9"Z9qZ9 'U*.h0l33Z90XZek !$,%)+;-/33X0V c !%&*R,233V0UGtG#' *,&0833UG0S S0Q'x .Q'qQ'L# ,//33Q'0O f!#$)j,]233O0Mo ##|$ 2;33M0L5p?-!J"(L50Ix5IqI Z"(*; 1H33I0HA=K#&P+5+,,HxH1HqH2:33H0Fo  '*+.33Fo0D\ '+C0n33D0C#q C#xC#%C#qC#&q(*-1@33C#0A}  _"/%_(-@/g33A}0?!"!%B%B?x?*G?q?+-U/2}33?0>1[>10;1Y!!;x; +;q;+t.=.=;x;3B;q;33;0: i $ 033:08k "5&+g0338k06Z  'B(-^/033605u(!$& ,33503y~"%f'B*,c/333y013 #&y -.33100-]!~$'*&.0330-0. !V$'(,.33.0,H"%*,033,0+; "+; q?`3XEROX1108USERSGUIDEINPUT/OUTPUTToresetthenameputontoafloppybyFLOPPY.FORMAT,use(FLOPPY.NAMEName)[Function]IfNameisNIL,thenFLOPPY.NAMEreadsthenameputontoafloppybyFLOPPY.FORMATorFLOPPY.NAME.CopyingFloppiesTheabilitytocopyPilotfloppiesissupportedthroughtwofunctions:(FLOPPY.TO.FILEToFile)[Function](FLOPPY.FROM.FILEFromFile)[Function]FLOPPY.TO.FILEcopiesthecontentsofthecurrentfloppytoafile,andFLOPPY.FROM.FILEisFLOPPY.TO.FILE'sinverse.Forinstance,tocopythecontentsofonefloppyontoanother,insertthefloppytobecopiedintothefloppydrive.Thentype(FLOPPY.TO.FILE'ToFile).Removethefirstfloppyandinsertablankfloppy.Type(FLOPPY.FROM.FILE'FromFile).Thefirstfloppyhasnowbeencopied.TheToFileoutputtedbyFLOPPY.TO.FILEisapproximately2,500pageslongandcanbeplacedonafileserveroralogicalvolumeofyourmachine.FLOPPY.FROM.FILEcanbeusedmorethanonceifyouwouldliketomakemorethanonecopy.AsanalternativetousingFLOPPY.SCAVENGE(describedbelow),theToFileproducedbyFLOPPY.TO.FILEcanbeusefullyeditedtosalvagethecontentsofafloppythathasbeendamaged."+; gq`X2~3Cr`#,#3C3C3Cs (+/[33>s0<T c c<0:S  :Sx:S:Sq:SN"% 2:33:S08 #'0*,.338079e#(*1-n333705a"$(+.2~335a038!h%(c+</'/133302 5,| 33200o``0ox0o<0oq0o%(1 330o0.*!"((*02}33.0-#p8Z%-# q?`4XEROX1108USERSGUIDEINPUT/OUTPUTArchivingtoFloppiesTwospecialfunctionsareavailabletomakearchivingtofloppiesexceptionallyeasy.Theseare:(FLOPPY.ARCHIVEFilesName)[Function]and(FLOPPY.UNARCHIVE{Host})[Function]FLOPPY.ARCHIVEformatsafloppyinsertedintothefloppydrive,givingthefloppythename"Name#1."FLOPPY.ARCHIVEthencopieseachfileinFilestothefreshlyformattedfloppy.Ifnecessary,FLOPPY.ARCHIVEoverflowsontosuccessivefloppies,whichitnamesName#2,Name#3,etc.,eachtimepromptingyoutoinsertanewfloppy.ItisveryconvenienttoarchiveanentiredirectoryorsubdirectoryusingFLOPPY.ARCHIVEinconjunctionwithInterlisp'sDIRECTORYfunction.Forexample,(FLOPPY.ARCHIVE(DIRECTORY'{Server}Project>*)'Project)willcopyallfileson{Server}Project>tofloppies.FLOPPY.UNARCHIVEistheinverseofFLOPPY.ARCHIVE.FLOPPY.UNARCHIVEcopiesallfilesonthecurrentfloppytothedirectory{Host}.Thus,(FLOPPY.UNARCHIVE'{Server}Project>)willcopyeachfileonthecurrentfloppytothedirectory{Server}Project>.Ifthereismorethanonefloppytounarchive,youshouldseparatelyFLOPPY.UNARCHIVEeachfloppy.LoadingSysoutsandOtherLargeFilesOntoFloppiesSysoutsmaybecreatedonfloppiesthroughInterlisp'sSYSOUTorMAKESYSfunctions,thenlaterinstalledonthesameoranotherXerox1108throughtheInstallationUtility.SysoutsmayalsobetakenfromotherfiledevicesandputontofloppiesthroughtheuseofthefunctionFLOPPY.MODE(seebelow).Tocopyasysouttofloppies,simplydo%-# gq`Xbr`#,#3C3C3f3f!hw`a@f>eu`e,#3Ce3C3Ce0cq`X)#&q-S/33c0bi\ (+,0U2b0_ _ x_ !_ q_ "-"-_ x_ %_ q_ , 3C_ 0\\0Y Y&Wx"WqW, 3CW0Uh t#$(.~1?33Uh0SpLx %'o+K+KSxS/SqS333S0R "&*g,.233R0Pv["(*#,g 33Pv0N g (,F 33N0M*&{""M*xM*&KM*qM*))M*xM*-GM*qM*033M*0K"$m(s),112s33K0I ~ C%v'+133I0H8 #W 233H80F ~ $-333F0D* 33D0CF#B)+n.033CF0A*#%/*A0?&"&C*233?&0=a G/33=0;4#v(\*-33;0:4( @$33:408"%M(,/1?33806"'-33605B":"$,( )-v0335B03 "&, 33301 j#$:(1-w`a ;L*!%1)Z0-,u`,,#3C,3C3C,0+q`XnE%#'.<33+0)] .!)P 0n33)]0' d$b&R+0/33'0& !j%&.+.133&0$k:%S(A*.>33$k0"> &< 033"0!*"$ ).A/!v q?`\5XEROX1108USERSGUIDEINPUT/OUTPUT(SYSOUT'{FLOPPY})[Function]or(MAKESYS'{FLOPPY})[Function]Youarepromptedtoinsertnewfloppiesastheyareneeded.Itgenerallytakesthreetofivefloppiestostoreasysout.Toloadinasysoutfromfloppies,youmaydoa2-bootwiththeInstallationUtilityfloppyinthefloppydrive.OnceintheInstallationUtility,youcanloadasysoutontologicalvolumeswiththenamesLisp,Lisp2,andLisp3.Thenormalmodeofoperationfor{FLOPPY}is(FLOPPY.MODE'PILOT)[Function]Threespecialmodesofoperationforfloppies,SYSOUT,HUGEPILOT,andCPM,arealsoavailable.Youcanputfloppiesintoeitherofthefirsttwomodestocopysysoutsorhugefilesfromfileserverstofloppiesorfromfloppiestofileservers.InSYSOUTmode,youmayuseCOPYFILEtomoveasysoutoffanotherfiledeviceontofloppies.Todothis,youmustfirstsetthefloppiesintoSYSOUTmode,thendotheCOPYFILE.Forexample,(FLOPPY.MODE'SYSOUT)(COPYFILE'{FileServer}LISP.SYSOUT'{FLOPPY})willputthecurrentInterlisp-DLISP.SYSOUTontofloppies.WhileinSYSOUTmode,youcancopyasmanysysoutsasyoulikeontofloppies.TheInstallationUtilityisthenusedtoloadthesesysoutsontoaXerox1108.Similarly,sysoutscanbecopiedfromfloppiesontoanotherfiledeviceusingCOPYFILEwheninSYSOUTmode.Forexample,(FLOPPY.MODE'SYSOUT(COPYFILE'{FLOPPY}'{YourFileServer}Your.Sysout)willcopythesysoutontoyourdirectoryonafileserver.Togetbacktoordinaryfloppyoperation,type(FLOPPY.MODE'PILOT).YoucanwriteandreadhugePilotfilesontomultiplefloppiesinHUGEPILOTmode,whichcanbesetbytyping(FLOPPY.MODE'HUGEPILOT).Thismodeis/! gq`X2~3Cr`#,#3C3C3Cc6 )6*K-33>c0< !+33<0;#+ 33;09q= & 0c339q07 $$C(+q.A133706%x"H%|)a/0336%04x 4q4":%'f*.t33402o %*=,.332013h '#*R/33130/c%*/*-33/0- P$,33-0,A,1333,A0*& #E)\+l,.333*0(y#(j /033(0'O ":'O0$!L!L$(+.>33$0#/V!&9*|-S/e133#/0!w !B *+7.K2:33! q?`6XEROX1108USERSGUIDEINPUT/OUTPUTpracticallyidenticaltoSYSOUTmode,withtheexceptionthatyouhavecontroloverthenamesoffilesandfloppies.UsingCPM-FormattedFloppiesCPMisaparticularkindofoperatingsystemthatrunsonmanysmallercomputers.Suchcomputersthatalsohave8"floppydrives,includingtheXerox820-II,cantradeinformationwithXerox1108machinesviaCPM-formattedfloppies.AnumberofCPMformatsexist,butsingle-densitysingle-sided(SDSS)CPMisstandard.Youcancreate,read,andwriteSDSSCPM-formattedfloppieson1108machines.CPM-formattedfloppiesareformatteddifferentlythanPilotfloppies,soyoushoulduseFLOPPY.MODEtoswitchtoCPMmodewhenplanningtoworkwithCPMfloppies.Tocreate,read,orwriteCPM-formattedfloppies,switchtoCPMbytyping(FLOPPY.MODE'CPM).AfterswitchingtoCPMmode,youmayuseFLOPPY.FORMATtocreateCPM-formattedfloppies.WhentheIOPisinCPMmode,theusualinput/outputoperationsworkwithCPM-formattedfloppiesjustastheydowithPilot-formattedfloppieswhenyouareinPILOTmode.Thereareafewlimitations,however.CPMfilenamesarelimitedtoeightorfewercharacters,withextensionsofthreeorfewercharacters.Theydonothavedirectoriesorversionnumbers.AndCPMfilesarepaddedoutwithblankstomakefilelengthsmultiplesof128.Toswitchbacktoordinaryfloppyoperations,type(FLOPPY.MODE'PILOT).ThistakesyououtofCPMmodeandputsyouintoPILOTmode,allowingyoutoresumeformatting,reading,andwritingordinaryXeroxPilotfloppies.3! gq`Xbr`#,#3C3C3f3f!hxGG>x0;.}& z"'G,/33;0:X  "~&K) 33:X08Q1O!\$e.=33807 [i3"'(G,/1 337 05f  C#&#*-X2335f03 #R&l -/|/33302"  l$&J(,} 33200t w"&n)r+13330t0.&=!<&A,N-0.0,Tm$]( 033,T0* k#$P',/&233*0)s"Y%+)-33)0'bt %X+.33'b0%$u%; q?`D7XEROX1108USERSGUIDEINPUT/OUTPUTManipulatingFloppySpaceTwofunctionsareavailabletotellyouhowmuchspaceisleftonafloppyandtocompactafloppy.(FLOPPY.FREE.PAGES)[Function]returnsthenumberofunallocatedfreepagesonthecurrentfloppy.Pilotfloppyfilesarecontiguouslyrepresentedonafloppydisk.Ifyouareusingyourfloppyinteractively(notjustdoingasimpleseriesofCOPYFILEsafteraFLOPPY.FORMAT),don'tcramyourfloppytocapacity.Trytokeepsuchafloppylessthan75percentfull.(FLOPPY.COMPACT)[Function]canbeusedtocompactyourfloppy,movingfilestowardthefrontofyourfloppysothatallfreeblocksonyourfloppyarecombinedintoonefreeblock.However,thismayonlybedoneifyourfloppyisstable,i.e.,iftherearenoextant{FLOPPY}streams.TestingWhetheraFloppyIsintheDriveThreefunctionsareavailablefortestingwhetherafloppyisinthefloppydrive.(FLOPPY.CAN.READP)[Function]predicatetestsifthereisafloppyinthefloppydrive.FLOPPY.CAN.READPdoesnotprovideanydebouncing(protectionagainstnotfullyclosingthefloppydrivedoor).YoumaywishtouseFLOPPY.WAIT.FOR.FLOPPY(seebelow).(FLOPPY.CAN.WRITEP)[Function]predicatetestsifthereisafloppyinthefloppydriveandthefloppydrivecanwriteonthisfloppy.(Thefloppydrivecanonlywriteonfloppieswhosewrite-protectnotchesarecoveredwithtape.)$u% gq`X2~3Cr`#,#3C3C3Cw`a 3f>eu`e,#3Ce3C3Ce0cq`X% &)p,f/33c0a`X!^$%+,0a`0^Y, 3C^Y0[{ Z (-+/@1@33[0Z9zn %'(c+ 33Z90X Rk"%q%'.),{0l33X0V~ !}$((*)U-233V0UG-+,N0 33UG0S!"%&*t./Z33S0Q1M!Q0N, 3CN0Lz)]#&+o033Lz0JNH!|%'*n,A/33J0I.y7&-):,G/h333I.0G"v$(*-2:33G0E!W$'X,o33E0D<D<?w`a P!%???u`?.,#3C??3C3C??0INTERMEZZO>DOC>FLOPPY.PRESS;1SANNELLA18-Mar-85 13:04:39