aic7xxx.seq (13313) | aic7xxx.seq (13360) |
---|---|
1/*+M*********************************************************************** 2 *Adaptec 274x/284x/294x device driver for Linux and FreeBSD. 3 * 4 *Copyright (c) 1994 John Aycock 5 * The University of Calgary Department of Computer Science. 6 * All rights reserved. 7 * 8 *Modifications/enhancements: --- 498 unchanged lines hidden (view full) --- 507 * a MESSAGE REJECT. 508 */ 509p_mesgout_loop: 510 test SSTAT1,PHASEMIS jnz p_mesgout_phasemis 511 test SSTAT0,SPIORDY jz p_mesgout_loop 512 cmp DINDEX,1 jne p_mesgout_outb /* last byte? */ 513 mvi CLRSINT1,CLRATNO /* drop ATN */ 514p_mesgout_outb: | 1/*+M*********************************************************************** 2 *Adaptec 274x/284x/294x device driver for Linux and FreeBSD. 3 * 4 *Copyright (c) 1994 John Aycock 5 * The University of Calgary Department of Computer Science. 6 * All rights reserved. 7 * 8 *Modifications/enhancements: --- 498 unchanged lines hidden (view full) --- 507 * a MESSAGE REJECT. 508 */ 509p_mesgout_loop: 510 test SSTAT1,PHASEMIS jnz p_mesgout_phasemis 511 test SSTAT0,SPIORDY jz p_mesgout_loop 512 cmp DINDEX,1 jne p_mesgout_outb /* last byte? */ 513 mvi CLRSINT1,CLRATNO /* drop ATN */ 514p_mesgout_outb: |
515 or SXFRCTL0, CLRSTCNT 516 mvi STCNT0, 1 | |
517 dec DINDEX 518 mov SCSIDATL,SINDIR | 515 dec DINDEX 516 mov SCSIDATL,SINDIR |
519p_mesgout_outb_wait: 520 test SSTAT0,SDONE jz p_mesgout_outb_wait | |
521 522p_mesgout4: 523 test DINDEX,0xff jnz p_mesgout_loop 524 525/* 526 * If the next bus phase after ATN drops is a message out, it means 527 * that the target is requesting that the last message(s) be resent. 528 */ --- 351 unchanged lines hidden (view full) --- 880 * we send our ACK. 881 * 882 * The assumption here is that these are called in a particular sequence, 883 * and that REQ is already set when inb_first is called. inb_{first,next} 884 * use the same calling convention as inb. 885 */ 886 887inb_next: | 517 518p_mesgout4: 519 test DINDEX,0xff jnz p_mesgout_loop 520 521/* 522 * If the next bus phase after ATN drops is a message out, it means 523 * that the target is requesting that the last message(s) be resent. 524 */ --- 351 unchanged lines hidden (view full) --- 876 * we send our ACK. 877 * 878 * The assumption here is that these are called in a particular sequence, 879 * and that REQ is already set when inb_first is called. inb_{first,next} 880 * use the same calling convention as inb. 881 */ 882 883inb_next: |
888 call inb_last 889inb_first: | 884 mov NONE,SCSIDATL /*dummy read from latch to ACK*/ 885inb_next_wait: |
890 test SSTAT1,PHASEMIS jnz mesgin_phasemis | 886 test SSTAT1,PHASEMIS jnz mesgin_phasemis |
891 test SSTAT0,SPIORDY jz inb_first /* wait for next byte */ | 887 test SSTAT0,SPIORDY jz inb_next_wait /* wait for next byte */ 888inb_first: |
892 mov DINDEX,SINDEX 893 mov DINDIR,SCSIBUSL ret /*read byte directly from bus*/ 894inb_last: | 889 mov DINDEX,SINDEX 890 mov DINDIR,SCSIBUSL ret /*read byte directly from bus*/ 891inb_last: |
895 or SXFRCTL0,CLRSTCNT 896 mvi STCNT0,0x01 897 mov NONE,SCSIDATL /*dummy read from latch to ACK*/ 898inb_last_wait: 899 test SSTAT0,SDONE jz inb_last_wait /* Wait for completion */ 900 ret | 892 mov NONE,SCSIDATL ret /*dummy read from latch to ACK*/ |
901 902mesgin_phasemis: 903/* 904 * We expected to receive another byte, but the target changed phase 905 */ 906 mvi INTSTAT, MSGIN_PHASEMIS 907 jmp ITloop 908 --- 223 unchanged lines hidden --- | 893 894mesgin_phasemis: 895/* 896 * We expected to receive another byte, but the target changed phase 897 */ 898 mvi INTSTAT, MSGIN_PHASEMIS 899 jmp ITloop 900 --- 223 unchanged lines hidden --- |