CyberBoot Installer Documentation
by The Cyberman
What is CyberBoot?
CyberBoot is a utility for creating and installing your own personal message into the boot process of standard ProDOS volumes. It is similar to Sound Wave’s SmartBoot, but is much more versatile (and a bit more difficult to use). A boot made with CyberBoot can be an SHR picture, a sound waveform, a neat animation show, or whatever you can create. To use CyberBoot to its full potential you must know ML and a bit about the IIgs, but it is very easy to create a standard SHR picture boot with little knowledge of ML, ProDOS, disk drives, or the IIgs in general.
CyberBoot Installer requires:
o An Apple IIgs or later with ROM version 01
o Apple GS/OS (ProDOS 16 will not do!)
o 512K of RAM
A disk with CyberBoot installed requires:
o A SmartPort (this means no 5.25 drives!)
o An Apple IIgs
How does CyberBoot work?
Before installing a boot, it must be contained in a file with a filetype of $CB on the volume you wish to attach it to. The Installer will remove the directory entry and patch block 0 with it’s own loader which takes care of loading the boot and then ProDOS.
The boot is an ML program located at $00/1000. It can be up to 44K long, located between $1000 and $BFFF. If it is longer than 44K the loader will start writing over I/O memory at $C000 and you’ll really see the shit hit the fan. The boot must then return in emulation mode with the B and D registers set to 0. It should also undo any damage it might have done to the system such as interrupt driven routines.
After the boot procedure has completed its tasks it returns to the loader via an RTS. The loader then scans for the PRODOS file and reads it in starting at $2000 just like the normal ProDOS loader would.
CyberBoot Installer Commands
1. Install Boot
This command will ask for the file you wish to install as the boot. It must be on the disk before issuing this command, MUST be in the main directory, and must have a file type of $CB (the aux type doesn’t matter). Once you select the file the installer will remove the file entry by writing it over with $00s and decrement the FILE_COUNT word. This effectively deletes the file without freeing up the blocks it occupied on the volume bit map. It will then patch block 0 with the CyberBoot loader with a date stamp. If the message “CyberBoot Installation Successful!” does not appear something went wrong.
1. Use MM/DD/YY and AM-PM settings in your control panel to obtain the best looking date-stamp (this can be seen by holding down Open-Apple during boot-up).
2. For optimum speed have Cat Doctor move your boot file to the beginning of your main directory and then have Beach Comber optimize the disk. This way your boot will be close to the beginning of the disk and un-fragmented.
2. Remove Boot
The name of this command is deceiving. It does not restore the disk to its original state before the boot was installed. After using this command the boot will still work. It is for re-creating the file entry of the original boot file and incrementing the FILE_COUNT word. You must place it within the main directory.
If you wish to remove the boot entirely you can do so with ProSEL’s Block Warden and Mr. Fixit. Use Block Warden to copy block 0 from a “normal” ProDOS volume, and Mr. Fixit will free up the blocks used by the boot in the volume bit map. This will work for *ANY* ProDOS based boot.
There is a password protection for this option. Only real hackers need use it, and they should be able to pass this without much difficulty.
3. Link Routines
Making your own boot files from scratch would be a real bitch. Fortunately, CyberBoot Installer is equiped with this function which makes it much easier. This function takes small routines (stored in binary files) and links them together into one big one which is the final boot. These small routines MUST be fully re-locatable within bank 0. You can’t know where Link Routines will place them. They must also return via an RTS, and make no assumptions of the processor state at entry.
You may use your own custom routines or the ones provided in the ‘Routines’ menu. Currently the only routine available routine is ‘Fade In Picture’. More routines will come out in future versions. Merlin-16 source code for other routines come in the CyberBoot package. You can customize these for your own requirements.
Selecting the routines you want is fairly self explanatory. They will be executed in the order you selected them. The finished product will be a CyberBoot file (file type $CB). It will have a series of JSRs to the routines you have selected, followed by a shutdown routine which takes care of clearing the HeartBeat tasks you may have installed, setting the processor to emulation mode, and returning to the loader.
You should test the boot file before installing it by BLOADing it in AppleSoft basic at A$1000, and then doing a CALL 4096.
4. Rename, Delete, and Set File Info
These are just a set of handy file utilities which might come in handy, so you don’t have to quit to do basic housekeeping chores. Rename and Delete are self-explanatory. Set File Info will let you set the file type, auxiliary filetype, and the read, write, rename, and destroy access bits of the file.
I don’t know…you tell me.
6. Fade in Picture
This is the only currently active item in the ‘Routines’ menu. It will let you select a picture file to use in a routine which will fade the picture onto the screen. Three file types for the load file are supported: Standard PIC file ($C1, $0000), PaintWorks Paint file ($C0, $0000), and 816/Paint’s PackBytes format ($C0, $0001). Apple Prefered was not implemented because (a) it’s not worth the effort, (b) I could not find adequate documentation about it, and (c) I’m too lazy.
After you select the file it will show the size of the compressed picture, and ask you for the Delay Value. The delay value is a hex number used in the routine which fades the picture in for timing. The higher the value the slower the fading. A slow value will show flickering, so try to avoid anything over $A000. $3000 is a good value and is used as the default.
Now just hit OK and save the routine. You can test view it by BLOADing it in AppleSoft at any location and then calling it. Neato!
7. Play Waveform, and Special Effects
These items are dimmed, and for a good reason: they are not yet implemented. Play Waveform will be like Fade In Picture except it will load a waveform file and let you select a playback rate. Special Effects will likely be color cycling and rectangle scrolling which will both use HeartBeat tasks operating in the background. For now you have to do these things yourself.
The Merlin-16 source codes
There should be four Merlin-16 source codes in the CyberBoot package. They are Keypress, Fade Out, Eject, and Pause.
Keypress is a nice routine which remains in a loop until it detects a keypress, mouse click, or joystick button press.
Fade Out is a routine which will fade out anything on the SHR screen just as it faded in. You can change the speed in the source code just like the Fade In Picture delay value. Note: It does not automatically set text mode. If you want it to set text mode you must modify it.
Eject will eject device #1 on the SmartPort chain. It’s useful for side 2 of a ware which could eject the disk and tell the user to insert side 1 and reboot.
Pause will hang the system for an exact amount of time. The time to pause for is selectable in 1/60th of a second. The time is exact, regardless of the speed of the computer.
You can write your own routines (remember to make them re-locatable!) or modify these.
Copyright and Distribution info
CyberBoot is Copyright (c) 1989 by The Cyberman.
CyberBoot Installer is FreeWare. This means you are free to distribute it to anyone for free, but you may not sell it, nor may you tamper with the program and re-distribute it.
I accept no responsability for damages caused by the use or misuse of this program. The program has been tested and found to have no serious problems. However, there is always that possibility a bug might damage a volume as this program accesses disks is ways Apple never intended.
Because of the nature of this program, I would prefer it be kept within the more advanced Apple IIgs community. Please try to distribute it on more ‘elite’ systems, and upload it to elite volumes. Many immature users would just love to get their hands on a program like this and start sticking their own title pages all over everything. I realize I cannot prevent this program from getting into the hands of these users, but please use digression in distributing it.
Questions? I may be contacted on the following systems:
Midnight Grafitti………………(416) 698-7994……….9600 baud
The Joshua Tree GS……………..(416) 462-9917……….9600 baud
Pandemonium GS…………………(416) 273-7619……….9600 baud
The New Forbidden Zone………….(416) 222-3769……….9600 baud
Seventh Dimention Elite…………(416) 754-3546……….9600 baud
End of CyberBoot Installer documentation file