HP PROPIETARY OPCODES Version 1 HP28S Processor Notes, Appendix A Alonzo Gariepy ================================================================ The following is an addendum to my processor notes. My improved mnemonics have caused some disappointment among users of the 28S propietary mnemonics. A subset of these mnemonics was published in the HP-71 technical documents and in the Meir book. I cannot say what the cause of disappointment might be. It is either because they can't participate as well now, or because of some vested interest. If there has been such participation, it hasn't made it through the net. Much of it has been in Europe. To be fair, I present below the official HP mnemonics. If HP ever decides to publish the internals of the 28 (who knows what sysevals are lurking in there?), it will be with these opcodes. The difference here is about the same as between English and Pig Latin. Iway ancay eadray othbay, utbay I'llway etlay ouyay ecideay. --Oznola // This work does not reflect the microsoft!alonzo // opinions or policies of Microsoft ---------------------------------------------------------------------- Instructions found in the HP-28 but not the HP-71 are marked with (@). For explanation, refer to the instrution descriptions in my notes. Symbols used in modifier field: fs Field Select character. rfs Restricted Field Selection (S,P,WP, and XS not allowed). d Single-nibble field. expr Expression. hh Two-digit hexadecimal value. hhhh Four-digit hexadecimal value. hhhhh Five-digit hexadecimal value. label Label destination. ASCII ASCII character string. Symbols used in code field: ** Code included in test instruction. a Field select in the range 0-7. b Field select in the range 8-F. c Single-nibble length field (Load Constant). f Field select including A field. h...h Hexadecimal value. n Nibble whose value is d. n...n Nibbles whose value is expr. m Nibble whose value is d - 1. x...x Nibbles corresponding to ASCII characters. y Reference to a symbol (relative or absolute). The P register controls where load constants begin in a register. For instance, if P=2, the LCHEX 9 instruction would load the value 9 into the XS field of C. Instruction Code Comments ?A#0 A 8ACyy Requires GOYES or RTNYES; Affects Carry ?A#0 fs 9aCyy Requires GOYES or RTNYES; Affects Carry ?A#B A 8A4yy Requires GOYES or RTNYES; Affects Carry ?A#B fs 9a4yy Requires GOYES or RTNYES; Affects Carry ?A#C A 8A6yy Requires GOYES or RTNYES; Affects Carry ?A#C fs 9a6yy Requires GOYES or RTNYES; Affects Carry ?A<=B A 8BCyy Requires GOYES or RTNYES; Affects Carry ?A<=B fs 9bCyy Requires GOYES or RTNYES; Affects Carry ?A<=C A 8BAyy Requires GOYES or RTNYES; Affects Carry ?A<=C fs 9bAyy Requires GOYES or RTNYES; Affects Carry ?A=B A 8B8yy Requires GOYES or RTNYES; Affects Carry ?A>=B fs 9b8yy Requires GOYES or RTNYES; Affects Carry ?A>=C A 8BEyy Requires GOYES or RTNYES; Affects Carry ?A>=C fs 9bEyy Requires GOYES or RTNYES; Affects Carry ?A>B A 8B0yy Requires GOYES or RTNYES; Affects Carry ?A>B fs 9b0yy Requires GOYES or RTNYES; Affects Carry ?A>C A 8B6yy Requires GOYES or RTNYES; Affects Carry ?A>C fs 9b6yy Requires GOYES or RTNYES; Affects Carry ?ABIT=0 d 8086nyy (@) Requires GOYES or RTNYES; Affects Carry ?ABIT=1 d 8087nyy (@) Requires GOYES or RTNYES; Affects Carry ?B#0 A 8ADyy Requires GOYES or RTNYES; Affects Carry ?B#0 fs 9aDyy Requires GOYES or RTNYES; Affects Carry ?B#A A 8A4yy Requires GOYES or RTNYES; Affects Carry ?B#A fs 9a4yy Requires GOYES or RTNYES; Affects Carry ?B#C A 8A5yy Requires GOYES or RTNYES; Affects Carry ?B#C fs 9a5yy Requires GOYES or RTNYES; Affects Carry ?B<=A A 8B8yy Requires GOYES or RTNYES; Affects Carry ?B<=A fs 9b8yy Requires GOYES or RTNYES; Affects Carry ?B<=C A 8BDyy Requires GOYES or RTNYES; Affects Carry ?B<=C fs 9bDyy Requires GOYES or RTNYES; Affects Carry ?B=A A 8BCyy Requires GOYES or RTNYES; Affects Carry ?B>=A fs 9bCyy Requires GOYES or RTNYES; Affects Carry ?B>=C A 8B9yy Requires GOYES or RTNYES; Affects Carry ?B>=C fs 9b9yy Requires GOYES or RTNYES; Affects Carry ?B>A A 8B4yy Requires GOYES or RTNYES; Affects Carry ?B>A fs 9b4yy Requires GOYES or RTNYES; Affects Carry ?B>C A 8B1yy Requires GOYES or RTNYES; Affects Carry ?B>C fs 9b1yy Requires GOYES or RTNYES; Affects Carry ?C#0 A 8AEyy Requires GOYES or RTNYES; Affects Carry ?C#0 fs 9aEyy Requires GOYES or RTNYES; Affects Carry ?C#A A 8A6yy Requires GOYES or RTNYES; Affects Carry ?C#A fs 9a6yy Requires GOYES or RTNYES; Affects Carry ?C#B A 8A5yy Requires GOYES or RTNYES; Affects Carry ?C#B fs 9a5yy Requires GOYES or RTNYES; Affects Carry ?C#D A 8A7yy Requires GOYES or RTNYES; Affects Carry ?C#D fs 9a7yy Requires GOYES or RTNYES; Affects Carry ?C<=A A 8BEyy Requires GOYES or RTNYES; Affects Carry ?C<=A fs 9bEyy Requires GOYES or RTNYES; Affects Carry ?C<=B A 8B9yy Requires GOYES or RTNYES; Affects Carry ?C<=B fs 9b9yy Requires GOYES or RTNYES; Affects Carry ?C<=D A 8BByy Requires GOYES or RTNYES; Affects Carry ?C<=D fs 9bByy Requires GOYES or RTNYES; Affects Carry ?C=A A 8BAyy Requires GOYES or RTNYES; Affects Carry ?C>=A fs 9bAyy Requires GOYES or RTNYES; Affects Carry ?C>=B A 8BDyy Requires GOYES or RTNYES; Affects Carry ?C>=B fs 9bDyy Requires GOYES or RTNYES; Affects Carry ?C>=D A 8BFyy Requires GOYES or RTNYES; Affects Carry ?C>=D fs 9bFyy Requires GOYES or RTNYES; Affects Carry ?C>A A 8B2yy Requires GOYES or RTNYES; Affects Carry ?C>A fs 9b2yy Requires GOYES or RTNYES; Affects Carry ?C>B A 8B5yy Requires GOYES or RTNYES; Affects Carry ?C>B fs 9b5yy Requires GOYES or RTNYES; Affects Carry ?C>D A 8B7yy Requires GOYES or RTNYES; Affects Carry ?C>D fs 9b7yy Requires GOYES or RTNYES; Affects Carry ?CBIT=0 d 808Anyy (@) Requires GOYES or RTNYES; Affects Carry ?CBIT=1 d 808Bnyy (@) Requires GOYES or RTNYES; Affects Carry ?D#0 A 8AFyy Requires GOYES or RTNYES; Affects Carry ?D#0 fs 9aFyy Requires GOYES or RTNYES; Affects Carry ?D#C A 8A7yy Requires GOYES or RTNYES; Affects Carry ?D#C fs 9a7yy Requires GOYES or RTNYES; Affects Carry ?D<=C A 8BFyy Requires GOYES or RTNYES; Affects Carry ?D<=C fs 9bFyy Requires GOYES or RTNYES; Affects Carry ?D=C A 8BByy Requires GOYES or RTNYES; Affects Carry ?D>=C fs 9bByy Requires GOYES or RTNYES; Affects Carry ?D>C A 8B3yy Requires GOYES or RTNYES; Affects Carry ?D>C fs 9b3yy Requires GOYES or RTNYES; Affects Carry ?HS=0 d 83nyy Requires GOYES or RTNYES; Affects Carry ?MP=0 838yy Requires GOYES or RTNYES; Affects Carry ?P# d 88nyy Requires GOYES or RTNYES; Affects Carry ?P= d 89nyy Requires GOYES or RTNYES; Affects Carry ?SB=0 832yy Requires GOYES or RTNYES; Affects Carry ?SR=0 834yy Requires GOYES or RTNYES; Affects Carry ?ST=0 d 86nyy Requires GOYES or RTNYES; Affects Carry ?ST=1 d 87nyy Requires GOYES or RTNYES; Affects Carry ?XM=0 831yy Requires GOYES or RTNYES; Affects Carry A=-A A F8 Affects Carry A=-A fs Bb8 Affects Carry A=-A-1 A FC Clears Carry A=-A-1 fs BbC Clears Carry A=0 A D0 A=0 fs Ab0 A=A!B fs 0Ef8 A=A!C fs 0EfE A=A&B fs 0Ef0 A=A&C fs 0Ef6 A=A+1 A E4 Affects Carry A=A+1 fs Ba4 Affects Carry A=A+A A C4 Affects Carry A=A+A fs Aa4 Affects Carry A=A+B A C0 Affects Carry A=A+B fs Aa0 Affects Carry A=A+C A CA Affects Carry A=A+C fs AaA Affects Carry A=A+CON rfs,d 818f0m (@) Affects Carry A=A-1 A CC Affects Carry A=A-1 fs AaC Affects Carry A=A-B A E0 Affects Carry A=A-B fs Ba0 Affects Carry A=A-C A EA Affects Carry A=A-C fs BaA Affects Carry A=A-CON rfs,d 818f8m (@) Affects Carry A=B A D4 A=B fs Ab4 A=B!A fs 0Ef8 A=B&A fs 0Ef0 A=B+A A C0 Affects Carry A=B+A fs Aa0 Affects Carry A=B-A A EC Affects Carry A=B-A fs BaC Affects Carry A=C A DA A=C fs AbA A=C!A fs 0EfE A=C&A fs 0Ef6 A=C+A A CA Affects Carry A=C+A fs AaA Affects Carry A=DAT0 A 142 A=DAT0 B 14A A=DAT0 fs 152a A=DAT0 d 15Am A=DAT1 A 143 A=DAT1 B 14B A=DAT1 fs 153a A=DAT1 d 15Bm A=IN 802 A=PC 81B4 (@) A=R0 110 A=R0.F W 110 (@) A=R0.F fs 81Af10 (@) A=R1 111 A=R1.F W 111 (@) A=R1.F fs 81Af11 (@) A=R2 112 A=R2.F W 112 (@) A=R2.F fs 81Af12 (@) A=R3 113 A=R3.F W 113 (@) A=R3.F fs 81Af13 (@) A=R4 114 A=R4.F W 114 (@) A=R4.F fs 81Af14 (@) ABEX A DC ABEX fs AbC ABIT=0 d 8084n (@) Clears bit d of A register ABIT=1 d 8085n (@) Sets bit d of A register ACEX A DE ACEX fs AbE AD0EX 132 AD0XS 13A AD1EX 133 AD1XS 13B APCEX 81B6 (@) Continues elsewhere AR0EX 120 AR0EX.F fs 81Af20 (@) AR1EX 121 AR1EX.F fs 81Af21 (@) AR2EX 122 AR2EX.F fs 81Af22 (@) AR3EX 123 AR3EX.F fs 81Af23 (@) AR4EX 124 AR4EX.F fs 81Af24 (@) ASL A F0 ASL fs Bb0 ASLC 810 ASR A F4 ASR fs Bb4 ASRB 81C ASRB.F fs 819f0 (@) ASRC 814 B=-B A F9 Affects Carry B=-B fs Bb9 Affects Carry B=-B-1 A FD Clears Carry B=-B-1 fs BbD Clears Carry B=0 A D1 B=0 fs Ab1 B=A A D8 B=A fs Ab8 B=A!B fs 0EfC B=A&B fs 0Ef4 B=A+B A C8 Affects Carry B=A+B fs Aa8 Affects Carry B=B!A fs 0EfC B=B!C fs 0Ef9 B=B&A fs 0Ef4 B=B&C fs 0Ef1 B=B+1 A E5 Affects Carry B=B+1 fs Ba5 Affects Carry B=B+A A C8 Affects Carry B=B+A fs Aa8 Affects Carry B=B+B A C5 Affects Carry B=B+B fs Aa5 Affects Carry B=B+C A C1 Affects Carry B=B+C fs Aa1 Affects Carry B=B+CON rfs,d 818f1m (@) Affects Carry B=B-1 A CD Affects Carry B=B-1 fs AaD Affects Carry B=B-A A E8 Affects Carry B=B-A fs Ba8 Affects Carry B=B-C A E1 Affects Carry B=B-C fs Ba1 Affects Carry B=B-CON rfs,d 818f9m (@) Affects Carry B=C A D5 B=C fs Ab5 B=C!B fs 0Ef9 B=C&B fs 0Ef1 B=C+B A C1 Affects Carry B=C+B fs Aa1 Affects Carry B=C-B A ED Affects Carry B=C-B fs BaD Affects Carry BAEX A DC BAEX fs AbC BCEX A DD BCEX fs AbD BSL A F1 BSL fs Bb1 BSLC 811 BSR A F5 BSR fs Bb5 BSRB 81D BSRB.F W 81D (@) BSRB.F fs 819f1 (@) BSRC 815 BUSCB 8083 (@) BUSCC 80B BUSCD 808D (@) C+P+1 809 Affects Carry C=-C A FA Affects Carry C=-C fs BbA Affects Carry C=-C-1 A FE Clears Carry C=-C-1 fs BbE Clears Carry C=0 A D2 C=0 fs Ab2 C=A A D6 C=A fs Ab6 C=A!C fs 0EfA C=A&C fs 0Ef2 C=A+C A C2 Affects Carry C=A+C fs Aa2 Affects Carry C=A-C A EE Affects Carry C=A-C fs BaE Affects Carry C=B A D9 C=B fs Ab9 C=B!C fs 0EfD C=B&C fs 0Ef5 C=B+C A C9 Affects Carry C=B+C fs Aa9 Affects Carry C=C!A fs 0EfA C=C!B fs 0EfD C=C!D fs 0EfF C=C&A fs 0Ef2 C=C&B fs 0Ef5 C=C&D fs 0Ef7 C=C+1 A E6 Affects Carry C=C+1 fs Ba6 Affects Carry C=C+A A C2 Affects Carry C=C+A fs Aa2 Affects Carry C=C+B A C9 Affects Carry C=C+B fs Aa9 Affects Carry C=C+C A C6 Affects Carry C=C+C fs Aa6 Affects Carry C=C+CON rfs,d 818f2m (@) Affects Carry C=C+D A CB Affects Carry C=C+D fs AaB Affects Carry C=C+P+1 809 Affects Carry C=C-1 A CE Affects Carry C=C-1 fs AaE Affects Carry C=C-A A E2 Affects Carry C=C-A fs Ba2 Affects Carry C=C-B A E9 Affects Carry C=C-B fs Ba9 Affects Carry C=C-CON rfs,d 818fAm (@) Affects Carry C=C-D A EB Affects Carry C=C-D fs BaB Affects Carry C=D A DB C=D fs AbB C=D!C fs 0EfF C=D&C fs 0Ef7 C=D+C A CB Affects Carry C=D+C fs AaB Affects Carry C=DAT0 A 146 C=DAT0 B 14E C=DAT0 fs 156a C=DAT0 d 15Em C=DAT1 A 147 C=DAT1 B 14F C=DAT1 fs 157a C=DAT1 d 15Fm C=ID 806 C=IN 803 C=P d 80Cn C=PC 81B5 (@) C=R0 118 C=R0.F fs 81Af18 (@) C=R1 119 C=R1.F fs 81Af19 (@) C=R2 11A C=R2.F fs 81Af1A (@) C=R3 11B C=R3.F fs 81Af1B (@) C=R4 11C C=R4.F fs 81Af1C (@) C=RSTK 07 C=ST 09 CAEX A DE CAEX fs AbE CBEX A DD CBEX fs AbD CBIT=0 d 8088n (@) Clears bit d of C register CBIT=1 d 8089n (@) Sets bit d of C register CD0EX 136 CD0XS 13E CD1EX 137 CD1XS 13F CDEX A DF CDEX fs AbF CLRHST 82F CLRST 08 CON(1) expr n CON(2) expr nn CON(3) expr nnn CON(4) expr nnnn CON(5) expr nnnnn CON(6) expr nnnnnn CON(7) expr nnnnnnn CON(8) expr nnnnnnnn CONFIG 805 CPCEX 81B7 (@) Continues elsewhere CPEX d 80Fn CR0EX 128 CR0EX.F fs 81Af28 (@) CR1EX 129 CR1EX.F fs 81Af29 (@) CR2EX 12A CR2EX.F fs 81Af2A (@) CR3EX 12B CR3EX.F fs 81Af2B (@) CR4EX 12C CR4EX.F fs 81Af2C (@) CSL A F2 CSL fs Bb2 CSLC 812 CSR A F6 CSR fs Bb6 CSRB 81E CSRB.F fs 819f2 (@) CSRC 816 CSTEX 0B D0=(2) expr 19nn D0=(4) expr 1Annnn D0=(5) expr 1Bnnnnn D0=A 130 D0=AS 138 D0=C 134 D0=CS 13C D0=D0+ d 16m Affects Carry D0=D0- d 18m Affects Carry D0=HEX hh 19hh D0=HEX hhhh 1Ahhhh D0=HEX hhhhh 1Bhhhhh D1=(2) expr 1Dnn D1=(4) expr 1Ennnn D1=(5) expr 1Fnnnnn D1=A 131 D1=AS 139 D1=C 135 D1=CS 13D D1=D1+ d 17m Affects Carry D1=D1- d 1Cm Affects Carry D1=HEX hh 1Dhh D1=HEX hhhh 1Ehhhh D1=HEX hhhhh 1Fhhhhh D=-D A FB Affects Carry D=-D fs BbB Affects Carry D=-D-1 A FF Clears Carry D=-D-1 fs BbF Clears Carry D=0 A D3 D=0 fs Ab3 D=C A D7 D=C fs Ab7 D=C!D fs 0EfB D=C&D fs 0Ef3 D=C+D A C3 Affects Carry D=C+D fs Aa3 Affects Carry D=C-D A EF Affects Carry D=C-D fs BaF Affects Carry D=D!C fs 0EfB D=D&C fs 0Ef3 D=D+1 A E7 Affects Carry D=D+1 fs Ba7 Affects Carry D=D+C A C3 Affects Carry D=D+C fs Aa3 Affects Carry D=D+CON rfs,d 818f3m (@) Affects Carry D=D+D A C7 Affects Carry D=D+D fs Aa7 Affects Carry D=D-1 A CF Affects Carry D=D-1 fs AaF Affects Carry D=D-C A E3 Affects Carry D=D-C fs Ba3 Affects Carry D=D-CON rfs,d 818fBm (@) Affects Carry DAT0=A A 140 DAT0=A B 148 DAT0=A fs 150a DAT0=A d 158m DAT0=C A 144 DAT0=C B 14C DAT0=C fs 154a DAT0=C d 15Cm DAT1=A A 141 DAT1=A B 149 DAT1=A fs 151a DAT1=A d 159m DAT1=C A 145 DAT1=C B 14D DAT1=C fs 155a DAT1=C d 15Dm DCEX A DF DCEX fs AbF DSL A F3 DSL fs Bb3 DSLC 813 DSR A F7 DSR fs Bb7 DSRB 81F DSRB.F fs 819f3 (@) DSRC 817 GOC label 4yy Continues elsewhere if Carry set GOLONG label 8Cyyyy Continues elsewhere GONC label 5yy Continues elsewhere if Carry clear GOSBVL label 8Fyyyyy Affects Carry GOSUB label 7yyy Affects Carry GOSUBL label 8Eyyyy Affects Carry GOTO label 6yyy Continues elsewhere GOVLNG label 8Dyyyyy Continues elsewhere GOYES label ** Must follow a test instruction HS=0 d 82n Clears (MP SR SB XM) according to d Example: 823 Clears SB and XM INTOFF 808F INTON 8080 LA(1) expr 80820n (@) Load A register LA(2) expr 80821nn (@) Load A register LA(3) expr 80822nnn (@) Load A register LA(4) expr 80823nnnn (@) Load A register LA(5) expr 80824nnnnn (@) Load A register LA(6) expr 80825nnnnnn (@) Load A register LA(7) expr 80826nnnnnnn (@) Load A register LA(8) expr 80827nnnnnnnn (@) Load A register LC(1) expr 30n Load C register LC(2) expr 31nn Load C register LC(3) expr 32nnn Load C register LC(4) expr 33nnnn Load C register LC(5) expr 34nnnnn Load C register LC(6) expr 35nnnnnn Load C register LC(7) expr 36nnnnnnn Load C register LC(8) expr 37nnnnnnnn Load C register MP=0 828 NIBASC \ASCII\ x...x NIBFS fs f NIBHEX hhhhhhh hhhhhhh Affects Carry NOP3 820 NOP4 6300 NOP5 64000 OUT=C 801 OUT=CS 800 P= d 2n P=C d 80Dn P=P+1 0C Affects Carry P=P-1 0D Affects Carry PC=(A) 808C (@) Continues elsewhere PC=(C) 808E (@) Continues elsewhere PC=A 81B2 (@) Continues elsewhere PC=C 81B3 (@) Continues elsewhere R0=A 100 R0=A.F fs 81Af00 (@) R0=C 108 R0=C.F fs 81Af08 (@) R1=A 101 R1=A.F fs 81Af01 (@) R1=C 109 R1=C.F fs 81Af09 (@) R2=A 102 R2=A.F fs 81Af02 (@) R2=C 10A R2=C.F fs 81Af0A (@) R3=A 103 R3=A.F fs 81Af03 (@) R3=C 10B R3=C.F fs 81Af0B (@) R4=A 104 R4=A.F fs 81Af04 (@) R4=C 10C R4=C.F fs 81Af0C (@) REL(1) label y REL(2) label yy REL(3) label yyy REL(4) label yyyy REL(5) label yyyyy REL(6) label yyyyyy REL(7) label yyyyyyy REL(8) label yyyyyyyy RESET 80A RSI 80810 (@) RSTK=C 06 RTI 0F Continues elsewhere RTN 01 Continues elsewhere RTNC 400 Continues elsewhere if Carry set RTNCC 03 Continues elsewhere clearing Carry RTNNC 500 Continues elsewhere if Carry clear RTNSC 02 Continues elsewhere setting Carry RTNSXM 00 Continues elsewhere setting XM bit RTNYES ** Must follow a test instruction SB=0 822 SETDEC 05 SETHEX 04 SHUTDN 807 SLINK label yyyyy SR=0 824 SREQ? 80E ST=0 d 84n ST=1 d 85n ST=C 0A STRING \ASCII\ x...x UNCNFG 804 XM=0 821