saturnng/manual/using.texi
2024-03-21 11:19:55 +01:00

274 lines
10 KiB
Text

@c $Id: using.texi,v 4.1 2000/12/11 09:54:19 cibrario Rel $
@node Using the Emulator, Command Line Options, Preparing saturn for Use, Top
@chapter Using the Emulator
@cindex Using the Emulator
This chapter describes the behavior of the emulator, how you
interact with it, and how to perform external interfacing operations,
such as file transfer. Instead, it does not describe the behavior of
the emulated calculator; for this, plase refer to the
calculator's documentation.
Moreover, the emulator is highly customizable: the behavior described
here is the default behavior, that is, the behavior you obtain when
the original emulator's application resource file distributed with it is
in effect. See @ref{Customizing saturn}, for additional details about
customization.
@menu
* Running saturn::
* Mouse and Keyboard::
* Speed Control::
* File Transfer with Kermit or Xmodem::
* File Transfer with InstantLoad::
@end menu
@node Running saturn, Mouse and Keyboard, Using the Emulator, Using the Emulator
@section Running saturn
@cindex Running saturn
You run @code{saturn} in two different ways, depending on how
you installed it:
@itemize @bullet
@item
If you installed @code{saturn} systemwide, that is, if you either
installed a systemwide binary package or you ran @code{make install}
after building @code{saturn} yourself, you can run the emulator
directly:
@example
$ saturn @var{options}
@end example
@item
Else, if you built @code{saturn} from the source distribution and you
didn't install it yet, or if you have a user-level, binary-only
distribution, you must use the startup shell @code{run_saturn} to run
it; you must also enter the build directory, @var{build_dir} in the
example below, before invoking the startup shell. For user-level,
binary-only distributions, @var{build_dir} is the directory where
you unpacked the distribution.
@example
$ cd @var{build_dir}
$ ./run_saturn @var{options}
@end example
@end itemize
In either case, you probably would like to specify additional
command-line options, @var{options} in the examples above,
for @code{saturn}; see @ref{Command Line Options}, for more
information.
@node Mouse and Keyboard, Speed Control, Running saturn, Using the Emulator
@section Mouse and Keyboard
@cindex Mouse and Keyboard
When started, the emulator displays a window containing a reproduction
of the emulated calculator; your primary means of interaction with
the calculator are the mouse and the keyboard.
When you click the primary Motif button of your mouse on a
calculator's key, that key is pressed; when you release the mouse
button, the key is released. If you are right-handed, the primary
Motif button usually is the leftmost one.
To press a calculator's key and keep it pressed without having to keep
the mouse button pressed, too, click the key with mouse button 3;
to release the key, click it again with either mouse button.
If you are right-handed, mouse button 3 usually is the rightmost one.
To exit the emulator and save the current state of the calculator
into the emulator's state directory, use your mouse or your keyboard
to trigger the ``Close Application'' command of your
window manager. For example, if you are using @code{mwm},
activate the window manager's application menu by clicking the
upper-left button on the window decoration and select the
``Close'' option.
Do @strong{not} use the ``Kill Client'' command to kill the emulator,
unless you want to exit the emulator @strong{without} saving
the current calculator's state.
To press the calculator's keys you can use your real keyboard, too,
provided that the emulator window has the keyboard focus. Depending on
which focus model your window manager uses, you need to either
click on the emulator window's border with the mouse or move the pointer
into the emulator's window and keep it there to give it the focus.
In the latter case, in order to have the full set of shortcuts described
below available, keep the pointer on the LCD display of the emulated
calculator; some versions of Motif can override user shortcuts when the
pointer is moved elsewhere, for example on a pushbutton.
When the emulator window has the focus, the following keyboard shortcuts
are in effect:
@itemize @bullet
@item
The alphanumeric keys of the real keyboard are mapped to the
corresponding calculator's keys.
@item
The add, subtract, multiply and divide keys of the numeric keypad, if any,
are mapped to the corresponding calculator's keys.
@item
Both the return and enter keys are mapped to the calculator's enter key;
notice that the return key could not work with some versions of Motif
when the keyboardFocusPolicy is set to XmPOINTER, because Motif
insists on grabbing the return key for its own use in this case.
@item
The backspace key is mapped to the calculator's backspace/delete key.
@item
If the emulated calculator has two shift keys, the left shift key
is mapped to the calculator's left shift key and the right shift key
is mapped to the calculator's right shift key, else both shift keys
are mapped to the calculator's shift key.
@item
Both alt keys are mapped to the calculator's alpha key.
@item
Function keys from F1 to F6 are mapped to the calculator's uppermost
row of keys.
@item
Function keys F10, F11 and F12 are mapped to the calculator's
left shift, right shift, and alpha keys; this mapping is useful
when the real keyboard has only one shift key (rare) or is unable
to distinguish between left and right shift (more frequent).
@item
The escape key is mapped to the calculator's ON/Cancel key.
@end itemize
Each emulated calculator's key is kept pressed as long as the
corresponding real key is kept pressed; this way you can simulate
multiple, simultaneous key presses using the keyboard, at least in
principle; however, many keyboards and operating systems impose severe
limits on the maximum number of simultaneous key presses they can detect
reliably, so your mileage may vary.
Notice also that all window and session manager's keyboard shortcuts
@strong{do} work with @code{saturn}; be careful to avoid
triggering them by accident, expecially @code{Alt-F4}, the default
keyboard shortcut for ``Close Application'' put in effect by @code{mwm}.
@node Speed Control, File Transfer with Kermit or Xmodem, Mouse and Keyboard, Using the Emulator
@section Speed Control
@cindex Speed Control
By default, the emulator runs the calculator at the maximum possible
speed, depending on the actual system load and on the emulator's
niceness level.
For some calculator models, you can change the speed of the emulated
calculator using the calculator itself and the @code{speed} command,
found in the utility library @code{sutil}; for more information, see
@ref{The sutil Library}.
@node File Transfer with Kermit or Xmodem, File Transfer with InstantLoad, Speed Control, Using the Emulator
@section File Transfer with Kermit or Xmodem
@cindex File Transfer with Kermit or Xmodem
The emulator revectors the calculator's serial port to a pseudo-terminal.
Since the allocation of pseudo-terminals is dynamic, @code{saturn}
announces the name of the pseudo-terminal it just allocated during
startup, either with a console message like:
@example
saturn-Serial (serial.c,553)-I-Slave pseudo-terminal name is [/dev/ttyp1]
@end example
or by permanently displaying a message like:
@example
Slave pseudo-terminal name is [/dev/ttyp1]
@end example
on the bottom line of the emulated calculator's main window.
A pseudo-terminal acts just like a real serial port; in particular,
you can run a kermit or xmodem session on it. Therefore, to transfer a file
from/to the emulator with kermit or xmodem, simply follow the same procedure
you would follow to transfer the file from/to a real calculator,
replacing the name of the real serial port with the name of the
pseudo-terminal, for example @code{/dev/ttyp1} in the message above.
Notice that some versions of kermit, notably @code{C-Kermit 7.0.196} for
Linux, could require the following additional command to be able to talk
with the emulator:
@example
set prefixing all
@end example
Incidentally, the same command could be required to talk with the
real calculator via a real serial port, too, depending on the
default flow-control settings of the port.
If you are emulating an HP39/40, you can transfer applets to/from
the emulator by means of a kermit server session; you need to execute
the following kermit commands:
@example
set line @var{pseudo-terminal}
set prefixing all
set file collision overwrite
set file names literal
enable all
server
@end example
In the example above, replace @var{pseudo-terminal} with the
name of the emulator's pseudo-terminal. You can then use the
usual calculator's commands to send and receive applets to/from
the disk drive.
Using @code{xmodem} is somewhat simpler: to transfer an object from the
calculator into a disk file, issue the @code{xmodem} receive command on
the host computer:
@example
rx @var{file_name} < @var{pseudo-terminal} > @var{pseudo-terminal}
@end example
and then the @code{xmodem} send command on the calculator:
@example
'@var{object_name}' XSEND
@end example
To transfer a disk file into the calculator, issue the @code{xmodem}
receive command on the calculator:
@example
'@var{object_name}' XRECV
@end example
and then the @code{xmodem} send command on the host:
@example
sx @var{file_name} < @var{pseudo-terminal} > @var{pseudo-terminal}
@end example
As before, you need to replace @var{pseudo-terminal} with the
name of the emulator's pseudo-terminal in all examples above;
@var{file_name} represents the name of the host file, and
@var{object_name} represents the name of the calculator's object.
@node File Transfer with InstantLoad, , File Transfer with Kermit or Xmodem, Using the Emulator
@section File Transfer with InstantLoad
@cindex File Transfer with InstantLoad
Once you have transferred the @code{sutil} library into the emulated
calculator with a kermit or xmodem file transfer, you can use the
@code{kget} and @code{send} commands provided by this library to
perform very fast transfers directly to/from the calculator's memory.
The @code{sutil} library is available for some calculator models only;
see @ref{The sutil Library}, for more information.