File: FPPTST.PA of Tape: Sources/Multi8/multi8-3
(Source file text) 

/	FPPTST
/
/	TEST FUER M & S FPP C8080
/	=========================
/
/	Dieses Programm testet die Logik auf dem C8080 Board, und
/	ob der FPP IC AMD9512 in der Lage ist Daten zu lesen und zu
/	schreiben.
/
/	Bedienung
/	---------
/
/	Standart Test Procedure:
/ 	Start bei ADDR 0200 mit 0000 im Switchregister.
/	Der Test laueft bis ein Fehler auftritt, oder
/	er von Hand angehalten wird, oder 4XXX im SW ein-
/	gestellt wird (HLT nach current subtest), oder Ctrl/C
/	an der Konsole eingegeben wird. Die Reaktion auf Ctrl/C
/	kann einige Sekunden dauern, dann wird der Test abgebrochen
/	und zum Monitor zurueckgesprungen.
/	Alle 20 sec etwa, wird auf der Konsole:
/	FPP TEST: PASS COMPLETE
/	ausgedruckt.
/	Einzeltests:
/	Die 10 Subtests koennen auch einzeln ausgefuehrt werden.
/	Bei ADR 0200 starten mit: SW = 4000 + Subtest-Nummer (1-12)
/	Das Testprogramm bleibt dann nach ausfuehrung dieses
/	Subtestees mit der Subtest Nummer im AC stehen, bei
/	ADR 0221.
/
/	Fehler
/	______
/
/	Alle erkannten Fehler fuehren zu einem Programm-Halt. Die
/	Fehlermeldung dazu steht hinter jedem dieser Fehler-Halts
/	im Programm-Listing. Soweit sinnvoll steht der Wert, der den
/	Fehlerhalt bewirkt hat (z.B. Inhalt des Shiftcounters etc.)
/	im AC oder im MQ Register beim Halt. Wird der Kommetar des
/	Fehler-Halts mit  ///// eingeleitet, so enthaelt der AC
/	den fehlerhaften Wert, oder es ist ein solcher nicht angeb-
/	bar (SKP-Befehl funktioniert nicht z.B.). Wird
/	der Kommetar des Fehler-Halts mit ///** eingeleitet, steht
/	der fehlerhafte Wert im MQ Register. Die Tests # 3,4,7,10 und 11
/	benoetigen Daten zum testen. Diese werden aus entsprechenden
/	Tabellen (Tab3, Tab4 usw.) entnommen. Autoindexregister 10 wird
/	dabei als Pointer verwendet. Durch 10 ADDR LOAD, EXAM kann man
/	also feststellen welcher Datensatz den Fehler erkennen laesst.
/
/	Bevor weiter getestet wird, sollte ein erkannter Fehler be-
/	hoben sein, es muss jedoch nach jedem Fehler-Halt mit AC=0000
/	weiter gemacht werden (also : CLEAR, CONT druecken). Der dadurch
/	erzeugte CAF, kann natuerlich weitere Fehler erzeugen. Nach be-
/	heben eines Fehlers koennen weiter vorne im Testprogramm Fehler-
/	Halts auftreten, von einem anderen Fehler, der bis dahin wegen des
/	ersten (behobenen) Fehlers nicht erkennbar war.
/
/	Der Test ist jederzeit auf ADR 0200 wieder startbar.
/
	/ S.N. 26-JAN-80
	/
	/
	/ DEFINITIONEN:
	CSR=6140	/ CLEAR SHIFT REGISTER
	SFR=6141	/ SKP IF FPP IC READY
	SFE=6142	/ SKIP IF FPP ERROR FLAG IST SET
	SNS=6143	/ SKIP IF SHIFT REGISTER NOT SHIFTING
	SMO=6144
			/ AC0=1 -> INT. ENABLE
			/ AC1=1 -> 64 BIT MODE
	SCA=6145	/ SHIFT COUNTER TO AC6-11
			/ BITS 0-5 HAVE TO BE MASKED OUT !!!!
	SRA=6146	/ SHIFT REGISTER TO AC
	NRM=6147	/ NORMALIZE CONTENTS OF SHR
			/ SHIFT LEFT UNTIL THE FIRST "1" BIT OCCURS
			/ AT THE LEFT SERIAL OUTPUT, THE SHIFT COUNTER
			/ HOLDS THE PERFORMED SHIFT COUNT
	ASR=6150	/ AC TO SHIFT REGISTER, 0-> AC
	ASC=6151	/ AC TO SHIFT COUNTER, 0-> AC
			/ AC6-11 TO SHIFT COUNTER
			/ AC0=1 -> SHIFT DOWN
			/ AC1=1 -> SET IMPLIED BIT
			/ TO BE USED ONLY IN CONJUNCTION WITH NEXT ONE!!!
			/ AC2=1 -> LINEAR SHIFT (FILL WITH 0)
	SRF=6152	/ SHIFT REGISTER TO FPP (32 OR 64 BITS, SEE SMO)
	FSR=6153	/ FPP TO SHIFT REGISTER (32 OR 64 BITS, SEE SMO)
	SSR=6154	/ STATUS OF FPP IC TO SHIFT REGISTER
	LCG=6155	/ LOAD CMD BYTE INTO FPP IC & GO
			/ THIS CMD WILL DESTROY THE LS 12 BITS 
			/ THE SHIFT REGISTER
	SUP=6156	/ SHIFT UP 12 BITS (IN RING-MODE)
	SDW=6157	/ SHIFT DOWN 12 BITS (IN RING-MODE)
	MQSAV=JMS MQLMQA	/ SAVE SOME VALUE IN MQ
/ INDEX REGISTER 10 USED AS POINTER TO VARIOUS DATA-TABLES
	*100
TSTCNT,	0
CNTR,	0
TEMP,	0
TESVAL,	0
MQLMQA,	0
	MQL	/ AC --: MQ
	MQA	/ MQ --: AC UND MQ --: MQ
	JMP I MQLMQA
CCCHK,	0
	CLA CLL
	KIE		/ DISABLE INTERRUPT
			/ TO PLAY SAVE!
	KSF		/ SOME REQUEST?
	JMP I CCCHK	/ NO: GO ON TESTING
	KRS		/ YES: LOOK IF CTRL/C
	AND (177
	TAD (-3
	SZA CLA		/ CTRL/C?
	JMP I CCCHK	/ NO: GO ON
	JMP I (7605	/ YES: ABORT!
	*200
STRT,
	JMP TWTR
TSTEND,	0
	JMS CCCHK	/ LOOK IF CTRL/C AT KEYBOARD
	CLA CLL
	TAD I TSTEND	/ GET TEST #
	IAC		/ ANDVANCE POINTER TO NEXT TEST
	TAD (TETAB
	DCA TEMP
	LAS		/ LOOK IF WE SHOULD STOP!
	SMA CLA
	JMP TWTR+4	/ NO: GO ON
	CLA CLL
	TAD I TSTEND	/ DISPLAY LAST TEST PERFORMED
	HLT		/ AND HALT
TWTR,			/ RESTART WITH TEST INDICATED BY SR
	LAS
	AND (17
	TAD (TETAB
	DCA TEMP
	TAD I TEMP
	DCA TEMP
	JMP I TEMP
TETAB,	TEST1
	TEST1
	TEST2
	TEST3
	TEST4
	TEST5
	TEST6
	TEST7
	TEST10
	TEST11
	TEST12
	BIBRET
	TEST1	/ NOEXISTANT TEST SELECT DIRECTED TO TEST1
	TEST1
	TEST1
	TEST1
/ TEST 1
/ TESTET SHR -: AC (SRA) UND
/	 AC  -: SHR (ASR)
/
TEST1,
	CLA CLL
	DCA TSTCNT	/ PERFORM 4096 TIMES
T1L1,
	TAD TSTCNT	/ GET PATTERN
	ASR		/ TO SHR
	SZA
	HLT		///// ASR FAILED TO CLEAR AC
	CLA CMA
	SRA		/ GET VALUE BACK
	MQSAV
	CIA
	TAD TSTCNT
	SZA
	HLT		///** SRA OR ASR FAILED!
			///** (READ DATA =/ WRITE DATA)
			///** IF MQ = 7777 SRAC FAILED TO SET C0 LINE
	ISZ TSTCNT	/NEXT PATTERN
	JMP T1L1
	JMS TSTEND
	1		/ TEST 1 DONE!
/ TEST 2
/ TESTET CLEAR SHR (CSR)
/
TEST2,
	CLA CLL
	DCA TSTCNT	/ 4096 MAL
	CLA STL RTR
	SMO		/ SET 72 BIT MODE
T2L1,
	CLA CLL CMA
	ASR		/ SET SOME BITS IN THE SR
	CLA CLL CMA	/ SET SOME BITS IN THE AC
	CSR		/ CLEAR SHR!!!
	SNA CLA
	HLT		///// CLSR CLEARED AC!
	TAD (-6		/ TO READ 6 WORDS BACK
	DCA CNTR
T2L2,
	SRA		/ READ BACK
	SZA
	HLT		///// CSR FAILED
	SUP		/ SHIFT 12 BITS UP
	ISZ CNTR
	JMP T2L2
	ISZ TSTCNT
	JMP T2L1
	JMS TSTEND
	2		/ TEST 2 DONE
/ TEST 3
/ TESTET EINIGE SHIFTS IM 36 BIT MODE
/
TEST3,
	CLA CLL
	DCA TSTCNT	/ 4096 TIMES TO PERFORM
	CLA CLL 
	SMO		/ SET 36 BIT MODE
T3L1,
	TAD (TAB3-1	/ TAB3 HOLDS SOME SHIFT EXAMPLES
	DCA 10	
	TAD (-31	/ THERE ARE 25
	DCA CNTR
T3L2,
	CSR
	TAD I 10	/ GET A PATTERN
	ASR		/  TO THE  SHR
	TAD I 10	/ PERFORM A SPECIFIC SHIFT
	ASC
	SZA
	HLT		///// ACSC FAILED TO CLEAR AC
	NOP
	AND I 0		/ WAIT FOR SHIFTING IS COMPLETE
	SRA		/ READ BACK
	MQSAV
	CIA
	TAD I 10	/ COMPARE AGAINST CORRECT DATA
	SZA
	HLT		///** SHIFT FAULT
	ISZ CNTR
	JMP T3L2	/ NEXT PATTERN
	ISZ TSTCNT
	JMP T3L1	/ NEXT TIME ALL THE PATTERNS
	JMS TSTEND
	3		/ TEST 3 DONE
	PAGE
TAB3,			/ TABELLE FUER SHIFT BEISPIELE
/INPUT PATTERN	/SHIFT COUNT	/RETURN PATTERN
	2525	;	1	;	5252
	1111	;	2	;	4444
	0707	;	3	;	7070
	0077	;	6	;	7700
	0004	;	10	;	2000
	0001	;	13	;	4000
/
	5252	;	4000	;	2525	/ 0 BIT SHIFT COUNT = 1 BIT SC!
	4444	;	4002	;	1111
	7070	;	4003	;	0707
	1760	;	4004	;	0077
	4000	;	4011	;	0004
	4000	;	4013	;	0001
/
	7777	;	7031	;	4000
	7777	;	7034	;	0400
	7777	;	7037	;	0040
	0000	;	7044	;	0001
	0000	;	7077	;	0000
/
	0707	;	1003	;	7070
	0007	;	1011	;	7000
	7777	;	1044	;	0000
	2525	;	0044	;	2525
	7777	;	4043	;	7776
	5252	;	0043	;	2525
	0770	;	4044	;	0770
	0070	;	4041	;	0700
TAB4,		/ ENTSPR. FUER 72 BIT MODE
	1231	;	0001	;	2462
	7070	;	4003	;	0707
/
	7777	;	0044	;	0000
	7777	;	4044	;	0000
/
	7777	;	7077	;	1000
	7777	;	7075	;	4000
/
	7777	;	1077	;	0000
	7777	;	5077	;	0000
	6000	;	0077	;	0006
	0006	;	4077	; 	6000
	PAGE
/ TEST 4
/ TESTET SHIFT MIT 72 BIT MODE
/
TEST4,
	CLA CLL		/ 4096 TIMES
	DCA TSTCNT
	CLA STL RTR
	SMO		/ SET 72 BIT MODE
	SZA
	HLT		///// SMO FAILED TO CLEAR AC
T4L1,
	TAD (TAB4-1
	DCA 10		/ TAB4 HOLDS SOME OTHER SHIFT EXAMPLES
	TAD (-11	/ 9 OF THEM
	DCA CNTR
T4L2,
	CSR
	TAD I 10	/ GET A PATTERN
	ASR
	TAD I 10	/ PERFORM THIS SHIFT
	ASC
	AND I 0
	AND I 0		/ WAIT UNTIL SHIFTING IS COMPLETE
	AND I 0
	SRA		/ READ BACK
	MQSAV
	CIA
	TAD I 10	/ COMPARE AGAINST EXPECTED VALUE
	SZA
	HLT		///** SHIFT FAULT
	ISZ CNTR
	JMP T4L2	/ NEXT PATTERN
	ISZ TSTCNT
	JMP T4L1	/ ONCE MORE ALL PATTERNS
	JMS TSTEND
	4		/ TEST 4 DONE
/ TEST 5
/ TESTET SRUP,SRDW,SKSR
/
TEST5,
	CLA CLL
	DCA TSTCNT	/ 4096 MAL
T5L1,
	CSR
	CLA STL RAR
	ASR		/ EXACTLY ONE BIT TO SR!
	CLA CMA
	SDW		/ SHIFT DOWN
	SNA CLA		/ ALSO DELAY!!!
	HLT		///// SRDW CLEARED AC
	SDW		/ ONCE MORE 12 BITS
	NOP
	TAD (30
	ASC		/ BRING IT BACK!
	SNS		/ SHOULD NOT SKIP!
	SKP
	HLT		///// SNS SKIPPED WHILE SR BUSY!!
	NOP
	SNS		/ NOW WE SHOULD HAVE FINISHED
	HLT		///// SNS FAILED TO SKIP 
	SRA		/ LOOK IF OUR BIT IS BACK AGAIN
	RAL CLL		/ AND ONLY THAT!!
	SZA
	HLT		///// SRDW FAILED (PICKED UP SOME BITS)
	SNL
	HLT		///// SRDW FAILED (LOST THE ONE-BIT)
	SDW		/ REMEMBER THE CONTENTS OF THE SR IS STILL THE SAME
	CLA CLL CMA	/ ALSO DELAY!!
	SUP
	SNA CLA
	HLT		///// SRUP CLEARED AC!
	SRA
	RAL CLL
	SZA
	HLT		///// SUP FAILED (PICKED UP SOME BITS)
	SNL
	HLT		///// SUP FAILED (LOST THE ONE-BIT)
	ISZ TSTCNT	/ 4096 TIMES DONE ?
	JMP T5L1	/ NO!
	JMS TSTEND	/ YES
	5		/ THIS WAS TEST 5!
	PAGE
/ TEST 6
/ TESTET NRM + SCA
/
TEST6,
	CLA CLL
	DCA TSTCNT	/ 4096 MAL
T6L1,
	CLA STL RTR	/ SET 72 BIT MODE
	SMO
	CSR
	TAD (5252
	ASR
	CLA CLL CMA
	NRM
	SNA 
	HLT		///// NRM CLEARED AC
	SNS
	JMP .-1
	SCA		/ GET RESULT
	MQSAV
	AND (77		/ ONLY 6 BITS ARE VALID
	TAD (-74	/ SHOULD INDICATE 60  BIT SHIFT
	SZA
	HLT		///** NRM OR SCA FAILED (WE GOT FAULTY SHIFT COUNT)
			///** IF THE MQ EQUALS 7777 SCA FAILED TO SET C0-LINE
	SUP
	NOP
	SRA
	MQSAV
	TAD (-5252
	SZA
	HLT		///// NRM FAILED (PICKED UP SOME BITS)
			///// (OR LOST SOME!)
	TAD (-4
	DCA CNTR
T6L2,
	SUP
	NOP
	SRA		/ SHOULD READ ZERO!
	SZA
	HLT		///// NRM FAILED (PICKED UP SOME BITS)
	ISZ CNTR
	JMP T6L2
	CLA CLL		/ SET 36 BIT MODE
	SMO
	CSR
	CLA CLL IAC
	ASR		/ EXACTLY LSB SET!
	NRM
	SNS
	JMP .-1
	SCA		/ SHOULD READ 35 BIT SHIFT
	MQSAV
	AND (77		/ TAKE ONLY LOWER BYTE
	TAD (-43
	SZA
	HLT		///** NRM OR SCA FAILED (FAULTY SHIFT COUNT)
	TAD (-3
	DCA CNTR
	TAD (1001
	ASC		/ SHIFT OUT THE SINGLE "1 !
T6L3,
	SUP
	NOP
	SRA		/ SHOULD READ ZERO
	SZA
	HLT		///// NRM FAILED (PICKED UP SOME BITS)
	ISZ CNTR
	JMP T6L3
	ISZ TSTCNT
	JMP T6L1
	JMS TSTEND	/ TEST 6 DONE
	6
	PAGE
/ TEST 7
/ TESTET SKSR, SRFP IM 72/64 BIT MODE
/
TEST7,
	CLA CLL CML RAR / 2048 MAL
	DCA TSTCNT
T7L1,
	TAD (-10	/ 8 PATTERNS
	DCA CNTR
	TAD (TAB7-1	/ IN TABLE 7
	DCA 10
	CLA STL RTR	/ 72 BIT MODE
	SMO
T7L2,
	TAD (-6		/ 6 WORDS PER PATTERN
	DCA LCNT
T7L3,			/ LOAD FPP THROUGH SR
	SUP
	TAD I 10
	ASR
	ISZ LCNT
	JMP T7L3
	TAD (5010	/ POSITION LSB (64BIT)
	ASC		/ CORRECT FOR FPP IC
	CLA CLL CMA	/ ALSO DELAY!
	SRF		/ SR TO FPP NOW
	SNA CLA
	HLT		///// SRFP CLEARED AC
	SNS
	JMP .-1
	CSR		/ CLEAR RUBBISH
	CLA CLL CMA
	FSR		/ GET BACK!
	SNA CLA
	HLT		///// FPSR CLEARED AC!
	TAD (-6
	DCA LCNT
	TAD 10		/ RESET POINTER TO TESTVALUES
	TAD (-6
	DCA 10
	SNS
	JMP .-1
	TAD (24		/ POSITION MSW BACK , TO
	ASC		/ GET OUT FIRST
	AND I 0		/ DELAY
T7L4,			/ READ BACK!
	SRA
	MQSAV
	CIA
	TAD I 10
	SZA
	HLT		///** FSR OR SRF FAILED
	SUP
	ISZ LCNT
	JMP T7L4
	ISZ CNTR
	JMP T7L2
	ISZ TSTCNT
	JMP T7L1
	JMS TSTEND
	7
LCNT,	0
	PAGE
TAB7,	/ TABELLE FUER EINIGE TEST WERTE FUER SRF,FSR
	/ DIE LETZTEN 8 BIT MUESSEN NULL SEIN, DA NUR
	/ DIE ERSTEN 64 BIT IN DEN FPP GELADEN WERDEN
	ZBLOCK 6
	0000 ; 1111 ; 2222 ; 4444 ; 1234 ; 0000
	1234 ; 1234 ; 1234 ; 1234 ; 1234 ; 1000
	5670 ; 1234 ; 5670 ; 1234 ; 5670 ; 2400
	7117 ; 7070 ; 0707 ; 5252 ; 2525 ; 5000
	3312 ; 6226 ; 4114 ; 6262 ; 1414 ; 7400
	5504 ; 7654 ; 3333 ; 6666 ; 1276 ; 7000
	4213 ; 3223 ; 1341 ; 7474 ; 4312 ; 5400
TAB10,			/ TABELLE FUER 36 BIT MODE
			/ TEST SRF,FSR
	/ DIE LETZTEN 4 BIT MUESSEN NULL SEIN,
	/ DA DER FPP IC NUR 32 BIT LAEDT UND SCHREIBT
	ZBLOCK 3
	1234 ; 5670 ; 1220
	2372 ; 5225 ; 7120
	6226 ; 7777 ; 1100
	2335 ; 6543 ; 7240
	7170 ; 1717 ; 5760
	1111 ; 2222 ; 4440
	3333 ; 6666 ; 5540
/ TEST 10
/ TESTET SRFP UND FPSR IM 36/32 BIT MODE
/
TEST10,
	CLA CLL CML RAR / 2048 MAL
	DCA TSTCNT
T10L1,
	TAD (-10	/ 8 PATTERNS
	DCA CNTR
	TAD (TAB10-1	/ IN TABLE 10
	DCA 10
	CLA CLL		/ 36 BIT MODE
	SMO
T10L2,
	TAD (-3		/ 3 WORDS PER PATTERN
	DCA LCNT
T10L3,			/ LOAD FPP IC THROUGH SR
	SUP
	TAD I 10
	ASR
	ISZ LCNT
	JMP T10L3
	TAD (5004	/ POSITION LSB (32 BIT)
	ASC		/ CORRECT FOR FPP IC
	SRF		/ SR TO FPP NOW
	SNS
	JMP .-1
	CSR		/ CLEAR RUBBISH
	FSR		/ GET BACK!
	TAD (-3
	DCA LCNT
	TAD 10		/ RESET POINTER TO TESTVALUES
	TAD (-3
	DCA 10
	SNS
	JMP .-1
	TAD (20		/ POSITION MSW BACK , TO
	ASC		/ GET OUT FIRST
	AND I 0		/ DELAY
T10L4,			/ READ BACK LOOP
	SRA
	MQSAV
	CIA
	TAD I 10	/ COMPARE!
	SZA
	HLT		///** FSR OR SRF FAILED
	SUP
	ISZ LCNT
	JMP T10L4
	ISZ CNTR
	JMP T10L2
	ISZ TSTCNT
	JMP T10L1
	JMS TSTEND
	10
	PAGE
/ TEST 11
/ TESTS LCG, SRFP, SSR AND SMO TO CLEAR READY FLAG
/
TEST11,
	CLA STL IAC RTR
	DCA TSTCNT
T11L1,
	TAD (TAB11-1
	DCA 10
	TAD (-4
	DCA CNTR	/ JE 4 TESTS MIT 72 UND MIT 36 BIT MODE
T11L2,
	CLA STL RTR
	SMO		/ 64 BIT MODE
	JMS L72		/ LOAD 72 BIT OPR
	JMS L72
	TAD I 10
	LCG		/ AND COMMAND
	TAD I 10
	JMS WAIT	/ WARTE!
	SFR		/ FERTIG?
	HLT		///// SFR FAILED TO SKIP
			///// OR LCG LOADS WRONG CMD
	TAD I 10	/ GET STATUS
	AND (16		/ CHECK IF ANY
	SNA CLA		/ ERROR BIT IS SET
	JMP T11W1	/ NO
			/ YES - CHECK :
	SFE		/ SFE TO SKP ON ERROR
	HLT		///// SFE FAILED TO SKP ON ERR
T11W1,
	CLA CLL
	SMO		/ CLEAR READY FLAG
	SFR
	SKP
	HLT		///// SMO FAILED TO CLEAR RDY FLG
	SSR		/ GET  STATUS
	SNS
	JMP .-1
	SRA
	MQSAV
	CIA
	TAD I 10
	SZA
	HLT		///** SSR FAILED TO READ STATUS CORRECT
			///** OR LCG INITIATE WRONG CMD
	CLA CLL
	SMO		/ SET 36 BIT MODE
	JMS L36		/ LOAD 36 BIT OPR
	JMS L36
	TAD I 10
	LCG		/ AND LOAD CMD
	TAD I 10
	JMS WAIT
	SFR		/ SHOULD SKP NOW
	HLT		///// SFR FAILED TO SKP ON IC READY
			///// OR IC NOT READY
			///// OR LCG INITIATES WRONG CMD
	TAD I 10	/ GET STATUS
	AND (16		/ MASK FOR ERROR BITS
	SNA CLA		/ ANY ERROR BIT SET?
	JMP T11W2
			/ YES CHECK:
	SFE		/ ERROR FLG SET?
	HLT		///// SFE FAILED TO SKP ON ERR
T11W2,
	CLA CLL
	SMO		/ CHECK IF SMO CLR'S RDY FLAG
	SFR
	SKP
	HLT		///// SMO FAILED TO CLR RDY FLG
	SSR		/ GET STATUS
	SNS
	JMP .-1
	SRA
	MQSAV
	CIA
	TAD I 10	/ COMPARE AGAINST EXPECTED STATUS
	SZA
	HLT		///** SSR FAILED TO READ STATUS CORRECT
			///** OR LCG INITATES WRONG CMD
	ISZ CNTR	/ ALL PATTERNS ?
	JMP T11L2	/ NO
			/ YES
	ISZ TSTCNT
	JMP T11L1
	JMS TSTEND
	11
	PAGE
	/ DEFINITIONEN FUER TABELLE 11
	SADD=1
	SSUB=2
	SMUL=3
	SDIV=4
	CHSS=5
	DADD=51
	DSUB=52
	DMUL=53
	DDIV=54
	CHSD=55
	/
	MINUS=100
	ZERO=40
	DIVI=10
	UNDR=4
	OVER=2
TAB11,		/ TABELLE FUER DEN TEST EINIGER
		/ GRUND OPERATIONEN MIT FPP IC
	/ ABWECHSELND WERDEN 72 UND 36 BIT OPERATIONEN GETESTET
	/ DATEN FORMAT:
	/ ZWEI OPERANDEN MIT 6 BZW 3 WORTEN
	/ DANN: COMMAND,DELAY (IN SCHRITTEN VON 5US),ERWARTETER STATUS
	/ DER STATUS KOMMT ZWEIMAL(!!!!!!) WEGEN EVTL. SKP ON ERROR!
/
/ 0 -- CHANGE SIGN GIBT ZERO BIT
	ZBLOCK 14
	CHSD ; 2 ; ZERO ; ZERO
/ 0 -- CHANGE SIGN GIBT  ZERO BIT
	0 ; 7777 ; 7777 ; 0 ; 7777 ; 7777
	CHSS ; 1 ; ZERO ; ZERO
/ 1 + (-2) GIBT MINUS BIT
	2000 ; 0 ; 0 ; 0 ; 0 ; 0
	6001 ; 0 ; 0 ; 0 ; 0 ; 0
	DADD ; 200 ; MINUS ; MINUS
/ 3 - 3 GIBT ZERO
	2014 ; 0 ; 0
	2014 ; 0 ; 0
	SSUB ; 4 ; ZERO ; ZERO
/ 1 / 0 GIBT DIVIDE OVERFLOW
	2000 ; 0 ; 0 ; 0 ; 0 ; 0
	0000 ; 7777 ; 0 ; 0 ; 0 ; 0
	DDIV ; 500 ; DIVI ; DIVI
/ -2 * -3 GIBT STATUS 0!
	6010 ; 0 ; 0
	6014 ; 0 ; 0
	SMUL ; 50 ; 0 ; 0
/ 2 * -3 GIBT MINUS
	2001 ; 0 ; 0 ; 0 ; 0 ; 0
	6001 ; 0 ; 0 ; 0 ; 0 ; 0
	DMUL ; 300 ; MINUS ; MINUS
/ MAX/MIN GIBT OVERFLOW
	3777 ; 7777 ; 7777
	10 ; 0 ; 0
	SDIV ; 200 ; OVER ; OVER
	PAGE
/ 3 SUBROUTINES FOR TEST 11
L36,	0		/ SUBR. TO LOAD SINGLE PRECISION
			/ FP WORD INTO FPP IC
	CLA CLL
	SMO		/ SET 36 BIT MODE
	TAD (-3
	DCA LC		/ 3 WORTE
L36L1,
	SUP
	TAD I 10
	ASR
	ISZ LC
	JMP L36L1
	TAD (5004
	ASC		/ POSITION LSB OF IC'S FORMAT CORRECT
	SRF
	SNS
	JMP .-1
	JMP I L36
LC,	0		/ COUNTER !
L72,	0		/ SUBR. TO LOAD DOUBLE PRECISION WORD
	CLA STL RTR
	SMO
	TAD (-6
	DCA LC
L72L1,
	SUP
	TAD I 10
	ASR
	ISZ LC
	JMP L72L1
	TAD (5010
	ASC		/ POSITION LSB OF IC'S FORMAT CORRECT!
	NOP
	SRF
	SNS
	JMP .-1
	JMP I L72
WAIT,	0		/ WAIT <AC>*5 US
	CIA
WLOP,
	IAC
	NOP
	SZA
	JMP WLOP
	JMP I WAIT
/
/ TEST 12
/ TESTET INTERRUPT ON FPP IC READY
/
TEST12,
	CLA CLL
	DCA TSTCNT	/ 4096 MAL
T12L1,
	CAF
	NOP ; NOP
	SRQ
	SKP
	HLT		///// UNKNOWN INTERRUPT
			///// OR CAF FAILED TO CLEAR FPP INT
	TAD (CHSS
	LCG		/ CHANGE SIGN SINGLE USES ONLY SOME US!
	CLA STL RAR
	SMO		/ ENABLE INTERRUPT OF FPP
	AND I 0		/ DELAY
	AND I 0		/ DELAY
	SRQ
	HLT		///// NO INTERRUPT ON FPP IC READY
	CLA STL RAR
	SMO		/ CLEAR IC' S READY FLAG
	SRQ
	SKP
	HLT		///// SMO FAILED TO CLEAR FLAG
			///// OR UNKNOWN INTERRUPT
	ISZ TSTCNT
	JMP T12L1
	JMS TSTEND
	12
BIBRET,			/ SIGNALS THAT ALL TESTS ARE PERFORMED
			/ ONCE
			/ THEN RESTARTS TEST1!
	CLA CLL
	TAD (PMSG-1
	DCA 10
PLP,
	CLA CLL
	TAD I 10
	SNA
	JMP .+5		/ END OF MESSAGE REACHED!
	TLS
	TSF
	JMP .-1
	JMP PLP
	TCF		/ TO NOT CONFLICT WITH OUR INTRRUPT TEST!
	JMS TSTEND
	0		/ MEANS : GO TO TEST 1 AGAIN!
PMSG,			/ END OF PASS MESSAGE
	207
	"F ; "P ; "P ; "  ; "T ; "E ; "S ; "T
	": ; " 
	"P ; "A ; "S ; "S ; " 
	"C ; "O ; "M ; "P ; "L ; "E ; "T ; "E
	215 ; 212 ; 0