OTP programming methods not documented.Instruction set not documented. (can't even tell how wide a "word" is !)
I don't know how big the I/O space is. I'm assuming 5 bits just like the directly addressable memory.
If it's limited to just this part then I get 6774 total instructions, which you could encode in 13 bits.
However someone posted part numbers for versions with 2K and 4K words of program space. That expands the number of instructions to 12918, which needs 14 bits.
e.g. possible encoding
0 op1 addr12 - call/goto addr
100 op3 imm8 - mov,add,sub,and,or,xor,ceqsn,ret immediate
1010 op2 sel3 io5 - set0,set1,t0sn,t1sn reg.bit
10110 dir1 op3 addr5 - mov,add,addc,sub,subc,and,or,xor a,M or M,a
10111 op4 addr5 - subc,addc,inc,dec,clear,xch,sr,src,sl,slc,not,neg,izsn,dzsn,ldt16,stt16 M
110000 op2 sel3 addr4 - set0,set1,t0sn,t1sn M.bit
11000100 dir1 io5 - mov a,IO or IO,a
11000101 dir1 addr5 - ldxm a,M or M,a (indirect load/store via 16 bit address)
110001100 addr5 - ceqsn a,M
110001101 op5 - pushaf,popaf,addc a,subc a,sr a,src a,sl a,swap a,not a,neg a,izsn a,dzsn a,ret,reti,nop,pcadd a,engint,disgint,stopsys,stopexe,reset,wdreset
There's still 7*512 + 2 * 32 + 10 = 3658 unused opcodes in this scheme. Looks like the I/O address space could actually be 7 bits (i.e. 128 bytes) and still be able to rearrange things to fit.