This disk contains the source to HACK 1.0.1. Its original source was placed in the public domain on USENET about a year ago. I downloaded it from an APOLLO and converted it to run on the AMIGA. In the process, I found several compiler problems (which have been reported to Lattice) and believe the code to be in a pretty stable state. Known problems: 1) When you boot from the standard 1.1 workbench and then run HACK by clicking on an ICON, sometimes it sits there for a while (LOADING) and then does nothing. However, the memory that HACK uses up is allocated but the program did not run. Presumably this is a problem in the startup code in 'hack.window.c' but I cannot find it. Another problem may be in the _main.c which is compiled with the TINY flag. [This problem now fixed, see changes to "_main.c" (fnf)] 2) The AMIGADOS command '!' brings up the AmigaDos window and CLI, but when you return, it crashes. This code was listed directly from the MuEMACS so I don't believe it is the cause, but then again, who knows. This code is in hack.do.c. 3) Saved game ICONS are deleted by simply deleting the .INFO file. I do not believe this is the right way, but the documentation is not too clear as to how to delete an ICON. This code is in hack.icon.c. 4) I have no earthly idea exactly how CurrentDir is to be called. HACK definitely leaves an extra lock laying around that connects to the HACK_GAME: volume, but I am not exactly sure when it is safe to delete that lock, nor what to do with the old lock that CurrentDir returns. This code is in UnixXface.c. 5) Register variables simply don't work. Doio appears to trash D7 and consequently makes life miserable for the remainder of Hack. Right now I have a #define register in config.h, but you can change it to #define register register to see hack fail. 6) Bitfields have proven to be fairly unreliable. If you change the definition of the Bitfield macro in config.h, you will see some very strange behavior in the code (as well as a sizable increase in the size) 7) Hack is extremely large. At 219K it takes a long time to link and would not link with the first version of ALINK. I expect that if many more enhancements are made, it will become too large to link on a 512 machine. Organization: HACK_SOURCE: should be assigned to the logical disk containing the source. LATTICE_C: should be assigned to a disk having an include directory with ALL include files under it. Only 4 programs use other than the standard lattice include files. I: should be assigned to the directory containg the lattice standard header files. HACK_GAME: should be assigned to the disk containing the final image. This disk should have a LIB directory of all the link libraries. HACK_GAME:SAVED GAMES This is where all the saved games are stored. Important files: ccall Recompiles all of HACK ccwindow Recompiles hack.window.c ccicon Recompiles hack.icon.c hack.window.c All the Amiga I/O interface routines. hack.icon.c All the Amiga ICON interface routines. UnixXface.c The stub routines to allow hack to exist in a non-unix environment. You are welcome to distribute the Game disk to any one you wish, but distribution of the source should be limited in order to preserve the integrity of HACK. Everyone thinks they are a programmer, and it would be nice if there weren't 50 million different extensions to HACK, yet at the same time it would be nice to see some very usable features: An option to cause all messages at the top of the screen to be spoken. Sounds to accompany various actions (zapping a wand, hitting monsters) A Hack character set for displaying the various monsters. Better graphics in displaying the room - perhaps dual playfields with one as the room and the other for the monsters. Feel free to contact me if there are any questions. If you like this and would like to see more freeware of this sort, please let me know. John A. Toebes, VIII 120-H Northington Place Cary, NC, 27511 (919) 469-4120