\scrollmode
\documentstyle[11pt]{article}

\setlength{\topmargin}{0cm}
\setlength{\textheight}{21cm}
\setlength{\oddsidemargin}{0.5cm}
\setlength{\evensidemargin}{0.5cm}
\setlength{\textwidth}{15cm}
\setlength{\parindent}{0cm}
\pagestyle{headings}

\newcommand{\note}[2]{\begin{description} \item{\sl #1:}{\\#2}\end{description}}
\newcommand{\bsl}{$\backslash$}
\newcommand{\bup}{{\tt Backup\-ST}}
\newcommand{\bai}{{\it archive index}}
\newcommand{\bfr}{{\it Bfront}}
\newcommand{\key}[1]{{\tt #1-key}}
\newcommand{\menu}[1]{{\tt #1-menu}}
\newcommand{\alt}[1]{\hfill \makebox[0.3in]{\vline\ $\Diamond$ #1}}
\newcommand{\ctrl}[1]{\hfill \makebox[0.3in]{\vline\ $\wedge$ #1}}
\newcommand{\kc}{{\it keycommand}}
\newcommand{\ab}{{\it archived bit}}

\title{BFRONT --- A \bup\ frontend}
\author{
	F.J.R. Appelman,\\
	University of Utrecht,\\
	3D Computer Vision Research Group,\\
	The Netherlands. \\
	email: fred@cv.ruu.nl
	}
	
\begin{document}
\maketitle

\section{Info}
	\bfr\ is a frontend for the \bup\ program. This program makes 
	is possible for novice users to use the powerfull posibilities 
	of the \bup\ program. This document will not give a 
	description and/or explanation of the \bup\ program. A 
	separate document describes the \bup\ program.
	
\section{Starting the program}
	\label{start}
	Start the application ({\it \bfr}) by double clicking from the 
	desktop. The resource file {\it resource.rsc} must be present 
	in the same folder as the \bfr\ program. If present the 
	default settings of the program will be read form the file 
	{\it bfront.dat}. If the file is not present, this will be 
	silently ignored. 
	
	A welcom box will be presented for the period of 1.5 seconds. 
	During this time the mouse is disabled. After the welcom box, a 
	permanent box is drawn on the desktop. The program is always 
	started in {\tt List} mode.
	
	\bfr\ is a frontend to the \bup\ program. The \bup\ program 
	will have its own screen memory during execution. You can 
	toggle between the \bfr\ screen and the \bup\ screen by using 
	the \key{ESC}.
	
	The \bup\ program has both a mouse and a keyboard interface.
	The keyboard commands (\kc) are an equivalent to the 
	mouse commands. The \key{ESC} is the only \kc\ which 
	does not have a mouse equivalent.

\pagebreak
\section{DESK}
	\label{desk}
	\begin{tabular}{| *{6}{l}|}\hline
	Desk\ \  & File\ \  & Mode\ \  & General\ \  & Backup\ \  & 
	Restore\ \  \\ \hline
	\multicolumn{1}{|l|}{About Bfront $\ldots$} &
	\multicolumn{5}{l}{} \\ \cline{1-1}
	\end{tabular}
	\medskip
	
	In the \menu{DESK} you can get information about the 
	\bfr. It will inform you that \bfr\ is free of charge. I 
	don't believe in the share-ware concept. 
	
\section{FILE}
	\label{file}
	\begin{tabular}{| *{6}{l}|}\hline
	Desk\ \  & File\ \  & Mode\ \  & General\ \  & Backup\ \  & 
	Restore\ \  \\ \hline
	\multicolumn{1}{l}{} &
	\multicolumn{1}{|l|}{Start Selected mode \alt{S}} &
	\multicolumn{4}{l}{} \\ \cline{2-2}
	\multicolumn{1}{l}{} &
	\multicolumn{1}{|l|}{Save default configuraton \ctrl{D}} &
	\multicolumn{4}{l}{} \\
	\multicolumn{1}{l}{} &
	\multicolumn{1}{|l|}{Read configuraton $\ldots$ \ctrl{R}} &
	\multicolumn{4}{l}{} \\
	\multicolumn{1}{l}{} &
	\multicolumn{1}{|l|}{Save configuraton $\ldots$ \ctrl{S}} &
	\multicolumn{4}{l}{} \\ \cline{2-2}
	\multicolumn{1}{l}{} &
	\multicolumn{1}{|l|}{Quit \ctrl{Q}} &
	\multicolumn{4}{l}{} \\ \cline{2-2}
	\end{tabular}
	\medskip
	\subsection{Start selected mode}
		This will start the \bup\ program. The first time 
		\bfr\ is started, this entry of the menu will not be 
		enabled. If the current mode (See Section~\ref{mode}) is
		{\tt List} or {\tt Restore} this menu entry is enabled 
		if the location of the \bup\ program is defined 
		(See Subsection~\ref{general-backupst}). If the mode is 
		{\tt Backup} both the location of the \bup\ program 
		and the data to be stored 
		(See Subsection~\ref{backup-path}) have to be specified 
		before this menu entry is enabled. This action can 
		also be started by the \kc\ {\tt ALT-S}.
	\subsection{Save default configuration}
		\label{save-default}
		This will store the current configuration under the 
		name {\it bfront.dat}. This configuration will 
		automatically be read (See Section~\ref{start}) the next 
		time \bfr\ is started. In the configuration file the 
		following items are stored:
		\begin{itemize}
		\item Verbosity 
			(See \ref{general-verbosity})
		\item Sectors per track 
			(See \ref{general-sectors})
		\item Tracks per side
			(See \ref{general-tracks})
		\item The path to \bup
			(See \ref{general-backupst})
		\item The used drive
			(See \ref{general-drive})
		\item The used floppy type
			(See \ref{general-type})
		\item Archive bit mode
			(See \ref{backup-archive})
		\item Verify mode
			(See \ref{backup-verify})
		\item Backup mode 
			(See \ref{backup-full})
		\item Format mode
			(See \ref{backup-format})
		\item The backup path
			(See \ref{backup-path})
		\item The restore date mode
			(See \ref{restore-date})
		\item The overwrite mode
			(See \ref{restore-overwrite})
		\item The interactive mode
			(See \ref{restore-interactive})
		\item The create directories mode
			(See \ref{restore-directories})
		\item The restore path
			(See \ref{restore-path})
		\end{itemize}
		The mode is always set to {\tt List} if the program is 
		started. Error recovery mode is always turned off.
		This action can also be started by the \kc\ {\tt CTRL-D}.
	\subsection{Read configuration $\ldots$}
		This will read a user specified configuration file 
		from disk. This new configuration will take effect 
		immediatly. This action can also be started by the 
		\kc\ {\tt CTRL-R}.
	\subsection{Save configuration $\ldots$}
		This will save the current configuration under a user 
		specified name. This action can also be started by 
		the \kc\ {\tt CTRL-S}.
	\subsection{Quit}
		This will quit \bfr. No confirmation is asked. This 
		action can also be started by the \kc\ {\tt CTRL-Q}.
		
\section{Mode} 
	\label{mode}
	\begin{tabular}{| *{6}{l}|}\hline
	Desk\ \  & File\ \  & Mode\ \  & General\ \  & Backup\ \  & 
	Restore\ \  \\ \hline
	\multicolumn{2}{l}{} &
	\multicolumn{1}{|l|}{List \alt{L}} &
	\multicolumn{3}{l}{} \\
	\multicolumn{2}{l}{} &
	\multicolumn{1}{|l|}{Restore \alt{R}} &
	\multicolumn{3}{l}{} \\
	\multicolumn{2}{l}{} &
	\multicolumn{1}{|l|}{Backup \alt{B}} &
	\multicolumn{3}{l}{} \\ \cline{3-3}
	\end{tabular}
	\medskip

	The \bup\ has 3 modes in which it works.
	
	\subsection{List}
		\label{mode-list}
		This will set \bup\ in {\tt List} mode. In this mode 
		you can list the contents of an existing archive. This 
		selection will disable the {\tt Backup} (See 
		Section~\ref{backup}) and {\tt Restore} (See 
		Section~\ref{restore}) menu. This action can 
		also be started by the \kc\ {\tt ALT-L}.

	\subsection{Restore}
		\label{mode-restore}
		This will set \bup\ in {\tt Restore} mode. In {\tt 
		Restore} mode you can extract files from an existing 
		archive. This selection will disable the {\tt Backup} 
		(See Section~\ref{backup}) and enable the {\tt 
		Restore} (See Section~\ref{restore}) menu. This action can 
		also be started by the \kc\ {\tt ALT-R}.

	\subsection{Backup}
		\label{mode-backup}
		This will set \bup\ in {\tt Backup} mode. In this mode 
		you can create a new archive. This selection will 
		enable the {\tt Backup} (See Section~\ref{backup}) 
		and disable the {\tt Restore} (See 
		Section~\ref{restore}) menu. This action can also be 
		started by the \kc\ {\tt ALT-B}.

\section{General}
	\label{general}
	\begin{tabular}{| *{6}{l}|}\hline
	Desk\ \  & File\ \  & Mode\ \  & General\ \  & Backup\ \  & 
	Restore\ \  \\ \hline
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{Verbosity $\ldots$} &
	\multicolumn{2}{l}{} \\
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{No. Sectors/Track $\ldots$ } &
	\multicolumn{2}{l}{} \\
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{No. Tracks/Side $\ldots$ } &
	\multicolumn{2}{l}{} \\
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{Backupst path $\ldots$} &
	\multicolumn{2}{l}{} \\ \cline{4-4}
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{Drive A}&
	\multicolumn{2}{l}{} \\ 
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{Drive B} &
	\multicolumn{2}{l}{} \\ \cline{4-4}
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{Single sided} &
	\multicolumn{2}{l}{} \\
	\multicolumn{3}{l}{} &
	\multicolumn{1}{|l|}{Double sided} &
	\multicolumn{2}{l}{} \\ \cline{4-4}
	\end{tabular}
	\medskip

	\subsection{Verbosity $\dots$}
		\label{general-verbosity}
		The verbosity controls the amount of noise the \bup\ 
		program creates. This is more a debug feature than a 
		normal feature. Normal users should keep it at a value 
		of '0' which is the default value. The verbosity value 
		ranges from ``0'' to ``9''.
	
	\subsection{No. Sectors/Track $\ldots$}
		\label{general-sectors}
		This controls the number of sector on a track. The 
		only valid values are '9' and '10' sectors per 
		track. If you restore or list an archive this value is 
		overruled by information stored in the archive. 
	
	\subsection{No. Tracks/Side $\ldots$}
		\label{general-tracks}
		This controls the number of tracks on a side. The 
		only valid values are 80--84 tracks per side.
		If you restore or list an archive this value is 
		overruled by information stored in the archive. 
	
	\subsection{Backupst path $\ldots$}
	\label{general-backupst}
		The backupst path is the path to the \bup\ program. 
		This option has to be selected before the \bup\ 
		program can be started. Once you've selected the 
		program you should store the path in the default 
		configuration file (See 
		Section~\ref{save-default}).

	\subsection{Drive selection}
		\label{general-drive}
		You can either select {\tt Drive A} or {\tt Drive B}. 
		A checkmark is set before the selection. 
	
	\subsection{Floppy type selection}
		\label{general-type}
		You can either select {\tt Single sided} or {\tt 
		Double sided} floppies. A checkmark is set before the 
		selection.
	
\section{Backup}
	\label{backup}
	\begin{tabular}{| *{6}{l}|}\hline
	Desk\ \  & File\ \  & Mode\ \  & General\ \  & Backup\ \  & 
	Restore\ \  \\ \hline
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{Set archived bit} &
	\multicolumn{1}{l}{} \\
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{Verify on} &
	\multicolumn{1}{l}{} \\
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{Full backup} &
	\multicolumn{1}{l}{} \\ \cline{5-5}
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{Always} &
	\multicolumn{1}{l}{} \\ 
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{On error} &
	\multicolumn{1}{l}{} \\ 
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{Never} &
	\multicolumn{1}{l}{} \\ \cline{5-5}
	\multicolumn{4}{l}{} &
	\multicolumn{1}{|l|}{Backup path $\ldots$ \alt{P}} &
	\multicolumn{1}{l}{} \\ \cline{5-5}
	\end{tabular}
	\medskip

	\subsection{Set archived bit}
		\label{backup-archive}
		If this menu entry has a checkmark, the \ab\ will be 
		set during the backup process. This bit indicates that 
		a file has been archived. The incremental (See 
		Subsection~\ref{backup-full}) backup relies on this 
		feature. Turning off the process of setting the \ab\ 
		will make it possible to make multiple incremental 
		backups. 
		
		``Setting'' the \ab\ is a little bit symbolic since {\tt 
		TOS} 1.4 is introduced. The introduction of {\tt TOS} 
		1.4 inverted the meaning of the \ab. Before {\tt TOS} 
		1.4 the bit was set to ``1'' to indicate the file was 
		archived. Before {\tt TOS} 1.4 this bit was 
		automatically cleared by the {\tt OS} once the file 
		was changed. Since the introduction of {\tt TOS} 1.4 
		this bit is set to ``0'' to indicate the file is 
		archived. In {\tt TOS} 1.4 this bit is set to ``1'' by 
		the {\tt OS} if the file is changed. \bup\ will 
		automatically adjust its behavior to the present {\tt 
		TOS} version.
		
	\subsection{Verify on}
		\label{backup-verify}
		If this menu entry has a checkmark, every tracks that 
		is written will be verified. This option will slow 
		down the backup-process, but will increase the 
		reliability. 
	
	\subsection{Full backup}
		\label{backup-full}
		If this menu entry has a checkmark, \bup\ will make a 
		full backup. A full backup means that every file will 
		be stored in the archive, without checking the \ab.
		
		If the menu entry does not have a checkmark, this 
		means that an incremental backup will be made. During 
		an incremental backup only files from which the \ab\
		is cleared (See 
		Subsection~\ref{backup-archive}) will be stored 
		in the archive.
	
	\subsection{Format mode}
		\label{backup-format}
		Three different formats are supported. 
		\begin{description}
		\item{Never}\\
			Never format a track. If a disk {\tt I/O} 
			error occurs, \bup\ is aborted with an error 
			message.
		\item{Always}\\
			Format every track before trying to write on 
			the track. After formatting of the track the 
			behavior of \bup\ is as if format {\it On 
			error} was selected.
		\item{On error}\\
			Format a track if an {\tt I/O} error occurs. 
			After formatting of this track, writing to the 
			track is tried again. Up to 5 retries will 
			take place. If the retries have no effect, 
			\bup\ is aborted. 
			
			When every track needs reformatting, it turns 
			out to be a time consuming proces. If more 
			than 3 tracks need formatting on a particular 
			side of a disk the remaining tracks on that 
			side will be formatted before trying to write 
			on that side. 
		\end{description}
	
	\subsection{Backup path $\ldots$}
	\label{backup-path}
		Enter a space seperated list of the ``files'' to be 
		archived. 
		Files can be:
		\begin{enumerate}
			\item Plain files. 
			\item directories
			\item disks
			\item regular expressions
		\end{enumerate}
	
		Slashes (/) are automatically converted to backslashes 
		(\bsl). Relative addressing is supported. Regular 
		expressions are full regular expressions, not the {\tt 
		GEMDOS} regular expressions.
		This action can also be started by the \kc\ {\tt 
		ALT-P}.	

\section{Restore}
	\label{restore}
	\begin{tabular}{| *{6}{l}|}\hline
	Desk\ \  & File\ \  & Mode\ \  & General\ \  & Backup\ \  & 
	Restore\ \  \\ \hline
	\multicolumn{5}{l}{} &
	\multicolumn{1}{|l|}{Restore file dates} \\
	\multicolumn{5}{l}{} &
	\multicolumn{1}{|l|}{Overwrite silently} \\
	\multicolumn{5}{l}{} &
	\multicolumn{1}{|l|}{Interactive mode} \\
	\multicolumn{5}{l}{} &
	\multicolumn{1}{|l|}{Create directories} \\
	\multicolumn{5}{l}{} &
	\multicolumn{1}{|l|}{Error recovery $\ldots$ } \\
	\multicolumn{5}{l}{} &
	\multicolumn{1}{|l|}{Restore path $\ldots$ \alt{P}} \\ \cline{6-6}
	\end{tabular}
	\medskip

	\subsection{Restore file dates}
		\label{restore-date}
		If the menu entry has a checkmark, the original 
		creation date will be restored. After writing to the 
		file to harddisk, the creation date is set to 
		``today''. With this option enabled the creation date 
		is restored to the original date. 
		
	\subsection{Overwrite silently}
	\label{restore-overwrite}
        	Overwrite existent files silently. Normally \bup\ 
		will not overwrite an existing file without asking 
		permission to do so. If you enable this option, \bup\
		will overwrite all files without asking. 
	
	\subsection{Interactive mode}
		\label{restore-interactive}
		If this option is enabled, \bup\ will go into 
		interative mode. It will first read the \bai\, and 
		then enter a little subshell. The following command 
		are available:
		\begin{description}
		\item{ls [directory]}
		\item{dir [directory]}\\
			This command will list the contents of a 
			directory. If you don't specify a directory,
			the current directory is listed by instead.
			By default, no files are extracted in 
			interactive mode. Only the files specifically 
			'added' (see command add) by the user are 
			extracted. Files to be extracted are marked by 
			a '+'. Directories are marked by a '\bsl'. 
			Directories are never marked by a '+', only 
			the contents of a directory is.
			If you list the contents of a directory, you
			see the contents of a fictive disk. There is 
			absolute no relation with the current contents 
			of the hard disk.
			This so fictive disk has a root directory 
			under which all disks are mounted. If you type 
			'ls' at the root level you probably only see 
			the volume label(s) of the disks you have 
			stored in this archive. If only one 'disk' is 
			available, an automatic 'cd disk' will be done 
			when the program is started.
		\item{ll [directory]}\\
			The 'll' command will make a long directory 
			listing. (see ls)
		\item{quit}
		\item{stop}
		\item{exit}\\
			This will abort the program without extracting 
			the marked files.
		\item{help [command]}
		\item{h [command]}\\
			This command gives a list of all commands 
			available. If an argument is given, an 
			explanation of this command is given.
		\item{cd [directory]}
		\item{chdir [directory]}\\
			Change directory to 'directory'. If no 
			argument is given, the new directory is the 
			root directory of the ramdirectory.
		\item{add [files]}\\
			Add files to the list of files to be extracted. If 
			the argument is a directory, all files in this 
			directory are added to the list.  Regular 
			expressions are also valid. Added files are 
			marked by a '+' in front of the filename in a 
			'ls' command. (see 'ls')
		\item{rm [files]}\\
			Opposite of add command. Same syntax.
		\item{extract}
		\item{retrieve}
		\item{go}\\
			Retrieve all marked files from the archive.
                \end{description}
	
	\subsection{Create directories}
		\label{restore-directories}
		If this option is enabled, the files restored from the 
		archive will retain their directory hierarchy by 
		creating directories as needed. This is the normal 
		behavior. If you don't create subdirectories the files
		which are restored will be stored at the root disk of 
		the ``original'' disk the files were located on. 

		This command is usually used in conjuction with the 
		{\it restore path} (See 
		Subsection~\ref{restore-path}) option. 
		Suppose you set the {\it restore path} to {\tt 
		d:/tmp}. If you now restore a single directory 
		(e.g. {\tt c:/bin/mwc}) from 
		the archive (You will need interactive mode for this 
		feature), and you don't create subdirectories, you can 
		restore the files in this directory in {\tt d:/tmp}.
		Within the directory {\tt d:/tmp} no new directories 
		will be created.
		
		If needed the directory {\tt d:/tmp} will be created. 
	
	\subsection{Error recovery $\ldots$}
		\label{mode-error}
		This wil set \bup\ in {\tt Error recovery} mode. In 
		this mode you can try to restore an existing archive 
		if the main \bai\ is damaged. In this 
		mode an attempt is made to read the backup \bai. 

	\subsection{Restore path $\ldots$}
		\label{restore-path}
		Set an alternate root for the restore action. If this option 
		is used, \bup\ will not write back the data at 
		the position it was originally stored. Suppose 
		you have stored a directory named 'c:/bin'. If you 
		restore the data with a {\it restore path} of {\tt 
		d:/tmp}, the data will be restored at {\tt 
		d:/tmp/bin}. The directory structure will be maintained.
		This action can also be started by the \kc\ {\tt 
		ALT-P}.	

\end{document}

