IMD 1.17: 3/12/2010 13:28:44 tape backup system drivers 37412-or01 ver 1.0 UQVQ:Floppy(R"^&0707070000020027061006660000000000000000010066200360705100200000500000000004Size310 0707070000020026531007770000000000000000010302140000017757000001000000007727Install# #************************************************************************** # # Install script for Floppy Tape board. # 9/85 - E. Bank # #************************************************************************** # # # ASK IF TAPE OPERATIONS SHOULD HAVE "EXPERT" FLAG # cat > /tmp/expert.form << END Form = Select Installation Name = Restrict operations to Prompt = Select who will be able to use the tape operations. Frow = 0 Ncol = 1 Fcol = 24 Flen = 13 Rmenu = User Groups Menuonly Menu = User Groups Prompt = Select who will be able to use the tape operations. Name = Expert Users Name = Administrator Name = All users END while true do RET=`shform /tmp/expert.form` if [ "$RET" = "" ] then message "\ An error has occured in the Tape Backup install script. Please \ notify AT\&T User Support. Thank you." fi eval set $RET EXIT=$1  USER=$2 if [ "$EXIT" = "Cancel" ] then message "\ You must specify the user restriction for the Tape \ Backup/Restore package." fi if [ "$EXIT" = "Help" ] then uahelp -h $UA/admin.hlp -t "Overview" fi if [ "$EXIT" = "Enter" ]; then break; fi done fEXPERT=false fADMIN=false if [ "$USER" = "Administrator" ] then fADMIN=true; fi if [ "$USER" = "Expert Users" ] then fEXPERT=true; fi rm -f /tmp/expert.form clear newwind echo echo ' Installing Tape Backup software ...' echo BINLIST="Tape Tbackup.sh Tformat.sh Trestore.sh Tinfo.sh Tgetname Tgetovwrit TgetFtype TmakeLmenu Tmakedesc TmakessList TprintSS dbuf TgetOffsets TdsplSSs cnclform.sh newform.sh shform.sh execStrip" UALIST="T3Bbackup.menu Tbackup.menu Tredir.menu Trestore.menu T3BbackOp.form TbackOpt.form Tbackup.form TrestOpt.form Trestore.form Ttapetype.menu ftape.hlp" SAVELIST="shform" for i in $BINLIST do cp $i /usr/bin/$i chown bin /usr/bin/$i chgrp bin /usr/bin/$i chmod +x /usr/bin/$i done for i in $UALIST do cp $i /usr/lib/ua/$i chown bin /usr/lib/ua/$i chgrp bin /usr/lib/ua/$i done ## Copy fixes to old versions of UNIX VERSION=`cat /etc/.version` if [ `expr "$VERSION" \>= "A"` = 1 ] then VERSION=`echo $VERSION | cut -c2-20` fi if [ `expr $VERSION \<= 3.06` = 1 ] then if [ ! -d /u/SAVE ] ; then mkdir /u/SAVE ; fi for i in $SAVELIST do mv /usr/bin/$i /u/SAVE cp $i /usr/bin/$i chown bin /usr/bin/$i chgrp bin /usr/bin/$i chmod +x /usr/bin/$i done fi # now copy the .o file into /etc/lddrv cp tp.o /etc/lddrv/tp.o # now copy the tape cpio into /usr/bin cp tapecpio /usr/bin/tapecpio chown bin /usr/bin/tapecpio chgrp bin /usr/bin/tapecpio echo ' Updating Administration files ...' echo # # Append a new entry to the Administration file # # SAVE OLD COPY OF ADMIN FILE IF Administrator if $fADMIN then mv $UA/Administration /tmp cp /u/install/Administration $UA/Administration fi echo > /tmp/t echo "Name = Tape Operations" >> /tmp/t if $fEXPERT then echo "Expert" >> /tmp/t fi echo "Default = Open" >> /tmp/t echo "Open = EXEC -pwd /usr/bin/Tape" >> /tmp/t echo "Help = EXEC -d /usr/bin/uahelp -h /usr/lib/ua/ftape.hlp -t \"Tape Overview\"" >> /tmp/t uaupd -r "Tape Operations" -a /tmp/t Administration # RESTORE OLD COPY OF ADMIN FILE IF Administrator if $fADMIN then cp $UA/Administration /u/install mv /tmp/Administration $UA fi rm -f /tmp/t echo "Name=Tape Operations">>/etc/lddrv/InstDrv echo "File=tp">>/etc/lddrv/InstDrv echo "Comment=Floppy tape operations">>/etc/lddrv/InstDrv # # Update the master file in /etc/master. # echo ' Updating Systems files ...' echo masterupd -a char init release open close read write strategy ioctl tp # # Create the new device entries # echo ' Creating entries for the Tape port ...' echo charnum=`masterupd -c tp` for i in 0 3 do /etc/mknod /dev/rft$i c $charnum $i done # # load the driver # echo ' Loading the driver software ...' echo cd /etc/lddrv ./lddrv -a tp cat >> ./drivers < /tmp/temp mv /tmp/temp /etc/lddrv/drivers grep -v "Name=Tape Operations" /etc/lddrv/InstDrv | \ grep -v "File=tp" | \ grep -v "Comment=Floppy tape operations" > /tmp/InstDrv mv /tmp/InstDrv /etc/lddrv/ # # Remove the device entries # echo ' Deleting device files of the new ports ...' echo for i in 0 3 do rm -f /dev/rft$i done echo ' Removal of Tape Backup software Complete' echo 0707070000020026371006660001450001440000010301770000017757000001700000001001T3BbackOp.formForm = Backup Options Name = Perform verify pass: Frow = 0 Ncol = 1 Fcol = 26 Flen = 3 Value = $VERIFY Rmenu = Yes or No Menuonly Name = Overwrite existing data? Prompt = "Confirm" will prompt you before overwriting. Frow = 1 Ncol = 1 Fcol = 26 Flen = 7 Value = $OWRITE Rmenu = Confirm Overwrite Menuonly Menu = Yes or No Prompt = Cursor to desired choice and press ENTER Name = Yes Name = No Menu = Confirm Overwrite Prompt = "Confirm" will prompt you before overwriting. Name = Confirm Name = Yes Name = No 0707070000020026401006660001450001440000010302000000017757000001700000000216T3Bbackup.menuMenu = 3B2 Mode Tape Backup Label = 3B2 Mode Tape Backup Name = Backup User Name = Backup Folders Name = Backup Files Name = Backup by Names 0707070000020026411006660001450001440000010302010000017757000001500000001476T3Binfo.menuMenu = VOLUME TABLE OF CONTENTS Label = 3B Tape Info Name = VOLUME NAME: ctctape VERSION: 1 POSSIBLE NUMBER OF PARTITIONS: 16 Name = PARTITION TAG FLAG SECTOR START SIZE IN SECTORS Name = 0 2 0 5272 8928 Name = 1 3 1 126 5146 Name = 2 4 0 12400 31341 Name = 3 5 0 2 45539 Name = 6 0 1 0 45541 Name = 7 1 1 0 126 Name = Device type is 6 Stream Floppy Tape Name = Tape Pass Count: 148 Name = Maximum Allowed Tape Pass Count: 4000 Name = Cylinders: 6 Name = Tracks per cylinder: 245 Name = Sectors per track: 31 Name = Bytes per sector: 512 Name = Total available bytes: 23315968 Name = Total available blocks: 45539 0707070000020027001007770000000000000000010304000000017757000000500000013516TapeR N  .text  .data N@.bss N N .lib Z Z/< ZN1X OQ./HJf/H#0NN1RX @-H.g4. O/N1X./< _/.N1P.N1F-@.N16N^NuNV. /< w/< mp/N14 -@ g g g f p.N16NN:Nv# RN^NuNVp-@N10JgPp./< N1X-@-@ o .N1B-@-y0`.N1N-@ mp./< 2N1.X-@Jl .0N:NPp`./< 2N1.X-@ g g@ g2 g* g" g g g fnB``N6`` y -h ."Ё"| xA./< N1X`*N1# VlN1` 9 V gp-@ f(./< 2N1.X-@Jl .0N2 .N^NuNV.p/N1nXN^NuNVBB`p./< N1X-@-y0 f o,. /< /< p/N14 p.N1x f`JfJp .p4/p/p /p/N1-@p.p//.N1HP. r/.N1XRp .N1 f gp`p-@JgJg .N1#0 .N^NuNVN-@ f .0Np./</.N1P./< Z/.N1,P-@ g .0Np./<</.N1P./< Z/.N1,P-@ g .0NL./< Z/.N1,P-@ g .0N.N1B-@Jg .0Np./< Z/< N1P-@Jgpp./< /< ZN1PB`F ."瀐"| vB1 ."瀐"| B ."瀐"| BR m./</< N1P-@ f .0NB./< Z/.N1P-@ g .0N./< Z/.N1P-@ g .0N./< Z/.N1P-@ g .0N.N1B-@Jg .0NN^NuNVp./< N1X-@.S/N1X-@.N1B-@N^NuNVp./< N1X-@ f 0fp`p-@.N1B-@ .N^NuNVp./< N1X-@ f 90N^Nu.S/.N1X-@.N1B-@. /< /< p/N14 -@p`NVxN1-@ y ./< 3Hn|N1PHn|/.N1~P-@ y -hJ Rg>Jf8. E ."Ё"| xA//< ;p/N14 N^NuN1-@fxN1-@p. ."Ё"| A//< /< N1T -@Jg". /< /< p/N14 p.N16`zJl*./< /< /< p/N14`JHnN1X-@N1-@`,NVN^Nu @ O [ m   /usr/bin/Tbackup.sh/usr/bin/Tformat.sh/usr/bin/Trestore.sh/usr/bin/Tinfo.shBackupFormatRestoreShow ContentsBackup to TapeFormat TapeRestore from TapeShow Tape ContentsTapeYou must exit from this window to release the tape.ua.hlpSystem ErrorsThe tape cannot be released. Check that no other windows are using the tape./tmp/tape.lock/dev/w0/tmp/tape.lock%dX/tmp/tape.vtoc/tmp/tape.lockftape.hlpTape OverviewAn error has occurred while trying to access the tape. Check that a formatted tape has been properly inserted, the tape door has been closed, and that the Floppy Tape driver has been loaded./tmp/tape.loga+Error in Tape: ERC = %d. ftape.hlpTape OverviewPlease insert a formatted tape to use for the tape operations./dev/nullftape.hlp/dev/rft0ua.hlpSystem ErrorsAn error has occurred while trying to access the tape. Please be certain that a formatted tape has be propperly inserted.Please wait for the tape to finish retensioning.!DEFINED!DEFINED/tmp/tape.vtoc/dev/rft0/dev/rft0/dev/rft0ftape.hlpTape OverviewBy the way ... It is safe to remove the tape cartridge.Open %sftape.hlpThe tape provided is write protected. To perform this backup, an unprotected tape must be provided./bin/sh/bin/shua.hlpSystem ErrorsCan't execute the selected command.ua.hlpSystem ErrorsCan't create process for command. pID = %d@(#) TAPE BACKUP 1.00.000707070000020026421006660001450001440000010302020000017757000001600000002214TbackOpt.formForm = Backup Options Name = Tape Name (optional): Frow = 0 Ncol = 8 Fcol = 30 Flen = 8 Value = $TPNAME Name = Backup-set Name: Prompt = Provide this backup with a name. Frow = 1 Ncol = 13 Fcol = 30 Flen = 8 Name = Comment for this backup-set: Frow = 2 Ncol = 1 Fcol = 30 Flen = 24 Value = $SSCMNT Name = Place data at: Prompt = Indicate where this backup should be located. Frow = 3 Ncol = 15 Fcol = 30 Flen = 15 Value = $DATAAT Rmenu = Location Menuonly Name = Perform verify pass? Frow = 4 Ncol = 9 Fcol = 30 Flen = 3 Value = $VERIFY Rmenu = Yes or No Menuonly Name = Overwrite existing data? Prompt = "Confirm" will prompt you before overwriting. Frow = 5 Ncol = 5 Fcol = 30 Flen = 7 Value = $OWCONF Rmenu = Confirm Overwrite Menuonly #Name = Show Backup-sets? #Frow = 5 #Ncol = 1 #Fcol = 30 #Flen = 3 #Value = Yes #Rmenu = Yes or No #Menuonly Menu = Yes or No Prompt = Select desired entry and press ENTER Name = Yes Name = No Menu = Location Prompt = Select desired entry and press ENTER Name = Next free space Name = Start of tape Menu = Confirm Overwrite Prompt = "Confirm" will prompt you before overwriting. Name = Confirm Name = Yes Name = No 0707070000020026431006660001450001440000010302040000017757000001500000001257Tbackup.form# FILE: Trestore.menu # # This is the /usr/lib/ua file referenced by /usr/bin/Trestore.sh # # PURPOSE: Restore files or system from tape # Form = Backup list of files Label = Backup list # Define all of the fields of the form Name=1: Frow=0 Ncol=1 Fcol=4 Flen=40 Value = $FN1 Name=2: Frow=1 Ncol=1 Fcol=4 Flen=40 Value = $FN2 Name=3: Frow=2 Ncol=1 Fcol=4 Flen=40 Value = $FN3 Name=4: Frow=3 Ncol=1 Fcol=4 Flen=40 Value = $FN4 Name=5: Frow=4 Ncol=1 Fcol=4 Flen=40 Value = $FN5 Name=6: Frow=5 Ncol=1 Fcol=4 Flen=40 Value = $FN6 Name=7: Frow=6 Ncol=1 Fcol=4 Flen=40 Value = $FN7 Name=8: Frow=7 Ncol=1 Fcol=4 Flen=40 Value = $FN8 Name=9: Frow=8 Ncol=1 Fcol=4 Flen=40 Value = $FN9 0707070000020026441006660001450001440000010302050000017757000001500000001110Tbackup.menuMenu = Backup to Tape Label = Backup to Tape Prompt =Complete Backup saves whole system, Partial Backup saves changed items. ## NOTE: ## ## It is important that each name be unique in the nineth ## (9th) character position. This insures that the data ## will be transfered onto the tape in the correct coded ## format. The current default for unrecognized backup ## types is BUPARTIAL. ## v Name = Complete Backup - has not been done yet Name = Partial Backup - has not been done yet Name = Backup User Name = Backup Folders Name = Backup Files Name = Backup by Names 0707070000020026541006660001450001440000010302200000017757000001300000034520Tbackup.sh# # File: Tbackup.sh # PURPOSE: Tape backup utility. # CALLED BY: Tape-kit # REQUIRED FILES: # newform.sh, shform.sh, Tbackup.menu, TbackOpt.form, # Tbackup.form, T3BBackOp.form, Ttapetype.form, # T3Bbackup.menu, TmakeLmenu, Tgetname, TmakessList, # cnclform.sh, Tgetovwrit # FILES MODIFIED: # /etc/.lastbackup, /etc/.lastpartial, Tbackup.menu, # Backup.menu # #---------------------------------------------------------------------- ERROR="An error has been encountered in the menu file \$menu\.\ Please notify AT\&T User Support. Thank you." TERMCAP= export TERMCAP ## ## THIS LINE SPECIFIES WHAT TO DO ON DEL KEY INTERUPT. ## INTDEL=2 ACTION="message \"This tape operation has been cancelled.\"; exit" ABORT="This tape operation has been cancelled." trap "$ACTION" $INTDEL RET= BELL="\\007\\007" SHROOT=/usr/bin FORMROOT=$UA TAPEDEVNAME=/dev/rft3 LOGFILE=/tmp/tape.log HELPFILE=ftape.hlp ## PROMPT TO INSERT TAPE. GET TAPE TYPE. menu=Ttapetype.menu HELP="Backup" . $SHROOT/shform.sh eval set $RET eval set $2 if [ "$1" = "UNIX" ] then TTYPE="UNIX PC" else TTYPE="3B2" fi ## ## GET BACKUP TYPE ## NOTDONE=true while $NOTDONE do if [ "$TTYPE" = "UNIX PC" ] then menu=Tbackup.menu else menu=T3Bbackup.menu fi HELP="Backup" clear . $SHROOT/shform.sh eval set $RET BTYPE=$2 ## IF BACKUP BY USERS, GET USER NAME. if [ "$BTYPE" = "Backup User" ] then menu=umenu$$ cp $UA/Backuser.menu $FORMROOT/$menu echo "Multiple" >> $FORMROOT/$menu pwdmenu >> $FORMROOT/$menu HELP="User Backup" . $SHROOT/newform.sh rm -f $FORMROOT/$menu if [ "$EXIT" = "Cancel" ] ; then continue; fi eval set $RET echo "\c" >$FORMROOT/BUfiles shift while [ "$1" != "" ] do UNAME=$1 find /u/$UNAME -print >>$FORMROOT/BUfiles shift done fi ## IF BACKUP BY NAMES, GET THEM. if [ "$BTYPE" = "Backup by Names" ] then clear menu=Tbackup.form HELP="Backup Names" fNOTDONE=true while $fNOTDONE do export FN1 FN2 FN3 FN4 FN5 FN6 FN7 FN8 FN9 . $SHROOT/cnclform.sh if [ "$EXIT" = "Cancel" ]; then break; fi eval set $RET fNONAMES=true echo "\c" > $FORMROOT/BUfiles shift ## EXTRACT NON-BLANK ENTRIES FROM LIST for I in 1 2 3 4 5 6 7 8 9 do if [ "$1" != "" ] then find $1 -print >> $FORMROOT/BUfiles \ 2> /tmp/error$$ if [ -s /tmp/error$$ ] then fNONAMES=false break fi fNONAMES=false fi shift done ## IF NOTHING TYPED IN, INFORM THAT NO ## BACKUP WILL BE PERFORMED if $fNONAMES then message -i "\ No selections were made, therefore no backup will be performed.\n\n\ Please touch ENTER to continue." exit fi ## IF BAD FILE NAME, THEN FORCE USER ## TO RETYPE IT. if [ -s /tmp/error$$ ] then rm -f /tmp/error$$ message "\ The file '$1' does not exist." if [ "$?" != "0" ] ; then exit; fi eval set $RET shift FN1=$1 FN2=$2 FN3=$3 FN4=$4 FN5=$5 FN6=$6 FN7=$7 FN8=$8 FN9=$9 continue else rm -f /tmp/error$$ fi fNOTDONE=false done if [ "$EXIT" = "Cancel" ] then NOTDONE=true continue fi fi ## IF BACKUP BY FILES, DISPLAY AND GET THEM. if [ "$BTYPE" = "Backup Files" ] then ## 3B2 NEEDS FULL PATH NAMES if [ "$TTYPE" = "3B2" ] then DIR=`pwd` PATTERN="$DIR/*" else PATTERN="*" fi find $PATTERN ! -type d -print | \ $SHROOT/TmakeLmenu -b -f > $FORMROOT/TLmenu.menu menu=TLmenu.menu HELP="Backup File/Fold" . $SHROOT/newform.sh if [ "$EXIT" = "Cancel" ] then rm -f $FORMROOT/TLmenu.menu continue fi echo "\c" > $FORMROOT/BUfiles eval set $RET shift while [ "$1" != "" ] do echo "$1" >> $FORMROOT/BUfiles shift done rm -f $FORMROOT/TLmenu.menu fi ## IF BACKUP BY FOLDERS, DISPLAY AND GET THEM if [ "$BTYPE" = "Backup Folders" ] then ## 3B2 NEEDS FULL PATH NAMES if [ "$TTYPE" = "3B2" ] then DIR=`pwd` PATTERN="$DIR/*" else PATTERN="*" fi find $PATTERN -type d -print | \ $SHROOT/TmakeLmenu -b -d > $FORMROOT/TLmenu.menu menu=TLmenu.menu HELP="Backup File/Fold" . $SHROOT/newform.sh if [ "$EXIT" = "Cancel" ] then rm -f $FORMROOT/TLmenu.menu continue fi echo "\c" > $FORMROOT/BUfiles eval set $RET shift while [ "$1" != "" ] do find "$1" -print >> $FORMROOT/BUfiles shift done rm -f $FORMROOT/TLmenu.menu fi NOTDONE=false done ## ## READ VTOC AND SAVE-SET BLOCKS, ALSO READ FIRST SECTOR ## OF VIRTUAL TAPE TO DETERMINE IF CPIO SET EXISTS. ## RET=`$SHROOT/Tgetname -r` ERC=$? if [ "$ERC" != "0" ] then message "\ An error has occured while trying to access the tape.\n\n\ Check that a formatted tape has been properly inserted and \ has finished rewinding before beginning again." date >> $LOGFILE echo "Error in backup during Tgetname:" >> $LOGFILE echo " ERC = $ERC, TAPE = $TAPEDEVNAME" >> $LOGFILE echo >> $LOGFILE exit fi eval set $RET TPNAME=$1 OFFSET=$2 ## DETERMINE IF EXISTING CPIO SET. RET=`$SHROOT/Tgetovwrit -b` ERC=$? if [ "$ERC" != "0" ] then message "\ An error has occured while trying to access the tape information." date >> $LOGFILE echo "Error in backup during Tgetovwrit:" >> $LOGFILE echo " ERC = $ERC, TAPE = $TAPEDEVNAME" >> $LOGFILE echo >> $LOGFILE exit fi eval set $RET OVWRIT=$1 TAPETYPE=$2 fCONFM="No" if [ \( "$OFFSET" = "0" \) -a \( "$TAPETYPE" = "UNIX PC" \) ] then OVWRIT="No" fi if [ \( "$OFFSET" = "-1" \) -a \( "$TAPETYPE" = "UNIX PC" \) ] then message -c "$BELL \ This tape can hold no more Backup-sets. Proceeding with this \ operation will cause all existing data to be overwritten!" if [ "$?" != "0" ]; then exit; fi OFFSET=0 fCONFM="Yes" fi if [ \( "$TAPETYPE" != "$TTYPE" \) -a \( "$OVWRIT" = "Yes" \) ] then if [ "$TTYPE" = "3B2" ] then message -c "$BELL \ Performing this backup will erase all Backup-set information \ on this tape." if [ "$?" != "0" ] ; then exit; fi else message -c "$BELL \ The tape provided is a '3B2' type of tape. To continue this \ operation, you must overwrite its contents." if [ "$?" != "0" ] ; then exit; fi fi OFFSET=0 fCONFM="Yes" fi ## ## GET BACKUP OPTIONS ## if [ "$TTYPE" = "3B2" ] then menu=T3BbackOp.form HELP="Backup Options" clear . $SHROOT/shform.sh eval set $RET VERIFY=$2 OWCONF=$3 OFFSET=0 else if [ $OFFSET = 0 ] then DATAAT="Start of tape" else DATAAT="Next free space" fi SSNAME= SSCMNT= VERIFY="Yes" menu=TbackOpt.form HELP="Backup Options" while [ "$SSNAME" = "" ] do export TPNAME SSCMNT DATAAT VERIFY OWCONF clear . $SHROOT/shform.sh eval set $RET TPNAME=$2 SSNAME=$3 SSCMNT=$4 DATAAT=$5 VERIFY=$6 OWCONF=$7 if [ "$SSNAME" = "" ] then message "Please specify a name for this backup." continue fi done if [ "$DATAAT" = "Next free space" ] then if [ "$fCONFM" = "No" ]; then OVWRIT="No" ; fi else OFFSET="0" fi fi ## LOCATE FILES FOR COMPLETE OR PARTIAL BACKUPS. clear newwind echo "\n\n\n\n\n\  Searching the file system.\n\n\n\n" DATEFILE=/dev/null eval set $BTYPE if [ "$1" = "Complete" ] then find / -newer /etc/.installdate -print > $FORMROOT/BUfiles DATEFILE=/etc/.lastbackup elif [ "$1" = "Partial" ] then if [ ! -s /etc/.lastbackup ] then COMPFILE=/etc/.installdate DATEFILE=/etc/.lastbackup message -i "\ No Complete Backup has been done yet, so this backup will be \ performed as a Complete Backup.\n\n\ Touch ENTER to continue." BTYPE="Complete Backup" else COMPFILE=/etc/.lastbackup DATEFILE=/etc/.lastpartial fi find / -newer $COMPFILE -print > $FORMROOT/BUfiles fi ## ## CREATE SAVE-SET LIST ## if [ ! -s $FORMROOT/BUfiles ] then clear message -iu "\ There are no files to be backed up at this time.\n\n\ Please touch ENTER to continue." exit fi ## THE NUMBER OF TAPES IS RETURNED AS THE ERROR NUMBER $SHROOT/TmakessList $OFFSET <$FORMROOT/BUfiles >ss.filelist NTAPES=$? ## CONFRIM EXTRA TAPES FMORE=`expr $NTAPES \> 1` if [ $FMORE = 1 ] then clear message -cu "\ This backup will require $NTAPES formatted tapes to complete. \ If they are not now available, stop here." if [ "$?" != "0" ] then rm -f ss.filelist exit fi fi ## CONFIRM OVERWRITE if [ "$OVWRIT" = "Yes" ] then if [ \( "$OWCONF" = "Confirm" \) -o \( "$fCONFM" = "Yes" \) ] then clear message -cu "\ Performing this backup will overwrite any existing \ information already on the tape." if [ "$?" != "0" ] then rm -f ss.filelist exit fi fi ## DO CAN'T OVERWRITE MESSAGE if [ "$OWCONF" = "No" ] then clear message -iu "\ Data already exists on this tape.\n\ Operation Canceled.\n\n\ Please touch ENTER to continue." exit fi fi ## BACKUP IN PROGRESS... clear newwind echo "\n\n\n\n\n\ Backup in progress.\n\ Do not remove the tape!\n\n\n\n\n\n" if [ $FMORE = 1 ] then eval set `wc -l ss.filelist` NFILES=$1 NBLOCKS=-1 $SHROOT/Tgetname -w "$BTYPE" "$TPNAME" "$SSNAME" "$SSCMNT" \ $OFFSET $NBLOCKS $NFILES ERC=$? ## UNLOCK THE TAPE FOR MULTIPLE TAPES $SHROOT/Tgetname -l if [ "$ERC" != "0" ] then message "\ An error has occurred while trying to write to the tape.\n\ Error number = $ERC." exit fi fi if [ "$TTYPE" = "UNIX PC" ] then echo "ss.filelist" > /tmp/BUlist$$ cat /tmp/BUlist$$ $FORMROOT/BUfiles | \ tapecpio -ocT124 2>/tmp/size$$ | \ dbuf -oT124O$OFFSET > $TAPEDEVNAME ERC=$? else OFFSET=0 cat $FORMROOT/BUfiles | \ tapecpio -ocT124 2>/tmp/size$$ | \ dbuf -oT124O$OFFSET > $TAPEDEVNAME ERC=$? fi if [ "$ERC" != "0" ] then if [ $ERC = 4 ] then message "$ABORT" else message "\ An error has occured while trying to create this backup-set. \ Check that a formatted tape has been properly inserted and has \ finished rewinding." fi date >> $LOGFILE echo "Error in backup during tapecpio:" >> $LOGFILE echo " ERC = $ERC, OFFSET = $OFFSET, TAPE = $TAPEDEVNAME" \ >> $LOGFILE echo >> $LOGFILE ## PLACE BAD BACKUP INFO ON BOTH TAPES. if [ $FMORE = 1 ] then message -i "\ Please reinsert the first tape of this backup-set.\n\ NOTE: All other tapes will not\n\ contain any valid data.\n\n\ Touch ENTER to continue." $SHROOT/Tgetname -t $SHROOT/Tgetname +l $SHROOT/Tgetname -v fi $SHROOT/Tgetname -w "BAD BACKUP" "$TPNAME" "" "" \ $OFFSET 0 0 exit fi eval set `grep "blocks" /tmp/size$$` NBLOCKS=$1 ## ## PERFORM VERIFY PASS. ## if [ "$VERIFY" = "Yes" ] then if [ $FMORE = 1 ] then message -c "\ Please reinsert the first tape. Allow it to rewind before \ continuing with the verify pass." if [ "$?" != "0" ]; then exit; fi fi clear echo "\n\n\n\n\n" $SHROOT/Tgetname -t clear echo "\n\n\n\n\n\ Performing verify pass.\n\ Do not remove the tape!\n\n\n\n\n\n" dbuf -iT124O$OFFSET"S"$NBLOCKS $TAPEDEVNAME > /dev/null ERC=$? if [ "$ERC" != "0" ] then message "\ An error has been discovered while trying to verify this backup. \ You should use a different formatted tape and try to perform this \ backup again." date >> $LOGFILE echo "Error in verify during tapecpio:" >> $LOGFILE echo " ERC = $ERC, TAPE = $TAPEDEVNAME" \ >> $LOGFILE echo >> $LOGFILE ## PLACE BAD BACKUP INFO ON BOTH TAPES. if [ $FMORE = 1 ] then $SHROOT/Tgetname -w "BAD BACKUP" "$TPNAME" \ "" "" 0 0 0 message "\ Please reinsert the first tape of this backup-set.\n\n\ Touch ENTER to continue." $SHROOT/Tgetname -t fi $SHROOT/Tgetname -w "BAD BACKUP" "$TPNAME" "" "" \ $OFFSET 0 0 exit fi clear echo "\n\n\n\n\n\ Verification complete.\n\n\n\n\n" fi date > $DATEFILE ## RELOCK THE TAPE FOR MULTIPLE TAPES if [ $FMORE = 1 ] then $SHROOT/Tgetname +l fi ## ## CREATE SAVE-SET INFORMATION TO PUT ON TAPE. ## if [ "$TTYPE" = "UNIX PC" ] then if [ $FMORE = 1 ] then NBLOCKS="-1" OFFSET=0 BTYPE="Backup Broken" fi eval set `wc -l ss.filelist` NFILES=$1 $SHROOT/Tgetname -w "$BTYPE" "$TPNAME" "$SSNAME" "$SSCMNT" \ $OFFSET $NBLOCKS $NFILES ERC=$? if [ "$ERC" != "0" ] then message "\ An error has occurred while trying to write to the tape.\n\ Error number = $ERC." exit fi else $SHROOT/Tgetname -3 fi ## ## REMOVE GARBAGE FILES ## rm -f /tmp/BUlist?* rm -f /tmp/size?* rm -f /tmp/error?* rm -f $FORMROOT/BUfiles rm -f ss.filelist ## ## SET UP Tbackup.menu AND Backup.menu WITH LAST BACKUP DATES ## BDATE=`cat -s /etc/.lastbackup` UDATE=`cat -s /etc/.lastpartial` if [ -z "$BDATE" ] then COM="has not been done yet." PAR="has not been done yet." set `cat -s /etc/.installdate` elif [ -z "$UDATE" ] then set $BDATE COM="last done on $2 $3." PAR="has not been done yet." else set $BDATE $UDATE COM="last done on $2 $3." PAR="last done on $8 $9." fi cat > $FORMROOT/Tbackup.menu << END Menu = Partial Backup includes files changed since $2 $3 Label = Backup to Tape Prompt =Complete Backup saves whole system, Partial Backup saves changed items. ## NOTE: ## ## It is important that each name be unique in the nineth ## (9th) character position. This insures that the data ## will be transfered onto the tape in the correct coded ## format. The current default for unrecognized backup ## types is BUPARTIAL. ## v Name = Complete Backup - $COM Name = Partial Backup - $PAR Name = Backup User Name = Backup Folders Name = Backup Files Name = Backup by Names END cat > $FORMROOT/Backup.menu << END Menu = Partial Backup includes files changed since $2 $3 Label = Backup Prompt =Complete Backup saves whole system, Partial Backup saves changed items. Name = Complete Backup - $COM Name = Partial Backup - $PAR Name = Backup one user END ## CONFIRM COMPLETE clear eval set $BTYPE if [ "$1" = "Partial" ] then message -iu "\ The partial backup of the files which have changed since the \ last complete backup is now finished.\n\n\ Please touch ENTER to continue." else message -iu "\ The backup is now complete.\n\n\ Touch ENTER to continue." fi # --------------------------------------------------------------------- # END OF EXECUTABLE PROGRAM Tbackup.sh # ===================================================================== 0707070000020026451006660001450001440000010302060000017757000001500000001525Tformat.form# # File: Tformat.form # # Tape format options menu. Called by Tformat.sh. # Form = Format Options Name = Tape Name: Prompt = Please provide a name for this tape. Frow = 0 Ncol = 1 Fcol = 13 Flen = 8 #Name = Perform surface test? #Prompt = Performing a suface test checks for bad spots. #Frow = 1 #Ncol = 1 #Fcol = 27 #Flen = 3 #Value = $VRFY #Rmenu = Yes or No #Menuonly Name = Overwrite existing data? Prompt = "Confirm" will prompt you before overwriting. Frow = 1 Ncol = 1 Fcol = 27 Flen = 7 Value = $CONF Rmenu = Confirm Overwrite Menuonly Menu = Type of Format Prompt = Cursor to desired type and press ENTER Name = UNIX PC Name = 3B Menu = Yes or No Prompt = Cursor to desired choice and press ENTER Name = Yes Name = No Menu = Confirm Overwrite Prompt = "Confirm" will prompt you before overwriting. Name = Confirm Name = Yes Name = No 0707070000020026571006660001460001440000010302570000017757000001300000003152Tformat.sh # Tformat.sh # PURPOSE: Format tape (instructions only, the actual operation # is done in diagnostics) # CALLED BY: Tape-kit # REQUIRED FILES: none # --------------------------------------------------------------------- # TERMCAP= export TERMCAP ## ## EXPLAIN WHAT THIS IS ALL ABOUT ## message -cu "\ Formatting a tape requires rebooting the \ system using the Tape Backup Diagnostic \ diskette. Please locate this diskette \ and press Enter to see instructions.\n\n\ NOTE: Since these instructions will not\n\ be present during the operation,\n\ you may want to write them down\n\ or refer to the Owner's Manual." if [ "$?" != "0" ] ; then exit ; fi ## ## DISPLAY INSTRUCTIONS ## clear newwind echo "\ 1. Close all windows except the Office.\n\ 2. Open the Office command window by touching the Cmd key.\n\ 3. Point to Shutdown command and press Enter.\n\ 4. Press Enter again to perform the system shutdown.\n\ 5. Insert the Tape Backup Diagnostic diskette.\n\ 6. After the system prompts you whether to\n\ reboot the system, press Return.\n\ 7. Tape Backup Diagnostics will take over\n\ and tell you how to format the tape.\n\ 8. It may be a good idea to format several tapes at a time.\n\ 9. After you finish the operation, remove the Tape\n\ Backup Diagnostic diskette and reboot the system.\n\n\ Touch ENTER to continue." read anykey # ---------------------------------------------------------------------- # EXECUTABLE PROGRAM ENDS HERE Tformat.sh # ====================================================================== 0707070000020026711007770000000000000000010303120000017757000001200000004064TgetFtypeR 4 .text .data 4@.bss 4 4.lib /< N1X OQ./HJf/H#0N/9 N1P./< /9 N1,P-@ g .0N1xN^NuNVH p./< S/< N1P n.N1P-@BJoTBB`< ."瀐"| A-H (0"nЩ4".fp`p-@RJg-n ."瀐"| 4# n.N1P$ ."瀐"| 8#p. n/( ."瀐"| A/N1P n. ."瀐"| A/N1X n. N1V6 ."瀐"| 23p.N1-@HnN1X @-H ."瀐"|  A-H n./( n/( (R/ n (l//< \/.N1 n h(HH gD Bgj UgZ ig8 og8 rg8 sg yf6|N`4|C`,|U`$|F`|D`|B` B.`|P ."瀐"| `B ."瀐"| B1 ."瀐"| 4B ."瀐"| 8BR mL N^NuNVBp./< q/< N1P`F ."瀐"| B1 ."瀐"| 4B ."瀐"| 8BR mN^NuNVp./</9 N1P./< /9 N1,P-@ g .0N1xp./< /< wN1P-@Jgvp./< /< N1PB`F ."瀐"| B1 ."瀐"| 8B ."瀐"| 4BR mpN^NuNv`NVp./</9 N1P./< /9 N1P-@ g .0N1xN^NuNVp./< /< N1PN^NuNVH 9 g2B`R ."瀐"| J1g mJf pLN^Nu g S ."瀐"| 8 fp` ."瀐"| 8(1 ."瀐"| 4 1Є`NV./</< N1P#  f .N1x./< /9 N1P-@ g .0N1x./< /9 N1P-@ g .0N1x./< /9 N1P-@ g .0N1x. N1B-@Jg .0N1xN^NuNVp./< N1X#  f .N1x./< /9 N1,P-@ g .0N1x./< /9 N1,P-@ g .0N1x./< /9 N1,P-@ g .0N1x. N1B-@Jg .0N1xN^NuNVBB`~p./< N1X# -y0 f4 nR f Jf . N1Rp .N1 f gp`p-@Jg~#0 9 N^NuNVN^Nu'%s' '%d' '%s' '%d' Updating the backup set block ... !DEFINEDdone. /dev/rft0!DEFINED%.4d%.2d%.2d%.2d%.2dBOGUS!DEFINED!DEFINED/tmp/tape.vtoc/tmp/tape.vtoc/dev/rft0Please wait for the tape to finish retensioning.@(#) TAPE BACKUP 1.00.000707070000020026641007770000000000000000010302730000017757000001300000004154TgetovwritR6 l .text .data l@.bss l l.lib p p/< pN1X OQ./HJf/H#0N> $LOGFILE echo "Error in show contents during Tgetname:" >> $LOGFILE echo " ERC = $ERC, TAPE = $TAPEDEVNAME" >> $LOGFILE echo >> $LOGFILE exit fi eval set $RET TNAME=$1 OFFSET=$2 RET=`$SHROOT/Tgetovwrit -b` ERC=$? if [ "$ERC" != "0" ] then message "\ An error has occured while trying to access the tape information." date >> $LOGFILE echo "Error in show contents during Tgetovwrit:" >> $LOGFILE echo " ERC = $ERC, TAPE NAME = $TNAME" >> $LOGFILE echo >> $LOGFILE exit fi eval set $RET OWRIT=$1 TTYPE=$2 if [ \( "$OWRIT" = "No" \) -a \ \( "$OFFSET" != "-1" \) ] then message "\ The tape provided contains no backup-set." exit fi while true do if [ "$TTYPE" != "3B2" ] then $SHROOT/TdsplSSs ERC=$? if [ "$ERC" = "1" ] then exit fi if [ "$ERC" != "0" ] then message "\ An error has occured while trying to access the tape information.\n\ Error number = $ERC." exit fi OFFSETS=`$SHROOT/TgetOffsets -o` eval set $OFFSETS if [ "$1" = "" ] then message -i "\ There is nothing contained in the indicated backup-set.\n\n\ Touch ENTER to continue." continue fi fi ## IF BROKEN SAVE-SET, THEN INFORM TO INSERT THE FIRST ## TAPE AND START AGAIN. if [ \( "$OWRIT" = "No" \) -a \ \( "$OFFSET" = "-1" \) ] then message "\ The contents of this tape begin on another tape. Please close the \ Tape Operations window, insert the first tape of this \ backup-set and start again." exit fi ## READ SAVE-SET INFORMATION clear newwind echo "\n\n\n\n\n\ Reading the tape.\n\ Please do not remove.\n\n\n\n\n" if [ "$TTYPE" = "UNIX PC" ] then echo "\c" > /tmp/ss.fl eval set $OFFSETS while [ "$1" != "" ] do tapecpio -icuxT32O$1 ss.filelist \ < $TAPEDEVNAME 2>/dev/null cat ss.filelist >> /tmp/ss.fl shift done mv /tmp/ss.fl ss.filelist OPT="-a" else $SHROOT/Tgetname -l dbuf -iT124O$OFFSET $TAPEDEVNAME | \ tapecpio -itcduT124 > ss.filelist 2> /dev/null ERC=$? OPT="-3" message -i "\ If you are reading from more than one tape, please reinsert \ the first tape before continuing.\n\n\ Touch ENTER to continue." $SHROOT/Tgetname -t $SHROOT/Tgetname +l $SHROOT/Tgetname -v if [ $ERC = 4 ] then message "$ABORT" rm -f ss.filelist exit fi fi if [ ! -s ss.filelist ] then message -i "\ There is nothing contained in the indicated backup-set.\n\n\ Touch ENTER to continue." rm -f ss.filelist if [ "$TTYPE" = "3B2" ] then exit else continue fi fi ## REDIRECT THE OUTPUT menu=Tredir.menu HELP="Show Contents" . $SHROOT/newform.sh if [ "$EXIT" = "Cancel" ] then if [ "$TTYPE" = "3B2" ] then exit else continue fi fi eval set $RET REDIR1=$2 REDIR2=$3 if [ "$REDIR2" = "" ] then REDIR2="$REDIR1" fi if [ "$REDIR2" = "Output to Printer" ] then clear echo "\n\n\n\n\n\ Queuing output for printing.\n\n\n\n\n" $SHROOT/TprintSS "$TTYPE" "$TNAME" < ss.filelist | lp if [ "$?" = "1" ] then message "\ There is no printer set up for this system." fi fi if [ "$REDIR1" = "Output to Screen" ] then clear menu=Tlist.menu HELP="Show Contents" $SHROOT/TmakeLmenu -s $OPT < ss.filelist > $FORMROOT/$menu . $SHROOT/cnclform.sh rm -f ss.filelist if [ "$EXIT" = "Enter" ]; then exit; fi fi rm -f ss.filelist rm -f $FORMROOT/Tlist.menu if [ "$TTYPE" = "3B2" ]; then exit; fi done # --------------------------------------------------------------------- # EXECUTABLE PROGRAM ENDS HERE Tinfo.sh # ===================================================================== 0707070000020026651007770000000000000000010302760000017757000001300000005052TmakeLmenuRL * .text .data *@.bss * *.lib . ./< .N1X OQ./HJf/H#0N> $LOGFILE echo "Error in restore during Tgetname:" >> $LOGFILE echo " ERC = $ERC, TAPE = $TAPEDEVNAME" >> $LOGFILE echo >> $LOGFILE exit fi eval set $NAME TNAME=$1 OFFSET=$2 OWRT=`$SHROOT/Tgetovwrit -b` ERC=$? if [ "$ERC" != "0" ] then message "\ An error has occured while trying to access the tape information." date >> $LOGFILE echo "Error in restore during Tgetovwrit:" >> $LOGFILE echo " ERC = $ERC, TAPE NAME = $TNAME" >> $LOGFILE echo >> $LOGFILE exit fi eval set $OWRT OWRIT=$1 TTYPE=$2 if [ "$OWRIT" = "No" ] then if [ "$OFFSET" = "-1" ] then message "\ The tape provided is the continuation of another backup-set. \ Please close the Tape Operations window, insert the first tape \ and start again." else message "\ The tape provided contains no backup-set. \ Nothing can be restored." fi exit fi ## ## WARN OF IMPENDING DOOM! ## clear message -iu "\ I M P O R T A N T\n\n\ Before restoring from a complete or partial backup, see the \ Restore instructions in the documentation.\n\n\ Please touch ENTER to continue." ## ## DISPLAY OPTIONS MENU ## if [ "$TTYPE" = "3B2" ] then fREDIR="Yes" else fREDIR="No" fi RETAIN="Yes" clear NOTDONE=true while $NOTDONE do menu=TrestOpt.form HELP="Restore Options" export RETAIN fREDIR . $SHROOT/shform.sh eval set $RET RETAIN=$2 fREDIR=$3 FOLDER=$4 if [ "$fREDIR" = "Yes" ] then if [ "$FOLDER" = "" ] then message "Please provide a destination folder name." continue fi OPT1=R CURDIR=`pwd`  if [ ! -d $FOLDER ] then mkdir $FOLDER > /dev/null 2>&1 if [ "$?" != "0" ] then message "\ The specified name cannot be used as a folder. \ Please provide a valid folder name." continue fi chown $LOGNAME $FOLDER fi cd $FOLDER else OPT1="" fi NOTDONE=false done ## SET "RETAIN NEWEST VERSION" FLAG if [ "$RETAIN" = "Yes" ] then OPT2="" else OPT2=u fi ## ## PRINT SAVE-SETS TO SELECT ## EXIT="Enter" while [ "$EXIT" != "" ] do clear if [ "$TTYPE" = "UNIX PC" ] then $SHROOT/TdsplSSs ERC=$? if [ "$ERC" = "1" ] ; then exit; fi if [ "$ERC" != "0" ] then message "\ An error has occured while trying to access the tape information.\n\ Error number = $ERC." exit fi ## OFFSETS CONTAINS EACH START BLOCK FOLLOWED BY ## ITS SIZE IN BLOCKS OFFSETS=`$SHROOT/TgetOffsets -s` eval set $OFFSETS if [ "$1" = "" ] then message -i "\ There is nothing contained in the indicated backup-set.\n\n\ Touch ENTER to continue." continue fi else message -iu "\ Restoring from a 3B2 tape.\n\n\ Please touch ENTER to continue." if [ "$?" != "0" ] ; then exit; fi fi ## ## RESTORE APPROPRIATE SAVE-SET INFO FILE ## if [ "$RTYPE" != "RESTORE Backup-set(s)" ] then clear newwind echo "\n\n\n\n\n\ Reading file information.\n\ Please do not remove the tape.\n\n\n\n\n" if [ "$TTYPE" = "UNIX PC" ] then echo "\c" > /tmp/ss.fl eval set $OFFSETS while [ "$1" != "" ] do tapecpio -icuxT32O$1 ss.filelist \ < $TAPEDEVNAME 2>/dev/null cat ss.filelist >> /tmp/ss.fl shift 2 done mv /tmp/ss.fl ss.filelist else $SHROOT/Tgetname -l dbuf -iT124O0 $TAPEDEVNAME | \ tapecpio -itcvduT124 > /tmp/files 2> /dev/null ERC=$? message -i "\ If you are restoring from more than one tape, please reinsert \ the first tape before continuing.\n\n\ Touch ENTER to continue." $SHROOT/Tgetname -t $SHROOT/Tgetname +l $SHROOT/Tgetname -v $SHROOT/TmakessList 0 "$TTYPE" \  < /tmp/files > ss.filelist rm -f /tmp/files if [ $ERC = 4 ] then message "$ABORT" rm -f ss.filelist exit fi fi if [ ! -s ss.filelist ] then message -i "\ There is nothing contained in the indicated backup-set.\n\n\ Touch ENTER to continue." rm -f ss.filelist if [ "$TTYPE" = "UNIX PC" ] then continue else exit fi fi fi PATTERNS= ## ## IF RTYPE = "Names", GET INPUT LIST ## if [ "$RTYPE" = "RESTORE by Names" ] then clear menu=Trestore.form HELP="Restore Names" . $SHROOT/cnclform.sh if [ "$EXIT" != "Cancel" ] then EXIT= elif [ "$TTYPE" = "3B2" ] then exit fi ## EXTRACT NON-BLANK ENTRIES FROM LIST fNONAMES=true ERC= shift for I in 1 2 3 4 5 6 7 8 9 do if [ "$1" != "" ] then NMPAT=`$SHROOT/TgetFtype "$1" < ss.filelist` ERC=$? if [ "$ERC" = "0" ] then PATTERNS="$PATTERNS $NMPAT" fNONAMES=false else message "\ The file '$1' does not exist in this Backup-set." if [ "$?" != "0" ] then EXIT="Cancel" break fi fi fi shift done if $fNONAMES then message -i "\ No selections were made, therefore no restore will be performed.\n\n\ Please touch ENTER to continue." exit fi fi ## ## IF RTYPE = "Folders" or "Files", ## SHOW CONTENTS, THEN CONFIRM REINSERT. ## MTYPE= EXIT= if [ "$RTYPE" = "SHOW and RESTORE Folders" ] then MTYPE="-d" fi if [ "$RTYPE" = "SHOW and RESTORE Files" ] then MTYPE="-f" fi ## ## BUILD, DISPLAY, AND RETRIEVE DATA FROM DESIRED MENU ## if [ -n "$MTYPE" ] then menu=Tlist.menu HELP="Restore File/Fol" $SHROOT/TmakeLmenu -r $MTYPE \ < ss.filelist > $FORMROOT/$menu clear . $SHROOT/cnclform.sh if [ "$EXIT" != "Cancel" ] then EXIT= elif [ "$TTYPE" = "3B2" ] then exit fi ## ## GET FILE LIST TO RESTORE ## eval set $RET if [ "$2" = "" ] then EXIT=Cancel if [ "$TTYPE" = "3B2" ] ; then exit; fi else shift while [ "$1" != "" ] do if [ "$MTYPE" = "-f" ] then PATTERNS="$PATTERNS $1" else PATTERNS="$PATTERNS '$1/*' $1" fi shift done fi fi done ## RESTORE IN PROGRESS clear newwind echo "\n\n\n\n\n\ Restore in progress\n\n\n\n\n\n" rm -f ss.filelist rm -f $FORMROOT/Tlist.menu if [ "$TTYPE" = "UNIX PC" ] then eval set $OFFSETS echo >> $RESTLOG date >> $RESTLOG while [ "$1" != "" ] do if [ "$2" = "-1" ] then ## IN THIS CASE, A NEW TAPE WILL BE INSERTED, ## SO READ IN THE NEW VTOC. $SHROOT/Tgetname -l dbuf -iT124O$1 $TAPEDEVNAME | \ execStrip tapecpio -icdv$OPT1$OPT2"T124" \ $PATTERNS >> $RESTLOG 2> /dev/null ERC=$? message -i "\ Please reinsert the first tape and wait for it to finish \ rewinding.\n\n\ Touch ENTER to continue." $SHROOT/Tgetname -t $SHROOT/Tgetname +l $SHROOT/Tgetname -v ERCV=$? else dbuf -iT124O$1S$2 $TAPEDEVNAME | \ execStrip tapecpio -icdv$OPT1$OPT2"T124" \ $PATTERNS >> $RESTLOG 2> /dev/null ERC=$? ERCV=0 fi if [ "$ERC" != "0" ] ; then break; fi shift 2 done else echo >> $RESTLOG date >> $RESTLOG $SHROOT/Tgetname -l dbuf -iT124O0 $TAPEDEVNAME | \ execStrip tapecpio -icdv$OPT1$OPT2"T124" $PATTERNS \ >> $RESTLOG 2> /dev/null ERC=$? message -i "\ If you are restoring from more than one tape, please reinsert \ the first tape before continuing.\n\n\ Touch ENTER to continue." $SHROOT/Tgetname -t $SHROOT/Tgetname +l $SHROOT/Tgetname -v ERCV=$? fi if [ "$ERC" = "4" ] then message "$ABORT" rm -f ss.filelist exit fi if [ "$ERC" != "0" ] then message "\ An error has occurred while trying to restore the selected \ backup-set(s). Check that a tape containing a verified backup-set \ has been properly inserted." date >> $LOGFILE echo "Error in restore during tapecpio:" >> $LOGFILE echo " ERC = $ERC, OFFSET = $OFFSET, TAPE = $TAPEDEVNAME" \ >> $LOGFILE echo >> $LOGFILE exit fi if [ "$ERCV" != "0" ] then message "\ An error has occured while trying to access the tape information.\n\n\ Check that a formatted tape has been properly inserted \ before beginning again." date >> $LOGFILE echo "Error in restore during Tgetname -v:" >> $LOGFILE echo " ERC = $ERCV, TAPE = $TAPEDEVNAME, TYPE = $TTYPE" \ >> $LOGFILE echo >> $LOGFILE exit fi rm -f ss.filelist ## RESTORE COMPLETE clear message -iu "\ Restore is now complete.\n\n\ Touch ENTER to continue." # --------------------------------------------------------------------- # EXECUTABLE PROGRAM ENDS HERE Trestore.sh # ===================================================================== 0707070000020027011006660001450001440000010304060000017757000001700000000305Ttapetype.menu# # # Menu = Select Backup Format Label = Select Backup Format Prompt = Select the desired backup format and touch  Enter. Name = UNIX PC - Multiple Backup-sets Name = 3B2 - Single Backup-set 0707070000020026601006660001450001440000010302610000017757000001400000002020cnclform.sh# # Menu/Form display utility. File: cnclform.sh # # This version allows cancel without exiting. Exit character # is exported in the variable $EXIT # # The variables that this module expects to be set are: # # menu - The name of the form/menu file in $UA to # display. # HELPFILE - The name of the help file in $UA to display # when 'Help' is pressed. # HELP - The help title to branch to for HELPFILE # #---------------------------------------------------------------------- FORMROOT=$UA while true do RET=`shform -u $FORMROOT/$menu` ERC=$? TEST=`expr $ERC \> 99` if [ $TEST = 1 ] ; then ERC=0; fi if [ "$ERC" != "0" ] then clear eval message -u "$ERROR Erc = \$ERC" exit fi eval set $RET EXIT=$1 if [ "$EXIT" = "Cancel" ] then break elif [ "$EXIT" = "Enter" ] then break elif [ \( "$1" = "Help" \) -a \( -n "$HELPFILE" \) ] then /usr/bin/uahelp -h $UA/$HELPFILE -t "$HELP" clear fi done export RET EXIT 0707070000020026761007770000000000000000010303510000017757000000500000011754dbufR 6 .text  .data @.bss  6.lib " "/< "N1X OQ./HJf/H#0N n rӨ` n  hA.N1V-@Jm 9 f 9 ` 9 -@p. .r //.N1P n h(HH"|0 1g n rӨ` n hA.N1V-@Jo# n h(HH"|0 1gn n rӨ`B9  n #  y JgDp./9 N1X# l*. /< /<0N1Pp.N1x`N n rӨ hJf 9 Ѐ.N1$ @#  A# J oN 9 r # . N1Jg. 9 N1R`. 9 N1# . p/N1nX. p/N1nXJ9 fNBp.N1xN^NuN`NV. h/< %/<0N1Pp.N1xN^NuNVHB.p./<S/9 N1P$|  &| .NS `^Jl0 0g$. /< /<0N1Pp.N1x. p/NX# .N8` J gB.N& + g(Jl$. /< /<0N1Pp.N1xS `\R.p./<S/9 N1PJl0 0g$.  /< /<0N1Pp.N1x. N1B.//9 N1P$g2Jl$. 1/< /<0N1Pp.N1xLN^NuJ.gJ g(K&J$L * g`NVHp./<S/9 N1P$|  &| .NJl. Y/< >/<0N1PJnp./<S/9 N1PJl* 0g. /<0N1Xp.N1xLN^NuJl* 0g. d/<0N1Xp.N1x. p/NX# .//9 N1P$f(K&J$L`NVH $nB&R`ժ * l" 9 ./ /9 N1,P$nJf%BL N^NuNVHBB.p./</. N1P Sf|Hn/. N1Pp0. g p.N1x. N @-H. N1B` 0f .fp .N1`Hn /< a/<0N1 . ~/< uN1RX @-H.HHg | ` | ..HHg | ` | //< /.N1 .N1F. /< N1RX @-H.HHg | $` | )./< /.N1P.N1Ft. 7/< .N1RX @-H.p/HnN1PHnN1 XSCB1 .eg .Ef p.N1x.HnN1X.N1F. B/< 9N1RX @-HJ.g. D/N1X.N1FJgp`p.HnN1X$m4. /< N1RX @-H.HHg | P` | U.Jg | @` | H//< /.N1 .N1F LN^NuNV 9 f 9 ` 9 -@. Z/<0N1Xp./<S/.N1PJl: 0g. 9 f | ` | ./< /<0N1Pp.N1xN^NuNVN^NuNVH Hn/.N1PJmp0.@`gp./< N1X$mv`Jg 0.nf. /< N1XHn/< N1PHn/< N1tPJmV0.ȰnfLJg 0.nf>.N1B |  L N^Nup.//N1P SJf .N1B`p.Hn/N1,PrfJnf@`|dbuf: Can't open %s Usage: dbuf -o[TO] > collection %s %s dbuf -i[TO] dbuf: Can't %s; aborting. read inputdbuf: Can't %s; aborting. read inputdbuf: Can't %s; aborting. read inputdbuf: Can't %s; aborting. write outputdbuf: Can't %s; aborting. read inputdbuf: Can't write output; aborting. dbuf: Can't write output; aborting. /dev/ttywTo EXIT - press followed by . To continue - insert next floppy %s and press the key. tapedisk/dev/ttyr/dev/ttywWaiting for tape retension. Error opening <%s> /dev/ttyr+The floppy %s is inserted incorrectly, it has an error, or the door is open. Please check the floppy %s drive. tapedisktapedisk/dev/ttyr+%s in progress - Do not remove the floppy %s. Back-upReadingtapediskdbuf: command terminated abnormally. dbuf: Can't %s; aborting write outputread input@(#) TAPE BACKUP 1.00.00@(#)adevname.c 1.2/dev/dev/0707070000020026741007770000000000000000010303250000017757000001200000004074execStripR (< .text( .data <@.bss < <.lib < </< . \UL\Leaving the Help System\US\ Press to leave the help system and return the display to \ the state it was in when you asked for help. \EOT\ Name = Tape Overview Llabel = " TAPE OVERVIEW" Slabel = "OVERVIEW" Branch = Using Help, Format, Backup, Show Contents, Restore Title = "Overview of the Tape Backup" Text = The Tape Backup system lets you protect your data by copying \ files from the hard disk to the tape. \ If you experience a problem \ and need to replace files on your hard disk, you can copy \ from the tape back to the hard disk. With the Tape Backup system, you can: o\IND\Format the tape (prepare the tape for use) o\IND\Back Up your information (copy from hard disk to tape) o\IND\Show the Contents of a tape (list the files) o\IND\Restore your files (copy from tape to hard disk) For more information on a selection, press one of the \ screen keys below. \EOT\ Name = Format Llabel = " FORMAT TAPE" Slabel = " FORMAT" Branch = Using Help, Tape Overview, Backup, Show Contents, Restore Title = "Formatting Your Tapes" Text = Formatting prepares a tape to accept information that you want \ to store. A tape must be formatted before it can be used. To \ format, you will need to shut down the system and reboot \ (restart) using the Tape Backup Diagnostic diskette. \UL\To shut down the system and prepare to format:\US\ 1.\IND\Close all windows except the Office window. 2.\IND\Press the key to open the Office command window. 3.\IND\Point to the Shutdown command and press . 4.\IND\Press again to perform the system shutdown. 5.\IND\Insert the Tape Backup Diagnostic diskette. 6.\IND\Press  when the system asks if you want to \ reboot the system. The Tape Backup Diagnostics disk will now tell you how to \ format the tape. (You may want to format several tapes at \ a time). When the formatting is complete, remove the Tape Backup \ Diagnostic diskette and reboot the system. \EOT\ Name = Backup Llabel = " BACKUP" Slabel = " BACKUP" Branch = Using Help, Tape Overview, Complete Backup, Partial Backup, User Backup, Backup File/Fold, Backup Names Title = "Backing Up Your Inform ation" Text = The Backup selection copies files from your hard disk to tape. There are six ways to back up information: \UL\Complete Backup\US\ copies all software and data files \ (except the foundation set) from your hard disk to the tape. \UL\Partial Backup\US\ copies all files that have been \ added or modified since the last Complete Backup. \UL\Backup User\US\ copies all folders and files belonging to \ the users you select. \UL\Backup Folders\US\ lists the folders in your Filecabinet \ and lets you select which ones to copy. \UL\Backup Files\US\ lists the files in your Filecabinet \ and lets you select which ones to copy. \UL\Backup by Names\US\ lets you type in the UNIX pathnames \ of the files you want to copy to tape. For more information on a type of Backup, press one of the \ screen keys below. \UL\Backup-sets\US\ A backup-set is a group of files that were backed up in \ one operation. For example, if you performed a Partial \ Backup and a User Backup in the same afternoon, you would \ have two backup-sets. If space permits, a maximum of nine \ backup-sets can reside on the same tape. \UL\UNIX PC or 3B2 Format\US\ Ordinarily, information backed up from a UNIX PC will be \ restored to a UNIX PC in case of problems. Therefore, you \ will normally back up in UNIX PC-multiple backup-set format. \ However, if you want \ to transfer information from the UNIX PC to a 3B2 computer, \ you can back up your files in 3B2-single backup-set format. \EOT\ Name = Backup Options Llabel = " BACKUP OPTIONS" Slabel = " OPTIONS" Branch = Using Help, Tape Overview, Backup, Complete Backup, Partial Backup, Show Contents, Restore Title = "The Backup Options Screen" Text = For every type of Backup, you must fill in the Backup \ Option screen. o\IND\You can change the name of the tape by typing a new \ Tape Name of up to 8 characters. o\IND\You must type in the name of the backup-set. o\IND\You can add a comment to further explain what the \ backup-set contains. o\IND\You can retain all information already on the tape and \ add the backup-set at the next free space on the tape; or you \ can add the backup-set at the start of the tape. o\IND\You can choose whether or not to perform a verify \ pass. (For most backups, you should perform this verify pass.) o\IND\If the information will be placed at the start of the \ tape, you must select whether you want to delete \ existing information on the tape. \EOT\ Name = Complete Backup Llabel = "COMPLETE BACKUP" Slabel = "COMPLETE" Branch = Using Help, Tape Overview, Partial Backup, User Backup, Backup File/Fold, Backup Names, Backup Options Title = "Complete Backup" Text = A Complete Backup copies all system software and data files \ from hard disk to tape. However, it does not copy the \ foundation set. A message tells you if you will need more than one tape to \ finish the backup. We recommend that you use a newly formatted tape or use a \ tape that contains information that can be deleted. Don't \ try to put a Complete Backup at the end of a nearly full tape. \UL\To perform a Complete Backup:\US\ 1.\IND\Point to |Backup to Tape| and press . 2.\IND\Select the tape format (UNIX PC-multiple backup-set \ or 3B2-single backup-set) and press . 3.\IND\Point to |Complete Backup| and press . 4.\IND\Fill in the Backup Options screen and press . \EOT\ Name = Partial Backup Llabel = " PARTIAL BACKUP" Slabel = " PARTIAL" Branch = Using Help, Tape Overview, Complete Backup, User Backup, Backup File/Fold, Backup Names, Backup Options Title = "Partial Backup" Text = A Partial Backup copies all files that have been added or \ modified since the last Complete Backup. A message tells you if you will need more than one tape to \ finish the backup. \UL\To perform a Partial Backup:\US\ 1.\IND\Point to |Backup to Tape| and press . 2.\IND\Select the tape format (UNIX PC-multiple backup-set \ or 3B2-single backup-set) and press . 3.\IND\Point to |Partial Backup| and press . 4.\IND \Fill in the Backup Options screen and press . \EOT\ Name = User Backup Llabel = " USER BACKUP" Slabel = " BY USER" Branch = Using Help, Tape Overview, Complete Backup, Partial Backup, Backup File/Fold, Backup Names, Backup Options Title = "Backing Up by User" Text = The Backup User selection lets you back up all files and \ folders belonging to one or more users. It backs up all \ user files and folders in the Filecabinet, \ Wastebasket, Clipboard, and more. A message tells you if you will need more than one tape to \ finish the backup. \UL\To perform a Backup by User:\US\ 1.\IND\Point to |Backup to Tape| and press . 2.\IND\Select the tape format (UNIX PC-multiple backup-set \ or 3B2-single backup-set) and press . 3.\IND\Point to |Backup User| and press . 4.\IND\Fill in the Backup Options screen and press . A selection screen appears listing all user logins. 5.\IND\Point to the first user login you want to back up \ and press or . 6.\IND\Point to and mark additional user logins. 7.\IND\Press when you are done. \EOT\ Name = Backup File/Fold Llabel = " FILE/ FOLDER" Slabel = "FILE/FOL" Branch = Using Help, Tape Overview, Complete Backup, Partial Backup, User Backup, Backup Names, Backup Options Title = "Backing Up by File or by Folder" Text = These selections list the folders or files currently stored \ in your Filecabinet. You may then choose which folders or \ files to back up. A message tells you if you will need more than one tape to \ finish the backup. \UL\To perform a Backup by File or by Folder:\US\ 1.\IND\Point to |Backup to Tape| and press . 2.\IND\Select the tape format (UNIX PC-multiple backup-set \ or 3B2-single backup-set) and press . 3.\IND\Point to |Backup Folders| or |Backup Files| and \ press . 4.\IND\Fill in the Backup Options screen and press . A selection screen appears that lists all file or folder names. 5.\IND\Point to the name of the first file or folder you want \ to back up and press or . 6.\IND\Point to and mark additional names. 7.\IND\Press when you are done. \EOT\ Name = Backup Names Llabel = " BACKUP BY NAMES" Slabel = "BY NAMES" Branch = Using Help, Tape Overview, Complete Backup, Partial Backup, User Backup, Backup File/Fold, Backup Options Title = "Backing Up by Name" Text = This option lets you type in the names of the files or \ folders that you want to back up. These files or folders \ can belong to any user. Backup by Names is for experienced \ users who know exactly which files or folders they want to \ back up. \UL\UNIX pathnames\US\ You must understand how to type a UNIX \ pathname to use this selection. To find a file or folder in your own Filecabinet, type: \IND\samplename To find a file in a folder in your own Filecabinet, type: \IND\foldername/filename To find files or folders belonging to other users, start with \ /u/userlogin. A sample pathname is: \IND\/u/userlogin/Filecabinet/foldername/filename \UL\Wild cards in UNIX pathnames\US\ If you are unsure of the exact pathname, or if you want to \ back up several files with similar paths, you can use wild \ cards in the UNIX pathname. There are two types of wild \ cards: o\IND\The question mark (?) represents any single character. \ For example, the following pathname: \IND\/u/userlogin/s?mple \IND\will back up both of the following: \IND\/u/userlogin/sample \IND\/u/userlogin/simple o\IND\The asterisk (*) will match no character, one character, \ or several characters. For example, the following pathname: \IND\/u/userlogin/*help \IND\will back up all of the following: \IND\/u/userlogin/help \IND\/u/userlogin/ohelp \IND\/u/userlogin/backuphelp Wild cards can appear anywhere in the userlogin, folder \ names, and file names. \UL\To Backup by Names:\US\ 1.\IND\Point to |Backup to Tape| and press . 2.\IND\Select the tape format (UNIX PC-multiple backup-set \ or 3B2-single backup-set) and press . 3.\IND\Point to |Backu p by Names| and press . 4.\IND\Fill in the Backup Options screen and press . A screen appears where you can type the pathnames. 5.\IND\Type the first pathname and press . 6.\IND\Type additional pathnames and press after \ each one. 7.\IND\Press when you are done. \EOT\ Name = Show Contents Llabel = " SHOW CONTENTS" Slabel = "CONTENTS" Branch = Using Help, Tape Overview, Format, Backup, Restore Title = "Showing the Tape Contents" Text = This selection lists the files that are stored on the tape. All tapes in the UNIX PC format can hold multiple backup-sets. \ Before you see the list of files on the tape, you must select \ the backup-set you wish to examine. The file names are listed by their UNIX pathnames. The \ pathnames look like this: \IND\/u/userlogin/folder/subfolder/filename \UL\To Show the Tape Contents:\US\ 1.\IND\Point to |Show Tape Contents| and press . A screen appears that lists all backup-sets stored on the tape. 2.\IND\Point to the word All to view all files on the tape, \ or mark each backup-set you want to view by pointing and \ pressing or . 3.\IND\Press . A selection screen asks how you want to view the file list. 4.\IND\Point to |Output to screen| or |Output to printer| \ and press . \EOT\ Name = Restore Llabel = " RESTORE FILES" Slabel = " RESTORE" Branch = Using Help, Tape Overview, Restore Options, Restore B-set, Restore Names, Restore File/Fol, Backup Title = "Restoring Your Files" Text = If you lose information, you can copy the files stored on \ tape back to your hard disk. These files will contain the \ same information as the day of your last backup. To help you restore just the files you need, there are four \ ways to restore: \UL\Restore Backup-sets\US\ copies all files in selected \ backup-sets from the tape to the hard disk. \UL\Restore by Names\US\ is an advanced selection that lets \ you type in the pathnames of the files you want to restore. \UL\Show and Restore Folders\US\ lists the names of all \ folders that were backed up in selected backup-sets. You \ can select folders from the list that you want to restore. \UL\Show and Restore Files\US\ lists the names of all files \ that were backed up in selected backup-sets. You can \ select files from the list that you want to restore. For more information on a type of Restore, press one of \ the screen keys below. \EOT\ Name = Restore Options Llabel = " RESTORE OPTIONS" Slabel = " OPTIONS" Branch = Using Help, Tape Overview, Restore B-set, Restore Names, Restore File/Fol, Backup Title = "The Restore Option Screen" Text = The Restore Option screen contains several questions that \ you must consider carefully. o\IND\Retain newest version of file? \IND\Select |Yes| to prevent an old file on the tape \ from replacing the current file on your hard disk. \IND\Select |No| if you want to replace current files. o\IND\Restore files to a different folder? \IND\Select |No| to restore files back to their original folders. \IND\Select |Yes| if you want to specify another folder \ that should contain the files. \EOT\ Name = Restore B-set Llabel = " RESTOREBY B-SET" Slabel = "BY B-SET" Branch = Using Help, Tape Overview, Restore Options, Restore Names, Restore File/Fol, Backup Title = "Restoring by Backup-set" Text = This selection lists the backup-sets on a tape. You can \ restore all the backup-sets to the hard disk, or you can \ choose which ones you want to restore. All files on the \ selected backup-sets are restored. \UL\To Restore by Backup-set:\US\ 1.\IND\Point to |Restore from Tape| and press . 2.\IND\Point to |Restore by Backup-set| and press . 3.\IND\Fill in the Restore Option screen. A list of all backup-sets stored on the tape appears. 4.\IND\Point to the word All, or mark each backup-set you want \ to restore by pointing and pressing or . 5.\IND\Press . \EOT\ Name = Restore Names Llabel = " RESTOREBY NAMES" Slabel = "BY NAMES" Branch = Using Help, Tape Overvi ew, Restore Options, Restore B-set, Restore File/Fol, Backup Title = "Restoring by Names" Text = Restore by Names lets you type in the pathnames of the files \ and folders that you want to restore. A pathname looks like this: \IND\/u/userlogin/folder/subfolder/filename \UL\Wild cards in UNIX pathnames\US\ If you are unsure of the exact pathname, or if you want \ to restore several files with similar paths, you can use \ wild cards in the UNIX pathname. There are two types of \ wild cards: o\IND\The question mark (?) represents any single character. \ For example, the following pathname: \IND\/u/userlogin/s?mple \IND\will restore both of the following: \IND\/u/userlogin/sample \IND\/u/userlogin/simple o\IND\The asterisk (*) will match no character, one character, \ or several characters. For example, the following pathname: \IND\/u/userlogin/*help \IND\will restore all of the following: \IND\/u/userlogin/help \IND\/u/userlogin/ohelp \IND\/u/userlogin/backuphelp Wild cards can appear anywhere in the userlogin, folder \ names, and file names. \UL\To Restore by Name:\US\ 1.\IND\Point to |Restore from Tape| and press . 2.\IND\Point to |Restore by Names| and press . 3.\IND\Fill in the Restore Options screen. A list of all backup-sets stored on the tape appears. 4.\IND\Point to the word All, or mark each backup-set you want \ to restore from by pointing and pressing or . 5.\IND\Press . A screen appears where you can type in the pathnames. 6.\IND\Type in the pathnames of the folders or files you \ want to restore and press after each name. 7.\IND\Press when you are done. \EOT\ Name = Restore File/Fol Llabel = "FILES OR FOLDERS" Slabel = "FILE/FOL" Branch = Using Help, Tape Overview, Restore Options, Restore B-set, Restore Names, Backup Title = "Restoring by File or by Folder" Text = These two selections list the names of the folders or files \ that were backed up in selected backup-sets. You can then \ select which files or folders to restore. \UL\To Restore by File or Folder:\US\ 1.\IND\Point to |Restore from Tape| and press . 2.\IND\Point to |Restore by File| or |Restore by Folder| \ and press . 3.\IND\Fill in the Restore Options screen. A list of the backup-sets stored on the tape appears. 4.\IND\Point to the word All, or mark the backup-sets you \ want to restore from by pointing and pressing or . 5.\IND\Press . A list of the folders or files in the selected backup-sets \ appears. 6.\IND\Mark the folders or files to be restored \ by pointing and pressing or . 7.\IND\Press when you are done. \EOT\ 0707070000020027041007770000000000000000010304120000017757000000600000000656FilesSize Install Name Remove T3BbackOp.form T3Bbackup.menu T3Binfo.menu Tape TbackOpt.form Tbackup.form Tbackup.menu Tbackup.sh Tformat.form Tformat.sh TgetFtype Tgetname Tgetovwrit Tinfo.sh TmakeLmenu Tmakedesc TmakessList TprintSS Tredir.menu TrestOpt.form Trestore.form Trestore.menu Trestore.sh Ttapetype.menu cnclform.sh dbuf execStrip ftape.hlp Files newform.sh shform shform.sh tapecpio tp.o TgetOffsets TdsplSSs Tsaveset.menu 0707070000020026611006660001450001440000010302630000017757000001300000002132newform.sh# # Menu/Form display utility. File: newform.sh # # This version allows cancel without exiting. Exit character # is exported in the variable $EXIT. The menu/form is displayed # in a newly created window, leaving all others untouched. # # The variables that this module expects to be set are: # # menu - The name of the form/menu file in $UA to # display. # HELPFILE - The name of the help file in $UA to display # when 'Help' is pressed. # HELP - The help title to branch to for HELPFILE # # --------------------------------------------------------------------- FORMROOT=$UA while true do RET=`shform $FORMROOT/$menu` ERC=$? TEST=`expr $ERC \> 99` if [ $TEST = 1 ] ; then ERC=0; fi if [ "$ ERC" != "0" ] then clear eval message -u "$ERROR" exit fi eval set $RET EXIT=$1 if [ "$EXIT" = "Cancel" ] then break elif [ "$EXIT" = "Enter" ] then break elif [ \( "$1" = "Help" \) -a \( -n "$HELPFILE" \) ] then /usr/bin/uahelp -h $UA/$HELPFILE -t "$HELP" clear fi done export RET EXIT 0707070000020027071007550000000000000000010304370000017757000000700000042340shformR`$v >v\ .text> .data v@.bss v v\.lib /< N1X OQ./HJf/H#0N.xN1FBt`p.N1N-@t tm. /.tN1^X @-Hpp.N1Bp.N1N3 *N1$p.p/N1 XN10Jg|J.fHn/<Wp/N1 Jfxp.0.r /N1X/p0.r /N1X/p0.r /N1X/p0.r /N1X`p.pP/p/p//N13 *B.np-@-@J fJ f p.N1xp-@./9 N1.X-@-@l y .^p/NXp-@./9 N1.X-@-@l fN1JlN1 g g g g gp-@./9 N1.X-@lp.09 *H/N1rX| y .^`|p-@./9 N1(X-@-@l y . p/NXp-@./9 N1(X-@-@l fN1JlN1 g g g g gp-@./9 N1(X-@l y . p/NX09 *H.p/NXJ.gJl. /.pN1X`.N.N @./< /.pN1P y (HHrg y  notBB ."y ʰnl`R .Ѐ"Ё"y "irA-H(g n.N @./< "/.pN1PRR` y  hv.N @./< &/.pN1PJ.g0JlJ./< */9 N1P. /.pN1X. >/.pN1Xp.N16N^Nu.N.NT @./< 7/.pN1P y -h nJg. N" @./< :/.pN1P`NVH $n&| v'Jg 'f' c'B | v L N^NuNV.$p/N1nXN^NuNVH>>>>>>>hhb|J g p.N1x  :d*.N1B @# 6f p.N1x# :# 6 pѹ 6 :.N1B @$H f p.N1xBp.N @"y #H"y " y B( y B y B y "H#J"J!I`Z m p.N1x| ~ :d*.N1B @# 6f p.N1x# : .R"| # 6p~ѹ 6 :.N1B @(H f p.N1x*Lpd# Bp.N $ .S"|  q"B!I& .S"|  q .S qB .S"|  qB( .S qB( .S"|  qB( .S qB( .S"|  q| .S qB^ .S"|  q!Lr .S q!Lv`.g dm p.N1xp.N @$B*BB P :l*.N1B @# 6f p.N1x# :%y 6 y 6BpPѹ 6 :RB`2.g ."9 Smt 9 dЀ"Ё./ N1NX @*H f p.N1xd (M .Ѐ"Ё .S"|  q!Mr .S q!Mvp.N @(BB, RB `p.N1x`r.gp.N @"y "`T.g$p.N( .S"|  q"D `(p.N1x`.gp.Nf @%H`.g&p.NL* .S"|  q"E!I`p.N1x`.g N .S"|  qF `p.N1x`.g N .S"|  qG `fp.N1x`X.g `Fp.N1x`8.g .S"|  q|`p.N1x`.g N6@`p.N1x`.g N@`p.N1x`.g N@`p.N1x`.g N@`p.N1x`~.g .N`jp.N1x`\.gp.N @%H`Bp.N1x`6p.N1x`*p. >Nx. >/.NhX`N y .Sm y ."hRp` . .N1# 2rfBJ gn y &h` JgB.B`Z"|  q./+N1XJf4 ."| 'q . q|`L 5 y .Sm y ."hRp` . .N1# 2RpPmJgpPm p.N1xBRHnNX @$HJg./.N1X n LN^Nu 9 :l*.N1B @# 6f p.N1x# :./9 6N1X$y 6gRչ 6 : J`NVH`0 y .Sm y ."hRp` . .N1# 2 2g 2g 2f 2f = 2g p.N1x y .Sm y ."hRp` . .N1# 2 2g 2g 2f 2ft 0 2mT 9 2nH RC 5 y .Sm y ."hRp` . .N1# 2p mJgp m p.N1x 2g" 2g 2g p.N1xAB0(HnN1VXLN^NuNV`ZNl`T 2g 2g 2f@ y .Sm y ."hRp` . .N1# 2 # 2f`N^NuNV`0 y .Sm y ."hRp` . .N1# 2 2f y .Sm y ."hRp# 2N^Nu. .N1`NV-nJf N^Nu n $fpѮ.N1 @`NVH$. l$$| ` gPJf j LN^Nu m n "| R` "|  q`NVp./. ."| A/N1PN^NuNVp./< H/< N1Pp./< Q/< 2N1Pp./< Z/< 2N1Pp./< c/< rN1Pp./< l/< N1PN^NuNVJ. gNB`< ."| A. .A/ .//. N4 R m`p./p//. N N^NuNVHJ f./.p` . -@Jg.N1 Jf ."| RB`< ."| rA$H ."| R#p./. ./1N1P./. .R//.N1 LN^Nu argv1 = %s rwMenuError%s %s %sFormError %d%s %s   " ' - 4 9 A J O T Y ^ d j s v y |       FormMenuNameLabelPromptRowsColumnsMultipleFrowNcolFcolFlenValueRmenuMenuonlyF1F2F3F4F5F6F7F8F0ClearDefault           $ ) . 3 8 = I R Y ` g p w                      "  ) 0 7 > D K U X [ ^ a d g j m w ~                             & + / 4 < BBackspaceTabEnterReturnEscDels_F1s_F2s_F3s_F4s_F5s_F6s_F7s_F8s_ClearLines_Creates_Undos_Finds_Moves_DeleteSelectRestarts_Saves_Redos_Replaces_Copys_DeleteChars_InputModeBackTabs_Exits_Suspends_Cmds_Prints_Begs_Prevs_Backs_Msgs_ResumeCloseClears_HomeRollUpRollDns_Helps_OptsCancels_Pages_Ends_Nexts_ForwardF1F2F3F4F5F6F7F8ClearLineCreateUndoFindMoveDeleteMarkRefSaveRedoReplaceCopyDeleteCharInputModeCancelSuspendCmdPrintBegPrevBackMsgResumeOpenRefreshHomeUpDownHelpOptsCancelPageEndNextForwardResetBreakORGANIZECLEANUP PROPTIESNOTICES Enter  .text<.data .bss vXX1.filegshform.c.text<Z.data @.bss vP.filegshf_parse.c.text> .data @^.bss .file gkeyname.c.textH.data _.bss slk_str timezone0tzname0patblack0patwhite04patgray0Tpatltgra0t_iob0_bufendt0_ctype0 sys_errl0_dbase0errno0environ0PC0BC0 UP0ospeed0LINES0COLS0wncur0 optind0"optarg0&opterr0*optopt0.sys_nerr02_sibuf0`_sobuf0d_tbase1shlbat1shlbatid1access1 alarm1brk1ibrk1sbrk1$chdir1*chmod10chown16chroot1<close1Bcreat1Hdup1Nexecl1Texecv1Zexecle1`execve1fexeclp1lexecvp1rexit1x_exit1~fcntl1fork1getpid1getpgrp1getppid1getuid1geteuid1getgid1getegid1gtty1ioctl1kill1link1locking1lseek1mknod1mount1msgctl1msgget1msgsnd1msgrcv1nice1open1openi1pause1pipe1profil1 ptrace1&read1,semctl12semget18semop1>setpgrp1Dsetuid1Jsetgid1Pshmctl1Vshmget1\shmat1bshmdt1hsignal1nstat1tstty1zfstat1stime1swrite1sync1syslocal1time1times1ulimit1umask1umount1uname1unlink1ustat1utime1wait1write1abort1abs1atof1clock1crypt1setkey1encrypt1ctermid1 ctime1localtim1gmtime1asctime1"tzset1(cuserid1.ecvt14fcvt1:gcvt1@fclose1Ffflush1Lfopen1Rfreopen1Xfdopen1^fread1dfwrite1jfrexp1pldexp1vmodf1|fseek1rewind1ftell1ftw1fgetc1getw1getcwd1getenv1getgrent1getgrgid1getgrnam1setgrent1endgrent1getlogin1getopt1getpass1getpw1getpwent1getpwuid1getpwnam1setpwent1endpwent1gets1getchar1 fgets1getutent1getutid1getutlin1$pututlin1*setutent10endutent16utmpname1<malloc1Bfree1Hrealloc1Ncalloc1Tcfree1Zmemccpy1`memchr1fmemcmp1lmemcpy1rmemset1xmktemp1~monitor1perror1popen1pclose1printf1fprintf1sprintf1fputc1putw1putpwent1puts1putchar1fputs1scanf1fscanf1sscanf1setbuf1sleep1ssignal1gsignal1strcat1strncat1strcmp1strncmp1strcpy1strncpy1strlen1 strchr1&strrchr1,strpbrk12strspn18strcspn1>strtok1Dstrtol1Jatol1Patoi1Vswab1\system1btmpfile1htmpnam1ntempnam1tttyname1zisatty1ttyslot1ungetc1_filbuf1_flsbuf1lmul__1lmul1ldiv__1ldiv1lrem__1lrem1aldiv1almul1alrem1ulmul1uldiv__1uldiv1ulrem__1ulrem1qsort1l3tol1ltol31tgetflag1tgetent1 tgetstr1tgetnum1tgoto1tputs1"form1(menu1.message14setattr1:pb_open1@adf_gtxc1Fadf_gtwr1Lpb_gets1Rpb_check1Xpb_weof1^pb_seek1dpb_puts1jpb_name1ppb_empty1vpb_gbuf1|adf_gtto1wrefresh1track1wcreate1initscr1cbreak1attroff1nl1attron1flushinp1noecho1inch1getch1savetty1resetty1echo1nocbreak1nonl1wdelete1wprexec1wpostwai1wgetc1kcodemap1keypad1 wsigintr1wind1wsigcatc1winit1$wsetbuf1*iswind10wexit16endwin1<wgetpos1Bwgoto1Hwinstr1Nwreadmou1Twsetmous1Zwgetmous1`wnl1fwndelay1lwprompt1rwguser1xwcmd1~wslk1wlabel1wuser1wprintf1printw1wputc1wputs1wrastop1wselect1wgetsel1wsetstat1wgetstat1setty1fixterm1physclr1resetter1setterm1getterm1baudrate1parselin1slkcol1setjmp1longjmp1afmulf1afdivf1afaddf1_cvfd1 _cvif1&fltused1,syment12fmul18fdiv1>fadd1Dfsub1J_cvdf1P_cvdi1V_cvid1\_cvfi1bafadd1hafsub1nafsubf1tafmul1zexhelp1tolower1wicon1wicoff1toupper1l64a1a64l1_bufsync1setuname1auldiv1eprintf1dbsub__1dbadd__1dbdiv__1dbmul__1ltodb__1dbtol__1dbtofl__1fltodb__1ltofl__1fltol__1ultodb__1ultofl__1aulmul1 afdiv1dbtst__1fltst__1plock1"dial1(callout1.undial14drand481:erand481@lrand481Fmrand481Lsrand481Rjrand481Xseed481^lcong481drand1jsrand1pftok1v_startmain<_end form_ptr menu_ptr buffs formbuf wn *fixoutwind_sc$parse_fi>set_slkkeynamekw_tbl @ff_ptr .last_chr 2heap_ptr 6room :slk_line >max_item get_tokZget_strRget_num2init_slkhdflt_slkskp_ttksub_strskp_tnlJsub_line k1_tbl k2_tbl fk_tbl Rfk_names rua_wslk_etext>etext>_edata vedata vend 0707070000020026621006660001450001440000010302650000017757000001200000001777shform.sh# # Menu/Form display utility. File: shform.sh # # This version exits when the user presses Cancel or Exit. # The shell variable $RET holds the returned information. # # The variables that this module expects to be set are: # # menu - The name of the form/menu file in $UA to # display. # HELPFILE - The name of the help file in $UA to display # when 'Help' is pressed. # HELP - The help title to branch to for HELPFILE # #---------------------------------------------------------------------- FORMROOT=$UA while true do RET=`shform -u $FORMROOT/$menu` ERC=$? TEST=`expr $ERC \> 99` if [ $TEST = 1 ] ; then ERC=0; fi if [ "$ERC" != "0" ] then clear eval message -u "$ERROR" exit fi eval set $RET if [ "$1" = "Cancel" ] then exit elif [ "$1" = "Enter" ] then break elif [ \( "$1" = "Help" \) -a \( -n "$HELPFILE" \) ] then /usr/bin/uahelp -h $UA/$HELPFILE -t "$HELP" clear fi done export RET 0707070000020026751007770000000000000000010303300000017757000001100000037074tapecpioRr - <;F .text- .data <4@.bss < <;F.lib E E/< EN1X OQ./HJf/H#0N/N1x0<N@NVp# AzJ9 Azg n3 Az3 A|` n3 Az3 A| 9 AzN^NuNVH p.p /N1nX n h -gNN13 App.N1N13 Ar# =` n hHH6 Bb@0; NJC^tf|Ry ;`# ` n hA.N1V-@Jmr #  n h(HH"|0 1g n rӨ` y ;f. /<0N1X` n hA.N1V-@Jmz y ;f 9 ` 9 -@p. .r //.N1P n h(HH"|0 1g$ n rӨ`Ry ;`Ry ;`3 ; ov Tl T"n &q "| =#R`Ry ;` gN 3 ;` gN p. n /(N1 Xrf& n ./< /<0N1Pp.N1x n ./< ;N1X. /< ;N1X. R/< ;N1tXp09 V @f3 ;3 R An`Ry ;`Ry ;`Ry ;`Ry ;`Ry ;. /< N1RX @# =. /< N1RX @# =J =g"fp. /<0N1Xp.N1x`NRy ;`Ry ;Ry ;`6Ry ;`Ry ;`&Ry ;`Ry ;`3` ` R9 (`N  n rӨ hJfJy ;f. /<0N1Xp.N1x y ;fJJy ;g. 7/<0N1Xp.N1x  fV. `N1# `>Jy ;g. N1B @# ;# ;`. N1B @# +# ; 9 # ;#  ;09 ;H g g$ f~. ;N1 "| ;E`X. N& &JgN1.N1pN1j@3 "3 $N%`b09 HL./9 N\X`BN . N&6 &JgN%R`. N (Jg . N*`p# ;. N-@` o <` .$09 ;Hg./< +N` ./< NXJ ;gtJy ;g"09 ;Hg ./< +`./< NX.09 ;Hg | +` | //9 ;N1PJl. /< /<0N1PJn8J ;gt. ;N1Bp09 x./< N10XJl$.0/< /< /<0N1 . N./< NzX//< NPJy ;gFJy ;g"Jy ;g . N`". N1`Jy ;g . N1Jy ;f N `Jf0. N 9 r . 9 ;N1./< /<0N1Pp.N1xL N^NuNnJg. NJf0Jy ;f <  r29 HЁ./< rNX`p./< N1X# ;l. /< `2Jy ;g09 HL./9 N`" <  r29 HЁ./< rN|X. N-@` o <` .$.09 ;Hg | +` | //9 ;N1,PJl. /< /<0N1P`&09 ;Hg./< +N` ./< NXJnj. ;N1BJy ;g. D/< N1XJy ;gl. /< /<0N1P`N. /< N1X3q rp# AzJ9 AzgB Az3 A| 3 Az `B Az3 Az 3 A| . N1 R@3 Jy ;g$p.N&09 HL./9 N`" <  r29 HЁ./< rNX09 ;Hg. /9 ;N`. /9 +NX. ` NJgJy Atg"Jy ;f. /< /<0N1P. N$Jgv`R |  0/8g | A8./ N1XJy ;gNJy AtfD09 Any 2f4. ;/< N1XJlV. ;N1. ;N. ;/< N1XJl(. ;/< /< /<0N1 `B. ;/< N1XJlF. ;N1R l. ;N$Jg f.0/< ;/< '`"B` f.. ;/< /< T/<0N1 p.N1x. Nl./< N`X//< `. ;N# ;g,p./< N1X# ;l*. /< m/<0N1P. ;N1B`-y @` o <` .$./< /9 ;N1,PJl. /< u`.J ;g6./< /9 ;N1PJl. /< /<0N1P`. r JjDD`ѹ ;JnV. ;N1BJy ;g. D/< N1XJ ;g. ;N1Bp09 x./< ;N10XJl$.0/< ;/< /<0N1 . N./9 D/< ;NPJy ;g. ;N1`zNV. )/< /< /<0N1 p.N1xN^NuNVH$| <`. /< V/<0N1P.N1 @ f pLN^Nu .f */fT./< N1X. 2/ N1tXJm09 6y 4 B@fp`p3 At B`g B g Bfp`p3 Av3q r. N1 R@3 3 : z3 < |3 2 t3 4 v3 6 xp# AzJ9 Azg # H Az3 A| 3 Az `# H Az3 Az 3 A| 3 8 ~p09 x f 9 @`p-@p# AzJ9 Azg# Az3 A| 3 Az `# Az3 Az 3 A| 3 > Jy ;g.Np`PNV. /./< N1 XHR//9 H09 >H/09 8H/p09 pL |N^Nun+HH&np`p*fR`R./ NX`Jfp`p`NVH $n&n Jf pL N^NuJg. JR/NXJg`p`NVH$nN1$g. N1԰f`2p.N1Bp./ /< /< N1T p.N1x 9 @g pLN^Nup`NVH $n$. -B-JJy ;f Jy ;g j DD`gB2( RJjDD`$` CT SJfJy ;g$.&n -@g\ j DD`g$ R-@`B3R .r҂c`-B`B3R .r҂e V"$ SJgp=S67nX`Jy ;gT&J -@g-B`B3R .r҂e V"$`=S67nX SJfL N^NuNVH$nJy ;g #  # .  / N1XLN^NuNVHBB.p./</. N1P Sf|Hn/. N1Pp0. g p.N1x. N, @-H. N1B` 0f .fp .N1`Hn/< /<0N1 . /< N1RX @-H.HHg | Q` | V..HHg | G` | L//< /.N1 .N1F.  /< N1RX @-H.HHg | z` | ./< /.N1P.N1Ft. /< N1RX @-H.p/HnN1PHnN1 XSCB1 .eg .Ef p.N1x.HnN1X.N1F. /< N1RX @-HJ.g. /N1X.N1FJgp`p.HnN1X$m4. d/< [N1RX @-H.HHg | ` | .Jg | ` | //< g/.N1 .N1F LN^NuNVH $nt&J`d /fZgTB. R/ N1tXrf8Jy ;g.N$g&/`4. /<0N1XpL N^Nu/RJfpft `NV. /< N1X @-H./</< ;N1P.N1Jg p.N1x. ;N1 # ="| ;/N^NuNVH $n-| <-JB&| < /f( J L N^Nu /fA-HA-HRRJgg&nBB` /fRRJf&nJg2 ."ЀЁS-@"| y hg0`09 ""y if 09 $ig. A~NVpN^Nu. A~N1Bp`NV y ;fN@` y ;fNJfpN^Nu. C/< :N1RX @-H09 $H./< E/N1P.N1F. /< N1RX @-H.p/HnN1PHnN1 XSCB1 .eg .Ef p.N1x.N1F`2NVHt./</.N1P Gf$Hn/<G/.N1 nft LN^NuNVN^NuNVH Hn/.N1PJmp0.@`gp./< 0N1X$mv`Jg 0.nf. 5/< N1XHn/< N1PHn/< N1tPJmV0.ȰnfLJg 0.nf>.N1B |  L N^Nup.//N1P SJf .N1B`p.Hn/N1,PrfJnf@`@(#)cpio.c 1.7 ?z../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../..//dev/rfp020 A*Not valid for 'p' option! cannot write in <%s> //dev/ttyr/dev/ttywCannot rename (/dev/tty missing) Options must include o|i|p Pass and Rename cannot be used together `B' option is irrelevant with the '-p' option <%s> ? Cannot read %s %s TRAILER!!!TRAILER!!!Cannot write %s Cannot chmod <%s> (errno:%d) Use `-d' option to copy <%s> Cannot link <%s> & <%s> Cannot create directory for <%s> (errno:%d) Cannot link <%s> & <%s> <%s> ? Cannot read %s Cannot write %s Cannot chmod <%s> (errno:%d) %ld blocks Usage: cpio -o[acvB] collection %s %s cpio -i[cdmrstuvfB6] [pattern ...] ? %.6o%.6ho%.6ho%.6ho%.6ho%.6ho%.6ho%.6ho%.11lo%.6ho%.11lo%s%6ho%6ho%6ho%6ho%6ho%6ho%6ho%6ho%11lo%6ho%11loOut of phase--get help TRAILER!!!Rename <%s> Skipped ./...Cannot create directory for <%s> (errno:%d) Cannot create directory <%s> (errno:%d) Cannot chmod <%s> (errno:%d) Cannot chown <%s> (errno:%d) cannot unlink current <%s> (errno:%d) current <%s> newer Attempt to pass file to self! Cannot create directory for <%s> (errno:%d) Cannot mknod <%s> (errno:%d) Cannot create directory for <%s> (errno:%d) Cannot create <%s> (errno:%d) I/O failureCan't %s; aborting. read inputI/O failure on headerCan't %s; aborting. read inputI/O failureCan't write output; aborting. I/O failure on headerCan't write output; aborting. %s linked to %s Cannot create directory for <%s> (errno:%d) Cannot link <%s> & <%s>. Too many links No memory for links %-7o%-6s%-6s%-6d%7ld %s %s */bin/mkdirmkdir/dev/ttywTo EXIT - press followed by . To continue - insert next floppy %s and press the key. tapedisk/dev/ttyr/dev/ttywWaiting for tape retension. Error opening <%s> /dev/ttyr+The floppy %s is inserted incorrectly, it has an error, or the door is open. Please check the floppy %s drive. tapedisktapedisk/dev/ttyr+%s in progress - Do not remove the floppy %s. Back-upReadingtapediskmissing 'd' option pwdrCannot chdir (no `d' option) Cannot chdir - no write permission Cannot chdir /etc/dismount -f >/dev/tty 2>&1/dev/ttywThe inserted floppy disk is out of sequences or it has an error. To EXIT - press followed by . To continue - insert floppy disk # %d of this set and press . /dev/ttyr@(#) TAPE BACKUP 1.00.00@(#)adevname.c 1.2/dev/dev/0707070000020026771007770000000000000000010303560000017757000000500000040010tp.oR8(p < .text<% .data $8@.bss  NVH$| .N$fLN^Nup./p/NP#f  ` 9r Ѐ"|@A#` cp./< NXB .p#ByN##`jNV9 1g N^NuN$ByNHp./9NXp./< NX`NVH9 1gLN^Nu9gByp#N(.S0. H/N|Xp0..N $g y y 0yN\.S0. H/N0X`nNVH$y9 1gxp .`p./ NXJy fp#  # # # y y 0yN.S/.NXLN^NuNVH $n0*Hr$&| .B %y(+g&*f|".NL N^Nu9fh9f:7| y 0p<./</<NPp./<NXy HC4 1Ъ&p0+. N5@> 5@fB09y Dg4p.09/p09/NPy6. /9 / N P.Np## NB9g6yp`NVH $.&. (.$| .  SgP SgT Sg Sg Sg Sg Sg. f"#S` `B9 `J9 gJy f `&y`p./ NXJy f+g "` 9 萫$#`9f Byp09Ѐ"| t01y y 0 SfT `JJ9 g Sf:B9 yyy y 0`pL N^NuNVH$.p. @H"| f/1NXJgJ9 gp./N&XLN^Nup.//9/<ZN `NVH$.p. @H"| f/1NXJgJ9 gp./NXLN^Nup.//9/<ZN `NVH $n(j, *r $p./9A/NP./ NX @ й @&H KX0(@r2$0+@r2& y"A 0 y"A 1A *й @ L N^NuNVH<$y &y (y *y  . R@D@@?40. @r2B4 .@?r2B3J.f40@@@`Zy40@@:p0r2?g0. @r2B4 .@?r2B30@@:L<N^NuNVH$y`p./ NX*fp $%|%n%n Bj.N.N*gB LN^NuB J`NVH$| .9&y (y f. Nx`P*g *gprg`J*f:65|A"|  0B*Jyg&y09 ty y 0By5j5jB4p09 "r2*.Nr2%A8t`0HC4B0HC4BRB Bm0@@g`p*gprfx`Jt+g2p ./</<NPp./<NXSBfx`N(gp LN^Nup`NVH $n&n Sy Ry09ke$ByRy0+ yb ByRy4Jy g( pL N^NuJy7kp09..p09,/p09*/N,PJ- fp09*`Jkg$3<y+H@8Bk``p09@f 9 fJ- fHp09r2+Sf*f| BmB- +|p0+`- HH g g2 g gS9RyP./9 N`B- B`B- B0-kg49./ N XJgv=y=y0.Bgp.HnHnNP`=k=yp09.p0./p0./NPp0../ N`*fL09.kg@-j gD n0(yf n(fpL<N^Nu| +|+|| ;y;k;|p0-.p09/p0+`| | +|+|Jy.fp`p;@0+R@;@;y.p0-.p09/p0+/NdP.NR`$p09..p09,/p09*/N4Pp`NVH<$| . nJPf n JPg n r2p0* . N"nQ4x&`RDRCp0r2* 剰d"p0Ѐ"|:10Hr2Ё2HdD n 2H 00Hr2* .N"n2J.gB n 0yg4yr2ҁ | t00y y 0 n 3L7FP6Xnx8 !#"$6<=&68 D J%R%6%$C$*08%vEF%%%GHC%"%FIh2|J121KL    %M N %&%,%4%>%L%T%Z2`Ojr2zP2O%)Q%21RLSTM.%8%B2L1TR^1hU|%%V%% X<2BOP1Vb2l1tR~%F% %%T6`jt|6$C66%OOP% &.>F%T\bhr6\#^  \ & J# P V^  a b      $ * 0 p v    # C Hd v |6    V  O  P    "O : Hf G H C 6 6 ,% 2% 8% D% J% T% \% b% l% r% ~%  % %  V %   )*)bff&))^fz#6666 h.6>iVCj6666666j$$C$6 6*6<#LMX^dj$n#t$z6   G%%V%%%  %$%.%4:Hjbak  C$ 8@FPZdjpx% (%%%%%%N"N&%,N<.B/L_T.d/j.n%v%z%%`%%(Nl%% %%$l8%B%L%d%v%~%%l%%SH%N%V^plll V%l% V%./%XOnSS.SSO.SS2OHSN.v%e%%%O% %>%d%t)|Q%O%)Q%% O"S0%:%D%b(f&J O *06@ON(NSS . .filegft.c.textZ.data t.bss .filegftlo.c.textw.data tf.bss .filegftwhat.c.text4.data .bss tdma_flatdmacnttcr_savetp tpdrv tpintrptsvadtsutltptab,tpbuf1Dtpbuf2Dcurbufprevbuftpreal>tp_defec`tpdefaul tpsw .secbufstreamin prevvadd prevcnt tpmapped xmem tmaxvad tplock nxtcylnxttrktpinittpreleasgetslotuvadallocset_inttpburst.tpopencleartimvadfreeclr_inttpclosetptimertpioctltpreadvh jtpstrateZsleeptpstartlboltiodonewakeuptimeoutlrem__ulrem__chkdefecVspl5splxxorbpcurtrkstrmcode taltbuffptoxfrxbufclearbufzbldxbufeprintftpresetlfptintrtpunmapDtpreadtpwritephyscktpphysiophysiotpiomap btpsetdma mapvtoptetprdblk iowaittpendit lmul__tprdvtocuseraccspl6vsmapmunlocktpstatxorbufNcpbufftwhat40707070000020026721007770000000000000000010303150000017757000001400000004116TgetOffsetsR Nd .text .data N@.bss N Nd.lib /< N1X OQ./HJf/H#0N