My ideas about possible screens.
* Generate new address
receive "generate new address" command from USB
display "Generate address?" "OK/Cancel"
generate new <priv key> and <address>
display "Show priv key?" "OK/Skip"
display "Priv key" "<priv key>" "OK/Cancel"
display "Address" "<address>" "Store/Cancel"
store <priv key> and <address>
transmit <address> to USB
* Sign transaction
receive "sign transaction" command and <unsigned tx> from USB
display "Sign transaction?" "OK/Cancel"
parse <unsigned tx> values <amount>, <fee>, <send-to addr>, <send-from addr>[]
display "Send-to addr" "<send-to addr>" "OK/Cancel"
display "Amount" "<amount>" "OK/Cancel"
display "Fee" "<fee>" "Sign/Cancel"
sign <unsigned tx> using stored private keys for <send-from addr>[] into <signed tx> (what if some send-from addresses are not in the wallet?)
transmit <signed tx> to USB
* List addresses
receive "list addresses" command from USB
display "List addresses?" "List/Cancel"
loop through <address>[]
transmit <address> to USB
display "Address" "<address>" "Next/Cancel"
end loop
* Delete address
receive "delete address" command and <address> from USB
display "Delete address?" "OK/Cancel"
display "Address" "<address>" "Delete/Cancel"
delete <address> and its <priv key> from storage
Maybe there could be also a PIN security feature for the device. The PIN would be a hexadecimal number entered in a binary form.
Once the PIN is set, the device auto-locks when disconnected or after some period of inactivity, and then it needs to be unlocked next time.
* Set PIN
receive "set pin" command from USB
display "Set PIN?" "OK/Cancel"
display "1111 0111 10*_ ___" "F 7 8 _" "0/1" (enter 16 binary digits)
display "Setting PIN" "<pin>" "Confirm/Cancel"
store <pin>
* Unlock device
receive any command from USB when the device is locked
display "Unlock device?" "OK/Cancel"
display "1111 0111 10*_ ___" "F 7 8 _" "0/1" (enter 16 binary digits)
display "Unlocking device" "<pin>" "Confirm/Cancel"
verify <pin>
unlock device and continue