[comp.sys.cbm] 1541 Autoload feature

agollum@engr.uky.edu (David Herron aka Admiral Gollum) (09/21/87)

>Could someone please give
>me a deeper rundown on the feature, as I own a 1541?  I am
>always looking for undocumented info on it (there are quite
>a few things, you know) and this one seems right up my alley.
>
>(waiting wit baited drive...)
>
>+++++++++++++++++++ ---]>>>>>>>>>>>>>> ++++++++++++++++++++++++
>Random of Amber                "Of all my relations, I like sex
>rufsmith@uokmax.UUCP            the best and Eric the least."
>-------------------------<<RND>>-------------------------------

Wait no longer, Worm-Breath!!!

From _Inside Commodore Dos_, by Richard Immers and Gerald G. Neufeld:

_Utility Loader Program_:
This utility is used to load and execute user programs or system utilities
from disk.
This utility may be used two ways:
(a) On power up:
    If the data and clock lines are grounded at power up, the routine
    is entered.  It waits until the ground clip is removed and then loads
    the first file found in the directory into disk RAM using the first
    two bytes of the file as the load address.  Once the file is loaded,
    It is executed starting at the first byte.
(b) Normal entry:
    The disk command "&:filename" will load and execute the file whose
    filename is specified.  For example: PRINT#15, "&0:DISK TASK"

File structure:
    The utility or program must be of the following form:
    File type: USR
    Bytes 1,2: Load address in disk RAM (low byte/high byte)
    Byte 3:    Low byte of the length of the routine
    Bytes 4-N: Disk routine machine code
    Byte N+1:  Checksum.  note that the checksum includes all bytes
               including the load address.  
               Formula: CHECKSUM = CHECKSUM + BYTE + CARRY

Note:  Routines may be longer than 256 bytes.  However, there MUST be a
valid checksum byte after the number of bytres specified in byte #3 and
after each subsequent 256 bytes.

-----
Now, before the howls raise: "Why weren't we told of this BEEFOOORREEE!!?!?!"
let me add from a different part of the book:

In Early 1984 Commodore began shipping the 1541 disk drives that 
contained a new $E000-$F000 ROM.  The part numbers of the ROMs are:  
Original:  901229-03
Revised:   901229-05
The changes in the new ROM are:
[among other things]
$E780 to $E7A1  Eliminate power-on boot of the utility loader to
                solve possible problems during initialization.

The utility's normal entry point at $E7A3 presumably was unaffected so
the & command *should* still work (I have not tried it).  The segment
changed or removed is that which checks for the lines being grounded, 
waits for removal of the boot clip, and sets the file name to "*".

You're welcome in advance.

Kenneth herron