Back to the Alpha Micro Phun Machine @ Floodgap Retrobits | Jump to: Primer on AMOS | Alpha Micro Pageant of Machines | Links and Resources

AMPM: AMOS Freeware Downloads

I now have access to quite a bit of the old software archives, and I'll be (slowly) putting up stuff as I find them. You might also look on our AMPM Links Page for other software, some of which is free and some of which ain't.

To the best of my knowledge, these programs and packages are freely distributable. If you can assert otherwise, please contact me at ckaiser@floodgap.com.

Alpha Micro Users' Society Network Library

The AMUS Network Library (as it appeared on the 2002 AlphaCD) is now online on the main Floodgap Gopher server. You can download the files directly to your Alpha Micro system with a Gopher client. It contains a wide array of AlphaBASIC source code, M68 assembler source, binaries, text documents, even some ASCII art.

What, you say? You don't have a Gopher client for your Alpha Micro? Well!

GAMBLE: Gopher Alpha Micro Browsing-Linking Environment

Then you should get GAMBLE! GAMBLE works on AMOS 2.3A with AlphaTCP 1.3C or 1.5A. It comes as a collection of components written in assembler and AlphaBASIC, letting you access most Gopher menus easily and quickly, and is well-suited to the AMOS terminal environment. It is provided under the Floodgap Free Software License.

GAMBLE's home is, of course, on the main Gopher server. If you don't have a Gopher client for your desktop system, try a Firefox extension or using our helpful proxy.

Terminal Drivers

Depending on your version of AlphaTCP, you may be missing some important terminal drivers for connecting to your Alpha Micro from another system, and if you don't have AlphaTCP at all you may be completely restricted to official Alpha Micro terminals.

Most of you will want ANSI.TDV, which is the one I also use primarily, or possibly VT100.TDV. KAISER.TDV is my customized terminal driver, born of necessity when I originally discovered in horror that there was no support for VT100 compatible terminals in AlphaTCP 1.3. Although the others work better in most cases, it might be useful if you need to hardcode a terminal size. I use all of these with Mac OS X Terminal and they work great, but they also work with PuTTY and should work fine with most xterms.

To install, copy the .TDV driver(s) you want to use into DVR:. If the TDVDEF line in AMOS32.INI does not load all drivers (i.e., if it's not TDVDEF *), add the new one(s) to the TDVDEF line and check it with MONTST. Either way, you will need to reboot after the TDV is installed. You can then Telnet to your machine and select ansi, vt100 or kaiser as the terminal type, depending on which one(s) you've installed.

KAISER.TDV expects an 80x40 window since this is the normal size I work in. If you want to change this, edit byte offset $000e-f and change the bytes $28 $50 to your desired rows and columns respectively. I have not tried this driver with a real VT100-compatible serial terminal connected to one of the serial ports, but if you do, please let me know how it works.

Alpha-KERMIT for AMOS

For the vast majority of users, this will be (short of AlphaTCP) the most convenient way of getting files to and from an Alpha Micro system, and Kermit terminal programs are available for darn near anything from a Commodore 64 all the way up to current versions of Windows. You will need to have a terminal configured for outgoing connections in your INI file, or you could use it over Telnet, I guess, if you have AlphaTCP and for some reason can't get FTP to work. That terminal can be connected to a modem or to a null modem to your PC, and should not have a job attached to it (i.e., a naked TRMDEF and no SETJOB).

At some point some wag is going to ask how you get Kermit itself onto the Alpha Micro, to which I can only suggest careful prayer. Jokes aside, you might be able to get the source code on there with a simple text transfer ...

Like most versions of Kermit, Alpha-KERMIT is freely distributable. I have provided the source for M68 but you do not need the source code to run the program. It will run on just about any Alpha Micro system, even an AM-1000 running AMOS/L 1.2. (1.3D or up is needed for assembly from scratch.)

To install, simply copy KERMIT.LIT into SYS:. The documentation may be copied to HLP:KERMIT.HLP and accessed with HELP KERMIT.

ISOCD

This is an unbelievably useful tool that lets you browse an ISO 9660 format CD on most Alpha Micro CD-ROM devices (without it, you can only read AMOS-format CDs, basically just the AlphaCD and any CDs you may have burned yourself with MAKACD). It does not mount the drive as an AMOS device; instead, it acts as a primitive file browser, allowing you to copy files from it. Please note that extensions such as Joliet may not be properly supported.

The source code (written by our old friend Josh Hewitt when he was at Alpha Micro) is very instructive.

To install, simply copy ISOCD.LIT into SYS:.

EGREP

There aren't many good file-search utilities on AMOS. Fortunately people have ported ones that are. Here's a version of egrep from the AMUS archives that works "pretty much as you expect." There are only a couple of system-dependent irregularities which are documented in the help file.

To install, simply copy EGREP.LIT into SYS:. The documentation may be copied to HLP:EGREP.HLP and accessed with HELP EGREP.

Jajiv's AlphaBASIC Uncompiler

I found this otherwise non-descript file in a collection of other stuff. The "Jajiv" is actually James A. Jarboe IV, a frequent AMUS contributor (thanks to Michael Roach who cleared up the mystery).

This utility is somewhat buggy, but does decompile .RUN (compiled AlphaBASIC programs) back into .BAS equivalents. It doesn't always work, and doesn't work at all with AlphaBASIC Plus (let alone Lightning BASIC), but it's worth a shot if you've hosed your backup and haven't tried to be too obfuscatory. UNCMPL Q.RUN produces Q.SRC, or you could use something like UNCMPL Q.BAS=Q.RUN to specify a filename directly.

To install, simply copy UNCMPL.LIT into SYS:.

fingerproxy

The fingerproxy is not an AMOS program; it's a helper method for enabling arbitrary TCP access tunneled through the finger protocol for AlphaTCP systems that don't have TAMED or URL (systems earlier than 1.4), but do have FINGER (1.3B and 1.3C). Since upgrading can be expensive, and isn't always possible, this gives you a way to scriptably open sockets easily on older machines as long as you have a inetd-capable box around to run this on. You also need Perl and nc/netcat or compatible, and optionally curl; virtually every system worth its salt has or can get all of these prerequisites. It should also work with launchd (gag) if you need to run it on Mac OS X 10.4+. And of course this works with just about any arbitrary finger client on any operating system, if you want to use it with them.

What fingerproxy allows you to do is things like this:

SET REDIR
FINGER "www.google.com|80|GET / HTTP/1.0\\r\\n\\r\\n"@fingerhost > OUT.HTM
Now you've got www.google.com dumped to a file. Hmm, I wonder what you could do with an HTML file?

The reason you can't use the regular TELNET.LIT to do this is because it does not allow you to redirect its input or output. While you could FORCE the job it's attached to to pass input, the output is going to the terminal whether you like it or not, and you can't capture it (well, I guess you could write a terminal driver that dumped to disk, but that's getting even more insane). And you can forget FTP.LIT and TFTP.LIT because those programs crash when fed arbitrary data they don't see as transactions.

FINGER.LIT, however, doesn't care or parse what it gets back and does allow you to redirect its output, but it's hardcoded to port 79, hence this method to let it talk to other ports. (I'm really trying hard to avoid saying the word "p**xy" to stop the script kiddies from coming here.) Essentially this is a kludgier, lower level form of URL, but works on 1.3.

The basic way to talk to fingerproxy is very simple: a hostname, followed by a pipe character, followed by the port, followed by a pipe, followed by arbitrary data. This should not be considered binary safe, so to pass arbitrary characters, binary-encode unsafe characters with \0xXX (such as \0x7f). \n \r \t \b are also accepted, and \\ is turned back into a single backslash. You can pass a string as long as FINGER.LIT will let you on the command line. The reason why I have double-backslashes in the example is to stop the AMOS command shell from eating them. The response starts with a single status character (usually 0 for request accepted), and the data (if any) follows. 1 indicates a bad request, 2 indicates an unacceptable hostname, and 3 indicates a system error.

For the current version (0.2), I added "modes" which are set by prepending a number of pipe characters for backwards compatibility:

Modes 2 and 3 do not use the same error reporting as modes 0 and 1; you just get raw data.

Because this is a p**xy, you should only install it to listen on an inside-facing interface. Don't blame me if you expose this to the entire Internet and become the new rear-end Regina for your neighbourhood Russian hacking ring. It has no authentication, its security precautions are trivial and a thoughtful black hat might possibly pwn you if you are incautious. You need to configure it first to tell it where your nc/netcat and (optional) curl and regular fingerd are located -- if you specify where your fingerd is, requests not seen as fingerproxy commands are passed to it, so it still acts like a regular finger. Then wire it into your inetd, xinetd or equivalent; it requires no command line options. I strongly advise running it as an unprivileged user. I offer it under the Floodgap Free Software License.

One last warning: FINGER.LIT is not binary-safe, so this method really only works properly for text.

Last But Not Least: Games!!

I'm putting up the best of my collection of Alpha Micro games as I select them.

Here is an excellent Rogue/Nethack clone which plays pretty much perfectly on my Eagle 300, from the AMUS archives. Press ? for help during game play and Q to quit. To install, simply copy ROGUE.LIT into SYS:. The documentation may be copied to HLP:ROGUE.HLP and accessed with HELP ROGUE.

Here are some of the best games from the AMUS archives. Some have assembler source. To install, simply copy the .LIT file into SYS:. There are others; visit the AMUS archive through the link at the top of the page!

These games require a colour display or terminal. They look beautiful on my AM-75.


Back to the main page