	cpu	pms150
	page	0
	include	"regpdk.inc"

databit3	bit	[0x0e].3
databit4	bit	[0x0e],4
databit5	bit	databit4+1
portbit5	bit	io(0x1e).5
portbit6	bit	io(0x1e).6
portbit8	bit	portbit6+2

	nop			; 0x0000

	ldsptl			; 0x0006
	ldspth			; 0x0007

	addc	a		; 0x0010
	subc	a		; 0x0011
	izsn	a		; 0x0012
	dzsn	a		; 0x0013
	pcadd	a		; 0x0017
	not	a		; 0x0018
	neg	a		; 0x0019
	sr	a		; 0x001a
	sl	a		; 0x001b
	src	a		; 0x001c
	slc	a		; 0x001d
	swap	a		; 0x001e

	wdreset			; 0x0030
	pushaf			; 0x0032
	popaf			; 0x0033
	reset			; 0x0035
	stopsys			; 0x0036
	stopexe			; 0x0037
	engint			; 0x0038
	disgint			; 0x0039
	ret			; 0x003a
	reti			; 0x003b
	;mul			; 0x003c

	xor	io(0x12),a	; 0x0072
	mov	io(0x12),a	; 0x0092
	mov	a,io(0x12)	; 0x00b2

	stt16	[0x12]		; 0x00d2
	ldt16	[0x12]		; 0x00d3
	idxm	[0x12],a	; 0x00f2
	idxm	a,[0x12]	; 0x00f3

	ret	0xab		; 0x01ab

	t0sn	[0x0e].3	; 0x026e
	t0sn	databit3	; 0x026e
	t0sn	[0x0e],4	; 0x028e
	t0sn	databit4	; 0x028e
	t0sn	[0x0e],5	; 0x02ae
	t0sn	databit5	; 0x02ae
	t1sn	[0x0e].3	; 0x027e
	t1sn	databit3	; 0x027e
	t1sn	[0x0e],4	; 0x029e
	t1sn	databit4	; 0x029e
	t1sn	[0x0e],5	; 0x02be
	t1sn	databit5	; 0x02be
	set0	[0x0e].3	; 0x036e
	set0	databit3	; 0x036e
	set0	[0x0e],4	; 0x038e
	set0	databit4	; 0x038e
	set0	[0x0e],5	; 0x03ae
	set0	databit5	; 0x03ae
	set1	[0x0e].3	; 0x037e
	set1	databit3	; 0x037e
	set1	[0x0e],4	; 0x039e
	set1	databit4	; 0x039e
	set1	[0x0e],5	; 0x03be
	set1	databit5	; 0x03be

	add	[0x34],a	; 0x0434
	sub	[0x34],a	; 0x0474
	addc	[0x34],a	; 0x04b4
	subc	[0x34],a	; 0x04f4
	and	[0x34],a	; 0x0534
	or	[0x34],a	; 0x0574
	xor	[0x34],a	; 0x05b4
	mov	[0x34],a	; 0x05f4
	add	a,[0x34]	; 0x0634
	sub	a,[0x34]	; 0x0674
	addc	a,[0x34]	; 0x06b4
	subc	a,[0x34]	; 0x06f4
	and	a,[0x34]	; 0x0734
	or	a,[0x34]	; 0x0774
	xor	a,[0x34]	; 0x07b4
	mov	a,[0x34]	; 0x07f4

	addc	[0x34]		; 0x0834
	subc	[0x34]		; 0x0874
	izsn	[0x34]		; 0x08b4
	dzsn	[0x34]		; 0x08f4
	inc	[0x34]		; 0x0934
	dec	[0x34]		; 0x0974
	clear	[0x34]		; 0x09b4
	xch	[0x34]		; 0x09f4
	not	[0x34]		; 0x0a34
	neg	[0x34]		; 0x0a74
	sr	[0x34]		; 0x0ab4
	sl	[0x34]		; 0x0af4
	src	[0x34]		; 0x0b34
	slc	[0x34]		; 0x0b74
	ceqsn	a,[0x34]	; 0x0bb4

	t0sn	io(0x1e).5	; 0x0cbe
	t0sn	portbit5	; 0x0cbe
	t0sn	io(0x1e),6	; 0x0cde
	t0sn	portbit6	; 0x0cde
	t0sn	io(0x1f),0	; 0x0c1f
	t0sn	portbit8	; 0x0c1f
	t1sn	io(0x1e).5	; 0x0dbe
	t1sn	portbit5	; 0x0dbe
	t1sn	io(0x1e),6	; 0x0dde
	t1sn	portbit6	; 0x0dde
	t1sn	io(0x1f),0	; 0x0d1f
	t1sn	portbit8	; 0x0d1f
	set0	io(0x1e).5	; 0x0ebe
	set0	portbit5	; 0x0ebe
	set0	io(0x1e),6	; 0x0ede
	set0	portbit6	; 0x0ede
	set0	io(0x1f),0	; 0x0e1f
	set0	portbit8	; 0x0e1f
	set1	io(0x1e).5	; 0x0fbe
	set1	portbit5	; 0x0fbe
	set1	io(0x1e),6	; 0x0fde
	set1	portbit6	; 0x0fde
	set1	io(0x1f),0	; 0x0f1f
	set1	portbit8	; 0x0f1f

	add	a,0xab		; 0x10ab
	sub	a,0xab		; 0x11ab
	ceqsn	a,0xab		; 0x12ab
	and	a,0xab		; 0x14ab
	or	a,0xab		; 0x15ab
	xor	a,0xab		; 0x16ab
	mov	a,0xab		; 0x17ab

	goto	0x345		; 0x1b45
	call	0x345		; 0x1f45

	data	1000,2000,3000,4000,5000,6000,7000,8000
	expect	1320
	data	9000
	endexpect
	data	"12345678"

uart	struct
data	res	1
ctrl	res	1
txen	bit	ctrl,0
rxen	bit	ctrl,1
stat	res	1
drdy	bit	stat,0
txempt	bit	stat,1
rxovr	bit	stat,2
txovr	bit	stat,3
	endstruct

	segment	data

	org	0x08
uart1	uart
