Here's a 71B RAM Editor.
The original was published in a PPC Journal article back in the day (I can find a reference if needed). In the original article, a BASIC call was used for the INADDR function, but that seemed morally wrong, so I rewrote it using FORTH (though fairly ugly, inelegant and likely not efficient, but it works, and hey, it was some of the very first FORTH I ever wrote...).
Code:
BASE @ HEX
: INADDR ( str -- n )
( Prompts for and returns a number )
( Start number with "T" for decimal, )
( else HEX is assumed )
TYPE BASE @ HEX
PAD 2+ DUP DUP EXPECT96 CR
SPAN @ SWAP 2- C!
DUP C@ 54 =
IF
DECIMAL DUP DUP 2-
C@ 1- SWAP C!
ELSE
2-
THEN
NUMBER DROP SWAP
BASE ! ;
16 STRING PR$ " FFFFF: F F F (F) F F F" PR$ S!
: NORL 30 + DUP 39 > IF 7 + THEN ;
: SADDR SP@ DUP 5+ SWAP DO I N@ NORL LOOP PR$ DROP DUP
A + SWAP DO I C! 2 +LOOP ;
: ST + DUP ROT ROT C! ;
: LPR$ DUP DUP 3 - SWAP 3 + DO I N@ NORL -1 +LOOP PR$
DROP E ST 4 ST 4 ST 6 ST 6 ST 4 ST 4 ST DROP ;
: R? KEY D = IF OVER N! 1+ ELSE DROP THEN ;
: KEY? CASE
8 OF 1- ENDOF
9 OF 1+ ENDOF
7 OF 2- ENDOF
0 OF 2+ ENDOF
5 OF 5- ENDOF
6 OF 5+ ENDOF
47 OF CR DROP " Addr: " INADDR ENDOF
52 OF CR " Addr: " INADDR + ENDOF
30 OF 0 R? ENDOF
31 OF 1 R? ENDOF
32 OF 2 R? ENDOF
33 OF 3 R? ENDOF
34 OF 4 R? ENDOF
35 OF 5 R? ENDOF
36 OF 6 R? ENDOF
37 OF 7 R? ENDOF
38 OF 8 R? ENDOF
39 OF 9 R? ENDOF
41 OF A R? ENDOF
42 OF B R? ENDOF
43 OF C R? ENDOF
44 OF D R? ENDOF
45 OF E R? ENDOF
46 OF F R? ENDOF
ENDCASE ;
: RAMED BEGIN CR LPR$ SADDR PR$ TYPE KEY KEY? 0 UNTIL ;
BASE !