[Coco] Re: Any reason to put a 6309 in a Coco2?

Torsten Dittel Torsten at Dittel.info
Wed Jan 7 11:24:20 EST 2004


> Hmm, no technical reason that I know of - what and where are the latest
> BASIC ROM versions?

I remember Color BASIC 1.3 on my (lowercase) CoCo 2B. I thought there
was an (Disk?) Extended BASIC 1.2 to, but I might be wrong... have to
turn my CoCo on again... ;-)

Excerpts from earlier postings (Tim Lindner e.a.):

###################################

Color BASIC came in versions: 1.0, 1.1, and 1.2
Extended Color BASIC came in versions: 1.0 and 1.1
Color Disk BASIC came in versions 1.0 and 1.1

####################################

> Aha - I got MESS working with a COCO2B image, and it has Color Basic 1.3.
> 
> EXEC41175 to see the Color Basic version (and, no, I have no idea how I
> managed to remember that call after ~20 years).

Damn, you think I would have remembered this! I'm a MESS dev afterall.
:)

The differences are very small, just two lines from a dump:

Ofst  Hex                                              ASCII

Color BASIC 1.2:

0060: C6 04 A7 1E E5 02 27 0A 6F 1E E5 02 27 02 33 5E   ......'.O...'.3^

0150: 49 43 20 31 2E 32 0D 28 43 29 20 31 39 38 32 20   IC 1.2.(C) 1982


Color BASIC 1.3:

0060: C6 04 6F 1E E5 02 27 06 A7 5B A7 55 20 04 12 12   ..O...'..[.U ...

0150: 49 43 20 31 2E 33 0D 28 43 29 20 31 39 38 32 20   IC 1.3.(C) 1982


The bytes at offset $0150 are obviously just the banner. The bytes at
offset $0060 have to do with the determining RAM size:

1.2 (From the Unravelled series):

A060 C6 04   LDB   #$04   USE AS A MASK TO CHECK RAMSZ INPUT
A062 A7 1E   STA   -2,X   SET RAMSZ STROBE HIGH
A064 E5 02   BITB  2,X    CHECK RAMSZ INPUT
A066 27 0A   BEQ   LA072  BRANCH IF JUMPER SET FOR 4K RAMS
A068 6F 1E   CLR   -2,X   SET RAMSZ STROBE LOW
A06A E5 02   BITB  2,X    CHECK RAMSZ INPUT
A06C 27 02   BEQ   LA070  BRANCH IF JUMPER SET FOR 64K RAMS
A06E 33 5E   LEAU  -2,U   ADJUST POINTER TO SET SAM FOR 16K RAMS

1.3 (Hand disasembled):

A060 C6 04   LDB   #$04   USE AS A MASK TO CHECK RAMSZ INPUT
A062 6F 1E   CLR   -2,X
A064 E5 02   BITB   2,X
A066 27 06   BEQ   +6
A068 A7 5B   STA   -5,U
A06A A7 55   STA   -11,U
A06C 20 04   BRA   +4
A06E 12      NOP
A06F 12      NOP

##########################################

I have done a little more commenting.

1.3:

A060 C6 04   LDB   #$04   USE AS A MASK TO CHECK RAMSZ INPUT
A062 6F 1E   CLR   -2,X   SET RAMSZ STROBE LOW
A064 E5 02   BITB   2,X   CHECK RAMSZ INPUT
A066 27 06   BEQ   $A070  BRANCH IF JUMPER SET
A068 A7 5B   STA   -5,U   SET M0 OF SAM
A06A A7 55   STA   -11,U  SET P1 OF SAM 
A06C 20 04   BRA   $A072
A06E 12      NOP
A06F 12      NOP
A070 A7 5D   STA   -3,U   SET M1 OF SAM
A072 6E A4   JMP   ,Y     GO DO A WARM OR COLD START

I am guessing that a CoCo 2 with version 1.3 of the ROM comes with a
SN74LS785 SAM and not a SN74LS783/MC6883 SAM.

So if the jumper is in place you have: 16K x 4 dynamic RAM.
If the jumper is clear you have: 64K x 1 dynamic RAM.

#############################################

> I am guessing that a CoCo 2 with version 1.3 of the ROM comes with a
> SN74LS785 SAM and not a SN74LS783/MC6883 SAM.

Correct, It mostly had to do with the refresh rates for 4 by XXk RAM
Chips.

> So if the jumper is in place you have: 16K x 4 dynamic RAM.
> If the jumper is clear you have: 64K x 1 dynamic RAM.

Vise-versa, you added the jumper for 64k.

###########################################




More information about the Coco mailing list