 INCLUDE ST_EQU
*$machine_name DoTransfer
*$global_recover exec_err
*******************************************************
*state_1        standard
*               MESSAGES_msgSetXfer
*$event_pairs_catch
*               ScsiErr,state_exit
*               state_2
*******************************************************
*state_2        standard
*               MESSAGES_msgDoXfer
*               HWI_UTILS_hwiGetPhase
*$event_pairs_catch
*               WaitForISR,state_2a
*               MsgIn,state_4
*               MsgOut,state_3
*               state_exit
*******************************************************
*state_2a       suspend
*               state_2
*******************************************************
*state_3        standard
*               MESSAGES_msgSawErrMsg
*               HWI_UTILS_hwiGetPhase
*$event_pairs_catch
*               MsgIn,state_4
*               state_exit
*******************************************************
*state_4        standard
*               MESSAGES_msgGetMsg
*$event_pairs_catch
*               SaveDataPtr,state_5
*               Identify,state_6
*               RestorePtrs,state_6
*               Disconnect,state_7
*               Synch,state_12
*               ScsiErr,state_exit
*               state_8
*******************************************************
*state_5        standard
*               MESSAGES_msgPrepareDisc
*               HWI_UTILS_hwiGetPhase
*$event_pairs_catch
*               MsgIn,state_4
*               state_10
*******************************************************
*state_6        standard
*               MESSAGES_msgPrepareRetry
*               HWI_UTILS_hwiGetPhase
*$event_pairs_catch
*               MsgIn,state_4
*               state_10
*******************************************************
*state_7        standard
*               MESSAGES_msgSetDisc
*$event_pairs
*               BusFree,state_9
*               ScsiErr,state_exit
*******************************************************
*state_8        standard
*               MESSAGES_msgRejectMsg
*               HWI_UTILS_hwiGetPhase
*$event_pairs_catch
*               MsgIn,state_4
*               ScsiErr,state_exit
*               state_10
*******************************************************
*state_9        standard
*               MESSAGES_msgWaitReselect
*$event_pairs_catch
*               WaitForISR,state_9a
*               MsgIn,state_4
*               ScsiErr,state_exit
*               state_exit
*******************************************************
*state_9a       suspend
*               state_9
*******************************************************
*state_10       standard
*               MESSAGES_msgIsOriginalPhase
*$event_pairs_catch
*               OriginalPhase,state_2
*               state_exit
*******************************************************
*state_12       standard
*               MESSAGES_msgTargetSynchParms
*               HWI_UTILS_hwiGetPhase
*$event_pairs_catch
*               ScsiErr,state_exit
*               state_10
*******************************************************
*exec_err       standard
*               COMMANDS_cmdStateErr
*$event_pairs_catch
*               state_exit
*******************************************************
*state_exit     mexit
*               0
*******************************************************
*$end_machine
		REFA  COMMANDS_CMDSTATEERR
		LMODE COMMANDS_CMDSTATEERR
		REFA  MESSAGES_MSGTARGETSYNCHPARMS
		LMODE MESSAGES_MSGTARGETSYNCHPARMS
		REFA  MESSAGES_MSGISORIGINALPHASE
		LMODE MESSAGES_MSGISORIGINALPHASE
		REFA  MESSAGES_MSGWAITRESELECT
		LMODE MESSAGES_MSGWAITRESELECT
		REFA  MESSAGES_MSGREJECTMSG
		LMODE MESSAGES_MSGREJECTMSG
		REFA  MESSAGES_MSGSETDISC
		LMODE MESSAGES_MSGSETDISC
		REFA  MESSAGES_MSGPREPARERETRY
		LMODE MESSAGES_MSGPREPARERETRY
		REFA  MESSAGES_MSGPREPAREDISC
		LMODE MESSAGES_MSGPREPAREDISC
		REFA  MESSAGES_MSGGETMSG
		LMODE MESSAGES_MSGGETMSG
		REFA  MESSAGES_MSGSAWERRMSG
		LMODE MESSAGES_MSGSAWERRMSG
		REFA  HWI_UTILS_HWIGETPHASE
		LMODE HWI_UTILS_HWIGETPHASE
		REFA  MESSAGES_MSGDOXFER
		LMODE MESSAGES_MSGDOXFER
		REFA  MESSAGES_MSGSETXFER
		LMODE MESSAGES_MSGSETXFER
STANDARD equ 0
MCALL equ 1
MEXIT equ 2
SUSPEND equ 3
DONE_EXIT equ 4
SINGLES equ 0
SINGLES_CATCH equ 1
PAIRS equ 2
PAIRS_CATCH equ 3

		DEF   DOTRANSFER
DOTRANSFER      dc.w  EXEC_ERR-DOTRANSFER
STATE_1         dc.b    STANDARD,PAIRS_CATCH
		dc.b    2,1
		dc.w    SCSIERR,STATE_EXIT-DOTRANSFER
		dc.w    000,STATE_2-DOTRANSFER
		dc.l MESSAGES_MSGSETXFER

STATE_EXIT      dc.b    MEXIT,SINGLES
		dc.w 0

STATE_2         dc.b    STANDARD,PAIRS_CATCH
		dc.b    4,2
		dc.w    WAITFORISR,STATE_2A-DOTRANSFER
		dc.w    MSGIN,STATE_4-DOTRANSFER
		dc.w    MSGOUT,STATE_3-DOTRANSFER
		dc.w    000,STATE_EXIT-DOTRANSFER
		dc.l MESSAGES_MSGDOXFER
		dc.l HWI_UTILS_HWIGETPHASE

STATE_2A        dc.b    SUSPEND,SINGLES
		dc.w    STATE_2-DOTRANSFER

STATE_4         dc.b    STANDARD,PAIRS_CATCH
		dc.b    7,1
		dc.w    SAVEDATAPTR,STATE_5-DOTRANSFER
		dc.w    IDENTIFY,STATE_6-DOTRANSFER
		dc.w    RESTOREPTRS,STATE_6-DOTRANSFER
		dc.w    DISCONNECT,STATE_7-DOTRANSFER
		dc.w    SYNCH,STATE_12-DOTRANSFER
		dc.w    SCSIERR,STATE_EXIT-DOTRANSFER
		dc.w    000,STATE_8-DOTRANSFER
		dc.l MESSAGES_MSGGETMSG

STATE_3         dc.b    STANDARD,PAIRS_CATCH
		dc.b    2,2
		dc.w    MSGIN,STATE_4-DOTRANSFER
		dc.w    000,STATE_EXIT-DOTRANSFER
		dc.l MESSAGES_MSGSAWERRMSG
		dc.l HWI_UTILS_HWIGETPHASE

STATE_5         dc.b    STANDARD,PAIRS_CATCH
		dc.b    2,2
		dc.w    MSGIN,STATE_4-DOTRANSFER
		dc.w    000,STATE_10-DOTRANSFER
		dc.l MESSAGES_MSGPREPAREDISC
		dc.l HWI_UTILS_HWIGETPHASE

STATE_6         dc.b    STANDARD,PAIRS_CATCH
		dc.b    2,2
		dc.w    MSGIN,STATE_4-DOTRANSFER
		dc.w    000,STATE_10-DOTRANSFER
		dc.l MESSAGES_MSGPREPARERETRY
		dc.l HWI_UTILS_HWIGETPHASE

STATE_7         dc.b    STANDARD,PAIRS
		dc.b    2,1
		dc.w    BUSFREE,STATE_9-DOTRANSFER
		dc.w    SCSIERR,STATE_EXIT-DOTRANSFER
		dc.l MESSAGES_MSGSETDISC

STATE_12        dc.b    STANDARD,PAIRS_CATCH
		dc.b    2,2
		dc.w    SCSIERR,STATE_EXIT-DOTRANSFER
		dc.w    000,STATE_10-DOTRANSFER
		dc.l MESSAGES_MSGTARGETSYNCHPARMS
		dc.l HWI_UTILS_HWIGETPHASE

STATE_8         dc.b    STANDARD,PAIRS_CATCH
		dc.b    3,2
		dc.w    MSGIN,STATE_4-DOTRANSFER
		dc.w    SCSIERR,STATE_EXIT-DOTRANSFER
		dc.w    000,STATE_10-DOTRANSFER
		dc.l MESSAGES_MSGREJECTMSG
		dc.l HWI_UTILS_HWIGETPHASE

STATE_10        dc.b    STANDARD,PAIRS_CATCH
		dc.b    2,1
		dc.w    ORIGINALPHASE,STATE_2-DOTRANSFER
		dc.w    000,STATE_EXIT-DOTRANSFER
		dc.l MESSAGES_MSGISORIGINALPHASE

STATE_9         dc.b    STANDARD,PAIRS_CATCH
		dc.b    4,1
		dc.w    WAITFORISR,STATE_9A-DOTRANSFER
		dc.w    MSGIN,STATE_4-DOTRANSFER
		dc.w    SCSIERR,STATE_EXIT-DOTRANSFER
		dc.w    000,STATE_EXIT-DOTRANSFER
		dc.l MESSAGES_MSGWAITRESELECT

STATE_9A        dc.b    SUSPEND,SINGLES
		dc.w    STATE_9-DOTRANSFER

EXEC_ERR        dc.b    STANDARD,PAIRS_CATCH
		dc.b    1,1
		dc.w    000,STATE_EXIT-DOTRANSFER
		dc.l COMMANDS_CMDSTATEERR


* state trace table OPTION = TABLE OFF
     END
