mirror of
https://github.com/simh/simh.git
synced 2026-01-11 23:52:58 +00:00
PDP11: Document CIS register-form instructions
Only the string instructions document the registers used by the register-form instructions. Also document the BCD register-form instructions. Although, the operands have already been loaded into the special-purpose instructions before the op switch, I think this documentation is useful.
This commit is contained in:
parent
f27e40130a
commit
4f157b9318
@ -470,11 +470,11 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* MOVRC, MOVRCI
|
||||
|
||||
Operands (MOVC, MOVTC):
|
||||
Operands (MOVRC):
|
||||
R0, R1 = source string descriptor
|
||||
R2, R3 = dest string descriptor
|
||||
R4<7:0> = fill character
|
||||
Operands (MOVCI, MOVTCI):
|
||||
Operands (MOVRCI):
|
||||
A1LNT, A1ADR = source string descriptor
|
||||
A2LNT, A2ADR = dest string descriptor
|
||||
A3LNT<7:0> = fill character
|
||||
@ -754,8 +754,8 @@ switch (op) { /* case on opcode */
|
||||
R0, R1 = source string descriptor
|
||||
R2, R3 = substring descriptor
|
||||
Operands (MATCI):
|
||||
A1LNT, A1ADR = source1 string descriptor
|
||||
A2LNT, A2ADR = source2 string descriptor
|
||||
A1LNT, A1ADR = source string descriptor
|
||||
A2LNT, A2ADR = substring string descriptor
|
||||
|
||||
Condition codes:
|
||||
NZ = set from R0
|
||||
@ -818,7 +818,11 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* ADDN, SUBN, ADDP, SUBP, ADDNI, SUBNI, ADDPI, SUBPI
|
||||
|
||||
Operands:
|
||||
Operands (ADDN, SUBN, ADDP, SUBP):
|
||||
R0, R1 = source1 string descriptor
|
||||
R2, R3 = source2 string descriptor
|
||||
R4, R5 = destination string descriptor
|
||||
Operands (ADDNI, SUBNI, ADDPI, SUBPI):
|
||||
A1LNT, A1ADR = source1 string descriptor
|
||||
A2LNT, A2ADR = source2 string descriptor
|
||||
A3LNT, A3ADR = destination string descriptor
|
||||
@ -860,7 +864,11 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* MULP, MULPI
|
||||
|
||||
Operands:
|
||||
Operands (MULP):
|
||||
R0, R1 = source1 string descriptor
|
||||
R2, R3 = source2 string descriptor
|
||||
R4, R5 = destination string descriptor
|
||||
Operands (MULPI):
|
||||
A1LNT, A1ADR = source1 string descriptor
|
||||
A2LNT, A2ADR = source2 string descriptor
|
||||
A3LNT, A3ADR = destination string descriptor
|
||||
@ -898,7 +906,11 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* DIVP, DIVPI
|
||||
|
||||
Operands:
|
||||
Operands (DIVP):
|
||||
R0, R1 = divisor string descriptor
|
||||
R2, R3 = dividend string descriptor
|
||||
R4, R5 = destination string descriptor
|
||||
Operands (DIVPI):
|
||||
A1LNT, A1ADR = divisor string descriptor
|
||||
A2LNT, A2ADR = dividend string descriptor
|
||||
A3LNT, A3ADR = destination string descriptor
|
||||
@ -948,7 +960,10 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* CMPN, CMPP, CMPNI, CMPPI
|
||||
|
||||
Operands:
|
||||
Operands (CMPN, CMPP):
|
||||
R0, R1 = source1 string descriptor
|
||||
R2, R3 = source2 string descriptor
|
||||
Operands (CMPNI, CMPPI):
|
||||
A1LNT, A1ADR = source1 string descriptor
|
||||
A2LNT, A2ADR = source2 string descriptor
|
||||
|
||||
@ -979,7 +994,12 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* ASHN, ASHP, ASHNI, ASHPI
|
||||
|
||||
Operands:
|
||||
Operands (ASHN, ASHP):
|
||||
R0, R1 = source string descriptor
|
||||
R2, R3 = destination string descriptor
|
||||
R4<11:8> = rounding digit
|
||||
R4<7:0> = shift count
|
||||
Operands (ASHNI, ASHPI):
|
||||
A1LNT, A1ADR = source string descriptor
|
||||
A2LNT, A2ADR = destination string descriptor
|
||||
A3LNT<11:8> = rounding digit
|
||||
@ -1019,7 +1039,10 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* CVTPN, CVTPNI
|
||||
|
||||
Operands:
|
||||
Operands (CVTPN):
|
||||
R0, R1 = source string descriptor
|
||||
R2, R3 = destination string descriptor
|
||||
Operands (CVTPNI):
|
||||
A1LNT, A1ADR = source string descriptor
|
||||
A2LNT, A2ADR = destination string descriptor
|
||||
|
||||
@ -1041,7 +1064,10 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* CVTNP, CVTNPI
|
||||
|
||||
Operands:
|
||||
Operands (CVTNP):
|
||||
R0, R1 = source string descriptor
|
||||
R2, R3 = destination string descriptor
|
||||
Operands (CVTNPI):
|
||||
A1LNT, A1ADR = source string descriptor
|
||||
A2LNT, A2ADR = destination string descriptor
|
||||
|
||||
@ -1063,9 +1089,11 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* CVTNL, CVTPL, CVTNLI, CVTPLI
|
||||
|
||||
Operands:
|
||||
Operands (CVTNL, CVTPL):
|
||||
R0, R1 = source string descriptor
|
||||
Operands (CVTNLI, CVTPLI):
|
||||
A1LNT, A1ADR = source string descriptor
|
||||
A2LNT = destination address (inline only)
|
||||
A2LNT = destination address
|
||||
|
||||
Condition codes:
|
||||
NZV = set from result
|
||||
@ -1109,10 +1137,12 @@ switch (op) { /* case on opcode */
|
||||
|
||||
/* CVTLN, CVTLP, CVTLNI, CVTLPI
|
||||
|
||||
Operands:
|
||||
Operands (CVTLN, CVTLP):
|
||||
R0, R1 = destination string descriptor
|
||||
R2:R3 = source long - EIS format
|
||||
Operands (CVTLNI, CVTLPI):
|
||||
A1LNT, A1ADR = destination string descriptor
|
||||
A2LNT, A2ADR = source long (CVTLNI, CVTLPI) - VAX format
|
||||
R2:R3 = source long (CVTLN, CVTLP) - EIS format
|
||||
A2LNT, A2ADR = source long - VAX format
|
||||
|
||||
Condition codes:
|
||||
NZV = set from result
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user