Subject: Use of sig_p bit. 53C710 The following Scripts code is an example of how to use the sig_p bit correctly when attempting to abort a WAIT RESELECT or WAIT SELECT instruction, assuming that the device is in the initiator role. This is essentially the same code found in the 53C710 programmers guide with some added comments and a few fixes. It should work if implemented correctly. reselect_entry: WAIT RESELECT, alt_sig_p1 ; if here, got reselected . . . select_entry: WAIT SELECT, alt_sig_p1 ; if here, got selected . . . alt_sig_p1: MOVE MEMORY 1, ISTAT_addr , SCRATCH1_addr ; can't move ISAT directly to SFBR because it is a shadowed register, so have to do a ; memory to memory move. Must move to SCRATCH1 first because of byte lane alignment ; requirement on memory to memory moves. SCRATCH1 can then be moved to SFBR for testing. MOVE SCRATCH1 and 0x08 to SFBR ; test the connected bit JUMP alt_sig_p2, if 0x08 ; either the chip got selected, reselected, and the sig_p bit may or may not have been set MOVE ISTAT and 0x20 to SFBR ; test the sig_p bit, if here safe to assume sig_p was set and not connected JUMP sig_p_set, if 0x20 ; big error if here -- not connected and sig_p was not set INT big_error1 alt_sig_p2: ; Bus initiated interrupt occurred if here -- ; connected bit is on, sig_p might be on indicating a selection ; or reselection occurred during the jump caused by the sig_p bit. ; In any event reset the sig_p bit to be safe and process the ; selection or reselection. The chip will handle this with a ; single WAIT RESELECT command, jumping to the correct ; location depending on whether a selection or reselection occurred. MOVE CTEST2 to SFBR ; clear sig_p bit, if set WAIT RESELECT, alt_sig_p3 ; if here, reselection occurred when sig_p was set ; process reselection INT reselected ; this will let the processor know that there was a reselection ; in case the sig_p bit was set . . . alt_sig_p3: ; if here, selection occurred and sig_p may or may not have ; been set. But process selection no matter what. INT selected ; this will let the processor know that there was a selection ; in case the sig_p bit was set SET TARGET . . . sig_p_set: ; system processor has set the sig_p bit. ; Reset it and service the system request. MOVE CTEST2 to SFBR INT SIGP_ACCEPTED . . .