`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$J ! !CONST RESETFLAG=8; 'CLEARCHIP=3; ' ! MDMIOBLEN=80; ' !TYPE BAUDRATE=(LOW,HIGH); 'MODE=(ANSWER,ORIGINATE); ! LONGLINE=STRING[255]; ! ! MDMIOBRANGE=0..80; ' !VAR MD:MODE; 'SPEED:BAUDRATE; # ! (** THE FOLLOWING VARIABBG"COPYRIGHT FEB 1981 THOMAS H WOTEKI8 R FILER MICROMODXKEYPRES MODEM.LIBr MODEM.LIBr MODEM.LIBr MODEM.LIBr  ANSWER.CODEmgANSWER.CODEmANSMAP.TEXTmANSMAP.TEXTmREADME.TEXT{SYSINFO.DATAvgSYSINFO.DATAvgMODEM.LIBr SYSINFO.DATAMODEM.LIBr PSCAL16. MODEM.LIBRARYYg..FILER.IMPL.CODE.F SYSTEM.LINKERvg FSYSTEM.COMPILER9 LIST.TEXTtM{g ANSWER.TEXTvgg ANSWER.CODEmgLOG.TEXTtM{gLOG.TEXTtM{&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&BLES +ARE DECLARED PUBLICLY +IN "MODEMSTUFF", THE LIBRARY +OF RUN TIME EXTERNALS WHICH +SUPPORTS MICROMODEM '**) ! KEYBDBUFF,REMINBUFF:PACKED ARRAY[MDMIOBRANGE] OF CHAR; ! KEYWPNTR,KEYRPNTR,REMWPNTR,REMRPNTR:MDMIOBRANGE; ! !FUNCTION RINGING:BOOLEAN; !FUNCTION CARRIER:BOOLEAN; !FUNCTION ACIASTATUS:INTEGER; !FUNCTION MODEMSTATUS:INTEGER; !FUNCTION TRANSEMPTY:BOOLEAN; !FUNCTION RCVRFULL:BOOLEAN; !FUNCTION REMINREADY:BOOLEAN; !FUNCTION KEYBDREADY:BOOLEAN; !FUNCTION KEYPRESS:BOOLEAN; CH ,5:Gfa DUMMY {UDIALDIGI -ESC dRETURN =iWAIT !$9Ykp~BNSV<?DG&:bLt^/WAITING FOR A DIAL TONE... .ö h/٪P&צDIALING TYPE TO EXIT...-V*á/K0,,á ,,-á.-.V  Z?$Z?$ $ F RJf|<0J $~vWAITING FOR A DIAL TONE... .ö h/٪P&צDIALING TYPE TO EXIT...-VצWAITING FOR A CARRIER,צTYPE TO EXIT'Ʉ˄LY?#á .Ljá, mLj[?$z#[?$ START DIALING á ..5 [?$z$OK!צ PLEASE WAIT TO HANG UP THE PHONE á ~&* Z?#Z?#z#" ُ؂",&.ǀ"áצWAITING FOR A DIAL TONE#YOU MAY TYPE TO@ dئת1ˡ#HZ [?#ǀ% & '( )+# $ !, Y?$Y?#Y?$Y?#ǀZ?#Z?#ت̀ʀš,ʀ); !PROCEDURE READKEYBD(VAR CH:CHAR); !PROCEDURE WRITEREMOUT(CH:CHAR);  PROCEDURE PUTREMOUT(X:INTEGER); !PROCEDURE GETREMIN(VAR X:INTEGER);  PROCEDURE PUTCHREMOUT(CH:CHAR); !PROCEDURE GETCHREMIN(VAR CH:CHAR); !PROCEDURE PUTLNREMOUT(LINE:LONGLINE); !PROCEDURE GETLNREMIN(VAR LINE:LONGLINE);  PROCEDURE POKE(VALUE,LOCATION:INTEGER);   IMPLEMENTATION E CEDURE TURNONCARR; !PROCEDURE INITACIA(FSKWORD:INTEGER);  PROCEDURE CLEARKEYBD; !PROCEDURE CLEARREMIN; !PROCEDURE READREMIN(VAR CH:CHAR); !PROCEDURE READKEYBD(VAR CH:CHAR); !PROCEDURE WRITEREMOUT(CH:CHAR);  PROCEDURE PUTREMOUT(X:INTEGER); !PROCEDURE GETREMIN(VAR X:INTEGER);  PROCEDURE PUTCHREMOUT(CH:CHAR); !PROCEDURE GETCHREMIN(VAR CH:CHAR); !PROCEDURE PUTLNREMOUT(LINE:LONGLINE);!PROCEDURE RESETMODEM(WORD:INTEGER); !PROCEDURE HANGUP; !PROCEDURE WAITFORCARRIER; !PROCEDURE TURNOFFCARR; !PROCEDURE TURNONCARR; !PROCEDURE INITACIA(FSKWORD:INTEGER);  PROCEDURE CLEARKEYBD; !PROCEDURE CLEARREMIN; !PROCEDURE READREMIN(VAR CH:CHAR!FUNCTION PEEK(LOCATION:INTEGER):INTEGER; !PROCEDURE DIAL(NUMBER:STRING;VAR OK:BOOLEAN); !PROCEDURE TXENABLE; !PROCEDURE SETMODE(MD:MODE;SPEED:BAUDRATE); !PROCEDURE PICKUP(MD:MODE); --UPDATEMO "XPEEK #XCLEARRE %XCLEARKE &XKEYBDRE (XKEYPRES ,XPOKE $XREMINRE 'XREADREM )XREADKEY +XWRITERE * o T...-Vhhhhhh! L ֭HHHH`#>hhHH`"hhHH`"hhhhhh HHHH`0hhhhhh HHHH`0hhhhhhKEYBDBUF KEYBDBUFREMINBUFUPDATEMO UPDATEMOKEYWPNTRREMWPNTRREMRPNTRKEYRPNTRKEYBDBUFREMINBUFDIALDIGI DIALDIGIKEYWPNTRREMWPNTRREMRPNTRKEYRPNTRKEYBDBUFREMINBUFKEYWPNTRREMWPNTRREMRPNTRKEYRPNTRKEYBDBUFXPOKE XPOKE  REMINBUFKEYWPNTRXPEEK XPEEK  REMWPNTRREMRPNTRKEYRPNTRBUMP MP KEYBDBUFYBDBUFREMINBUFLMINBUFKEYWPNTRREMWPNTRD9PNTRREMRPNTR?MRPNTRKEYRPNTRBUMP <MP POLLMODE POLLMODE KEYWPNTRREMWPNTRREMRPNTRKEYRPNTRBUMP BUMP  KEYBDBUFREMINBUFKEYWPNTR PNTRREMWPNTRPOLLKEYB POLLKEYB REMRPNTRKEYRPNTRYRPNTRREMINBUFKEYWPNTRYWPNTRREMWPNTRPOLLKEYBLLKEYBREMRPNTRKEYRPNTRztBUMP w POLLMODEqMODEKEYBDBUFDBUFREMINBUFMP KEYBDBUFREMINBUFKEYWPNTRXWRITERE XWRITEREREMWPNTRPOLLKEYB@LLKEYBREMRPNTRKEYRPNTRPOLLMODE=LLMODEKEYBDBUFXREADKEY XREADKEYXKEYBDREKEYRPNTRYRPNTRKEYBDBUFREMINBUFMINBUFKEYWPNTRREMWPNTRPOLLKEYBLLKEYBREMRPNTR PNTRXREADREM XREADREMKEYRPNTRBUMP REMWPNTRMWPNTRREMRPNTRMRPNTRKEYRPNTRPOLLMODELLMODEKEYBDBUFREMINBUFKEYWPNTRYWPNTRREMWPNTRPOLLKEYBLLKEYBREMRPNTRXKEYBDRE KEYRPNTRKEYBDBUFREMINBUFKEYWPNTRtYWPNTRREMWPNTRXCLEARKE XCLEARKEREMRPNTRKEYRPNTRqYRPNTRKEYBDBUFREMINBUFXREMINRE XREMINREKEYWPNTRXKEYPRES XKEYPRESREMINBUFKEYWPNTRREMWPNTRREMRPNTRKEYRPNTRKEYBDBUFREMINBUFKEYWPNTRREMWPNTRNMWPNTRXCLEARRE XCLEARREREMRPNTRKMRPNTRz 5HH`8Hh`%NV| F\R) [ `4J )`0hh`hhh hHH`(hhhhhhhhHHHH`&hhh zzhHH` hhhhz)z  5 HHHH` 6hhhh )HH`2hhhhhh H' 80) 8 OHHH`\_`{|}~]^@UQCB9^ZVKJDC|P` CONST maxdir=77; {maximum number of entries in directory} &vidleng=7; {number of characters in volume id} &tidleng=15; {number of characters in title id} &fblksize=512; {standard disk block length} &dirblk=2; {directory starts at this diskRNܪPצ צ  á-:ˡšR `عצFile name is too longVolume name is too longצUnit number expectedkצInval0 š éj *áڥצ:P:áڥ #áJ ۪Pצ   á!:áš& ȡ:ة ȡ ةaz ةaAF R צ:ȡ@á:׶P!Rf#š}[  áܩM  * ܪ    Í M  ⓡA éM   ⍡  A #   @árUبNUU l ?٩؞"á' کM ڢM Z ġ  .ange; 5VAR volinfo:direntry);   PROCEDURE getfileinfo(title:string;VAR OK:BOOLEAN;VAR volid:vid; 6VAR unitnum:unitrange;VAR fileinfo:direntry);   IMPLEMENTATION E END; %directory=ARRAY[dirrange] OF direntry; %  unitrange=0..maxunit; %  VAR dirp:^directory; { global directory pointer }   PROCEDURE minifiler;   PROCEDURE fetchdir(unitnum:integer;VAR OK:BOOLEAN;VAR dir:directory);   PROCEDURE getvolinfo(title:string;VAR OK:BOOLEAN;VAR unitnum:unitrity} 3status:BOOLEAN; {for filer wildcards} 3dtid:tid; {title of file} 3dlastbye:1..fblksize; {numbr of bytes in file's last block} 3daccess:daterec); {date last modified} 1END; %directory=ARRAY[dirrange] OF direntry; % irrange; {number of files in directory} 3dloadtime:integer; {time of last access ??} 3dlastboot:daterec); {most recent date setting} 1xdskfile,codefile,textfile,infofile, 1datafile,graffile,fotofile: 2(filler2:0..1024; {12 bits for downward compatibil block} 0CASE dfkind:filekind OF 1securedir,untypedfile: 2{only in dir[0], this is volume info} 2(filler1:0..2048; {13 bits for downward compatibility ??} 3dvid:vid; 3deovblk:integer; {number of blocks in this volume}  dnumfiles:d&filekind=(untypedfile,xdskfile,codefile,textfile,infofile,datafile, 1graffile,fotofile,securedir); & &{directory layout} &direntry=PACKED RECORD 0dfirstblk:integer;{first physical disk address} 0dlastblk:integer; {points at bock following last usedCTLINPUT xOUTPUT fbKEYBOARDFALSE `TRUE vxNIL MAXINT Xv    tle id} &tid=string[tidleng]; & --)vPINTEGER vREAL $|CHAR 6BOOLEAN BSTRING ,TEXT INTERA block address}  &maxunit=12; &  TYPE daterec=PACKED RECORD 0month:0..12;{0 implies meaningless date} 0day:0..31; 0year:0..100;{100 implies dated volume is temporary} 0END; & &{volume id} &vid=string[vidleng]; & &dirrange=0..maxdir; & &{tiid unit numberBColon expected in vol name e@ سعצ Bad blockBad unit numberצBad modeצUndefined hardware errorצ Lost unit Lost fileצBad title, illegal file nameצNo room, insufficient spaceNo unit, no such volumeצNo such file on line ۏٕܩ۩ȡM ٕݢٕk ٪ M  ȡ$MMš M  ة:צ crunchedlory of? Pˡ! کM M  $M ܕצMoving ݢ,   blocks۩צDestroy : ?BM MةDirectory zeroed3No action. Directory preserved.Zero the directšá#ץáI + áM  šU Prefix is : (٪   :צ Prefix is: : Root is: : *Set prefix to? Pz: Directory listing of? Pš4ˡ Volumes on line: ȡW š< M  צ files.á. M M   files,   unused blocks,   in largestM M šI   šܚ M :M ȡá צ of  ݢ BAD Codeצ Text Infogצ DataL Graf1צ FotozaH/۩M áMar-Apr-May-Jun-Jul-Aug-|Sep-jOct-XNov-FDec-4???-" tdTD   blocks.t צ%List,Vols,Prfx,Zero,Krunch,Rmov,Quit?hM ݢݢ ݢ  -Jan-Feb-ܪP ٥áT٥ IM ۥM ةM !MR   ?Þ(ȍ Crunch buffer is  צNYá*Not a blocked volume'Undefined I-O error\`  "á8۪P ٥á٥ ةM !RPצ Duplicat file Not closedNot open Bad formatzRing buffer overflowPWrite protect error' cF#qBvCrunch what volume? Pš=ˡ!  Endangered file(s) on  :M ȡ3M ڢڢצ$Remove file(s) and update directory?M ġM  Removing M &تP%Type (continue), (terminate)++á+ á TTpٚ.ھZڿ ZB5(C) APPLE COMPUTER INC. 1979,1980 (C)U.C.REGENTS 1979B, LINKER RRkzPREFIX O}fPRSLT -29UZa " ejqSTRINGPN.=CRTITLE )BS\$2CLUNITTABL N4p(qKVOLID _x(Tm}'@OOhw BGgjs5 8 M R \ s }HEAP  (IORSLT + ~HMfF\nOFFSET "5JPHYSUNITb{7Bs*CRRkzPREFIX O}fPRSLT -29UZa " ejqSTRINGPN.=CRTITLE )BS\$2CLUNITTABL N4p(qKVOLID `e!&u #6BGgjs5 8 M R \ s }HEAP  (IORSLT + ~HMfF\nOFFSET "5JPHYSUNITb{7Bs*C]/ DIRP 1W_pnxH~'2DOmx~r ; Y p aDIRHEAP  } FILEID  V GINDEX D:? ,(-FILER HmBELL a; BOOTER :|BUFFBLKC  6=CH 5Em}-2,:!+qt:BCLEOS Y~CLEOLN " < p | XdH"(\0TH$dd dצ:ddx"Remove what file(s)? PšCˡ$  "!!!$|xtpl!hKz`" &.2"$&(*,.02468:<>@PbFHJfNZRTVnZ\^r$ >zfjM cc#Gצ Can't find dd dצ:ddx"Remove what file(s)? PšCˡ$  " eeefef9dbdPdbbdP9Ä "lM ddȡSM ee9ef9fefefcM cńM צM ȡM M M M M#צNo action taken%7E# ڪتצ=b9PPbáOM ddȡ4Mǀ" ȡaݢܢ`ܢ`ښܢpܢܢh | ٢٢ٟáٚUۢ٢  !ۢ٢   ٚ۟áڟˡܡڢٚڢٚT x ݟˡ2ݢܱ !ݢܵ ˡ: H ܟˡBܢȡ&ޢ ۯ ޢ`á:צUnit  not foundr  N (ǐɡ sep seg 2 big ȡˡsep seg read err5Ǡō bad proc dict!   ʁ% ܢ ٢ á&*.tN-JH؟ˡآōצ bad proc #ڶ˶˄disagreeing p #Iٕȍ Nōצproc place er ́&ʁ&ȡۢ ۟ˡá"ōצ bad host LCá  wōצbad data seg #WˡF́& ́'ʁ'ȡ2ʁ&á٢ʁ& ٢&ʁ&́'ʁ'ʁ',צReading ʁ& ́%Z4Ɓ ́&ʁ&ȡƁ Ɓ ˡ bad litype fzá́%nšE   ۢZצ bad formatáōצ bad privateǠōɍ Nō bad globdefōצ bad publicdefd٢٢Ǡōɍdō bad proc/func#uXZ\^ ) Bë[ !šššá8 ١צ li read err ١آnnon-alpha name٢ōצ too many refsillegal hostfilee)F`۟ˡSȡ<ۢcá'ڢۚڢڢڢڢګٟˡ٢٫yj  >`  ת' #Zݢˡצ bad host seg$ˡצ dup host seg ګ ݢáڢ ڢګUáݢ ڢ 4/ڢbK{.-á ښ ܓۓ׷#*צ*SYSTEM.LIBRARYׯ Map file? '׷'+ګڟá!Fȡݢ`Ä ڢڢڢݢ`E˫['צ:' in workspaceת'צ*SYSTEM.LIBRARY Host file? 'צ?'צ:' in workspaceת'š Lib file? ',š....š1ÄAll segs linked,á`0áW03.4.4ȡ>3.3. Ä3....L$d:Bȡ Apple Pascal Linker [1.1]ˡצ bad byte sex13`.13.3`.ǁ'3`.ˍצfunny code seg3.3.ɍ3.,ō bad diskinfo3`.2 bad seg kind3 .צ bad seg namePˡ !צOpening 000/0ٚ/0ˡsegtbl read errá>.3.3ȡ+0c.˫ZZ..Z0 .1,á 22033`.l ȡ" - >[ ڂتP/(2/P/"ˡJצ in workspace5.LIBRARY---Ä'+/"ˡ&/!צNo file ȡ ˡq Nc P D= ǀ* U/YH7acڡٟˡ@ˡ á ٟˡ šT_؟ˡYD٢ؚ٢٢٢٢ ٢Ǡ ٢أǠٶٸf؟ˡu!!!`أáW ٟˡáٸ ٢ؚ٢٢٢٢٢Ǡٶ ٸ ٸ T ˡš ؓ c ޟˡáߟᄡ:á. ġɡ ᓡ6$ڶ ڶڶ  ,ɡ    ٕ! 2*ٟˡ  t táá"   [ɡ addr oflow$ui\^w  ,  ݟˡ  ˡ+J Copying  áצproc func  N,ˡ5sep seg read errظX+! (dġނ  ȡ݂ˡצ proc read errLáܞ+á؂ǠǠšצproc num oflowǠޢǠݶ뢀} &(! (dɡ!(dɡצ out of mem  Uȡˡšٶەەڞ 6 ) "    ޟˡ á ڂُȡצ size oflow)Ǡ ޟˡQ ؚá6"4o(,ɡ no mem roomȡ  ܶˡ seg read errڕڕڕˡ4٢٢٢ٶٸB'   ø  #ڢ욥    ˡ+  "؟ˡ`%" '" ٟˡ ٢؟ˡ 8%? ɡ  áZGlobal iצP ݢ ˡݢ ݢ Nݢ   ݢݢ %ݢ ˡݢݢ # áݢˡ á  ۡ,Proc צ bá& ɡ>ڟá0ˡ"ڟˡˡá ڟáٟá ضؚؚo8l$ˡ#ݢ 'ݢ  ݢ ˡݢ ݢ 'ݢ !!צ missing proc ٟˡaáUá ؟ˡ%áá ٢ؚá ٢ iF xڟˡ0 ٟˡٚښ7B#۶ˡá- ö  j ˡXȡBۢ á    2ٶˡcode write err!!A# 뢀ق ~. Seg # 뢀 , # ؟ˡ Sep procs׶ ˶ ZˍZ  ظ  E1+ǐȄ_á ._ _ _ڕڕǴ <<<<צLine \ צ, error  :12צ( (continue), (terminate), E(diBBB B B B B BBBBBBBB4(C)Apple Computer Inc. 1979,1980 (C)U.C.Regents 1979  (/V 5>9:;F<Z>2@@D$G`I PASCALCOCOMPINITDECLARATBODYPARTROUTINE STATEMENCASESTATFORSTATEBODY1 BODY3 WRITELINUNITPARTCOMPOPTINUMSTRINFINISHUP2!ˡCode write erráh2#?SYSTEM.WRK.CODEת׷3ˡ'Ɓצnext base LC = Ɓ ƁƁƁ-@B9|2^&2 $h `  ~jN`Tb b!!b%# (()))p**+8+J+l+++*,`0Ɓ assem hostƁƁ ̂ʂȡ/ ˥ ˄c˄/̂ʂȡ# cÄ/ˡ /Z! ƀ뢀2!ˡCode write erráh2#?SYSTEM.WRK.CODEת׷3ˡ'Ɓצnext base LC = Ɓ ƁƁƁ-@B9|2^&2 $h `  ~jNˡƁ#ƁDá$Ɓintrinsic codefileƁƁ assem hostƁƁ ̂ʂȡ/ ˥ ˄c˄/̂ʂȡ# cÄ/ˡ /Z! ƀ2*SYSTEM.WRK.CODE[*] '+2 "ˡצ Code open err! Ɓ! ̂ʂȡ'A רƀ׷Ɓ"ˡ- Can't open צ'Ɓצ Link map for ˡצ data read err'2ضˡצdata write err!؂!A#   ! F/ƁƂ/צ Output file?  ' ce too bigȡsˡצinterface read err,2ضˡinterface write err؂!(*--.! !ˡw ۈ c` [ Linking #צ # 뢀 á׷0cˡ  sɡinterface error(dɡinterfa @  j Q ;&Hc0      s ɡ#؟ˡ#צ Local seg refs؟ˡצ  public LC = צ const val =  privat LC = צ unit seg# = _ glob def in ؟ˡצ  á proc func #   base =  leng = ȡ١.؟ˡ"צ Sep proc refs-t EÍeÍٶÍEeÍ Z ǐÍ 1<\ >Nk _ $詂BB$HIáZˡ$JZˡ$$CZFE_$/%+rZˡr%DZHG_%$ ZˡǑá áZZ:&DO 0.*\  a ] _dšd_ڞá% š  QáJNm^ rf *  $!        @<JJvrQQé ÄrܓQááQÄ ÄjQˡݣ +0,MÄO ` M aQ!Q QS=Má02á+3٣ á,٣'u  undefinedZ2é *"!áǘSS&N ]Mō  Q Aá>á Q Qé Äܓ+Qáȕšۥɩٞققȩ؍- áˡǒٕán | `ġ%ؤáVؤ`O VV0Pd؟ˡM٣`:٣ á#`!%á á ,0I; ۡOڤ   H ؿ ٿ 2áL Lˡ Ä ޓ%  LL߫LÄdݟܟ˄ބݟÄܟÄÄù2ީ<&á ᚹi#ááإg$áá =إC0á5áީޢإ j ޚ á۟ڟÍ~2~~%á:á;% ީ6 ޢޢ ǂإ (`á  á  ˡgá áVީ=áá ᚹJFEښ á !ک;áˡ < ɡ ءUb b & ڟˡá ;Ä /á á ǐ"x_ ٟˡإá؟؟"ġ?ڟˡ(áڣb 5g5ChK4I(G   =>) )=á   {  "$&(*,.2468:<,nplnprtvxz|~&%1Ʉ 0ۂܳ @ۂ#ګ}*á*.á =á '((')<\ >+.á_ ááP P &]] $á  á á)}Í,.+ VNO/ܳڞ d Zö _ń/>>>>>> Error #  jڟá ؚ7؞áeá ؞á٢ؚ٢ؚآآ< d\\12.\[2áC"Jr "fn nZ~<Tp  F  :ˡݣ +0,MÄO ` M aQ!Q QS=Má02á+ آآ==آآ<<dLآ;;آآ::آآ88آآ99,آآ;77,آآ;6 6آPآآآآآآ;آP "zzzá ˡ á7 ߚ  ˡߢááḾʁʁʁʁ RO AÁʁʁʁPROGRAM ʁʁʁ ʁ ʁ ʁ ʁ ʁʁʁ!á_á O Aˡ AAá(rááP Q Q́ʁ ʁʁAʁʁMʁʁaʁ ʁP} :@v.  < 0>́ʁʁʁʁ(Y%A URrrḾʁʁʁʁ RO AÁʁʁʁPROGRAM ʁʁʁ ʁ ʁ ʁ ʁ ʁʁʁ!á_á O Aˡ AAá(rnjxf   M1V ́ʁȡ  צApple Pascal Compiler [1.1]< 0>́ʁʁʁʁ(Y%A URrr٢ ?*( /&V`aWǂ,)(' Uȶ1-2. #43*05%$O ~8z~v|zbtr'" t LF0,+%ݡ    ɡ  ݡ؟ˡآښؚ=b(ɞ(&ō""!@DL_]+Z\[ ȡ6O ٢٢ ٢٢׮;IORESULT.UNITBUSY.PWROFTEN.UNITWAIT.UNITCLEA.HALT.MEMAVAIL.׮ɡ`ܹ:  ;  =   ۚZR:  :=4/T.GET.PUT.SCAN.׮צ8BLOCKREA.BLOCKWRI.TRUNC.PAGE.SIZEOF.STR.GOTOXY.UNITSTAT.ɡj*ٳ $Lٳڡ  ߢߢڡߢߢߢ ߢ ٚwODD.CHR.XXX.ROUND.MARK.RELEASE.ق>=READ.READLN.WRITE.WRITELN.EOF.EOLN.PRED.SUCC.ORD.SQR.ABS.NEW.׮7UNITREAD.UNITWRIT.CONCAT.LENGTH.INSERT.DELETE.COPY.POS.׮7MOVELEFT.MOVERIGH.EXIT.IDSEARCH.TREESEAR.TIME.FILLCHAR.׮6OPENNEW.OPENOLD.REWRITE.CLOSE.SEEK.RESEܢܢܢܢܢܢܢ ܢ ܢ ܢܢ ܢ EEܢܢܢܢܢܢܢ ܢ ܢ ܢܢ ܢ .تPɡR: . ٞNIL רۢ8ۢۢ ۢ MAXINT ۢۢۢ  Z רK KܢܢJ Jܢܢܢ ܢI Iܢܢܢ ܢ ܢG Gܢܢܢ ܢFFۢ̚C CINPUT רۢ9ۢۢ ۢ CB BOUTPUT ۢ9ۢۢ ۢ B KEYBOARDۢ9ۢۢ ۢ ȡN ܢ:áFALSE TRUE ܢؚܢ ښܢ:ٚ  INTEGER ۢۢ REAL ۢ=ۢ CHAR רۢ;ۢ BOOLEAN ۢ:ۢ STRING רۢ6ۢ TEXT ۢ9ۢ INTERACTרۢ7 ái ǔ á ߢ ˡkߩ6Äi á6ō P Pˡ ߩ6 á yá\áUߩ<  á$ōá á -ǿߟˡkߢ  ǔޚ á ߢ ˡkߟˡ6á,ˡ%=áǏ h   (  T?(, \[(! š^T (áQP L @'Z( `ۢۢۢ`á $F_EZCZ4  ب 1U [( צ words]<\ >` (  ? ˚(٣ T٣ T IhJˡJJJצ*SYSTEM.LIBRARY"ˡJˡII  Ǿǻlrڤ(ڤ `M)aU  O ۢۢ"ڤۢ P ^yۡ?a7ǀá(TڤT`( ^ Dٟٲ TO٣  ۣ٣ ``٣ ߚߟˡ% š ǩ\.áW -ǿ  á ߚߟˡ ,(ٟá!&( 7"  b  ȡ ǎ  ߟá-á ɡ ł ߚ á *á á ߟˡ%Íߩ=Í s ߩ=ár  ޟˡ1ȡ$ީ=á má Ǖޚq˫ á  á ˡ ál"ȡˡ9 إآ آ@آ @$ ˡ ˩   l v vvz á +á$b b,áá   ߚ ˡ álˡá%  ޟˡ ߚá؟*/)}%* n   آآái5 5 á)  ˫   Í QyQ  áá>  ߚ  ˫ áˡ o  ٢٢ ٢٢    ˫ áá á (  š  öń ˡ%      ł  á  á!  ááU  ˡ8ȡ,=m  ء n ł á      ڢ ڢ ڢ / ł ڢ ڢ  ˡ   ٶ˄/ڣ %ڣ áڢ ڣ ڣ Ȅ ڢ ڢ ٢٢٢á   ٢٢٢٢ 5 5š fߚٟ: ڟ˶zbک=˄2 ġ%ɡ܂5 ɡ۸ ik3T@š  ڢ( (ݫT, Mšǽ $?ˡ+$#?؟ˡإ Ǽ ˫ ˡá$ ?tc #áT؟ٓˡ Ǧٓ۩ۢۢڢؚ ˫ ár ˡás ۥۢۢۢ) Äآٚآ á  é { ˡ&ˡ ǀDXړǦȡۢڡ" ^Ȅ"3ǔ؀؀ɡ:ȡǀ(ǀ3ámá šˡ ˡ M  f˫ ,.PX  "&@ǀš'A?ˡǒ??@A@ک ۢ ۢٚ۩V؂@@h1(Yɡ Yˡ< [  words]<\ > -fˡU2أ أ 2أ أ ,á7á;áM%? 2˄+%ݍr fS! ZbF & <$d ,@Lp(@ߡS QQ Q M aء` ^(d1@#  1á áNJá' ǺáááMáRC $!á ǹˡE$words]<\ >5ˡ ``ܢ ܢ,á$ܢz"é /ޡǡܢ"áá@ߡS QQ Q M aء` ^áޓܢۚo ޓܢۚáPá4ޡzܢݚݟˡ xܢޓ{á5áMˡǷ $ǸءǏ [( צ `Ǖ ál۟ˡJá5á  š á  š ܣ ˡܣ `ؓǏFM a ܣ aMɡMM ɡ/ޡá$ Sܟˡ?ܣáܣÄܣ Äܣáܣ Äܣ ÄޓǠޓá     M ` ` ($ء O áآˡZޚˡ@á -á&ȡ   ޚٟl vء@0 ǏVU ` ` Ǐ á ]&.˫  áJá<   ˡááy ȡ 䏂 á  (( ߟˡ ˡ á)@!b@ˡu@UY d áw@!@á  ˡ= ߚá M.ݢ Tݢ Mݢ M ݢ ݢ bb˫ ábٟˡ>ݢۚݢ ܂ á ۟ˡáݢؚá  é á ݥݢݢ) Äڢۚ@ٟˡ)گ ٩@ˡآ@á  é @ˡu@b ák   ݥݢٚݢݢ()Mȡ ۚš$ġ á ٳ0d@h ٳ ǀFJ)ÍȄ )á ؂؂#Ȅ ؂خ @MÍǀڳáقšخ\á خO٩MáخAɡ*6áǝ8áǧّخǀMٕخٗMخ:á DŽ`ǀȄ?á(ۢáأ át ݳo"   ޡá ~==Í؍á =á ٩=0Í#á <á ة<8 j:jǎٟˡˡáٟˡ~ߣ áߣáߣ á ߣMߣ ߣ Fߣ ˡ Mߣ ߣ 4ߣ áBߣ %ߣ MáNߣ ߣ áOߣ .ߣ ߣ ߣ ˄ߣ dCأ ám <ܡ  ;é3 %ک= =6DÄ ,'Xˡ ޕˡǎګ]áRág ڟˡ@+ˡǎ*ߣũ'ǯ35(ǚ ݕ١ܮܮM}/˫ áۮM/\4 ߣ á ߣ ˡǐáٟá~" ٟ˄٣ڟˍ٣áȡ;Äˍáܡ  š há'à ؟ˡ$š á$á%& ˡ ˡá ١M ة=á6١á"" ˡ ˡ}sة< ١]ة;á ١MJ ١M5)ˡ ˡ]M M==< );M M}/˫ áٮM/ Bö<Rˡ(á!;á"á˄ۮ&Iܮ0 ٢ ``Ǖš``٣ ,٢: ٣á 2٣ ٣  6٣ ٣ &Cö>ˡ(á!;á"á ˄ٮ" ág !    ˡń eˡ]ÍIááǏ ;áˡńǍnnA-<;U Vá,  3 ˡ䀮šNjˡ>'á3 @$ńˡá áˡˡ njáˡu á ǘ^ " ǐ     ; ˡǖg   z9ˡń n;nnáݟˡˡ NJ  ˡ ˡqݟˡ<  H5ˡˡt ء!%R   ˡ Ä 6 á 6MˡC.86ˡǐ#;=? 5.TˡX@&ǐ72ˡ"g  H5f ˡg@&ǐ72ˡ"g'ڢȡ?á$خڢ+=˄8á=á33D6(#":<> % @˄˄0 $ۢ9á ۢښ :ˡLJ!خ٢`mۢۢ`mɡ'ġ 9!٫ خ 4Pˡágj^ܣá ܮ#ܣá ܮˡá=á; 6  <   á#:Ä쓫ˡ:ˡ LJ á  ˡˡ Lj Ȅ  áG   ljޡȄ  2M ٣ɡ ٣ šث ٫+áM M  <á  <}    tT  ˡ ˡ}áwáiNORMAL  LLOCK   8M 2M ɡ  M 2M ˫ ɡ  šث  6 ٚs á +ˡîá 2M  ˡ  ˡá2M!á A؟ˡ=٣ á-٣ á ٣ ٣  ) ٣  }} x  áá    á    á  zٟáǞeˡǢWˡQة=Íǟ<-؟ˡ á t   >  á      á á  bá`áˡ} ;ÄJá >ءǚá0;á'Wݢݢ쿩W 6  ˡ}6 x ˡ' áˡ átá #Dž p2!á A*57401)0"7/ 2-!*ǁ: lL   %"!% D< N&|d jjDlPpF$J %$ X$f ܩ=á ܩ:á  ǃ  DŽ v %  ˡ  ǃ6ǃ #Dž p2!á A*57401)0"7/ 2-!*ǁ: lL   %"!% D< N&|d jˡ   $ X$f ܩ=á ܩ:á  ǃ  DŽ v %  ˡ  ǃ6ǃ}& !ˡ ەˡǁؚ,$!)á;Íˡȡ á  X !;Íˡ ȡ ܟ˄á+á  ǁ ǂ "ܟ˄ Ä@ܩ==Ä0Ä  dž Ä@ܩ==Ä0Ä  dž(ܩ::Ä  dž džw ÄÄ  džFÄ dž-ܩ::Ä dž 'sD0 $R" (` "/á#=áá  dž(áXZ\^`Kj%&$\##'á #ܟ˄ Ä@ܩ==Ä0Ä   džܩ==Ä ޡ 䔜ߡlj˫ á ߡ,WWWWWWj0b "$&(*,.02468:<>@BDFrbPRTV4PURGE  CRUNCH   M /   ˡˡ} áǏTá  } KM CM ;ˡ ;ˡǏ  M  ([=7 9/  ˡ)á á  á }} ˡ ;ˡ} á     ˡˡ} ˡǏ  á   %á    9 ٟˡ٩=Í ǐ á ٟˡ^Oܟˡ ȡáǜ  ܚޚ۟áښǓ˫ á fá2 U\ . f apܣá  xqjc [TM E>6i  "$&h\WJSGAo!dš  & NNMj  |&z ۢۢ šnj˫ á6ڕٕ NN#á^ݤˡݤޟˡ$ áǥ ǧá2 U\ . f apܣá  xqjc [TM E>6i  "$&h\WJSGAo!dš  áۢۢۢ/ 8M ۢۢ šnj˫ á6ڕٕ NN#á^ݤˡݤޟˡ$ áǥ ǧ    f˫  á 5EG X  @   á69  FáIB ˡ~ár ɡe 9 ٓǧ9V rf˫  á 8: B ܓ    á4 ܡ ۡګ  á.ܓ 9  ܡ ۓګ  ܓͫ٫u3    s  f _    Jޡ *٣  ( ( '( ǒV~ZUkD#ǁ3  4#áSڤˡڤ؟ٓá@ á ˡ ō  á ;ˡȡ  ٟ˄á= =<"á   <ˡ ǁ<ޡL;Ä68ˡ/   ;˄X ˡǁF"$&FD,HJHFH8TJHj  ,RP 8 "  , öÍ   M / á =ˡ"=á á   } ˡ   W,PKM'"$&tW5. 68<>@BDHJLN[    س}{ع0tp l hd` \ XTPL H +@8686 8::<: ˡ  ˡ  ˡ ˡ}ˡ!áM , öÍ   M / á =ˡ"=á á   } ˡ   ˡá =á }ˡá =á }  >    ˡM    M            M / áˡ 01  ˡˡ};˶ÄǏC   áM M : ˡáá  sˡˍ}ˡ9 ˫  Í ݟˡc ݚܟá ,  9  š   ݟá  á ?>mLM)  á   } ˡ   áV á   Ǜ؟ˡũ= ǏAá` ˡFˡǐ8)  ؟ˡé3    Ǒ3 ǀݨTݢ  `ݢ áU  O  %O ǚ ؞ AQ Q M ɡ.ݟˡTV$ QáINTRINSI )TáCODE T  á7    O åDATA ׯ u áXTT Tb ߩTO ʥ*SYSTEM.INFO[*]"ˡǒ. Ƕ0 ǏV M a` Qa`  ˡDݟߓݥ eߓ6D   ݫDáT,. \b8٣  ٣ ɸ) /)٣ T˄) ٣ <٣ ٣á٣ ٣ á9٣ á+٣á٣  ٣    ˡ0٣٣Ï٣ E )٣ ٣ ٣  \8:C'ˡġ ,D 0Ǐ ?Rȡ ؟ˡ٣ ٣é ٣  ٣ ɸ) /)٣ T˄) ٣ <٣ ٣á٣ ٣ á9٣ á+٣á٣  ٣ ?šAˡ2@˩?ˍd?ȡW?ɡǀ@ ȡ%ةAáAܩ?ɡá ګ ٫ ȡ u 'aM00O ǚVVaVe ?ˡ5    #   9  KzI á  1ˡ 2أ أ  M ˶#?˄áV / áA-á      ˡ# `mˡǨ   š   áأأ ˡ  pȡ!   ?ˡ5    #   9  KzI á  1ˡ 2أ أ  M?ˡJ #      ?ġ!   ˡ+   9     9 >˶  FY[f> apܣá  xqjc [TM E>6i  "$&h\WJSGAo!dš  Má ˡˡˡأávšc2Mأ 6M 7 *٣ $ˡ   (   (  أá\[  ˡ    @ ˡ}ˡǐo`  ؟ˡé3   8M   6M  šá4 0 Ǒ7@ ! á6   á   9   c Q Q٢کDڢڢڢڢ ڢ ڢ ڢ ڢ ڢڢڢڢڢ٢٢ ؚ M>á Q Q Q QáNJ@?B %ǖ3áB š  ġ 詂B EšB BÄ)ޓ`4ˡf_ˡPLˡ+\\  [ [^^,O J1\ צ lines^šSצ, ^<  secs, ^\  lines/min1DSmallest available space =  zGJ~ ١áȡ:  0 ń  0 #ثە$ġ  ȡ5áؚ 澂0šؚ0ە ȡ  0ȡ  0 ȡ 徂0  'ˡ ڂޕ ɡ $ $$áEáM -á  +á09Ȅɡáȡ:  0 ń  0 #ثە$ġ  ȡ5á,+,++ á  +'á,'ˡ++%++á #W---+-+WZ   ''09ō.á8.ˡ/ 09Ȅ0UɄU+ë#-ë1򥂚 +-Í+ë3+ë"+ë!۳(+ë*+-Í-ë33/3'4.$)J(J"ˡǻ7+ë'0CV( o$5,ˡB8| % ǖ(+r"ˡǓ%H_GZDZ+-Í&+ë++צ*SYSTEM.LST.TEXT((+"ë+SsÍT(šȡ 0UɄU+ë#-ë1򥂚 +-Í+ë3+ë"+ë!۳(+ë*+-Í-ë33/3'4.$)J(J"ˡǻ7+ë'0CV( o$5+ë/m(*á+ % ǖ(+r"ˡǓ%H_GZDZ+-Í&+ë++צ*SYSTEM.LST.TEXT((+"ë+SsÍT(šȡ ;ۣáۣ  آ ۣ آ>ث> آ ۣ آ>ث>,áڡP  ˡ,Í*Ä)˄ +`š ݹMš)P+ë2+ë-+ë+ë4+-Í ەۂ *á*܂)ܕńܕ܂ ܑ ܂ ەڕܿۂܞ܂ۂڂZ P á#á ٢ ٢>٫>[ˡQ55ٟ˶ˡ),,:)O ?šA?ˡǒ9 á D O ǚ),ݡOߩT  š^) ˡáQ Ma` Q Q!2ˡr  > šB BÄ)ޓ`4ˡf_ˡPLˡ),,:)O ?šA?ˡǒ9 á D O ǚ),ݡOߩT  š^) ˡáQ MY  words NJ ȡO  ȡO   ȡO  ȡO  ȡ!O ˡ    8*ȡ  ǰġǗǰɡꩁˡ PP P 8q@fcs, ^\  lines/min1DSmallest available space =  (*$S+*)  PROGRAM ANSWERTERMINAL;  (* REQUIRES MODEM:LIST.TEXT PSEUDODIRECTORY AND A LOG FILE CALLED MODEM:  LOG.TEXT, THIS PROGRAM AUTO RESTARTS ON LOSS OF CARRIER AND AT ITS END  A FILE CALLED SYSTEM.STARTUP SHOULD CHAIN TO THIS PROGRAM IN CASE OF N^ƣg THESE FILES ARE LISTED:  TO EVERYONE MAC T. TO TERRY AMATEUR RADIO OPERATORS N^vWY  words NJ ȡO  ȡO   ȡO  ȡO  ȡ!O ˡ      TEMPORARY POWAR FAILURE *) ! "USES CHAINSTUFF, %(*$UMODEM:MODEM.LIBRARY*)  MICROMODEM,FILER;     TYPE FLAGVALS=(BOOTUP,CONTINUE,NEWSETUP,ENDSESSION); &LONGSTRING=STRING[255]; &  VAR CH,CLEOS,BELL,RETURN,LINEFEED,NULLCHAR,SPC,TILDE,DEL:CHAR; &ESC,CANCEL,CMMND,PAGEFLIP,BREAK,RESUME:CHAR; &CLEOL,HOME,FORM,BACKSPACE:CHAR; &ALFA:SET OF CHAR; &FSKWORD,COLCOUNT,PAGEWIDTH,BUFFCOUNT,SPACECOUNT:INTEGER; &PAGEONE,CAPTURE,HALFDUPLEX,NEEDSLNFD:BOOLEAN; &NAME:STRING[255]; &SYSNAME,SYSNUMB-END; )END; %UNTIL ((CH=RETURN) OR NOT CARRIER); %IF NOT CARRIER THEN STARTOVER; #END; # # # #PROCEDURE GOODBYE; #BEGIN %MOWRITELN(', THANKS FOR CALLING'); %STARTOVER; #END; # # # # # # #PROCEDURE INTRODUCTION;(*SETS UP LINEFEEDS AND DU%CH:=CHR(0); %REPEAT 'IF RCVRFULL THEN )BEGIN +X:=X+1; +CHREAD(CH); +IF ((CH=BACKSPACE) AND (X>1)) THEN -BEGIN + X:=X-2; /DELETE(LINE,X+1,1); -END +ELSE IF CH<>RETURN THEN -BEGIN /SHORTSTRING[1]:=CH; /LINE:=CONCAT(LINE,SHORTSTRING); NE); (REPEAT *IF NOT CARRIER THEN STARTOVER; (UNTIL TRANSEMPTY; (IF NEEDSLNFD THEN PUTCHREMOUT(LINEFEED); &END; # # #PROCEDURE MOREADLN(VAR LINE:LONGSTRING); #VAR X:INTEGER; 'SHORTSTRING:STRING[1]; #BEGIN %LINE:=''; %SHORTSTRING:='*'; %X:=0; RRIER THEN STARTOVER; %GETCHREMIN(CH); %CLEARREMIN; %IF NOT HALFDUPLEX THEN 'BEGIN )WHILE NOT TRANSEMPTY DO +IF NOT CARRIER THEN STARTOVER; )PUTCHREMOUT(CH); # END; #END;   #PROCEDURE MOWRITELN(LINE:LONGSTRING); &BEGIN (PUTLNREMOUT(LI PROCEDURE STARTOVER;  BEGIN "HANGUP; "SETCHAIN('MODEM:ANSWER'); "EXIT(PROGRAM);  END; !  PROCEDURE GOTERMINAL(MD:MODE;VAR SESSIONFLAG:FLAGVALS);  VAR STOP:BOOLEAN; $ $ #PROCEDURE CHREAD(VAR CH:CHAR); #BEGIN %WHILE NOT RCVRFULL DO 'IF NOT CA ! !BEGIN (* SETUP *) "INITVARS; "REPEAT #CASE SESSIONFLAG OF $BOOTUP:BEGIN ,SAYHELLO; ,MD:=ANSWER; ,SETUPANSWER(SESSIONFLAG); +END; $CONTINUE:IF MD=ANSWER THEN SETUPANSWER(SESSIONFLAG); $END; ! UNTIL SESSIONFLAG=CONTINUE; !END; ! KEYPRESS THEN %BEGIN &READ(KEYBOARD,CH); &IF CH=ESC THEN BEGIN WRITELN;EXAMINEFILES;END; %END; #SESSIONFLAG:=CONTINUE; #WRITELN; #WRITELN; #WRITELN('ANSWERING THE PHONE'); #PICKUP(MD); #SETMODE(MD,SPEED); #TXENABLE; #WAITFORCARRIER; "END; "RUE; #SPEED:=HIGH; #UNITCLEAR(1); #RESETMODEM(0); #RESETMODEM(RESETFLAG); #INITACIA(FSKWORD); #PAGE(OUTPUT); #GOTOXY(0,5); #WRITELN('WAITING FOR A CALL'); #WRITELN; #WRITE('TYPE TO REVIEW LOG AND MESSEGE NAMES'); #WHILE NOT RINGING DO $IF&RESET(F,'MODEM:LIST.TEXT'); &WHILE NOT EOF(F) DO (BEGIN *READLN(F,S); & WRITELN(S); (END; &CLOSE(F,LOCK); $END; ( "BEGIN #CMMND:=ESC; #PAGEFLIP:=CHR(1); #BREAK:=CHR(19); #RESUME:=CHR(17); #FSKWORD:=21; #HALFDUPLEX:=FALSE; #NEEDSLNFD:=T"PROCEDURE SETUPANSWER(VAR SESSIONFLAG:FLAGVALS); " $PROCEDURE EXAMINEFILES; $VAR &F:TEXT; &S:LONGSTRING; $ $BEGIN &RESET(F,'MODEM:LOG.TEXT'); &WHILE NOT EOF(F) DO (BEGIN *READLN(F,S); & WRITELN(S); (END; &CLOSE(F,LOCK); BEGIN #PAGE(OUTPUT); #WRITELN(' Welcome to'); #WRITELN; #WRITELN(' TERMINAL'); #WRITELN; #WRITELN(' The smart terminal program'); #WRITELN; #WRITELN(' by'); #WRITELN; #WRITELN(' Dr. Wo'); "END; $ LEOL:=CHR(29); #BACKSPACE:=CHR(8); #SPC:=CHR(32); #TILDE:=CHR(126); #DEL:=CHR(127); # #ALFA:=[SPC..TILDE]; # #COLCOUNT:=0; #SPACECOUNT:=0; #PAGEWIDTH:=40; #BUFFCOUNT:=0; # #PAGEONE:=TRUE; #CAPTURE:=FALSE; # "END; # "PROCEDURE SAYHELLO; "EVAR SESSIONFLAG:FLAGVALS); "PROCEDURE INITVARS; "BEGIN #CLEARKEYBD; #CLEARREMIN; " #RETURN:=CHR(13); #LINEFEED:=CHR(10); #NULLCHAR:=CHR(0); #BELL:=CHR(7); #CLEOS:=CHR(11); #ESC:=CHR(27); #CANCEL:=CHR(24); #HOME:=CHR(25); #FORM:=CHR(12); #CER,FILENAME:STRING; " SESSIONFLAG:FLAGVALS; " !SEGMENT PROCEDURE SETUP(VAR MD:MODE;VAR CMMND,PAGEFLIP,BREAK,RESUME:CHAR; EVAR HALFDUPLEX,NEEDSLNFD:BOOLEAN; EVAR SYSNAME,SYSNUMBER:STRING; EVAR SPEED:BAUDRATE;VAR FSKWORD:INTEGER; PLEX FROM REMIN*) #BEGIN %REPEAT 'MOWRITELN(' DO YOU NEED LINEFEEDS?(Y/N)'); 'IF CARRIER THEN CHREAD(CH); %UNTIL ((CH IN ['Y','y','N','n'] ) OR (NOT CARRIER)); %IF CARRIER THEN IF ((CH='Y') OR (CH='y')) 'THEN NEEDSLNFD:=TRUE % ELSE NEEDSLNFD:=FALSE;  REPEAT 'MOWRITELN(' ARE YOU IN HALFDUPLEX OR FULLDUPLEX?(H/F)'); 'IF CARRIER THEN CHREAD(CH); %UNTIL ((CH IN ['H','h','F','f'] ) OR (NOT CARRIER)); %IF CARRIER THEN % IF ((CH ='H') OR (CH = 'h')) )THEN HALFDUPLEX:=TRUE )ELSE HALFDUPLEX:=-MOWRITELN('TROUBLE .. TRY A NEW FILENAME'); ' (*$I+*) -EXIT(CREATE); +END; )(*$I+*) 'END; & & PROCEDURE REOPENFILE(FNAME:LONGSTRING); 'BEGIN '(*$I-*) )KONCATTEXT(FNAME); )RESET(F,FNAME); -(*$I+*) )IF IORESULT <> 0 THEN +BEGIN -OPENNEWR L:TEXT; 'BEGIN )(*$I-*) )RESET(L,'MODEM:LIST.TEXT'); )IF IORESULT = 0 THEN +BEGIN -REPEAT /READLN(L,BUFF) -UNTIL EOF(L); -WRITELN(L,FNAME); -CLOSE(L,LOCK); +END; )KONCATTEXT(FNAME); )REWRITE(F,FNAME); )IF IORESULT <> 0 THEN +BEGIN T +READLN(F,BUFF); ) MOWRITELN(BUFF); )UNTIL EOF(F); )CLOSE(F,LOCK); 'END; # (*$I+*) #END; % ) #PROCEDURE CREATE; #VAR F:TEXT; # FILEEND:BOOLEAN; 'BUFF,S,FNAME:STRING[255]; ' # 'PROCEDURE OPENNEWFILE(FNAME:LONGSTRING); 'VANAME); 'MOWRITELN(' '); 'MOWRITELN(FNAME); 'MOWRITELN('CORRECT?(Y/N)'); 'CHREAD(CH); %UNTIL (CH IN ['Y','y']); %KONCATTEXT(FNAME); %(*$I-*) %RESET(F,FNAME); %IF IORESULT <> 0 THEN MOWRITELN('NO SUCH FILE,(SPELLED CORRECT?)') %ELSE 'BEGIN )REPEA% END; %UNTIL ((EOF(DIR)) OR FOUND); %CLOSE(DIR,LOCK); #END; # # # #PROCEDURE SEARCH; #VAR BUFF,FNAME:STRING[255]; # F:TEXT; #BEGIN %LISTDIRECTORY; %REPEAT 'MOWRITELN('ENTER NAME OF FILE EXACTLY FOLLOWED BY '); # MOREADLN(FOUND:=FALSE; %SEARCHDIRECTORY:=FALSE; %(*$I+*) %IF IORESULT <> 0 THEN 'BEGIN )MOWRITELN('TROUBLE-- LIST FILE NOT FOUND'); )EXIT(SEARCHDIRECTORY); 'END; %REPEAT 'READLN(DIR,S); 'IF S=NAME THEN *BEGIN ,FOUND:=TRUE; ,SEARCHDIRECTORY:=TRUE; %REPEAT 'READLN(DIR,S); 'MOWRITELN(S); %UNTIL EOF(DIR); %CLOSE(DIR,LOCK); #END; # # # #FUNCTION SEARCHDIRECTORY(NAME:STRING):BOOLEAN; #VAR S:STRING[255]; # FOUND:BOOLEAN; # DIR:TEXT; #BEGIN %(*$I-*) %RESET(DIR,'MODEM:LIST.TEXT'); %FVAR ST:LONGSTRING); #VAR LEN:INTEGER; #BEGIN %LEN:=LENGTH(ST); %IF (LEN > 10) THEN DELETE(ST,11,(LEN-10)); %ST:=CONCAT(ST,'.TEXT'); #END; # #  # #PROCEDURE LISTDIRECTORY; #VAR S:STRING[255]; 'DIR:TEXT; #BEGIN %RESET(DIR,'MODEM:LIST.TEXT'); -IF RCVRFULL THEN 1BEGIN 3CHREAD(CH); 3IF ((CH='Y') OR (CH='y')) THEN DONE:=TRUE; 3IF ((CH='N') OR (CH='n')) THEN DONE:=TRUE; 1END; +IF ((CH='N') OR (CH='n')) THEN DONE:=FALSE; )END; %UNTIL DONE; # LOGNAME; #END; # # #PROCEDURE KONCATTEXT(N'); )CHREAD(CH); 'UNTIL ((CH IN [RETURN,SPC] ) OR ( NOT CARRIER)); 'IF NOT CARRIER THEN STARTOVER; 'IF (CH=SPC) THEN BANNER 'ELSE )BEGIN +MOREADLN(NAME); +MOWRITELN(NAME); +MOWRITELN('CORRECT?(Y/N)'); +WHILE (CARRIER AND NOT DONE) DO OG.TEXT'); )REPEAT +READLN(L,S); )UNTIL EOF(L); )WRITELN(L,NAME); )CLOSE(L,LOCK); )(*$I+*) 'END; ) ) ) #BEGIN %DONE:=FALSE; %REPEAT 'REPEAT )MOWRITELN(' HIT FOR HELP WITH LOG IN FORMAT'); )MOWRITELN(' HIT TO START LOGGING I; )MOWRITELN('JOHN DOE WOULD TYPE ... JDOE '); )MOWRITELN('THEN HIT TO END THE LOG IN'); ' CH:=CHR(0); 'END; ' ' 'PROCEDURE LOGNAME; 'VAR )L:TEXT; )S:LONGSTRING; ) 'BEGIN )MOWRITELN('PLEASE WAIT..'); )(*$I-*) )RESET(L,'MODEM:L)MOWRITELN('YOU CAN RUN TEACHING PROGRAMS IN MEDICINE.'); )MOWRITELN('...'); )MOWRITELN('YOU MUST HIT WHEN ASKED TO START'); )MOWRITELN('THEN TYPE THE INITIAL OF YOUR FIRST NAME '); )MOWRITELN('FOLLOWED BY YOUR LAST NAME IN FULL.. NO SPACES')FALSE;  IF(NOT CARRIER) THEN STARTOVER; " END; # # # #PROCEDURE LOGIN; #VAR DONE:BOOLEAN; ' 'PROCEDURE BANNER; 'BEGIN )MOWRITELN(' WELCOME TO DR. PUNDIAK''S APPLE II COMPUTER'); )MOWRITELN('YOU CAN PICK UP AND WRITE MESSEGES...'); FILE(FNAME); -EXIT(REOPENFILE); +END )ELSE +REPEAT + READLN(F,S); +UNTIL EOF(F); )WRITELN(F); )WRITE(F,'**** NEW MESSEGE ****'); )WRITELN(F,'FROM ',NAME); )WRITELN(F); 'END; & & & &PROCEDURE EDITLINE(VAR DONE:BOOLEAN); &VAR X:INTEGER; *LINE:LONGSTRING; &BEGIN (DONE:=FALSE; (MOREADLN(LINE); (IF LINE='END' THEN DONE:=TRUE (ELSE WRITELN(F,LINE); (WRITEREMOUT(RETURN); (IF NEEDSLNFD THEN WRITEREMOUT(LINEFEED); &END;(*EDITLINE*) / #BEGIN %FILEEND:=FALSE; %MOWRITELN(' MAKE UP A NAME F* Z?#Z?#z#" ُ؂",&.ǀ"áצWAITING FOR A DIAL TONE#YOU MAY TYPE TO@ dئת1ˡ#HZ [?#ǀ% & '( )+# $ !, Y?$Y?#Y?$Y?#ǀZ?#Z?#ت̀ʀš,ʀBGB B\ L 8ANSWERTEMICROMODFILER SETUP DUPLEX,NEEDSLNFD,SYSNAME,SYSNUMBER, )SPEED,FSKWORD,SESSIONFLAG); "IF CARRIER THEN GOTERMINAL(MD,SESSIONFLAG); !UNTIL SESSIONFLAG=ENDSESSION;  SETCHAIN('MODEM:ANSWER');  END.  THEN INTRODUCTION; "IF CARRIER THEN LOGIN; "IF CARRIER THEN MENU; "IF NOT CARRIER THEN STARTOVER; "IF CH IN ['Q','q'] THEN HANGUP;  END;(*GOTERMINAL*)    BEGIN(*MAIN*) !SESSIONFLAG:=BOOTUP; !REPEAT "SETUP(MD,CMMND,PAGEFLIP,BREAK,RESUME,HALFh','c','q'] THEN .CASE CH OF 0'G','g':SEARCH; 0'W','w':CREATE; 0'R','r':PREFORM; 0'H','h':HELP; 0'C','c':MAKECHAIN; 0'Q','q':GOODBYE; .END; )END 'ELSE STARTOVER; %UNTIL (NOT CARRIER); #END; % , ' ' )  BEGIN (* GOTERMINAL *) "IF CARRIER # EXIT(PROGRAM); 'END; #END; $ # % #PROCEDURE MENU; # #BEGIN %REPEAT 'MOWRITELN(' CHOOSE MODE...'); 'MOWRITELN(' G)ET W)RITE R)UN H)ELP Q)UIT'); 'IF CARRIER THEN )BEGIN +CHREAD(CH); +IF CH IN ['G','W','R','H','C','Q','g','w','r','EPEAT 'MOWRITELN('EXACT NAME OF FILE TO RUN NEXT'); 'MOREADLN(S); 'MOWRITELN(S); 'MOWRITELN('CORRECT?(Y/N) KEY TO ABORT'); 'CHREAD(CH); %UNTIL (CH IN ['Y','y',ESC]); # IF CH=ESC THEN STARTOVER %ELSE 'BEGIN )SETCHAIN(S); MOWRITELN(' '); %MOWRITELN('HIT KEY G TO GET MESSEGES'); %MOWRITELN('KEY W TO WRITE MESSEGES'); %MOWRITELN('KEY R TO RUN TEACHING PROGRAMS'); %MOWRITELN('KEY Q TO QUIT THIS PROGRAM'); #END; # # #PROCEDURE MAKECHAIN; #VAR S:STRING[255]; #BEGIN %RNPUT THEN CHECKS IT WITH THE NEXT TEXT INFO WHICH &WOULD BE THE ANSWER. A RUNNING SCORE AND OTHER BELLS AND WHISTLES &COULD BE IMPLEMENTED *) #BEGIN %MOWRITELN('RUNNING PROGRAMS MODE NOT IMPLEMENTED YET'); #END; # # ) #PROCEDURE HELP; #BEGIN %%UNTIL (FILEEND OR NOT CARRIER); %CLOSE(F,LOCK); #END;(*CREATE*) % ) # #PROCEDURE PREFORM; #(* PLANNING TO INSERT A PROCEDURE THAT READ A TEXT FILE IF A LINE &EQUALS THE WORD COMMAND OR ANY OTHER SENTINAL WORD THEN THE PROGRAM &WAITS FOR REMIN IOR YOUR MESSEGE, ENTER AND HIT '); %MOREADLN(S); %IF SEARCHDIRECTORY(S) THEN REOPENFILE(S) %ELSE OPENNEWFILE(S); %MOWRITELN('ENTER MESSEGE... END BY TYPING THE WORD ''END'' ON A NEW LINE'); %REPEAT 'EDITLINE(FILEEND); START DIALING á ..5 [?$z$OK!צ PLEASE WAIT TO HANG UP THE PHONE á ~&צWAITING FOR A CARRIER,צTYPE TO EXIT'Ʉ˄LY?#á .Ljá, mLj[?$z#[?$צ Lost unit Lost fileצBad title, illegal file nameצNo room, insufficient spaceNo unit, no such volumeצNo such file on lineid unit numberBColon expected in vol name e@ سعצ Bad blockBad unit numberצBad modeצUndefined hardware errorRNܪPצ צ  á-:ˡšR `عצFile name is too longVolume name is too longצUnit number expectedkצInval0 š éj *áڥצ:P:áڥ #áJ ۪Pצ   á!:áš& ȡ:ة ȡ ةaz ةaAF R צ:ȡ@á:׶P!Rf#š}[  áܩ[M  * ܪ    Í [M  ⓡA é[M   ⍡  A #   @árUبNUU  l ?٩[؞"á' ک[M ڢ[M Z ġ  .6^3zr6bGx6bg6fWfwZ6jR`6jr6nH6nhN6rCT6rcf6vQl6vq6DONE 6;5X 6vLINE .:t  .th D\2"  ^r 2PREFORM HELP MAKECHAIMENU A5`0hh`hhh hHH`(hhhhhhhhHHHH`&hhh zzhHH` hhhhz)z  5z 5HH`8Hh`%N>~D \RHH`2hhhhhh  Hf'   f80) 8 OHHH`\_`{|}~]^@UQCB9^ZVKJDC|P`) [ f`4J  )HH`"hhHH`"hhhhhh HHHH`0hhhhhh HHHH`0hhhhhh  HHHH` 6hhhh  )*á/K0,,á ,,-á.-.V  Z?$Z?$ $ hhhhhh! L ֭HHHH`#>hhWAITING FOR A DIAL TONE... .ö h/٪P&צDIALING TYPE TO EXIT...-Vצ Duplicat file Not closedNot open Bad formatzRing buffer overflowPWrite protect error' cF#qBvNYá*Not a blocked volume'Undefined I-O error\`  "á8۪P [ ٥á ٥ ة[M !RP[M ڢڢצ$Remove file(s) and update directory?[M ġ[M  Removing [M [Crunch what volume? Pš= ˡ!  Endangered file(s) on  :[M ȡ3 ۏٕܩ۩ȡ[M ٕݢٕk ٪ [M  ȡ$MMš M  ة[:צ crunchedlory of? P ˡ! ک[M [M  $[M ܕצMoving ݢ,   blocks۩צDestroy : ?B[M Mة[Directory zeroed3No action. Directory preserved.Zero the directš á#ץ áI + á [M   š U Prefix is : (٪   :צ Prefix is: : Root is: : *Set prefix to? Pz: Directory listing of? Pš4 ˡ Volumes on line: ȡW š< [M  צ files.á. [M [M   files,   unused blocks,   in largestM [M šI   šܚ [M :[M ȡ򩁉á צ of  ݢ BAD Codeצ Text Infogצ DataL Graf1צ FotozaH/۩[M á[Mar-Apr-May-Jun-Jul-Aug-|Sep-jOct-XNov-FDec-4???-" tdTD   blocks.t  צ%List,Vols,Prfx,Zero,Krunch,Rmov,Quit?h[M ݢݢ ݢ  -Jan-Feb-ܪP [٥áT٥ I[M ۥ[M ة[M !MR  [ ?Þ(ȍ Crunch buffer is  צM צ[M ȡ[M [M [M [M M[#צNo action taken%7E# ڪتצ=b9PPbáO[M ddȡ4[M eeefef9dbdPdbbdP9Ä "l[M ddȡS[M ee9ef9fefefc[M cń[TEXT̀"ˡ&TROUBLE-- LIST FILE NOT FOUND׮ƀ-ƀ-̀ƀ ʀƀƀEƁƂ- /ENTER NAME OF FILE EXACTLY FOLLOWED BY ׮ צ CORRECT?(Y/N)dddNédnÍdNédnÍء J  š .TEXT< ƀƁƀצMODEM:LIST.TEXTƀƀƀ ƀƀ5Zf ڪPƀƁƀMODEM:LIST.. 6Zt ( HIT FOR HELP WITH LOG IN FORMAT׮צ! HIT TO START LOGGING INdda^d^á ]צ CORRECT?(Y/N)ؓ) ddYédyÍTO START׮)THEN TYPE THE INITIAL OF YOUR FIRST NAME ׮.FOLLOWED BY YOUR LAST NAME IN FULL.. NO SPACES׮צJOHN DOE WOULD TYPE ... JDOE צ#THEN HIT TO END THE LOG INdv Ɓ-צ PLEASE WAIT..צMODEM:LOG.TEXTƁ@dHédhÍ צ+ WELCOME TO DR. PUNDIAK'S APPLE II COMPUTERצ%YOU CAN PICK UP AND WRITE MESSEGES...צ*YOU CAN RUN TEACHING PROGRAMS IN MEDICINE....׮)YOU MUST HIT WHEN ASKED damצ, THANKS FOR CALLING$צ DO YOU NEED LINEFEEDS?(Y/N)dd@@dYédyÍ* ARE YOU IN HALFDUPLEX OR FULLDUPLEX?(H/F)׮dd@ MODEM:ANSWER"  > Fت` 0ئת*dLddkń)daˡ"dצANSWERING THE PHONE   6á á,6v>JN צMODEM:LIST.TEXT *Ɓ.Ɓ.EZ j  & WAITING FOR A CALL*TYPE TO REVIEW LOG AND MESSEGE NAMES$ ddjá  byצ Dr. WoƁ-צMODEM:LOG.TEXT *Ɓ.Ɓ.צMODEM:LIST.TEXT *Ɓ.Ɓ a `_b cjim lnk ^~]\o^](Z  Welcome toצ TERMINALצ The smart terminal program" < p | XdH"(\0TH$dd dצ:ddx"Remove what file(s)? PšCˡ$  "!!!$|xtpl!hKz`" &.2"$&(*,.02468:<>@PbFHJfNZRTVnZ\^r$ >zfjM cc#Gצ Can't find dd dצ:ddx"Remove what file(s)? PšC ˡ$  " Ɓ"ˡ&צNO SUCH FILE,(SPELLED CORRECT?)(ƁƀƁƀƁ ƁƁ2ZتƀƁƀMODEM:LIST.TEXT"á3ƀ/ƀƀ ƀƀƀ "ˡ&TROUBLE .. TRY A NEW FILENAME׮ƀvZت "ˡ ! **** NEW MESSEGE ****צFROM yENDׯ)WRITELN(F); 'END; & & & &PROCEDURE EDITLINE(VAR DONE:BOOLEAN); &VAR X:INTEGER; *LINE:LONGSTRING; &BEGIN (DONE:=FALSE; (MOREADLN(LINE); (IF LINE='END' THEN DONE:=TRUE (ELSE WRITELN(F,LINE); (WRITEREMOUT(RETURN); (IF NEEDSLNFD THEN WRITEREMOUANSWER LOG:   N^vgWER la< xrXBd  " 2 .OOSE MODE...צ! G)ET W)RITE R)UN H)ELP Q)UITddd~zvrCwj((6"$&(D,.02468:<>@PDFHh^NPRTVXZ\hvbdfh dJ_hgfeZ1 ꥁáצ MODEM:ANSPE> KEY TO ABORT׮ddjdjá  צ CHOOSE MODE...צ! G)ET W)RITE R)UN H)ELP Q)UITddd~zvrCwj((6"$&(NING PROGRAMS MODE NOT IMPLEMENTED YET6 HIT KEY G TO GET MESSEGES׮KEY W TO WRITE MESSEGES׮KEY R TO RUN TEACHING PROGRAMS׮צKEY Q TO QUIT THIS PROGRAMצEXACT NAME OF FILE TO RUN NEXT#CORRECT?(Y/N) ƁƁƁƁ;ENTER MESSEGE... END BY TYPING THE WORD 'END' ON A NEW LINE׮Ɓ.ʁ.!\צ)RUNT(LINEFEED); &END;(*EDITLINE*) / #BEGIN %FILEEND:=FALSE; %MOWRITELN(' MAKE UP A NAME FOR YOUR MESSEGE, ENTER AND HIT '); %MOREADLN(S); %IF SEARCHDIRECTORY(S) THEN REOPENFILE(S) %ELSE OPENNEWFILE(S); %MOWRITELN('ENTER MESSEGE... END BY TYPING THE WORD ''END'' ON A NEW LINE'); %REPEAT 'EDITLINE(FILEEND); %UNTIL (FILEEND OR NOT CARRIER); %CLOSE(F,LOCK); #END;(*CREATE*) % ) # #PROCEDURE PREFORM; #(* PLANNING TO INSERT A PROCEDURE THAT READ A TEXT FILE IF A LINE &EQUALS THE WORD COM* Z?#Z?#z#" ُ؂",&.ǀ"áצWAITING FOR A DIAL TONE#YOU MAY TYPE TO@ dئת1ˡ#HZ [?#ǀ% & '( )+# $ !, Y?$Y?#Y?$Y?#ǀZ?#Z?#ت̀ʀš,ʀBGB B\ L 8ANSWERTEMICROMODFILER SETUP ('MODEM:BUFFANSWR');  END.     BEGIN(*MAIN*) !SESSIONFLAG:=BOOTUP; !REPEAT "SETUP(MD,CMMND,PAGEFLIP,BREAK,RESUME,HALFDUPLEX,NEEDSLNFD,SYSNAME,SYSNUMBER, )SPEED,FSKWORD,SESSIONFLAG); "IF CARRIER THEN GOTERMINAL(MD,SESSIONFLAG); !UNTIL SESSIONFLAG=ENDSESSION;  SETCHAIN'ELSE STARTOVER; %UNTIL (NOT CARRIER); #END; % , ' ' )  BEGIN (* GOTERMINAL *) "IF CARRIER THEN INTRODUCTION; "IF CARRIER THEN LOGIN; "IF CARRIER THEN MENU; "IF NOT CARRIER THEN STARTOVER; "IF CH IN ['Q','q'] THEN HANGUP;  END;(*GOTERMINAL*)F CARRIER THEN )BEGIN +CHREAD(CH); +IF CH IN ['G','W','R','H','C','Q','g','w','r','h','c','q'] THEN .CASE CH OF 0'G','g':SEARCH; 0'W','w':CREATE; 0'R','r':PREFORM; 0'H','h':HELP; 0'C','c':MAKECHAIN; 0'Q','q':GOODBYE; .END; )END TIL (CH IN ['Y','y',ESC]); # IF CH=ESC THEN STARTOVER %ELSE 'BEGIN )SETCHAIN(S); # EXIT(PROGRAM); 'END; #END; $ # % #PROCEDURE MENU; # #BEGIN %REPEAT 'MOWRITELN(' CHOOSE MODE...'); 'MOWRITELN(' G)ET W)RITE R)UN H)ELP Q)UIT'); 'ILN('KEY Q TO QUIT THIS PROGRAM'); #END; # # #PROCEDURE MAKECHAIN; #VAR S:STRING[255]; #BEGIN %REPEAT 'MOWRITELN('EXACT NAME OF FILE TO RUN NEXT'); 'MOREADLN(S); 'MOWRITELN(S); 'MOWRITELN('CORRECT?(Y/N) KEY TO ABORT'); 'CHREAD(CH); %UN%MOWRITELN('RUNNING PROGRAMS MODE NOT IMPLEMENTED YET'); #END; # # ) #PROCEDURE HELP; #BEGIN %MOWRITELN(' '); %MOWRITELN('HIT KEY G TO GET MESSEGES'); %MOWRITELN('KEY W TO WRITE MESSEGES'); %MOWRITELN('KEY R TO RUN TEACHING PROGRAMS'); %MOWRITEMAND OR ANY OTHER SENTINAL WORD THEN THE PROGRAM &WAITS FOR REMIN INPUT THEN CHECKS IT WITH THE NEXT TEXT INFO WHICH &WOULD BE THE ANSWER. A RUNNING SCORE AND OTHER BELLS AND WHISTLES &COULD BE IMPLEMENTED *) #BEGIN START DIALING á ..5 [?$z$OK!צ PLEASE WAIT TO HANG UP THE PHONE á ~&צWAITING FOR A CARRIER,צTYPE TO EXIT'Ʉ˄LY?#á .Ljá, mLj[?$z#[?$צ Lost unit Lost fileצBad title, illegal file nameצNo room, insufficient spaceNo unit, no such volumeצNo such file on lineid unit numberBColon expected in vol name e@ سعצ Bad blockBad unit numberצBad modeצUndefined hardware errorRNܪPצ צ  á-:ˡšR `عצFile name is too longVolume name is too longצUnit number expectedkצInval0 š éj *áڥצ:P:áڥ #áJ ۪Pצ   á!:áš& ȡ:ة ȡ ةaz ةaAF R צ:ȡ@á:׶P!Rf#š}[  áܩ[M  * ܪ    Í [M  ⓡA é[M   ⍡  A #   @árUبNUU  l ?٩[؞"á' ک[M ڢ[M Z ġ  .6^3zr6bGx6bg6fWfwZ6jR`6jr6nH6nhN6rCT6rcf6vQl6vq6DONE 6;5X 6vLINE .:t  .th D\2"  ^r 2PREFORM HELP MAKECHAIMENU A5`0hh`hhh hHH`(hhhhhhhhHHHH`&hhh zzhHH` hhhhz)z  5z 5HH`8Hh`%N>~D \RHH`2hhhhhh  Hf'   f80) 8 OHHH`\_`{|}~]^@UQCB9^ZVKJDC|P`) [ f`4J  )HH`"hhHH`"hhhhhh HHHH`0hhhhhh HHHH`0hhhhhh  HHHH` 6hhhh  )*á/K0,,á ,,-á.-.V  Z?$Z?$ $ hhhhhh! L ֭HHHH`#>hhWAITING FOR A DIAL TONE... .ö h/٪P&צDIALING TYPE TO EXIT...-Vצ Duplicat file Not closedNot open Bad formatzRing buffer overflowPWrite protect error' cF#qBvNYá*Not a blocked volume'Undefined I-O error\`  "á8۪P [ ٥á ٥ ة[M !RP[M ڢڢצ$Remove file(s) and update directory?[M ġ[M  Removing [M [Crunch what volume? Pš= ˡ!  Endangered file(s) on  :[M ȡ3 ۏٕܩ۩ȡ[M ٕݢٕk ٪ [M  ȡ$MMš M  ة[:צ crunchedlory of? P ˡ! ک[M [M  $[M ܕצMoving ݢ,   blocks۩צDestroy : ?B[M Mة[Directory zeroed3No action. Directory preserved.Zero the directš á#ץ áI + á [M   š U Prefix is : (٪   :צ Prefix is: : Root is: : *Set prefix to? Pz: Directory listing of? Pš4 ˡ Volumes on line: ȡW š< [M  צ files.á. [M [M   files,   unused blocks,   in largestM [M šI   šܚ [M :[M ȡ򩁉á צ of  ݢ BAD Codeצ Text Infogצ DataL Graf1צ FotozaH/۩[M á[Mar-Apr-May-Jun-Jul-Aug-|Sep-jOct-XNov-FDec-4???-" tdTD   blocks.t  צ%List,Vols,Prfx,Zero,Krunch,Rmov,Quit?h[M ݢݢ ݢ  -Jan-Feb-ܪP [٥áT٥ I[M ۥ[M ة[M !MR  [ ?Þ(ȍ Crunch buffer is  צM צ[M ȡ[M [M [M [M M[#צNo action taken%7E# ڪتצ=b9PPbáO[M ddȡ4[M eeefef9dbdPdbbdP9Ä "l[M ddȡS[M ee9ef9fefefc[M cń[TEXT̀"ˡ&TROUBLE-- LIST FILE NOT FOUND׮ƀ-ƀ-̀ƀ ʀƀƀEƁƂ- /ENTER NAME OF FILE EXACTLY FOLLOWED BY ׮ צ CORRECT?(Y/N)dddNédnÍdNédnÍء J  š .TEXT< ƀƁƀצMODEM:LIST.TEXTƀƀƀ ƀƀ5Zf ڪPƀƁƀMODEM:LIST.. 6Zt ( HIT FOR HELP WITH LOG IN FORMAT׮צ! HIT TO START LOGGING INdda^d^á ]צ CORRECT?(Y/N)ؓ) ddYédyÍTO START׮)THEN TYPE THE INITIAL OF YOUR FIRST NAME ׮.FOLLOWED BY YOUR LAST NAME IN FULL.. NO SPACES׮צJOHN DOE WOULD TYPE ... JDOE צ#THEN HIT TO END THE LOG INdv Ɓ-צ PLEASE WAIT..צMODEM:LOG.TEXTƁ@dHédhÍ צ+ WELCOME TO DR. PUNDIAK'S APPLE II COMPUTERצ%YOU CAN PICK UP AND WRITE MESSEGES...צ*YOU CAN RUN TEACHING PROGRAMS IN MEDICINE....׮)YOU MUST HIT WHEN ASKED damצ, THANKS FOR CALLING$צ DO YOU NEED LINEFEEDS?(Y/N)dd@@dYédyÍ* ARE YOU IN HALFDUPLEX OR FULLDUPLEX?(H/F)׮dd@ MODEM:ANSWER"  > Fت` 0ئת*dLddkń)daˡ"dצANSWERING THE PHONE   6á á,6v>JN צMODEM:LIST.TEXT *Ɓ.Ɓ.EZ j  & WAITING FOR A CALL*TYPE TO REVIEW LOG AND MESSEGE NAMES$ ddjá  byצ Dr. WoƁ-צMODEM:LOG.TEXT *Ɓ.Ɓ.צMODEM:LIST.TEXT *Ɓ.Ɓ a `_b cjim lnk ^~]\o^](Z  Welcome toצ TERMINALצ The smart terminal program" < p | XdH"(\0TH$dd dצ:ddx"Remove what file(s)? PšCˡ$  "!!!$|xtpl!hKz`" &.2"$&(*,.02468:<>@PbFHJfNZRTVnZ\^r$ >zfjM cc#Gצ Can't find dd dצ:ddx"Remove what file(s)? PšC ˡ$  " Ɓ"ˡ&צNO SUCH FILE,(SPELLED CORRECT?)(ƁƀƁƀƁ ƁƁ2ZتƀƁƀMODEM:LIST.TEXT"á3ƀ/ƀƀ ƀƀƀ "ˡ&TROUBLE .. TRY A NEW FILENAME׮ƀvZت "ˡ ! **** NEW MESSEGE ****צFROM yENDׯ# END; #END;   #PROCEDURE MOWRITELN(LINE:LONGSTRING); &BEGIN (PUTLNREMOUT(LINE); (REPEAT *IF NOT CARRIER THEN STARTOVER; (UNTIL TRANSEMPTY; (IF NEEDSLNFD THEN PUTCHREMOUT(LINEFEED); &END; # # #PROCEDURE MOREADLN(VAR LINE:LONGSTRING); ANSWER LOG:   N^vgWER la< xrXBd  " 2 .OOSE MODE...צ! G)ET W)RITE R)UN H)ELP Q)UITddd~zvrCwj((6"$&(D,.02468:<>@PDFHh^NPRTVXZ\hvbdfh dJ_hgfeZ1 ꥁáצ MODEM:ANSPE> KEY TO ABORT׮ddjdjá  צ CHOOSE MODE...צ! G)ET W)RITE R)UN H)ELP Q)UITddd~zvrCwj((6"$&(NING PROGRAMS MODE NOT IMPLEMENTED YET6 HIT KEY G TO GET MESSEGES׮KEY W TO WRITE MESSEGES׮KEY R TO RUN TEACHING PROGRAMS׮צKEY Q TO QUIT THIS PROGRAMצEXACT NAME OF FILE TO RUN NEXT#CORRECT?(Y/N) ƁƁƁƁ;ENTER MESSEGE... END BY TYPING THE WORD 'END' ON A NEW LINE׮Ɓ.ʁ.!\צ)RUN#VAR X:INTEGER; 'SHORTSTRING:STRING[1]; #BEGIN %LINE:=''; %SHORTSTRING:='*'; %X:=0; %CH:=CHR(0); %REPEAT 'IF RCVRFULL THEN )BEGIN +X:=X+1; +CHREAD(CH); +IF ((CH=BACKSPACE) AND (X>1)) THEN -BEGIN + X:=X-2; /DELETE(LINE,X+1,1); -END +ELSE IF CH<>RETURN THEN -BEGIN /SHORTSTRING[1]:=CH; /LINE:=CONCAT(LINE,SHORTSTRING); -END; )END; %UNTIL ((CH=RETURN) OR NOT CARRIER); %IF NOT CARRIER THEN STARTOVER; #END; # # # #PROCEDURE GOODBYE; #BEGIN %MOWRITELN(', THANKS FOR CALLING'); %STA%IF IORESULT <> 0 THEN MOWRITELN('NO SUCH FILE,(SPELLED CORRECT?)') %ELSE 'BEGIN )REPEAT +READLN(F,BUFF); ) MOWRITELN(BUFF); )UNTIL EOF(F); )CLOSE(F,LOCK); 'END; # (*$I+*) #END; % ) #PROCEDURE CREATE; #VAR F:TEXT; # FILEEND'ENTER NAME OF FILE EXACTLY FOLLOWED BY '); # MOREADLN(FNAME); 'MOWRITELN(' '); 'MOWRITELN(FNAME); 'MOWRITELN('CORRECT?(Y/N)'); 'CHREAD(CH); %UNTIL (CH IN ['Y','y']); %KONCATTEXT(FNAME); %(*$I-*) %RESET(F,FNAME); ; 'IF S=NAME THEN *BEGIN ,FOUND:=TRUE; ,SEARCHDIRECTORY:=TRUE; % END; %UNTIL ((EOF(DIR)) OR FOUND); %CLOSE(DIR,LOCK); #END; # # # #PROCEDURE SEARCH; #VAR BUFF,FNAME:STRING[255]; # F:TEXT; #BEGIN %LISTDIRECTORY; %REPEAT 'MOWRITELN(AN; # DIR:TEXT; #BEGIN %(*$I-*) %RESET(DIR,'MODEM:LIST.TEXT'); %FOUND:=FALSE; %SEARCHDIRECTORY:=FALSE; %(*$I+*) %IF IORESULT <> 0 THEN 'BEGIN )MOWRITELN('TROUBLE-- LIST FILE NOT FOUND'); )EXIT(SEARCHDIRECTORY); 'END; %REPEAT 'READLN(DIR,S)#VAR S:STRING[255]; 'DIR:TEXT; #BEGIN %RESET(DIR,'MODEM:LIST.TEXT'); %REPEAT 'READLN(DIR,S); 'MOWRITELN(S); %UNTIL EOF(DIR); %CLOSE(DIR,LOCK); #END; # # # #FUNCTION SEARCHDIRECTORY(NAME:STRING):BOOLEAN; #VAR S:STRING[255]; # FOUND:BOOLELSE; )END; %UNTIL DONE; #END; # # #PROCEDURE KONCATTEXT(VAR ST:LONGSTRING); #VAR LEN:INTEGER; #BEGIN %LEN:=LENGTH(ST); %IF (LEN > 10) THEN DELETE(ST,11,(LEN-10)); %ST:=CONCAT(ST,'.TEXT'); #END; # #  # #PROCEDURE LISTDIRECTORY; ELN(NAME); +MOWRITELN('CORRECT?(Y/N)'); +WHILE (CARRIER AND NOT DONE) DO -IF RCVRFULL THEN 1BEGIN 3CHREAD(CH); 3IF ((CH='Y') OR (CH='y')) THEN DONE:=TRUE; 3IF ((CH='N') OR (CH='n')) THEN DONE:=TRUE; 1END; +IF ((CH='N') OR (CH='n')) THEN DONE:=FA FOR HELP WITH LOG IN FORMAT'); )MOWRITELN(' HIT TO START LOGGING IN'); )CHREAD(CH); 'UNTIL ((CH IN [RETURN,SPC] ) OR ( NOT CARRIER)); 'IF NOT CARRIER THEN STARTOVER; 'IF (CH=SPC) THEN BANNER 'ELSE )BEGIN +MOREADLN(NAME); +MOWRIT)S:LONGSTRING; ) 'BEGIN )MOWRITELN('PLEASE WAIT..'); )(*$I-*) )RESET(L,'MODEM:LOG.TEXT'); )REPEAT +READLN(L,S); )UNTIL EOF(L); )WRITELN(L,NAME); )CLOSE(L,LOCK); )(*$I+*) 'END; ) ) ) #BEGIN %DONE:=FALSE; %REPEAT 'REPEAT )MOWRITELN(' HITF YOUR FIRST NAME '); )MOWRITELN('FOLLOWED BY YOUR LAST NAME IN FULL.. NO SPACES'); )MOWRITELN('JOHN DOE WOULD TYPE ... JDOE '); )MOWRITELN('THEN HIT TO END THE LOG IN'); ' CH:=CHR(0); 'END; ' ' 'PROCEDURE LOGFILE; 'VAR )L:TEXT; DIAK''S APPLE II COMPUTER'); )MOWRITELN('YOU CAN PICK UP AND WRITE MESSEGES...'); )MOWRITELN('YOU CAN RUN TEACHING PROGRAMS IN MEDICINE.'); )MOWRITELN('...'); )MOWRITELN('YOU MUST HIT WHEN ASKED TO START'); )MOWRITELN('THEN TYPE THE INITIAL O CARRIER THEN % IF ((CH ='H') OR (CH = 'h')) )THEN HALFDUPLEX:=TRUE )ELSE HALFDUPLEX:=FALSE;  IF(NOT CARRIER) THEN STARTOVER; " END; # # # #PROCEDURE LOGIN; #VAR DONE:BOOLEAN; ' 'PROCEDURE BANNER; 'BEGIN )MOWRITELN(' WELCOME TO DR. PUN%IF CARRIER THEN IF ((CH='Y') OR (CH='y')) 'THEN NEEDSLNFD:=TRUE % ELSE NEEDSLNFD:=FALSE;  REPEAT 'MOWRITELN(' ARE YOU IN HALFDUPLEX OR FULLDUPLEX?(H/F)'); 'IF CARRIER THEN CHREAD(CH); %UNTIL ((CH IN ['H','h','F','f'] ) OR (NOT CARRIER)); %IFRTOVER; #END; # # # # # # #PROCEDURE INTRODUCTION;(*SETS UP LINEFEEDS AND DUPLEX FROM REMIN*) #BEGIN %REPEAT 'MOWRITELN(' DO YOU NEED LINEFEEDS?(Y/N)'); 'IF CARRIER THEN CHREAD(CH); %UNTIL ((CH IN ['Y','y','N','n']