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: 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.