dingusppc/zdocs/misc.md

83 lines
3.7 KiB
Markdown
Raw Normal View History

2020-03-01 17:58:09 +00:00
# ROM
The Old World ROM is always 4 megabytes (MB). The first three MB are reserved for the 68k code, while the last MB is for the PowerPC boot-up code.
# Serial
For serial, it replicates the functionality of a Zilog ESCC. There are two different ports - one located at (MacIOBase) + 0x13000 for the printer, and the other at (MacIOBase) + 0x13020 for the modem.
2020-03-01 17:58:09 +00:00
# DBDMA
The Description-Based Direct Memory Access relies on memory-based descriptions, minimizing CPU interrupts.
| Channel | Number |
|:-----------------:|:------:|
| SCSI0 | 0x0 |
| FLOPPY | 0x1 |
| ETHERNET TRANSMIT | 0x2 |
| ETHERNET RECIEVE | 0x3 |
| SCC TRANSMIT A | 0x4 |
| SCC RECIEVE A | 0x5 |
| SCC TRANSMIT B | 0x6 |
| SCC RECIEVE B | 0x7 |
| AUDIO OUT | 0x8 |
| AUDIO IN | 0x9 |
| SCSI1 | 0xA |
2020-03-06 04:38:14 +00:00
# NCR 53C94
The NCR 53C94 is the SCSI controller.
2020-03-06 04:38:14 +00:00
# Register Map
2020-03-06 04:38:14 +00:00
| Offset | Read functionality |Write functionality |
|:------:|:------------------------:|:-------------------------:|
| 0x0 | Transfer counter LSB | Transfer counter LSB |
| 0x1 | Transfer counter MSB | Transfer counter MSB |
| 0x2 | FIFO | FIFO |
| 0x3 | Command | Command |
| 0x4 | Status | Destination Bus ID |
| 0x5 | Interrupt | Select/reselect timeout |
| 0x6 | Sequence step | Synch period |
| 0x7 | FIFO flags/sequence step | Synch offset |
| 0x8 | Configuration 1 | Configuration 1 |
| 0x9 | | Clock conversion factor |
| 0xA | | Test mode |
| 0xB | Configuration 2 | Configuration 2 |
| 0xC | Configuration 3 | Configuration 3 |
| 0xF | | Reserve FIFO Byte (Cfg 2) |
2020-03-01 17:58:09 +00:00
# SWIM 3
The SWIM 3 (Sanders-Wozniak integrated machine 3) is the floppy drive disk controller. As can be inferred by the name, the SWIM III chip is the improvement of a combination of floppy disk driver designs by Steve Wozniak (who worked on his own floppy drive controller for early Apple computers) and Wendell B. Sander (who worked on an MFM-compatible IBM floppy drive controller).
2020-03-04 03:54:09 +00:00
2020-03-06 04:38:14 +00:00
The SWIM chip is resided on the logic board physically and is located at IOBase + 0x15000 in the device tree. It sits between the I/O controller and the floppy disk connector. Its function is to translate the I/O commands to specialized signals to drive the floppy disk drive, i.e. disk spinning speed, head position, phase sync, etc.
2020-03-04 03:54:09 +00:00
2020-03-07 22:40:46 +00:00
Unlike its predecessor, it allowed some DMA capability.
2020-03-04 03:54:09 +00:00
The floppy drives themselves were provided by Sony.
2020-03-01 17:58:09 +00:00
2020-03-06 04:38:14 +00:00
Some New World Macs do have a SWIM 3 driver present, but this normally goes unused due to no floppy drive being connected.
2020-03-01 17:58:09 +00:00
# NVRAM
Mac OS relies on 8 KB of NVRAM at minimum to run properly. It's usually found at IOBase (ex.: 0xF3000000 for Power Mac G3 Beige) + 0x60000.
# PMU
| Command Name | Number | Functionality |
|:----------------:|:------:|:----------------------------:|
| PMUpMgrADB | 0x20 | Send ADB command |
| PMUpMgrADBoff | 0x21 |
| PMUxPramWrite | 0x32 |
| PMUtimeRead | 0x38 |
| PMUxPramRead | 0x3A |
| PMUmaskInts | 0x70 |
| PMUreadINT | 0x78 |
| PMUPmgrPWRoff | 0x7E |
| PMUResetCPU | 0xD0 |
2020-03-01 17:58:09 +00:00
# Miscellaneous
The Power Mac G3 Beige has an additional register at 0xFF000004, which is dubbed varyingly as the "cpu-id" (by Open Firmware), the ""systemReg" (display driver) or "MachineID" (platform driver).