Skip to content

Jr2 Machine ID (MID) byte reports wrong value #8

@Mu0n

Description

@Mu0n

Describe the issue

Register $D6A7 in io_page 0 reports the wrong value in some cases for the Jr2

To reproduce

There are many ways to expose the value, but the simplest one is to use this superbasic line:
PRINT PEEK($D6A7)
which will return the byte in decimal form

Expected behavior

According to this chart, the values we are expected depend on the machine (Jr, Jr2, K, K2) and the active core (classic MMU, ext 816, 2x core MMU+ext hybrid, 6809) leading to many combinations.
https://f256wiki.wildbitscomputing.com/index.php?title=MID_codes_for_machine_identification

The faulty cases should behave like so:

Wrong case 1: (reported by ModernRetroDev)
Jr2 with classic MMU core: reports 2 decimal = 0x02 hex = 0000 0010 b
but this is the code normally reserved for Jr1 with classic MMU core.
it should instead report 34 decimal = 0x22 hex = 0010 0010 b

Wrong case 2: (reported by Enersto Contrera)
Jr2 with 2x core: reports 130 decimal = 0x82 hex = 1000 0010 b
but this is the code normally reserved for Jr1 with 2x core.
it should instead report: 162 decimal = 0xA2 hex = 1010 0010 b

Solution: if bit5 was properly set for both of these codes, then the machine ID would correctly identify these machines as gen2 instead of gen1.

Hardware version

Report by ModernRetroDev

  • Machine type: Wildbits/Jr2 (bought F256Jr2)
  • PCB revision: unsure, bought on October 24, 2024
  • CPU: 65816,
  • Speed: 1x
    (SuperBASIC Hardware version string: 00200002 A0)

Report by Enersto Contrera

  • Machine type: Wildbits/Jr2 (bought F256Jr2)
  • PCB revision: unsure
  • CPU: 65816
  • Speed: 2x

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions