stateの途中で最初に戻す
stateの途中で最初に戻す
// 連続key onのために一旦初期状態に戻すstage src_read {reg_wr bk_count<3>;state_name st_getsl, st_getsh, st_head, st_data;first_state st_getsl;state st_getsl if((^ready) & f_key & ^read_wait.do){// 開始アドレス下位取得read(READ_AL, (DIR||0x00) + (0b000000||r_SRCN||f_loop||0b0));goto st_getsh;}state st_getsh any{key_on | ^f_key : goto st_getsl;else : if(^read_wait.do){// 開始アドレス上位取得read(READ_AH, (DIR||0x00) + (0b000000||r_SRCN||f_loop||0b1));goto st_head;}}state st_head any{key_on | ^f_key : goto st_getsl;else : if(src_empty & ^read_wait.do){// ヘッダ取得read(READ_HD, src_AH || src_AL);adinc();bk_count := 0b000;goto st_data;}}state st_data any{key_on | ^f_key : goto st_getsl;else : if(src_empty & ^read_wait.do){// ブロックデータ取得×8read(READ_BD, src_AH || src_AL);adinc();bk_count++;if(/&bk_count) any{f_end : par{goto st_getsl;if(^f_loop) finish;}else : goto st_head;}}}}