_____
/\ /\_ __/__ \_ __ __ _ _ __ ___
/ /_/ / '_ \ / /\/ '__/ _` | '_ \/ __|
/ __ /| |_) / / | | | (_| | | | \__ \
\/ /_/ | .__/\/ |_| \__,_|_| |_|___/
|_|
HP49 file transfer program
Copyright (c) 2000 Eric R. Schendel
http://sourceforge.net/projects/hptrans
http://hptrans.sourceforge.net
INSTALLATION
============
Read the INSTALL file!
BACKGROUND
==========
I have been using and programming the HP48SX, HP48GX, and now the new HP49G
calculator for many years. Close to the time when I upgraded to the HP49G, I
also upgraded from windows to Linux. Oh, what a blessing on both counts! The
only disappointment I found was that there were no solid programs in the Linux
environment to help with both file transfers and string editing between the
calculator and the PC. Most programs I found were either stable with the HP48
and not the HP49, made for windows (wine would not cut it), or just did not
work.
I found this to be a great opportunity to make a program which I know I will
use quite a bit and to also give me some solid experience for using Linux as a
programming environment. By this project I hope to find out which tools help
out with developing programs for Linux, along with other Unix environments, and
which tools do not. As a warning to most developers this project will seem to
be overkill for a program as small and simple as this one, but this project is
mainly to help me with development tools, libraries, common classes, and
experiences. Also, hopefully, this program might give ideas to others who are
starting their first project or just need some pointers as what to do (or not
to do).
Mostly all the information from here on down is for developers or curious
people who want to know more information about the development of HpTrans.
XMODEM INFORMATION
==================
I am sure one of the first questions to come from an experienced Unix
programmer is `why did you reinvent the wheel by writing the xmodem protocol?'
The answer is because I can. No, but seriously, it comes from many different
reasons. The first is that from extensive searching on the web, I found that
there are two popular xmodem programs; one of them is commercial and the other
is GPL. They both use the same executables of sx and rx for sending and
receiving files. Several times I have used programs which make calls to sx or
rx, but do not specify which author's to use and both do not always work
interchangeably. Besides I had a difficult time in finding them on the Internet
so I figure no one else should have to put up with that. Secondly, I at first
tried using the GPL licensed version (of course) but it did not always want to
work properly for the way I wanted. I tried debugging the source to find the
problem but did not have much luck. It seemed to freeze once and a while for no
apparent reason and was stubborn to kill, so I found it easier to write the
protocol instead of work-a-rounds.
Later on I found this to be a good thing because it will make it easier for
hptrans to interact with the HP49's xmodem server. Also the HP49's xmodem file
transferring routine seems to have special quirks which are not part of the
xmodem protocol such as the calculator having its own CRC routine for each
transferred packet. If hptrans' xmodem routines work well and someone
encourages me, I will make them available as a separate library since, as far
as I know, there are not any open source xmodem libraries available.
Mostly all requirements and information about the standard xmodem protocol was
found on the Internet by search engines. In addition all the information found
specific to the way the HP49's xmodem server and file transferring works was
find in the comp.sys.hp48 usenet group. Also a little bit of reverse
engineering was used on the HP49 to figure out some unanswered questions.
One of the things I did not implement into the standard xmodem protocol was the
support for ASCII files. This is required for some character translations and
properly recognizing a file's original size without adding padding. The only
time I will be dealing with ASCII files is through the direct process of
converting HP binary string files to ASCII text, therefore the xmodem protocol
does not need to handle this. Also for what I can tell CRC handling routines
are not in the standard protocol. The only CRC routines that will be used are
ones specially used by the HP49.
MAINTAINER INFORMATION
======================
The program 'astyle' (Artistic Style) is used to keep source code at a
consistent programming style. It is applied to all the source code when the
command 'make maintainer-clean' is executed. If this program is not found,
then this operation is skipped. The use of this program is highly suggested
especially if anything is to be written to CVS.
<<< INCOMPLETE >>>
MANDATORY DEVELOPMENT PROGRAMS
==============================
Autoconf:
v2.49c
Automake:
v1.4d
pod2man:
<<< INCOMPLETE >>>
SUGGESTED DEVELOPMENT PROGRAMS
==============================
astyle: Artistic Style (for coding style)
Author Tal Davidson
Site http://astyle.sourceforge.net/
License Artistic or GPL
kdoc:
<<< INCOMPLETE >>>
|