This is the CUTILS v1.0 FAQ

0.  Where can I find the latest release of the CUTILS?
1.  Why develop a new transfer utility, when there already exists prlink?
2.  Can I relocate the VIC assembly routines at another address than 267?
3.  Will the CUTILS work with my expanded/unexpanded VIC?
4.  Will the CUTILS work with my C64, PET or other CBM 8 bits machine?
5.  So, can I port the CUTILS to the C64, the PET, ...?
6.  Will there be a DOS/Windows version of the CUTILS?
7.  How do I download to another memory location than the User Basic Area?
8.  How do I upload from naother memory location than the User Basic Area?
9.  Wow, those utils are cool! How can I thank you, ask questions, make some
    remarks?
10. By the way, how the hell should I pronounce your '>NIL:' name? Where does
    it come from?

_______________________________________________________________________________

0.  Where can I find the latest release of the CUTILS?

    You will find the latest release of the CUTILS at the following address:
      http://nil.free.fr/cutils/

1.  Why develop a new transfer utility, when there already exists prlink?

    Well, I have an unexpanded VIC20, so prlink is no great use for what I want
    to do. The cutils don't use the BASIC memory at all, so they are perfect to
    upload or download a user program without any disturbance to the memory.  


2.  Can I relocate the VIC assembly routines at another address than 267?

    To relocate the assembly routines, you have to replace the 267 address
    parameter of the .org statement in the the source files and re-assemble
    them.
    In order to have the shortest assembly code, there are absolute jumps in
    the routines, which make them unrelocatable as is.
    Once recompiled, use 'make dump' to get the decimal numbers needed to fill
    the DATA section of the VIC BASIC program copying these utils in memory.
    By the way, if you have an EPROM burner, a good idea would be to replace the
    VIC ROM by an EPROM including those relocated utilities...    


3.  Will the CUTILS work with my expanded/unexpanded VIC?

    YES! They were designed to work with any type of VIC, and they will 
    automatically configure themselves to whatever VIC you use. ;)
  

4.  Will the CUTILS work with my C64, PET or other CBM 8 bit machine?

    Probably not, beacuse the CUTILS 6502 binaries are specially tailored for
    the VIC, and the addresses they use to access the VIA chips or the user 
    memory address are not garanteed to work on another machine. 
   
    However, the 6502 assembly source are easy to port to another CBM 8 bit
    machine, as long as there figures an user port. 
    And hopefully, you shouldn't even have to modify the Linux sources ;)  


5.  So, can I port the CUTILS to the C64, the PET, ...?

    Yes, you're very welcome to port the CUTILS, improve them, correct bugs,
    and get all the credit for it...


6.  Will there be a DOS/Windows version of CUTILS?

    I don't have time to waste in porting them, yet. If you insist, I may do
    that someday. Shouldn't be very hard to do anyhow... Anyone?


7.  How do I download to any memory location instead of the User Basic Area?

    You don't have to do anything special. The binary files start with the
    VIC memory address they are to be copied into, and CLOAD use this
    address.

    Be aware however that the BASIC pointers will be set according to this
    address, so that you'll probably have to reset them.  


8.  How do I upload from any memory location instead of the User Basic Area?

    Write the start address at memory location 43 ($2B = Start Of Basic)
    Write the end address+1 at memory location 45 ($2D = Start Of Variables) 
    Run the VSAVE utility. Voil!

    Ex: To dump 10000 bytes, starting at memory location 50000
        50000 - 59999 ($C350 - EA5F)

    POKE 43,80           (Start address) LSB = $50 (80)
    POKE 44,195          (Start address) MSB = $C3 (195)
    POKE 45,96           (End address+1) LSB = $60 (96)
    POKE 46,234          (End address+1) LSB = $EA (234)
    SYS 267              Execute CSAVE
 
    Don't forget to restore the BASIC pointers afterwards (a warm reset
    should do).


9.  Wow, those utils are cool! How can I thank you, ask questions, make some
    remarks?

    You can reach me (>NIL:) at the following:
      nil@free.fr

10. By the way, how the hell should I pronounce your '>NIL:' name? Where does
    it come from?

    The complete pronounciation of my name, and I'm very attached to it, is
    "redirect 'slash' nil", with nil being pronounced like the American name
    Neil.
   
    Most of my friends reduce it to 'nil', sometimes 'slash' and more rarely 
    'red'. But noone ever calls me "redirect nil column" or "greater than nil 
    column"!

    Those familiar with the Amiga will know where this name comes from, for
    NIL: is the Amiga equivalent to the extremely useful UNIX /dev/null
    device.
    Those devices are commonly used on the comand line to discard some output
    by operating a redirection to them, hence the redirection sign ('>').
    The oddity of the 'slash' in lieu (well not really) of the 'column' comes 
    from the UNIXish guys, to whom everything is a file, and who couldn't get
    accustomed to the way the Amiga was handling devices. So they kept trying
    to insert a 'slash' in my nickname and readily ate the 'column'.
    It soon turned out that I would never get rid of their pronouncing my 
    name so I decided to adopt it. :-)
