(FILECREATED "13-Mar-85 10:23:40" {ERIS}<LISPCORE>LIBRARY>BMTEST.;4 4620   

      changes to:  (FNS BUSTEST BUSTESTINIT TESTBLTIN PCWRITETEST TEMPARRAYBASE)
		   (VARS BMTESTCOMS)

      previous date: "12-Mar-85 16:51:32" {ERIS}<LISPCORE>LIBRARY>BMTEST.;2)


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT BMTESTCOMS)

(RPAQQ BMTESTCOMS ((FNS ARRAYBASE BUSTEST BUSTESTINIT TEMPARRAYBASE TESTBLTIN VoteBltIn PCREADTEST 
			PCTEST PCWRITETEST)))
(DEFINEQ

(ARRAYBASE
  [LAMBDA (A)                                                (* edited: " 2-Mar-85 12:55")
    (\GETBASEPTR A 0])

(BUSTEST
  [LAMBDA (PRINTFLG WORDFLG n)                               (* scp "13-Mar-85 09:11")
    (OR n (SETQ n (ARRAYSIZE A1)))
    (SETQ OLOSSES 0)
    (for i from 0 to (TIMES 2 n) do (BUS.WRITEHL 1 i 0))
    (bind ((losses ← 0)) for j from 1
       do (if WORDFLG
	      then (\BUSBLTIN (TEMPARRAYBASE A1)
			      1 0 n)
	    else (\BUSBLTINBYTES (TEMPARRAYBASE A1)
				 1 0 n))                     (* VoteBltIn A1 A2 A3 n 0)
	  [for i from 0 to (SUB1 n) unless (EQ (ELT A1 i)
					       0)
	     do [AND PRINTFLG (PRINT (LIST i (ELT A1 i)
					   (BUS.READHL 1 (IPLUS i i)
						       0)
					   (BUS.READHL 1 (IPLUS i i 1)
						       0]
		(add losses 1)
		(SETA A1 i 0)
		(if (NEQ 0 (BUS.READHL 1 (IPLUS i i)
				       0))
		    then (BUS.WRITEHL 1 (IPLUS i i)
				      0))
		(if (NEQ 0 (BUS.READHL 1 (IPLUS i i 1)
				       0)
			 THEN
			 (BUS.WRITEHL 1 (IPLUS i i 1)
				      0]
	  (if (EQ (IMOD j 10)
		  0)
	      then (printout T (LIST (IDIFFERENCE losses OLOSSES)
				     losses)
			     ,)
		   (SETQ OLOSSES losses])

(BUSTESTINIT
  [LAMBDA (n)                                                (* scp "13-Mar-85 08:24")
    (OR n (SETQ n 1024))
    (SETQ A1 (ARRAY n (QUOTE WORD)
		    0 0))
    (SETQ A2 (ARRAY n (QUOTE WORD)
		    0 0))
    (SETQ A3 (ARRAY n (QUOTE WORD)
		    0 0])

(TEMPARRAYBASE
  [LAMBDA (A)                                                (* scp "13-Mar-85 08:32")
    (\GETBASEPTR A 0])

(TESTBLTIN
  [LAMBDA (A1 A2 A3 length pcAddr)                           (* scp "13-Mar-85 08:32")
    (\BUSBLTINBYTES (TEMPARRAYBASE A1)
		    1 pcAddr (OR length (ARRAYSIZE A1])

(VoteBltIn
  [LAMBDA (a1 a2 a3 length pcAddr)                           (* edited: " 2-Mar-85 12:56")
    (let ((nWords (OR length (ARRAYSIZE a1)))
	  (a1b (ARRAYBASE a1))
	  (a2b (ARRAYBASE a2))
	  (a3b (ARRAYBASE a3))
	  (errors 0)
	  (hardErrors 0))
	 (\BUSBLTINBYTES a1b 1 pcAddr nWords)
	 (\BUSBLTINBYTES a2b 1 pcAddr nWords)
	 (\BUSBLTINBYTES a3b 1 pcAddr nWords)
	 (for i from 0 to (SUB1 nWords) unless (EQ (\GETBASE a1b i)
						   (\GETBASE a2b i))
	    do (add errors 1)
	       [if (NEQ (\GETBASE a1b i)
			(\GETBASE a3b i))
		   then (if (NEQ (\GETBASE a2b i)
				 (\GETBASE a3b i))
			    then                             (* orp)
				 (add hardErrors 1)
				 [\PUTBASE a1b i (IPLUS (LLSH (BUS.READHL 1 (IPLUS (ADD1 pcAddr)
										   (LLSH i 1)))
							      8)
							(BUS.READHL 1 (IPLUS pcAddr (LLSH i 1]
			  else (\PUTBASE a1b i (\GETBASE a2b i]
	    finally (RETURN (CONS errors hardErrors])

(PCREADTEST
  [LAMBDA (A D)                                              (* scp "12-Mar-85 16:49")
    (OR A (SETQ A 200000Q))
    (OR D (SETQ D 252Q))
    (BUS.WRITE A D)
    (PRINT (BUS.READ A))
    (do (BX.OUTPUT D 5)
	(BX.INPUT 5])

(PCTEST
  [LAMBDA (A D)                                              (* scp "12-Mar-85 16:50")
    (OR A (SETQ A 200000Q))
    (OR D (SETQ D 252Q))
    (BUS.WRITE A D)
    (PRINT (BUS.READ A))
    (UNTIL (NEQ D (PROGN (BX.OUTPUT D 5)
			 (BX.INPUT 5])

(PCWRITETEST
  [LAMBDA (A D)                                              (* scp "13-Mar-85 08:37")
    (OR A (SETQ A 65536))
    (OR D (SETQ D 170))
    (BUS.WRITE A D)
    (PRINT (BUS.READ A))
    (do (BX.OUTPUT D 5])
)
(PUTPROPS BMTEST COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (492 4543 (ARRAYBASE 502 . 638) (BUSTEST 640 . 1926) (BUSTESTINIT 1928 . 2245) (
TEMPARRAYBASE 2247 . 2383) (TESTBLTIN 2385 . 2583) (VoteBltIn 2585 . 3682) (PCREADTEST 3684 . 3967) (
PCTEST 3969 . 4276) (PCWRITETEST 4278 . 4541)))))
STOP