Appendix B APPENDIX B COMMAND / CONTROL WORDS 6551 CONTROL WORD FORMAT d7 d6,d5 d4 d3, d2, d1, d0 ~~~ ~~~~~ ~~~~ ~~~~~~~~~~~~~~~ 0=1 bit 00=8 bits 0= ext clock 0000=16X ext clock 1=2 bits* 01=7 bits 1=baud rate 0001=50 baud 10=6 bits 0010=75 baud 11=5 bits 0011=110 baud 0100=135 baud 0101=150 baud 0110=300 baud 0111=600 baud *=1-1/2 bits for 5 bits, no parity 1000=1200 baud =1 bit for 8 bits, parity 1001=1800 baud 1010=2400 baud 1011=3600 baud 1100=4800 baud 1101=7200 baud 1110=9600 baud 1111=19200 baud 6551 COMMAND WORD FORMAT d7,d6 d5 d4 d3,d2 d1 d0 ~~~~~ ~~~ ~~~ ~~~~~ ~~~ ~~~ 00=odd 0=no par 0= norm 00=RTS hi,Tx int off Interrupt DTR 01=even 1=par 1=echo 01=RTS lo,Tx int on 0=on 0= hi 10=mark 10=RTS lo,Tx int off 1=off 1=lo 11=space ll=RTS lo,Tx int off, break Examples: 8+1+none, 300 baud: Command byte = $09, Control byte = $16 8+1+none, 1200 baud: Command byte = $09, Control byte = $18 2651 REGISTER 1 FORMAT d7,d6 d5 d4 d3,d2 d1,d0 ~~~~~ ~~~ ~~~ ~~~~~ ~~~~~~ 00=invalid 0=odd 0=no par 00=5 bits 00=sync 01=1 bit 1=even 1=par 01=6 bits 01=X1 10=1-1/2 bits 10=7 bits 10=X16 11=2 bits 11=8 bits 11=X64 2651 MODE REGISTER 2 FORMAT d7,d6 d5 d4 d3,d2 d1,d0 ~~~~~ ~~~ ~~~ ~~~~~~~~~~~ not Tx clock Rx clock 0000=50 baud used 0=ext 0=ext 0001=75 baud 1=int 1=int 0010=110 baud 0011=135 baud 0100=150 baud 0101=300 baud 0110=600 baud 0111=1200 baud 1000=1800 baud 1001=2000 baud 1010=2400 baud 1011=3600 baud 1100=4800 baud 1101=7200 baud 1110=9600 baud 1111=19200 baud Examples: 8+1+none, 300 baud: Command byte = $4E, Control byte = $35 8+1+none, 1200 baud: Command byte = $4E, Control byte $37 6850 COMMAND WORD FORMAT d7 d6,d5 d4,d3,d2 d1,d0 ~~~ ~~~~~~ ~~~~~~~~ ~~~~~ 0=int disabled 00=RTS lo, Tx int off 000=7+2+even 00=X1 1=int enabled 01=RTS lo, Tx int on 001=7+2+odd 01=X16 10=RTS hi, Tx int off 010=7+1+even 10=X64 11=RTS lo, break 011=7+1+odd 11=reset 100=6+2+none 101=8+2+none 110=8+1+even 111=8+1+odd Example: 8+1+none: Command byte =$95 8251 MODE INSTRUCTION WORD FORMAT d7,d6 d5 d4 d3,d2 d1,d0 ~~~~~ ~~~ ~~~ ~~~~~ ~~~~~~ 00=invalid 0=odd 0=no par 00=5 bits 00=sync 01=1 bit 1=even 1=par 01=6 bits 01=X1 10=1-1/2 bits 10=7 bits 10=X16 11=2 bits 11=8 bits 11=X64 Examples: 8+1+none, 300 baud: Command byte = $4E, Control byte = $01 8+1+none, 1200 baud: Command byte = $4E, Control byte = $03 8530 (IIGS) COMMAND WORD FORMAT d7,d6 d5,d4 d3,d2 d1,d0 ~~~~~ ~~~~~~ ~~~~~ ~~~~~~ 00=5 bits 0 0 01=1 stop 00=no parity 01=7 bits 10=1.5 stop 01=odd parity 10=6 bits 11=2 stop 10=no parity 11=8 bits 11=even parity 8350 (IIGS) CONTROL WORD FORMAT Value Baud Rate ~~~~~ ~~~~~~~~~ $01 50 $02 75 $03 110 $04 135 $05 150 $06 300 $07 600 $08 1200 $09 1800 $0A 2400 $0B 3600 $0C 4800 $0D 7200 $0E 9600 $0F 19200 Examples: 8+1+none, 300 baud: Command byte = $C4, Control byte = $06 8+1+none, 1200 baud: Command byte = $C4, Control byte = $08 8+1+none, 2400 baud: Command byte = $C4, Control byte = $0A