Swiss Micros DM16L: Advanced Boolean and Factorial (up to 20)
Introduction
The program listing, for the Swiss Micros DM16L and Hewlett Packard HP 16C, will assign the following functions to the labels:
A: NAND: nand(x, y) = not(x and y)
B: NOR: nor(x, y) = not(x or y)
C: XNOR: xnor(x, y) = (not x and not y) or (x and y)
D: Implication: y → x = (not y) or x
E: Factorial: x! (x is a positive integer up to 20, 64 word size
NAND, NOR, NXOR, and Implication are advanced Boolean functions. You can check out program code for the HP Prime here:
http://edspi31415.blogspot.com/2020/03/hp-prime-advanced-boolean-functions.html
Program - DM16L/HP 16C
// NAND
001 43,22,A LBL A
002 42,20 AND
003 42,30 NOT
004 43,21 RTN
// NOR
005 43,22,b LBL B
006 42,40 OR
007 42,30 NOT
008 43,21 RTN
// XNOR
009 43,22,C LBL C
010 44,1 STO 1
011 42,30 NOT
012 34 x<>y
013 44,2 STO 2
014 42,30 NOT
015 42,20 AND
016 45,1 RCL 1
017 45,2 RCL 2
018 42,20 AND
019 42,40 OR
020 43,21 RTN
// Implication
021 43,22,d LBL D
022 34 x<>y
023 42,30 NOT
024 42,40 OR
025 43,21 RTN
// Factorial
026 43,22,E LBL E
027 44,32 STO I
028 1 1
029 44,1 STO 1
030 43,22,1 LBL 1
031 45,1 RCL 1
032 45,32 RCL I
033 20 ×
034 44,1 STO 1
035 43,23 DSZ
036 22,1 GTO 1
037 45,1 RCL 1
038 43,21 RTN
Examples
Let:
R1 = 1011 0001
R2 = 1100 1100
Set up: 2-16-0000 (2's complement, 16 bits)
RCL 2, RCL 1, GSB A NAND(R2, R1): 0111 1111*
RCL 2, RCL 1, GSB B NOR(R2, R1): 0000 0010*
RCL 2, RCL 1, GSB C XNOR(R2, R1): 1000 0010*
RCL 2, RCL 1, GSB D R2 → R1: 1100 1110*
* only the last eight bits
Set word size to 64:
0 [ f ] [ STO ] (WSIZE)
5 GSB E 5! = 120
9 GSB E 9! = 362880*
* if the word size is insufficient, it will not show 362880 but a weird result as an overflow
12 GSB E (64 word size)
12! = 4 79001600
Window 1: 4
Window 0: 79001600
20 GSB E
20! = 243 29020081 76640000
Window 2: 243
Window 1: 29020081
Window 0: 76640000
Source for the Advanced Boolean Functions:
John W. Harris and Horst Stocker. Handbook of Mathematics and Computation Science Springer: New York, NY. 2006. ISBN 978-0-387-94746-4
Eddie
All original content copyright, © 2011-2021. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.