;First part of KeyGP Group.
;It Tests RAM on Resident and reports resalts

	CLR   @#176560
	CLR   @#176564
	MOV   #15,R1
	MOV   @#100000,R0
	CMP   R0,#111516	;181 eprom
	BNE   epr182
	CMP   @#4516,#34
	BNE   Fail
	CMP   @#4520,#22
	BEQ   3$
	CMP   @#4520,#5
	BNE   Fail
3$:	CMP   @#7450,#14
	BNE   Fail 
	CMP   @#7452,#22
	BEQ   Test
	CMP   @#7452,#5
	BNE   Fail
	BR    Test

epr182:	CMP   R0,#114142	;182 eprom
	BNE   Fail
	CMP   @#4452,#34
	BNE   Fail
	CMP   @#4454,#22
	BEQ   5$
	CMP   @#4454,#5
	BNE   Fail
5$:	CMPB  @#4557,#14
	BNE   Fail
	CMPB  @#4561,#22
	BEQ   Test
	CMPB  @#4561,#5
	BNE   Fail

Test:	MTPS  #0
	MOV   #60.,R5
	CLR   R1
	MOV   #TimP1,@#100
$Nop0:	BR    $Nop0
7$:     TSTB  @#176564
	BPL   7$
	CLRB  @#176566
	INC   R1		;r1 = Chanal speed
$Nop1:	BR    7$

Fail:	MTPS  #340
	MOV   #400,R0		;Password
	JSR   PC,OutWrd
	MOV   R1,R0		;Speed
	JSR   PC,OutWrd
	MOV   @#100000,R0	;First word of PROM
	JSR   PC,OutWrd
9$:	TSTB  @#176560
	BPL   9$
	MOVB  @#176562,R0
	CMPB  R0,#35.		;If 35. byte, it must be returned
	BNE   10$
11$:	TSTB  @#176564
	Bpl	11$
	MOVB  R0,@#176566
	BR    9$
10$:	CMPB  R0,#53
	BNE   12$
12$:	MOV   #60.,R0
14$:	MOVB  R0,@#167772
	CLRB  @#167773
	SOB   R0,14$
	MOV   #20175,@#160000   
15$:	CLR   @#160002           
	INC   @#160000           
	SOB   R0,15$
	Halt

TimP1:	MOV   #TimP2,@#100
	MOV   (Pc)+,$Nop0
	    Nop
DoRTI:	RTI                      
TimP2:  SOB   R5,DoRTI
	MOV   (Pc)+,$Nop1
	    Nop
	RTI

OutWrd:	JSR   PC,(PC)            
16$:	TSTB  @#176564           
	BPL   16$
	MOVB  R0,@#176566
	SWAB  R0
	RTS   PC

                                                                                                                                                                                                                                                                                                                                                                                                     