Remix.run Logo
kurlberg a day ago

I don't think this is entirely due to Wozniak. Early "home" computer systems were based on connecting cards to a bus (eg the S-100 bus), eg. with one card supporting the CPU, another RAM, a third for disk drive, video card etc, etc. The cards where then memory mapped, presumably you controlled the memory mapping by setting jumpers. (I guess you're saying that Apple II managed this automatically?) Of course the full story might be a bit more complicated: 6502 and 6800 used memory mapped I/O, whereas 8080 (and Z80?) had certain I/O pins coming out of the CPU.

raw_anon_1111 21 hours ago | parent [-]

Memory mapping happened automatically. Each card was mapped based on the slot it was in. $C000 - $C700 I believe with each slot assigned 256 bytes.

kot_manul 19 hours ago | parent [-]

You're correct; slot 6 for instance is $C600. If you crashed to the system monitor you could boot a disk by entering C600G (with the 'G' standing for 'go to').

IIRC the disk controller had firmware that loaded the first 256 byte sector from disk into memory.

Dwedit 18 hours ago | parent [-]

If you crashed to the monitor, you could hit Ctrl+B and get back to BASIC, then type IN#6 to boot the disk.

Joe_Cool 17 hours ago | parent [-]

Yeah. It was neat. But it rebooted in under a second so a complete crash was no biggie.

RAM wasn't even cleared so usually no (or limited) data loss.

I thought it was PR#6 (redirect output) to boot from the disk controller in slot 6. I wonder what redirecting input would do.

raw_anon_1111 17 hours ago | parent | next [-]

That was it at the AppleSoft BASIC prompt (or IN#6). But the parent poster commented on how to do it from assembly.

Joe_Cool 17 hours ago | parent [-]

There is an even quicker way from the monitor:

6 CTRL+P

Will instantly divert output to slot 6. (and boot the disk if there is hardware there)

Polizeiposaune 17 hours ago | parent | prev [-]

Both worked to start a boot from the disk controller in that slot.