'***************************************************************************
' P2 Symbol Definition File
' -------------------------
' Symbols are defined as "value type name", where value is a hex number,
' type is a deimal number and name is the ASCII string that represents
' the symbol.  Type defines what the symbol is used for, and its format.
' The types are defined as follows:
'
'  # Type  Example
'  - ----- -------
'  0 OP0   ret
'  1 OP1D  locknew  D
'  2 OP2   add      D,S/#n
'  3 OP1S  jmp      S
'  4 BYTE  byte     n1,n2,n3,n4
'  5 LONG  long     n
'  6 ORG   org      n
'  7 RES   res      n
'  8 CALL  call     S
'  9 OP1DN setptra  D/#n
' 10 OPREP rep      D/#n,#i
' 11 OP2DB isob     D.b
' 13 OP2P  rdbyte   D,S/#n/ptr
' 14 OP1DP rdquad   D/#n/ptr
' 15 WORD  word     n1,n2
' 16 IF    if_nc
' 17 CON   true
' 18 WX    wc
' 19 NX    nr
' 20 ADDR  loop
' 21 FIT   fit      n
' 22 OP2A  djnz     D,S/@
' 23 OP2B  rep      D/#,S/#
' 24 OP2C  wrbyte   D/#,S/PTRx
' 25 OP1A  call     #abs/@rel
' 26 OP1B  augs     #23bits
' 27 OP1C  cogstop  D/#
' 28 OP2D  jp       D/#,S/@
' 29 OP2E  calld    reg,#abs/@rel
' 30 FILE  file     "filename"
'***************************************************************************

00000000  2 ror
02000000  2 rol
04000000  2 shr
06000000  2 shl
08000000  2 rcr
0a000000  2 rcl
0c000000  2 sar
0e000000  2 sal
10000000  2 add
12000000  2 addx
14000000  2 adds
16000000  2 addsx
18000000  2 sub
1a000000  2 subx
1c000000  2 subs
1e000000  2 subsx
20000000  2 cmp
22000000  2 cmpx
24000000  2 cmps
26000000  2 cmpsx
28000000  2 cmpr
2a000000  2 cmpm
2c000000  2 subr
2e000000  2 cmpsub
30000000  2 min
32000000  2 max
34000000  2 mins
36000000  2 maxs
38000000  2 sumc
3a000000  2 sumnc
3c000000  2 sumz
3e000000  2 sumnz
40000000  2 isob
42000000  2 notb
44000000  2 clrb
46000000  2 setb
48000000  2 setbc
4a000000  2 setbnc
4c000000  2 setbz
4e000000  2 setbnz
50000000  2 andn
52000000  2 and
54000000  2 or
56000000  2 xor
58000000  2 muxc
5a000000  2 muxnc
5c000000  2 muxz
5e000000  2 muxnz
60000000  2 mov
62000000  2 not
64000000  2 abs
66000000  2 neg
68000000  2 negc
6a000000  2 negnc
6c000000  2 negz
6e000000  2 negnz
70000000  2 altds
72000000  2 decod
74000000  2 topone
76000000  2 botone
78000000  2 incmod
7a000000  2 decmod
7c000000  2 mul
7e000000  2 muls
80000000  2 setnibn
84000000  2 getnibn
88000000  2 rolnibn
8c000000  2 setbytn
8e000000  2 getbytn
90000000  2 rolbytn
92000000  2 setwrdn
93000000  2 getwrdn
94000000  2 rolwrdn
95000000  2 setbyts
95800000  2 movbyts
96000000  2 splitb
96800000  2 mergeb
97000000  2 splitw
97800000  2 mergew
98000000  2 sets
98800000  2 gets
99000000  2 setd
99800000  2 getd
9a000000  2 setds
9a800000  2 setcond
9b000000  2 seti
9b800000  2 rev
9c000000 22 djz
9c800000 22 djnz
9d000000 22 djs
9d800000 22 djns
9e000000 22 jz
9e800000 22 jnz
9f000000 22 js
9f800000 22 jns
a0000000  2 testn
a2000000  2 test
a4000000  2 anyb
a6000000  2 testb
a8000000  2 waitcnt
ac000000  2 rdlut
ae000000  2 msgin
b2000000 23 wrlut
b3000000 23 msgout
b4000000 23 rep
b5000000 23 xinit
b6000000 23 xzero
b7000000 23 xcont
b8000000 23 waitpae
ba000000 23 waitpan
bc000000 23 waitpbe
be000000 23 waitpbn
c0000000 28 jp
c1000000 28 jnp
c2000000 13 rdbyte
c4000000 13 rdword
c6000000 13 rdlong
c8000000 24 rdfast
c8000000 24 rdfast
c9000000 24 wrbyte
ca000000 24 wrword
cb000000 24 wrlong
cc000000 24 wrfast
cd000000 24 fblock
ce000000 23 coginit
d0000000 23 qmul
d1000000 23 qdiv
d2000000 23 qsqr
d3000000 23 qsin
d4000000 23 qrot
d5000000 23 qatn
d8000000 25 jmp
da000000 25 call
d6000029  1 call
dc000000 25 calla
d600002a  1 calla
de000000 25 callb
d600002b  1 callb
aa000000 22 calld
e0000000 29 calld
e8000000 29 loc
f0000000 26 augs
f8000000 26 augd
d6000000 27 clkset
d7000001 27 cogid
d6000003 27 cogstop
d6000004  1 locknew
d6000005 27 lockret
d6000006 27 lockclr
d6000007 27 lockset
d600000e 27 qlog
d600000f 27 qexp
d6000011  1 rfbyte
d6000012  1 rfword
d6000013  1 rflong
d6000014 27 wfmask
d6000015 27 wfbyte
d6000016 27 wfword
d6000017 27 wflong
d6000018 27 setdac
d6000019 27 setfrq
d600001a  0 getro
d600001b  0 getbw
d600001c  1 getgx
d600001d  1 getgy
d600001e  1 getcnt
d600001f  1 getrnd
d6000020 27 setq
d6000022  1 getqx
d6000023  1 getqy
d6000024 27 waitx
d6000025 27 waitpx
d6000026 27 waitpr
d6000027 27 waitpf
d6000028 27 push
d600002c  1 pop
d600002d  0 ret
d600002e  0 reta
d600002f  0 retb

' Conditional Execution Codes
00000000 16 if_never
00040000 16 if_nz_and_nc
00040000 16 if_nc_and_nz
00040000 16 if_a
00080000 16 if_z_and_nc
00080000 16 if_nc_and_z
000c0000 16 if_nc
000c0000 16 if_ae
00100000 16 if_nz_and_c
00100000 16 if_c_and_nz
00140000 16 if_nz
00140000 16 if_ne
00180000 16 if_z_ne_c
00180000 16 if_c_ne_z
001c0000 16 if_nz_or_nc
001c0000 16 if_nc_or_nz
00200000 16 if_z_and_c
00200000 16 if_c_and_z
00240000 16 if_z_eq_c
00240000 16 if_c_eq_z
00280000 16 if_z
00280000 16 if_e
002c0000 16 if_z_or_nc
002c0000 16 if_nc_or_z
00300000 16 if_c
00300000 16 if_b
00340000 16 if_nz_or_c
00340000 16 if_c_or_nz
00380000 16 if_z_or_c
00380000 16 if_c_or_z
00380000 16 if_be
003c0000 16 if_always

' Write Flag Codes
00800000 18 wz
01000000 18 wc
' 00800000 18 wr
00800000 19 nz
01000000 19 nc
' 00800000 19 nr

' Delimiters
00400000 17 #
00000000 17 ,
00000000 17 @

' Constants
ffffffff 17 true
00000000 17 false
2a 17 xtal1
32 17 xtal2
3a 17 xtal3
41 17 pll1x
42 17 pll2x
43 17 pll4x
44 17 pll8x
45 17 pll16x

' Registers
1f8 17 ptra
1f9 17 ptrb
1fa 17 ina
1fb 17 inb
1fc 17 outa
1fd 17 outb
1fe 17 dira
1ff 17 dirb

' Psuedo Ops
0  6 org
0  7 res
0  5 long
0  4 byte
0  0 nop
0 15 word
0 21 fit
0 30 file
