Re: Vic Rabbit

From: Ethan Dicks (
Date: 2002-09-23 23:00:05

> I just archived a copy of VIC Rabbit... But I cannot figure out
> the commands easily.  Could they be the same as in PET rabbit?
> Could anyone help me?

Here's the PET Rabbit documentation (with several typos corrected ;-) :

                         PET RABBIT
Copyright 1979 by J. Hall and C. Moser - All Rights Reserved

PET Rabbit currently works with the 8K, 16K and 32K new ROM PETs which
have the external Commodore cassette deck.  Some units which have the
built-in desk will not work with Rabbit's high-speed cassette recording
rate.  To be specific, cassette decks with the lift-top lid will not
work with Rabbit's high recording rate, but other Rabbit features will
work.  The new style tape decks are identified by the fact that you
open the lid via the STOP pushbutton.  New ROM PETs with the new
style tape deck will work with all of Rabbit's many powerful features.

Versions are being prepared for the old PET ROMs and other
microcomputers which use the 6502 microprocessor.

PET Rabbit is 2K of machine code which can be ordered in one of 5
locations: $1800-$1FFF for 8K PETs, $3000-$37FF or $3800-$3FFF
for 16K PETs, and $7000-$77FF or $7800-$7FFF for 32K PETs.
When loaded and initialized, 12 Rabbit commands are provided
that can be executed in Basic's direct mode.  In addition to the
commands, automatic repeat of any key held down for 0.5 seconds
is also provided.  This should greatly aid inputting of characters
and provide more convenient cursor control.

To load Rabbit from the supplied cassette on tape deck #1.
type: LOAD "RABB"

To initialize the Rabbit, type: RUN
Rabbit will then copy "its furry little hide" from the BASIC text
area to the 2K memory range you specified in your order.  In addition,
Rabbit will initialize BASIC location HIMEM ($34, $35) to point
to below the 2K Rabbit object code.  This prevents BASIC from
"clobbering" the Rabbit.

     *SL  "name",device,start,end
     *S  "name",device,start,end

Save a program in Rabbit format with a long leader.
     *SL  "STARTREK"                  <- Save BASIC program STARTREK
     *SL  "STARTREK",01               <-    on tape #1
     *S   "STARTREK",02               <- Save on tape #2
     *S   "STARTREK",1,800,FFF        <- Save machine language program
                                         in memory range $0800-$0FFF

NOTE:  You should always use *S or *SL when saving at the start
       of a tape.  This is because most cassettes have plastic
       leader material at the beginning that must be moved
       past before recording data.

    *SS  "name",device,start,end
Save a program in Rabbit format with a short leader.  This is the
same as *S or *SL except that a shorter leader tone is recorded.

    *L  "name",device,load address
Load specified program in Rabbit format.  When a program is loaded
or passed over, a status message will be output (see Rabbit note 7).
     *L                               <- Load next program on tape #1
     *L  "MAZE"                       <- Load program named MAZE#1
     *L  "MAZE",1                     <-    on tape #1
     *L  "FORMULA",2                  <- Load from tape #2
     *L  "TEST",2,F00                 <- Load machine language but store
                                            at location $0F00
    NOTE:  Normally a program is loaded in memory at the same
           location where it was previously saved.  If you entered
           *L  "TEST",2,F00  , then the program would be stored at
           $0F00 no matter where it was previously saved.

    *V  "name",device
Verify a program to ensure that a good recording was made.
    *V  "ADVENTURE",2                 See Rabbit Note 7.

    If the recording was OK then the name of the program will be
    displayed in reverse format.  If the recording was bad, then
    the message CASSETTE ERROR will be displayed.

    *E  "name",device
Execute.  This command is the same as the *L command except that
it performs a load from tape followed by an automatic run.
    *E  "STARTREK",02                 See Rabbit Note 7.

    *H  xxxx
Convert the hex number xxxx to decimal.
    *X  FF0                           <- You type
    =04080                            <- and Rabbit responds

    *D  xxxx
Convert decimal number xxxx to hex.
    *D  4080                          <- You type
    =0FF0                             <- and Rabbit responds
    *T  test,start,end
Perform RAM memory test on memory range "start" thru "end"
Two tests can be performed:
Test 1 =  Test RAM ICs for storage retention
Test 2 =  Test RAM ICs for proper chip select operation

If an error is encountered, it will be output in the following format:
        xxxx  yy  zz
Where xxxx is the address of the bad memory cell, yy is the test
pattern, and zz is the error pattern.  Consult the first issue of
COMPUTE magazine (page 32) for more specifics on memory testing.
    *T  1,1000,1FFF                 <- Test memory for storage
                                       retention in range $1000 - $1FFF
    *T  2,400,FFF                   <- test memory chip selects in range
                                       $0400 - $0FFF

    *G  xxxx
Go to machine language program at hex address xxxx.
    *G  1AF3

This is the quick and convenient way to go to the PET monitor.
Simply type * followed with a return.  See Rabbit Note 3.

Toggle lower case versus graphics character set.

Kill the Rabbit.  This removes the Rabbit link into BASIC.


  1)  A tape mark can be recorded via
      *SS  "$",1,0,0                       <- on tape deck # 1
      *SS  "$",2,0,0                       <- on tape deck # 2
      Any filename beginning with $ will be interpreted by the
      Rabbit software as a tape mark.  In the above example,
      0,0 was tacked on the end so the recorded file will be as
      short as possible.

      Tape marks are useful.  If encountered, the Rabbit software
      will halt its search for a file.  A tape mark should be
      recorded at the logical end of tape.

  2)  If you want to abort a tape load or save operation, press
      STOP on the cassette deck, and the message
      CASSETTE ERROR will appear.  Sometimes you may have to
      press PLAY and STOP several times before the message
      will appear.

  3)  The automatic repeating of any character will be disabled
      immediately after you first initialize Rabbit, and
      immediately after you type any of the following commands:
      *G, LOAD, SAVE, VERIFY, or SYS.

      But, auto repeat will be restored after the next time you
      press return.

      The reason for this is that the IRQ vector used for auto
      repeating must be restored for proper PET load/save

      If you enter the PET monitor via *, auto repeat will be enabled.
      Since the auto repeat feature circumvents PET tape operations,
      do not issue the monitor load (.L) or save (.S) command if you
      entered the monitor via *.  Tape operations will function
      properly if you SYS to the monitor but auto repeating will
      not function.

  4)  If you want the capability to kill the Rabbit (*K command)
      and then later restore the Rabbit, you should (before
      issuing the *K command) make note of the contents of $70,
      $71, $72.  Later, when you want the Rabbit restored,
      simply restore the three locations with the recorded value.

  5)  Programs saved in Rabbit format can not be loaded by the
      BASIC or Monitor load command.  Conversely, programs saved
      by BASIC or the Monitor cannot be loaded by the
      Rabbit load command.

  6)  Rabbit uses a number of locations in tape buffer #1 as
      temporary storage locations during the execution of Rabbit

  7)  Whenever Rabbit loads a program or passes over a program on
      tape, a status message will be output consisting of the
      length of the program, the address range where loaded, and
      the program name.  This status message will be displayed in
      reverse video format.

  8)  You should kill the Rabbit (*K) before running BASIC programs
      whihc read and write to tape under program control.

  9)  Rabbit does not interfere with 2040 Disk operations.  Thus,
      one need not kill the Rabbit (*K) to do disk load or save



Visit "The Seventh Continent"

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail 2.1.4.