13

MOS 6500 family hardware manual says that during a reset (or a start up), processor will fetch program counter from addresses 0xFFFC and 0xFFFD. On Atari 2600 this memory region is mapped to ROM, once a cartridge is inserted.

What happens in the processor when you turn on Atari 2600 without cartridge? Will program counter fetch fail or will it fetch some garbage value? Will it try to decode an opcode or is there some safety feature to halt execution?

1
  • probably reads FF or 00
    – user253751
    May 24, 2023 at 4:51

1 Answer 1

17

According to the schematics

Schematics for the Atari 2600

These are the things on the data bus:

  • The CPU (which the question is about)
  • The ROM (which the question posits is not connected)
  • The RIOT (a.k.a 6532)
  • The TIA

The RIOT and TIA are both tristated when the CPU reads the reset vector or a (normal) instruction stream, which means the contents of the databus are not defined.

Therefore, the behavior of the Atari 2600 is not defined when there's not cartridge in on power-up. (The program counter will be set to some undefined value, and the CPU will proceed to execute from there. If the PC points to ROM, then the instructions fetched are also undefined, so there's no telling what it'll do. But it might also execute from the address space mapped to the RIOT or TIA).

8
  • 1
    There can be advantages to having a CPU bus float. On the Apple II, if there are no cards with passive pull-ups or pull-downs, reading an open-bus address will yield the last byte fetched by the video hardware. On the 2600, though I don't know of any cart designs that exploited this other than my own, it's possible to make a cart compatible with "normal" loads and stores, and even read-modify-write instructions, if on the first half of each cycle where it's accessed it performs a read of the appropriate address, and on the second half it writes whatever is on the data bus to RAM.
    – supercat
    May 24, 2023 at 17:20
  • Seems like 6507 and 6532 pull up input-only pins, but that three-state data bus indeed has +- 10µA leakage so could float randomly.
    – jpa
    May 25, 2023 at 7:41
  • @supercat You mean a cart that's able to mirror the RAM in the 6532? That would be quite amazing May 25, 2023 at 8:06
  • Rather than a scenario, let's examine history instead. Atari built 30 million VCS consoles over about 14 years and there's no reports of substantial failures or degradation (noticeably shorter life) due to being powered on with no cartridge in. Or reports of any failures due to that. So there's no problem to solve, right?
    – TonyM
    May 25, 2023 at 14:50
  • @Героямслава: Prevention of undefined opcodes may have been important if one wanted to ensure that the system could be restored to useful operation without having to remove power. If the 2600 is powered up without a cartridge, however, it will be necessary to remove power before use, whether or not there are pull-ups or pull-downs on the data bus.
    – supercat
    May 25, 2023 at 14:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .