From: Ethan Dicks (erd_at_infinet.com)
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
INTRODUCTION
------------
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.
LOAD THE RABBIT
---------------
To load Rabbit from the supplied cassette on tape deck #1.
type: LOAD "RABB"
INITIALIZE THE RABBIT
---------------------
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.
RABBIT COMMANDS
---------------
*SL "name",device,start,end
or
*S "name",device,start,end
Save a program in Rabbit format with a long leader.
Examples:
*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.
Example:
*SS "MOUSETRAP"
*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).
Example:
*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.
Example:
*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.
Example:
*E "STARTREK",02 See Rabbit Note 7.
*H xxxx
Convert the hex number xxxx to decimal.
Example:
*X FF0 <- You type
=04080 <- and Rabbit responds
*D xxxx
Convert decimal number xxxx to hex.
Example:
*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.
Examples:
*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.
Example:
*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.
*Z
Toggle lower case versus graphics character set.
*K
Kill the Rabbit. This removes the Rabbit link into BASIC.
RABBIT NOTES
------------
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
operations.
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
commands.
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
operations
//
]
--
Visit "The Seventh Continent"
http://penguincentral.com/penguincentral.html
Message was sent through the cbm-hackers mailing list
Archive generated by hypermail 2.1.4.