Quite some time ago, I realised I was always writing out particular bits of assembler code again and again, for my systems programming. I also found the software I had to be lacking in particular ways - for example, I couldn't cut from the end of a file in FileMaster, without reaching for my calculator. I also saw a lot of programs that did tricks, yet their authors didn't want to reveal those tricks to the public. Some programs also were bloated to my mind.
I invented the "Kyzer's Smalls Collection" to do two things:
- To grow a bank of working, tested assembler source code that I could cut and paste to help build new programs.
- To provide useful software, which worked better than what was already out there, but was also smaller.
That said, I haven't let progress be sacrificed for program size - bugs are fixed, even if they add another few bytes. 'Simple' programs are around 120 bytes each, the more useful ones are about 360 bytes each. All programs come with complete source, which use the appropriate system includes and names (no hard-coded cryptic numbers unless neccesary!)
The simple ones
Admittedly, some of the programs are really simple, and some can be done already with existing commands, but their value is mostly in the source code. This includes Beep which simply flashes the screen, BorderBlank which turns screen borders black, CursOff which turns the shell cursor on and off, Expload which simply opens explode.library, and Flush which flushes unused data out of memory. Requesters and Wildstar allow you to switch on, off or toggle the pop-up DOS requesters and the expansion of '*' into '#?', respectively. They have some pretty good argument parsing, as supplied by ReadArgs(). Finally, WhatIs is a rewrite of an example given with the FileID library - simply much smaller and better.
The dirty ones
- ffm: this is a simple set of programs which people with no fast memory can run to get badly written applications to start. NoFast removes the concept of fast memory from your Amiga! However, as it is still possible for bad programs to find out about your lack of fastmem in another way than simply asking for some, ffm (FakeFastMem) can convert half your chipmem into 'real' fastmem -- in other words, you can't tell the difference. Furthermore, there are no patches required for this to work! A commandline version of ffm is included, as is a bootblock version for maximum effect.
- GrepMem: this allows you to search through a range of memory, or all memory, for a particular string.
- NoBorder: removes the border around the startup CLI screen, and makes it the maximum size. I remember a lot of old coverdisks doing this, but not quite succeeding because they used the old BORDER command. This one does it right (but it's still a hack).
- OldIcons: this is a simple patch to remove the borders around icons.
- SetCop and ResetCop: these two are great for developers - they can switch between Workbench and their hardware banging program! SetCop will cleanly start a copperlist given at a particular address, and ResetCop will re-install the Workbench's copperlist. ResetCop is also useful to people who play games or demos from hard drive, as these programs may not restore the Workbench screen properly.
- TotalReset is a handy program which will totally clear all of your chip memory, then perform a hardware reset. This is great news for many music rippers, but it's not much use for anything else.
The really useful ones
- Colors: This tool lets you change the palette on any screen, even private screens!
- Cut: This is a command-line based tool to cut any particular length of data from a file at any particular offset. It also allows negative offsets, which means offsets starting from the end of the file, and leaving out the cut length parameter, whicn means "cut until the end of the file".
- FullName: this prints a file's name with its fully qualified path. It also puts in the appropriate marks to allow spaces and double quotes in filenames, and it also can mask out wildcard characters.
- In: this lets you make the statement "In directory do command". In other words, you can combine a "CD" command, any other command, and a CD back to where you started.
- Reset: this does a correct software reset, even with the buggy Workbench 3.0 reset code, and if you run it from Workbench, it pops up an "Are you sure?" requester. The source code also reveals the correct reset code, as specified in the hardware manual for where there is no reset code in the Kickstart ROM.
- scrsh: this opens a new shell on its own public screen! The shell has the full span of the screen to use instead of having a window with borders.
- Uptime: this prints how long your computer has been on for without a reset. For example, it may print Uptime: 3 day(s), 20:23:21. For authenticity, if you set the HOSTNAME environment variable, it will print it in UNIX-style, e.g. dixie.csg.net up 3 day(s), 20:23:21. The command uses the little-known EClock, built into the system, to find out how long the computer has been up. It does not need any special commands run at boot-time to get it working. It also uses 68020 instructions to do the long division and modulus neatly.