Skip to content

Commit c190f66

Browse files
authored
Clarify that setting SC bit 7 is mandatory on slave to accept a Serial Data Transfer (#556)
* serial: clarify that setting SC bit 7 is mandatory on slave * More removals of the "optionality" of setting bit 7 on the slave
1 parent 00ef66a commit c190f66

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/Serial_Data_Transfer_(Link_Cable).md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
Communication between two Game Boy systems happens one byte at a time. One
44
Game Boy generates a clock signal internally and thus controls when the
55
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
98
data byte at the time the transfer begins, the last one will go out
109
again. Alternately, if it's ready to send the next byte but the last
1110
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
4645
(that is, SC will be set up \$01), and also a [Serial interrupt](<#INT $58 — Serial interrupt>)
4746
will be requested.
4847

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
5350
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.
5552

5653
### Internal Clock
5754

@@ -108,7 +105,7 @@ two Game Boy systems could switch between internal and external clock for each
108105
transferred byte to ensure synchronization.
109106

110107
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.
112109
This bit is automatically set to 0 (on both) at the end of transfer.
113110
Reading this bit can be used to determine if the transfer is still
114111
active.

0 commit comments

Comments
 (0)