;	integer*4 val,syspeek,addr
;	val=syspeek(addr,len)
;	val=syspeek(addr,len,newval)
; where len=1,2,4 and newval is new value to be stored.
	.TITLE	SYSPEEK

	.LIST	MEB

SYSPEEK::
	.WORD	^M<IV,R4,R5,R6>
	MOVL	AP,R4
;	CALLG	(R4),PEEKIT
	$CMKRNL_S PEEKIT,(R4)
	MOVL	R5,R0
	RET

PEEKIT:
	.WORD	^M<IV,R11>
	MOVL	@4(AP),R4
	MOVL	#-1,R5
	CASEB	@8(AP),#1,#4
1$:	.WORD	PBYTE-1$
	.WORD	PWORD-1$
	.WORD	NOGOOD-1$
	.WORD	PLONG-1$
NOGOOD:	RET
PBYTE:	CMPB	(AP),#3
	BLSSU	0$
	MOVB	@12(AP),(R4)
0$:	MOVZBL	(R4),R5
	RET
PWORD:	CMPB	(AP),#3
	BLSSU	0$
	MOVW	@12(AP),(R4)
0$:	MOVZWL	(R4),R5
	RET
PLONG:	CMPB	(AP),#3
	BLSSU	0$
	MOVL	@12(AP),(R4)
0$:	MOVL	(R4),R5
	RET

	.END
