w5100 Getting from SOCK_INIT to SOCK_ESTABLISHED

I have read the w5100 datasheet and inspected the existing Ethernet library and for the life of me I cannot figure out what I'm doing wrong. I'm hopeful that someone more familiar with the w5100 can spot my mistake. I am trying to control the w5100 directly rather than use all the layers of Ethernet, EthernetClient, w5100, and Socket.

This is the pseudocode I'm using:

I set S0_DIPR to the IP address I want to connect to {216,52,233,121} I set S0_DPORT to the TCP Port (80) I set S0_CR = SOCK_CONNECT (0x04) wait for S0_CR to be reset to 0

At this point according to the w5100 datasheet S0_MR should report SOCK_ESTABLISHED but that is never what I find. Is there some step in the process that I'm failing to do?

Nevermind, I wasn't properly initializing the socket as per the datasheet. RTFM right?