Table 1 State Transition Table

Current State  Valid Commands  Next State  Functions
--------------------------------------------------------------
OFF            CMD_POWER_ON    ON          initialize, status
               CMD_CHK_STATUS  OFF         status
ON             CMD_POWER_OFF   OFF         power off
               CMD_INSERT      READY       status
               CMD_CHK_STATUS  ON          status
READY          CMD_POWER_OFF   OFF         eject, power off
               CMD_EJECT       ON          eject
               CMD_RECORD      RECORD      record
               CMD_PLAY        PLAY        play
               CMD_FFORWARD    FFORWARD    fforward
               CMD_REWIND      REWIND      rewind
               CMD_CHK_STATUS  READY       status
RECORD         CMD_STOP        READY       stop
               CMD_EJECT       ON          stop, eject
               CMD_FFORWARD    FFORWARD    stop, fforward
               CMD_PLAY        PLAY        stop, play
               CMD_REWIND      REWIND      stop, rewind
               RECORD          RECORD      status
PLAY           CMD_STOP        READY       stop
               CMD_EJECT       ON          stop, eject
               CMD_FFORWARD    FFORWARD    stop, fforward
               CMD_REWIND      REWIND      stop, rewind
               CMD_RECORD      RECORD      stop, record
               CMD_CHK_STATUS  PLAY        status
FFORWARD       CMD_STOP        READY       stop
               CMD_EJECT       ON          stop, eject
               CMD_PLAY        PLAY        stop, play
               CMD_REWIND      REWIND      stop, rewind
               CMD_RECORD      RECORD      stop, record
               CMD_CHK_STATUS  FFORWARD    status
REWIND         CMD_STOP        READY       stop
               CMD_EJECT       ON          stop, eject
               CMD_PLAY        PLAY        stop, play
               CMD_RECORD      RECORD      stop, record
               CMD_FFORWARD    FFORWARD    stop, fforward
               CMD_CHK_STATUS  REWIND      status