[Coco] Detecting CoCo 1 versus CoCo 2
Paul F
fiscap0768 at gmail.com
Thu Oct 17 19:05:35 EDT 2024
You are absolutely correct Jim - Darren posted a snippet of code a few
months back on Discord (possibly Hardware-General), outlining exactly what
you stated. I'm just leaving the office now, but I'll try to dig it up when
I get home later this evening.
However, I do know that Darren's method isn't 100% accurate in detecting a
CoCo 1 as it does not work on at least one of my F-board CoCo 1 systems.
I'm not sure what your particular application/use-case might be, but if
you're looking for 100% accuracy, I don't believe you're going to get it
using current known methods.
I have a utility (CoCoID) which 'attempts' to detect the difference between
CoCo 1/2, using both Darren's method as well as CRC checks on the CB and
ECB ROM versions. It's a heuristic approach (best guess), but it's pretty
good at detecting a CoCo that is NOT a CoCo-2. That is, if it passes the
ROM checks to detect earlier/original CoCo 1 ROMs, it's pretty certain that
it is a CoCo-1 - while some people maybe upgrade their CoCo-1 to newer
ROMs, it's probably an extremely rare case for someone to downgrade their
CoCo-2 to use CoCo-1 ROMs.
On Thu, Oct 17, 2024 at 5:26 PM RETRO Innovations via Coco <
coco at maltedmedia.com> wrote:
> On 10/17/2024 2:23 PM, Sean Conner via Coco wrote:
> > It was thus said that the Great Juan Castro via Coco once stated:
> >>> From Darren Atkison:
> >>> The audio MUX on the CoCo 1 is bi-directional, but the integrated
> >>> DAC/MUX on the CoCo 2 is uni-directional. There is a test you can do
> >>> where you toggle the single-bit sound output and check to see if the
> >>> cassette input level changes to match. If it does change then it's a
> >>> CoCo 1.
> >> Oh man, if anybody here has that code I'd like to see it.
> > If I understand the explanation right, then something like:
> >
> > lda $FF22
> > ora #2
> > sta $FF22 ; enable single bit output
> > lda $FF20
> > bita #1 ; check cassette data input
> > beq coco2 ; if not 1, then CoCo2
> >
> > would work. In BASIC, this would be:
> >
> > 10 A = PEEK&HFF22
> > 20 A = A OR 2
> > 30 POKE&HFF22,A
> > 40 A = PEEK&HFF20
> > 50 A = A AND 1
> > 60 IF A == 0 THEN PRINT "COCO2"
> >
> > -spc
> >
> >
> Don't you need to set the DDR and the port and make sure the state is
> different from the current cassette in state?
>
> JIm
>
>
>
> --
> RETRO Innovations, Contemporary Gear for Classic Systems
> www.go4retro.com
> store.go4retro.com
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>
More information about the Coco
mailing list