Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


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.


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.


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


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.


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


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)


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: