Packrabbit

Developer(s): Bob Fraser
Date: 1983
Type: Program
Platform(s): TS 1000
Tags: Game

Steers a rabbit through a dotted maze, eating dots and dodging hunters that leave a pen in the middle of the screen, with inverse asterisk squares at the corners and along the walls. The player picks a speed from 0 (fast) to 9 (slow) and one of two three-maze games, “Rabbit’s Revenge” or “Run Rabbit Run”, and steers with Q, A, L and P. There are ten lives; clearing a maze moves on to the next, and clearing all three ends the game with “YOU HAVE ESCAPED THE HUNTERS.” A summary screen shows the score and the session high score, with an option to play again.

The game is credited “PROGRAMMED BY BOB FRASER” in a REM, and the title screen reads “COPYRIGHT 1983 INTERNATIONAL PUBLISHING AND SOFTWARE”. Timex Sinclair User sent Packrabbit to new subscribers. The cassette has a handwritten “PACK RABBIT” label.

Program Analysis

Program Structure

Lines 1–15 are REM lines holding the machine code, which handles movement, the hunters, dot eating and the on-screen score. BASIC is the framework around it:

  • 8000–8060: title screen with a sample strip of maze and the copyright line.
  • 6900–6950: an array M(6) holding the line numbers of the six maze-drawing subroutines; GOSUB M(N) draws the current one.
  • 7000–7150: controls, speed choice and game choice; game 1 starts at maze 1, game 2 at maze 4.
  • 30–250: the play loop: start the maze code, flash a 9-to-1 countdown in inverse digits, then LET L=USR 18003 runs a round and returns 0 when the maze is cleared or another value when the rabbit is caught.
  • 300–500 and 3500–3735: summary, play-again, maze advance and the escape message.
  • 4000–4299, 6000–6275: the six mazes, each printed as ten 64-character strings (two screen rows per string), followed by two POKEs that set the rabbit’s start position for the machine code.

Notable Techniques

  • The speed choice is POKEd straight into two delay bytes inside the machine code (17806 and 18539).
  • The score is never held in a BASIC variable during play; line 5500 reads the six score digits from the display file (PEEK 16396+256*PEEK 16397) and converts each character code by subtracting 28.
  • Computed GOSUB M(N) selects the maze from a table of line numbers.
  • Several entry points into the REM code (17550, 17573, 17619, 17688, 18371, 18466, 18509, 18565) are called separately for setup, the screen wipe and between-life resets.
  • Line 32 notes “REMOVE 33” for line 33’s POKE 16419,99, apparently a development leftover.

Potential Issues

  • After the third maze is cleared, line 3700 adds the on-screen score to SC and then line 3735 jumps to line 321, which adds it again, so a winning game’s score is counted twice.
  • The game-select text reads “RABBIT S REVENGE” because the ZX81 has no apostrophe character.

Related Articles

POKEs to make Packrabbit, a program Timex Sinclair User sent to new subscribers, work with Righter’s joystick interface.

Related Content

Image Gallery

Source Code

   1 REM  SLOW# SLOW#2▖2▖ LLIST #£=  TAN #"0.▘8#:= ▀ SLOW#▖2[<] 8#:= ▀[H]O E£RND)▛ ;OYA[Y]4▞Y0#F/ POKE LN [E]#TAN TAN E£RND)▞ ;OYA[Y]""Y0#F/ PRINT 
   2 REM LN [V]▝# RETURN COPYCOS  FAST)[Z] CLS[B] GOSUB #C4 LPRINT  FAST) TO  CLEAR[B] GOSUB #C7 LPRINT  FAST) CLS CLEAR[B] GOSUB #CA LPRINT  FAST) CLEAR CLEAR[B] GOSUB #CI LPRINT TAN  LPRINT E▙RNDF6▜RND5[▒]RNDPTAN  LPRINT E▙RND76▜RND5[▒]RNDOTAN  LPRINT E▙RND)5 [B] GOSUB #6▜RND5[,,]RNDPTAN  LPRINT E▙RND)5 ;6▜RND5[,,]RNDOTAN 
   3 REM ▞ E▜RND# RETURN[*]4▖▞▘/£ RETURN#C6 RETURN▒COS U[C]RND[Y]COS Y. FAST[Y]ATN [F]RNDE▙RND[J]# LPRINT Y[<]#6▙RNDE[▒]RND6▚RNDTAN E▙RND FAST)D#[B] GOSUB #C~~ LPRINT  FAST)##[B] GOSUB #4:5[,,]RNDPY3M[▒]RND LPRINT FF/TAB 5[,,]RNDOY M[▒]RND LPRINT 77/[O]
   4 REM E[~~]RND6[6]RNDE[£]RND6[8]RNDE[:]RND6[A]RNDU▚RND5[$]RND[Y]K▌LN [M]#/▀LN <>#U[C]RNDE[6]RND[Y]COS U[9]RND RETURN COS  RETURN3COS U[A]RNDE[~~]RND#E[6]RND6[~~]RND#M[:]RNDU[C]RND#E[8]RND6[£]RNDU[B]RNDM[?]RNDTAN E[(]RND6[6]RNDE[>]RND6[8]RNDE[=]RND6[A]RNDU▗RND5[>]RND[Y]K▌LN  LOAD #/▀LN ,#U[C]RNDE[6]RND[Y]COS U[9]RND RETURN COS  RETURN3COS U[A]RNDE[(]RND#E[6]RND6[(]RND#M[=]RNDU[C]RND#E[8]RND6[>]RNDU[B]RNDM[+]RNDTAN E[-]RND6[6]RNDE[/]RND6[8]RNDE[,]RND6[A]RNDU▚RND5[;]RND[Y]K▌LN A#/▀LN ##U[C]RNDE[6]RND[Y]COS U[9]RND RETURN COS  RETURN3COS U[A]RNDE[-]RND#E[6]RND6[-]RND#M[,]RNDU[C]RND#E[8]RND6[/]RNDU[B]RNDM[.]RNDTAN E[0]RND6[6]RNDE[2]RND6[8]RNDE[4]RND6[A]RNDU▗RND5[2]RND[Y]K▌LN  LOAD #/▀LN ,#U[C]RNDE[6]RND[Y]COS U[9]RND RETURN COS  RETURN3COS U[A]RNDE[0]RND#E[6]RND6[0]RND#M[4]RNDU[C]RND#E[8]RND6[2]RNDU[B]RNDM[5]RNDTAN 
   5 REM E[6]RNDFY▒[Y]C$Y#[Y]C▒6[6]RND5[9]RNDPTAN [J]TAN E[6]RND7Y▒[Y]C$Y#[Y]C▒6[6]RND5[9]RNDOTAN [J]TAN E[6]RND)5 ;Y▒[Y]C▒6[6]RND5[8]RNDOTAN [J]TAN E[6]RND)5 [B] GOSUB #Y▒[Y]C▒6[6]RND5[8]RNDPTAN [J]TAN 
   6 REM LN ## RETURN C▌[J]M[B]RNDTAN U[B]RND RETURN▝C"Y▘M[B]RNDLN *# RETURN ""Y▝M[B]RNDLN J# RETURN ""/ CONT LN ## RETURN C AND [J]M[B]RNDTAN LN *# RETURN C▌[J]M[B]RNDTAN U[B]RND RETURN▖C"Y▀M[B]RNDLN ## RETURN ""Y▖M[B]RNDLN ## RETURN ""/ CONT LN J# RETURN C AND [J]M[B]RNDTAN 
   7 REM LN ## RETURN C▌[J]M[B]RNDTAN U[B]RND RETURN▝C"Y▘M[B]RNDLN J# RETURN ""Y▝M[B]RNDLN *# RETURN ""/ CONT LN ## RETURN C AND [J]M[B]RNDTAN LN *# RETURN C▌[J]M[B]RNDTAN U[B]RND RETURN▖C"Y▀M[B]RNDLN ## RETURN ""Y▖M[B]RNDLN ## RETURN ""/ CONT LN J# RETURN C AND [J]M[B]RNDTAN 
   8 REM 5[,,]RNDPY3M[▒]RNDTAN 5[,,]RNDOY M[▒]RNDTAN 5[M]#6STR$ INKEY$ 5<>#6 AND INKEY$ Y[$]MINT INKEY$ Y▚MATN INKEY$ TAN 5##6STR$ INKEY$ 5[A]#6 AND INKEY$ Y[£]MINT INKEY$ Y▗MATN INKEY$ TAN 5A#6FPI5##6KPIY▚M6PIY[<]M9PITAN 5 LOAD #6FPI5,#6KPIY▗M6PIY[>]M9PITAN 5##6▟PI5[A]#6▚PIY▗M#PIY[/]M#PITAN 5A#6▟PI5##6▚PIY▚M#PIY[;]M#PITAN 5[M]#6NOT PI5<>#6>=PIY▚MEXP PIY[3]MSGN PITAN 5 LOAD #6NOT PI5,#6>=PIY▗MEXP PIY[2]MSGN PITAN 
   9 REM U▗RND5[£]RND[Y]ATN ##U▚RND5[$]RND[Y]ATN [:]#U▗RND5[>]RND[Y]ATN [9]#U▚RND5[<]RND[Y]ATN [W]#U▚RND5[;]RND[Y]ATN PEEK #U▗RND5[/]RND[Y]ATN  REM #U▗RND5[2]RND[Y]ATN ▘#U▚RND5[3]RND[Y]ATN /#TAN A
  10 REM 2▘▞#E▙RNDY[C]#   ( PRINT 1[J][V]4 INPUT LN ##TAN E[~~]RNDY[<]#5~~?6[£]RND5  6[:]RND5[.]#6[~~]RNDYO#TAN E[(]RNDY[<]#5~~(6[>]RND5  6[=]RND5[0]#6[(]RNDYO#TAN E[-]RNDY[<]#5"?6[/]RND5  6[,]RND5[W]#6[-]RNDYO#TAN E[0]RNDY[<]#5"(6[2]RND5  6[4]RND5[X]#6[0]RNDYO#TAN LN #RNDE▙RND GOSUB #[~~]RND[B] GOSUB #ATN [9]#E▙RND GOSUB #[(]RND[B] GOSUB #ATN AT #E▙RND GOSUB #[-]RND[B] GOSUB #ATN <>#E▙RND GOSUB #[0]RND[B] GOSUB #ATN  RAND #TAN 
  11 REM LN P#LN <=RND5▙RNDU▜RND[Y]CODE #INKEY$ Y▘[S]CSY[H]E▙RND[Y]4▖▘▘ TAN LN [$]#LN [T]INKEY$ LN ?PILN [V]PILN #PIE▚RND6[▒]RNDY[H]E▙RND[Y]4▖▘▘ TAN LN [M]#[J][T]COS LN 3#/[N]YOLN  CLEAR#YCM[E]RNDLN P#LN <=RND5▙RNDU▜RND[Y]CODE #INKEY$ Y▘[S]C LPRINT YOE▙RND[Y]ATN +#LN [$]#LN [T]INKEY$ LN ?PILN [V]PILN #PIE▚RND6[▒]RNDYOE▙RND[Y]ATN +#LN 3#LN [M]#[J][T]COS 5[E]RNDP4[P]Y[H]LN  CLEAR####M[C]RNDE[~~]RND#E[(]RND#E[-]RND#E[0]RND#TAN 
  12 REM  LPRINT #COS #▀#▌#E[~~]RND GOSUB #*#[B] GOSUB #4?UINT INKEY$  RETURN[$]C▀LN ##/▀LN [:]#E[(]RND GOSUB #;#[B] GOSUB #4?U6PI RETURN▚C▀LN [9]#/▀LN [W]#E[-]RND GOSUB #.#[B] GOSUB #4?U#PI RETURN▚C▀LN  REM #/▀LN PEEK #E[0]RND GOSUB #1#[B] GOSUB #4?UEXP PI RETURN▚C▀LN ▘#/▀LN /#E[~~]RND6*#E[(]RND6;#E[-]RND6.#E[0]RND61#TAN 
  13 REM E[Q]#76[Q]#TAN 5▞▘)[D] ▘▝ [B] GOSUB #""▘  TAN 5~~?6[£]RND5~~(6[>]RND5"?6[/]RND5"(6[2]RNDE£RND)#▘;6[~~]RND6*#6[S]#76[(]RND6;#6USR #)4 ;6[-]RND6.#6 LIST #76[0]RND61#6£#5  6[:]RND6[=]RND6[,]RND6[4]RNDTAN 
  14 REM 5)▀6▚RND6[▒]RNDE£RND)# ;6▙RND6▜RNDE£RND) CONT  ;6▚INKEY$ E£RND))▝;6[(]INKEY$ TAN E[~~]RNDU[:]RND#E[(]RNDU[=]RND#E[-]RNDU[,]RND#E[0]RNDU[4]RND#TAN 2▘▞#E▙RNDY[<]#   ( PRINT 1[J][V]4 INPUT TAN 
  15 REM ▞COS E£RND-ABS Y▚[Y]4▀Y▞#7+4 POKE E£RND-ABS Y▞[Y]4▀Y▚#7+4 POKE (>=TAN 
  16 REM PROGRAMMED BY                   BOB FRASER                      
  19 GOSUB 8000
  20 GOSUB 6900
  22 LET I=10
  25 GOSUB 7000
  26 GOSUB M(N)
  30 RAND USR 18466
  32 REM REMOVE 33
  33 POKE 16419,99
  50 PRINT AT 0,25;"  ";AT 0,25;I
  60 FOR T=9 TO 1 STEP -1
  65 PRINT AT 0,11;"█████";CHR$ (156+T);"█████"
  70 NEXT T
  75 PRINT AT 0,11;"[P][A][C][K][R][A][B][B][I][T]"
  90 GOSUB 3000
 100 RAND USR 18371
 102 LET L=USR 18003
 105 FOR T=1 TO 30
 106 PRINT AT 0,11;"PACKRABBIT";AT 0,11;"[P][A][C][K][R][A][B][B][I][T]"
 107 NEXT T
 108 IF L=0 THEN GOTO 3500
 109 IF I=1 THEN GOTO 300
 110 POKE 16552,173
 200 RAND USR 18509
 210 POKE PEEK 16514+256*PEEK 16515,0
 220 PRINT AT 3,17;"[<]"
 245 LET I=I-1
 250 GOTO 30
 300 PRINT AT 0,25;"0";AT 2,0;
 310 FOR I=2 TO 21
 315 PRINT AT I,0;"                                "
 320 NEXT I
 321 GOSUB 5500
 322 IF HS<SC THEN LET HS=SC
 325 PRINT AT 5,13;"SUMMARY";AT 6,13;"▀▀▀▀▀▀▀";AT 8,8;"YOUR SCORE: ";SC;AT 10,8;"HIGH SCORE: ";HS
 350 PRINT AT 18,0;"█████[T][Y][P][E][:]██[P]█[=]█[P][L][A][Y]█[A][G][A][I][N]██████████████████[S]█[=]█[S][T][O][P]████████████"
 355 LET A$=INKEY$ 
 357 PRINT AT 18,5;"████";AT 18,5;"[T][Y][P][E]"
 360 IF A$<>"S" AND A$<>"P" THEN GOTO 355
 365 CLS
 367 LET I=10
 368 LET SC=0
 370 IF A$="P" THEN GOTO 25
 400 PRINT AT 0,2;"███████████████████████████";AT 1,2;"█▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚█";AT 2,2;"█▚███████████████████████▚█";AT 3,2;"█▚██[P]█[A]█[C]█[K]█[R]█[A]█[B]█[B]█[I]█[T]██▚█";AT 4,2;"█▚███████████████████████▚█";AT 5,2;"█▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚█";AT 6,2;"███████████████████████████"
 410 RAND USR 18565
 420 PRINT AT 10,2;"YOUR BEST SCORE WAS: ";HS;AT 13,9;"GOOD-BYE."
 425 FOR I=15 TO 21
 430 PRINT AT I,0;"▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞▚▞"
 440 NEXT I
 500 STOP
3000 RAND USR 17550
3010 RAND USR 17573
3020 RAND USR 17619
3030 RAND USR 17688
3099 RETURN
3500 FOR T=1 TO 10
3505 PRINT AT 0,11;"PACKRABBIT";AT 0,11;"[P][A][C][K][R][A][B][B][I][T]"
3508 NEXT T
3510 LET N=N+1
3515 IF N=4 OR N=7 THEN GOTO 3700
3516 POKE 18358,0
3517 POKE 18359,0
3525 PRINT AT 2,0;
3530 GOTO 26
3700 GOSUB 5500
3704 FOR T=2 TO 21
3705 PRINT AT T,0;"                                "
3706 NEXT T
3710 PRINT AT 8,3;"THAT WAS GREAT PLAYING.";AT 11,3;"YOU HAVE ESCAPED THE HUNTERS."
3720 FOR T=1 TO 25
3725 NEXT T
3730 PRINT AT 8,0;"                                ";AT 11,0;"                                "
3735 GOTO 321
4000 PRINT "▒[*].......▒▒▒...▒▒▒▒.......▒...[*]▒▒.▒▒▒▒.▒.▒▒▒.▒......▒▒▒▒▒.▒.▒▒.▒"
4020 PRINT "▒.▒....▒.....▒[*]▒▒.▒....▒▒.[*].▒▒.▒▒.▒.▒▒▒▒▒.▒▒.▒......▒▒.▒▒.▒....▒"
4030 PRINT "▒.▒.▒..[*].....▒.▒▒▒▒▒▒▒....▒.▒▒.  ...▒.▒.▒▒▒.▒▒.........▒▒......▒"
4040 PRINT "▒.▒.▒...▒.....▒▒▒▒.▒▒▒....▒▒▒▒.▒▒.▒.▒.▒.▒.▒▒.      ....▒▒..▒▒..▒"
4050 PRINT "▒.......▒.▒▒.▒ [H][H] ▒.▒▒........▒▒▒.▒▒▒.▒.▒.[*]..▒ [H][H] ▒[*]▒▒.▒▒▒▒.▒.▒▒"
4060 PRINT "▒.....▒...▒▒.      .▒▒.........▒▒▒▒▒▒.▒..▒▒▒▒.▒▒▒▒▒....▒.▒▒▒▒▒.▒"
4070 PRINT "▒...................▒▒.▒.....▒.▒▒.▒▒▒▒.▒▒▒▒▒▒▒.▒▒▒.▒▒▒.▒.▒.▒.▒. "
4072 PRINT " ....▒.▒.......▒▒.....[*]........▒▒.▒▒.▒.▒.▒.▒▒▒.▒..▒▒▒▒▒.▒.▒.▒▒▒▒"
4075 PRINT "▒....▒...▒.▒...▒......▒........▒▒.▒▒.▒.▒.▒.▒.▒.▒.▒.▒▒.▒.▒▒▒▒.▒.▒"
4077 PRINT "▒[*].....▒.....▒..[*]..▒▒.........[*]▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
4080 PRINT AT 3,17;"[<]"
4083 POKE 18355,65
4085 POKE 18356,1
4090 RETURN
4100 PRINT "▒[*]........▒▒▒▒▒▒▒▒▒..........[*]▒▒▒.▒▒▒.▒▒▒........[<]..▒▒▒.▒.▒.▒.▒▒"
4110 PRINT "▒.▒▒▒.▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒▒.▒.▒.▒.▒▒▒.▒▒▒.▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒▒.▒.▒.▒.▒▒"
4115 PRINT "▒.▒▒▒.▒▒▒.▒.....[*]....▒▒........  .▒▒▒.▒▒▒.▒.▒▒ ▒▒▒▒▒.▒▒.▒▒▒▒▒▒.▒"
4120 PRINT "▒.▒▒▒.▒▒▒.▒.▒      ▒.▒▒.▒▒▒▒▒▒.▒▒.........▒.▒      ▒.....▒▒▒▒▒.▒"
4125 PRINT "▒.▒▒▒▒▒▒▒[*]▒.   [H][H]  ▒[*]▒▒▒.▒...▒.▒▒.▒▒▒▒▒▒▒.▒.▒  [H][H]  ▒...▒...▒.▒.▒"
4130 PRINT "▒.▒▒▒▒▒▒▒.▒.▒       .▒.▒▒▒.▒...▒▒.▒▒▒▒▒▒▒.▒.▒      ▒.▒...▒.▒.▒.▒"
4135 PRINT "▒....▒......▒▒▒▒▒ ▒▒.▒▒▒.▒.▒.▒.▒▒.▒▒.▒.▒.▒▒.....[*].....▒▒.[*].▒.▒. "
4140 PRINT " .▒▒.▒.▒.▒▒▒▒▒▒▒.▒▒▒▒....▒...▒.▒▒.▒▒.▒.▒.▒▒▒▒▒▒▒.▒▒▒▒.▒▒.▒▒....▒"
4145 PRINT "▒.▒▒.▒.▒.▒▒......▒▒▒▒.▒▒.▒▒.▒▒.▒▒.▒▒.▒.▒.▒▒.▒▒▒▒.▒▒▒▒.▒▒.▒▒.▒▒.▒"
4150 PRINT "▒[*].....▒....▒▒▒▒..............[*]▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
4155 POKE 18355,239
4156 POKE 18356,0
4160 RETURN
4200 PRINT "▒[*]......▒.....................[*]▒▒.▒.▒.▒...▒▒▒▒▒▒▒[<]▒▒▒▒▒▒▒.▒▒▒▒.▒"
4210 PRINT "▒.▒.▒.▒.▒▒▒▒..............▒▒▒▒.▒▒.▒.▒...▒.....▒▒▒▒▒▒▒▒▒▒▒......▒"
4215 PRINT "▒......▒▒[*]▒.▒.▒     ...[*]▒▒▒.▒▒.  .▒▒▒▒.▒▒.▒...▒ ▒▒▒▒.▒▒.▒......▒"
4220 PRINT "▒...........▒▒▒ ▒▒▒▒.▒▒.▒.▒▒▒▒.▒▒.▒.▒▒▒▒.▒▒▒▒       .▒▒.▒......▒"
4225 PRINT "▒.▒.▒▒▒▒.▒▒▒▒  [H][H]  ▒.▒▒...▒▒▒.▒▒▒.▒.........▒  [H][H]  ▒....▒......▒"
4230 PRINT "▒.▒▒▒▒▒▒▒▒▒.       ▒.▒▒▒▒▒▒.▒▒.▒▒....[*]...▒▒.▒▒▒▒▒ ▒▒....▒▒.....▒"
4235 PRINT "▒▒.▒.▒▒▒.▒...........▒▒....▒▒▒.▒▒▒.▒...▒.▒.▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒. "
4240 PRINT " ..▒.▒.▒.....▒.▒..[*].▒..........▒▒.▒▒...▒.▒.▒.▒.▒.▒▒.▒.▒.▒▒▒.▒▒.▒"
4245 PRINT "▒.▒▒▒▒.▒.▒.▒.▒......▒...▒▒▒.▒▒.▒▒.▒▒▒▒.▒.▒.▒.▒.▒.▒▒▒▒.▒.▒▒▒.▒▒.▒"
4250 PRINT "▒[*].......▒...▒.▒......▒.......[*]▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
4260 POKE 18355,32
4265 POKE 18356,1
4299 RETURN
5000 POKE 16541,0
5008 POKE 16521,3
5009 POKE 16519,3
5010 POKE 16520,17
5011 POKE 16518,17
5060 REM MONSTER CODE
5062 POKE 16552,61
5099 RETURN
5500 LET A=7+PEEK 16396+256*PEEK 16397
5505 LET SC=SC+(PEEK A-28)+10*(PEEK (A-1)-28)+100*(PEEK (A-2)-28)+1000*(PEEK (A-3)-28)+10000*(PEEK (A-4)-28)
5510 RETURN
6000 PRINT "▒[*]......▒▒▒▒▒▒▒▒▒▒▒▒..........[*]▒▒.▒▒▒▒▒.▒▒▒▒▒▒▒▒.[<].▒.▒▒▒.▒▒.▒▒.▒"
6010 PRINT "▒.▒▒▒▒▒......[*]...▒...▒▒▒.▒▒.▒▒.▒▒.▒▒▒▒▒[*]▒▒▒▒▒▒▒▒▒▒▒▒.▒▒▒.▒▒....▒"
6015 PRINT "▒................[*]...▒▒▒.▒▒.▒▒.  .▒.▒▒▒▒▒▒.▒▒▒▒▒▒▒▒▒.▒▒▒....▒▒.▒"
6020 PRINT "▒...▒▒▒▒▒▒.▒▒▒▒▒▒▒▒▒.....▒▒....▒▒▒▒[*]..........    ...▒.▒[*]▒▒▒▒▒▒▒"
6025 PRINT "▒▒▒▒.▒▒.▒▒.▒▒▒ [H][H] ▒▒▒▒.▒.....▒▒▒▒....▒▒.▒▒.▒▒▒ [H][H] ▒▒▒▒.▒.▒▒▒.▒▒▒"
6030 PRINT "▒.▒▒.▒▒.▒▒.▒▒▒    ▒▒▒▒.▒.▒▒▒.▒▒▒▒.▒▒....▒▒..[*]..▒▒.....[*]........▒"
6035 PRINT "▒.▒▒▒▒.▒▒▒.▒▒▒▒▒▒▒▒.▒▒▒▒▒▒.▒▒▒.▒▒.▒▒▒▒.▒▒▒.▒▒▒▒▒▒▒▒.▒▒▒▒▒▒.▒▒▒. "
6040 PRINT " ......▒▒▒.....................▒▒.▒▒.▒.....▒.▒▒▒▒▒.▒▒.▒▒▒▒▒..▒.▒"
6045 PRINT "▒.▒▒.▒▒▒▒▒▒........▒▒.▒▒▒▒▒▒...▒▒.▒▒.▒▒▒▒▒▒.▒▒.▒▒▒.▒▒.▒▒▒▒▒▒.▒.▒"
6050 PRINT "▒[*]..........▒▒...[*]....▒▒▒▒▒▒..[*]▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
6080 POKE 18355,245
6081 POKE 18356,0
6099 RETURN
6100 PRINT "▒[*].........▒▒▒▒▒▒▒▒▒▒▒▒.......[*]▒▒.▒▒▒▒▒▒▒▒.......[<]......▒▒▒▒▒▒.▒"
6110 PRINT "▒.▒▒▒▒▒▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒.▒▒▒▒▒▒.▒▒.▒▒▒▒▒▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒.▒▒▒▒▒▒.▒"
6115 PRINT "▒.▒▒▒▒▒▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒.▒▒▒▒▒▒.  .▒▒▒▒▒▒...▒▒▒▒▒▒▒▒▒▒▒▒.▒▒▒▒▒▒.▒"
6120 PRINT "▒.▒▒▒▒▒▒.........[*].............▒▒.▒▒▒▒▒▒..▒▒▒▒▒▒▒▒▒▒▒▒.▒▒▒▒▒▒▒.▒"
6125 PRINT "▒.........▒▒▒  [H][H]  ▒▒▒.▒▒▒▒▒▒▒.▒▒.▒▒▒▒▒▒▒.▒▒▒  [H][H]  ▒▒▒.▒▒▒▒▒▒▒.▒"
6130 PRINT "▒.▒▒▒▒▒▒▒.▒▒▒      ▒▒▒.▒▒▒▒▒▒▒.▒▒.▒▒▒▒▒▒▒........[*]........▒▒▒▒.▒▒.▒▒▒▒▒▒▒.▒▒▒▒▒▒▒▒▒▒▒▒.▒▒......▒"
6135 PRINT "▒....................▒.▒▒▒▒▒▒▒.  .▒▒▒▒▒▒.▒▒▒▒▒.▒▒▒▒▒.▒.▒▒▒▒▒▒▒.▒"
6140 PRINT "▒.▒▒▒▒▒▒.▒▒▒▒▒.▒▒▒▒▒.▒.▒▒▒▒▒▒▒.▒▒.▒▒▒▒▒▒.▒▒▒▒▒.▒▒▒▒▒.▒.▒▒▒▒▒▒▒.▒▒.▒▒▒▒▒▒.▒▒▒▒▒.▒▒▒▒▒.▒.▒▒▒▒▒▒▒.▒"
6145 PRINT "▒[*]............................[*]▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
6150 POKE 18355,197
6151 POKE 18356,0
6155 RETURN
6200 PRINT "▒[*]....................▒.......[*]▒▒.▒▒▒▒▒▒.▒▒▒▒▒▒▒▒[<]▒▒▒.▒.▒▒▒.▒▒.▒"
6210 PRINT "▒.▒▒▒▒▒▒.▒▒▒▒▒▒▒▒...▒.▒.▒▒▒.▒▒.▒▒.▒▒▒▒▒▒.......[*]..▒...▒........▒"
6215 PRINT "▒........▒▒▒▒▒▒▒▒▒▒▒....▒▒▒▒▒▒.  .▒▒▒▒▒▒.▒▒    ▒▒▒▒▒.▒▒.▒......▒"
6220 PRINT "▒.▒▒▒....▒▒ ▒▒ ▒▒▒▒▒.▒▒.▒.▒▒▒▒.▒▒.▒▒▒.▒▒▒▒▒ ▒      ▒.▒▒...▒▒▒▒.▒"
6225 PRINT "▒.....▒..[*]..▒  [H][H]  ▒....▒.▒▒▒▒.▒▒.▒▒▒.▒.▒▒▒.▒  [H][H]  ▒▒▒.▒▒..[*]...▒"
6230 PRINT "▒.▒▒▒...▒▒▒.         ▒.....▒▒▒▒▒▒...▒▒▒.▒▒▒.▒▒ ▒▒▒▒▒.▒▒▒▒▒.▒▒▒▒▒"
6235 PRINT "▒.▒............................▒▒.▒.▒▒▒▒.▒▒▒▒▒▒▒▒.▒▒▒.▒▒.▒▒▒▒▒. "
6240 PRINT " ...▒▒▒▒.▒....▒...[*]...▒▒.▒▒▒▒▒.▒▒.▒......▒.▒▒.▒.▒▒▒▒.▒▒▒.▒▒....▒"
6245 PRINT "▒.▒▒▒▒▒▒...▒▒...▒▒▒▒........▒▒.▒▒.▒▒▒▒▒▒.▒.▒▒.▒.▒▒▒▒.▒▒▒▒▒.▒▒▒.▒"
6250 PRINT "▒[*].......▒....▒...............[*]▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
6255 POKE 18355,6
6256 POKE 18356,1
6275 RETURN
6900 DIM M(6)
6910 LET M(1)=6100
6911 LET M(2)=6200
6912 LET M(3)=6000
6920 LET M(4)=4100
6921 LET M(5)=4200
6922 LET M(6)=4000
6925 LET SC=0
6926 LET HS=0
6950 RETURN
7000 PRINT AT 0,0;" 000000   █[P][A][C][K][R][A][B][B][I][T]█   10      ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
7010 PRINT AT 3,11;"CONTROLS";AT 4,11;"▀▀▀▀▀▀▀▀";AT 6,12;"Q = UP";AT 8,2;"L = LEFT           P = RIGHT";
7020 PRINT AT 10,11;"A = DOWN"
7030 PRINT AT 15,5;"█[C][H][O][O][S][E]█[Y][O][U][R]█[S][P][E][E][D][.]█";AT 17,3;"TYPE A NUMBER FROM 0 TO 9.";AT 19,5;"0 = FAST   9 = SLOW"
7040 LET A$=INKEY$ 
7050 IF A$<"0" OR A$>"9" THEN GOTO 7040
7062 POKE 17806,(VAL A$+1)
7065 POKE 18539,(VAL A$+1)
7090 PRINT AT 15,2;"   █[C][H][O][O][S][E]█[Y][O][U][R]█[G][A][M][E][.]█  ";AT 16,15;",";AT 17,2;"   1 = RABBIT S REVENGE      ";AT 19,2;"   2 = RUN RABBIT RUN   "
7100 LET M$=INKEY$ 
7105 IF M$<"1" OR M$>"2" THEN GOTO 7100
7110 IF M$="1" THEN LET N=1
7115 IF M$="2" THEN LET N=4
7120 POKE 18358,0
7121 POKE 18359,0
7140 PRINT AT 0,0;" 000000   █[P][A][C][K][R][A][B][B][I][T]█   10     ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
7150 RETURN
8000 PRINT AT 0,2;"███████████████████████████";AT 1,2;"█▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚█";AT 2,2;"█▚███████████████████████▚█";AT 3,2;"█▚██[P]█[A]█[C]█[K]█[R]█[A]█[B]█[B]█[I]█[T]██▚█";AT 4,2;"█▚███████████████████████▚█";AT 5,2;"█▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚▚█";AT 6,2;"███████████████████████████"
8019 PRINT AT 8,0;"▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
8020 PRINT "▒.▒....[H].....▒[*]▒▒.▒....▒▒.[*].▒▒.▒▒.▒.▒▒▒▒▒.▒▒.▒..[<]...▒▒.▒▒.▒....▒"
8025 PRINT "▒.▒.▒..[*]..[H]..▒.▒▒▒▒▒▒▒....▒.▒▒.  ...▒.▒.▒▒▒.▒▒.........▒▒......▒"
8030 PRINT "▒.▒.▒...▒.....▒▒▒▒.▒▒▒....▒▒▒▒.▒▒.▒.▒.▒.▒.▒▒.      ....▒▒..▒▒..▒"
8035 PRINT "▒.[H]...▒..[H]▒▒.      .▒▒.........▒▒▒▒▒▒.▒..▒▒▒▒.▒▒▒▒▒....▒.▒▒▒▒▒.▒"
8040 PRINT "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒"
8045 PRINT AT 19,7;"COPYRIGHT 1983               INTERNATIONAL PUBLISHING            AND SOFTWARE"
8050 RAND USR 18565
8055 CLS
8060 RETURN
9900 SAVE "PACKRABBI[T]"
9909 SLOW
9910 GOTO 1

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.