Don't know if this will help, but after badmouthing the 8051 I decided to do a small project with one. This is a AT89C2051-24PU which should be very similar to the AT89C51RC. (the AT89C51RC appears to be the better chip)
The programming tool I used is detailed at MCU 8051 IDE - Wikipedia and works well. The AT89C51RC is listed as being compatible with this compiler. I got a few of these chips from a cheap eBay dealer for slightly less than Digikey and got it to work after a very small bit of research. The basic process is write your code, compile it in the 8051 MCU IDE that I linked above, use just about any (e)(e)PROM programmer like my ChipMax 2 (and there are many cheap ones that would work fine) to send up the resulting .HEX file, and use the chip. There is no debugger or ICE for this, you have to move the chip to the programmer and back, but it's quite easy. Here is the project and my code. It's simply doing an inverted Night Rider LED animation for the time being.
; Program initialization
; --------------------
org 0h
sjmp start
delay: MOV R2, #200
outer: MOV R3, #250
inner: NOP
NOP
DJNZ R3, inner
DJNZ R2, outer
RET
; Program start
; --------------------
start:
MOV P3, 0 ; enable LEDs 0-5
CLR P1.2 ; enable LED 6
CLR P1.3 ; enable LED 7
loop: SETB P3.4 ; disable LED 4
LCALL delay
CLR P3.4 ; enable LED 4
SETB P3.5 ; disable LED 5
SETB P3.3 ; disable LED 3
LCALL delay
CLR P3.5 ; enable LED 5
CLR P3.3 ; enable LED 3
SETB P3.7 ; disable LED 6
SETB P3.2 ; disable LED 2
LCALL delay
CLR P3.7 ; enable LED 5
CLR P3.2 ; enable LED 4
SETB P1.2 ; disable LED 7
SETB P3.1 ; disable LED 1
LCALL delay
CLR P1.2 ; enable LED 7
CLR P3.1 ; enable LED 1
SETB P1.3 ; disable LED 8
SETB P3.0 ; disable LED 0
LCALL delay
CLR P1.3 ; enable LED 8
CLR P3.0 ; enable LED 0
; circle back
SETB P1.2 ; disable LED 7
SETB P3.1 ; disable LED 1
LCALL delay
CLR P1.2 ; enable LED 7
CLR P3.1 ; enable LED 1
SETB P3.7 ; disable LED 6
SETB P3.2 ; disable LED 2
LCALL delay
CLR P3.7 ; enable LED 6
CLR P3.2 ; enable LED 2
SETB P3.5 ; disable LED 5
SETB P3.3 ; disable LED 3
LCALL delay
CLR P3.5 ; enable LED 5
CLR P3.3 ; enable LED 3
sjmp loop
END
[/quote]