The Museum of HP Calculators

HP Articles Forum

[Return to the Index ]
[ Previous | Next ]


Calculator Benchmark

Posted by Xerxes on 12 Feb 2007, 7:35 a.m.

Calculator Speed Benchmark using the N-Queens Problem ------------------------------------------------------- - - 5:00:00 MK-52 Keystroke / RPN - - 4:45:00 MK-61 Keystroke / RPN - - 1:50:00 TI-66 Keystroke - - 1:37:50 HP-16C Keystroke / RPN - - 1:21:20 Organiser I POPL / Science Pack ROM Module - - 1:19:10 HP-15C Keystroke / RPN - - 1:13:10 HP-34C Keystroke / RPN - - 1:06:12 HP-38E Keystroke / RPN - - 1:03:50 HP-11C Keystroke / RPN - - 58:20 TI-58C Keystroke - - 56:15 SR-52 Keystroke - - 55:52 HP-12C Keystroke / RPN - - 53:47 FX-201P Keystroke / Fortran Style - - 50:00 HP-65 Keystroke / RPN / Chopping Block - - 47:57 HP-67 Keystroke / RPN - - 46:20 PC-1211 BASIC - - 43:40 TI-59 Keystroke - - 42:33 PC-1212 BASIC - - 42:00 HP-29C Keystroke / RPN - - 41:23 TI-67 Formula / Chopping Block - - 40:50 TI-66 Keystroke / Turbo x2.7 - - 40:00 HP-25 Keystroke / RPN / Chopping Block - - 26:42 DM-41 Keystroke / RPN / Slow Mode - - 25:16 HP-15C Keystroke / RPN / Turbo x3.1 - - 24:49 fx-3650P Formula / Chopping Block - - 24:33 TI-59 Keystroke / Fast Mode x1.8 - - 24:28 DM-41X Keystroke / RPN / Slow Mode - - 23:24 HP-12C Platinum Keystroke / RPN / Ver.2 - - 20:00 FX-4500PA Formula / Array - - 18:40 PC-1300S Keystroke / Mini Fortran - - 18:25 TI-88 Keystroke - - 17:58 HP-41CL Keystroke / RPN / TurboX Mode x1.0 - - 17:56 HP-41CX Keystroke / RPN - - 17:50 EL-9000 Formula / Vector - - 17:42 HP-41CV Keystroke / RPN - - 17:40 FX-4500P Formula / Array - - 17:35 HP-41C Keystroke / RPN - - 17:04 HP-41CY Keystroke / RPN / Turbo Off - - 16:13 PX-5600PV Formula / Array - - 15:52 DM-41 Keystroke / RPN - - 15:10 FX-702P BASIC - - 14:36 DM-41L Keystroke / RPN - - 14:19 HP-38G Formula / List - - 14:10 SRP-400G Formula / List - - 12:42 PC-1200 Keystroke / Chopping Block - - 12:12 HP-42S Keystroke / RPN / Ver.C - - 11:55 FX-750P BASIC - - 11:34 HP-42S Keystroke / RPN / Ver.A - - 10:49 PB-700 BASIC - - 10:41 MK-85 BASIC - - 10:40 SRP-325G Formula / Array - - 10:20 PB-770 BASIC - - 10:18 TI-80 Formula / List - - 10:18 FX-502P Keystroke - - 9:50 EL-5030 Formula / Vector - - 9:47 SF-9350 Formula / Array / Scientific ROM Card ES-650 - - 9:28 HP-41CL Keystroke / RPN / Turbo2 Mode x1.9 - - 9:08 VX-4 C / Unstructured / Bytecode - - 8:52 PB-2000C C / Unstructured / Bytecode - - 8:29 PC-1250A BASIC - - 8:23 PC-1401 BASIC - - 8:22 PC-1245 BASIC - - 8:22 PC-1251 BASIC - - 8:19 PC-1402 BASIC - - 8:13 HP-41CY Keystroke / RPN / Turbo On x2.1 - - 8:00 FX-795P BASIC / DEFM Mode - - 7:45 FX-602P Keystroke - - 7:45 PC-1365 BASIC - - 7:40 PC-1360 BASIC - - 7:36 FX-790P BASIC / DEFM Mode - - 7:25 SF-R10 Formula / Array / Scientific ROM Card ES-650 - - 7:23 IHC-8000 BASIC - - 7:22 V12 Keystroke / RPN - - 7:22 CCS28956 Keystroke / RPN - - 7:21 PC-1280 BASIC - - 7:17 PC-1460 BASIC - - 7:15 AI-1000 Lisp - - 7:14 PC-1475 BASIC - - 7:14 PC-1285 BASIC - - 7:11 FN-1000 Keystroke / RPN - - 7:04 TPC-8300 BASIC / DEFINT - - 7:00 FX-730P BASIC / DEFM Mode - - 6:55 PB-110 BASIC - - 6:51 PC-1350 BASIC - - 6:49 FX-720P BASIC - - 6:42 PC-1450 BASIC - - 6:42 FX-50FH Formula / Chopping Block - - 6:38 EL-9600 Formula / List - - 6:36 FX-5200P BASIC - - 6:36 PC-1445 BASIC - - 6:35 PC-1440 BASIC - - 6:34 FX-50F+ Formula / Chopping Block - - 6:30 PB-80 BASIC - - 6:30 UC-2200 BASIC - - 6:29 MK-90 BASIC / Ver.1.0 - - 6:29 MK-90 BASIC / Ver.2.0 - - 6:25 HP-17BII+ Equation Solver - - 6:24 PC-1262 BASIC - - 6:19 PC-1403 BASIC - - 6:08 PB-220 BASIC - - 6:07 HP-42S Keystroke / RPN / Ver.C / Turbo x2.0 - - 6:02 HP-42S Keystroke / RPN / Ver.C / Fast Mode x2.0 - - 5:59 TI-74 BASICALC Learn Pascal ROM Module / Interpreter - - 5:56 FX-4000P Formula / Array - - 5:49 FX-3650PII Formula / Chopping Block - - 5:49 FX-50FHII Formula / Chopping Block - - 5:48 HP-42S Keystroke / RPN / Ver.A / Turbo x2.0 - - 5:47 SRP-320G Formula / Array - - 5:47 828 Formula / Array / HW SC-828 - - 5:45 PB-120 BASIC - - 5:38 HP-32SII Keystroke / RPN / Ver.1 - - 5:35 PC-1440 CAP-X Assembly / COMP-X Simulator - - 5:12 HP-20S Keystroke / Chopping Block - - 5:05 FX-702P BASIC / Turbo x3.0 - - 5:04 HP-39GS Formula / List - - 5:03 HP-40GS Formula / List - - 5:03 HP-32SII Keystroke / RPN / Ver.0 - - 4:52 PB-100 BASIC - - 4:52 EL-9400 Formula / List - - 4:48 EL-9300 Formula / Vector - - 4:41 FX-700P BASIC - - 4:30 HP-71B Keystroke / RPN / HP-41 Translator ROM Module HP-82490A - - 4:27 EL-5120 Formula / Chopping Block - - 4:24 PC-2001 BASIC - - 4:22 HP-32S Keystroke / RPN - - 4:17 HP-35S Keystroke / RPN - - 4:15 TI-86 Formula / List - - 4:08 HP-41CL Keystroke / RPN / Turbo5 Mode x4.3 - - 4:05 PB-2000C C / Unstructured / Bytecode / Turbo x2.2 - - 3:59 TI-74 BASICALC Learn Pascal ROM Module / Interpreter / Turbo x1.5 - - 3:59 PC-1270 BASIC - - 3:57 PC-1402 BASIC / Turbo x2.1 - - 3:55 VX-1 BASIC - - 3:53 TI-95 PROCALC Keystroke - - 3:52 FX-840P BASIC - - 3:52 FX-860PVC CASL Assembly / COMET Simulator - - 3:51 FX-860PVC BASIC - - 3:51 FX-880P BASIC - - 3:50 FX-502P Keystroke / Turbo x2.7 - - 3:47 FX-5800P Formula / Array - - 3:42 PC-1360 BASIC / Turbo x2.1 - - 3:40 PC-1445 CASL Assembly / COMET Simulator - - 3:39 FX-7700GH Formula / Array - - 3:32 PB-1000 BASIC - - 3:32 PB-1000C BASIC - - 3:30 HP-42S Keystroke / RPN / Ver.A / Turbo + Fast Mode x3.3 - - 3:29 HP-17BII Equation Solver - - 3:28 HP-42S Keystroke / RPN / Ver.C / Turbo + Fast Mode x3.5 - - 3:26 PC-1500A BASIC / @-Array - - 3:20 AI-1000 Lisp / Turbo x2.2 - - 3:15 PB-2000C BASIC ROM Card OM-53B - - 3:15 DM-15 Keystroke / RPN - - 3:14 FP-200 BASIC - - 3:14 VX-3 BASIC - - 3:11 FX-870P BASIC - - 3:11 PC-1100 BASIC - - 3:08 VX-4 BASIC - - 3:00 PC-1150 BASIC - - 2:56 DM-41X Forth-41 ROM Module / USB connected - - 2:52 PC-1430 BASIC - - 2:50 PB-2000C Prolog ROM Card OM-51P - - 2:49 HP-35S Keystroke / RPN / Turbo x1.5 - - 2:45 PC-1248 BASIC - - 2:45 VX-3 CASL Assembly / COMET Simulator - - 2:43 VX-4 CASL Assembly / COMET Simulator - - 2:43 FX-870P CASL Assembly / COMET Simulator - - 2:43 TI-92+ Formula / List / Ver.2.04 - - 2:41 TI-83+ Formula / List - - 2:40 FX-603P Keystroke - - 2:40 PB-1000C CASL Assembly / COMET Simulator - - 2:37 PB-2000C CASL Assembly ROM Card OM-54A / COMET Simulator - - 2:37 FX-730P BASIC / DEFM Mode / Turbo x2.7 - - 2:37 PC-1246 BASIC - - 2:37 PC-1247 BASIC - - 2:36 TI-73 Formula / List - - 2:35 TI-82 Formula / List - - 2:35 TI-95 PROCALC Keystroke / Turbo x1.5 - - 2:33 HP-71B BASIC / Ver.1BBBB - - 2:33 HP-71B BASIC / Ver.2CDCC - - 2:32 TI-89 Formula / List / HW.1 / Ver.2.09 - - 2:31 FX-7700GB Formula / Array - - 2:29 CC-40 BASIC - - 2:27 FX-8700G Formula / Array - - 2:27 HP-28C UserRPL - - 2:26 HP-41CL Keystroke / RPN / Turbo10 Mode x7.4 - - 2:23 FX-602P Keystroke / Turbo x3.3 - - 2:21 DM-12 Keystroke / RPN - - 2:18 TI-74 BASICALC BASIC - - 2:16 FX-4850P Formula / Array - - 2:15 FX-4800P Formula / Array - - 2:15 FX-6300G Formula / Array - - 2:11 HP-33S Keystroke / RPN - - 2:10 FX-4000P Formula / Array / Turbo x2.7 - - 2:07 FX-8000G Formula / Array - - 2:06 FX-8500G Formula / Array - - 2:06 FX-6000G Formula / Array - - 2:05 AFX-2.0+ Formula / List - - 2:05 PB-770 BASIC / Turbo x5.0 - - 2:01 FX-6500G Formula / Array - - 2:00 FX-7000G Formula / Array - - 2:00 MK-85 BASIC / Fast Mode x5.3 - - 1:59 FX-7400G+ GY Formula / List - - 1:59 FX-7450G Formula / List - - 1:57 FX-880P BASIC / Turbo x2.0 (1.228->2.456 MHz) - - 1:57 FX-7400G+ Formula / List - - 1:57 FX-7200G Formula / Array - - 1:56 FX-840P BASIC / Turbo x2.0 (1.228->2.456 MHz) - - 1:54 DM-41X Keystroke / RPN - - 1:53 TI-85 Formula / List / Ver.10.0 - - 1:51 FX-7000GB Formula / Array - - 1:49 FX-7000GA Formula / Array - - 1:49 OH-7000G Formula / Array - - 1:48 TI-89 Formula / List / HW.2 - - 1:47 PC-1500A BASIC / @-Array / Turbo x1.9 - - 1:46 FX-9750G Formula / List - - 1:45 FX-700P BASIC / Turbo x2.7 - - 1:45 RM-9850G Formula / List - - 1:45 CFX-9950GB+ Formula / List - - 1:44 TI-89 Titanium Formula / List / HW.3 - - 1:44 TI-89 Titanium Formula / List / HW.4 - - 1:44 CFX-9850GB+ Formula / List - - 1:44 CFX-9970G Formula / List - - 1:43 FX-9750G+ Formula / List - - 1:40 HP-28S UserRPL - - 1:39 PC-1600 BASIC / @-Array - - 1:39 FC-1000 Formula / Cash Flow List - - 1:37 PB-1000 BASIC / Turbo x2.2 - - 1:35 HP-41CL Keystroke / RPN / Turbo20 Mode x11.3 - - 1:32 TI-74 BASICALC BASIC / Turbo x1.5 - - 1:32 828 Formula / Array / HW SC-1376 - - 1:31 ATC-139 Formula / Array / HW SC-1418 - - 1:30 FX-7500G Formula / Array - - 1:30 PB-2000C BASIC ROM Card OM-53B / Turbo x2.2 - - 1:29 TI-84+ Pocket SE Formula / List / Ver.2.55MP - - 1:29 Nspire Formula / List / TI-84+ Keypad / OS 3.0 - - 1:29 RL-H1800 Snap BASIC ROM Module / DEFINT - - 1:26 PC-1248 BASIC / Turbo x1.9 (1.024->2.0 MHz) - - 1:24 PC-G801 BASIC - - 1:23 PB-100 BASIC / Turbo x3.5 - - 1:22 IQ-7100 BASIC ROM Card IQ-870 - - 1:22 IQ-7720 BASIC ROM Card IQ-770 - - 1:21 PC-E220 BASIC - - 1:20 IQ-7520 BASIC / Scientific ROM Card IQ-8B03 - - 1:20 FX-603P Keystroke / Turbo x2.0 (1.228->2.456 MHz) - - 1:19 FX-790P CAP-X Assembly / COMP-X Simulator - - 1:19 PC-E500S BASIC - - 1:19 HP-48SX UserRPL / Ver.E - - 1:18 PC-1490UII BASIC - - 1:18 PB-2000C Prolog ROM Card OM-51P / Turbo x2.2 - - 1:17 HP-48S UserRPL / Ver.J - - 1:14 CFX-9800G Formula / Array - - 1:14 HP-19BII Equation Solver - - 1:13 Nspire Formula / List / TI-84+ Keypad / OS 1.2 - - 1:12 PB-2000C CASL Assembly ROM Card OM-54A / COMET Simulator / Turbo x2.2 - - 1:10 Nspire Formula / List / TI-84+ Keypad / OS 1.3 - - 1:08 TI-84+ Formula / List - - 1:08 FX-7300G Formula / Array - - 1:08 SEC-103 Formula / Chopping Block - - 1:05 HP-41CL Keystroke / RPN / Turbo50 Mode x16.6 - - 1:04 PC-G850V CASL Assembly / COMET Simulator - - 1:04 PC-G850VS CASL Assembly / COMET Simulator - - 1:02 TI-83+ SE Formula / List - - 1:02 FX-9700GH Formula / Array - - 1:00 FX-9700GE Formula / Array - - 59.5 IQ-8500 BASIC / Scientific ROM Card IQ-8B03 - - 58.7 FX-9860GII-2 Formula / Matrix / OS 2.0 - - 58.7 RL-H1800 Microsoft BASIC ROM Module - - 58.0 Z-1 BASIC - - 57.5 IQ-9200 BASIC / Scientific ROM Card IQ-8B03 - - 57.0 Model 100 BASIC / DEFINT - - 56.9 Z-1GRA BASIC - - 56.8 FX-890P BASIC - - 56.0 FX-840P CASL Assembly / COMET Simulator - - 55.0 FX-7000G Formula / Array / Turbo x2.2 (0.91->2.0 MHz) - - 55.0 HP-71B Forth / Forth/Assembler ROM Module HP-82441A / Ver.1A - - 54.5 HP-48GX UserRPL / Ver.M - - 54.0 X-07 BASIC / DEFINT - - 54.0 HP-49G UserRPL - - 54.0 CFX-9850GB+ Formula / List / Turbo x1.9 (4.3->8.0 MHz) - - 53.1 TI-89 Formula / List / HW.2 / Turbo x2.0 - - 53.0 IQ-8900 BASIC / Scientific ROM Card IQ-8B03 - - 49.6 TI-81 Formula / Statistic List / Ver.1.6K - - 49.5 HP-28S UserRPL / Fast Mode x2.0 (1.0->2.0 MHz) - - 46.2 HP-75C BASIC / Fast Integer - - 45.1 HP-71B Forth / HP-41 Translator ROM Module HP-82490A / Ver.2A - - 45.0 FX-9750GII-2 Formula / Matrix / OS 2.0 / USB connected - - 44.3 FX-9860GII-2 Formula / Matrix / OS 2.0 / USB connected - - 44.0 HP-75D BASIC / Fast Integer - - 43.8 FX-7000GA Formula / Array / Turbo x2.5 (1.6->4.0 MHz) - - 42.7 EL-9900 Formula / List - - 42.5 FX-6300G Formula / Array / Turbo x3.2 (0.8->2.6 MHz) - - 39.7 FX-CG20 Formula / Matrix / OS 2.0 - - 38.3 PC-E500S BASIC / Turbo x2.1 - - 38.3 PC-G850V BASIC - - 37.7 PC-G850VS BASIC - - 37.2 PC-G850S BASIC - - 36.2 PC-G850 BASIC - - 35.9 PC-E220 BASIC / Turbo x2.3 - - 35.0 DM-41X Keystroke / RPN / USB connected - - 34.2 TI-85 Formula / List / Ver.10.0 / Turbo x3.3 (6.0->20 MHz) - - 32.3 FX-9860GII Formula / Matrix / OS 2.0 - - 31.7 PB-1000 PB-Forth - - 30.4 FX-9860G SD Formula / Matrix / OS 2.0 - - 30.0 NC-200 BASIC / DEFINT - - 30.0 FC-1000 Formula / Cash Flow List / Turbo x3.3 (2.0->6.6 MHz) - - 29.0 FX-9750GII Formula / Matrix / OS 2.0 - - 28.7 FX-9860G Slim Formula / Matrix / OS 2.0 - - 28.0 HP-15C LE Keystroke / RPN - - 28.0 FX-840P CASL Assembly / COMET Simulator / Turbo x2.0 (1.228->2.456 MHz) - - 27.3 FX-7500G Formula / Array / Turbo x3.3 (2.0->6.6 MHz) - - 27.0 FX-CG50 Formula / Matrix / OS 3.30 - - 25.5 HP-15C CE Keystroke / RPN - - 23.5 Z-1GRA CASL Assembly / COMET Simulator - - 23.5 FX-890P CASL Assembly / COMET Simulator - - 23.5 RL-H1800 Snap Forth ROM Module - - 22.6 HP-49G+ UserRPL - - 22.6 HP-50G UserRPL - - 21.3 HP-12C ARM Keystroke / RPN / Ver.1 - - 19.5 TI-81 Formula / Statistic List / Ver.1.6K / Turbo x2.5 (2.0->5.0MHz) - - 19.2 HP-75C Forth - - 18.7 HP-200LX GW-BASIC 3.22 / DEFINT - - 17.5 FX-9860GII Formula / Matrix / OS 2.0 / Fast Mode x1.8 (29.5->118 MHz) - - 17.3 FX-9860G SD Formula / Matrix / OS 1.0 - - 17.0 FX-9860G Slim Formula / Matrix / OS 1.0 - - 16.5 FX-9860G SD Formula / Matrix / OS 2.0 / Fast Mode x1.8 (29.5->118 MHz) - - 16.4 HP-48GX HRAST BASIC - - 16.0 HP-48SX SysRPL - - 16.0 PC-G850V CASL Assembly / COMET Simulator / Turbo x4.0 - - 15.3 MK-161 Keystroke / RPN / Ver.1.03 - - 15.1 HP-48S SysRPL - - 14.9 MK-152 Keystroke / RPN / Ver.1.15 - - 14.7 MK-152 Keystroke / RPN / Ver.1.05 - - 14.6 PB-1000 PB-Forth / Turbo x2.2 - - 14.5 FX-9750GII Formula / Matrix / OS 2.0 / Fast Mode x2.0 (29.5->118 MHz / reduced wait) - - 14.0 FX-CG20 Formula / Matrix / OS 2.0 / Fast Mode x2.8 (58->236 MHz / reduced wait) - - 12.9 Z-1GRA C / Unstructured / Bytecode - - 12.9 FX-890P C / Unstructured / Bytecode - - 12.8 FX-9860G SD Formula / Matrix / OS 2.0 / Fast Mode x2.4 (29.5->118 MHz / reduced wait) - - 11.0 HP-41CX Mcode / NUT @ 0.36 MHz - - 10.8 HP-41CL Mcode / TurboX Mode x1.0 - - 10.5 FX-9860GII-2 Formula / Matrix / OS 2.0 / Fast Mode x5.6 (29.5->236 MHz / reduced wait) - - 10.2 HP-48GX SysRPL - - 9.82 Organiser II XP OPL - - 9.43 PC-G850V BASIC / Turbo x4.0 - - 9.31 HP-30B Keystroke / RPN - - 9.07 FX-9860G SD Formula / Matrix / OS 1.0 / Fast Mode x1.9 (29.5->118 MHz) - - 8.80 FX-9860G Slim Formula / Matrix / OS 1.0 / Fast Mode x1.9 (29.5->118 MHz) - - 8.30 Nspire CAS Formula / List / OS 1.2 - - 7.50 Nspire Formula / List / OS 1.2 - - 7.20 HP-49G+ HRAST BASIC - - 7.20 FX-9860G SD Formula / Matrix / OS 1.0 / Fast Mode x2.4 (29.5->118 MHz / reduced wait) - - 7.00 HP-200LX UBASIC 8.74 / DEFINT - - 6.80 WP-34S Keystroke / RPN / Real Mode / Ver.3.3 - - 6.68 TG-202 Formula / Array - - 6.10 WP-34S Keystroke / RPN / Integer Mode / Ver.3.3 - - 5.40 HP-41CL Mcode / Turbo2 Mode x2.0 - - 5.20 FX-9860GII-2 Formula / Matrix / OS 2.0 / USB connected / Fast Mode x8.5 (29.5->236 MHz / reduced wait) - - 4.28 PC-G850V C / Unstructured / Bytecode - - 4.25 PC-G850VS C / Unstructured / Bytecode - - 4.20 Nspire CAS Formula / List / OS 1.3 - - 4.18 DM-42 Keystroke / RPN - - 3.90 Nspire Formula / List / OS 1.3 - - 3.47 PC-E500S Forth500 2.0 - - 3.37 HP-48GX HP48XGCC / Structured / Cross Compiler - - 3.30 HP-200LX QBASIC 1.1 / DEFINT / Bytecode - - 2.92 Series 3a OPL - - 2.50 Nspire CX II CAS Formula / List / OS 5.1 - - 2.49 HP-Prime PrimeFORTH / G2 - - 2.45 HP-49G HP Pascal Studio 2.1 / Cross Compiler - - 2.42 HP-50G Jonesforth / HPGCC 2.0 compiled - - 2.32 HP-50G SysRPL - - 2.30 Nspire CAS Formula / List / OS 3.0 - - 2.30 WP-34S Keystroke / RPN / Real Mode / Ver.2 - - 2.22 HP-200LX Power BASIC 3.2 / DEFINT / Native Compiler - - 2.17 HP-41CL Mcode / Turbo5 Mode x5.0 - - 2.13 DM-42 DB48X RPL - - 2.10 Nspire Formula / List / OS 3.0 - - 2.10 WP-34S Keystroke / RPN / Integer Mode / Ver.2 - - 1.82 HP-200LX Turbo BASIC 1.1 / DEFINT / Native Compiler - - 1.68 PC-E500S Forth500 2.0 / Turbo x2.1 - - 1.57 DM-42 Keystroke / RPN / USB connected - - 1.32 HP-39GII Formula / List - - 1.27 PB-2000C DL-Pascal ROM Card / Native Compiler - - 1.22 MK-85 Assembly / KA1013BM1 @ 0.36 MHz - - 1.17 HP-200LX Microsoft Fortran 3.20 - - 1.10 ClassPad 300+ CPLua 0.8 - - 1.09 HP-41CL Mcode / Turbo10 Mode x9.9 - - 1.07 PC-G850V C / Unstructured / Bytecode / Turbo x4.0 - - 1.06 PC-1402 Assembly / SC61860 @ 0.576 MHz - - 1.02 HP-200LX Fortran 77 / OPEN WATCOM 1.9 - - 0.994 HP-200LX Fortran 77 / BC-FORTRAN77 1.3b - - 0.983 Series 3mx OPL - - 0.900 HP-200LX QuickBASIC 4.5 / DEFINT / Bytecode Mode - - 0.895 HP-50G HP Pascal Studio 2.1 / Cross Compiler - - 0.865 PC-G850V Forth850 - - 0.857 FX-9750GII-2 C.BASIC 2.38 / Integer Mode - - 0.819 HP-200LX Microsoft Fortran 3.31 - - 0.796 PC-1360 Assembly / SC61860 @ 0.768 MHz - - 0.774 FX-9860G SD C.BASIC 2.37 / Integer Mode - - 0.770 ClassPad 300+ CPLua 0.8 / Fast Mode x1.4 (29.5->59 MHz) - - 0.724 HP-200LX Microsoft Fortran 5.10 - - 0.707 TI-84+ CE Python CircuitPython - - 0.673 FX-9860GII-2 C.BASIC 2.37 / Integer Mode - - 0.622 HP-50G HP Pascal Studio 2.1 / Cross Compiler / Fast Mode x1.5 (75->203 MHz) - - 0.586 PB-2000C DL-Pascal ROM Card / Native Compiler / Turbo x2.2 - - 0.550 HP-41CL Mcode / Turbo20 Mode x19.6 - - 0.528 DM-42 DB48X RPL / USB connected - - 0.474 HP-Prime Formula / List / G1 / HW.C - - 0.406 FX-9860G SD C.BASIC 2.37 / Integer Mode / Fast Mode x1.9 (29.5->118 MHz) - - 0.385 PC-1360 Assembly / SC61860 @ 1.6 MHz / Turbo x2.1 - - 0.344 PB-1000 Assembly / HD61700 @ 0.91 MHz - - 0.336 HP-48GX Assembly / Saturn @ 3.7-4.0 MHz - - 0.321 FX-8000G Assembly / µPD1007 @ 0.91 MHz - - 0.312 PB-2000C Assembly / HD61700 @ 0.91 MHz - - 0.305 PC-1500A Assembly / LH5801 @ 1.3 MHz - - 0.278 FX-9860G SD C.BASIC 2.37 / Integer Mode / Fast Mode x2.8 (29.5->118 MHz / reduced wait) - - 0.273 FX-CG50 C.BASIC 1.40 / Integer Mode - - 0.270 DM-41X DM-Forth / USB connected - - 0.245 SF-9350 Assembly / HD62076 @ 2.01 MHz / Long Memory Access Mode - - 0.245 SF-9700 Assembly / µPD3055 @ 2.01 MHz / Long Memory Access Mode - - 0.243 HP-50G HPLua 0.4 - - 0.240 Series 5mx OPL - - 0.230 HP-41CL Mcode / Turbo50 Mode x47.0 - - 0.220 MK-85 Assembly / KA1013BM1 @ 2.0 MHz / Fast Mode x5.5 - - 0.196 FX-7500G Assembly / µPD1037 @ 2.0 MHz - - 0.195 SF-R20 Assembly / HD62076 @ 2.01 MHz / Short Memory Access Mode - - 0.176 MK-90 Assembly / K588 @ -.- MHz / Asynchronous Logic - - 0.161 N0110 MicroPython - - 0.159 FX-CG50 C.BASIC 1.40 / Integer Mode / Fast Mode x1.7 (116->189 MHz / reduced wait) - - 0.158 HP-Prime Formula / List / G2 / HW.D - - 0.158 PC-1500A Assembly / LH5801 @ 2.5 MHz / Turbo x1.9 - - 0.158 PB-1000 Assembly / HD61700 @ 2.0 MHz / Turbo x2.2 - - 0.144 PB-2000C Assembly / HD61700 @ 2.0 MHz / Turbo x2.2 - - 0.134 N0100 MicroPython - - 0.130 FX-CG50 MicroPython / OS 3.20 - - 0.122 FX-9750GII-2 C.BASIC 2.38 / Integer Mode / Fast Mode x7.0 (29.5->236 MHz / reduced wait) - - 0.120 TI-74 BASICALC Assembly / TMS70C46 @ 2.0 MHz - - 0.120 TI-95 PROCALC Assembly / TMS70C46 @ 2.0 MHz - - 0.114 PC-E500S Assembly / SC62015 @ 2.3 MHz - - 0.106 HP-50G newRPL - - 0.103 HP-200LX Turbo Pascal 5.5 / Native Compiler - - 0.100 RL-H1800 Assembly / 6502 @ 1.0 MHz - - 0.0975 HP-200LX QuickBASIC 4.5 / DEFINT / Native Compiler Mode - - 0.0950 CC-40 Assembly / TMS70C20 @ 2.5 MHz - - 0.0937 PC-1600 Assembly / Z80 @ 3.58 MHz - - 0.0907 PC-E220 Assembly / Z80 @ 3.58 MHz - - 0.0886 HP-200LX Turbo C 2.01 / Unstructured / Native Compiler - - 0.0800 TI-74 BASICALC Assembly / TMS70C46 @ 3.0 MHz / Turbo x1.5 - - 0.0800 TI-95 PROCALC Assembly / TMS70C46 @ 3.0 MHz / Turbo x1.5 - - 0.0683 Z-1GRA Assembly / 80L188EB @ 3.68 MHz - - 0.0683 FX-890P Assembly / 80L188EB @ 3.68 MHz - - 0.0593 FX-7500G Assembly / µPD1037 @ 6.6 MHz / Turbo x3.3 - - 0.0552 PC-E500S Assembly / SC62015 @ 4.8 MHz / Turbo x2.1 - - 0.0550 N0120 MicroPython - - 0.0504 Nspire CAS Lua / OS 3.1 - - 0.0470 HP-Prime MicroPython / G1 - - 0.0445 Nspire CX CAS Lua / OS 3.1 - - 0.0400 PC-E220 Assembly / Z80 @ 8.0 MHz / Turbo x2.3 - - 0.0359 PC-G850S Assembly / Z80 @ 8.0 MHz - - 0.0354 PC-G850V Assembly / Z80 @ 8.0 MHz - - 0.0353 PC-G850VS Assembly / Z80 @ 8.0 MHz - - 0.0295 HP-200LX Assembly / 80186 @ 7.91 MHz - - 0.0255 TI-89 TIGCC 4.1.2 / Structured / Cross Compiler / HW.2 - - 0.0188 TI-83+ SE Assembly / Z80 @ 15 MHz - - 0.0183 TI-89 Assembly / 68000 @ 12 MHz / HW.2 - - 0.0130 HP-Prime MicroPython / G2 - - 0.0120 New 2DS XL SmileBASIC 3.6.0 / DEFINT - - 0.00900 TI-89 Assembly / 68000 @ 24 MHz / HW.2 / Turbo x2.0 - - 0.00885 PC-G850V Assembly / Z80 @ 32 MHz / Turbo x4.0 - - 0.00613 HP-50G HPGCC 3.0 / RegVars / Cross Compiler / Slow Mode x12.7 - - 0.00524 HP-50G Assembly / ARM9 @ 6.0 MHz / Slow Mode x13 (75->6.0 MHz) - - 0.00248 FX-9860G SD Casio C SDK 1.0 / Unstructured / Cross Compiler - - 0.00123 FX-9860G SD Assembly / SH-3 @ 29.5 MHz - - 0.00123 FX-9860GII Assembly / SH-3 @ 29.5 MHz - - 0.000691 FX-9860G SD Casio C SDK 1.0 / Unstructured / Cross Compiler / Fast Mode x3.6 (29.5->118 MHz) - - 0.000484 HP-50G HPGCC 3.0 / RegVars / Cross Compiler - - 0.000404 HP-50G Assembly / ARM9 @ 75 MHz - - 0.000315 FX-9860G SD Assembly / SH-3 @ 118 MHz / Fast Mode x3.9 (29.5->118 MHz) - - 0.000192 HP-50G HPGCC 3.0 / RegVars / Cross Compiler / Fast Mode x2.5 (75->192 MHz) - - 0.000150 HP-50G Assembly / ARM9 @ 192 MHz / Fast Mode x2.7 (75->192 MHz)

(480)

==========================================================================================

Simple test used in case of incapability of executing n-queens (loops/min) ---------------------------------------------------------------------------- - - 30 TI-62 LBL 0 RCL 1 + 1 = STO 1 RCL 1 x>t GTO 0 - - 48 P-50 RCL + 1 = STO RCL SKP GOTO 00 R/S - - 55 TI-65 LBL A RCL 1 + 1 = STO 1 RCL 1 x>m 0 GTO A - - 57 TI-66 LBL A RCL 01 + 1 = STO 01 RCL 01 x>=t A (As reference) - - 58 TI-57 II LBL 0 RCL 1 + 1 = STO 1 RCL 1 x>=t GTO 0 - - 80 TI-57 LBL 0 RCL 1 + 1 = STO 1 RCL 1 x>=t GTO 0 - - 85 PR-56D-NC RCL 1 + 1 = STO 1 RCL 1 SKIP GOTO 00 - - 95 SRP-60 RCL 1 + 1 = STO 1 RCL 1 x>0 -9 - - 97 PR-100 MR 1 + 1 = M 1 MR 1 SKIP GOTO 00 - - 150 Enterprise RCL 1 + 1 = STO 1 RCL 1 GIN 01 - - 152 SR-56 RCL 1 + 1 = STO 1 RCL 1 x>=t 00 - - 159 HP-33C RCL 1 1 + STO 1 RCL 1 x>0 GTO 01 - - 330 Cambridge RCL + 1 = STO RCL GIN 00 - - 355 FX-180P Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 360 FX-3600P Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 360 FX-50F Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 365 FX-3500P Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 380 FX-180PA Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 390 FX-3400P Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 450 FX-190 MR + 1 = Min MR x>0 - - 635 SRP-350 Lbl 0: A=A+1 IF(A<0)THEN{} GOTO 0 (Buggy GOTO) - - 855 FX-3800P Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 885 FX-200P Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 1050 EL-566 \-> A+1=>A A>0=Y=>[<-/] - - 1150 SR-12PR RCL 1 + 1 = STO 1 RCL 1 x>0 -9 - - 1160 SRP-175 RCL 1 + 1 = STO 1 RCL 1 x>0 -9 - - 1170 F-800P RCL 1 + 1 = STO 1 RCL 1 x>0 -9 - - 1190 EL-512H \-> A+1=>A A>0=Y=>[<-/] - - 1240 AC-692 RCL 1 + 1 = STO 1 RCL 1 x>0 -9 - - 1260 EL-5020 A+1=>A A x>M - - 1260 FX-3600PV Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 1300 FX-360MT Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 1540 FX-180PV Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 1720 F-700 Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 1720 SC-105 Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 1900 EL-5050 \-> A+1=>A A>0=Y=>[<-/] - - 2050 FC-200 Lbl 0 A+1->A A>0=>Goto 0 - - 2710 SC-3610 Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 2740 AC-3270 Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 3340 FX-3900P Lbl 0 A+1->A 0<A=>Goto 0 - - 3810 FX-180P+ Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 3820 FX-3900PV Kout 1 + 1 = Kin 1 Kout 1 x>0 - - 3900 EL-566E \-> A+1=>A A>0=Y=>[<-/] - - 7810 EL-5250 LABEL 0 A=A+1 IF A>0 GOTO 0 - - 15450 SC-185 Lbl 0 A+1->A A>0=>Goto 0 (Ver.2)

(45)

==========================================================================================

CASIO ------- AI-1000 AFX-2.0+ CFX-9800G CFX-9850GB+ CFX-9950GB+ CFX-9970G ClassPad 300+ FC-200 FC-1000 FP-200 FX-50F FX-50F+ FX-50FH FX-50FHII FX-180P FX-180PA FX-180PV FX-180P+ FX-190 FX-200P FX-201P FX-360MT FX-502P FX-602P FX-603P FX-700P FX-702P FX-720P FX-730P FX-750P FX-790P FX-795P FX-840P FX-860PVC FX-870P FX-880P FX-890P FX-3400P FX-3500P FX-3600P FX-3600PV FX-3650P FX-3650PII FX-3800P FX-3900P FX-3900PV FX-4000P FX-4500P FX-4500PA FX-4800P FX-4850P FX-5200P FX-5800P FX-6000G FX-6300G FX-6500G FX-7000G FX-7000GA FX-7000GB FX-7200G FX-7300G FX-7400G+ FX-7400G+ GY FX-7450G FX-7500G FX-7700GB FX-7700GH FX-8000G FX-8500G FX-8700G FX-9700GE FX-9700GH FX-9750G FX-9750G+ FX-9750GII FX-9750GII-2 FX-9860G SD FX-9860G Slim FX-9860GII FX-9860GII-2 FX-CG20 FX-CG50 OH-7000G PB-80 PB-100 PB-110 PB-120 PB-220 PB-700 PB-770 PB-1000 PB-1000C PB-2000C RM-9850G SF-9350 SF-9700 SF-R10 SF-R20 VX-1 VX-3 VX-4 Z-1 Z-1GRA

SHARP ------- EL-512H EL-566 EL-566E EL-5020 EL-5030 EL-5050 EL-5120 EL-5250 EL-9000 EL-9300 EL-9400 EL-9600 EL-9900 IQ-7100 IQ-7520 IQ-7720 IQ-8500 IQ-8900 IQ-9200 PC-1100 PC-1150 PC-1200 PC-1211 PC-1212 PC-1245 PC-1246 PC-1247 PC-1248 PC-1250A PC-1251 PC-1262 PC-1270 PC-1280 PC-1285 PC-1300S PC-1350 PC-1360 PC-1365 PC-1401 PC-1402 PC-1403 PC-1430 PC-1440 PC-1445 PC-1450 PC-1460 PC-1475 PC-1490UII PC-1500A PC-1600 PC-E220 PC-E500S PC-G801 PC-G850 PC-G850S PC-G850V PC-G850VS

HEWLETT-PACKARD ----------------- HP-11C HP-12C HP-12C Platinum HP-12C ARM HP-15C HP-15C CE HP-15C LE HP-16C HP-17BII HP-17BII+ HP-19BII HP-20S HP-25 HP-28C HP-28S HP-29C HP-30B HP-32S HP-32SII HP-33C HP-33S HP-34C HP-35S HP-38E HP-38G HP-39GII HP-39GS HP-40GS HP-41C HP-41CV HP-41CX HP-41CY HP-41CL HP-42S HP-48S HP-48SX HP-48GX HP-49G HP-49G+ HP-50G HP-65 HP-67 HP-71B HP-75C HP-75D HP-200LX HP-Prime WP-34S

TEXAS INSTRUMENTS ------------------- CC-40 SR-52 SR-56 TI-57 TI-57 II TI-58C TI-59 TI-62 TI-65 TI-66 TI-67 TI-73 TI-74 BASICALC TI-80 TI-81 TI-82 TI-83+ TI-83+ SE TI-84+ TI-84+ Pocket SE TI-84+ CE Python TI-85 TI-86 TI-88 TI-89 TI-89 Titanium TI-92+ TI-95 PROCALC TI-Nspire TI-Nspire CAS TI-Nspire CX CAS TI-Nspire CX II CAS

CITIZEN --------- SRP-60 SRP-175 SRP-320G SRP-325G SRP-350 SRP-400G

ELEKTRONIKA ------------- MK-52 MK-61 MK-85 MK-90 MK-152 MK-161

SwissMicros ------------- DM-12 DM-15 DM-41 DM-41L DM-41X DM-42

PSION ------- Organiser I Organiser II XP Series 3a Series 3mx Series 5mx

CANON ------- F-700 F-800P X-07

NumWorks ---------- N0100 N0110 N0120

TRULY ------- SC-105 SC-185 TG-202

AURORA -------- AC-692 FN-1000

COMMODORE ----------- P-50 PR-100

DURABRAND ----------- 828 (SC-828) 828 (SC-1376)

PRIVILEG ---------- PR-56D-NC SR-12PR

SINCLAIR ---------- Cambridge Programmable Enterprise Programmable

Amstrad --------- NC-200

ASSISTANT ----------- AC-3270

COMPUCESSORY -------------- CCS28956

CORNER OFFICE --------------- ATC-139

NEC ----- PC-2001

NINTENDO ---------- New 2DS XL

PANASONIC ----------- RL-H1800

PARS HESAB ------------ PX-5600PV

PROFF ------- SC-3610

SANCO ------- TPC-8300

SEIKO ------- UC-2200

SENCOR -------- SEC-103

TANDY TRS-80 -------------- Model 100

TOSHIBA --------- IHC-8000 Pasopia Mini

VICTOR -------- V12

==========================================================================================

BASIC -------

10 CLEAR:DEFINT A-Z (DEFINT used if faster) 20 R=8 (R>=1) 30 REM DIM A(R) (DIM used if necessary) 40 IF X=R THEN 180 (140 for all solutions) 50 X=X+1 60 A(X)=R 70 S=S+1 80 Y=X 90 Y=Y-1 100 IF Y=0 THEN 40 110 T=A(X)-A(Y) 120 IF T=0 THEN 140 130 IF X-Y<>ABS(T) THEN 90 140 A(X)=A(X)-1 150 IF A(X)<>0 THEN 70 (<>0 omitted if possible) 160 X=X-1 170 IF X<>0 THEN 140 (<>0 omitted if possible) 180 PRINT S

>RUN >876 (Nodes evaluated) >_

(15720 nodes for all solutions)

==========================================================================================

Pascal --------

procedure qbench; var a:array[0..8] of integer; r,s,t,x,y:integer; begin r:=8; s:=0; x:=0; repeat inc(x); a[x]:=r; repeat inc(s); y:=x; while y>1 do begin dec(y); t:=a[x]-a[y]; if (t=0) or (x-y=abs(t)) then begin y:=0; dec(a[x]); while a[x]=0 do begin dec(x); dec(a[x]); end; end; end; until y=1; until x=r; writeln(s); end;

(Used as pattern for languages faster with structured code or missing GOTO)

==========================================================================================

C / Unstructured ------------------

main() { int x,y,r,s,t,n,a[9]; n=1000; l5: r=8; s=0; x=0; l0: if (x==r) goto l4; a[++x]=r; l1: ++s; y=x; l2: if (!--y) goto l0; if (!(t=a[x]-a[y])) goto l3; if (x-y!=abs(t)) goto l2; l3: if (--a[x]) goto l1; if (--x) goto l3; l4: if (--n) goto l5; printf("%d",s); }

==========================================================================================

C / Structured ----------------

main() { int x,y,r,s,t,n,a[9]; for(n=1000;n>0;--n){ r=8; s=0; x=0; do{ a[++x]=r; do{ ++s; y=x; while(y>1) if (!(t=a[x]-a[--y]) || x-y==abs(t)){ y=0; while(!--a[x]) --x; } } while(y!=1); } while(x!=r); } printf("%d",s); }

(Used if faster than unstructured version)

==========================================================================================

C / RegVars -------------

main() { register int x, y, r, s, t, n, Ax; int a[9]; for (n = 100000; n > 0; --n) { r = 8; s = 0; x = 0; Ax = 0; do { a[x] = Ax; ++x; Ax = r; do { ++s; y = x; while (y > 1) { --y; if (!(t = Ax - a[y]) || x - y == abs(t)) { y = 0; while (!--Ax) { --x; Ax = a[x]; } } } } while (y != 1); } while (x != r); } return s; }

(Optimized HP-50G version)

==========================================================================================

MicroPython -------------

def nqueens(): for i in range(1000): a = [0] * 9 r = 8 s = 0 x = 0 y = 0 t = 0 while True: x += 1 a[x] = r while True: s += 1 y = x while y>1: y -= 1 t = a[x]-a[y] if t==0 or x-y==abs(t): y=0 a[x] -= 1 while a[x]==0: x -= 1 a[x] -= 1 if y==1: break; if x==r: break; print(s)

==========================================================================================

Lua -----

local a,r,s,t,x,y,n for n=1,100 do r=8 s=0 x=0 a={} repeat x=x+1 a[x]=r repeat s=s+1 y=x while y>1 do y=y-1 t=a[x]-a[y] if t<0 then t=-t end if (t==0) or (x-y==t) then y=0 a[x]=a[x]-1 while a[x]==0 do x=x-1 a[x]=a[x]-1 end end end until y==1 until x==r end print(s)

==========================================================================================

Fortran 77 ------------

INTEGER R, S, X, Y, T INTEGER A(8) R=8 S=1 X=1 A(X)=R 60 IF (X .eq. R) THEN GO TO 200 END IF X=X+1 A(X)=R 90 S=S+1 Y=X 110 Y=Y-1 IF (Y .eq. 0) THEN GO TO 60 END IF T=A(X)-A(Y) IF (T .eq. 0) THEN GO TO 160 END IF IF (X-Y .ne. ABS(T)) THEN GO TO 110 END IF 160 A(X)=A(X)-1 IF (A(X) .ne. 0) THEN GO TO 90 END IF X=X-1 190 IF (X .ne. 0) THEN GO TO 160 END IF 200 WRITE (*, '(I3)') S END

==========================================================================================

SmileBASIC ------------

CLS OPTION DEFINT M=MAINCNT N=1000 @L0 R=8 S=0 X=0 DIM A[9] @L1 IF X==R GOTO @L5 INC X A[X]=R @L2 INC S Y=X @L3 DEC Y IF Y==0 GOTO @L1 T=A[X]-A[Y] IF T==0 GOTO @L4 IF X-Y!=ABS(T) GOTO @L3 @L4 DEC A[X] IF A[X]!=0 GOTO @L2 DEC X IF X!=0 GOTO @L4 @L5 DEC N IF N>0 GOTO @L0 PRINT S PRINT FORMAT$("%5.4F sec",(MAINCNT-M)/60)

==========================================================================================

OPL -----

proc qbench: global a%(8),r%,s%,t%,x%,y%,n% n%=100 l5:: r%=8 s%=0 x%=0 l0:: if x%=r% goto l4 endif x%=x%+1 a%(x%)=r% l1:: s%=s%+1 y%=x% l2:: y%=y%-1 if y%=0 goto l0 endif t%=a%(x%)-a%(y%) if t%=0 goto l3 endif if (x%-y%)<>iabs(t%) goto l2 endif l3:: a%(x%)=a%(x%)-1 if a%(x%)<>0 goto l1 endif x%=x%-1 if x%<>0 goto l3 endif l4:: n%=n%-1 if n%<>0 goto l5 endif print s% pause 0 endp

==========================================================================================

POPL ------

R=8 S=0 X=0 A: IF X=R GOTO E X=X+1 STORE(X,R) B: S=S+1 Y=X C: Y=Y-1 IF Y=0 GOTO A T=RECALL(X)-RECALL(Y) IF T=0 GOTO D IF X-Y<>ABS(T) GOTO C D: IF STORE(X,RECALL(X)-1) GOTO B X=X-1 IF X GOTO D E: =S

==========================================================================================

MK-52 MK-61 MK-152 MK-161 --------

00. OD CX 01. 49 M9 02. 4C MC 03. 08 8 04. 4B MB 05. 69 RM9 06. 6B RMB 07. 11 - 08. 57 F X<>0 09. 52 52 10. 69 RM9 11. 01 1 12. 10 + 13. 49 M9 14. 6B RMB 15. B9 K M9 16. 6C RMC 17. 01 1 18. 10 + 19. 4C MC 20. 69 RM9 21. 4A MA 22. 6A RMA 23. 01 1 24. 11 - 25. 4A MA 26. 57 F X<>0 27. 05 05 28. D9 K RM9 29. DA K RMA 30. 11 - 31. 57 F X<>0 32. 40 40 33. 31 K ABS 34. 6A RMA 35. 10 + 36. 69 RM9 37. 11 - 38. 5E F X=0 39. 22 22 40. D9 K RM9 41. 01 1 42. 11 - 43. B9 K M9 44. 5E F X=0 45. 16 16 46. 69 RM9 47. 01 1 48. 11 - 49. 49 M9 50. 5E F X=0 51. 40 40 52. 6C RMC 53. 50 R/S

==========================================================================================

ATC-139 828 (SC-1376) ---------------

Mcl 8->R Lbl 0 X=R=>Goto 4 Isz X R->A[X] Lbl 1 Isz S X->Y Lbl 2 Dsz Y Deg Y=0=>Goto 0 A[X]-A[Y]->T T=0=>Goto 3 X-Y<>Abs T=>Goto 2 Lbl 3 A[X]-1->A[X] Ans<>0=>Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

SRP-320G 828 (SC-828) --------------

Mcl 8->R Lbl 0 X=R=>Goto 4 Isz X R->A[X] Lbl 1 Isz S X->Y Lbl 2 Y-1->Y Y=0=>Goto 0 A[X]-A[Y]->T T=0=>Goto 3 X-Y<>Abs T=>Goto 2 Lbl 3 A[X]-1->A[X] A[X]<>0=>Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

SRP-325G ----------

R=8 ; S=0 ; FOR ( X=1 ; X<=R ; X++ ) { A[X]=R ; S++ ; FOR ( Y=X-1 ; Y>=1 ; Y-- ) { T=A[X]-A[Y] ; IF ( T(X-Y-ABS(T))==0 ) THEN { FOR ( U=X ; U>=1 ; U-- ) { IF ( --A[U]>=1 ) THEN { U=0 ; S++ ; Y=X } ; ELSE { X-- } } ; IF ( X==0 ) THEN { X=R ; Y=1 } } } } ; PRINT S ; END

(GOTO not usable due to an interpreter bug)

==========================================================================================

SRP-400G ----------

R=8; Seq(0,t,1,R,1)->List1; S=0; D=0; For(X=0;X!=R;D++) X++; R->List1[X]; For(Y=0;Y!=1;D++) S++; Y=X; For(D=0;Y>1;D++) { Y--; List1[X]->P; List1[Y]->Q; T=P-Q; If (T(X-Y-Abs(T))==0) { Y=0; List1[X]->P; P--; P->List1[X]; For(D=0;P==0;D++) { X--; List1[X]->P; P--; P->List1[X]; } } } } } End

(GOTO not usable due to an interpreter bug)

==========================================================================================

EL-5120 ---------

INPUT N A=0 C=0 LABEL 1 IF A=NGOTO 6 B=1 LABEL 3 D=C E=0 LABEL 7 E=E+1 IF D=0GOTO 8 D=.1D X=10FPART D D=IPART D IF X=BGOTO 4 IF ABS (X-B)=EGOTO 4 GOTO 7 LABEL 8 C=10C+B A=A+1 GOTO 1 LABEL 6 PRINT C WAIT LABEL 4 IF B=NGOTO 5 B=B+1 GOTO 3 LABEL 5 A=A-1 IF A<0GOTO 9 C=.1C B=10FPART C C=IPART C GOTO 4 LABEL 9 PRINT"DONE END

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

EL-5030 EL-9000 ---------

8=>R DIM A[R] 1=>S 1=>X R=>A[X] \-> X+1=>X R=>A[X] \-> S+1=>S X=>Y \-> Y-1=>Y A[X]-A[Y]=>T T*(X-Y-ABS T)<>0=N=>[ 0=>Y A[X]-1=>A[X]] \-> A[X]<>0=N=>[ X-1=>X A[X]-1=>A[X] <-/] Y>1=Y=>[<-/] X>1=Y=>[Y-1=>Y] Y>=0=N=>[<-/] X<>R=Y=>[<-/] S

(Adapted version due to several restrictions)

==========================================================================================

EL-9300 ---------

R=8 dim A[R] S=0 X=0 Label 0 If X=R Goto 4 X=X+1 A[X]=R Label 1 S=S+1 Y=X Label 2 Y=Y-1 If Y=0 Goto 0 T=A[X]-A[Y] If T=0 Goto 3 If X-Y<>abs T Goto 2 Label 3 A[X]=A[X]-1 If A[X]<>0 Goto 1 X=X-1 If X Goto 3 Label 4 Print S

==========================================================================================

EL-9400 EL-9600 EL-9900 ---------

8=>R R=>dim(L1) 0=>S 0=>X Label 0 If X=R Goto 4 X+1=>X R=>L1(X) Label 1 S+1=>S X=>Y Label 2 Y-1=>Y If Y=0 Goto 0 L1(X)-L1(Y)=>T If T=0 Goto 3 If X-Y<>abs(T) Goto 2 Label 3 L1(X)-1=>L1(X) If L1(X) Goto 1 X-1=>X If X Goto 3 Label 4 Print S

==========================================================================================

PC-E500S / Forth500 PC-G850V / Forth850 ---------------------

8 CONSTANT RR 0 VALUE SS 0 VALUE XX 0 VALUE YY CREATE AA RR 1+ ALLOT : RCLAA POSTPONE AA POSTPONE + POSTPONE C@ ; IMMEDIATE : STOAA POSTPONE AA POSTPONE + POSTPONE C! ; IMMEDIATE : NQCORE 0 TO SS 0 TO XX BEGIN 1 +TO XX RR XX STOAA BEGIN 1 +TO SS XX TO YY BEGIN YY 1 > WHILE -1 +TO YY XX RCLAA YY RCLAA - DUP 0= SWAP ABS XX YY - = OR IF 0 TO YY BEGIN XX RCLAA 1- DUP XX STOAA 0= WHILE -1 +TO XX REPEAT THEN REPEAT YY 1 = UNTIL RR XX = UNTIL ; : NQUEENS NQCORE ." S=" SS . ;

==========================================================================================

PC-1200 ---------

000 CAM 001 x->M s 002 LBL 0 003 RM 0 004 - 005 RM s 006 = 007 x=t 4 008 1 009 x->M 1 010 LBL 1 011 RM 2 012 x->M 3 013 0 014 x->M 4 015 LBL 2 016 1 017 M+ 4 018 RM 3 019 x=t 3 020 ÷ 021 1 022 0 023 = 024 x->M 3 025 frac 026 +/- 027 M+ 3 028 +/- 029 × 030 1 031 0 032 - 033 RM 1 034 = 035 x=t 5 036 - 037 RM 4 038 = 039 x=t 5 040 + 041 RM 4 042 = 043 = 044 x=t 5 045 GTO 2 046 LBL 3 047 RM 2 048 × 049 1 050 0 051 + 052 RM 1 053 = 054 x->M 2 055 1 056 M+ 0 057 GTO 0 058 LBL 4 059 RM 2 060 HLT 061 LBL 5 062 RM 1 063 - 064 RM s 065 = 066 x=t 6 067 1 068 M+ 1 069 GTO 1 070 LBL 6 071 1 072 +/- 073 M+ 0 074 RM 0 075 x<0 7 076 RM 2 077 ÷ 078 1 079 0 080 = 081 x->M 2 082 frac 083 +/- 084 M+ 2 085 +/- 086 × 087 1 088 0 089 = 090 x->M 1 091 GTO 5 092 LBL 7 093 S/E

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

PC-1300S ----------

00; 8=>R,0=>S 01; DO 1,R 02; R=>XA 03; S+1=>S,A=>Y 04; Y-1=>Y,IF Y=0,GTO 9 05; IF XA-XY=>T,IF A-Y<>ABS T,GTO 4 06; IF XA-1=>XA,GTO 3 07; IF A-1=>A,GTO 6 08; GTO 10 09; CNT 10; S,END

==========================================================================================

FX-3650P SEC-103 ----------

?->M Fix 0 0->A 0->C Lbl 1 A=M=>Goto 6 1->B Lbl 3 C->D 0->Y Lbl 7 Y+1->Y D=0=>Goto 8 .1D->D D-.5 Rnd 10(D-Ans)->X D-.5 Rnd Ans->D X=B=>Goto 4 X-B=Y=>Goto 4 B-X=Y=>Goto 4 Goto 7 Lbl 8 10C+B->C A+1->A Goto 1 Lbl 6 C_ Lbl 4 B=M=>Goto 5 B+1->B Goto 3 Lbl 5 A-1->A 0>A=>Goto 9 .1C->C C-.5 Rnd 10(C-Ans)->B C-.5 Rnd Ans->C Goto 4 Lbl 9 Norm 1

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

FX-50F+ FX-50FH FX-50FHII FX-3650PII -------------

?->M Fix 0 0->A 0->C Lbl 1 A=M=>Goto 6 1->B Lbl 3 C->D 0->Y Lbl 7 Y+1->Y D=0=>Goto 8 .1D->D 10(D-Rnd(D-.5))->X Rnd(D-.5)->D X=B=>Goto 4 Abs(X-B)=Y=>Goto 4 Goto 7 Lbl 8 10C+B->C A+1->A Goto 1 Lbl 6 C_ Lbl 4 B=M=>Goto 5 B+1->B Goto 3 Lbl 5 A-1->A A<0=>Goto 9 .1C->C 10(C-Rnd(C-.5))->B Rnd(C-.5)->C Goto 4 Lbl 9 Norm 1

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

FX-201P ---------

MAC ST#0: I = I + K1: IM = K9: IF I = IM: 2: 5: ST#1: I = I - K1: ST#2: IM = IM - K1: 9 = K0: IF 9 = IM: 3: 1: ST#3: 9 = 9 + K1: IF 9 = I: 4: 0: ST#4: 0 = IM: I = I - 9: 0 = 0 - IM x =: I = I + 9: 0 = 9 x 9 - 0 x 0: IF 0 = K0: 3: 2: 3:

(Adapted version due to insufficient memory)

==========================================================================================

FX-502P ---------

AC MAC 8 MinF LBL0 MR0 x=F GOTO4 ISZ MRF IND Min0 LBL1 1 M+.F MR0 Min9 LBL2 1 M-9 MR9 x=0 GOTO0 IND MR0 - IND MR9 = x=0 GOTO3 ABS + MR9 - MR0 = x=0 GOTO3 GOTO2 LBL3 IND DSZ GOTO1 DSZ GOTO3 LBL4 MR.F

==========================================================================================

FX-602P FX-603P ---------

AC MAC 8 MinF LBL0 MR00 x=F GOTO4 ISZ MRF IND Min00 LBL1 1 M+1F MR00 Min09 LBL2 1 M-09 MR09 x=0 GOTO0 IND MR00 - IND MR09 = x=0 GOTO3 ABS + MR09 - MR00 = x=0 GOTO3 GOTO2 LBL3 IND DSZ GOTO1 DSZ GOTO3 LBL4 MR1F

==========================================================================================

FX-4000P FX-6000G FX-6300G FX-6500G FX-7000G FX-7000GA FX-7000GB FX-7200G FX-7300G FX-7500G FX-7700GB FX-7700GH FX-8000G FX-8500G FX-8700G FX-9700GE FX-9700GH CFX-9800G OH-7000G TG-202 -----------

Mcl 8->R Lbl 0 X=R=>Goto 4 Isz X R->A[X] Lbl 1 Isz S X->Y Lbl 2 Dsz Y Deg Y=0=>Goto 0 A[X]-A[Y]->T T=0=>Goto 3 X-Y<>Abs T=>Goto 2 Lbl 3 Dsz A[X] Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

FC-1000 ---------

Mcl 8->R Lbl 0 X=R=>Goto 4 Isz X R->CF(X) Lbl 1 Isz S X->Y Lbl 2 Dsz Y Norm Y=0=>Goto 0 CF(X)-CF(Y)->T T=0=>Goto 3 X-Y<>Abs T=>Goto 2 Lbl 3 CF(X)-1->CF(X) CF(X)<>0=>Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

FX-4500P FX-4500PA PX-5600PV SF-9350 / Scientific ROM Card ES-650 SF-R10 / Scientific ROM Card ES-650 --------------------------------------

Mcl Fixm R=8 Lbl 0 X=R=>Goto 4_ X=X+1 A[X]=R Lbl 1 S=S+1 Y=X Lbl 2 Y=Y-1 Y=0=>Goto 0_ T=A[X]-A[Y] T=0=>Goto 3_ X-Y<>Abs T=>Goto 2_ Lbl 3 A[X]=A[X]-1 Ans<>0=>Goto 1_ X=X-1 X<>0=>Goto 3_ Lbl 4 S

==========================================================================================

FX-4800P FX-4850P ----------

Mcl Fixm R=8 Lbl 0 X=R=>Goto 4_ Isz X A[X]=R Lbl 1 Isz S Y=X Lbl 2 Dsz Y Deg Y=0=>Goto 0_ T=A[X]-A[Y] T=0=>Goto 3_ X-Y<>Abs T=>Goto 2_ Lbl 3 Dsz A[X] Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

FX-5800P ----------

ClrMemory 8->R R->DimZ Lbl 0 X=R=>Goto 4 Isz X R->Z[X] Lbl 1 Isz S X->Y Lbl 2 Dsz Y Deg Y=0=>Goto 0 Z[X]-Z[Y]->T T=0=>Goto 3 X-Y<>Abs(T)=>Goto 2 Lbl 3 Z[X]-1->Z[X] Ans=>Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

FX-7400G+ FX-7400G+ GY FX-7450G FX-9750G FX-9750G+ RM-9850G CFX-9850GB+ CFX-9950GB+ CFX-9970G --------------

0->A~Z 8->R Seq(0,R,1,R,1)->List 1 Lbl 0 X=R=>Goto 4 Isz X R->List 1[X] Lbl 1 Isz S X->Y Lbl 2 Dsz Y Deg Y=0=>Goto 0 List 1[X]-List 1[Y]->T T=0=>Goto 3 X-Y<>Abs T=>Goto 2 Lbl 3 List 1[X]-1->List 1[X] List 1[X]=>Goto 1 Dsz X Goto 3 Lbl 4 S

==========================================================================================

FX-9750GII FX-9750GII-2 FX-9860G SD FX-9860G Slim FX-9860GII FX-9860GII-2 FX-CG20 FX-CG50 ---------------

0->A~Z 8->R {R,1}->Dim Mat A 0 Do Isz X R->Mat A[X,1] Do Isz S X->Y While Y>1 Dsz Y Mat A[X,1]-Mat A[Y,1]->T If T=0 Or X-Y=Abs T Then 0->Y Mat A[X,1]-1->Mat A[X,1] While Mat A[X,1]=0 Dsz X Mat A[X,1]-1->Mat A[X,1] WhileEnd IfEnd WhileEnd LpWhile Y<>1 LpWhile X<>R S

==========================================================================================

AFX-2.0+ ----------

0->A~Z 8->R R->Dim List 1 Do Isz X R->List 1[X] Do Isz S X->Y While Y>1 Dsz Y List 1[X]-List 1[Y]->T If T=0 Or X-Y=Abs T Then 0->Y List 1[X]-1->List 1[X] While List 1[X]=0 Dsz X List 1[X]-1->List 1[X] WhileEnd IfEnd WhileEnd LpWhile Y<>1 LpWhile X<>R S

==========================================================================================

FX-9750GII-2 FX-9860G SD FX-9860GII-2 FX-CG50 / C.BASIC -------------------

0->A~Z 8->R R->Dim A For 1->N To 10 0->X 0->S Lbl 0 X=R=>Goto 4 Isz X R->A[X] Lbl 1 Isz S X->Y Lbl 2 Dsz Y Deg Y=0=>Goto 0 A[X]-A[Y]->T T=0=>Goto 3 X-Y<>Abs T=>Goto 2 Lbl 3 Dsz A[X] Goto 1 Dsz X Goto 3 Lbl 4 Next S

==========================================================================================

TI-67 -------

INPUT N 0->A 0->C LBL 1 IF A=N GOTO 6 1->B LBL 3 C->D 0->E LBL 7 E+1->E IF D=0 GOTO 8 .1*D->D 10*FP(D)->X IP(D)->D IF X=B GOTO 4 IF ABS (X-B)=E GOTO 4 GOTO 7 LBL 8 10*C+B->C A+1->A GOTO 1 LBL 6 DISP C LBL 4 IF B=N GOTO 5 B+1->B GOTO 3 LBL 5 A-1->A IF A<0 GOTO 9 .1*C->C 10*FP(C)->B IP(C)->C GOTO 4 LBL 9 DISP"DONE"

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

SR-52 -------

CLR CMS 8 STO 11 LBL A RCL 00 - RCL 11 = IFZRO E 1 SUM 00 RCL 11 IND STO 00 LBL B 1 SUM 10 RCL 00 STO 09 LBL C 1 INV SUM 09 RCL 09 IFZRO A IND RCL 00 - IND RCL 09 = IFZRO D IFPOS +/- +/- LBL +/- + RCL 09 - RCL 00 = INV IFZRO C LBL D 1 IND INV SUM 00 IND RCL 00 INV IFZRO B DSZ D LBL E RCL 10 HLT

==========================================================================================

TI-58C TI-59 TI-66 --------

CLR CMS 8 STO 11 LBL A RCL 00 X<->T RCL 11 X=T E CLR X<->T OP 20 RCL 11 STO IND 00 LBL B 1 SUM 10 RCL 00 STO 09 LBL C INV DSZ 09 A RCL IND 00 - RCL IND 09 = X=T D ABS + RCL 09 - RCL 00 = INV X=T C LBL D DSZ IND 00 B DSZ 00 D LBL E RCL 10 R/S

==========================================================================================

TI-88 -------

CE CLR CMs 8 Sto R Lbl A Rcl R If= X Gto E 1 St+ X Rcl R Sto Ind x Lbl B 1 St+ S Rcl X Sto Y Lbl C Inv Dsz Y Gto A Rcl Ind x - Rcl Ind y = If= Z Gto D OP26 + Y - X = Inv If= Z Gto C Lbl D Dsz Ind x Gto B Dsz X Gto D Lbl E Rcl S R/S

(Never released prototype)

==========================================================================================

TI-95 PROCALC ---------------

CLR CMS 8 STO R LBL 00 RCL R IF= X GTL 04 INC X STO IND X LBL 01 INC S RCL X STO Y LBL 02 INV DSZ Y GTL 00 RCL IND X - RCL IND Y = IF= Z GTL 03 ABS + RCL Y - RCL X = INV IF= Z GTL 02 LBL 03 DSZ IND X GTL 01 DSZ X GTL 03 LBL 04 RCL S HLT

(ASM and UNF used for faster execution)

==========================================================================================

TI-74 BASICALC / Learn Pascal ROM Module ------------------------------------------

100 program qbench; 110 procedure main; 120 label 0,1,2,3,4; 130 var a:array[0..8] of integer; 140 n,r,s,t,x,y:integer; 150 begin 160 r:=8; 170 s:=0; 180 x:=0; 190 0:if x=r then goto 4; 200 x:=succ(x); 210 a[x]:=r; 220 1:s:=succ(s); 230 y:=x; 240 2:y:=pred(y); 250 if y=0 then goto 0; 260 t:=a[x]-a[y]; 270 if t=0 then goto 3; 280 if x-y<>abs(t) then goto 2; 290 3:a[x]:=pred(a[x]); 300 if a[x]<>0 then goto 1; 310 x:=pred(x); 320 if x<>0 then goto 3; 330 4:write(s); 340 end; 350 begin 360 main; 370 end.

==========================================================================================

TI-80 -------

8->R R->DIM L1 0->S 0->X LBL A IF X=R GOTO E X+1->X R->L1(X) LBL B S+1->S X->Y LBL C Y-1->Y IF Y=0 GOTO A L1(X)-L1(Y)->T IF T=0 GOTO D IF X-Y<>ABS T GOTO C LBL D L1(X)-1->L1(X) IF ANS GOTO B X-1->X IF X GOTO D LBL E DISP S

==========================================================================================

TI-81 -------

8->R 0->S 0->X Lbl A If X=R Goto E X+1->X R->{x}(X) Lbl B S+1->S X->Y Lbl C Y-1->Y If Y=0 Goto A {x}(X)-{x}(Y)->T If T=0 Goto D If X-Y<>abs T Goto C Lbl D {x}(X)-1->{x}(X) If Ans Goto B DS<(X,1) Goto D Lbl E Disp S

==========================================================================================

TI-73 TI-82 TI-83+ TI-83+ SE TI-84+ TI-84+ Pocket SE TI-Nspire / TI-84+ Keypad ---------------------------

8->R R->dim(L1) 0->S 0->X Lbl A If X=R Goto E X+1->X R->L1(X) Lbl B S+1->S X->Y Lbl C Y-1->Y If Y=0 Goto A L1(X)-L1(Y)->T If T=0 Goto D If X-Y<>abs(T) Goto C Lbl D L1(X)-1->L1(X) If Ans Goto B DS<(X,1) Goto D Lbl E Disp S

==========================================================================================

TI-85 TI-86 -------

8->R R->dimL A 0->S 0->X Lbl A If X==R Goto E X+1->X R->A(X) Lbl B S+1->S X->Y Lbl C Y-1->Y If Y==0 Goto A A(X)-A(Y)->T If T==0 Goto D If X-Y<>abs T Goto C Lbl D A(X)-1->A(X) If Ans Goto B DS<(X,1) Goto D Lbl E Disp S

==========================================================================================

TI-89 TI-89 Titanium TI-92+ TI-Nspire TI-Nspire CAS TI-Nspire CX II CAS ---------------------

Define nqueens()= Prgm Local a,n,r,s,t,x,y 8->r newList(r)->a For n,1,10 0->s 0->x Loop x+1->x r->a[x] Loop s+1->s x->y While y>1 y-1->y a[x]-a[y]->t If t=0 or x-y=abs(t) Then 0->y a[x]-1->a[x] While a[x]=0 x-1->x a[x]-1->a[x] EndWhile EndIf EndWhile If y=1 Exit EndLoop If x=r Exit EndLoop EndFor Disp s EndPrgm

(Auto or Exact Mode)

==========================================================================================

HP-20S --------

LBL 0 * 1 0 = RTN LBL A CLRG STO 9 LBL 1 RCL 0 - RCL 9 = x=0? GTO 6 1 STO 1 LBL 3 RCL 2 STO 3 C STO 4 LBL 9 1 STO+ 4 RCL 3 * . 1 = x=0? GTO 7 - IP STO 3 = XEQ 0 - RCL 1 = x=0? GTO 4 ABS - RCL 4 = x=0? GTO 4 GTO 9 LBL 7 RCL 2 XEQ 0 + RCL 1 = STO 2 1 STO+ 0 GTO 1 LBL 4 RCL 1 - RCL 9 = x=0? GTO 5 1 STO+ 1 GTO 3 LBL 5 1 STO- 0 0 INPUT RCL 0 x<=y? GTO 8 RTN LBL 8 C RCL 2 * . 1 = - IP STO 2 = XEQ 0 STO 1 GTO 4 LBL 6 RCL 2 R/S GTO 4

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

HP-25 -------

01: 24 01 : RCL 1 02: 23 51 02 : STO + 2 03: 24 06 : RCL 6 04: 23 71 02 : STO / 2 05: 01 : 1 06: 23 41 00 : STO - 0 07: 24 00 : RCL 0 08: 15 61 : g x<>0 09: 13 13 : GTO 13 10: 24 02 : RCL 2 11: 74 : R/S 12: 13 36 : GTO 36 13: 24 05 : RCL 5 14: 23 01 : STO 1 15: 24 02 : RCL 2 16: 23 03 : STO 3 17: 34 : CLx 18: 23 04 : STO 4 19: 01 : 1 20: 23 51 04 : STO + 4 21: 24 06 : RCL 6 22: 23 61 03 : STO * 3 23: 24 03 : RCL 3 24: 15 71 : g x=0 25: 13 01 : GTO 01 26: 14 01 : f INT 27: 23 41 03 : STO - 3 28: 24 01 : RCL 1 29: 14 71 : f x=y 30: 13 36 : GTO 36 31: 41 : - 32: 15 03 : g ABS 33: 24 04 : RCL 4 34: 14 61 : f x<>y 35: 13 19 : GTO 19 36: 01 : 1 37: 23 41 01 : STO - 1 38: 24 01 : RCL 1 39: 15 61 : g x<>0 40: 13 15 : GTO 15 41: 01 : 1 42: 23 51 00 : STO + 0 43: 24 06 : RCL 6 44: 23 61 02 : STO * 2 45: 24 02 : RCL 2 46: 14 01 : f INT 47: 23 41 02 : STO - 2 48: 23 01 : STO 1 49: 13 36 : GTO 36

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

HP-65 -------

STO 5 33 05 LBL 23 B 12 RCL 5 34 05 RCL 7 34 07 g x=y 35 23 GTO 22 6 06 1 01 STO 1 33 01 LBL 23 E 15 RCL 2 34 02 0 00 LBL 23 D 14 1 01 + 61 g x><y 35 07 1 01 0 00 STO 8 33 08 / 81 0 00 g x=y 35 23 GTO 22 3 03 g RDown 35 08 ENTER 41 f-1 32 INT 83 - 51 g x><y 35 07 g LSTx 35 00 RCL 8 34 08 * 71 RCL 1 34 01 g x=y 35 23 GTO 22 C 13 - 51 g 35 ABS 06 g x=y 35 23 GTO 22 C 13 g RDown 35 08 D 14 LBL 23 3 03 RCL 2 34 02 RCL 8 34 08 * 71 RCL 1 34 01 + 61 STO 2 33 02 1 01 STO 33 + 61 7 07 B 12 LBL 23 6 06 RCL 2 34 02 R/S 84 LBL 23 C 13 RCL 5 34 05 RCL 1 34 01 g x=y 35 23 GTO 22 5 05 1 01 + 61 STO 1 33 01 E 15 LBL 23 5 05 RCL 7 34 07 1 01 - 51 STO 7 33 07 0 00 g x>y 35 24 CLx 44 R/S 84 RCL 2 34 02 RCL 8 34 08 / 81 ENTER 41 f-1 32 INT 83 - 51 STO 2 33 02 g LSTx 35 00 RCL 8 34 08 * 71 STO 1 33 01 C 13

(Chopping block algorithm used due to the lack of indirect addressing)

==========================================================================================

HP-67 -------

LBL A CLEAR REG 8 STO A LBL 0 RCL 0 RCL A x=y? GTO 4 1 STO+ 0 RCL 0 STO I RCL A STO(i) LBL 1 RCL B 1 + STO B RCL 0 STO 9 LBL 2 1 STO- 9 RCL 9 x=0? GTO 0 RCL 0 STO I RCL(i) RCL 9 STO I Rv RCL(i) - x=0? GTO 3 ABS RCL 0 RCL 9 - x<>y? GTO 2 LBL 3 RCL 0 STO I 1 STO-(i) RCL(i) x<>0? GTO 1 1 STO- 0 RCL 0 x<>0? GTO 3 LBL 4 RCL B RTN

==========================================================================================

HP-11C HP-29C HP-34C --------

LBL A CLEAR REG 8 STO .0 LBL 0 RCL 0 RCL .0 x=y? GTO 4 1 STO+ 0 RCL 0 STO I RCL .0 STO(i) LBL 1 RCL .1 1 + STO .1 RCL 0 STO 9 LBL 2 1 STO- 9 RCL 9 x=0? GTO 0 RCL 0 STO I RCL(i) RCL 9 STO I Rv RCL(i) - x=0? GTO 3 ABS RCL 0 RCL 9 - x<>y? GTO 2 LBL 3 RCL 0 STO I 1 STO-(i) RCL(i) x<>0? GTO 1 1 STO- 0 RCL 0 x<>0? GTO 3 LBL 4 RCL .1 RTN

==========================================================================================

HP-15C HP-15C CE HP-15C LE DM-15 -----------

LBL A CLEAR REG 8 STO .0 LBL 0 RCL 0 RCL .0 TEST 5 GTO 4 1 STO+ 0 RCL 0 STO I RCL .0 STO(i) LBL 1 1 STO+ .1 RCL 0 STO 9 LBL 2 1 STO- 9 RCL 9 x=0? GTO 0 RCL 0 STO I RCL(i) RCL 9 STO I Rv RCL(i) - x=0? GTO 3 ABS RCL 0 RCL 9 - TEST 6 GTO 2 LBL 3 RCL 0 STO I 1 STO-(i) RCL(i) TEST 0 GTO 1 1 STO- 0 RCL 0 TEST 0 GTO 3 LBL 4 RCL .1 RTN

==========================================================================================

HP-16C --------

LBL A FLOAT 0 CLEAR REG 8 STO .0 LBL 0 RCL 0 RCL .0 x=y? GTO 4 RCL 0 1 + STO 0 STO I RCL .0 STO(i) LBL 1 RCL .1 1 + STO .1 RCL 0 STO 9 LBL 2 RCL 9 1 - STO 9 x=0? GTO 0 RCL 0 STO I RCL(i) RCL 9 STO I Rv RCL(i) - x=0? GTO 3 ABS RCL 0 RCL 9 - x<>y? GTO 2 LBL 3 RCL 0 STO I RCL(i) 1 - STO(i) x<>0? GTO 1 RCL 0 1 - STO 0 x<>0? GTO 3 LBL 4 RCL .1 RTN

==========================================================================================

HP-32S HP-32SII HP-33S ----------

LBL Q CLVARS 8 STO R LBL A RCL X RCL R x=y? GTO E 1 STO+ X RCL X STO i RCL R STO(i) LBL B 1 STO+ S RCL X STO Y LBL C 1 STO- Y RCL Y x=0? GTO A RCL X STO i RCL(i) RCL Y STO i Rv RCL(i) - x=0? GTO D ABS RCL X RCL Y - x<>y? GTO C LBL D RCL X STO i 1 STO-(i) RCL(i) x<>0? GTO B 1 STO- X RCL X x<>0? GTO D LBL E RCL S RTN

==========================================================================================

HP-41C HP-41CV HP-41CX HP-41CY HP-41CL HP-42S DM-41 DM-41L DM-41X DM-42 HP-71B / HP-41 Translator ROM Module HP-82490A ------------------------------------------------

LBL A CLRG 8 STO 11 LBL 00 RCL 00 RCL 11 X=Y? GTO 04 ISG 00 DEG STO IND 00 LBL 01 ISG 10 DEG RCL 00 STO 09 LBL 02 DSE 09 DEG RCL 09 X=0? GTO 00 RCL IND 00 RCL IND 09 - X=0? GTO 03 ABS RCL 00 RCL 09 - X<>Y? GTO 02 LBL 03 DSE IND 00 GTO 01 DSE 00 GTO 03 LBL 04 RCL 10 RTN

==========================================================================================

HP-12C HP-12C Platinum HP-12C ARM HP-38E DM-12 V12 FN-1000 CCS28956 ----------

01 Clear Sigma 02 8 03 STO 0 04 RCL 1 05 RCL 0 06 x<=y 07 GTO 58 08 1 09 STO+1 10 RCL 1 11 STO n 12 RCL 0 13 STO Nj 14 1 15 STO+2 16 RCL 1 17 STO 3 18 1 19 STO-3 20 RCL 3 21 x=0 22 GTO 04 23 STO n 24 RCL Nj 25 RCL 1 26 STO n 27 Rv 28 RCL Nj 29 - 30 x=0 31 GTO 43 32 0 33 x<->y 34 x<=y 35 CHS 36 RCL 3 37 + 38 RCL 1 39 - 40 x=0 41 GTO 43 42 GTO 18 43 RCL 1 44 STO n 45 RCL Nj 46 1 47 - 48 STO Nj 49 x=0 50 GTO 52 51 GTO 14 52 1 53 STO-1 54 RCL 1 55 x=0 56 GTO 58 57 GTO 43 58 RCL 2 59 GTO 00

==========================================================================================

HP-30B --------

01 8 02 STO 1 03 0 04 STO 2 05 STO 3 06 Lbl 00 07 RCL 2 08 RCL 1 09 ?= 10 GT 04 11 ISG 2 12 Off 13 RCL 2 14 STO 0 15 RCL 1 16 STO Data 17 Lbl 01 18 ISG 3 19 Off 20 RCL 2 21 STO 4 22 Lbl 02 23 DSE 4 24 RCL 4 25 RCL 4 26 GF 00 27 STO 0 28 RCL Data 29 RCL 2 30 STO 0 31 ( Rv 32 RCL Data 33 - 34 Input 35 GF 03 36 Math 37 Down 38 Down 39 Down 40 = 41 RCL 2 42 RCL 4 43 - 44 - 45 GT 02 46 Lbl 03 47 RCL 2 48 STO 0 49 RCL Data 50 1 51 - 52 STO Data 53 GT 01 54 DSE 2 55 Gto 03 56 Lbl 04 57 RCL 3 58 Stop

==========================================================================================

WP-34S --------

001: LBL B 002: CLREG 003: 8 004: STO 11 005: RCL 11 006: x=? 00 007: SKIP 22 008: INC 00 009: STO ->00 010: INC 10 011: RCL 00 012: STO 09 013: DEC 09 014: RCL 09 015: x=0? 016: BACK 11 017: RCL ->00 018: RCL- ->09 019: x=0? 020: SKIP 05 021: ABS 022: RCL 00 023: RCL- 09 024: x<>? Y 025: BACK 12 026: DSZ ->00 027: BACK 17 028: DSZ 00 029: BACK 03 030: RCL 10 031: RTN

==========================================================================================

HP-35S --------

Q001 LBL Q Q002 CLVARS Q003 8 Q004 STO R Q005 1 Q006 STO K Q007 RCL I Q008 RCL R Q009 x=y? Q010 GTO Q039 Q011 RCL K Q012 STO+ I Q013 RCL R Q014 STO(I) Q015 RCL K Q016 STO+ S Q017 RCL I Q018 STO J Q019 RCL K Q020 STO- J Q021 RCL J Q022 x=0? Q023 GTO Q007 Q024 RCL(I) Q025 RCL(J) Q026 - Q027 x=0? Q028 GTO Q035 Q029 ABS Q030 RCL I Q031 RCL J Q032 - Q033 x<>y? Q034 GTO Q019 Q035 DSE(I) Q036 GTO Q015 Q037 DSE I Q038 GTO Q035 Q039 RCL S Q040 RTN

==========================================================================================

HP-17BII HP-17BII+ HP-19BII -----------

QUEENS: Z=A+B+C+D+E+F+G+H+ Sigma(I:1:8:1: Sigma(J:1:8:1: IF(I<>J AND SQ(I-J)<>1: Sigma(K:1:8:1: IF(I<>K AND SQ(I-K)<>4 AND J<>K AND SQ(J-K)<>1: Sigma(L:1:8:1: IF(I<>L AND SQ(I-L)<>9 AND J<>L AND SQ(J-L)<>4 AND K<>L AND SQ(K-L)<>1: Sigma(M:1:8:1: IF(I<>M AND SQ(I-M)<>16 AND J<>M AND SQ(J-M)<>9 AND K<>M AND SQ(K-M)<>4 AND L<>M AND SQ(L-M)<>1: Sigma(N:1:8:1: IF(I<>N AND SQ(I-N)<>25 AND J<>N AND SQ(J-N)<>16 AND K<>N AND SQ(K-N)<>9 AND L<>N AND SQ(L-N)<>4 AND M<>N AND SQ(M-N)<>1: Sigma(O:1:8:1: IF(I<>O AND SQ(I-O)<>36 AND J<>O AND SQ(J-O)<>25 AND K<>O AND SQ(K-O)<>16 AND L<>O AND SQ(L-O)<>9 AND M<>O AND SQ(M-O)<>4 AND N<>O AND SQ(N-O)<>1: Sigma(P:1:8:1: IF(I<>P AND SQ(I-P)<>49 AND J<>P AND SQ(J-P)<>36 AND K<>P AND SQ(K-P)<>25 AND L<>P AND SQ(L-P)<>16 AND M<>P AND SQ(M-P)<>9 AND N<>P AND SQ(N-P)<>4 AND O<>P AND SQ(O-P)<>1: L(A:I)xL(B:J)xL(C:K)xL(D:L)xL(E:M)xL(F:N)xL(G:O)xL(H:P)/0 :0)):0)):0)):0)):0)):0)):0)))

(Algorithm not compatible with test code)

==========================================================================================

HP-38G HP-39GS HP-40GS ---------

8->R: MAKELIST(0,X,1,R,1)->L1: 0->S: 0->X: DO X+1->X: R->L1(X): DO S+1->S: X->Y: WHILE Y>1 REPEAT Y-1->Y: L1(X)-L1(Y)->T: IF T==0 OR X-Y==ABS(T) THEN 0->Y: L1(X)-1->L1(X): WHILE L1(X)==0 REPEAT X-1->X: L1(X)-1->L1(X): END: END: END: UNTIL Y==1 END: UNTIL X==R END: MSGBOX S:

==========================================================================================

HP-39GII HP-Prime ----------

EXPORT NQUEENS() BEGIN R:=8; L1:=MAKELIST(0,X,1,R,1); S:=0; X:=0; REPEAT X:=X+1; L1(X):=R; REPEAT S:=S+1; Y:=X; WHILE Y>1 DO Y:=Y-1; T:=L1(X)-L1(Y); IF T==0 OR X-Y==ABS(T) THEN Y:=0; L1(X):=L1(X)-1; WHILE L1(X)==0 DO X:=X-1; L1(X):=L1(X)-1; END; END; END; UNTIL Y==1 END; UNTIL X==R END; S; END;

==========================================================================================

HP-28C HP-28S HP-48S HP-48SX HP-48GX / UserRPL -------------------

<< 0 DO 8 SWAP 1 + WHILE DUP2 DO 1 - UNTIL DUP2 5 + PICK - ABS DUP2 - * NOT END REPEAT DROP WHILE SWAP DUP 1 SAME REPEAT - END 1 - SWAP END DROP UNTIL DUP 8 SAME END ->LIST >>

==========================================================================================

HP-49G HP-49G+ HP-50G / UserRPL ------------------

<< 0. DO 8. SWAP 1. + WHILE DUP2 DO 1. - UNTIL DUP2 5. + PICK - ABS DUP2 - * NOT END REPEAT DROP WHILE SWAP DUP 1. SAME REPEAT - END 1. - SWAP END DROP UNTIL DUP 8. SAME END ->LIST >>

==========================================================================================

HP-48S HP-48SX HP-48GX HP-50G / SysRPL -----------------

:: ZERO BEGIN EIGHT SWAP#1+ :: BEGIN 2DUP BEGIN #1- 2DUP FIVE #+PICK 2DUP#> IT SWAP #- 2DUP#+ 2#0=OR UNTIL #0=case AGAIN DROPSWAP BEGIN DUP#1= WHILE #-SWAP REPEAT #1-SWAP AGAIN ; DROPRDROP EIGHT OVER#= UNTIL ZERO_DO 8ROLL UNCOERCE LOOP EIGHT {}N ; @

==========================================================================================

DM-42 / DB48X RPL -------------------

« Ticks 0 do 8 Swap 1 + while Duplicate2 do 1 - until Duplicate2 5 + Pick - abs Duplicate2 - × not end repeat Drop while Swap Duplicate 1 same repeat - end 1 - Swap end Drop until Duplicate 8 same end ->List Ticks Rot - » 'NQueens' STO

==========================================================================================

HP-48GX HP-49G+ / HRAST BASIC -----------------------

CALL QUEEN,8 PROC QUEEN(INTEGER N) INTEGER A[N+1],D,S=1,X,Y A[1]=N FOR X=2 TO N S> A[X]=N FOR Y=X-1 D=A[X]-A[Y] IF NOT D OR X-Y=ABS D@ A[X]< WHILE NOT A[X]@ X< A[X]< ENDWHILE S> Y=X NEXT NEXT ? S

(Optimized version)

==========================================================================================

DM-41X / Forth-41 ROM Module ------------------------------

8 CONSTANT RR VARIABLE II VARIABLE SS VARIABLE XX VARIABLE YY HERE RR 2+ ALLOT MM> CONSTANT AA : NQP 1 II ! BEGIN II @ XX @ 1+ < WHILE II @ AA + >MM C@ . 1 II +! REPEAT ; : NQC 0 SS ! 0 XX ! BEGIN 1 XX +! RR XX @ AA + >MM C! BEGIN 1 SS +! XX @ YY ! BEGIN YY @ 1 > WHILE -1 YY +! XX @ AA + >MM C@ YY @ AA + >MM C@ - DUP 0 = SWAP ABS XX @ YY @ - = OR IF 0 YY ! BEGIN XX @ AA + >MM C@ 1 - DUP XX @ AA + >MM C! 0 = WHILE -1 XX +! REPEAT THEN REPEAT YY @ 1 = UNTIL RR XX @ = UNTIL ; : NQ NQC NQP ; : NQT CALL SSW NQC CALL RSW NQP ;

(Estimated running time on the HP-41CX: 1:30:00)

==========================================================================================

DM-41X / DM-Forth -------------------

8 CONSTANT RR VARIABLE II VARIABLE SS VARIABLE XX VARIABLE YY HERE @ RR 2+ ALLOT CONSTANT AA : RCLAA @ AA + C@ ; : STOAA @ AA + C! ; : NQPRINT 1 II ! BEGIN II @ XX @ 1+ < WHILE II RCLAA . 1 II +! REPEAT ; : NQCORE 0 SS ! 0 XX ! BEGIN 1 XX +! RR XX STOAA BEGIN 1 SS +! XX @ YY ! BEGIN YY @ 1 > WHILE -1 YY +! XX RCLAA YY RCLAA - DUP 0= SWAP ABS XX @ YY @ - = OR IF 0 YY ! BEGIN XX RCLAA 1- DUP XX STOAA 0= WHILE -1 XX +! REPEAT THEN REPEAT YY @ 1 = UNTIL RR XX @ = UNTIL ; : NQUEENS BRKOFF NQCORE NQPRINT BRKON ;

==========================================================================================

HP-71B / Forth / HP-41 Translator ROM Module HP-82490A --------------------------------------------------------

: NQUEENSF ; FVARIABLE TIMER : STARTTIMER CLOCK TIMER STO ; : DISPLAYTIMER CLOCK TIMER RCL F- STD F. ." SEC" ; 8 CONSTANT RR VARIABLE SS VARIABLE XX VARIABLE YY CREATE AA RR 1 + ALLOT : RCLAA @ 2 * AA + C@ ; : STOAA @ 2 * AA + C! ; : NQCORE 0 SS ! 0 XX ! BEGIN 1 XX +! RR XX STOAA BEGIN 1 SS +! XX @ YY ! BEGIN YY @ 1 > WHILE -1 YY +! XX RCLAA YY RCLAA - DUP 0 = SWAP ABS XX @ YY @ - = OR IF 0 YY ! BEGIN XX RCLAA 1 - DUP XX STOAA 0 = WHILE -1 XX +! REPEAT THEN REPEAT YY @ 1 = UNTIL RR XX @ = UNTIL ; : NQUEENS STARTTIMER NQCORE ." S=" SS @ . ." IN " DISPLAYTIMER CR ;

==========================================================================================

HP-75C / Forth ----------------

8 CONSTANT RR 0 VARIABLE SS 0 VARIABLE XX 0 VARIABLE YY HEX HERE RR 1+ ALLOT CONSTANT AA : RCLAA @ AA + C@ ; : STOAA @ AA + C! ; : NQCORE 0 SS ! 0 XX ! BEGIN 1 XX +! RR XX STOAA BEGIN 1 SS +! XX @ YY ! BEGIN YY @ 1 > WHILE -1 YY +! XX RCLAA YY RCLAA - DUP 0 = SWAP ABS XX @ YY @ - = OR IF 0 YY ! BEGIN XX RCLAA 1 - DUP XX STOAA 0 = WHILE -1 XX +! REPEAT THEN REPEAT YY @ 1 = UNTIL RR XX @ = UNTIL ; : NQUEENS NQCORE ." S=" SS @ . CR ; DECIMAL

==========================================================================================

HP-50G / Jonesforth ---------------------

8 CONSTANT RR VARIABLE II VARIABLE SS VARIABLE XX VARIABLE YY HERE @ RR 2+ ALLOT CONSTANT AA : RCLAA @ AA + C@ ; : STOAA @ AA + C! ; : NQPRINT 1 II ! BEGIN II @ XX @ 1+ < WHILE II RCLAA . 1 II +! REPEAT ; : NQCORE 0 SS ! 0 XX ! BEGIN 1 XX +! RR XX STOAA BEGIN 1 SS +! XX @ YY ! BEGIN YY @ 1 > WHILE -1 YY +! XX RCLAA YY RCLAA - DUP 0 = SWAP ABS XX @ YY @ - = OR IF 0 YY ! BEGIN XX RCLAA 1 - DUP XX STOAA 0 = WHILE -1 XX +! REPEAT THEN REPEAT YY @ 1 = UNTIL RR XX @ = UNTIL ; : NQUEENS NQCORE NQPRINT ;

==========================================================================================

HP-41CX HP-41CL / Mcode (NUT Assembly) --------------------------------

.NAME "CQ2" *0078 0B2 #0B2 *0079 011 #011 *007A 003 #003 007B 1A0 [CQ2] A=B=C=0 007C 158 M=C 007D 070 N=C 007E 268 WRIT 9(Q) 007F 228 WRIT 8(P) 0080 1E8 WRIT 7(O) 0081 1A8 WRIT 6(N) 0082 168 WRIT 5(M) 0083 128 WRIT 4(L) 0084 0E8 WRIT 3(X) 0085 0A8 WRIT 2(Y) 0086 068 WRIT 1(Z) 0087 2A0 SETDEC 0088 198 [L40_2] C=M 0089 0A6 A<>C S&X 008A 130008 LDIS&X 008 008C 366 ?A#C S&X 008D 093 JNC [SL180_2] +18 009F 008E 198 [L50_2] C=M 008F 226 C=C+1 S&X 0090 158 M=C 0091 198 [L60_2] C=M 0092 270 RAMSLCT 0093 130008 LDIS&X 008 0095 2F0 WRITDATA 0096 278 [L70_2] READ 9(Q) 0097 22E C=C+1 ALL 0098 268 WRIT 9(Q) 0099 198 [L80_2] C=M 009A 070 N=C 009B 0B0 [L90_2] C=N 009C 266 C=C-1 S&X 009D 070 N=C 009E 013 JNC [L100_2] +2 00A0 009F 12B [SL180_2] JNC [L180_2] +37 00C4 00A0 0B0 [L100_2] C=N 00A1 2E6 ?C#0 S&X 00A2 333 JNC [L40_2] -26 0088 00A3 198 [L110_2] C=M 00A4 270 RAMSLCT 00A5 038 READDATA 00A6 0A6 A<>C S&X 00A7 0B0 C=N 00A8 270 RAMSLCT 00A9 038 READDATA 00AA 246 C=A-C S&X 00AB 013 JNC (c6_2) +2 00AD 00AC 286 C=0-C S&X 00AD 2E6 (c6_2) ?C#0 S&X 00AE 04B JNC [L140_2] +9 00B7 00AF 0E6 C<>B S&X 00B0 198 [L130_2] C=M 00B1 0A6 A<>C S&X 00B2 0B0 C=N 00B3 1C6 A=A-C S&X 00B4 0E6 C<>B S&X 00B5 366 ?A#C S&X 00B6 32F JC [L90_2] -27 009B 00B7 198 [L140_2] C=M 00B8 270 RAMSLCT 00B9 038 READDATA 00BA 266 C=C-1 S&X 00BB 2F0 WRITDATA 00BC 2E6 [L150_2] ?C#0 S&X 00BD 2CF JC [L70_2] -39 0096 00BE 198 [L160_2] C=M 00BF 266 C=C-1 S&X 00C0 158 M=C 00C1 198 [L170_2] C=M 00C2 2E6 ?C#0 S&X 00C3 3A7 JC [L140_2] -12 00B7 00C4 35C [L180_2] R= 12 00C5 278 READ 9(Q) 00C6 2FC (c8_2) RCR 13 00C7 2E2 ?C#0 @R 00C8 3F3 JNC (c8_2) -2 00C6 00C9 0E8 WRIT 3(x) 00CA 3E0 RTN

==========================================================================================

HP-48GX / Saturn Assembly ---------------------------

:: CK0 CLKTICKS * CODE GOSBVL =SAVPTR L10 LAHEX 888888888 R0=A C=0 W D1=C B=0 A L40 P= 0 A=R0 ?A=B P GOYES L180 L50 B=B+1 P L60 P= 0 C=B P P=C 0 C=A P L70 CD1EX C=C+1 A CD1EX L80 P= 0 C=B P D=C P L90 D=D-1 P L100 ?D=0 P GOYES L40 L110 P= 0 C=D P GOSUB Ptst P= 0 A=C P C=B P GOSUB Ptst P= 0 ?A>=C P GOYES NoSwp ACEX P NoSwp A=A-C P L120 ?A=0 P GOYES L140 L130 C=B P C=C-D P ?A#C P GOYES L90 L140 P= 0 C=B P P=C 0 C=C-1 P L150 ?C#0 P GOYES L70 L160 P= 0 B=B-1 P L170 ?B#0 P GOYES L140 L180 CSR W AD1EX P= 7 ACEX WP RSTK=C GOSBVL =PUSHhxs GOSBVL =SAVPTR C=RSTK A=C A GOVLNG =PUSH#ALOOP Ptst P=C 0 ?P# 1 GOYES tP2 CPEX 1 C=P 0 CPEX 1 RTNCC tP2 ?P# 2 GOYES tP3 CPEX 2 C=P 0 CPEX 2 RTNCC tP3 ?P# 3 GOYES tP4 CPEX 3 C=P 0 CPEX 3 RTNCC tP4 ?P# 4 GOYES tP5 CPEX 4 C=P 0 CPEX 4 RTNCC tP5 ?P# 5 GOYES tP6 CPEX 5 C=P 0 CPEX 5 RTNCC tP6 ?P# 6 GOYES tP7 CPEX 6 C=P 0 CPEX 6 RTNCC tP7 ?P# 7 GOYES tP8 CPEX 7 C=P 0 CPEX 7 RTNCC tP8 CPEX 8 C=P 0 CPEX 8 RTNCC ENDCODE * CLKTICKS 4ROLL bit- #>% # 2000 UNCOERCE %/ SWAP UNCOERCE ;

==========================================================================================

HP-50G / ARM Assembly -----------------------

#define _ASM asm volatile int benchmark_asm() __attribute__ ((naked)); int benchmark_asm() { _ASM("STMDB SP!,{ R1-R8 }"); _ASM("MOV R3,#8"); _ASM("SUB SP,SP,R3,LSL #2"); _ASM("SUB SP,SP,#8"); _ASM("MOV R4,#102400"); _ASM("LOOPSTART:"); _ASM("MOV R1,#0"); _ASM("MOV R2,#0"); _ASM("MOV R0,#0"); _ASM("MOV R6,#0"); _ASM("LINE40:"); _ASM("CMP R1,R3"); _ASM("BEQ LINE180"); _ASM("STR R6,[SP,R1,LSL #2]"); _ASM("ADD R1,R1,#1"); _ASM("MOV R6,R3"); _ASM("LINE70:"); _ASM("ADD R0,R0,#1"); _ASM("MOV R2,R1"); _ASM("LINE90:"); _ASM("SUBS R2,R2,#1"); _ASM("BEQ LINE40"); _ASM("LDR R7,[SP,R2,LSL #2]"); _ASM("SUBS R7,R6,R7"); _ASM("BEQ LINE140"); _ASM("RSBMI R7,R7,#0"); _ASM("SUB R8,R1,R2"); _ASM("CMP R7,R8"); _ASM("BNE LINE90"); _ASM("LINE140:"); _ASM("SUBS R6,R6,#1"); _ASM("BNE LINE70"); _ASM("SUBS R1,R1,#1"); _ASM("LDR R6,[SP,R1,LSL #2]"); _ASM("BNE LINE140"); _ASM("LINE180:"); _ASM("SUBS R4,R4,#1"); _ASM("BNE LOOPSTART"); _ASM("ADD SP,SP,#8"); _ASM("ADD SP,SP,R3,LSL #2"); _ASM("LDMIA SP!,{R1-R8}"); _ASM("MOV PC,LR"); }

==========================================================================================

HP-200LX / 8086 Assembly --------------------------

var ary:array[0..8] of byte; cnt:word; begin asm MOV WORD PTR CNT,1000 @06: MOV DX,8 LEA BX,ARY MOV CX,0 MOV SI,0 @00: CMP DX,SI JZ @05 INC SI MOV [BX+SI],DL @01: INC CX MOV DI,SI @02: DEC DI JZ @00 MOV AL,[BX+SI] SUB AL,[BX+DI] JZ @04 JNC @03 NEG AL @03: XOR AH,AH ADD AX,DI SUB AX,SI JNZ @02 @04: DEC BYTE PTR [BX+SI] JNZ @01 DEC SI JNZ @04 @05: DEC WORD PTR CNT JNZ @06 MOV CNT,CX end; writeln(cnt); end.

==========================================================================================

COMET Virtual Educational Machine / CASL Assembly ---------------------------------------------------

BGN START LEA GR0,8 ST GR0,DIM LEA GR0,0 LEA GR1,0 L00 CPA GR1,DIM JZE L05 LEA GR1,1,GR1 LD GR3,DIM ST GR3,ARY,GR1 L01 ADD GR0,ONE ST GR1,TMP LD GR2,TMP L02 LEA GR2,-1,GR2 JZE L00 LD GR3,ARY,GR1 SUB GR3,ARY,GR2 JZE L04 JPZ L03 EOR GR3,FFH LEA GR3,1,GR3 L03 ST GR2,TMP ADD GR3,TMP ST GR1,TMP SUB GR3,TMP JNZ L02 L04 LD GR3,ARY,GR1 LEA GR3,-1,GR3 ST GR3,ARY,GR1 JNZ L01 LEA GR1,-1,GR1 JNZ L04 L05 EXIT ONE DC 1 FFH DC #FFFF DIM DS 1 TMP DS 1 ARY DS 9 END

(Result in GR0)

==========================================================================================

COMP-X Virtual Educational Machine / CAP-X Assembly -----------------------------------------------------

:START:32 BGN:LAI :0:8 :ST :0:DIM :LAI :0:0 :LAI :1:0 L00:ST :1:TMP :LD :3:TMP :SUB :3:DIM :JNZ :3:L06 :JC :3:L05 L06:LAI :1:1:1 :LD :3:DIM :ST :3:ARY:1 L01:ADD :0:ONE :ST :1:TMP :LD :2:TMP L02:LAI :2:255:2 :JNZ :2:L07 :JC :3:L00 L07:LD :3:ARY:1 :SUB :3:ARY:2 :JNZ :3:L08 :JC :3:L04 L08:JC :2:L03 :EOR :3:FFH :LAI :3:1:3 L03:ST :2:TMP :ADD :3:TMP :ST :1:TMP :SUB :3:TMP :JNZ :3:L02 L04:LD :3:ARY:1 :LAI :3:255:3 :ST :3:ARY:1 :JNZ :3:L01 :LAI :1:255:1 :JNZ :1:L04 L05:WRITE:0:10 :HJ :0:BGN ONE:CONST:1 FFH:CONST:FFFF DIM:RESV :1 TMP:RESV :1 ARY:RESV :9 :END :BGN

==========================================================================================

RL-H1800 / 6502 Assembly --------------------------

LDA #8 STA DIM LDX #0 L00: CPX DIM BEQ L05 INX LDA DIM STA ARY,X L01: TXA TAY INC CTL BNE L02 INC CTH L02: DEY BEQ L00 LDA ARY,X SEC SBC ARY,Y BEQ L04 BCS L03 EOR #$FF ADC #1 L03: STA TMP TYA CLC ADC TMP STA TMP CPX TMP BNE L02 L04: DEC ARY,X BNE L01 DEX BNE L04 L05: RTS CTL: DC 0 CTH: DC 0 DIM: DS 1 TMP: DS 1 ARY: DS 9

==========================================================================================

TI-89 / 68000 Assembly ------------------------

MOVEM D3-D5,-(A7) MOVE.W #1000,D5 L06: MOVEQ #8,D2 LEA ARY(PC),A0 CLR.W D3 CLR.L D0 L00: CMP.B D0,D2 BEQ L05 ADDQ.B #1,D0 MOVE.B D2,0(A0,D0.W) L01: ADDQ.W #1,D3 MOVE.L D0,D1 L02: SUBQ.B #1,D1 BEQ L00 MOVE.B 0(A0,D0.W),D4 SUB.B 0(A0,D1.W),D4 BEQ L04 BCC L03 NEG.B D4 L03: ADD.B D1,D4 SUB.B D0,D4 BNE L02 L04: SUBQ.B #1,0(A0,D0.W) BNE L01 SUBQ.B #1,D0 BNE L04 L05: SUBQ.W #1,D5 BNE L06 MOVE.W D3,CNT MOVEM (A7)+,D3-D5 RTS CNT: DS.W 1 ARY: DS.B 9

==========================================================================================

MK-85 MK-90 / PDP-11 Assembly -------------------------

.RADIX 16 MOV #64,R5 L06: CLR R3 CLR R0 L00: CMP #8,R0 BEQ L05 INC R0 MOVB #8,ARY(R0) L01: INC R3 MOV R0,R1 L02: DEC R1 BEQ L00 MOVB ARY(R0),R2 MOVB ARY(R1),R4 SUB R2,R4 BEQ L04 BCC L03 NEG R4 L03: ADD R1,R4 SUB R0,R4 BNE L02 L04: DECB ARY(R0) BNE L01 SOB R0,L04 L05: SOB R5,L06 MOV R3,CNT RTS PC CNT: .BLKW 1 ARY: .BLKB 9

==========================================================================================

CC-40 TI-74 TI-95 / TMS7000 Assembly --------------------------

CLR R10 CLR R11 CLR R12 CLR R14 CLR R15 L00 MOV %8,A CMP R11,A JZ L05 INC R11 STA *R11 L01 INC R15 ADC %0,R14 MOV R11,R13 L02 DEC R13 JZ L00 LDA *R13 MOV A,R9 LDA *R11 SUB R9,A JZ L04 JC L03 INV A INC A L03 ADD R13,A SUB R11,A JNZ L02 L04 LDA *R11 DEC A STA *R11 JNZ L01 DJNZ R11,L04 L05 RETS

(Array in internal RAM)

==========================================================================================

PC-1360 PC-1402 / ESR-H SC61860 Assembly ----------------------------------

RA LP 8 EXAM RA LP 9 EXAM LII 0 L00: LIA 8 LP 0 CPMA JRZ L05 INCI EXAB LDM ADIA 10 STP EXAB EXAM L01: LP 0 LDM LP 1 EXAM INCK JRNZ L02 INCL L02: DECJ JRZ L00 LP 0 LDM ADIA 10 STP LDM EXAB LP 1 LDM ADIA 10 STP LDM LP 3 SBM JRZ L04 JRNC L03 ADM EXAB SBM L03: LP 1 LDM LP 3 ADM LP 0 LDM LP 3 SBM JRNZ L02 L04: LP 0 LDM ADIA 10 STP SBIM 1 JRNZ L01 DECI JRNZ L04 L05: RTN

(Array in internal RAM)

==========================================================================================

PC-E500S / ESR-L SC62015 Assembly -----------------------------------

MV (00H),8 MV (ECH),0 MV I,0 L00: CMP (00H),(ECH) JRZ L05 INC (ECH) MV (BP+00H),(00H) L01: INC I MV (EDH),(ECH) L02: DEC (EDH) JRZ L00 MV A,(BP+00H) SUB A,(PX+00H) JRZ L04 JRNC L03 XOR A,FFH INC A L03: ADD A,(EDH) SUB A,(ECH) JRNZ L02 L04: DEC (BP+00H) JRNZ L01 DEC (ECH) JRNZ L04 L05: RTN

(Array in internal RAM)

==========================================================================================

PC-1500A / LH5801 Assembly ----------------------------

LDI YH,8 LDI XL,0 L00: LDA YH CPA XL BZS L05 INC XL LDI UH,HI(ARY) LDI UL,LO(ARY) LDA XL ADR U LDA YH STA (U) L01: LDA XL STA YL ADI (CNT),1 BZR L02 ADI (CNT+1),1 L02: DEC YL BZS L00 LDI UH,HI(ARY) LDI UL,LO(ARY) LDA XL ADR U LDA (U) STA XH LDI UH,HI(ARY) LDI UL,LO(ARY) LDA YL ADR U LDA XH SEC SBC (U) BZS L04 BCS L03 EAI FFH INC A L03: REC ADC YL CPA XL BZR L02 L04: LDI UH,HI(ARY) LDI UL,LO(ARY) LDA XL ADR U ADI (U),-1 BZR L01 DEC XL BZR L04 L05: RTN CNT: DW 0 ARY: DS 9

==========================================================================================

PC-1600 PC-E220 PC-G850S PC-G850V PC-G850VS TI-83+ SE / Z80 Assembly --------------------------

ORG 0100H LD HL,0400H LD (CNT),HL LD IY,CNT L06: LD BC,0 LD D,0 LD IX,0 L00: LD A,8 CP C JR Z,L05 INC C LD HL,ARY ADD HL,BC LD (HL),A L01: INC IX LD E,C L02: DEC E JR Z,L00 LD HL,ARY ADD HL,BC LD A,(HL) LD HL,ARY ADD HL,DE SUB (HL) JR Z,L04 JR NC,L03 NEG L03: ADD A,E SUB C JR NZ,L02 L04: LD HL,ARY ADD HL,BC DEC (HL) JR NZ,L01 DEC C JR NZ,L04 L05: DEC (IY) JR NZ,L06 DEC (IY+1) JR NZ,L06 LD (CNT),IX RET CNT: DW 0 ARY: DS 9 END

(PC-1600/E220 M1 cycle: +1 wait state and +2 if CB/DD/ED/FD prefixed)

==========================================================================================

FX-8000G / µPD1007 Assembly -----------------------------

LD R0,8*2 LD R1,2 LDM R3..R4,0 LD R73,0 L00: TSB R73,R0 JMP Z,L05 AD R73,2 PST AS,R73 LD I64,R0 L01: ADM R3..R4,1 LD R2,R73 LD R74,R2 L02: SB R74,2 JMP Z,L00 PST AS,R74 LD R2,I64 PST AS,R73 SB R2,I64 JMP Z,L04 JMP NC,L03 CMP R2 L03: AD R2,R74 SB R2,R73 JMP NZ,L02 L04: PST AS,R73 SB I64,R1 JMP NZ,L01 SB R73,2 JMP NZ,L04 L05: RTN

(Array in internal RAM)

==========================================================================================

FX-7500G / µPD1037 Assembly SF-9700 / µPD3055 Assembly SF-9350 / SF-R20 / HD62076 Assembly --------------------------------------

ORG &H7D26 ARY EQU &HC000 LD R64,8 LDM R3..R4,0 LD R0,0 L00: TSB R0,R64 SJMP Z,L05 AD R0,1 LDW IX,ARY-1 ADW IX,R0 ST +(IX),R64 L01: ADM R3..R4,1 LD R65,R0 L02: SB R65,1 SJMP Z,L00 LDW IX,ARY ADW IX,R0 LD R5,(IX)+ LDW IX,ARY ADW IX,R65 LD R66,(IX)+ SB R5,R66 SJMP Z,L04 SJMP NC,L03 CMP R5 L03: AD R5,R65 LD R66,R0 SB R5,R66 SJMP NZ,L02 L04: LDW IX,ARY ADW IX,R0 SB (IX),1 SJMP NZ,L01 SB R0,1 SJMP NZ,L04 L05: RTN

==========================================================================================

FX-890P Z-1GRA / 8086 Assembly ------------------------

ORG 2000H MOV WORD PTR CNT,1000 L06: MOV DX,8 LEA BX,ARY MOV CX,0 MOV SI,0 L00: CMP DX,SI JZ L05 INC SI MOV [BX+SI],DL L01: INC CX MOV DI,SI L02: DEC DI JZ L00 MOV AL,[BX+SI] SUB AL,[BX+DI] JZ L04 JNC L03 NEG AL L03: XOR AH,AH ADD AX,DI SUB AX,SI JNZ L02 L04: DEC BYTE PTR [BX+SI] JNZ L01 DEC SI JNZ L04 L05: DEC WORD PTR CNT JNZ L06 MOV CNT,CX IRET CNT DW 0 ARY DB 9 DUP (?) END

10 DEFSEG=0 20 CALL &H2000 30 PRINT PEEK(&H2044)+PEEK(&H2045)*256

==========================================================================================

FX-9860G SD FX-9860GII / SH-3 Assembly ----------------------------

.SECTION P,CODE .EXPORT _QBENCH _QBENCH: MOV.L #100000,R7 L06: MOV.B #8,R3 MOV.L ARY,R0 MOV.B #0,R1 MOV.B #0,R4 L00: CMP/EQ R1,R3 BT L05 MOV.B R6,@(R0,R1) ADD #1,R1 MOV R3,R6 L01: ADD #1,R4 MOV R1,R2 L02: DT R2 BT L00 MOV.B @(R0,R2),R5 CMP/EQ R6,R5 BT L04 SUBC R6,R5 BF L03 NEG R5,R5 L03: ADD R2,R5 CMP/EQ R1,R5 BF L02 L04: DT R6 BF L01 DT R1 MOV.B @(R0,R1),R6 BF L04 L05: DT R7 BF L06 RTS NOP ARY: .DATA.L ARX .SECTION B,DATA ARX: .RES.B 9 .END

==========================================================================================

PB-1000 / HD61700 Assembly ----------------------------

ORG &H7000 START L07 DS 2 DS 9 L07: LDW $7,1000 L06: LD $2,8 PRE IZ,&H7002 LDW $3,0 LD $0,$31 L00: SBC $2,$0 JR Z,L05 AD $0,$30 ST $2,(IZ+$0) L01: ADW $3,$30 LD $1,$0 L02: SB $1,$30 JR Z,L00 LD $5,(IZ+$0) LD $6,(IZ+$1) SB $5,$6 JR Z,L04 JR NC,L03 CMP $5 L03: AD $5,$1 SB $5,$0 JR NZ,L02 L04: SB (IZ+$0),$30 JR NZ,L01 SB $0,$30 JR NZ,L04 L05: SBW $7,$30 JR NZ,L06 PRE IZ,&H7000 STW $3,(IZ+$31) RTN

(Built-in assembler doesn't support all addressing modes)

==========================================================================================

PB-2000C / HD61700 Assembly -----------------------------

{$c+,d-,f-,i-,r-,s-,t-,v-} var ary:array[0..8] of byte; cnt:word; begin inline( PST IE,0 LDW $7,1000 @06: LD $2,8 PRE IZ,>ARY LDW $3,0 LD $0,#0 @00: SBC $2,#2 JR Z,@05 AD $0,#1 ST $2,(IZ+#2) @01: ADW $3,#1 LD $1,#2 @02: SB $1,#1 JR Z,@00 LD $5,(IZ+#2) LD $6,(IZ+$1) SB $5,$6 JR Z,@04 JR NC,@03 CMP $5 @03: AD $5,$1 SB $5,#2 JR NZ,@02 @04: SB (IZ+#2),$30 JR NZ,@01 SB $0,#1 JR NZ,@04 @05: SBW $7,#1 JR NZ,@06 PRE IZ,>CNT STW $3,(IZ+#0) PST IE,&H18); writeln(cnt); end.

==========================================================================================

PB-1000 / PB-Forth --------------------

8 CONSTANT RR 0 VARIABLE SS 0 VARIABLE XX 0 VARIABLE YY HERE RR 1+ ALLOT CONSTANT AA : RCLAA @ AA + C@ ; : STOAA @ AA + C! ; : NQCORE 0 SS ! 0 XX ! BEGIN 1 XX +! RR XX STOAA BEGIN 1 SS +! XX @ YY ! BEGIN YY @ 1 > WHILE -1 YY +! XX RCLAA YY RCLAA - DUP 0 = SWAP ABS XX @ YY @ - = OR IF 0 YY ! BEGIN XX RCLAA 1 - DUP XX STOAA 0 = WHILE -1 XX +! REPEAT THEN REPEAT YY @ 1 = UNTIL RR XX @ = UNTIL ; : NQUEENS ( STARTTIMER ) NQCORE ." S=" SS @ . ( DISPLAYTIMER ) CR ;

==========================================================================================

PB-2000C / DL-Pascal ROM Card -------------------------------

{$c+,d-,f-,i-,r-,s-,t-,v-} var a:array[0..8] of shortint; s,n:word; procedure qbench; label l0,l1,l2,l3; var x,y,r,t:shortint; begin r:=8; s:=0; x:=0; l0: if x=r then exit; inc(x); a[x]:=r; l1: inc(s); y:=x; l2: dec(y); if y=0 then goto l0; t:=a[x]-a[y]; if t=0 then goto l3; if x-y<>abs(t) then goto l2; l3: dec(a[x]); if a[x]<>0 then goto l1; dec(x); if x<>0 then goto l3; end; begin inline(PST IE,0); for n:=1 to 100 do qbench; inline(PST IE,&H18); writeln(s); end.

Compiling speed [Turbo x2.2]: 2.4 [1.1] sec

Additional Batch Interpreter Test -----------------------------------
:0 @a=a+1 @if a>0 then goto 0

Execution speed [Turbo x2.2]: 438 [950] loops/min

(Turbo Pascal 5.0 compatible native compiler)

==========================================================================================

PB-2000C / Prolog ROM Card OM-51P -----------------------------------

qbench:- move([1,2,3,4,5,6,7,8],[],S), write(S). move([],S,S). move(L,Qs,S):- sel(Q,L,R), safe(Q,1,Qs), move(R,[Q|Qs],S). sel(X,[X|T],T). sel(X,[H|T],[H|T1]):- sel(X,T,T1). safe(_,_,[]). safe(Q,D,[Q1|Qs]):- =/=(abs(Q-Q1),D), D1 is D+1, safe(Q,D1,Qs).

Execution speed [Turbo x2.2]: 65.4 [30.1] sec

Approximated comparability correction:

65.4 [30.1] sec x 876 Nodes ----------------------------- = 170 [78] sec 336 Nodes

Additional LIPS Test ----------------------
reverse([],[]). reverse([H|T],L):- reverse(T,R), append(R,[H],L). append([],L,L). append([H|T],L,[H|U]):- append(T,L,U). rev:- reverse([1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0],_),!. r:- rev,fail. r. lips:- r,r,r,r,r,r,r,r,r,r.

Execution speed [Turbo x2.2]: 74.4 [34.3] sec

5000 Logical Inferences ------------------------- = 67 [146] LIPS 74.4 [34.3] sec

(DEC-10 Prolog compatible bytecode compiler)

==========================================================================================

AI-1000 / Lisp ----------------

(defun qbench () (prog () (setq r 8) (setq a (make-array (1+ r))) (setq s 0) (setq x 0) loop0 (if (= x r) (return s)) (setf (aref a (setq x (1+ x))) r) loop1 (setq s (1+ s)) (setq y x) loop2 (if (zerop (setq y (1- y))) (go loop0)) (if (zerop (setq z (- (aref a x) (aref a y)))) (go loop3)) (if (/= (- x y) (abs z)) (go loop2)) loop3 (unless (zerop (setf (aref a x) (1- (aref a x)))) (go loop1)) (unless (zerop (setq x (1- x))) (go loop3))))

(MacLISP dialect (lexically scoped (tail-call optimized (lisp-1 (bytecode compiler)))))

==========================================================================================

Credits to all helpers.
pb2000"@"imail.de

Edited: 5 Feb 2024, 5:59 p.m.

Password:

[ Return to the Message Index ]

Go back to the main exhibit hall