September 2013

Warbots

The archive-diving continues (I’m checking all my old floppies and archiving everything that looks interesting).

Found a ZIP file WARBOTS.ZIP. This is yet another Robot War type program, this one written by Chris Busch in 1990. Unlike Robot War (which has a vagely BASIC-like syntax) or Arena (x86 assembler, urgh) the syntax is very Pascal-like (which figures, since Chris wrote Warbots in Turbo Pascal).

Now, for some reason Chris decided to encrypt the robot sources supplied as examples. But, Tyler Akins tells us that it’s a simple XOR “encryption”, and some fiddling with ICY Hexplorer armed with the hunch that “vitiex” is most likely “repeat” gives us the hex key 040c for the first line of scanbot.war. After that it gets tricky, “Ehh | 5” translates to “Add y 1” using a key of 040c0c — so the key changes by some rule. I really don’t have the time to figure it out but it’s obviously not that tricky.

This at least gives an idea of the syntax.

Warbots doesn’t run in a DOS box under Windows (2000 and 7 tested) so that’s all I have for now.

 

 

 

 

 

Whatever happened to Anthony Rose?

Back in the eighties, when the Cape Computer Club were homebuilding or just playing around with computers based on the 6502, 6800, 6809, 68000, z-80 and the like, Anthony Rose was one of the Names. Like me, he had an Apple II, unlike me, he made that thing sit up and dance. Using Forth, most of the time.

He also wrote a test suite for the Apple which I still have on disk somewhere — thinking about it, this might be one of the last copies in existence so at some stage I should look at backing it up.

Anyway, I was sorting through my collection of MSDOS floppies, and came across a disk labelled “ARTFORTH.68K”. Yes, I remember getting that from my friend Barney, never did anything with it.

Problem is, the disk has errors. Not that I can complain, it’s a disk I used with my Apple before reformatting it to MSDOS, it’s only certified single-sided, and it’s still mostly readable after being in storage since about 1990.

So this was an opportunity to revisit the dreaded FAT12. I used ANADISK to copy the readable bits of the floppy to hard drive (yes, I still have a DOS box with 5 1/2″ and 3 1/4″ floppies. It even runs Windows 3.1) and the HxD hex editor to analyze things. This web site was extremely useful to help me find my way around FAT12.

The first file on the disk, “ARTFORTH.68K” survived intact. It’s 149 FORTH screens of  64 characters x 32 lines of FORTH code written by Anthony in 1986 for what looks to be some kind of 68008-based platform.

The second file, “FORTH.COM” was not so lucky. Or maybe it was, the directory is corrupted so I don’t know whether I have the whole file or not. It’s definitely 68000 code, disassembly yields constructs like:

201E                     MOVE.L   (A6)+,D0
221E                     MOVE.L   (A6)+,D1
241E                     MOVE.L   (A6)+,D2
2D01                     MOVE.L   D1,-(A6)
2D00                     MOVE.L   D0,-(A6)
2D02                     MOVE.L   D2,-(A6)
4E75                     RTS
201E                     MOVE.L   (A6)+,D0
221E                     MOVE.L   (A6)+,D1
241E                     MOVE.L   (A6)+,D2
2D00                     MOVE.L   D0,-(A6)
2D02                     MOVE.L   D2,-(A6)
2D01                     MOVE.L   D1,-(A6)
4E75                     RTS

Which is clearly an implementation of ROT and -ROT. There’s also a copyright string “ART-Forth 1.0  (c) 1987 A.R.T.” at $2DD9 so we know what we’re dealing with.

Of course, before trying to scrape these files off the floppy, I searched the web, because if someone else has it online my work is done. But no. Anthony Rose the Forth guru seems to have disappeared (he might have surfaced as one of the many Anthony Roses on the ‘net, but none of them own up to a love of Forth). About the only relevant thing I could find is his 1986 paper Design of a fast 68000-based subroutine threaded Forth with inline code & an optimiser which mentions the HP9816 (which used a 68000 and not a 68008 — the mystery continues).