HP 42S/DM42: Base Programs
Unsigned NOT
The program UNOT applies a NOT to a binary integer (flips zeros to ones and ones to zeros) using unsigned binary integers. The number of bits (size) is prompted.
HP 42S/DM42 Program UNOT
00 {40-Byte Prgm}
01 LBL "UNOT"
02 BINM
03 "BIN?"
04 PROMPT
05 STO 01
06 EXITALL
07 "SIZE?"
08 PROMPT
09 STO 02
10 2
11 X<>Y
12 Y↑X
13 RCL- 01
14 STO 02
15 1
16 -
17 BINM
18 END
Examples:
Unsigned NOT of 10100, size 5: 1011 (01011)
Unsigned NOT of 10100, size 8: 11101011
Shift Left
Makes a binary integer shift left: a zero is added to the right side of the integer and "drops" off the left most digit. The number of bits (size) is prompted. The binary number is assumed to be non-negative.
HP 42S/DM42 Program SL16
00 {35-Byte Prgm}
01 LBL "SL16"
02 BINM
03 "BIN?"
04 PROMPT
05 EXITALL
06 2
07 ×
08 "SIZE?"
09 PROMPT
10 2
11 X<>Y
12 Y↑X
13 MOD
14 BINM
15 END
Examples:
Shift Left: 10100, size 5: 1000 (01000)
Shift Left: 10100, size 8: 101000 (00101000)
Shift Right (Logical)
Makes a binary integer shift right: a zero is added to the left side of the integer and "drops" off the left most digit. The binary number is assumed to be non-negative. A logical shift right divides an integer by 2 and taking the integer result.
HP 42S/DM42 Program SR16
00 {24-Byte Prgm}
01 LBL "SR16"
02 BINM
03 "BIN?"
04 PROMPT
05 EXITALL
06 2
07 ÷
08 IP
09 BINM
10 END
Examples:
Shift Right: 10100: 1010
Shift Right: 1010: 101
The next two programs deals with RGB and HEX codes for computer colors.
HP 42S/DM42 Program CLR→: RBG to Hexadecimal Code
00 {51-Byte Prgm}
01 LBL "CLR→"
02 DECM
03 "RED?"
04 PROMPT
05 65536
06 BASE×
07 "GREEN?"
08 PROMPT
09 256
10 BASE×
11 BASE+
12 "BLUE?"
13 PROMPT
14 BASE+
15 HEXM
16 END
Example:
Red: 221, Green: 80, Blue 109
Result: HEX Code: DD506D
HP 42S/DM42 Program →CLR: Hexadecimal to RGB Code
00 {63-Byte Prgm}
01 LBL "→CLR"
02 HEXM
03 "HEX CODE?"
04 PROMPT
05 STO 00
06 DECM
07 65536
08 BASE÷
09 STOP // Red
10 65536
11 BASE×
12 RCL 00
13 X<>Y
14 BASE-
15 STO 00
16 256
17 BASE÷
18 STOP // Green
19 256
20 BASE×
21 RCL 00
22 X<>Y
23 BASE-
24 END
Example:
HEX Code: 103E22
Result: Red: 16, Green: 62, Blue: 34
Eddie
All original content copyright, © 2011-2022. 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.