diff --git a/memorycontrol.md b/memorycontrol.md
index 7b1ee96..4f14a0d 100644
--- a/memorycontrol.md
+++ b/memorycontrol.md
@@ -9,7 +9,7 @@ expansion hardware (allowing to increase the memory size and bus width).
0-23 Base Address (Read/Write)
24-31 Fixed (Read only, always 1Fh)
```
-For Exansion 1, the address is forcefully aligned to the selected expansion
+For Expansion 1, the address is forcefully aligned to the selected expansion
size (see below), ie. if the size is bigger than 1 byte, then the lower bit(s)
of the base address are ignored.
For Expansion 2, trying to use ANY other value than 1F802000h seems to disable
@@ -24,21 +24,22 @@ For Expansion 3, the address seems to be fixed (1FA00000h).
#### 1F801018h - CDROM Delay/Size (00020843h or 00020943h)
#### 1F80101Ch - Expansion 2 Delay/Size (usually 00070777h) (128 bytes, 8bit bus)
```
- 0-3 Unknown (R/W)
- 4-7 Access Time (00h..0Fh=00h..0Fh Cycles)
- 8 Use COM0 Time (0=No, 1=Yes, add to Access Time)
- 9 Use COM1 Time (0=No, 1=Probably Yes, but has no effect?)
- 10 Use COM2 Time (0=No, 1=Yes, add to Access Time)
- 11 Use COM3 Time (0=No, 1=Yes, clip to MIN=(COM3+6) or so?)
- 12 Data Bus-width (0=8bit, 1=16bit)
- 13-15 Unknown (R/W)
+ 0-3 Write Delay (00h..0Fh=01h..10h Cycles)
+ 4-7 Read Delay (00h..0Fh=01h..10h Cycles)
+ 8 Recovery Period (0=No, 1=Yes, uses COM0 timings)
+ 9 Hold Period (0=No, 1=Yes, uses COM1 timings)
+ 10 Floating Period (0=No, 1=Yes, uses COM2 timings)
+ 11 Pre-strobe Period (0=No, 1=Yes, uses COM3 timings)
+ 12 Data Bus-width (0=8bits, 1=16bits)
+ 13 Auto Increment (0=No, 1=Yes)
+ 14-15 Unknown (R/W)
16-20 Memory Window Size (1 SHL N bytes) (0..1Fh = 1 byte ... 2 gigabytes)
21-23 Unknown (always zero)
- 24-27 Unknown (R/W) ;must be non-zero for SPU-RAM reads
- 28 Unknown (always zero)
- 29 Unknown (R/W)
- 30 Unknown (always zero)
- 31 Unknown (R/W) (Port 1F801008h only; always zero for other ports)
+ 24-27 DMA timing override
+ 28 Address error flag. Write 1 to it to clear it.
+ 29 DMA timing select (0=use normal timings, 1=use bits 24-27)
+ 30 Wide DMA (0=use bit 12, 1=override to full 32 bits)
+ 31 Wait (1=wait on external device before being ready)
```
Trying to access addresses that exceed the selected size causes an exception.
Maximum size would be Expansion 1 = 17h (8MB), BIOS = 16h (4MB), Expansion 2 =
@@ -49,12 +50,11 @@ at 1F801C00h and for the 200h-byte unknown region at 1F801E00h.
#### 1F801020h - COM\_DELAY / COMMON\_DELAY (00031125h or 0000132Ch or 00001325h)
```
- 0-3 COM0 - Offset A ;used for SPU/EXP2 (and for adjusted CDROM timings)
- 4-7 COM1 - No effect? ;used for EXP2
- 8-11 COM2 - Offset B ;used for BIOS/EXP1/EXP2
- 12-15 COM3 - Min Value ;used for CDROM
- 16-17 COM? - Unknown ;used for whatever
- 18-31 Unknown/unused (read: always 0000h)
+ 0-3 COM0 - Recovery period cycles
+ 4-7 COM1 - Hold period cycles
+ 8-11 COM2 - Floating release cycles
+ 12-15 COM3 - Strobe active-going edge delay
+ 16-31 Unknown/unused (read: always 0000h)
```
This register contains clock cycle offsets that can be added to the Access Time
values in Port 1F801008h..1Ch. Works (somehow) like so: