free-pdk / fppa-pdk-documentation

Documentation for PADAUK FPPA MCUs
25 stars 8 forks source link

Some instructions missing in the 15-bit instruction set #10

Closed spth closed 4 years ago

spth commented 5 years ago

The following instructions in teh 15-bit instruction set do not have their opcodes documented in the wiki yet:

NMOV A, M NMOV M, A SWAP M XOR A, IO

These are available e.g. on the PMC133.

Philipp

freepdk commented 5 years ago

The 15 bit opcodes for those instructions are not listed anywhere till now.

Please assist.

freepdk commented 5 years ago

I tried to use official IDE 0.84 to assemble the other commands (tried PMS133 and PMS134) but they produce an error.

However the instruction set does show 4 holes which would fit perfectly.

Should I try to create a test program and manually insert guessed instruction opcodes, write it to a real PMS133 and check how it works?

freepdk commented 5 years ago

Guesses:

0x0300 : maybe XOR A,IO 0x0400 : maybe XOR A,IO

0x0800 : something with M (NMOV A,M / NMOV M,A / SWAP A,M / CEQSN M,A / CNEQSN M,A) 0x0900 : something with M (NMOV A,M / NMOV M,A / SWAP A,M / CEQSN M,A / CNEQSN M,A) 0x0A00 : something with M (NMOV A,M / NMOV M,A / SWAP A,M / CEQSN M,A / CNEQSN M,A) 0x0B00 : something with M (NMOV A,M / NMOV M,A / SWAP A,M / CEQSN M,A / CNEQSN M,A)

0x5800 : ???

spth commented 5 years ago

Well,

NMOV A, M, NMOV M, A SWAP M

are the only ones mentioned in datasheets, but missing in the list. There may even still be space reserved for future additions.

Philipp

freepdk commented 5 years ago

With fuzzing I found the 3 missing opcode. Also available on PFS173:

0x0800 : NMOV A, M (ZF) 0x0900 : NMOV M, A 0x0A00 : SWAP M

I will add them to the opcode list.

spth commented 5 years ago

Thanks. I still wonder why these were omitted from PFS173 documentation. Maybe mark them as 'u' instead of '-' in the table.

Philipp

cmfcmf commented 4 years ago

This issue can be closed. The missing instructions have been added to the instruction set tables some time ago: https://free-pdk.github.io/instruction-sets/PDK15