The Museum of HP Calculators

HP Forum Archive 14

[ Return to Index | Top of Index ]

HP41C Class 3
Message #1 Posted by flexten on 3 Nov 2004, 7:36 a.m.

Maybe somebody can use this:

                     HP41C Class 3 microcode instructions

3FB VR JNC-1 3FF VV JC-1 013 0J JNC+2 3F3 VJ JNC-2 017 0N JC+2 3F7 VN JC-2 01B 0R JNC+3 3EB VB JNC-3 01F 0V JC+3 3EF VF JC-3 023 13 JNC+4 3E3 V3 JNC-4 027 17 JC+4 3E7 V7 JC-4 02B 1B JNC+5 3DB UR JNC-5 02F 1F JC+5 3DF UV JC-5 033 1J JNC+6 3D3 UJ JNC-6 037 1N JC+6 3D7 UN JC-6 03B 1R JNC+7 3CB UB JNC-7 03F 1V JC+7 3CF UF JC-7 043 23 JNC+8 3C3 U3 JNC-8 047 27 JC+8 3C7 U7 JC-8 04B 2B JNC+9 3BB TR JNC-9 04F 2F JC+9 3BF TV JC-9 053 2J JNC+10 3B3 TJ JNC-10 057 2N JC+10 3B7 TN JC-10 05B 2R JNC+11 3AB TB JNC-11 05F 2V JC+11 3AF TF JC-11 063 33 JNC+12 3A3 T3 JNC-12 067 37 JC+12 3A7 T7 JC-12 06B 3B JNC+13 39B SR JNC-13 06F 3F JC+13 39F SV JC-13 073 3J JNC+14 393 SJ JNC-14 077 3N JC+14 397 SN JC-14 07B 3R JNC+15 38B SB JNC-15 07F 3V JC+15 38F SF JC-15 083 43 JNC+16 383 S3 JNC-16 087 47 JC+16 387 S7 JC-16 08B 4B JNC+17 37B RR JNC-17 08F 4F JC+17 37F RV JC-17 093 4J JNC+18 373 RJ JNC-18 097 4N JC+18 377 RN JC-18 09B 4R JNC+19 36B RB JNC-19 09F 4V JC+19 36F RF JC-19 0A3 53 JNC+20 363 R3 JNC-20 0A7 57 JC+20 367 R7 JC-20 0AB 5B JNC+21 35B QR JNC-21 0AF 5F JC+21 35F QV JC-21 0B3 5J JNC+22 353 QJ JNC-22 0B7 5N JC+22 357 QN JC-22 0BB 5R JNC+23 34B QB JNC-23 0BF 5V JC+23 34F QF JC-23 0C3 63 JNC+24 343 Q3 JNC-24 0C7 67 JC+24 347 Q7 JC-24 0CB 6B JNC+25 33B PR JNC-25 0CF 6F JC+25 33F PV JC-25 0D3 6J JNC+26 333 PJ JNC-26 0D7 6N JC+26 337 PN JC-26 0DB 6R JNC+27 32B PB JNC-27 0DF 6V JC+27 32F PF JC-27 0E3 73 JNC+28 323 P3 JNC-28 0E7 77 JC+28 327 P7 JC-28 0EB 7B JNC+29 31B OR JNC-29 0EF 7F JC+29 31F OV JC-29 0F3 7J JNC+30 313 OJ JNC-30 0F7 7N JC+30 317 ON JC-30 0FB 7R JNC+31 30B OB JNC-31 0FF 7V JC+31 30F OF JC-31 103 83 JNC+32 303 O3 JNC-32 107 87 JC+32 307 O7 JC-32 10B 8B JNC+33 2FB NR JNC-33 10F 8F JC+33 2FF NV JC-33 113 8J JNC+34 2F3 NJ JNC-34 117 8N JC+34 2F7 NN JC-34 11B 8R JNC+35 2EB NB JNC-35 11F 8V JC+35 2EF NF JC-35 123 93 JNC+36 2E3 N3 JNC-36 127 97 JC+36 2E7 N7 JC-36 12B 9B JNC+37 2DB MR JNC-37 12F 9F JC+37 2DF MV JC-37 133 9J JNC+38 2D3 MJ JNC-38 137 9N JC+38 2D7 MN JC-38 13B 9R JNC+39 2CB MB JNC-39 13F 9V JC+39 2CF MF JC-39 143 A3 JNC+40 2C3 M3 JNC-40 147 A7 JC+40 2C7 M7 JC-40 14B AB JNC+41 2BB LR JNC-41 14F AF JC+41 2BF LV JC-41 153 AJ JNC+42 2B3 LJ JNC-42 157 AN JC+42 2B7 LN JC-42 15B AR JNC+43 2AB LB JNC-43 15F AV JC+43 2AF LF JC-43 163 B3 JNC+44 2A3 L3 JNC-44 167 B7 JC+44 2A7 L7 JC-44 16B BB JNC+45 29B KR JNC-45 16F BF JC+45 29F KV JC-45 173 BJ JNC+46 293 KJ JNC-46 177 BN JC+46 297 KN JC-46 17B BR JNC+47 28B KB JNC-47 17F BV JC+47 28F KF JC-47 183 C3 JNC+48 283 K3 JNC-48 187 C7 JC+48 287 K7 JC-48 18B CB JNC+49 27B JR JNC-49 18F CF JC+49 27F JV JC-49 193 CJ JNC+50 273 JJ JNC-50 197 CN JC+50 277 JN JC-50 19B CR JNC+51 26B JB JNC-51 19F CV JC+51 26F JF JC-51 1A3 D3 JNC+52 263 J3 JNC-52 1A7 D7 JC+52 267 J7 JC-52 1AB DB JNC+53 25B IR JNC-53 1AF DF JC+53 25F IV JC-53 1B3 DJ JNC+54 253 IJ JNC-54 1B7 DN JC+54 257 IN JC-54 1BB DR JNC+55 24B IB JNC-55 1BF DV JC+55 24F IF JC-55 1C3 E3 JNC+56 243 I3 JNC-56 1C7 E7 JC+56 247 I7 JC-56 1CB EB JNC+57 23B HR JNC-57 1CF EF JC+57 23F HV JC-57 1D3 EJ JNC+58 233 HJ JNC-58 1D7 EN JC+58 237 HN JC-58 1DB ER JNC+59 22B HB JNC-59 1DF EV JC+59 22F HF JC-59 1E3 F3 JNC+60 223 H3 JNC-60 1E7 F7 JC+60 227 H7 JC-60 1EB FB JNC+61 21B GR JNC-61 1EF FF JC+61 21F GV JC-61 1F3 FJ JNC+62 213 GJ JNC-62 1F7 FN JC+62 217 GN JC-62 1FB FR JNC+63 20B GB JNC-63 1FF FV JC+63 20F GF JC-63 203 G3 JNC-64 207 G7 JC-64

Notes 1. The second column is base 32 (0-9,A-V). In base 32 "C=0? RTNNC" is NET0. 2. Copy and paste into a text processor. If you like another opcode, use search and replace (eg: replace JNC with NCGO). I prefer "Jump if Not Carry".

Re: HP41C Class 3
Message #2 Posted by Mike (Stgt) on 3 Nov 2004, 10:45 a.m.,
in response to message #1 by flexten

The binary view on Nut class 3 instructions: dj jjjj js11 with d=Direction, j=Jump distance, s=carry Sense, and (11)2=(3)10 (hence Class 3). So with all variables declared integer and INSREM=(10-bit instruction word)/4 you may FORTRAN like this:

if (carry1 .eqv. btest(insrem, 0)) then
  DIST = INSREM / 2                    ! shift off CRY sense
  IF (DIST .GE. 64) DIST = DIST - 128  ! adjust direction
  PC = PC + DIST - 1                   ! modifiy prgm counter
  END IF                               ! if sense = CRY
RETURN                                 ! next instruction
Hope this helps.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall