TDGFY 2i 0BASIC Utilities Library 1for HP 200 SeriesB9836 v  z      REVID PHYREC q DUMP Po DIRECTORY P CAT P INFO P0 CREATE PI ZAP Pe    BINITIALIZEP|K VERIFY_LIFP CBACKUP P@ FBACKUP P%i REPACK PR FILE_SIZERPu REVID UUNSECURE PV      [=]sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBNg@T<8,DNNV/. /.NN^ _PNNV-xJ-n n!mֈC!IC+IֈN^NuNVp xnNN^NuNV-n-n n-PR N^ _XNNVf/-/Hz6+OJ-g;|6.mNu|Ax+Hb mb1|j-xJt-ntpUN np0-xl"nl)rg;|NfJ׎g/-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<N-_!` nLHA.+HBN2@ (۞@ 2@ <@ F  .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah,l @}!A `80.}"a:8eH  `0}@ B&|bf0VTZ @DF0 B00lrPP _ccreenBacicLinA*10 !SERIES 200 BASIC UTILITIES LIBRARY20 !Disc 1 -- 09800-1030430 !9/23/82 REV A/40 !Copywright Hewlett-Packard Company, 1982 INFO P0 CREATE PI ZAP Pe .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\AhC|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎gC|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g [=[[ sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPN l(@lٵ#,K# LOAD KEY@>v  @  t Ѳ@$"*2 octal/ascii Ѳ@"$42 LIF system& Ѳ@&">2 LIF directoryL Ѳ@&HEnd of main sub @ R\ ( H ) X  "0} l 2 p 'to input record to be dumped (Rec), and@22 z &to read proper sector into A(*) array.@ 2  @ %@ @P@P@@ @ @ @ ʶ !!Set up label menu@ LIF and integer@6xformats.@ @  @P@P@@%@ @ @ Print title page@ȼ @@Ӳ@(@͐@ @N(@!@ PP ~ ~jvL 0}   @}!A "0Z*8<^D%N+ZDDfldRecA Sed_forma  @}$!A(0<*02804}D B&0}X0t0}j B0 0 }~ @DF<0 t}00 }P0 ,}E0 }@ E0 }@ 0 N}@ g޶@ 蛥@ 򛥳@,  Print format at bottom of screen@,,!2" format @ ,  @ $ RECORD #? @ .N+1,N-1 @8hex@Binteger [=[[O2ord HexHex_subAllRecALOL$New_baseZ$M @. 4 "Subprogram to dump a record in hex@. > format@  H @ R%@  \ @ fPrint headings@$pBHex dump of record @ $z@: 2 xr>n 0}  @}!AIntInteger Integer_subAllRecAB@* 춎Subprogram to dump a record in@* integer formٵ#,K K@   @  @ "@ & ( Read sector to be dumped@ &2@ <ٵ#,KK@F %@Pͻ@ Z @ d׳@ n2 x $Decide to increment or decrement Rec@ 2@ t format@&ٵ#,KK@0B LIF directory@ :@ D NDisplay catalog@Xٵ#,KK@ b@ lB @ v@ " %Handle PHYREAD error@ " @ @ !Q?  B+ 0 1 2 3 4 5 6 7 8 9 A B C D E F@&:For each row in the sector@&1n@   @  Initialize L$@ @2@ B@  ʶ @. Զ "Translate each row number into hex@.  Ղյ! qat.@  @  %@  @  Print@( (BInteger dump of record @ ( 2@  <ͤ@  F@0  P$End of sub to dump w/ integer format@ 0 Z@  d  nlLN+1 @N-1@EXIT @    Increment Rec@Ȃٵ#,KK@ 萳@  @ 涎  Decrement Rec@ٵ#,KK@ ^p$@8BEncountered error #B . Try again.@ 8@ ƶ  Terminate@ ڽ@ 䶎Restore typing aids@>(@ 0ٵ#,K# LOAD KEY@>BEND OF PROGRAM.@ @,  dՂղ@  趎 @  Create side label@ B @ X @   @&  For each number in the row@& $ @  . @$ 8 Translate number into hex@$ B յ!Մղ@  L @( V Add neP`^ ^0}  @}!A   $TD( 26~8v<Y\@ecALL$Bb$New_baceH$MLo Hex_ascii Hex_asciiAllRecALL$B$New_baseH$@@  @  " Set format@,ٵ#,KK@6Bhex@ @@ J T Set format@^ٵ#,KK@hBinteger@ r@ |  Set format@ٵ#,KK !End of Subprogram Set_format. @ ,@   PP*@ n 0}N @}!A} TD (,demp a rec Bw number to end of row@( `B @  j @ t Next number@ ~ P@  @ Print row@  @ @  Next row@ *@. ı"End of sub to dump in hex format @ . ζ@  ض MLoHi Translate ֳ@* xSubprogram to dump a record in@* hex/ascii format.@  @  %@  !@  @2@  @  Print headings@* țBHex/ascii dump of record @("pAc됳@8&Save register holding y print position@8ā!@0Λ2!Enter record number to be dumped.@0؁@B 21(Press CONTINUE to dump previously dumped record)"@B"pAc@ G@B hex/ascii@ @   Set format@‚ٵ#,KK@B octal/ascii@ @ ඎ  Set format@ٵ#,KK@B LIF system@ @   Se [=[[integer is made into 2 hex numbers)@". B  @ " @ Next number@ ´ @  ̶ @2 ֶ 'Then add on ascii representation of row@ 2 ඎ @, 궎 Set up parameters for subprogram@ , @  %@  ڼ!@  @2@  @  Print headings@, BOctal/ascii dump of record @ , @8  B) 0/1 2/3 4/5 6/7 01234567@ 8 @  *For each row of 4@ 41@  >  5End of subprogram to dump in@(Ķoctal/ascii format@ζ 2jPLdZ +0}  @}!A "TD& 0t 4`8_@ ȶ@ ҶVOLUME LABEL ROW@ ܶ@, 涎!Translate words 1 thru 3 into hex@,Ձյ!Մղ@Ղյ!Մղ@ @ Ճյ!Մղ@ @ "@& ,Initialize character string@&6 萳@  @  Translate row@   ղ@  & @( 0 Tack on ascii representation@( :B @  D @ N Print row@  X@ b @  lNext row@ v@  @(  End of sub@& H Initialize charater strings@& RB@ \B@& f Translate side label to hex@& p ՈՂղ@ z B @  @& For each number in the row@& <@  @" Translate each numb X<P@Y\DHN]}R@Z8\B$ Lif_system Lif_systemAllRecAL$New_baseH$O$B$LoHi TranslateDecFNRealIJ@*ⶎSubprogram to dump a record in@*춎LIF system format@ @K B@ @@, J Set up parameters for subprogram@ ,T @ ^ @ h@. r#Translate words 1 thru 3 into ascii@.| ղ@ @" Print Volume Label Row@:"B 1-3: B VOLUME LABEL "  @ * қ@4  ܛB% +0 +1 +2 +3 +4 +5 +6 +7 01234567@ 4 涎@4  (For each row of eight hexes (4 integers)@4 1@   @(  Initialize character strings@( B@ "B@& , Translate side l@program to dump in@( hex ascii format@  2 Pd %0}  @}!A " $ (TD, 6:~<Ner@"  ՈՆղ@  @ ʶ Put into new row@ B @  ޶ @ 趎 next number@ @  @2  'Then add on ascii representation of row@ 2  @,  Set up parameters for subprogram@  c %@ @2@ @ Print headings@@(B)Formatted LIF system record dump (record B)@ @2@< "ܛB 16-17: B SECTORS/TRACK B dec@ >涎@ @ VOLUME STAMP ROW@ @. #Translate words 17 thru 20 into hex@.յ!յ!z the row@& bz@  l @ v Translate each number@ յ!Մղ@   @  Concatenate to string@ B @   @  Next number@ ij@  ƶ @ ж Print row@  ڛB"@ :@ @& DIRECTORY START ADDRESS ROW@ &¶@, ̶ Translate words 4 and 5 into hex@,Մյ!Մղ@Յյ!Մղ@ @ @6 *Translate words 4 and 5 into a single real@6#ղ@*Չյ!Մղ@ 4@ >@6 H*Translate words 8 and 9 into a single real@6R ӈՉղ@ \@& fPrint Directory Length Row@>&pB 8-9: B DIRECTORY LEN. B dec@ >z@ Y3 into single real@6 ӵ! յ! ղ@ @$ ĶPrint Tracks/Surface Row@>$ΛB 12-13: B TRACKS/SURFACE B dec@ >ض@ ⶎ@ 춎SURFACES/MEDIA ROW@ @. "Translate words 14 a DՄղ@"յ!յ!Մղ@ ,@ 6յ!յ!Մղ@ @@ J@" TPrint Volume Stamp Row@:"^B 18-20: B : VOLUME STAMP @ :h@ r@: |B, ,&B 4-5: B DIRECTORY S.A. B dec@ >0@ :@ DOCTAL 10000 ROW@ N@. X#Translate word 6 into hex and octal@.bՆ@ VERSION NUMBER ROW@ @& Translate word 10 into hex@&Պյ!Մղ@ @$ Print Version Number Row@D$ʛB 10: B VERSION NUMBER ǟ" dec@ DԶ@ ޶@  nd 15 into hex@. յ!յ!Մղ@յ!յ!Մղ@ @ (@6 2*Translate words 14 and 15 into single real@6< ӵ!յ!ղ@ F@> PB 14-15: B SURFACES/MEDIA B dec@  yor future use>@ :@ @" REST OF THE SECTOR ROWS@ "@ B@ @* ¶Translate each integer into hex@*!!@ յ!Մղ@ B @괎X@ @( յ!Մղ@lՆՈՆղ@ v@ Print Octal 1000 Row@B B 6: B OCTAL 10000 B oct@ B@ @ DUMMY WORD ROW@ @" Translate word 7 to hex@"Շյ!趎 ZERO WORD ROW@ @& Translate word 11 into hex@&յ! յ!Մղ@ @ Print Zero Word Row@H$B 11: B ZERO WORD ! ǟ" dec@ H.@ 8@2 BB$  >Z@ d@ nSECTORS/TRACK ROW@ x@. "Translate words 16 and 17 into hex@.յ!յ!Մղ@յ!յ!Մղ@ @ @6 *Translate words 16 and 17 into single real@6 ӵ!SPrint first of reserved rows@(B21-126:@ @,  For each of the rest of the rows@,&!1|ֳ@  0 @& : Put blanks at the beginning@& DB @  N @& X For each number inOՄղ@ ж@ ڶPrint Dummy Word Row@D 䛵B 7: B DUMMY WORD ǟ dec@ D@ @ DIRECTORY LENGTH ROW@  @0 $Translate the words 8 and 9 into hex@0 Ոյ!Մ @ 2L@ V@ `TRACKS/SURFACE ROW@ j@. t"Translate words 12 and 13 into hex@.~յ! յ!Մղ@յ! յ!Մղ@ @ @6 *Translate words 12 and 1 [=[[8"H@ R@ \@ f@8 pB* @ 8z@ @ MEDIA MAINT ROW@ @$ Translate word 127 to hex@$յ1յ!Մղ@ @" Print Me@ BPrint headings@DLB,Formatted LIF directory record dump (record B)@ DV@8 `B* field hex dump g contents8jFor each entry@tz@  ~ @  Print entry #@   @.  "Translate 5th word in entry to hex@ .  յ!յ!Մղ@  @  Print File Type Row@H "B FILE TYPE B R !ǟ dec@ H , @ 6 @ @ START ADDRESS ROW@  J TIME OF CREATION ROW@ b @& l Initialize string variable@& vB@   @"  For word 10,11, and 12@" ! @   @&  Translate each word to hex@ &  յ!յ!Մղ@  @& ƶdia Maint. Row@H"ʛB 127: B 250 MEDIA MAINT1ǟ2 dec@ HԶ@, ޱ End of subroutine to dump in LIF@,趎 system format@ 2&"+B@   @&  Initialize string variable@& B@   @ Ķ @ ζ FILE NAME ROW@  ض @$ ⶎ For each word in filename@ $ !!ʳ@  @(  Translate each word   @4 T )Translate 6th & 7th words in entry to hex@ 4 ^ յ!յ!Մղ@ h յ!յ!Մղ@ r @ | @4  (Translate words 6 and 7 into single real@&4 ӵ!յ!ղ@ &  @"  Concatenate onto L$ string@&  p" @   @ 䶎 @  Next word@  Գ@   @&  Print Time of Creation Row@& B CREATE TIME @   @ * @( 4 L FLAG AND VOLUME NUMBER R DD0} @} !A$ &0*46TD8x Bd F\JTNY\RL\]}`Dh0j(rraAllRecAaL$ MaingloopIJNew Lif_directory Lif_dinto hex@(  յ!Մղ@   @$  Concatenate to L$ string@ $ ( @ 2 @ < Next word@ F@  P @& Z Initialize character string@& d B@  n @, x Set up parameters for subp u: Print Start Address Row@:" B START ADDR B  B dec@ :  @ ¶ @ ̶ FILE LENGTH ROW@  ֶ @4 ඎ )Translate 8th & 9th words in entry to hex@ 4  յ!յ!Մղ@  յ!յ!gOW@ ( > @. H #Translate word 13 of entry into hex@". R յ!! յ!Մղ@ " \ @ f Check for L flag set@ p!! ǀ @ zBset@  @ Bcleared@ @   @,  !Mask@ 䶎 @ Next row@4@ @,   Print incomplete row of reserved@ ,@.  "Translate words 125 and 126 to hex@.*յ1}յ!Մղ@4յ1~յ!Մղ@">B B @ birectoryAllRecAL$ Main_loopIJNew_baseH$B$LoHi TranslateDecFNRealKLflag$Vol @*Subprogram to dump a record in@ *LIF directory format.@ @ $%@.@2@ 8rogram@,  !쐳@  !萳@   @*  Translate into ASCII characters@*  ղ@   @  Print File Name Row@. țB FILE NAME B " B"@ . Ҷ @ ܶ @ 涎 FILE TYPE ROW@   =Մղ@  @  @4  (Translate words 8 and 9 into single real@&4 ӵ!յ!ղ@ & & @ 0 Print File Length Row@: :B FILE LENGTH B  0 B dec@ : D @ N @ X  [=[[k | integer@  산@  ǐ@   @$ & Check for negative number@$ 0P@萳@  : @* D Divide into two separate bytes@* N 1@ X 1𐳎@  b @0 l $Find character value a !f End of function to translate two@.. !p #integers into a single real number.@ .!z@ !@0 !$ SUBPROGRAMS TO PRINT TITLE PAGE@ 0!@ ! ! vn `8^ TD0} l +x _ "(!*.@ @ D0New_baseNew_baseR$NumBaseDigsNA$I 4@, Subprogram to translate integers@ ,}@$ J Divide to the next number@ $ T@ ^ @ h Next digit@r޳@ |@. #End of subprogram to translate from@(.base 10 to base 8 or base 16.@( @`06 nd put into B$@0 v ! P !.@ ! n !.@( 1 ! 1 !.@(( 1 ! 1 !.@(   @   @  @   Next word@ ƴ D@  ж@@0  icrSStarStarWI@ ! @ !س@ !ʛ"*@ !Դ@  !ޛ@ !豳@  ! @ ! "@0t ` a: out L flag from volume label@, Q!! @   @. ʶ "Print L Flag and Volume Number Row@H. ԛB L FLAG/VOL# B XB/B dec@ H ޶ @ 趎 @(  IMPLEMENTATION DEPENDENT ROW@ @& ζInitialize character string@&B@ ⶎ@& 춎Check for a negative number@&@   @  !萳@ P@萳@   @ (&@  2@ <@ F@6 PYf 0 Y\0} l +x _ @}$!A(*02:@ QSubp Translate TranslateB$LoHiAllRecAWordJLsbyteMsbyte  &@  ڶ@*  䱶End of subprogram to translate@** integers into ASCII characters@*  @!B@6vBn0] } l I!Divide t0FNRealHiLoR(  @4  )Translate words 14 and 15 of entry to hex@"4  յ!!յ!Մղ@""  յ!!յ!Մղ@ " $ @ . @. 8 "Print Implementation Dependent Row@. BB IMPL DEPEND @  L @ V @ S*Set up numeric representations for base 16@6ZD@dǵ0@nǵ1@xǵ2@ǵ3@ǵ4@ǵ5@ǵ6@ǵ7@ǵ8@ǵ9@Ȋǵ" ^ @, Subprogram to translate integers@(,into two ASCII characters and@.(¶"to concatenate the whole mess into@.̶a word or words.@ ֶ@ %@ @ @ For each veal@.! "Function to translate two integers@&.!into a single real number.@ &! @ !*@ !4X@萳@" !><X@萳@"" !H^X@ꐳ@" !R|X@萳@  !\@.t ` @$ jGoto the next entry!!!!!@$t@ ~@ @. "End of subprogram to dump a record@$.in LIF directory format.@ $ 2`H A@ҵ! ǵ"B@ܵ! ǵ"C@! ǵ"D@!ǵ"E@!ǵ"F@ @ For each digit@@  " @4 , (Find representation of remainder in Base@4 6@  @  [=[[J0  e LineLifeWNIAb4@ @ v @ LineLineWNIJp@ " @ "`@ "$2*@ ".>@"82 @ "B@ "L!PFNWidthWidthX@ #d@  #n@ #x#RPj f0(idTyp_aidctString!$String"$Basic Typ_aidsPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBN@" Word$IJ First_half Last_half Ƴ@ " @ " ꐳ@ " P@ "ꐳ@ "b@ "@ "Ĺ@  "ζ @ "؛2*@ "@"웵2 @ "@ #@ tP@P@ #ȶ@& #1!P1!X@&&#1!X1!C@.&#݂ٵ#,K# SCRATCH KEY@ .#涎@ # SUB TYP_AID&  .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\AhJ"vuZv\w0""('.Q6zT0F0jN'> B \ Bf @(Qp0'v}X'|adogMenuE`urgeUnpubgeRenamWStarLind# @#2 @ #Գ@ #(2*@ #2@  #< @ #F @8 #P-****End Of Subprograms To Draw Title Page****@#Znn0eB$PB$PB$C|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎gd~eWord$TitleCatalogMenuPurgeUnpurgeRenameStEndingIdle1FNWidthString1$String2$BasicBasicTyp_aidBasic @*** * 7-29-82 **$*@ *@ (@ 2 DIRECTORY@ <@ F [=[[  ZSecHolesFNRealHolesizeHolesizeMsus FreespaceK Check_for_eodMsi$FNMsus$0BasicString1$String2$ Singleside Vol_labelV@  @4 )Subprogram to list an extended catalog of@4 disc's dir  2HP913p' single volume Winchester@@QI@$ۻ 2CS80,4@ $ܽ$@F ݛ!"0Enter the total number of records for your CS80,@DFޛ!".using the table in the BASIC Utilities manual.@ D ղ@,2EXTENDED@6ղ@@Ձղ@J2 DIRECTORY@Tղ@^Ձղ@h2CATALOG@rղ@|Ճղ@ղ@ @$ Display prompts and pause@2$2$Install your :3 0jFr0& . 8 @ F  L  RVX!Z"^bj|}rt|lCfdOh0\T eectory.@ *@ +$@@4 Clear screen@>ٵ#,KK@ H@2 R&Check that disc meets L.I.F. standards@2\Ӳ2noѲ@ f. p Declaration of variables for sub@ .z@@ + @.  2REMOTE궎' error@@.ᑵ22ERROR -- program is not intended for use with SRM.@>@+(@ٵ#,K#,LOAD KEY-@ >@  ' error@2呵2#Invalid MSUS -- program aborti  disc and press CONTINUE@ 2@ @ ¶@" ̶Print extended catalog@ "Ѳ@ ඎ@ 궎  Set up softkey menu@ @ PURGE@UNPURGE@NEW CAT @L_D0 dʀ<ڀ4J0g,0 B<<$",0.B@ )EJ0tEZ*`,j1"0 @ 0EHfol_lab @ @@  @ @@" ! ! % )@"@  $(Ӳ@ @ @ $ Գ@2Ļ 2INTER2HP829@2A @$ƻ 2HP989 ng...@>2+(@ tٵ#,K#,LOAD KEY-@ >@ @ 鶎* /Obtain info from volume label@* ͻ@2@ 2@ 0@  ٵ2#,W Ǥ@   @  WX@( P Appended binary--PHYREC FOR@"(Z BASIC 2.0 REV A@*"d***@ *n@2 x'Remove typing aids until end of program@ 2@  @P@P@@(@ @&RENAME @0EXIT   : @ D N @X1ʳ@  b @ l@@v@ @   @  Restore typing aids@> (@Lٵ#, $F`urge$File$CatalogCatalogNot_lif FNVerify_lif$Cat_decVol_lab$Purge$File$Pro$Type$A$IJVolDirRpfDEAddressDirstartDirlen Total_records Total_recordsRecordsBigholeSector0Entries Cat_imageFNLif_filename$ Eod_record Eod_entry @$ǽ1%.@ɽ *@ʵA .ͻ@ ˽ @ A@ ͽ.ͤ@ / *!Tγ@Ab@Ҹ䳎@A@Թ@ ս.ͤ@$ ׻ 2HP988"@$Ab@@ٻ @ @T(@! )- test statement to check for 2.1 basic or 2.0@ T @ (@Ѳ@ 涎@ Print title page@ Ӳ@ٵ#,KK@ @ ղ@" \K#LOAD KEY@>2END OF PROGRAM.@ @. ƽ !******End Of Main Program****** @ .ж@ ڶ@& 䶎 SUBPROGRAM CATALOG@ &@ PPp>|.  [=[[  needed values for entry@( < ղ@ FB @ P ȿ@ Z!  ղ@ d!  ղ@ nB @  x @,  Calculate holes and # of records@,  Ȁ6@  萳@ #@ "."  @ b@2 l&Save end of directory if no eod marker@ 2vꐳ@  ꐳ@ 0  #Routine to handle last hole on disc@.0#and to print free space and bighole@ .@4 )Set pointers to last entry of  @6  *Go back thru each entry of each file until@*6 $you find the last unpurged file@ * .@  8Check for first entry@  B غ@  L@(  VGo back one record at a time@( `X@  j  @ .@ "@  ȶ@.  Ҷ"Return the proper record to Dir(*)@. ͻ@  涎@"  Go back to main program@ " @  @  @.  "****End Of Subprogram Catalog**** @ . " @ $@ .ղ@ 8@4 B(Set up image and labels for extended cat&4L 2A,X,10A,X,A,2X,6A,7D,8D@H&VB/,KB ****** Special Catalog Of (ӲB *****@&H`2" VOLUME LABEL: ",K@4&j2& A@ @   @2 ȶ &Branch to specific code for each known@2 Ҷ file type@  ܶ @ 涎 Purged@  Ȁ泎@  Bpurged@ B->@ @   @ " Ascii@ , ȁ2@ 6 BASCII@ Rlast sector@4in the directory@ @ @  @ 䶎@( Read last sector in directory@(ͻ@ @&  Calculate size of last hole@ &#@  @2 *'Calculate size of Bighole and Freesp @, t If Dir does not contain sector E@, ~ֳ@ Read new record@ ͻ@0 %Set entry ctr to last entry in record@ 0 &@ @  @4 Ķ )Go backward thru each entry in the sector@4 &ꀁF  FILE NAME PRO TYPE RECORDS ADDRESS@ 4t@ ~@,  For each sector in the directory@,:@   @  Read the sector@ ͻ@   @( Ķ For each entry in each sector@(  (@ @@  J @ T Systm@ ^ ȵA@ h BSYSTM@ r@  | @  Binary@  ȵA@  BBIN@"  !ȵA B*@" @   @ ¶ Prog@  ȵAd@  ace@24%ꐳ@>T"%@H"f"@ R@ \ Print values@ f@ p@, z%B PHYSICAL RECORDS AVAILABLE@B,B LARGEST CONTIGUOUS FREE SPACE ISB RECORDS LONG@ B@> B/TO RETURN TO L@  ض @4 ⶎ )If there's a -1, check to be sure that it@44 춎 )is the CURRENT end of directory marker!!!4 ' ȁ@ 泎@  ꐳ@  '@  @ (@  2 @* < Find the previous existing file@&* F  P ض @& ⶎ Check for end of directory@6&  ȁ Ȁ ղ  @>6 B0 ** End Of Directory Found **^@ > @   @&  Print hole values & exit@& @  ( @( 2 Read  BPROG@"  !ȵA \B*@" 깳@   @  Bdat@   ȵ1Aܳ@  BBDAT@"  !ȵA B*@" &@  0 @ : Print entry@ D @ N ,@X  THIS MENU, PRESS CONTINUE WITH NO @(>BENTRY AT ANY INPUT POINT.@ (@ @ ׶All done@ ʶ@ Զ. #!Routine to determine size of hole@.趎in front of file@ @ "@  & @   ȵA ȁ4@ & P @" Z Calculate the holesize@*" d"!  ղ!  ղꐳ@ * n @. x "Return the proper record to Dir(*)@. ͻ@  @" Go back to main program@ " @  [=[[  [502@ 70@ 90r@ ;0@ =0)00@ @@ A0("(04>FN6X8\0&`jFdirlenEntriUnpur ons@$ ղ@  ޶@  趎Check for no entries@  2@  @ @ $@6 B'There are no entries in this directory,@*6 $Bso nothing can be unpurged.@* .׳@8@ B@ L@ @  _decFile$@ @ PurgePurge Purge_decFile$ Purge_errorCatalog @  ^@0  h$Subprogram to purge a specified file@ 0 r  |@2@  @  @  @  G taken.@> *׳@ 4@ >@ H@, R!****End Of Subprogram PURGE**** @ , \@  f@&  p SUBPROGRAM UNPURGE@ & z@  2 *L)L):HN)0 '00 geUnpurge Unpurge_decSector0DirstartDirlenEntriesName$ New_name$File$R$Dupname$DupaddrDirlocDirCodeAsciiI Input_name DupsearchCtrExistingBegEndDH Choose_pathFNLif_filename$FNReal No_such_fileAlready_existsJust_ @ @@ VE @` @j @"t)!%!@ "~@ .  Read name of file to be restored@ .@ Initialize strings@B@@ B/Enter F Read filename@ B@0 B Which file do you want to purge?"@ 0 ¶@  ̶Check for no entry@ B׳@  ඎ@  궎 Purge file@ @  @   @  @  List extended catalog@ 2_$}.6 > D tN nT1jX1fb1bj"b"r`v!V.|T00LD<4,@ E0 d one Entry_numOverlap Assign_type More_than_oneDuplist Which_oneFile_noExistingNew_name Check_name SectorIndexAsciiBdat3BinaryProgSystmOther the name of the file you want to unpurge.@ @Ķ@ ζCheck for no entry@B׳@ ⶎ@ 춎, Search for duplicate filenames@ ,@0  $Initialize counter, flag, and limits@ 0됳@    &Ѳ@  0@  :׶All done@  D@  N  X @  b@  l$@  v@  @  @  !8|@, B is an undefined file name.@, BNo action taken.@ ׳@ @ ƿ g0 0 p0d$ 0x0@ #E000(<@ &E$0R0Zd@ *EJ0v0H@ -El0#@ /E 0@ 30@ EndingIdle2JClearCatalogPtr NamestartNameendFileend FilestartA$B$ TranslateC Enter_namey@  @(  Subprogram to unpurge a file@ ( @  @  $  Subprogram declarati @ (@ 2萳@< 萳@ F@( PFor each entry in each sector@(Z 泎@ dͻ@ n Գ@  x @,  !Check for end of directory marker@, ȁ >@   @"  ;@  ,@$  6 SUBPROGRAM PURGE@ $ @@  J   T24$T0  "00L @ 0(4ge !>@0 ЛB!Encountered a protect code error.@0 ڛBNo action taken.@ ׳@ @ !5P@2 B#Improper filename; No action taken.@2 ׳@ @> BEncountered error #B. No action  [=[[ existing files.@ @ @ @ ¶, Check for no file called Name$@&,ֶeither existing or purged.@ &ඎ@  d@  @ @ $@4 BThere is no file B on this disc. file called Name$@ @ Print duplicates@ @ @$ B # Filename Addr@ $ʛ@ @ ޛ' ǣ Ǥ@贎賎 ' DDDD,2X,10A,2X,4D@ @ @ @ S ǐ@ P@& ZCheck for overlapping files@ &d"@ nIf overlaps then exit@ x BBAD @  $@& Band cannot be unpurged.@& ׳@@ @$ Get new name if necessary@$,  6@0PROG8@:SYSTM:@DOTHER<@NRETURN>  X??@ b( l2 Put ASCII code in directory@ (v@" BClear keys and screen@"1ȁ@0 n@4 ׳@&@ 0 :Check for no purged@ Dduplicates and one@Nexisting duplicate.@XX@  b@ l@ v$@& B is an existing file.@$& BIt cannot be unpurged.@$ ׳@  @* $Check for more than one purged@*.@  8$@: BB*There is more than one purged file called @ : L V(Which file to purge@ ` @ j)A'됳@B t B1Enter the number of the file you wan CB@  қ@2 ܛB!There is an existing file called @>2 曵B/The file I am going to unpurge must be renamed.*>! BEnter the new filename.@ *  @  Check for no entry@ B:׳@   @ " Ch ͻ@ CѲ@ ׶Return to main@ ( 4 Put BDAT code in directory@ (ƶ@" BClear keys and screen@"1ȵA됳@0ͻ@ CѲ@ ׶Return to main@ *  6Put BINARY code in d [ Read name of file entry@"  ղ@   @2  'Check for existing duplicate & set flag@2 Ȁ  쳎@  @ ܸ ³@  涎 @0  %Check for purged duplicate and record@0  @ @ Incr @ . !Check for no duplicates--just one@*.Name$ that was already purged.@ *ƶ@ @ ڶ Save location@   ǐ@  @&  Check for overlapping files@ & "@$  If it overla -t to unpurge.)@ B ~ @  Check for no entry@ )A'׳@   @$  Check for invalid number@$ )))F@  $@< ěB,BAD NUMBER--Must be an integer between 0 and@ < (@ ع@  ⶎ deck for badname@  ,.@ 6B!@  @ @ J@ T ^$Assign file type@ h@" rFind where the entry is@"|0 萳@ 1 @ @ Read proper sector@0ͻ@ @  ement counter@ 萳@ "@ , @ 6 ղ@@ 萳@ J@ T@ ^ @h γ@ r@ |( Choose branch depending on@$(combination of purged and@$ .ps then exit@$  BBAD@   $@& *Band cannot be unpurged.@& 4׳@ >@  H @0 R %If it's okay then record location and@0 \ assign type@  f$@ p@ z& %There must be more than 1@& k@$ 춎 Finally got a good number@ $  ) ǐ@ @  @ . + Check for an existing file Name$@ .(@. 2#If there is only one purged and one@6.<*existing file called Name$ then set entry#@6FV Rename if necessary@@ @ 1ǐ@ എ@깳@ @  Get file type@.BWhat was the type of your file?@.ASCII2@BDAT4@&BIN  [=[[ 1  sure name is ok@ 2H@ R&೎@ \I@  fJ@ pI !@J !Z&@ zI !aJ 1z&@ I !0J !9&@ I !_&@ @ @6 B& is not a vaild file name. ****End Of Subprogram UNPURGE**** @ 0<@ F@& P SUBPROGRAM RENAME@ &Z@ d  n  & " f Q0 irectory@ *@"  BClear keys and screen@"*1ȵA됳@40ͻ@ >CѲ@ H׶Return to main@ R( \8Put PROG code in directory@ (f@" pBClear keys and screen@"z1ȵA됳@0ͻ +Name$@"0 萳@D @ 0ͻ@EDDղ@FDDղE萳@ (G萳@ 2 BGOOD@ <@4 F)Check boundries against directory and 1st@4P two sectors.@ZE@ d BBAD@ "e is overlapping with an existing file@< BBAD@ @ @ @ @ & ,@0 @ :@( DEnd of Overlap subroutine @ (N@ X. b. Subroutine to check for bad name@*.l tTry again.@ 6$@ Set flag@B@ Ժ@ ޹@ 蹳@ @ @ &@%@ , $KMust be valid name so translate@&,.into ASCII representation.@ &8@* B Q@ CѲ@ ׳@ ( :Put SYSTM code in directory@ (@" BClear keys and screen@"1ȵA됳@0ͻ@ CѲ@ ׳@ . <!Get new code and put in directory@ .@" BClea  n@ x@> B0This file starts before the end of the directory@ > @ @ @6 *Check boundries against all existing files@6"ҳ@ ͻ@ "@  Ҷ @$ ܶ Check only exist Vand to translate valid names to@"*vASCII representations.@ "@& Look for duplicate filename@&%&@ ͻ@ %@  Ȁղ%@  @, ƶ Print error message and set Pad with blanks to length of 10@*L'@  VB'B @ `'@ j@6 t*For each two letters, get one ASCII number@6~(^@ L𐳎@ L @ LLLj 萳@ r keys and screen@ "@ $ Read new code@ .@D 8 B2Enter the code for your filetype.(Must be integer)@ DB@ LCheck for no entry@V׳@ `@ jPut code in directory@ t1@~0 Ting files@$ Ȁ"@ ȁ @   @"  Find boundries of file@" Hղ@ GղH萳@  " @ , Compare boundries@ 6EG!³@@0D0!@ J@ T@ ^ flag@ , н$@ ڛ@8 䛵B!There is an existing file called B.@8 B Try again.@ B@$ Back to main subprogram@ $  @ @  $@*#޳@ 4@2 >&No duplicates, so make (@ @,  End of Check_name subroutine @ ,Ķ@ ζ0 B#Subroutine to clear keys and screen@ 0ⶎ@ @ ٵ#,KK@ @  @  >@ (@0 2$ ͻ@ CѲ@ ׶Return to main@ @ @2 & SUBROUTINES TO UNPURGE SUBPROGRAM@ 2@ Ķ0 "#Subroutine to check for overlapping@0ضfile boundries@ ⶎ@" 춎Find boundries of $@@ hB2This file is not in logical order in the directory@@r BBAD@ |@ @ @ HEGE!@ BGOOD@ "@GFHF"*@ BGOOD@̸"@ ֛@ @< ꛵B.This fil  [=[[ d_nameAssignString1$ Assign_error@File Read_newnameNewname$ Rename_fileString2$ Rename_errorCatalogBasicBasicStE@ x@& Subprogram to rename a file@ & Encountered error on ASSIGN@ ( @   @  &@  0!5 @  :$@ D@ N@2 XB$ERROR--Improper filename, try again!@ 2 b@  l ^@ v!P@  $@ @ @> B/Disc T@ !@!@ "@ "( " Encountered error on RENAME@ ("$@ ". @ "8@ "B!5 T@  "L$@ "V@ "`@ "jBERROR:@6 "t B% is not a proper filename--Try again.@ 6 "~ @ " zj@ #@ #@. $#****End Of Subprogram RENAME**** @ .$@ $@( $" SUBPROGRAM SECTOR0@ ($,@ $62PP$@"`2 Lr _0 }D@2@ @ @P @P@B@ @ @ ȶ Read filename@2ҽ B!Which file do you want to rename?@ 2ܶ@ 涎Check for no entry@B>׳@ " changed or not in drive--Remedy situation,@"> Band press CONTINUE.@ " @ @ Ƹ V@ п!8v@  ڛ@ $@ @> B/ERROR--This is a non-existent file. Try again.@0> !B"(You cannot RENAME  N@ "!P @  "$@ "@ "@> "B/Disc changed or not in drive--Remedy situation,@"> "ěBand press CONTINUE.@ " "ν@ " @ "⸎ F@ "!6 @  "$@ #@ # @4 #B&ERROR-^  C"0*!6">BDgFector0_decGcector0DibISector0Sector0DirstartDirlenEntries Sector0_decSector0DirIDFNReal@ $J Make sure file$ is ok@ "@  @ "1-2@ , @ 6 @ B@JRead new filename@.T BWhat do you want to name it? @ .^@ hCheck for no entry@r BD׳@ | a purged file.)@ 0 ! @ ! N@ ! !:@ !* @ !4 F@!>!>R@ !H@ !R@ !\$@> !fB0This is a protected file. You must include the @(>!pBprotect code to rename it.@ (!z@ ! -Duplicate filename. Try again.@ 4 # @ #( >@ #2!8 F@ #<$@ #F@ #P@6 #ZBERROR--B is a non-existent file. @@6#dB2Try again! (Note: You cannot RENAME a purged file)@ @#n@ #x 6@ #@4 $T(Subprogram to read info from sector zero@ 4$^" $h% )!@"$rͻ@ $| @ $@ $Find directory start@ $ ӄՅղ@ $@ $Find directory length@ $ ӈՉղ0H 0"0J, B 40DBP0Vd0Pn Bz0 v @(le RenameJbename_dec File$ Read_nameAscign Assign_RenameRename Rename_decFile$ Reai  @ @  @   @  @ @ ¶Print new catalog@ Ѳ@ ֶ@, ׶ All done, return to main program@ ,궎@2 & ERROR ROUTINES FOR SUBPROGRAM RENAME@ 2(   >@ !$@ !@ !@@ !BEncountered error #B. Aborting program...@ @! Restore typing aids@> !(@ ٵ#,K#LOAD KEY @>!BEND OF PROGRAM.@ !ʽ@ !Թ@ !޹@ ! $@ #@ #@D #BEncountered error #B. Aborting program . . .@ D #  Restore typing aids@> #(@ ٵ#,K#LOAD KEY @>#BEND OF PROGRAM.@ #@ #ȹ@ #ҹ@ #ܹ@# [=[[# ogical Interchange Format standards@ 4'춎@ '@ ' @P@P@' @ (. (  Allocate sector for volume label@.(%@ (" ((Read the volume label@"() Ӳ@<(* RE@ ),* )6Encountered error on PHYREAD@ *)@ @ )J!Tf@)TRno@ )^@ )h@)r!P泎@ )|$@@ )R1Disc changed or not in drive-Fix, then press CONT@ @)@ )@ )@B80d0  }"0$ . 28Cdir Lif_fidenameNaee_decAd File$0FNLif_filename$IDir Lif_filenameName_decA$File$J,@ & & @@ @ &*'B@ 'LX@萳@"'VX@萳@""'`X@ꐳ@"'jX@萳@ 't@ '~@* '******End Of FNReal****** @ *'@ '@& ' FUNCTION VERIFY_LIF MOTE% program won't work with SRM@ < (+$@H (,!"2ERROR -- this program is not intended for use with@*H (-RShared Resource Management.@T* (. (@ٵ#,K#LOAD KEYR Restore type aids@ T )REncountered error #R. Program aborted. . .@ B) Restore typing aids@ )$@> ) (@ٵ#,K#LOAD KEY@ >)½@ )̹@)ֹ@2) %****End Of Function To Verify LIF****@ 2)궎p@ $¶@ $̶Find # of entries@ $ֶ@, $ඎ For each sector in the directory@,$ *@  $ @ $ Read sector@ % ͻ@  % @( % For each entry in the sector@( %&@  %0 @, z!@ &4B@&>B@&H"@ &RٵB#,WȤ@ &\ @ &f γ@ &pB@ &z@ &@ & A$[1,1]@ & A$[2,2]@  &@ &j@ &@ &@ &'@ ''D@,(40jF0 0Z1"0* B L0< F BV @(2*`Ddjpebify_lifGdif_decSector0Phyre P(/@ (0@(2 @(<ͻ@ (F @ (P@ (ZCheck for L.I.F. ID@(dǵP@@(nRno"set flag@(x"exit@(곎@&(Check for HP/3000 constant@&(ǵA@ (Rb%: Look for end of directory marker@, %Dȁ@  %N @0 %X $Calcualte number of entries and exit@0 %b 萳@ %l׶All done@  %v @ %@ %H@% γ@ %@ %@& %No end of diSR@. &ʽ !*****End of FNLif_filname***** @ .&Զ@ &޶@$ &趎 FUNCTION FNReal@ $&@ & '@F 0g0 } 0f 9adBasic@ Lif_error FNVerify_lif$ Verify_lifLif_decSector0PhyreadBasic Lif_errorLif$String1$String2$StBasicMsi$FNMsus$R@ 'ζ@4 'ض(Subprogram to verify that media conforms@44'ⶎ)HP's L 5no"set flag@ ("exit@(Ⳏ@" ( Check for zero constant@" (ȇǀ@ (Rno"set flag@ ("exit@ (渎ڳ@ ( must be L.I.F.@ (Ryes"set flag@ )"exit@ )@)@)" rectory marker@&% 萳@ %ƶ@. %б"****End Of Subprogram SECTOR0**** @ .%ڶ@ %䶎@* % FUNCTION FNLif_filname$@ *%@ & & P@  J E eaFNRealDbealHiBdoRes@ @ /0FNRealRealHiLoResReal_dec}@ '@2 '&Function to change two integers into a@2'$single real number.@ '. '8@  [=[[@ )@( ) SUBPROGRAM NOT_LIF@ (*@ *PP*F  r0 B  B @($N*h.Hctring1$Hctring2$EbasicSt@ X@  *ƛ@ *б@  *ڶ @ *䶎 *@0t ` v\0 } e LineLifeWNIAb@ @ )v @ *LineLineWNIJ:Page***@26,B&****FUNCTION TO FIND SCREEN WIDTH****!@ 2,L@ ,V@,`nn0zF@$@$@$FNWidthWidth"@ ,j@  ,t@ ,~ 6س@ -<@8 -F, SUBPROGRAM TO SET UP THE OUTPUT TO KEYBOARD@88-P, TO TURN OFF TYPING AIDS IN BASIC 2.1 DURING@8-Z PROGRAM EXECUTION@ -d@ -n@P@P@ -x@& -1x4Not_lifNot_lifString1$String2$BasicStBasic @,*&!Routine to handle media that does@$,*0not meet L.I.F. standards@$*1@P@P@*2@ *:$@D *D!".This media does not X@ * @ +`@ + R*@ +>@+ R @ +*@ +4R*@ +>@ +H@  +R @ +\ +f@@ F  w0  @ ,@ ,@. ,"****SUBPROG TO CENTER STRINGS****!@ .,@ ,@,@ vn {   FzCenterC$YWFNWidth@ ,Ӳ z!P1!X@&&-1!X1!C@.&-ٵ#,K# SCRATCH KEY@ .-@ - SUB TYP_AID@ -PP@-(Pnl 0YYmeet L.I.F. standards and @0D*NR!cannot be used with this program.@$0*XRProgram aborting . . .@T$*b(@hٵ#,K#LOAD KEYQ Restore type aids@T*lREND OF PROGRAM@ *v@ *@2 * &Q} *,d$ Last_half First_hadf9TitleTitleWWord$ Last_half First_halfIJ V@ +p @ +z ꐳ@ + N@ +ꐳ@ +`@  @ ,Λ @,ر@ ,ⶎ@ ,춎@( ,****SUB TO CLEAR SCREEN****!@ (-@ - @-nn |@$@$@$@$Clear z\ *6DJRX`FNMsus$ Msi_address Device_type Unit_code Select_code Prim_addressUnit$Select$Prim$Device$Msi$@B-6 This function returns the Msus. The code is secured.HR*****End Of Subprogram Verify_lif*****PP * vn uZ0 } @ rSStarStarWI@@ * @ *س@ *R*@ *+@ +@  + @ +R*@ +@+ԛR @ +޴@ +@ +@+R @ ,ҳ@ ,R*@ ,@  ,$ @ ,. @6 ,8+***End Of Subprograms To Draw Title  @ -ٵ#,KK@-(-2zjPv R }X0 B  B@ E(idTyp_aidBctString!$String"$Basic@ (Typ_aidTyp_aidStString1$String2$OB-!!!!!H-Q0됶 $FFFFCF76H-A&bH-A&bH-A&bH-A&bH -H .H .1&H .2H."TH  .,H .6L"0H.@H.J [=[[Z /-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBN6@ H @ @jK @8&0 60(5(@"QP05@08@ T05blP p@ z00F5@ [|0:@ ]050r2^@ a@ d4 }rH /l B: B,H /vH$ / B: B,B,H$ /H /H  / H /B .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah r!B  V5"A  Ae! A(( A2e 6 A<> AFdF AdP Ane5V0 ` t  zj b L 0 " $ & (1J * @ e0X5@ g@ h@ i@ j*@ kF@ R@ mX@ nV0b`@ pj0vNew_sfb Filenames$ FileinfoInitrun First_infoptrInfoptrCreatedSavelastSwaps SwapsleftMessages Contmess$ Checkread dH .TހH .^ 2INTERNALH .hބƳH .r 2HP9895H .|ޅH . 2HP8290XH .ކ(H . BHP9885H .އrH. . BHP913X OC|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g j\, <. $00   21@ 4$0 >.: e5F0e!V`e jre5e!e dȠe5ҠNE VOLUME - 5 MBYTESH. .ވH0 . BHP913XB ONE VOLUME - 10 MBYTESH0 .̻޵!H . BCS80H .޵!4H( . BHP98255 FUTURE - EPROMH( .޵!|H* . BsPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<N @ B H NXbfjv CatA$DstartDleng Num_files   ! @&,   ! @& Ҵ @  ! ȵA ȳ@  ! ȁ@ ߸@  ! ȿ@ 繳@  !  ǵ  @  @ ׳  @ ֽ$@ ӈղError @>ӂղ)Remedy error condition and press CONTINUE@ >@ @ 䱶  @@ <rLnfSector0Dstart Disp_swapsL_recordProgramAllocateType Insert_masterLoadsubFNTrim$File$Search$ Cat_masterFbackup1 Err_master Input_files ReallocateCall_catCatmSectorEntryMaskloMaskhiIAErrorError Entry_ptrFiletypeEodEod Next_entry Next_entryFilename Start_address FilelengthB Creation_timeVol_info Protect_code Log_rec_sizeFNLin$ %@!!!! !@ FȵA@ 1%@ ! ͻ@ ǀǀͻ@ ǵ****@ @ Džǿ@ @  ͤ@ ͤ@  ! ȿ@ @   ǁ! 0  0FNLin$XIEol$R$@ !@ 񷤳! @ ! @ @  A@*B@4A@ >@ HA@ R@ \ [=[[He5@"@"e!P @"@"e5 @"$P .@ :@ !e5F@ "P@ #e!V@ `@ e j@ r@ '@ (e5@ )@ *e!@ +e @ @ d@ /@ 0e5@ 1 sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNJ@"VP ^@ l@ BxP 5P @ EP 5@ @ HP 5P @  I"Ftype[NNV/. /.NN^ _PNNV-xJ-n n!mֈC!IC+IֈN^NuNVp xnNN^NuNV-n-n n-PR N^ _XNNVf/-/Hz6+OJ-g;|6.mNu|Ax+Hb mb1|j-xJt-ntpUN np0-xl"nl)rg;|NfJ׎g/-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<N-_!` nLHA.+HBNF@ >" <x < =KP 5@ P @ OP 5(@ Q4P 5@@ L@ TXP 5b@ lP p 8z@ P 5@ [P @ ]P 5P @ @ @ @ cP .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Aht ,P @"@"5@ @ e! @ (@ e 6@ >@ dF@ P@ e5VP `@" t@" e5@"j@"e!@"@"@"e5@"@"e!@"@"e @"@" %@ eP 5@ g,$2:@FJPo InitrunMfirst_info`trInfoptbCreatedHcavelast5wCInfoV-File$DstartDlengStrtStpLrecsL_rec_l C|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g [=[[p xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBN>@&zvz 6@ @(<~^   B`@ $*2B89< B J R \B`^@`fZ!@!E@2CAT @ղ@"%&@,6 *@@숰!@Jղ!@  Tǵ2ASCII񎷳E@$ ^ǵ2BIN񎷎A됳@$$ hǵ2BDAT񷎷A됳@$$ r?@ƽ t  .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah\pz0@&!  anfoFile$Dstart   InfoFile$DstartDlengStrtStpLrecsL_rec_lFtypeA$FilesAddressLengthL_recordIJTypeNumgǵ2PROG񷎷A됳@&$ |ǵ2SYSTM񎷳A됳@&  ǿ@  ǿꐳ@  ǿ@  ǿ@ A񎷁ꐳ@  ꐳ@ 񷐳1@ @﷐萳@ ๳@ (? C|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g [=[[~ e@ ׳@Ҹ聳@ 򎷳A@  萳@ 𸎁萳@  萳@ @ 򷐳@ 6񷐳@  T@ ^@ h"#萳@ i@r@|* *@ *@ @ @ @ @ ͻ  ǁ됳@  .@  ͻ@   @ @ ׳@@@ .@ ͻ@ Խ @ @  @  ׳ % *@ .y@  8  @ B  @ L(j1d  $$,d06~d@@ H@ J@ LP PpeDlengDsdartNewaddrErrLogp Filenaee$CreatANumrecsLreclFtypeDlengDstartNewadressATypeLengthAddressLeodMaxsizeNeeded_recordsSector Space_found Leod_entryMaskhiMaskloEntryOffset First_emptyI Empty_sector Empty_entry Empty_addr Save_sector Save_entry Save_addrZero Filename$File$ Prev_addr Prev_length Decod ͻ@ @ !쐳@   ǁ೎@  >%@ H & ղ@ R!&!ղ@ \ ! ǀ@ p@ z׳@  賎@ ǀ@ ǀ@ @ @ @ "#萳@ ʹ@ @!쐳@ ,@  @ ǀ@ @ ǀ@ @! 򷳎@ ǀ@&ǀ@0! ǂ!萳@: @D! ǀ@N!@X! ǵA @;drErrLoop Filename$Create?@> ,0d>D4n  _*_08> J Le_name Decode_nameFNTrim$L_eodL_eod Create_entry Create_entry Convert_name Convert_name Error_write Error_writeDummy@ T % ! ! ! !!@ ^!!!!!!@h!!!!!!!@r!!!!@| @ ! #萳@@ "#@B "#@ L됳@ V@ `@ j@ "# 󎷐@ @ @ @   "#ꐳ@ι@ع@ @ " ǐ@# ǐ@ dz@ b@c ! ǀ@$dA!! ǵ1@$$eA!! ǵ1@$fA!@gA@ h! ǀ@i!@ l! 퐳@m@o@v@@  . R Z _h_bp __ __   $"*#4$@ @ !@ 1됳@1@  @  @  @ @ @ 됳@ @ @ @ @ "萳@ #@ @ @ &@ 0 !!Bꐳ@ :@ D됳@ NA  " ǐ@# ǐ@@(@ 2@ < dz@  F@ P@Z (@d (@n (x( *@ **@*@ @ ׳@@"#A򷐳@  @  ͻ@  ǽ @ !׳@ 1@   ǀ@ 򷳎@ !Bempty@  @  ,@  ǁ됳@   ͻ@  H@ R׳@\ͻ@ f!쐳@ p!Bempty@  z,@@%L&X`f)l*z+,-/&!Createfame$Num_becsErr CreateName$Num_recsErr L_rec_lengthFtypeDstartDleng New_add賎@O1@P@  Q@ R@ X萳@Y@ [쐳@ \1賎@ b1萳@c1@ d1萳@e@и1@ @ @萳@ [=[[A .@  $@  !S@4 !"Backup disc is write protected@84 B)Remedy error condition and press CONTINUE@ 8 @  )@  ›!"Error @8 ÑB)Remedy error condition and press CONTINUC|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g l0DZapSectorIZapFNPage$FNMsus$Msus$ Msus_err Re_msus! 9/23/83@!!%@@@ (@ 2$@ <2@HFӲ!",This program will 'RE-IN*E@ 8 Ľ@  Ź@D ƛ!". p@"D ǑBDO NOT REMOVE DISC!!@ " Ⱥ@  ʱ @ @ l| 0 sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBN@n% clear screen@\* !"FThis program is not intended for use with Shared Resource Management.@ \ $@ ׳@@Ƚ @ (@ ܽ @P 曁!": @VP賎@  V  `, *@ t賎@( ~!!! @(  ! @   Lj@$ ! !! @"$   ! @"  @   R@ 2  x .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah VDn@ @ @ @ Zap @  *vr \ ! "  "@ E(0"2@ E<0 [=[[l  H*  BHP98259 FUTURE - BUBBLESH* Ի޵1H  BREMOTEH ޳H  BUNKNOWNH  H(  BUNKNOWNBUNKNOWNH&( 1LH&  B: H $H NNV/. /.NN^ _PNNV-xJ-n n!mֈC!IC+IֈN^NuNVp xnNN^NuNV-n-n n-PR N^ _XNNVf/-/Hz6+OJ-g;|6.mNu|Ax+Hb mb1|j-xJt-ntpUN np0-xl"nl)rg;|RR!I@T!">ERROR: bad device type in MSUS--try again. `@TR!Hn@R!" 2HP9895H HޅH R 2HP8290XH \ކ(H f BHP9885H pއrH. z B CERROR: bad mass storage specifier--try again.  `nn0 "P"P"P"P"FNPage$ @Xٵ#,KK@b2@l @v(@nl 0 YY HP913X ONE VOLUME - 5 MBYTESH. ވH0  BHP913XB ONE VOLUME - 10 MBYTESH0 ޵!H  BCS80H ޵!4H(  BHP98255 FUTURE - EPROMH( ޵!| sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<NERROR: bad mass storage parameter--try again. e @T»R!N@V̛!"?ERROR: bad mass storage volume label--try again.  @Vֻ\ *6DJRX`FNMsus$ Msi_address Device_type Unit_code Select_code Prim_addressUnit$Select$Prim$Device$Msi$@B6 This function returns the Msus. The code is  [=[[-HB.cB.bJ.bf@/-/Hz+O n^0S@@2{Nf-nZ"nZ#h >|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g^ B<E0&B000`0&0;P00  BF$ B@ 'E.0f@ )E8@ *E8T7^=@ .E>0v0|lO@2 'Remove typing aids until end of program@2@P%@P@(@͐@ @T(@! )- Test statement to check for basic 2.1 or 2.0@ T @ (@"Ѳ@ @  aor use with Shared Resource Management.@\ o&-Ӳ@  q@ r@v @ &(@  @ @8 2*INSTALL THE PROPER DISC AND PRESS CONTINUE@ 8$@ @ @D 2$DO YOU WANT TO INITIALIZE THIS DIS/-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBNC@v|Pb^aasicInit Direct_lenAns_yesMsi$ReturnAns_noTyp_aidMsusIdle2 Phy_errorString2$ E Error_idle Vol_labelFNWidthContinueStartIdle3FNMsus$ @6** 7-29-82 ** :  ղ@Ձղ@  2MASS STORAGE MEDIA@   ղ@Ձղ@ 2 INITIALIZE@  ղ@Ճղ@ղ@ ֶ /   @ @ &@< 0!"&ENTER THE MASS STOCAL INTERCHANGE F DON'T FIT@L  Ձղ@@  21FORMAT STANDARDS. THEREFORE, THIS PROGRAM CANNOT@@  Ղղ@@  21BE USED ON THIS DISC. E@@ * Ճղ@  4@ >@ H@ R@6 \0b7> B!AZ A ^V 2`"3b(B.440:8@0L X0fbl.p:|0v0 n\00(****@ 6@ (@$ 2 l INITIALIZE@ $<@ F@ P@2 Z' Appended binary--PHYREC FOR BASIC 2.0@"2d  REV. A@6"n***@ 6x@  RAGE UNIT SPECIFIER.@.<:!" (Default is -Ӳ".)@ .D&"@ E&2&-Ӳ@Nٵ#,KK@"b&:&:&@ "l@ m&REMOTE x@\ n!"FThis program is not intended fw2'DO YOU WANT TO CHANGE THE VOLUME LABEL?@6f:SOFTKEY DISPLAY@&p2Y : CHANGE LABEL@ & zѲ@* ٵ#,KK< CLEAR SCREEN@* <AND EXIT@$ J:OTHERWISE JUST EXIT@*$ ٵ#,KK< CLEA [=[[ Z!2-ERROR: BAD DEVICE TYPE--IS DEVICE ON LINE???@H Ƹ޳@  н$@L ڛ!22ERROR: DISC CONTROLLER NOT FOUND--DEVICE ON LINE?@L 乳@L !21Put device on line and press FIXED, or press MSUS@HL  L 8@  B@  L  V+PP @ `  r6 ~6 v B!A0 B $!A , 2080>JLKK@ @$ ͻ9READ VOLUME SECTOR@ $@ $@ Ķ@ Ѳ@ ض@ Ѳ@ 춎@ @ @  @  2YA SOFTKEY YES@ (@ 2@ < F @ »!4ij@6 B'ERROR: BAD MASS STORAGE UNIT SPECIFIER@6  Ձղ@ B TRY AGAIN!@  Ճղ@   @ !I0@4 B%ERROR: BAD DEVICE TYPE -- TRY AGAIN.@4  Ձղ@  &  !2.to specify new device, or press EXIT to abort.@H FIXED@  MSUS @ EXIT  22@ *@ 4!P~@  >$@ R Ձղ@6 \B'Remedy, then press conti2:v0R V\$ bl8|@ FGcector0Flag$VolTranslLabed$LabelEdemp$Inp Vol_labelSector0Flag$VolTranslLabel$LabelTemp$Input Blank_checkIJOkC$Flag Translate TranslateClearCenteD2NA SOFTKEY NO@ P@ Z@ dN n@ SOFTKEY DISPLAY@NxYES@NO @EXIT ##@   @@ 0!H@< 2B.ERROR: DISC CONTROLLER NOT FOUND -- TRY AGAIN.@< 3 Ձղ@  4 @ 51"@F 6B7ERROR: BAD SELECT CODE OR DEVICE SELECTOR -- TRY AGAIN.@F 7 Ձղ@  8 @ 9 nue. @6 f Ղղ@  p@ zԲ@ @ @B BENCOUNTERED ERROR #B. PROGRAM ABORTING...@B  Ձղ@ &-Ӳ@  @ @@ ʶ@ Զ  @ $@ r ##Ƴ@  j@  t@  ~@ %@ @%@ @@@  @  @  @    @ B @( ؽ BENTER SCREEN@ * @ @ @( ʸĶ8IF YES TO INITIALIZE???@ (Զ, ٵ#,KK? CLEAR SCREEN@ , @(  9CHECK FOR NO INITIALIZE@$(9LET USER CHECK CATALOG@ $@ @> 20CO1`@   @ @@ҹ @ 涎@  ! @ Բ@ $@ !PZ@4 "B&ERROR: MEDIUM CHANGED OR NOT IN DRIVE@4 , Ձղ@* 6BRemedy, then press CONTINUE.@* @?@B ;BENCOUNTERED ERROR #B. PROGRAM ABORTING...@B D Ձղ@ E&-Ӳ@  N@ O@ l@ v Բ@  @ !T!N@!I!Hܳ@ !I@  $@H  rBMASS STORAGE IS &@  Նղ@   Restore typing aids@>  (@ٵ#,K#LOAD KEY%@> BEND OF PROGRAM.@  $@L  . >   END MAIN SECTION@ sNTINUE ONLY IF IT'S OKAY TO PURGE THESE FILES.>$@.OKAY(@8RESTART/@BEXIT  L00 V(@ `ٵ#,KK@ j t&@  ~ @ @ ٵ#,, Ղղ@  J@ T$@ ^³@F hBENCOUNTERED ERROR #B. PROGRAM ABORTING . . .@F r Ձղ@  |@ @ .  !ENCOUNTERED ERROR ON MSI STATMENT@ . @ Բ@ $@  . [=[[D UPPERCASE @> Ղղ@> B0LETTERS WHERE THE FIRST CHARACTER IS A LETTER. @> Ճղ@  @  "@  ,@  6@  @@  J@  T @ ^ B  @: h BA BZ B0IvB,  $ . B!A "$abel$LabedIC@ @ / TranslateTranslLabel$LabelIC Direct_len ###@  @    \@  f p @* zA'됶9SET FLAG FOR NULL ENTRY@B* B1ENTER THE DIRECTORY LENGTH. (DEFAULT: 14 RECORDS)@4B A'!9CHECK FOR NULL ENTRY@4 &@  Բ@ $@2 B IS AN INVAL2@l X@d  ,., @!A$FdransfLefgthLenDdemp Verify_lif@ / TransformTransfLengthLenTemp Verify_lif ##_R THE VOLUME LABEL.@"(  9PAD WITH BLANKS@ " 춎(  CHECK NEW LABEL FOR BLANKS@( ֳ@  B ij@  @  B @  ( Բ@  2$@>  <B0IMPROPER LABEL. A VOLUM B9޳@ : r$@  | Բ@>  B0IMPROPER LABEL. A VOLUME LABEL MUST HAVE 0 TO 6@> Ձղ@> B0CHARACTERS, CONSISTING OF NUMBERS AND UPPERCASE @> Ղղ@> B0LETTERS WHERE THE FIRST CHARACTER IS A LETTER.Z@  @%@  @  @  @ 𐳎@  @ Lj 萳@ ڴn@  䶎@J  >  ' END OF SUB TRANSLATE@ J   ID DIRECTORY LENGTH.@2 Ձղ@  @  Թ@  ޶@  趎@.  Q9WON'T FIT IN ONE ENTRY@. !@  Բ@ $@J  B;YOU CAN'T HAVE A DIRECTORY THAT LARGE WITH L.I.F. FORMAT.@J $ "E LABEL MUST HAVE 0 TO 6@> FՁղ@> PB0CHARACTERS, CONSISTING OF NUMBERS AND UPPERCASE @> ZՂղ@> dB0LETTERS WHERE THE FIRST CHARACTER IS A LETTER. @> nՃղ@  x@ @ f@  0 @> Ճղ@  @  ̹@ ִ x@  ඎ@  궎$ Ѳ>TRANSLATE TO ASCII@ $ @$  ǀǐ9TRANSFER VALUES TO@$$ ǁǐ9VOLUME LABEL ARRAY@$ ǂǐ@  &@  0@&  :ͻ9WR  @ vf* &B B!A @&!A .02::,.BL ^V8Zn Sector0Eflag$VolFdransfLefgthLenFanput :( Ձղ@  .@ 8@H B Ѳ9 PUT IN 2 ASCII ENTRIES@&H Lǀǐ;ENTER IN VOLUME LABEL@& Vǁǐ@&`ඎ9OR IT FITS IN 1 BYTE@$& jǀ;ENTER IN VOLUME LABEL@ $ t@ ~@  @ @ :@  @:  AZ6<CHECK FOR BAD 1ST CHR@: Ƚ$;OPPS@  Բ@> B0IMPROPER LABEL. A VOLUME LABEL MUST HAVE 0 TO 6@> Ձղ@> B0CHARACTERS, CONSISTING OF NUMBERS AN-ITE VALUES ON DISC@ & D@H  N<  - !END SUB VOL_LABEL@ H XF  b8 ZTRANSLATE TO ASCII@ F l @ v6  n1C Direct_lenSector0Flag$VolTransfLengthLenInput1Clear Transform TransformC$Center ##x#@  @  @  *@ %@ 4%@ > @@  H@  R@ K@& ͻ9READ LENGTH ONTO DISC@ &@ @J ?  / END OF SUB DIR_LENGTH@ JL  > :PUT # IN 2 ASCII ENTRIES@ Lζ  [=[[HW & *,d$ Last_half First_hadf9TitleTitleWWord$ Last_half First_halfIJ P@ b @ l ꐳ@ v N@ ꐳ@ ` A8NcenterCd YWA$@ @ @ @ @ INTEC$YWCenteri@*ʶC$ IS CHAR STRING TO BE PRINTED@"*ԶY IS Y COORD ON SCREEN@"ށ@ @ ZL d> @ MAKE SURE IT'S A LIF DISC@ Ln@x|tn . B!A A"& A,!A s@ |9END OF SUB VERIFY_LIF   vn 2`0 & K @ rSStarStarWI:@  @ س@ B*@  =@ @ @   @ B*@ @ƛB @ д@ ڛ@ @B @ ҳ@ B*@  @   @  @8 *-****End Of Subprograms To Draw @@ @ @0 %*****SUBPROGRAM TO CLEAR SCREEN *****@ 0@ $@.\nn :{aUQ{aUQ{aUQ{aUQClear d4@ 80B@ |f Sector0Eflag$VolCdifLifTranfLength LenNot Verify_lifSector0Flag$VolLifLifTranfLengthLenNot_lif ##"#@ @ @ @  @ ±@  ̶ @ ֶ @0t ` 3b0 & e LineLifeWNIAb@ @ v @ *LineLineWNIJ 2 Title Page****@ 84@ >@8 H-**FUNCTION TO FIND SCREEN WIDTH**@ 8R@ \@f nn07FAAAFNWidthWidthR2@8ٵ#,KK@BLzjPv R ;P0 B< BF@ E(idTyp_aidBctString!$String"$Basic@ 'Typ_aidTyp_aidStString1$String2$#@ %@!@!$@ @ @4 ȶ( check id word (should be octal 100,000)@ 4ҀǵP@> @ ܶ@0 涎% check octal 10,000 (needed for 3000)@0ǵA @ @ 궎 @ `@ B*@ >@B @ @ &B*@ 0@ :@  D @ N X@@ F  40 2J@ p@  z@ @ @ @6 +**SUBPROGR TO CENTER STRINGS***@ 6@ @@  D |P  E@" ೎@ V@8 `, SUBPROGRAM TO SET UP THE OUTPUT TO KEYBOARD@88j, TO TURN OFF TYPING AIDS IN BASIC 2.1 DURING@8t PROGRAM EXECUTION@ ~@ @P@P@ @& 1!P###@ ⶎ@ 춎@ %@ @  @, P@𐶎9FIND UPPER ENTRY@*,P@9FIND LOWER ENTRY@"*(QP@ꐳ@ "2@ <@ F@ P @(  check for zero in dummy word@(ǀ @ @ " disc is okay!!@,9SET FLAG@6 9return@ @@ J$ T fails to meet criteria@$ ^;SET FLAG@ h@ r [=[[!!!!HQ0됶 $FFFFCF76HA&bHA&bHA&bH A&bH H H (1&H 22H<TH  FH PL"0HZHd dujB: B,H H$  B: B,B,H$ H H   H ½F  .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ahq   "`&, b48@ F B J BTZE^0*dj@ Er0zWord$WStarLineTitle Verify_lifLif$FNWidthYH nހH x 2INTERNALH ބƳH  2HP9895H ޅH  2HP8290XH ކ(H  BHP9885H އrH.  BHP913X ONE VOLUMC|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g1>C$CenterClearStString1$String2$BasicBasicTyp_aidEnding @4)** 7-29-82  **/@ 4@ (@ 2@$ < VERIFY_LIF@ $F@ P1!X@&&1!X1!C@.&ٵ#,K# SCRATCH KEY@ .@  SUB TYP_AID@ PP@(@nl 0 YY\ >E - 5 MBYTESH. һވH0  BHP913XB ONE VOLUME - 10 MBYTESH0 ޵!H  BCS80H ޵!4H(  BHP98255 FUTURE - EPROMH( ޵!|H*  BHP9825sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBN~@B,8  [=[[6 Wd `  "0  &e LineLifeWNIAb4@ @ v @ *LineLineWNIJV@ Ķ @ `@ ؛2*@ >@웵B .B$PB$PB$PFNWidthWidthF@ @  "@ ,@ 6@ @@6 J+**SUBPROGR TO CENTER STRINGS**R*@ 6T@ ^@hn@ bvnnz>@. Z" Appended Binary--PHYREC Rev. A@$.d for BASIC 2.0@4$n)**v*@ 4x@2 'Remove typing aids until end of program@2 @P @P@(@͐@ 6 BASIC. @>  Նղ@ @   Բ@ $@> &2/This disc fits HP's Logical Interchange Format.@> 0 Յղ@:@ D@ N X @b1~@  l @ v@@done@<@&Check for HP/3000 constant@&ǵAz@ 2no"set flag@ ׶"all done@4@"  Check for zero constant@" ʇǀ쳎@ 2no"set flag@ ׶"all done@ 踎, @ @ B*@  @ @   @ ( 2\@@ $F\  0  &*,d$ Last_half First_hadfo@T(@! )- test statement to check for basic 2.1 or 2.0@ T @ (@Ѳ@ 涎@ Print title page@@.@P@Ӳ@*ٵ#,KK# Clear screen@ *}@ @ @  Restore typing aids@ (@U$ٵ#,K# LOAD KEY @@2END OF PROGRAM.@  End of Main @ ƶ@ ж@( ڶ SUBPROGRAM VERIFY_LIF@ (䶎@  @  must be L.I.F.@ 2yes"set flag@ @@@$ Return to main @ .@ 8@. B# SUBPROGRAMS TO PRINT TITLE PAGE@ .L@ V.P ` v :TitleTitleWWord$ Last_half First_halfIJ @ < @ F ꐳ@ P N@ Zꐳ@ d`@ n@ x@   @ B*@ @B @ @ "ղ@,Ճղ@062!VERIFY LOGICAL INTERCHANGE FORMAT@0@ղ@JՃղ@Tղ@ ^@ h@@ r22Install your mass storage media and press CONTINUE@ @|@ @ @  PP.P vBn< `0 1"0ify_ Verify_lif Verify_lifLif$Sector04@&Subprogram to verify L.I.F.@ &  Zn  0  v@. rSStarStarWI@ j @ tس@ ~2*@ @  @ @   @  @0t@ @ @țB @ Ҵҳ@ ܛB*@ 汳@   @  @8 -****End Of Subprograms To Draw Title Page****@ nn0;ղ@ @ 2no@   Բ@ ½$@> 2/This disc does NOT fit HP's Logical Interchange@>  Մղ@> 2/Format standards and should be reinitialized @>  Յղ@> 2/before it is used with 982=@ @4  (Allocate one sector for the volume label@4*%@ 4@ >Read the volume label@ Hͻ@ R@ \Check for L.I.F. ID@fǵP@@p2no"set flag@z׶"all  [=[[.FPROGRAM TO CLEAR SCREEN *****@ 0¶@ ̶@\nn JVgJVgJVgJVgClear >@ٵ#,KK@걳C|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g  P  @ PP Q@ ?:0J.,te5FPe!V.e j@ &E`e50"r@ +@ e @ @ d@ 0e5@ 1RPj f0(idTyp_aidctString!$String"$Basic .Typ_aidTyp_aidStString1$String2$Basic@ @8 , SUBsPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPN0&062B@@ >J$2V0^1:l@ BxP 5P @ EP 5@ @ H0B5P @  PROGRAM TO SET UP THE OUTPUT TO KEYBOARD@88, TO TURN OFF TYPING AIDS IN BASIC 2.1 DURING@8 PROGRAM EXECUTION@ &@ 0t@P@P@ :@& D1!P1!X@&&N1!X1!C@.NNV/. /.NN^ _PNNV-xJ-n n!mֈC!IC+IֈN^NuNVp xnNN^NuNV-n-n n-PR N^ _XNNVf/-/Hz6+OJ-g;|6.mNu|Ax+Hb mb1|j-xJt-ntpUN np0-xl"nl)rg;| NfJ׎g/-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<N-_!` nLHA.+HBN9&@$2 Z##T@KP 5@ P @ OP 5(@ Q4P 5@@ L@ TXP 5blP p@ z@ P 5@ [P @ ]P 5P @ @ @ @ cP #N    !mֈCCenterC$YW@*rC$ IS CHAR STRING TO BE PRINTED@"*|Y IS Y COORD ON SCREEN@"@ @@ @ @0 %*****SUB.WP&Oٵ#,K# SCRATCH KEY@ .X@ b SUB TYP_AIDX .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah # B,0 $2 B.6+@Pe5V0 ` t  j0F j0J B"VN> >3N *  [=[[$ @)@F@P *@*Zdt%(!)!dv!dw!%!/!!@"*d'!"!!!dx! ! !!!"n6 *@6x 2'Do you wish to enable CHECK READ? (Y/N)@ 6 2Insert MASTER disc@$ 2Reading master disc...^(@! *4 test statement to check for 2.1 basic or 2.0 basic@ \h @ r(@Ѳ@ | ; *@2CAT @ /@ dz@ d{@ d|@ d}@ dv@ dx@ &^ Mastermess$Mem Donotremove$Typ_aidMsi$ Inputmsi$FNMsus$Err_srm Readmaster$ Finished$ Othererror$ HeadingR$ Integer_var CheckreadAgainAvailmemLastoneErr_srmarning1$ Warning2$ Warning3$Sector0 Totalength BuffersizeRetry) CheckerrorOffsetFileaddr Filelength!Read_filespaceGet_direct_leng Err_routine  Directarray$ S@ $di2Insert BACKUP disc@( dn2Writing to backup disc...@4(2%Press CONTINUE when disc is installed@"42DO NOT REMOVE DISC!!@:"do2,Disc is being initialized; DO NOT INTERRUPT!@$:dj2Catalog of backup disc@>s !@ d I *@7Ӳ! @ $@ @ @ &@ 07Ӳ@:/dD *@NӲ@>XREMOTE*, program won't work with SRM@>b d@ldtͻ@ @ eP 5@ g0 Z, 4 @  J r V H` ,j x ~  P !$@ ~&|ʠzP ܀rjbZ@ ~&NumfilesStartStop Firstpass ConstantsFNPage$FNLin$,FNSpa$Initialization CheckreadIobuffer+FNUpc$ Compute_avail ProgramsizeComp_filespace&ReadEod Insert_backup Check_backupWrite_filespace Init_diskWarning " Check_eod FNCheckread Check_error Error_endAnswer$ $dp20This program will overwrite anything that exists@8>dq2*on the backup disc. Make sure you have the@,8dr2correct backup disc installed.@,dk2CHECK READ error@82)Remedy error condition and press CONTINUE@(8dl20 00@ @0"L@ pX@ nd1V0rP @ P @ 0A"J@ 0ʀN00@ o0:@ 00$@ ,@ 803#' Insert_masterHCat  Done0 h # FOR BASIC 2.0 OR GREATER 9/23/82$0   Complete disc backup@&$ @di@@%@dj@@(&(dk@dl@dm@'@ @'@,(2@dn@do@,dp@0dq@*dr@@,< 0** Disc has been copied **@6(dm2'Do you wish to copy another disc? (Y/N)@ 62 ** COPY DONE ** @ " Բ@ ,@4 6) Repress typing aids until end of program@4@@P@P@J(@͐@T @\gB(L08X@ d0!n:Rx@ b0A Fileinfo InitrunMfirst_info`trInfoptbCreatedSt DstartDlengIString1$ Error_writeDumString2$BasicBasicSwaps SwapsleftMessages Contmess$ Checkread$&[VTCbackup Backupmess$Catalog$ Checkerror$ Copydone$Another$ Writebackup$Init$ W [=[[ M v @ dtǐ@bP@萳@dtǵP@萳@dtǐ@P@萳@dtǵP@萳@ !@!Ed@ Vd'ղ@'쐳@dǵBDAT@.  B@ Ldzj@  V ꐳ@ ` 萳@ j~@  t 萳@ ~@2! "Disc exchanges remaining: @,28ӁղDisc exchanges made: @,dxd@/()萳@dvdwX@ )(dwꐳ@ dvdv 8d *@ $@ dk@ ƒ#@ dxzd@ dx@ I  *@ dx@ dI@*B#,K8ӵ! ղ:ӵ! ղdl@ *$@ dm@ & d@ 0?dղY*d@   @  p$@& z7Ӳ!"Error @ & @ @ @ @   *@ $@ ʿ!S!@4 ԛ!"Backup disc is write protected@ 4 ޑ@ @ !R@  !"Erro dvdǿdǿ1dǿꐳ@ . dǿ1vdvdv萳@ @ dvdǿdǿꐳ@ @dͤ@ %V&*< *@47Ӳ8Ӈղ@@>21CHECK READ is a process of verifying the informa-@<@ dwꐳ@ dvdwJd@ظ@  =ͤ@ )(dv萳@ )(1)=@  d@   *@(=ͻ( *@27Ӳ!di@ <$@ F@ P@ Z7Ӳd *@n/ :=ͤ@ D!@: N7Ӳ!"Insert BASIC Utilities Disc 1@ :X@ b@ l; v@1೎@   @ @@@   *@7Ӳ8ӵ! ղ@ ƽ$@ ж Resto 8r @ @ @  @8 $!"! @ 8 .@  8@  B  L *@ V7Ӳ@2 `Check Read error after 2 tries.@(2 jBProgram will not continue.@ ( t R H2.tion written to the backup disc. If CHECK READ@@<R22is used, copy time increases by approximately 50%.@ @\$@ f @ p @ z?ղY!@ 7Ӳ@ *@"2One moment please...@ "  8d@x7Ӳ@ d@ @  @ 8ӂղdj@BPress 'CONTINUE'@ $@   *@қ7Ӳ!dp@ ܛdq@ dr@ BPress 'CONTINUE'@ $@ @ 7Ӳ \re typing aids@> (@|ٵ#,K#LOAD KEY@ >  *@!T!N 2@  $@  Ӳ@B ! ",Backup disc is uninitialized. Initialization@  ~(@"ٵ#,K#LOAD KEY@ >    *@  $@&  7Ӳ!"Error @ & @  @  ĺ  * *@  ؽ$@F  7Ӳ!"*ERROR -- this prog #@  @ 1Ƚ%A@$#ղ@dw#1@ ԽAͤ@ !dwdw퐳@dw1)=@ 򑥳  *@ dvdw?萳@  쐳@   @ $ 됳@ .( 8 *@  d@ / " *@ ,@ 6 ꐳ@ @ 萳@2 J! "Disc exchanges remaining: @,2T8ӁղDisc exchanges made: @,^ @h(=ͻ@ r @ |7Ӳ@!d@dzd()=ղ@dz ely 3 minutes and will use@6< *Bdefault interleave for !"!"@<6 4B-Press CONTINUE when ready to initialize disc.@ < >@ H@F R6 NOTE: errors incurred here appear to be non-trappable@F \7Ӳ@f ram cannot be used with @*F 웵BShared Resource Management.@V* (@#Ȃٵ#,K#LOAD KEYP Restore typing aids@ V @  %'',0*)PP@  [=[[!! %Stars$FNSpa$FNPage$FNRpt$@  м!@  ڼ@P@( 䁉 DETERMINE SCREEN WIDTH@ ( 2*ղ*@  Ӳ@ ӵ2*ղ@ 2K,/,K@N B*! ղ"COMPLETE D! -ress DTyp_aidTyp_aidStString1$String2$;]@  ʶ@8  Զ, SUBPROGRAM TO SET UP THE OUTPUT TO KEYBOARD@88 ޶, TO TURN OFF!@  @ @ rn0&>  0 @ 0#:0FNSpa$XIR$a@ !@ A@ B@ @ ! @ ܴ!t@  @ @  ꐳ@ ¹@ 4@ 1"@ @  ͤ@  @  @ @ ҳ@ @  &ͤ@ 0@ :@ D %@ N! ISC BACKUP! ղ"*@ N @:  *2*ղPROGRAMղ*@: 42K,/,K@ >ӵ2*ղ@ HP@ R~ pr|np .  N 3! TYPING AIDS IN BASIC 2.1 DURING@8 趎 PROGRAM EXECUTION@  @  @P@P@ @& 1!P1!X@&&1!X1!C@.&$ٵ#,K# SCRATCH KEY@ ..@ 8!Գ@  @  @ b@@ Pv`nP0'R   00FNRpt$A$NIR$I@ !@6 ؀! ERROR: NEGATIVE REPEAT FACTOR@6 !P@ <rLn<0+$   00FNLin$XIEol$R$@ X!@ b! @ l! @ v@  A@ B@ ! N 3MemMemoryA$@ \2@ f2@4 p1!A" LIST 327661!X@4 zٞ1!K@, Don't delete this line (tempo) !@, !@  ۞@ @ ٞ1!= SUB TYP_AID@ BPP@L(@nl 0 YY\ *6DJRX`FNMsus$ Msi_address Device_type Unit_code Select_code!A@ F@ 4rDn40$2  0p"!.FNUpc$A$IR$m@ !@ ( @ 2 A@  <@ F *@8 Paz!  @ " A@ ,B@ 6F@ @ @ J$@  T@ ^ @ hp` THd T0(  " "$!2@  @ @  @  @ XTNDV N ,t@" @" &>%x&'R.FfNSpa$@ @ HeadingW! b!K@     0J08 B B@ E(@ p xfY/<N-_!` nLHA.+HBNb,@#Bg """:܀@0` <05(0!h05@08 AD0j5bXXpZ^0N0@5 Bl>0 ~40 50F2zt d6#B\ " Prim_addressUnit$Select$Prim$Device$Msi$@BV6 This function returns the Msus. The code is secured.HB`!!!!!HjQ0됶 $FFFFCF76HtA&bH~A&bHA&bHA&bH "  BUNKNOWNBUNKNOWNH&( 1LH&  B: H H H  B: B,H H$ " B: B,B,H$ ,H 6H  @ H J ".mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah" {x"0!B 5"A  Ae! A( Ae 6 A> AdF ANP AXe5V0 .` t  vj ^ H , " $ & (1` , "H H 1&H 2HĸTH  H L"0H⹳H dH ހH  2INTERNALH  ބƳH  2HP9895H ޅ"C|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g" X. 80  20  8V :$0 .: e5Fe!V`e jre5e!e dȠe5Ҡ"H ( 2HP8290XH 2ކ(H < BHP9885H FއrH. P BHP913X ONE VOLUME - 5 MBYTESH. ZވH0 d BHP913XB ONE VOLUME - 10 MBYTESH0 n޵!H "sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNN HR@R2@ \@ f 2@p2 4@ z2PROGRAM TERMINATED@ :@#nter CheckreadDirAvailmem IobufsizeLastone TotalsectorsNumfilesStartStopLrecords L_rec_lengthFtypeIobufptr Remaining Firstpass First_timeInptrIJ BuffinsizeSkip_it ConstantsFNPage$FNLin$StString1$Initialization CheckreadI#5 2 @&< @' @@%@@@,&F@@2@@(@dr@@,,P@@)@@]@'a@,Z@d@@ O@ @nc*+@odd[@x@ !!!$!%!&!# sor open or disc not in drive@$,J2Disc is uninitialized@ $TVԲ@ ^@4 h( Remove typing aids until end of program@4r"9@PH@P@|L(@͐@ Q@TL(@L! (- test statement # @ HU@  萳@  @ R U@ &@ [dhӲ@>[REMOTEdj* program won't work with SRM@>Խ1%E@ހEͻ@ DEǐ@ DDDP@萳@DEǵP@#0obufferFbackupKFNUpc$ Compute_availAddressLengthBSector0Dstart Disp_swapsL_recordProgramBasicType Insert_masterDstrtDlenFNTrim$File$Search@File Cat_masterNext_k Err_masterEnding I#@'!(!)!,!-!.!@>!A!G!J!@"/!0!1!2!3!4!dl!5!"6@6 "'Do you wish to enable CHECK READ? (Y/N)@ 6 "Insert MASTER disc@4 "%Press CONTINUE when disc is installed@$4"Catalog # to check for BASIC 2.1 or 2.0@ T @ L(@tXѲ@ ̶ ;@  @ -@ @ .@ @ 0@ !@ &31o @03ǵ2@:3곎DI@ NW@ X#D萳@ FEǐ@ F`FFP@萳@FEǵP@F萳@ $Eͤ@ .!)dk@83 `@"B2ONE MOMENT PLEASE...@ "L# Vo *@ `5@ j(됳@ tOM3ղ@~ de@#0vF0!,5\&i.0!j2LPERTP0`SX0,v h*1dX|@ tEo InitrunMfirst_info`trInfopMem Filenames$ FileinfoInitrun First_infoptrInfoptrCre#nput_filesString2$HeadingCall_catNeeded_recordsBasicNext_iTyp_aid Read_in_file Needed_recs Next_infoptrComp_buffinsizeBuffinMsi$ Write_outMsus Sysfile1$FNRealFinished Sysfile2$FNMsus$Err_srm Compute_s# [=[[$i$NF@ ++쐳@ @ȸj@+1@ܹ@,A@ c*+쐳@ c1ij@cc1萳@޳@cc1萳@"@,)(cꐳ@6@ @dq@ J Tl@^4t$8ӵ!ղdr3Ǥ@ $ dq@ @:ƿ!:!># WRONG TYPE OR PROTECTED@ : н @ Y@ @  <@ 7Ӳ8Ӈղ@@B1CHECK READ is a process of verifying the informa-@<@ B.tion writt$ sc exchanges made: @, ě!@  Α@ ع@  0@ @  1@ @ 1萳@ @ 1-$@ (11)`@ 2`ͻ@ <2--1b@ F41P@$Management. " :$@   Restore typing aids@>  L(@"ٵ#,K#9LOAD KEYH@>   @  @ p`p'%2()' PPղ@ $¶@ Fi o$Uhq *@r(@ |,A@$ B#,K8ӵ!ղ]3Ǥ@ $ a@ ,@ @ 3ǵB@  @ ½ B3Ǥ@ ̂ٵ#,KK@ ֑B @ 3ǿ @  5@  ꐳ@ $en to the backup disc. If CHECK READ@@<*B2is used, copy time increases by approximately 50%.@ @4$@ > @ H B@ R?ղY!@ \7Ӳf@@"pBONE MOMENT PLEASE...@ "z#@ 1$  P24=2-4`Ȑ@ Z4,@ d2@  n--1萳@ x`ͤ@ @  1$-ꐳ@ 11)`@ .1ꐳ@ `ͻ@ 2--1 <@ 41 *@ 24=2-4`Ȑ@ Ҵ4 @ $f entr@ $ֶ@ `,8 J #B"  !B( 4"A6 A< AL A!D A@Z Ab A:l AD r ANx AX~0> $xdg1O-2@  @ dg0 Y *@4F,@ D4dkͻ@ dl@ dndmdldkղ@ dnO@,dldkȐ@,@,Adq@(dpdldkdldkղ@ *dpdldkdldk$ @8䛁!""No files to copy--program aborted.@ 8:@ 湳@ 繳@깳@5Z@(do@3(@3)@3*@&3+@03,@:()&@  D&&萳@ N@@ X&&$%@#ղ@$#1@ ͤ@ !@  $$퐳@ @  $$퐳@ Թ@޽$1)=S@ &$?萳@  쐳@    @   됳  \@ $ $ ^ ܴ2@  `ͤ@ b=$!ղ@  0@ .萳@  -@ @ ". ^@  ,.@ 6ǿ ^@  @@ J_  T^@ ^0@ h-!,@  rꐳ@ |b=-!ղ@ $@,Aҳ@%ds@((dsͻ@2dsǀdsǀ@ <*@ F@P*dpӄdsՅdsղ@Z@ddsͤ@n@x+dl!dkȐ@)(*ꐳ@,AT@+2@ +@ $i)(萳@blZ@v3@ <@  e@&!8궎 FILE NOT FOUND@ &  @$ B#,K8ӵ!ղ3Ǥ@ $ dq@ @*!5T IMPROPER FILE NAME@ *  @$ B#,K$ @ .ǿ F^ 8_@ B0j@  L@ V|B@ `7Ӳ! @  j$@ t@ ~@   B@  ꐳ@ 萳@8 7Ӳ! "Disc exchanges remaining: @,8 8ӁղDi$  f@$ B#,K7Ӳ8ӵ!ղ@ $ : Q @ 1!@  ½ @ L@@ ֹ@  @  궎R  jB#,K7Ӳ8ӵ!ղ"*ERROR -- program will not work with Shared@"R 웵BResource M$ [=[[%% trappable@< V+Ӳ@` @  j$@& t+Ӳ!"Error @ & ~@ @ @ @  C @ BERROR@ E -@  @ ꐳ@ 萳@8 +Ӳ! "Disc e%on backup disc@  h#@ r@ |f8@ x32@   @ @  !@ ڳ@ !萳@ ̹@ ! 䳎@ !1):@ " !n@ #1%     f B $    0 "&.!8@DLNT0`  l "v0z0%t_diskFNLin$ Inputmsi$Write_to_filesp Create_fileCreateFNUpc$FNMsus$Sector0Next_ptrLrecordsBuffout FNCheckread CheckerrorReturn L_rec_lengthMsi$Msus Msus_err Re_init@$ &%~ @  @  @  * -@  4@  > /@ H+Ӳ@  R@  \ @  f1%7@ p7ͻ@  z 7ǐ@  P@萳@ 7ǵP@ 萳@  7ǐ@  P@萳@ % <xchanges remaining: @,80ӁղDisc exchanges made: @,!@  @  @   萳@ ( 223@  <@ F@ P9Ȑ@ Z>Ȑ@  d49> ղ@ n%^: A&0  A00 X ?< | 00 0 B;\ 1x$0  pKx*2l,67j>0J0VdKx^ Bll2r!d@ BEx0 r@ DE%\=  @ $ 0,!.   @  1@?@ :@, D@%@@@@1@@&, N@"@@@(@)& X@. b!!!! !!!"!#!$!%!A%. l&@% 7ǵP@ 萳@  7ͤ@  0ӂղ@ ʑBPress 'CONTINUE'@  Խ$@  ޽@  -  / *@& !T!N A Z@ & $ E16Ӳ@ +Ӳ@B ! ",Backup disc is uninitialized. Init%  :2@  x$@ n@<  A//" TRAP FOR UNINITIALIZED WINCHESTER@$< B#,K+Ӳ0ӵ!ղ@ $ @  B(@ 5(ղYN@  $@$ B#,K+Ӳ0ӵ!ղ@ $ ȑ@ ҽ%70 udIobuffer Iobufsize Checkread Filenam' Write_outIobuffer Iobufsize Checkread Filenames$ FinfoInitrunInfoptr First_infoptrCreatedSavelastDstrtDlenSwaps SwapsleftMessages Contmess$ Donotremove$Catalog$ Backupmess$%R v'@ (@ )@  BInsert BACKUP disc@4  B%Press CONTINUE when disc is installed@$4 BCatalog of BACKUP disc@"$ BDO NOT REMOVE DISC!!@8" B)Remedy error condition and press CONTINUE@(8 BWrit% ialization@=@ H $&y@ 8@ B|@ L1j@ V X@ `@@ j*@6 t!" ] @6 ~Ā@ ց @  @. !"Verifying & (  ERROR: NEGATIVE REPEAT FACTOR@6x @ A@B@F@  @$@ @  @@ rn0>( ;@ H,@ R ǁ됳@ \ ͻ@  f@ '-r"Error @8 B)Remedy error condition and press CONTINUE@ 8 @ (@>2!"( f@">@ H@ R萳@\@ f 쐳@ p 1^@ z 1萳@x@  1'@ @ ׳@ܸ d@"# A ʳ@  @ ׳@ \@  @  萳@ " @  ,萳@ 6@ @ @ J T@  T@ ^@ h"#萳@ r@|@*' p׳@z@ !쐳@ !Bempty@  ,@  ǁ됳@  .@  ͻ@   @ @ ׳@޹@踎>@ .@ ͻ@  @ @ @ $׳.% *@8'Hl&v0n&0SX( t_code Prim_addressUnit$Select$Prim$Device$Msi$@B ƶ6 This function returns the Msus. The code is secured.HB м!!!!!H Q0됶 $FFFFCF76H A&bH A&bH A&bH!A&b( gH( "L BUNKNOWNBUNKNOWNH&( "V1LH& "` B: H "jH "tH "~ B: B,H "H$ " B: B,B,H$ "H "H  " H " (&@ T @^~ pr|np VH !HL"0H!RH!\ dH !fހH !p 2INTERNALH !zބƳH ! 2HP9895H !ޅ(C(|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g) P @ EtartFNWidt`CheckGabortedIWStarLineWord$TitleRestartFNWidthCheckAbortedInit_and_check Pack_and_moveRestartEndingSpinBasicBasicString1$String2$BMsi$StTyp_aidFNMsus$Msus_err) @Ձղ@2 FILE REPACK@ղ@Ճղ@ղ@ @  ! 2@8!"!Enter the mass storage specifier.@&82 (Default is Ӳ2)@ & "@  2)NO   @ ̶  @ο1 @  Ͻ @ @@ѹ@ Һ@ Ӷ  @ ս$@ ׿ س@ػ >1 T@^ ٛ!"GERROR: Bad select code or device sel)/-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPN!C г@^ ۛ!"GERROR: Bad mass storage parameter--try again. a@^ܻ >!H L@^ ݛ!"GERROR: Disc controller not found--try again.)NNV/. /.NN^ _PNNV-xJ-n n!mֈC!IC+IֈN^NuNVp xnNN^NuNV-n-n n-PR N^ _XNNVf/-/Hz6+OJ-g;|6.mNu|Ax+Hb mb1|j-xJt-ntpUN np0-xl"nl)rg;|)'NfJ׎g/-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<N-_!` nLHA.+HBNJ4@V0NBhN)2.1@.$d"**г@ .n@ x@, ! Check for BASIC 2.1 or BASIC 2.0@ ,@ @P@P@@(@͐@ @T(@R! *- Test stat) @@8 !"" ʤ@>82/Install the disc to be repacked and press CONT.@ >$@ "@* ,ٵ#,KK Clear Screen@ *6@6 @* Set up software interrupts for recovery.@ 6J).mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah)'h(dd0dA2"*0 2Vd:!LdJ AdX An`0 :h @En0 Rt B z BAD\@ E0) [=[[** Repack @ PPX $0 Vd0d A& @. @ 8d@BD J!F" PdTZb*c!! @&#@P$@P@(%@(!!! ! % )@(&  @0@ @@ :@* D Establish Max, Min Parameters:@ *N@ X@ b@, l!@ 64 Sectors *  ͻ@ z @  ǵP@~@, 2Word 0 is out of bounds = Ǥ@,, 2Word 0 should be P@뤳@ ,  萳@  Vol(0)@ӄ Յ ղ@ @0 ʛ2Directory Start is too small = @**e@ ζ@4 ض( Verify the directory before proceeding:@ 4ⶎ@ 쑵BVerify Directory@  萳@ n@   ͻ@ \@2  ȁ * Verify NO Write Protect@2 ( ȀJ@ 2* ` @^߻ >!I ȳ@^ !"GERROR: Bad device type in msus--try again. j @^ >!N D@^ 㛁!"GERROR: Bad mass storage volume label--try again. * lt  10d AdF:d008d00<0d00d An0Fd< B , BL @Eb60\@ *(16,384 bytes)@ ,v@2 ' Maxsize is largest buffer (in sectors)@82, which may be used by this program. A check@68+ is made to make sure there is enough room.@ 6@ 1%@ ͤ@ @" * 0 ԛ2Directory Start Minimum = @ *  萳@ 蹶 Dirstart@ ǵA @, BWord 6 is out of bounds = Ǥ@$, BWord 6 should be A@ $  萳@  Vol(6)@$ ǀ "@, .BWord 7 is out of bound* f @^ >!R @^ 囁!"GERROR: Mass storage unit not present--try again. Y @^ >@Z 蛁!"Encountered error #"&. Program aborted... @ Z *))FhP pafd_checkNanit_and_c`eckSize MaxsizeHdirstartDirInit_and_checkInit_and_checkSizeMaxsizeDirstartDirlenIDJVolBlinkOldFlagNextsecOldstartLength Dirstartmin DirlenminFile$ Key_label$RCatalogRestartCheck F* ٞ# Clear line@ "ж@ ڽ@" ٞ# Clear Line@ "Ѳ@ @ !@: 2+Press OKAY if okay; RESTART to begin again.@ : $@ OKAY@RESTART@EXIT* s = Ǥ@", 8BWord 7 should be @ " B 萳@ L Vol(7)@Vӈ Չ ղ@` ij@0 jB Directory Length is too small = @,0 tBDirectory Length Minimum = @ , ~ 萳@  Dirlen@ س@6 *@ @ @6 춎+ Recovery Point for errors, and user abort:@ 6 2END OF PROGRAM.@ @ ?ə$@  Restore typing aids@> (@(ٵ#,K#LOAD KEY@>*NHl_to_dRepIdler Verify_w_pFNLif_filename$ StartoverB Write_protect Write_errorEndingIdle_write_msgString1$StMsi_typing_aidString2$DoneBasic$@!@*  !'    *@ +@ -2@@<4!"&REPACK IN PROGRESS. DO NOT DISTURB !!!@ <>#@ H@. R# Verify Sector 0 Information First:@ .\@* f2Verify Sector 0 Information@*p*B'Sector 0 (VOLUME INFORMATION) indicates@26 B$that this Disc is not LIF compatible@2 ٞ9@  Restore typing aids@> %(@ ٵ#,K##LOAD KEY$@>  Just in case@Ĺ Flag* [=[[++@$D!!! ! ! )@ $N @ X!) @ b@ l @ v 萶  1st DATA SECTOR@ @@  ͻ@ .@   @  Ȁ@  !@+ Zb h8dn:d~0Vd1 B 0 B @E\vsazeDirst0IJ Move_data Move_dataNextsecDNewSizeMaxsizeDirstartDirlenIJ File_typeOldstartLengthT+0$@>nٞ9@x Just in case@  Oldstart@ @"BFILE: B has a@,"Bnegative number of Sectors =@ , Restore typing aids@> %(@܂ٵ#,K##LOAD KEY$+|ٵ#,K##LOAD KEY$@> ٞ9@  @&  ERRN 83, ERRL(Write_error),&"ٞ#MASS STORAGE IS ""<+@,̺ Msi_typing_aid  '!@ & Init_and_check @ 'PP+   Ȑ@ ƴ ޳@  ȁ@  ղ@ Ѳ@, B/,KBLIF REPACK Complete.@,1ȵ?ə$@׶ All done@   Old@   萳@   @*  ղ@ 4萳@ > ͤ@+ ]`empFile$FNLif_filename$ FNHl_to_dSegmentRString1$StSlurp_and_belchString2$BasicB@Լ!@ռ@P@P@ּ@޼ ! ! !@  @@ @ +@>ٞ9@ Just in case@  Length@  萶$ Length=0 is OK@ ҹ Old@ ܴ @洎 d@ @: . Verify that the disc is NOT Write Protected:@ :( BVerify NO +W @0$"& " !Ld0d A" @* @ 4d<BH NT"VdZ2 b&pdf0dp@ +  H!) @ R Inew@ \ Old@ f@p~@4z@ @ @4  ȁ됳@   ղ@" Dnew, Inew, Dold, Iold@ "Ѳ@, B/,KBLIF REPACK+ @  ȁ@ ͻ@ ׶ All done@ $@ . ղ@ 8   ղ@ B   ղ@ L X@, VBREPACKING FILE: B would@0, `B!attempt to write over valid data.@ 0 a+Write Protect@( " ͻ@ , @, 6׶! Okay, return to calling context. ,@ @ J!SJ@ T?ə$@, ^BThis disc is WRITE PROTECTED;@*, hBpush RESTART to start over.@"* i+.ExP afd_move Pack_and_moveSizeMa`sizeDirsdartDirlen Pack_and_move Pack_and_moveSizeMaxsizeDirstartDirlenDoldDnewIoldInewJOldNextsecNew Move_dataCatalog@:!+ + Complete.@, Pack_and_move  `6< Z J &pd0   "Dd" A( @0 @ :dBDFdP+ Restore typing aids@> c(@ٵ#,K#LOAD KEY@> jٞ9@ t Just in case@ ~ Oldstart@ T@" BFILE: B has a@," Bnegative number of Sectors = @ , + ղ@ <  ղ@ F  ղ@ P  @,ZBREPACKING FILE: B would@0,dB!attempt to write over valid data.@ 0e Restore typing aids@> g%(@ ނٵ#,K##LOAD KEY+URESTART!B"r B1Disc is WRITE PROTECTED, push RESTART when ready.@ B | @ F@> BError B" happened around the line labeled:@> B 'Write_error'@    Restore typing aids@> %(@+ [=[[,!,{@* dB: Segment 1 of 1 Segment.@ * n@ xͤ@ @ 1%@ ~@"   褳@ " @ @@  ͤ@ Ƚ 1%@" ґ  ,:! <"@! DdJNR Zd:dl0dv8dD\e$Pro$Ty`e$A$IDJCatalogCatalogVol_lab$Purg$File$Pro$Type$A$IDJVolDirDummyRpfBprAddressDirstartDirle,  ղ@ B @  ȿ@   ղ@   ղ@ 1@ B @  @2  *' Branch to specific code for each known@2 4 file type:@  >@ H Ȁ@ RBpurged,ld.idename$ICdir Lif_fidenameAd File$0FNLif_filename$IDir Lif_filenameA$File$J z@@@ @ !@ B@B@ @ ٵB#,WȤ@  ,\褳@ " @ ͤ@  Length@  @6  * Fix directory entry for starting sector,@$6  restore the file type,@2$ ' and update the directory on the disc.@ 2 "@ ,  @ 6P@𐳎@ ,.n FNHl_to_d Cat_imageFNLif_filename$FNMsus$@, @@@ @@@@., ! ! ! % ) %@. @  ͻ@ B@ B@ &, @ \B->@ f@ p ȁ@ zBASCII@ @  ȵA"@ BSYSTM@ @  ȵA@ BBIN@" ! ȵA nB*@" ! ȵ@쐳@ Թ@  ȵA,쳎@  @B@ 츎س@@  A$[1,1]@   A$[2,2]@  @ R@ (@ 2  Lif_filename$  <h@Lz@hnL0:, Restore typing aids@> (@ٵ#,K#LOAD KEY@> ٞ9@  Just in case@  Length@  ~@  ζ@&  ض This file will be moved.@4& ⶎ) Save file type and make ,  @ꐳ@ J @ TP@@& ^Q X@ꐳ@,& hP@ DX@萳@, r @ |ͻ@  Length, Oldstart@   萳@ B@ Ƴ@ ׳  ,޳@ 0ٵB#,W Ǥ@  :@  D@ Nӄ Յ ղ@ Xӈ Չ ղ* b 2A,X,10A,X,A,2X,6A,8D,9D,10D@H* lB/,KB ***** Special Catalog Of ӲB ******@&H vB" VOLUME LABEL: ",K, [@ BPROG@" ! ȵA B*@" ! ȵ@쐳@ @   ȵ1A@ BBDAT@$ ͻ@.ӄ Յ ղ@ 8萳@" B! ȵA B*@"L! ȵ@쐳,it look purged.@ 4 춎@ B:@ Ȑ@ Ȁ@ ͻ@  @&  ( Move data for this file.@ & 26  <( K,": Segment ",K," of ",K," Segments."@6 F @ P 1%@  Z ,ͻ@  ͻ@ ̺ Slurp_and_belch@ ֱ Move_data PP  *v:(6 00    & ,  2d68, @@& B2 FILE NAME PRO TYPE REC/FILE BYTE/REC ADDRESS@ @ @  곎@  ͻ@ س@  ȁ@@ B2 ** End Of Directory Found **)*@@ ׶ All done@ й@ , @ V@ `@ j*@t @~ Catalog   8P@ J4 08d0  "  $ (, [=[[-- A&bH 4H >H H1&H R2H\TH  fH pL"0HzH dH ހH  2INTERNALH ބƳH  2HP9895H - } -vXd0   d_dH FNHl_to_dHl_to_dHighLowRes@ F@ PX@萳@" ZX@萳@"" d$X@ꐳ@" nBX@萳-K  ddd*d,d$ Last_half First_hadf9TitleTitleWWord$ Last_half First_halfIJ \@ h @ r ꐳ@ | N@ ꐳ@ `@ -w, TO TURN OFF TYPING AIDS IN BASIC 2.1 DURING@8 PROGRAM EXECUTION@ @ @P@P@ @& 1!P1!X@&&1!X1!C@.&ٵ#,K# SCRATCH KEY@ .- ޅH  2HP8290XH ʻކ(H  BHP9885H ޻އrH.  BHP913X ONE VOLUME - 5 MBYTESH. ވH0  BHP913XB ONE VOLUME - 10 MBYTESH0 ޵!-@  x@   FNHl_to_d  vn @B @ "@ ,B*@ 6@ @@  J @ T ^\@@ $F\  >d0 -$V B  B@ E(idTyp_aidBctString!$String"$Basic@ 'Typ_aidTyp_aidStString1$String2$O@ l@8 v, SUBPROGRAM TO SET UP THE OUTPUT TO KEYBOARD@88- [=[[.3.sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<Np xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBNn,@&2 %R%<. %KEn@ LE@ MEze MarkerWord$WStarLineTitle Dir_entryTypeRec_sizeMarkerDirA$AEnlStartEodNew_len Dir_startDir_lenLast Vol_labelLif$ Check_lifC$EndingCat Input_nameTemp$ Check_nameFNWidth Name_error@Fi.(yping aids until end of program@2f.2@P5@P@g<(@͐@h ?@Vi<(@! ). test statement to check for basic 2.1 or 2.0@ Vj @ k<(@(@Ѳ@ p@ rPrint title page..mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah.RO% `acd$~* 4 b|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g. 0 40  60!x0 d60.h*0`\ 080i@$j,06TB-JLNDPvX0d0p08.  tring1$gIdle3BufRecs Bdat_shrinkerEnlargerProtect$Ascii_shrinkerGenericString2$Typ_aid Input_length8 Input_length @6 +** * 7-29-82  ** *@ 6. [=[[//  #Check for physical end of directory@. , ǵ-1ڳ@8 B*ERROR--Didn't find file. Program aborted.@ 8 @ @   @2  'Look for unpurged file w/ matching name@2 , , ǵ0P@  Ҷ @* ܶ St/ge@ 0 b@ l@ v$@@ B1Inproper file type. This program is designed for@(@ BASCII and BDAT files only.@ (  @"  Go back for another try@ " @  @ @ƹ@ ж@ ڶ 3/@ X@ b@6 l2'(Press CONTINUE with no entry to exit.)@ 6v@<  2*Enter the name of your ASCII or BDAT file.@ <@ @ 2 9exit@ @  @6ж*Make sure /^9exit@ @ $@ .泎@  8@ B@ L$@0 VB!Improper file length. Try again.@ 0 `#@ j@ t@ ~@& end of input_length routine@&)9to next section@ @ / ore type, start, length, and@&* 涎 logical record size of file@ &  @ , ǿ@  , ǿ@ -, ǿ@ , ǿ@  " @0 , $Don't need to look at any more files@$0 6 So goto end of this loop@ $ @/@ J/g@ @. #Call subprogram to find end of data@.61 -ղ@  @4 (NOTE: EOD, returned by this subprogram,@44 ( gives last sector CONTAiNING data@ 4*@ 4ٵ#,KK@ >@6 /@ @  D' %@$  @ $@ "@ ,$@> 620Install disc with your file, and press CONTINUE.@ >@@ Jٵ#,KK@ T@ ^@6 h+Find start/Name$ is an existing file and is@6ڶ unprotected@ @1-2@  @  Close file@  0@ @   * @4pad with blanks@> 2  *@H  @ R@ \/  %@ @ Ăٵ#,K#@4ζ)set flag to set new length to end of data@ 4$@ ⶎend of routine@ 춎@  )@6 *Go thru directory 1 sector at a time look-@6 ing fo/ 8@  T @. ^,<Increment directory entry@ . h @4 r*lGo to next sector of directory@ 4| /@ ,@ @  0@*Make sure file is ASCII or BDAT@ *¶@ /f and length of direct; verify lif@6rղ@ |@  @ 2no 9not lif@ $@ (Բ@: 2,This disc is not of Logical Interface Format@: 'Ղղ@: 2,required to use this progr/ f! @@p22Do you want to specify size or make size fit data?@ @z@ SPECIFY#@FIT DATA%@EXIT &&@ @  ? @1j@   / 9r Name$@*ʳ@  ( @4 2 (Call subprogram to put partial directory@4 < into A$(*)@ F+*ղ@  P @4 Z (Go thru each sector of directory 1 entry@4 d at a time@ n,ꅰ@  x @. / @ 1BASCII@ ඎ Ok, go on@  3@  @ ,@   @ 4ղA@ 1BBDAT@ & Ok, go on@  03@ : @ D$@  N @0 X $Wrong file type; print error messa/am. @: 'Ճղ@$ 2Program aborting . . .@$ 'Յղ@ ;abort@@ @   @ @&display catalog@ ' @ 0@ : D@N2/@ <@@@ @  #@ʂٵ#,K#@ Խ@" A'됶9set for default@"$9set flag@< B*Enter the length you want your file to be.@ <@ @ A'/ [=[[0J0H+If user wants fit data option, then goto it@6R$d@  \ @ f Check type@ p1BASCII"@  z @$  Find # of records needed@$  萳@   @ J@  Must be BDAT@   @& 0physical record(s) of data.@ *  @> B0Press key to go on, choose a new length or file.@ > ( @ 2 NEW LENGTH#@ <NEW FILE@ =CONTINUE=@ FEXIT  P>>@ Z 0*ղ@ !@ -:!@ F G1ղ@ ֹ@ ๳@ 깳@  @  All done@    @   @  &!8"^@  0@ :@ D$@. NB File is not on disc. Try again.@ . X0 @   Restore typing aids@>  <(@%ٵ#,K#2LOAD KEY5@> BEND OF PROGRAM.@  @ @  $J@ .@ 8PPP (0 Figure # of defined records@& ʽ1%7@ ˽ @  7ͻ@  ս @ ޶ @" 18Ӏ7Ձ7ղ7퐳@ "  @  Calculate remainder@  9@  Round off@ 969ꐳ@  $ @ .@ 0^@  d@" n1BASCII: @ " x@ @ $@> B+You have data stored beyond physical record :褳@"> Bof your ASCII file.@@" B2Press key to input new file or length, or to exit.@ @ @ 0 @  b%@ l!5"ֳ@  v@ @ $@. BImproper file name. Try again.@ . @ % @ !>#س@ GB@  ƛ@ Л@ ڽ$@( 䛵BThis is a protected file.@B( B0Prot0 \@B rn0&R   0B$ 0 FNGenericBR Vol_label@2L&Function to handle non-9826 BDAT files@ 2V@2 `&Mask out system code--bits 6,7,8 a0 8\@ B@  L@  V@4  `(Allowing for defined length of BDAT file@4 j1BBDAT@ t:1萳@  ~9:@ 9::9萳@  @  :@  @    ;@0 Ķ$Make sure 0 NEW LENGTH#@ NEW FILE@ ȉEXIT  AA@ ܶ @  湳 =@  @6  +Otherwise, check if user wants to shrink or@6 enlarge his file@ 1BBDAT!@ "10 ect code? (Press CONT to input a new name.)G@B @ 1B-2@  0@  @ @ *%@ 4!:$P@  >@  H@  R$@.  \BImproper file type. Try again.@ . f@ p$0}nd 9@2j1@ t@& ~Check for generic BDAT code@&A@ Return code@A됳@ @ ̳@ Return a 0@ @ @ ع@  @ 춎@  0user doesn't wipe out data@ 0 1BBDAT: X@ ؛@ ⛥@ $@: B*You have data stored beyond defined record@ : Bof your BDAT file.@ @6 BIf you continue you will lose  :ꤳ@*6 B0%C@ # @ , Cͻ@  - @ 6D8ӄCՅCղ@  @Cͤ@ JD ֳ@ TE *:ղ@ ^! @ hD!@ rF G1ղ@ |@ @ !@ Must be ASCII@ -:!b@ H0 X@ q!P$@  rѲ@  s@  u$@  z@  @  $@<  BEncounterd error #B. Program aborted.@ < @  @ @ @ @ ʹ@  Զ@  ޶  @  @  $0R@  @ @~`jv( (n  ~ 1"0*e|0B\N0V0P`P p@ Vol_labedLif$ Dib_startDib_lenSectgr00 [=[[11 @  *  ǵ1@ 4 @ > 곎@  H @2 R &Assign type, start, length, and record@2 \ size@ fǿ@  p ղ@ z ղ@  !@  ǐ@ 1 =0N$@ (V0<^P F0fEfame$Protect$MTy`e$Rec_sibeEnlS EnlargerName$Protect$MType$Rec_sizeEnlStartEodNew_lenDir_len Dir_startLastSectorI Create_fileTemp$ Disc_error1 @  @Check for L.I.F. ID@ǵP@|@Bno"set flag@" skip rest@Ҹ@&ܶCheck for HP/3000 constant@&ǵA@ Bno"set flag@ " 1O  (Subprogram to create a limited directory@44  (which is returned to the main program in@"4  a character array, A$.@ "@ &@ 0D' %@ :@ D@ N Read a sector@O @1 c ղAⳎ@ !ǀ@ ǵ1@ Գ@ ǂ!@ ʹ@ Ը@ ǵ256@ 蹳@   @ 萳@ @   @$ @ .@ 1 Create_error Search_dirDirA$ADirBlank$ New_startEolBuf Eof_sectorFNRealEof_bytePurge Restore_eofFNHighFNLow Ending Name_errorEod Create_aCrate_bCreate_b 1skip rest@@"  Check for zero constant@" ǀl@ "Bno"set flag@ ," skip rest@ 6@ @ must be L.I.F.@ JByes"set flag@ T@^@h@ r |@ӄ1Xͻ@ Y @ b@2 l&Initialize the character array counter@ 2v@ @6 *Step thru directory sector, entry by entry@61!*@   @  Check for last entry@ ǁ@ 1  8 B @ L@ V (@` :&&1\ 4  ~  " , @x0 @~6 @ : @J @B!@T1 Ⳏ@, j Subprogram to enlarge data files@ , t @$ ~ @ $  @  @ @ Initialize counter@ @  @ζSet up temp name@1G Verif  Vol_labelLif$ Dir_startDir_lenSector0 Verify_lif# Find_startFNRealFind_lenDir Disc_errorK@4()Subprogram to verify L.I.F. and to deter-@242'mine direc1Յղ@   @ӈՉղ@ @   @ ¶@ ̶  @ ඎ@ 궎P@ :`tD -   !BZ1ǵ-1@  @ й@  ڶ @2 䶎 'Translate ascii code to char. file name@(2   For each integer@ (  @  Find 1st character@&    ǵ1@ &  @  Find 2nd character1 6Zb0d"pev0 0!BZ!Ad-$@ 01ƀ\ր|0 0 ^\_rP p0L0N1Etory start address(dir_start)@*2<and directory length(dir_len).@ *F@ P@ Z@4 d(Allocate one sector for the volume label@4n1%@ x@ Read the volume label@  @ͻ@ 1!Ad @ N06"*\,4&R:0lDP ZefNbealTem DirSectorDirA$AJI+ReturnKFNRealTemp FNGenericEnlarger  Disc_error@41 [=[[2X2@  ^ @$ h Record start of new file@$ rǿ@  | @  Skip to end of loop@  @  @ @   @ (@  ¶ @ ̴ @ ֶ  @ 궎@ 1%2#ͻ@  z @  ܳ@.  "Must be ASCII, check for no marker@.  Գ@  Put marker in@ ͻ@ ǁ됳@ ͻ@  ʶ @" Զ Reset last length field@" ހ ͻ@  ǵ1 쐳@2 L@ d$@@ nBEncountered error # B. Program aborting...@ @ x&@ y@ @ @@ @  '@  @ ȿ!>г@ B<B>@  @ B @  2oecord Read_sectorCtr3Ending Read_lengthLength Long_record Disc_error Ascii_shrinker q@2  'Subprogram to find end of data in ASCII@2  and BDAT files.@ @ Decide which2ZBenlarge@ ⶎ@ 춎 Decide type@BASCIIv@    %Create bigger file@  @   @ ( @ 2 @ <@ F@ PBBDAT@  Z d, Create bigg23@ @  If it's BDAT@BBDAT z@   @. & "Record end of file byte and sector@. 0ͻ@ :ӀՁղ@  Dǐ@ N @ X@ b@ l Print warning@ v@ @ $@@2  ͻ@ @@ @ @ $ͤ@ .@ 8@ B@ L$@ VBTransfer complete.@ W@ X @ Z@ [ @ `@ j׳@ t@ ~ @  @.2 !@ 6@  @ @ $@@ "BEncountered error #B. Program aborting...@@,@ 6@ @ J& @T @ ^@ h r) @ |@  (2 er file@ n @ x  @   @  @ @ @  @6*Look thru directory to find new file start@(6 9For each sector@ ( Ҷ @" ܶ Create directory array@ " 2c B2WARNING! Transferring data--Do not touch anything.@ @@2 'For each sector in Name$, transfer data@2 @  @ ͻ@ ͻ@  ǽ @ д P@ ڶ  @ 2 S !6(EnlargeI already exists@. 萶 Increment I@  Try again@6@ Ŀ!7@  Λ@ ؛@ $@< 웵B.Directory is too full. Program aborting . . .@ < &@ .@  !@2 U@ (   r Z F`  ~  ! 3&e04@ :0D@1F\LT\1b0pj2D' %@  ղ@   @$  For each directory entry@$ ꅰf@   @ " Pad with blanks@ ,B  Z@ 6 @  @ @, J !Look for match with unpurged file@, TH2@ @ @  @  @   !@ BBDAT ޳@6 * +Restore eof byte and put in # of def. recs.@6 4ͻ@ >"ղ@ H#ղ@  R@ \" ղ@ f# ղ@ p2 hJ@  @ @ ($@. 2B Mass storage medium is too full.@$. 3BProgram aborting . . .@ $ <&@ F&@ G!P@  HѲ@ IBASCII%@ JBBDAT*@ L@  P@ Z2Wv@ z0 00 ^@ @ @ 0 @& EodTy`e$EodStartLastKfum_secto  EodType$EodStartLast Num_sectorsMarkerAsciiBdatFirstFNRealSectorWordR2 [=[[33Usector@2n1 .@ x1ꐳ@  萳@ @ @. "Do we need to read a new sector???@. @   萳@ @ ȹ@ Ҷ@4 ܶ)Go back and read the next physical record@ 4@ 3 to disc@(ͻ@ 궎@ @ @  @  @     @  &@  0 (@ :"| U  ~  3w 0@6 :*Get length from system sector and find end@6D Ӏ Ձ ղ萳@ N@2 X&See if there's any data in this sector@2b ǀ ǀꐳ@ l@ v ͤ@ @ ٵ#,KK@׳@ 3K@ $@0 .$Check for negative length (past eod)@08Z@ B ꐳ@  L@ V@ `@6 j+Pad length (which is in bytes) to even num.@6t萳@ ~@6 +Put record length in words instead of 3 2 @ @& Assign end of data pointer@ & @ "@ ,ͤ@ 6@ @ @ J@ T ^@ h@ r @|` :x 3 & , 34 :>!BZB!Ad F_rH^\NV`lp|0   Bdat_shrinkerEntryNew_lenRec_sizeStartSectorPhysEodDirA$AFNLowFNH3@    @ @ ƶInitialize pointers@  @ @ 1%@  @ @  @4 (Read sector (physical record) containing@64 *length of the defined record3]bytes@6萳@ @4 (Is defined record length longer than one@4physical record?@1 j@  ζ @$ ض Then goto the next sector@ $ 萳@ 춎 @4  (And subtract physical record3 _vn S  ~ &!BZ*!Ad .^\0_r80>CdirA$A@ X  Ascii_shrinkerEntryNew_lenSectorDirA$AFNHighFNLow Bdat_shrinker39ighEod_byte Eof_sectorRem Eod_sectorEof_byteReal@4 D )Subprogram to shrink BDAT files to newlen@ 4 N@  X D' %@  b@*  lRead new length into directory@* v!3 of ASCII file@ 6*@ 4Check for end of file@ > p@  H됳@ R ꐳ@  \@ f@  p@ z@ @  @ ͻ@8B'LOOKING FOR END OF DATA: NOW IN SECTOR @ 83. length from@44  (the defined record length(IN WORDS HERE)@4  1ꐳ@   @ @ ( @ 2@ <@6 F+Assign WORD to point at next length pointer@ 6P萳@ Z@2 d&Make sure we're not in the next 3 Z@6  +Subprogram to shrink ascii files to new_len@ 6@ D' %@ @* Read new length into directory@*!ղ@!ղ@ ̶@( ֶWrite new directory on3 ղ@ ! ղ@  @0  $Write new directory sector onto disc@0  ͻ@  @,  !Read system sector **NOTE**@,  ͻ A(*) now@ ƶ contains the@ ж system sector@ ڶ30 type@BASCII@BBDAT* @ ֶ@ ඎ   @ @ Allocate a sector@1% @ @* Read system sector of BDAT file@* @& ͻ@ ' @ 3 @(Read length of defined record@ (ǐ@ ʶ@$ ԶSave last length location@$޶Last(0) is sector@  @ Last(1) is word@ @ @ Check for end of data@ 3 [=[[4n45lculate Eof_byte from Remainder@ , !!@ !1쐳@  !Զ @" !޶ Put new data into array@" ! ղ@ ! ղ@  ! @ " @ "@ "@* "$Write system sector out to disc@*". ͻ@ "8@ 4 #P @ #Z@ #d@#np drpn0_r  ss0FNLowRealLowL@ #xP@@& #QP@ꐳ@&& #Q4  $ @ $ $@@ F  cd0 ~ *,d$ Last_half First_hadfTitleTitleWWord$ Last_half First_halfIJ4P`@. %ƛBMedium changed or not in drive.@*. %ЛBCorrect and press CONTINUE.@ * %ڽ@ %׳@%.@@ %BEncountered error #B. Program aborting...@ @% Restore typing aids@> %(@ٵ49 "9@ "B@ "L @ "V@ "` "j @ "t@ "~ (@"@vBnJ0\  ~0t0FNRealHighLowRea4P@萳@ & #@ #  @ #@ #@0 #$ SUBPROGRAMS TO PRINT TITLE PAGE@ 0#ȶ@ #Ҷ # vn `0 ~ J" @ 4  @ $ @ $ ꐳ@ $ N@ $ꐳ@ $ฎ`@ $@ $@  $ @ %B*@ %@%B @ %&@ %0@ %:@%DB @ %N44#,K#LOAD KEY@> &BEND OF PROGRAM.@  & @ &@& @&* nn0h*B$PB$PB$PFNWidthWidth@ &4@  &>4*NOT a directory@ 䶎sector.@  @6  *Put number of defined recs into A(*) array@6! ղ@! ղ@ !@6 ! *If moving in front of eod, change eof info@6!*@  !4 @" !> Find las4NlHigh@ "@ "P@萳@" "P@萳@"" ""P@ꐳ@" "@P@萳@  "@ "ν  @ "ض@ "ⶎ " @ "4/rSStarStarWIس@ #涎 @ #س@ #B*@ $@  $@ $@  $" @ $, $6@0t ` a0 ~ 4 sҳ@ %XB*@ %b@  %l @ %v @8 %-****End Of Subprograms To Draw Title Page****@ 8%@ %@ %@ %@%0F . e 4t byte of data@ " !H 쐳@ !R @, !\ Find last sector containing data@, !f 1퐳@  !p @ !z Calculate Remainder@  !@ ! @, ! If Rem is non_zero then round up@, !Pꐳ@  ! @, ! !Ca4@ #@#   rn0^\ 0@0FNHighRealHighLow@ #P@𐳎@ #ꐳ@  #(@ #2  @ #<@ #F4 $e LineLifeWNIAb4@ @ $@v @ *LineLineWNIJ@ $@ @ $J`@ $TB*@ $^>@$hB @ $r@ $|B*@ $@ $@ 4 TD &*r String1$ String2$ BasicSt B , Disc_errorString1$String2$BasicStB n@ %@ %͆@P@P@%@ %@ %@ %@ %$@ %!4 [=[[55 /-׎ m׊N|b+o N.,_+_0-HH@rP@V.cg.mNu|c`N ndJg/( hNN^NuNVp xn>p xfY/<Nn-_!J nLHA.+HBNN^NuNVN^NuNPNp xfY/<N-_!` nLHA.+HBN@F52@*&C$ IS CHAR STRING TO BE PRINTED@"*&Y IS Y COORD ON SCREEN@"&@& @&@ &@ &ʶ@0 &Զ%*****SUBPROGRAM TO CLEAR SCREEN *****@ 0&޶@ &趎@&5*10 !SERIES 200 BASIC UTILITIES LIBRARY20 !Disc 1 -- 09800-1030430 !9/23/82 REV A.40 !Copyright Hewlett-Packard Company, 1982 FILE_SIZERPu REVID U  5 .mNu np!|"nl-ih$nhpr=Afnfn6=@ nh0.H"np00H//)N np!_0.R@h x"np#hNx npHh Nr npJ l;|.mNu+|JVg/-V mRNB-+o N,_+_B-.mNuN^NuNVZ-xJd-nd^ mb hjf\Ah5 V &B @ F @ F @" @" @ 0 e @" @$ )@ ( Unsecure?@   RE-STORE "UNSECURE"@N@z5dTnn jJVgJVgJVgJVgClear 4@&ٵ#,KK@''XRPj R k^0 B( B2@ 5C|H#|B|I/./(/(J׮g/-׮ mתN8VJg n^/(NfNt-nZ n^"nZ#h >|H#|:|G/./(/(J׶g/-׶ mײN-nZ nZJ(Hc/(>HxJ׎g5%FzNrB`  8 @ X& @02F X>0T^f2tz X0 0 0X zȀ52E(idTyp_aidBctString!$String"$Basic@ 'Typ_aidTyp_aidStString1$String2$s@ '@8 '$, SUBPROGRAM TO SET UP THE OUTPUT TO KEYBOARD@88'., TO TURN OFF TYPING AIDS IN BASIC 5sPk3'NVN^ _ NNV0. S@@0{N$@P?<ND?<N@HA&b@RA&b@\6 I!ղ萳@ $! ղ@ .@  8@ B@  L萳@ V@ `@j@ tA&b@ ~v@ !ղ萳@ @  萳@ @@ @ Ľ 6 6!ղ萳@!ղ萳@! ղ萳@Q@A&b@ |@ @ ղ@ ղ@ @ Qn@ A&b@ J@ ղ6P@萳@fP@萳@ p@ z@ rn  Xof code byof code byToggleLine_ptrLhdr@ @ A&b@@6  6 6PHdrUnsecure Check_basicBasic1FNPointIDoneToggle FNFind_nextJ@2& Subprogram to secure lines of code by@62+ placing an asterisk after each line number@26& secured. (For SERIES6@ ղ@ <@ &\@  0@ :@ D賎@N@ Xղ@b@ll v @ $@ 2SECURE COMPLETED@׳$Make sure in BASIC 2.0@$ Q@@ 6&/<< BIGGY@@A&b@@Z < 0 b X D @ X @0*6 XDL zTne_ptr Nextcub_ptr Ne`tline_pt6  6 [=[[77 7 7 7  7 7 7  7  7 7 7 [=[[7  7 7 7 7  7 88 8 8 8  8 8 8  8  8 8 8  8 8 8 8  8 8 [=[[99 9 9 9  9 9 9 [=[[9  9  9 9 9  9 9 9 9  9 :: : : :  : : :  :  : : :  : : [=[[: : :  : ;; ; ; [=[[; ;  ; ; ;  ;  ; ; ;  ; ; ; ;  ; <&< < < <  < < <  <  < [=[[< < <  < < < <  < == = = =  = = =  =  = = =  = = = = [=[[=  = >4> > > >  > [=[[> > >  >  > > >  > > > >  > ?? ? ? ?  ? ? ?  ?  ? ? ? [=[[?  ? ? ? ?  ? @q@ @ @ @  @ @ @  @  @ @ @  @ @ @ @  @ @ [=[[AA A A A  A A A [=[[A  A  A A A  A A A A  A BcBBBB BBB B BBB BB [=[[BBB BCCCC [=[[CC CCC C CCC CCCC CDUDDDD DDD D D [=[[DDD DDDD DEEEEE EEE E EEE EEEE [=[[E EE> System 1 Date 06/02/83 Operator t.h Disc type DUPLICATEaFF