From: nick@zeta.org.au (Nick Andrew)
Newsgroups: comp.sys.tandy
Subject: 10 years of my TRS-80 source code now online
Organization: Zeta Internet, http://www.zeta.org.au/
Lines: 140
Message-ID: <agrpoi$gck$1@godzilla.zeta.org.au>
Summary: see http://www.nick-andrew.net/projects/trs80/
X-Newsreader: NN version 6.5.6 (NOV)
Date: 14 Jul 2002 22:10:58 +1000
NNTP-Posting-Host: 203.26.10.9
X-Complaints-To: news@pacific.net.au
X-Trace: nasal.pacific.net.au 1026648502 203.26.10.9 (Sun, 14 Jul 2002 22:08:22 EST)
NNTP-Posting-Date: Sun, 14 Jul 2002 22:08:22 EST


Over the last 18 months I have spent a significant amount of time
recovering all my TRS-80 files from the original 5.25" diskettes. The
end result has been online for a few weeks: the source code to every
program I wrote or majorly hacked using my TRS-80. That's over 200
programs, from the trivial to the rather large. I have packaged them
all up on my web site:

	http://www.nick-andrew.net/projects/trs80/

The programs are grouped in packages of related sources. Each program
is in a separate subdirectory containing all related files. The groups
are:

 - University assignments
 - BASIC Programs
 - CMD File Utils
 - Comms Programs
 - Disk Utils
 - File Utils
 - FORTRAN Programs
 - Games
 - Hardware
 - Include files
 - Languages
 - Library of C
 - Operating Systems
 - Patches
 - Printer Utils
 - Utilities
 - Zeta BBS, which is big so I packaged the components separately:
     - catalogs
     - comm
     - file transfer
     - games
     - high-memory
     - include
     - internal
     - mail-system
     - maintain
     - network
     - treeboard
     - utilities

The Zeta BBS came to life in February 1985 from very humble beginnings.
Zeta BBS grew to become "Kralizec Dialup Unix System" and then
"Kralizec Dialup Internet System" (in 1995 when we got our first
24x7 IP connection) and was later renamed to Zeta Internet (which is
easier for people to remember). Zeta Internet was acquired by Pacific
Internet in January 2000. The Zeta Internet domain name is zeta.org.au
and there is a brief timeline available at:

	http://www.zeta.org.au/timeline.html

Each program in these packages is documented to the extent that I can
remember what it does.  Some of these programs (like the real-time
clock driver or the 256K RAM utilities) require my unique System-80
hardware. Others are very general and useful utilities, like the OFFSET
program which converts a cassette program to allow it to load from
disk, or the report-formatting program I wrote in C. There are also
special-purpose programs like a disk formatter and copier which uses
the same scrambled track and sector numbering as the original Micro$oft
Adventure, and patches to allow LDOS development tools (EDAS and LC)
to work under Newdos/80.

I did this because I wanted to preserve these efforts as examples of
"what I was doing in the 1980s" and from a desire to give something
back to the network community which has given so much for me. There's
a small chance that somebody might find something useful in these
packages.

The effort which was required to put all this together included:

- Using xtrs under linux

- Getting the right combinations of hardware (original TRS-80 80-track
disk drive, AHA1542CF SCSI controller, PC 5.25" disk drive) and
figuring out how to bully them into reading the diskettes.

- Writing DMK disk images of all 208 diskettes to hard disk

- Using the emulator to obtain file listings, and massaging that into
extract commands for every file (extracting into 208 directories under
unix).

- Comparing all files to eliminate duplicate versions (conversely,
grouping with new unique extension all files with the same name but
different contents).

- Writing and using extractors and converters to get at the ultimate
contents, including DIRECT (my TRS-80 archive utility), uncompress,
unpack, unARC (nomarch under linux), a tokenised BASIC program
expander, and a Pascal program expander.

- All text-like files were converted to Unix end-of-line conventions
  (that's LF instead of CR for those who had forgotten) and removed line
   numbers, which usually had bit 7 set, for FORTRAN and EDTASM).

- Move the source files and documentation (where it exists) into a
  structure, and add them all to change control (CVS) from oldest to
  newest, sometimes merging two "include" files to create a "best of".

- Go through the structure, making a better structure.

- Go through the structure, making Makefile for each package and also
  a description file in HTML.

- Place the whole lot online.

I did lose a few things, including stuff which didn't make it from tape
to disk. I also couldn't read all the disks - did Copy By File for
those with sector errors, image copy for the rest, There are a few
source files with undetected errors, mostly bit 7 set on assembler
source files (should use the character set 0x09, 0x0a, 0x20 - 0x7e only).
I have mostly left those in the source code. Most of the code is
assembler source but there is also a large amount of C source code there,
to show the "sophistication" of C compilers which were available on
the TRS-80.

99% of it is code I wrote, so I own the rights to it; these programs
are hereby released under the GNU General Public License; some of
the rest is code other people wrote and further redistribution is
permitted; a very very small percent of it is code which other people
wrote and I hacked to show or invent some technique. I hope those
people or corporations won't mind after all these years.

If you download any code and try to compile/assemble it you will need
the assembler include and/or C library files. If you download any of
the Zeta BBS source code you will need the Zeta BBS include files also.
I haven't tested anything here (that's a project for another time) so
it is possible that things will not compile/assemble, but any errors
should be small ones. Please contact me if there are missing files.

I would appreciate if you download any of the packages, if you
send me a small email and tell me what you think of it.


Nick.
-- 
http://www.nick-andrew.net/			http://www.news-admin.org/
Do not send me email copies of postings. Keep it in USENET please.

