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.