|
3 | 3 | Communication between two Game Boy systems happens one byte at a time. One
|
4 | 4 | Game Boy generates a clock signal internally and thus controls when the
|
5 | 5 | exchange happens. In SPI terms, the Game Boy generating the clock is
|
6 |
| -called the "master." The other one uses an external clock (receiving |
7 |
| -it from the other Game Boy) and has no control over when the |
8 |
| -transfer happens. If it hasn't gotten around to loading up the next |
| 6 | +called the "master" while the other one (the "slave" Game Boy) receives it. |
| 7 | +If it hasn't gotten around to loading up the next |
9 | 8 | data byte at the time the transfer begins, the last one will go out
|
10 | 9 | again. Alternately, if it's ready to send the next byte but the last
|
11 | 10 | one hasn't gone out yet, it has no choice but to wait.
|
@@ -46,12 +45,10 @@ that the transfer is complete in two ways: SC's Bit 7 will be cleared
|
46 | 45 | (that is, SC will be set up \$01), and also a [Serial interrupt](<#INT $58 — Serial interrupt>)
|
47 | 46 | will be requested.
|
48 | 47 |
|
49 |
| -The other Game Boy will load up a data byte and can optionally set SC's |
50 |
| -Bit 7 (that is, SC=\$80). Regardless of whether or not it has done this, if |
51 |
| -and when the master wants to conduct a transfer, it will happen |
52 |
| -(pulling whatever happens to be in SB at that time). The externally clocked |
| 48 | +The other Game Boy will load up a data byte and has to set SC's |
| 49 | +Bit 7 (that is, SC=\$80) to enable the serial port. The externally clocked |
53 | 50 | Game Boy will have a [serial interrupt](<#INT $58 — Serial interrupt>) requested at the end of the
|
54 |
| -transfer, and if it bothered to set SC's Bit 7, it will be cleared. |
| 51 | +transfer, and SC's Bit 7 will be cleared. |
55 | 52 |
|
56 | 53 | ### Internal Clock
|
57 | 54 |
|
@@ -108,7 +105,7 @@ two Game Boy systems could switch between internal and external clock for each
|
108 | 105 | transferred byte to ensure synchronization.
|
109 | 106 |
|
110 | 107 | Transfer is initiated when the master Game Boy sets its Transfer
|
111 |
| -Start Flag, regardless of the value of this flag on the other device. |
| 108 | +Start Flag. |
112 | 109 | This bit is automatically set to 0 (on both) at the end of transfer.
|
113 | 110 | Reading this bit can be used to determine if the transfer is still
|
114 | 111 | active.
|
0 commit comments