head     56.3;
access   paws bayes jws quist brad dew jwh;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.23.49;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.12.03.45;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.05.09.59.57;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.34.54;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.35.05;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.34.44;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.20.51;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.19.24;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.33.16;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.16.59;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.23.31;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.11.09.41;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.56.40;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.16.04.50;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.22.22.34;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.14.14.40;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.58.43;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.40.32;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.12.01.42;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.46.36;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.39.05;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.52.35;  author dew;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.29.57;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.47.30;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.16.21.41;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.52.11;  author dew;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.12.02.33;  author bayes;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.18.23.18;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.14.00.01;  author dew;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.44.36;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.11.10.12;  author dew;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.54.06;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.14.17.51;  author bayes;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.50.22;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.10.25.07;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.11.15.07;  author bayes;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.11.51.31;  author bayes;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.14.36.28;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.11.47.42;  author bayes;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.09.03.51;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.16.06.41;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.11.09.24;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.16.19.08;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.10.02.12;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.16.14.13;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.19.01.43;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.13.56.23;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.10.22.38;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.11.38.35;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.15.24.21;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.12.31.27;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.14.48.54;  author hal;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.18.37.41;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.17.26.55;  author hal;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.20.21.12;  author hal;  state Exp;
branches ;
next     3.1;

3.1
date     86.09.01.12.42.55;  author hal;  state Exp;
branches ;
next     2.1;

2.1
date     86.07.30.15.20.31;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.06.30.17.25.39;  author danm;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@************************************************************************
*
* Verify Routine for INITIALIZE 7906,20,25
*
* Greg Herman
*
* Last Updated Aug. 19,1983 by J Schmidt for timing fixes
*
************************************************************************
	  RORG     0
	  NOSYMS
*         LLEN     79
	  DEF      ASMR_VERIFY
	  REFA     SYSGLOBALS
	  REFA     CHECK_TIMER,DELAY_TIMER                   JS 8/19/83
	  LMODE    CHECK_TIMER,DELAY_TIMER                   JS 8/19/83

TIMER_PRESENT EQU 1                                          JS 8/19/83
SYSFLAG2      EQU $FFFFFEDA                                  JS 8/19/83

PHI       EQU      $10
CARD      EQU      $1
DMAC      EQU      $500000  LOCATION OF BUILT IN DMA CARD
*
* PHI REGISTER ADDRESSES, IN ASCENDING ORDER
*
INTR      EQU      PHI+1
IMSK      EQU      PHI+3
FIFOFFSET EQU      PHI+5
STATPOFFS EQU      PHI+7
CTRL      EQU      PHI+9
HPIBADR   EQU      PHI+$B
PPMSK     EQU      PHI+$D
PPSNS     EQU      PHI+$F
*
* PHI CARD REGISTERS
*
CRDCTRL   EQU      CARD+2
*CRDSTAT  EQU      CARD+2
ID        EQU      CARD
*
* DMA REGISTERS
*
DMADR0    EQU      DMAC
DMWCT0    EQU      DMAC+4
DMCTRL0   EQU      DMAC+6
DMSTAT    EQU      DMAC
DMADR1    EQU      DMAC+8
DMWCT1    EQU      DMAC+$C
DMCTRL1   EQU      DMAC+$E
*
* AMIGO RELATED CONSTANTS
*
PTA       EQU      $5E        PHI TALK ADDRESS
PLA       EQU      $3E        PHI LISTEN ADDRESS
DTAC      EQU      $40        DISK PRIMARY TALK BASE
DLAC      EQU      $20        DISK PRIMARY LISTEN BASE
DSJ       EQU      $70        DSJ SECONDARY
DSAD      EQU      $68        DISK STANDARD SECONDARY
ICMND     EQU      $40        INTERFACE COMMAND SETUP
EOI       EQU      $80        EOI SETUP
UNT       EQU      $5F        UNTALK COMMAND
UNL       EQU      $3F        UNLISTEN COMMAND
*
SECTOR    EQU      0          START VERIFY AT TRACK BEGINNING
*
*
*
* REGISTER SETUP
*
DTEMP   EQU     D0
MTEMP   EQU     D1
BCOUNT  EQU     D2
TCOUNT  EQU     D3
DZERO   EQU     D4
FREE3   EQU     D5              (AVAILABLE FOR USE)
FREE2   EQU     D6              (AVAILABLE FOR USE)
FREE1   EQU     D7              (AVAILABLE FOR USE)

BYTEPTR EQU     A0
FIFO    EQU     A1
PORT    EQU     A2
ATEMP   EQU     A3
STATP   EQU     A4
GLOBAL  EQU     A5
BASE    EQU     A6
*SP     EQU     A7


*
*     PARAMETERS PASSED FROM PASCAL
*
PARAMS   EQU    30-8               NUMBER OF BYTES FOR PASSED PARAMETERS
BUSADDR  EQU    28
UNIT     EQU    26
HEAD     EQU    24
PHIPORT  EQU    20
SECTORS  EQU    16
TRACKNUM EQU    12
ERRTYPE  EQU     8
*RETADDR EQU     4                 RETURN ADDRESS
*STATLNK EQU     0                 STATIC LINK
*
*    LOCAL PARAMETERS
*
DLA      EQU    -1                 DISC LISTEN ADDRESS
DTA      EQU    -2                 DISC TALK ADDRESS
DSJBYTE  EQU    -3                 DSJ BYTE
STAT3    EQU    -4                 STORAGE FOR STATUS BYTES
STAT2    EQU    -5
STAT1    EQU    -6
STAT0    EQU    -7
PMASK    EQU    -8                 PARALLEL POLL MASK
IFLAG    EQU    -9                 INTERRUPT FLAG
DUMMY    EQU    -10                DUMMY BYTE TO GET ADDR & CYL EVEN
ADDR3    EQU    -11                STORAGE FOR REQUESTED DISC ADDRESS
ADDR2    EQU    -12
ADDR1    EQU    -13
ADDR0    EQU    -14
CYLINDER EQU    -18 (ASSUMING TRACKNUMBER IS AN INTEGER)
LOCALS   EQU    -18 (must be even) TOTAL AMOUNT OF LOCAL STORAGE
*
ASMR_VERIFY  LINK    BASE,#LOCALS
	MOVEA.L PHIPORT(BASE),PORT      ADDRESS OF PHI CARD INTERFACE
	LEA     FIFOFFSET(PORT),FIFO    PHI FIFO
	LEA     STATPOFFS(PORT),STATP   PHI STATUS
	CLR.L   DZERO

	MOVE.B  BUSADDR+1(BASE),MTEMP   CALCULATE PPOLL MASK
	MOVE.B  #$80,DTEMP
	LSR.B   MTEMP,DTEMP
	MOVE.B  DTEMP,PMASK(BASE)

	MOVE.B #DTAC,DTEMP              CALCULATE DISC TALK ADDRESS
	ADD.B  BUSADDR+1(BASE),DTEMP
	MOVE.B DTEMP,DTA(BASE)

	MOVE.B #DLAC,DTEMP              CALCULATE DISC LISTEN ADDRESS
	ADD.B  BUSADDR+1(BASE),DTEMP
	MOVE.B DTEMP,DLA(BASE)

	MOVEA.L TRACKNUM(BASE),ATEMP    LOAD ADDRESS OF TRACKNUMBER
	MOVE.L  (ATEMP),CYLINDER(BASE)

	MOVEA.L ERRTYPE(BASE),ATEMP     LOAD ADDRESS OF ERRTYPE
	MOVE.L  DZERO,(ATEMP)           CLEAR ERRTYPE


	BSR  HDWRCLEAR
	BSR  SFM                        SET FILE MASK
	BSR  SEEK
	BSR  VERFY

	BSR  DSJR                       CHECK REASON FOR VERIFY TERMINATION
	BSR  DSTAT
	BSR  RADDREC
	MOVEA.L ERRTYPE(BASE),ATEMP     NOW SET ERRTYPE
	MOVE.B STAT0(BASE),(ATEMP)+
	MOVE.B STAT1(BASE),(ATEMP)+
	MOVE.B STAT2(BASE),(ATEMP)+
	MOVE.B STAT3(BASE),(ATEMP)

	MOVE.B DSJBYTE(BASE),DTEMP      CHECK FOR ERRORS
	BNE  ERROR
	MOVE.B STAT0(BASE),DTEMP
	BEQ  FINISH
ERROR   MOVEA.L TRACKNUM(BASE),ATEMP    LOAD ADDRESS OF TRACKNUMBER
	MOVE.W DZERO,(ATEMP)+           CLEAR TOP WORD
	MOVE.B ADDR0(BASE),(ATEMP)+     STORE MSB RETURNED CYLINDER
	MOVE.B ADDR1(BASE),(ATEMP)      STORE LSB RETURNED CYLINDER

FINISH  UNLK    BASE
	MOVEA.L (SP)+,ATEMP
	ADDA.W  #PARAMS,SP
	JMP     (ATEMP)
*
*
*  DSJ ROUTINE
*
DSJR    MOVE.B  DZERO,(STATP)    DISABLE INTERRUPTS
	MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PLA,(FIFO)
	MOVE.B  DTA(BASE),(FIFO)
	MOVE.B  #DSJ,(FIFO)
	MOVE.B  #$01,BCOUNT             LOAD INPUT COUNT
	MOVE.B  DZERO,(STATP)           INTERRUPT ENABLE
	MOVE.B  #$04,IMSK(PORT)         ENABLE "FIFO BYTE"
	LEA     DSJBYTE(BASE),BYTEPTR     STORE ADDR. FOR DSJ
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$01,(FIFO)             ENABLE TRANSFER
	JSR     IWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNT,(FIFO)
	MOVE.B  #UNL,(FIFO)
	BRA     IDLE
*
*
*  REQUEST AND READ DISK STATUS
*
DSTAT   MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$03,(FIFO)     OP CODE
	MOVE.B  #EOI,(STATP)
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PLA,(FIFO)
	MOVE.B  DTA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	MOVE.B  #$04,BCOUNT                LOAD INPUT COUNT
	LEA     STAT0(BASE),BYTEPTR    STORE ADDR. FOR STAT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$04,IMSK(PORT)    ENABLE "FIFO BYTE"
	MOVE.B  #$80,(STATP)   LF INHIBIT
	MOVE.B  #$04,(FIFO)    COUNTED XFER ENABLE
	JSR     IWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNT,(FIFO)
	MOVE.B  #UNL,(FIFO)
	BRA     IDLE
*
*
*  REQUEST AND READ ADDRESS RECORD
*
RADDREC MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$14,(FIFO)     OP CODE
	MOVE.B  #EOI,(STATP)
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PLA,(FIFO)
	MOVE.B  DTA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	MOVE.B  #$04,BCOUNT                LOAD INPUT COUNT
	LEA     ADDR0(BASE),BYTEPTR    STORE ADDR. FOR ADDRESS REC
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$04,IMSK(PORT)    ENABLE "FIFO BYTE"
	MOVE.B  #$80,(STATP)   LF INHIBIT
	MOVE.B  #$04,(FIFO)    COUNTED XFER ENABLE
	JSR     IWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNT,(FIFO)
	MOVE.B  #UNL,(FIFO)
	BRA     IDLE
*
*
* VERIFY
*
VERFY   MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #7,(FIFO)             VERIFY OP CODE
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  SECTORS+2(BASE),(FIFO)  MSB SECTORCOUNT
	MOVE.B  #EOI,(STATP)
	MOVE.B  SECTORS+3(BASE),(FIFO) LSB SECTORCOUNT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	MOVE.B  DZERO,PPSNS(PORT)
	MOVE.B  PMASK(BASE),PPMSK(PORT)
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$20,IMSK(PORT)    WAIT FOR PPOLL
PLOOP   MOVE.B  INTR(PORT),DTEMP
	BEQ     PLOOP
	RTS
*
*
* PPOLL HOLDOFF
*
PWAIT   MOVE.B  DZERO,PPSNS(PORT)             POSITIVE SENSE
	MOVE.B  PMASK(BASE),PPMSK(PORT) SET PPMSK
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$20,IMSK(PORT)         PPOLL RESPONSE
	BRA     IWAIT
*
*
*  PPOLL NEGATION HOLDOFF
*
PNWAIT  MOVE.B  PMASK(BASE),PPSNS(PORT) SET PPSNS
	MOVE.B  PMASK(BASE),PPMSK(PORT) SET PPMSK
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$20,IMSK(PORT)
	BRA     IWAIT
*
*
*  FIFO IDLE HOLDOFF
*
IDLE    MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$02,IMSK(PORT)    ENABLE "FIFO IDLE"
	BRA     IWAIT
*
*
*  SEEK ROUTINE
*
SEEK    MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)    SEEK SECONDARY
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$02,(FIFO)     OP CODE
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  CYLINDER+2(BASE),(FIFO)   CYLAD HIGH BYTE
	MOVE.B  CYLINDER+3(BASE),(FIFO)   CYLAD LOW BYTE
	MOVE.B  HEAD+1(BASE),(FIFO)
	BSR     IDLE          EMPTY FIFO
	MOVE.B  #EOI,(STATP)
	MOVE.B  #SECTOR,(FIFO)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	BRA     PWAIT     WAIT FOR SEEK COMPLETION
*
*
*  EMPTY INBOUND FIFO
*
INEMP   MOVE.B  DZERO,(STATP)
	MOVE.B  #$04,IMSK(PORT)
EMPTY   TST.B   INTR(PORT)              CHECK FOR BYTE AVAILABLE
	BEQ     EMPTY1                 IF SO, READ, IF NOT RETURN.
	TST.B   (FIFO)                 (DUMMY READ OF FIFO TO EMPTY IT)
	BRA     EMPTY
EMPTY1  RTS
*
*
*  SET FILE MASK ROUTINE
*     OUTPUT BYTE =XXXXDSCA
*     D=DECREMENTAL SEEK (1) OR INCREMENTAL SEEK(0)
*     S=1 ALLOWS AUTOMATIC SEEK TO SPARE TRACK
*     C=1 ENABLES CYLINDER MODE, C=0 SURFACE MODE
*     A=1 ENABLES AUTOMATIC SEEK AND END OF CYLINDER (SEE D)
*
*
SFM     BSR     PWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$0F,(FIFO)
	MOVE.B  #EOI,(STATP)
	MOVE.B  #1,(FIFO)
*    DISABLE AUTOSEEK TO SPARE, ENABLE SURFACE
*        MODE, ENABLE AUTOSEEK AT END OF CYL.
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR IDLE
	BRA PWAIT
*
*
*  INTERRUPT SERVICE ROUTINE
*
*  IWAIT ROUTINE
*
IWAIT   MOVE.L  #600,TCOUNT           1 MS AT 16 MHZ TIMEOUT  JS 8/19/83
*
IIWAIT  MOVE.B  INTR(PORT),DTEMP
	DBNE    TCOUNT,IIWAIT           TRY AGAIN
	BNE.S   IWDONE                 ELSE WE ARE FINISHED   JS 8/19/83
	BTST    #TIMER_PRESENT,SYSFLAG2   CHECK TIMER         JS 8/19/83
	BEQ.S   IWTIMER                USE IT IF PRESENT      JS 8/19/83
	MOVE.L  #178000,TCOUNT         ELSE DO 1 SEC LOOP     JS 8/19/83
IIWAIT2 MOVE.B  INTR(PORT),DTEMP       SEE IF DONE            JS 8/19/83
	BNE.S   IWDONE                 IF SO THEN EXIT        JS 8/19/83
	SUBQ.L  #1,TCOUNT              ELSE KEEP COUNT        JS 8/19/83
	BGT     IIWAIT2                LOOP TILL TIMEOUT      JS 8/19/83
	BRA.S   TESCAPE                 TIMED OUT IF STILL CLEAR

IWDONE  CMP.B   #04,DTEMP
	BEQ     BYTE                    CHECK INTERRUPT TYPE
	CMP.B   #$20,DTEMP
	BEQ     PPW
	BRA     OUT

IWTIMER MOVE.B  #1,-(SP)          SET UP TIMER RECORD         JS 8/19/83
	MOVE.L  #1000,-(SP)       FOR 1 SEC TIMEOUT           JS 8/19/83
IWTLOOP MOVE.B  INTR(PORT),DTEMP  CHECK FOR DONE              JS 8/19/83
	BNE.S   IWTEXIT           IF SO THEN EXIT LOOP        JS 8/19/83
	PEA     (SP)              ELSE CHECK TIMER            JS 8/19/83
	JSR     CHECK_TIMER                                   JS 8/19/83
	BPL     IWTLOOP           KEEP GOING IF NO TIMEOUT    JS 8/19/83
	BRA.S   TESCAPE           ELSE TIMEOUT ESCAPE         JS 8/19/83
IWTEXIT ADDQ.L  #6,SP             CLEANUP STACK               JS 8/19/83
	BRA     IWDONE            AND NORMAL EXIT             JS 8/19/83


*  SERVICE FIFO BYTE AVAILABLE INTERRUPT
*
BYTE    MOVE.B  (FIFO),(BYTEPTR)+       STORE INPUT DATA
	SUBQ.B  #1,BCOUNT                   DECREMENT INPUT COUNT
	BEQ     OUT
TEST    CMPI.B  #4,INTR(PORT)           ANOTHER BYTE?
	BNE     TEST
	BRA     BYTE
OUT     MOVE.B  DZERO,(STATP)           DISABLE INTERRUPTS
	MOVE.B  DZERO,IMSK(PORT)
*
*
*  SERVICE PPOLL INTERRUPT
*
PPW     RTS

TESCAPE PEA     (PORT)                  DEVICE TIMED OUT
	BSR     HDWRCLEAR               INVOKE IFC, ETC.
	MOVE.W  #-10,SYSGLOBALS-2(GLOBAL)         ESCAPE(-10)
	MOVEA.L SYSGLOBALS-10(GLOBAL),SP
	RTS
*
*
* HARDWARE CLEAR
*
HDWRCLEAR EQU *
	MOVE.B  DZERO,ID(PORT)             SOFTWARE RESET
	MOVE.B  #$80,HPIBADR(PORT)      ON-LINE
	BSR     IFCLEAR                 ASSERT IFC
	MOVE.B  #ICMND,STATPOFFS(PORT)
	MOVE.B  #$14,FIFOFFSET(PORT)    DEVICE CLEAR
	BSR     PWAIT
	RTS
*
*
* INTERFACE CLEAR
*
IFCLEAR MOVE.B  #$11,CTRL(PORT)         IFC, INIT OUTBOUND FIFO
DEL100  MOVE.L  #100,-(SP)              100 MICROSECOND DELAY    JS 8/19/83
	JSR     DELAY_TIMER                                      JS 8/19/83
	MOVE.B  #$80,CTRL(PORT)         8-BIT PROCESSOR
	RTS
*
*
*
	END
@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 454
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 454
************************************************************************
*
* Verify Routine for INITIALIZE 7906,20,25
*
* Greg Herman
*
* Last Updated Aug. 19,1983 by J Schmidt for timing fixes
*
************************************************************************
	  RORG     0
	  NOSYMS
*         LLEN     79
	  DEF      ASMR_VERIFY
	  REFA     SYSGLOBALS
	  REFA     CHECK_TIMER,DELAY_TIMER                   JS 8/19/83
	  LMODE    CHECK_TIMER,DELAY_TIMER                   JS 8/19/83

TIMER_PRESENT EQU 1                                          JS 8/19/83
SYSFLAG2      EQU $FFFFFEDA                                  JS 8/19/83

PHI       EQU      $10
CARD      EQU      $1
DMAC      EQU      $500000  LOCATION OF BUILT IN DMA CARD
*
* PHI REGISTER ADDRESSES, IN ASCENDING ORDER
*
INTR      EQU      PHI+1
IMSK      EQU      PHI+3
FIFOFFSET EQU      PHI+5
STATPOFFS EQU      PHI+7
CTRL      EQU      PHI+9
HPIBADR   EQU      PHI+$B
PPMSK     EQU      PHI+$D
PPSNS     EQU      PHI+$F
*
* PHI CARD REGISTERS
*
CRDCTRL   EQU      CARD+2
*CRDSTAT  EQU      CARD+2
ID        EQU      CARD
*
* DMA REGISTERS
*
DMADR0    EQU      DMAC
DMWCT0    EQU      DMAC+4
DMCTRL0   EQU      DMAC+6
DMSTAT    EQU      DMAC
DMADR1    EQU      DMAC+8
DMWCT1    EQU      DMAC+$C
DMCTRL1   EQU      DMAC+$E
*
* AMIGO RELATED CONSTANTS
*
PTA       EQU      $5E        PHI TALK ADDRESS
PLA       EQU      $3E        PHI LISTEN ADDRESS
DTAC      EQU      $40        DISK PRIMARY TALK BASE
DLAC      EQU      $20        DISK PRIMARY LISTEN BASE
DSJ       EQU      $70        DSJ SECONDARY
DSAD      EQU      $68        DISK STANDARD SECONDARY
ICMND     EQU      $40        INTERFACE COMMAND SETUP
EOI       EQU      $80        EOI SETUP
UNT       EQU      $5F        UNTALK COMMAND
UNL       EQU      $3F        UNLISTEN COMMAND
*
SECTOR    EQU      0          START VERIFY AT TRACK BEGINNING
*
*
*
* REGISTER SETUP
*
DTEMP   EQU     D0
MTEMP   EQU     D1
BCOUNT  EQU     D2
TCOUNT  EQU     D3
DZERO   EQU     D4
FREE3   EQU     D5              (AVAILABLE FOR USE)
FREE2   EQU     D6              (AVAILABLE FOR USE)
FREE1   EQU     D7              (AVAILABLE FOR USE)

BYTEPTR EQU     A0
FIFO    EQU     A1
PORT    EQU     A2
ATEMP   EQU     A3
STATP   EQU     A4
GLOBAL  EQU     A5
BASE    EQU     A6
*SP     EQU     A7


*
*     PARAMETERS PASSED FROM PASCAL
*
PARAMS   EQU    30-8               NUMBER OF BYTES FOR PASSED PARAMETERS
BUSADDR  EQU    28
UNIT     EQU    26
HEAD     EQU    24
PHIPORT  EQU    20
SECTORS  EQU    16
TRACKNUM EQU    12
ERRTYPE  EQU     8
*RETADDR EQU     4                 RETURN ADDRESS
*STATLNK EQU     0                 STATIC LINK
*
*    LOCAL PARAMETERS
*
DLA      EQU    -1                 DISC LISTEN ADDRESS
DTA      EQU    -2                 DISC TALK ADDRESS
DSJBYTE  EQU    -3                 DSJ BYTE
STAT3    EQU    -4                 STORAGE FOR STATUS BYTES
STAT2    EQU    -5
STAT1    EQU    -6
STAT0    EQU    -7
PMASK    EQU    -8                 PARALLEL POLL MASK
IFLAG    EQU    -9                 INTERRUPT FLAG
DUMMY    EQU    -10                DUMMY BYTE TO GET ADDR & CYL EVEN
ADDR3    EQU    -11                STORAGE FOR REQUESTED DISC ADDRESS
ADDR2    EQU    -12
ADDR1    EQU    -13
ADDR0    EQU    -14
CYLINDER EQU    -18 (ASSUMING TRACKNUMBER IS AN INTEGER)
LOCALS   EQU    -18 (must be even) TOTAL AMOUNT OF LOCAL STORAGE
*
ASMR_VERIFY  LINK    BASE,#LOCALS
	MOVEA.L PHIPORT(BASE),PORT      ADDRESS OF PHI CARD INTERFACE
	LEA     FIFOFFSET(PORT),FIFO    PHI FIFO
	LEA     STATPOFFS(PORT),STATP   PHI STATUS
	CLR.L   DZERO

	MOVE.B  BUSADDR+1(BASE),MTEMP   CALCULATE PPOLL MASK
	MOVE.B  #$80,DTEMP
	LSR.B   MTEMP,DTEMP
	MOVE.B  DTEMP,PMASK(BASE)

	MOVE.B #DTAC,DTEMP              CALCULATE DISC TALK ADDRESS
	ADD.B  BUSADDR+1(BASE),DTEMP
	MOVE.B DTEMP,DTA(BASE)

	MOVE.B #DLAC,DTEMP              CALCULATE DISC LISTEN ADDRESS
	ADD.B  BUSADDR+1(BASE),DTEMP
	MOVE.B DTEMP,DLA(BASE)

	MOVEA.L TRACKNUM(BASE),ATEMP    LOAD ADDRESS OF TRACKNUMBER
	MOVE.L  (ATEMP),CYLINDER(BASE)

	MOVEA.L ERRTYPE(BASE),ATEMP     LOAD ADDRESS OF ERRTYPE
	MOVE.L  DZERO,(ATEMP)           CLEAR ERRTYPE


	BSR  HDWRCLEAR
	BSR  SFM                        SET FILE MASK
	BSR  SEEK
	BSR  VERFY

	BSR  DSJR                       CHECK REASON FOR VERIFY TERMINATION
	BSR  DSTAT
	BSR  RADDREC
	MOVEA.L ERRTYPE(BASE),ATEMP     NOW SET ERRTYPE
	MOVE.B STAT0(BASE),(ATEMP)+
	MOVE.B STAT1(BASE),(ATEMP)+
	MOVE.B STAT2(BASE),(ATEMP)+
	MOVE.B STAT3(BASE),(ATEMP)

	MOVE.B DSJBYTE(BASE),DTEMP      CHECK FOR ERRORS
	BNE  ERROR
	MOVE.B STAT0(BASE),DTEMP
	BEQ  FINISH
ERROR   MOVEA.L TRACKNUM(BASE),ATEMP    LOAD ADDRESS OF TRACKNUMBER
	MOVE.W DZERO,(ATEMP)+           CLEAR TOP WORD
	MOVE.B ADDR0(BASE),(ATEMP)+     STORE MSB RETURNED CYLINDER
	MOVE.B ADDR1(BASE),(ATEMP)      STORE LSB RETURNED CYLINDER

FINISH  UNLK    BASE
	MOVEA.L (SP)+,ATEMP
	ADDA.W  #PARAMS,SP
	JMP     (ATEMP)
*
*
*  DSJ ROUTINE
*
DSJR    MOVE.B  DZERO,(STATP)    DISABLE INTERRUPTS
	MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PLA,(FIFO)
	MOVE.B  DTA(BASE),(FIFO)
	MOVE.B  #DSJ,(FIFO)
	MOVE.B  #$01,BCOUNT             LOAD INPUT COUNT
	MOVE.B  DZERO,(STATP)           INTERRUPT ENABLE
	MOVE.B  #$04,IMSK(PORT)         ENABLE "FIFO BYTE"
	LEA     DSJBYTE(BASE),BYTEPTR     STORE ADDR. FOR DSJ
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$01,(FIFO)             ENABLE TRANSFER
	JSR     IWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNT,(FIFO)
	MOVE.B  #UNL,(FIFO)
	BRA     IDLE
*
*
*  REQUEST AND READ DISK STATUS
*
DSTAT   MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$03,(FIFO)     OP CODE
	MOVE.B  #EOI,(STATP)
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PLA,(FIFO)
	MOVE.B  DTA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	MOVE.B  #$04,BCOUNT                LOAD INPUT COUNT
	LEA     STAT0(BASE),BYTEPTR    STORE ADDR. FOR STAT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$04,IMSK(PORT)    ENABLE "FIFO BYTE"
	MOVE.B  #$80,(STATP)   LF INHIBIT
	MOVE.B  #$04,(FIFO)    COUNTED XFER ENABLE
	JSR     IWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNT,(FIFO)
	MOVE.B  #UNL,(FIFO)
	BRA     IDLE
*
*
*  REQUEST AND READ ADDRESS RECORD
*
RADDREC MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$14,(FIFO)     OP CODE
	MOVE.B  #EOI,(STATP)
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PLA,(FIFO)
	MOVE.B  DTA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	MOVE.B  #$04,BCOUNT                LOAD INPUT COUNT
	LEA     ADDR0(BASE),BYTEPTR    STORE ADDR. FOR ADDRESS REC
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$04,IMSK(PORT)    ENABLE "FIFO BYTE"
	MOVE.B  #$80,(STATP)   LF INHIBIT
	MOVE.B  #$04,(FIFO)    COUNTED XFER ENABLE
	JSR     IWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNT,(FIFO)
	MOVE.B  #UNL,(FIFO)
	BRA     IDLE
*
*
* VERIFY
*
VERFY   MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #7,(FIFO)             VERIFY OP CODE
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  SECTORS+2(BASE),(FIFO)  MSB SECTORCOUNT
	MOVE.B  #EOI,(STATP)
	MOVE.B  SECTORS+3(BASE),(FIFO) LSB SECTORCOUNT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	MOVE.B  DZERO,PPSNS(PORT)
	MOVE.B  PMASK(BASE),PPMSK(PORT)
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$20,IMSK(PORT)    WAIT FOR PPOLL
PLOOP   MOVE.B  INTR(PORT),DTEMP
	BEQ     PLOOP
	RTS
*
*
* PPOLL HOLDOFF
*
PWAIT   MOVE.B  DZERO,PPSNS(PORT)             POSITIVE SENSE
	MOVE.B  PMASK(BASE),PPMSK(PORT) SET PPMSK
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$20,IMSK(PORT)         PPOLL RESPONSE
	BRA     IWAIT
*
*
*  PPOLL NEGATION HOLDOFF
*
PNWAIT  MOVE.B  PMASK(BASE),PPSNS(PORT) SET PPSNS
	MOVE.B  PMASK(BASE),PPMSK(PORT) SET PPMSK
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$20,IMSK(PORT)
	BRA     IWAIT
*
*
*  FIFO IDLE HOLDOFF
*
IDLE    MOVE.B  DZERO,IMSK(PORT)
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$02,IMSK(PORT)    ENABLE "FIFO IDLE"
	BRA     IWAIT
*
*
*  SEEK ROUTINE
*
SEEK    MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)    SEEK SECONDARY
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$02,(FIFO)     OP CODE
	MOVE.B  UNIT+1(BASE),(FIFO)
	MOVE.B  CYLINDER+2(BASE),(FIFO)   CYLAD HIGH BYTE
	MOVE.B  CYLINDER+3(BASE),(FIFO)   CYLAD LOW BYTE
	MOVE.B  HEAD+1(BASE),(FIFO)
	BSR     IDLE          EMPTY FIFO
	MOVE.B  #EOI,(STATP)
	MOVE.B  #SECTOR,(FIFO)
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR     IDLE
	BRA     PWAIT     WAIT FOR SEEK COMPLETION
*
*
*  EMPTY INBOUND FIFO
*
INEMP   MOVE.B  DZERO,(STATP)
	MOVE.B  #$04,IMSK(PORT)
EMPTY   TST.B   INTR(PORT)              CHECK FOR BYTE AVAILABLE
	BEQ     EMPTY1                 IF SO, READ, IF NOT RETURN.
	TST.B   (FIFO)                 (DUMMY READ OF FIFO TO EMPTY IT)
	BRA     EMPTY
EMPTY1  RTS
*
*
*  SET FILE MASK ROUTINE
*     OUTPUT BYTE =XXXXDSCA
*     D=DECREMENTAL SEEK (1) OR INCREMENTAL SEEK(0)
*     S=1 ALLOWS AUTOMATIC SEEK TO SPARE TRACK
*     C=1 ENABLES CYLINDER MODE, C=0 SURFACE MODE
*     A=1 ENABLES AUTOMATIC SEEK AND END OF CYLINDER (SEE D)
*
*
SFM     BSR     PWAIT
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #PTA,(FIFO)
	MOVE.B  DLA(BASE),(FIFO)
	MOVE.B  #DSAD,(FIFO)
	BSR     PNWAIT
	MOVE.B  DZERO,(STATP)
	MOVE.B  #$0F,(FIFO)
	MOVE.B  #EOI,(STATP)
	MOVE.B  #1,(FIFO)
*    DISABLE AUTOSEEK TO SPARE, ENABLE SURFACE
*        MODE, ENABLE AUTOSEEK AT END OF CYL.
	MOVE.B  #ICMND,(STATP)
	MOVE.B  #UNL,(FIFO)
	BSR IDLE
	BRA PWAIT
*
*
*  INTERRUPT SERVICE ROUTINE
*
*  IWAIT ROUTINE
*
IWAIT   MOVE.L  #600,TCOUNT           1 MS AT 16 MHZ TIMEOUT  JS 8/19/83
*
IIWAIT  MOVE.B  INTR(PORT),DTEMP
	DBNE    TCOUNT,IIWAIT           TRY AGAIN
	BNE.S   IWDONE                 ELSE WE ARE FINISHED   JS 8/19/83
	BTST    #TIMER_PRESENT,SYSFLAG2   CHECK TIMER         JS 8/19/83
	BEQ.S   IWTIMER                USE IT IF PRESENT      JS 8/19/83
	MOVE.L  #178000,TCOUNT         ELSE DO 1 SEC LOOP     JS 8/19/83
IIWAIT2 MOVE.B  INTR(PORT),DTEMP       SEE IF DONE            JS 8/19/83
	BNE.S   IWDONE                 IF SO THEN EXIT        JS 8/19/83
	SUBQ.L  #1,TCOUNT              ELSE KEEP COUNT        JS 8/19/83
	BGT     IIWAIT2                LOOP TILL TIMEOUT      JS 8/19/83
	BRA.S   TESCAPE                 TIMED OUT IF STILL CLEAR

IWDONE  CMP.B   #04,DTEMP
	BEQ     BYTE                    CHECK INTERRUPT TYPE
	CMP.B   #$20,DTEMP
	BEQ     PPW
	BRA     OUT

IWTIMER MOVE.B  #1,-(SP)          SET UP TIMER RECORD         JS 8/19/83
	MOVE.L  #1000,-(SP)       FOR 1 SEC TIMEOUT           JS 8/19/83
IWTLOOP MOVE.B  INTR(PORT),DTEMP  CHECK FOR DONE              JS 8/19/83
	BNE.S   IWTEXIT           IF SO THEN EXIT LOOP        JS 8/19/83
	PEA     (SP)              ELSE CHECK TIMER            JS 8/19/83
	JSR     CHECK_TIMER                                   JS 8/19/83
	BPL     IWTLOOP           KEEP GOING IF NO TIMEOUT    JS 8/19/83
	BRA.S   TESCAPE           ELSE TIMEOUT ESCAPE         JS 8/19/83
IWTEXIT ADDQ.L  #6,SP             CLEANUP STACK               JS 8/19/83
	BRA     IWDONE            AND NORMAL EXIT             JS 8/19/83


*  SERVICE FIFO BYTE AVAILABLE INTERRUPT
*
BYTE    MOVE.B  (FIFO),(BYTEPTR)+       STORE INPUT DATA
	SUBQ.B  #1,BCOUNT                   DECREMENT INPUT COUNT
	BEQ     OUT
TEST    CMPI.B  #4,INTR(PORT)           ANOTHER BYTE?
	BNE     TEST
	BRA     BYTE
OUT     MOVE.B  DZERO,(STATP)           DISABLE INTERRUPTS
	MOVE.B  DZERO,IMSK(PORT)
*
*
*  SERVICE PPOLL INTERRUPT
*
PPW     RTS

TESCAPE PEA     (PORT)                  DEVICE TIMED OUT
	BSR     HDWRCLEAR               INVOKE IFC, ETC.
	MOVE.W  #-10,SYSGLOBALS-2(GLOBAL)         ESCAPE(-10)
	MOVEA.L SYSGLOBALS-10(GLOBAL),SP
	RTS
*
*
* HARDWARE CLEAR
*
HDWRCLEAR EQU *
	MOVE.B  DZERO,ID(PORT)             SOFTWARE RESET
	MOVE.B  #$80,HPIBADR(PORT)      ON-LINE
	BSR     IFCLEAR                 ASSERT IFC
	MOVE.B  #ICMND,STATPOFFS(PORT)
	MOVE.B  #$14,FIFOFFSET(PORT)    DEVICE CLEAR
	BSR     PWAIT
	RTS
*
*
* INTERFACE CLEAR
*
IFCLEAR MOVE.B  #$11,CTRL(PORT)         IFC, INIT OUTBOUND FIFO
DEL100  MOVE.L  #100,-(SP)              100 MICROSECOND DELAY    JS 8/19/83
	JSR     DELAY_TIMER                                      JS 8/19/83
	MOVE.B  #$80,CTRL(PORT)         8-BIT PROCESSOR
	RTS
*
*
*
	END
@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@@


3.1
log
@Auto bump revision for PAWS 3.2h
@
text
@@


2.1
log
@Auto bump rev number to 2.1 for sys 3.2e.
@
text
@@


1.1
log
@Initial revision
@
text
@@
