If you think there are different versions of the 2BB ROM, check the CRC correction words of the two 64KB pages of the ROM. You can find the two CRC words (two CRC's per 64KB page) at #1FFF8-1FFFF and #3FFF8-#3FFFF. To read them you need a PEEK program.
But that isn't necessary, the garbage you see in display during the self test on the HP28S is a remainder of 32KB user RAM test. The used RAM test destroys the RAM content, so the old content must be saved first. The display RAM is a good place for this. The different display output during the self test is a function of the different content of the user RAM at testing time.
If you don't believe this, check the following code.
Regards,
Christoph
Disassembled HP28S RAM test code:
* RAM test
018DF P= 0
018E1 LC(5) #C0000 start of user RAM
018E8 D=C A
018EA GOSUB [01941] save #400 nibs of RAM into disp area
018EE LC(5) #00043
018F5 P= 4
018F7 GOSUB [015D0] user RAM test of area with pattern (destroys content)
018FB GONC [0191A] Ram OK -> NC -> jump
* error condition
018FE CD0EX
01901 B=C A
01903 GOSUB [01972] restore #400 nibs of RAM
01907 C=B A
01909 D0=C
0190C LC(1) 4
0190F ST=1 9
01912 GOSUB +0008A # Address: 0199C
01916 GOTO +00008 # Address: 0191E
0191A GOSUB [01972] restore #400 nibs of RAM
0191E P= 0
01920 LC(5) #00400 next page of RAM
01927 D=D+C A
01929 LC(5) #D0000 reached last address?
01930 ?D#C A, GOYES [018EA]
01935 ?ST=1 9, RTNYES return on error
0193A LC(1) 4
...
* save #400 nibbles of RAM at D[A] to display
01941 C=D A D[A] addr. of RAM page
01943 D0=C
01946 D1=(5) #FF840 start of display (slave)
0194D LC(5) #00220 no. of nibs to copy
01954 GOSBVL 04FF2 copy!
0195B D1=(5) #FFC00 start of display (master)
01962 LC(5) #001E0 no. of nibs to copy (#220+#1E0=#400)
01969 GOSBVL 04FF2 copy!
01970 RTNCC
* restore #400 nibbles of RAM at C[A] from display
01974 D1=C
01977 D0=(5) #FF840
0197E LC(5) #00220
01985 GOSBVL 04FF2
0198C D0=(5) #FFC00
01993 GOTO -00031 # Address: 01962
01962 LC(5) #001E0
01969 GOSBVL 04FF2
01970 RTNCC
* copy routine
04FF2 C=C-1 A
04FF4 GOC +0004A # Address: 0503E
04FF7 P=C 0
04FFB CSR A
04FFD C=C-1 A
04FFF GOC +00025 # Address: 05024
05002 A=DAT0 W
05006 DAT1=A W
0500A D0=D0+ 16
0500D D1=D1+ 16
05010 C=C-1 B
05013 GONC -00011 # Address: 05002
05016 C=C-1 XS
05019 GONC -00017 # Address: 05002
0501C C=C+1 X
0501F C=C-1 A
05021 GONC -0001F # Address: 05002
05024 A=DAT0 WP
05028 DAT1=A WP
0502C CD0EX
0502F C+P+1
05032 D0=C
05035 CD1EX
05038 C+P+1
0503B D1=C
0503E P= 0
05040 RTNCC