etherforth_logo

Node 114

These are transactions used in this USB controller. There are simple packets alive, sof, and rst. Complex packets are extracted with pckt.

Source code

usb node 214 node 115 node 014 node 114
114 transactions
alive 00 20015 ! ;
sof 02 2001B ! ;
rst 04 20020 ! ;
pckt 06 n !b @b for @b ! unext ;
ack 08 C pckt ;
in00 0A 4 pckt ;
in01 0C 8 pckt ;
setc 0E 0 pckt F pckt ;
setp 12 0 pckt 18 pckt ;
seti 16 0 pckt 21 pckt ;
setr 1A 0 pckt 2A pckt ;
led 1E 39 pckt 33 pckt ;
wait 22 49 for alive next ;
go 27 20035 ! ; 29

init right a! up b! -d-- ; 2E

5 d 5 r 0 ether

Definitions

alive
Call alive in 216.
sof
Call sof in 216.
rst
Call rst in 216.
pckt
Send address of the packet to node 214, read back number of words, then read those words from 214 and send them to 115
ack
Send ACK token.
in00
IN token to endpoint 0.
in01
IN token to endpoint 1.
setc
Send Set configuration 1.
setp
Send Set boot protocol.
seti
Send Set_idle request.
setr
Send Set_report request.
led
Send OUT to endpoint 0 with one byte of data to turn CapsLock LED on.
wait
Send 8 keep alives - used between IN ENDP 1.
go
Start chain.
init
Set registers A and B, and jump to DOWN.

Description

This node contains list of transactions the USB controller can initiate. They are either simple actions (alive, sof, and rst), which are sent right away, or they are sent as one or more packets. In this case we use word pckt to get packet content from node 214 and send it. Only transactions necessary to initialize a keyboard in the boot protocol, and request reports from the keyboard are implemented.