__NOTOC__
Synthetic programming (SP) is an advanced technique for
programming the
HP-41C
The HP-41C series are programmable, expandable, continuous memory handheld RPN calculators made by Hewlett-Packard from 1979 to 1990. The original model, HP-41C, was the first of its kind to offer alphanumeric display capabilities. Later came ...
and
Elektronika B3-34 calculators
An electronic calculator is typically a portable electronic device used to perform calculations, ranging from basic arithmetic to complex mathematics.
The first solid-state electronic calculator was created in the early 1960s. Pocket-siz ...
, involving creating
instructions (or combinations of instructions and operands) that cannot be obtained using the standard capabilities of the calculator.
[
Some HP-41C instructions are coded in memory using multiple bytes. Some of these sequence of bytes correspond to instructions the calculator is able to execute, but these cannot be entered in the program memory using conventional program entry methods (''i.e.'' using the calculator as described in the user's manual). Synthetic programming uses a bug in the calculator firmware to enter those byte sequences as a sequence of other instructions, then partially skipping halfway through the first instruction, so that the calculator believes the end of the first instruction is actually the beginning of a new one. This was called ''byte jumper'' or ''byte grabber''.
It is not clear if the creators behind the HP-41 were aware of all these "black holes". HP did not officially support these techniques, but probably was intrigued by the strange operations and in some cases allowed enthusiasts to practice in their offices and helped to improve it among a whole sense of curiosity.
]
HP-15C
Synthetic programming is also possible on the (original) HP-15C.
See also
* Casio FX-602P series
* Illegal opcode
An illegal opcode, also called an unimplemented operation, unintended opcode or undocumented instruction, is an instruction to a CPU that is not mentioned in any official documentation released by the CPU's designer or manufacturer, which ne ...
* Logic synthesis
In computer engineering, logic synthesis is a process by which an abstract specification of desired circuit behavior, typically at register transfer level (RTL), is turned into a design implementation in terms of logic gates, typically by a co ...
* NOMAS (support)
* Overlapping instructions
In computer programming, machine code is computer code consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). For conventional binary computers, machine code is the binaryOn nonb ...
* Self-modifying code
In computer science, self-modifying code (SMC or SMoC) is source code, code that alters its own instruction (computer science), instructions while it is execution (computing), executing – usually to reduce the instruction path length and imp ...
* Side effect (computer science)
In computer science, an operation, function or expression is said to have a side effect if it has any observable effect other than its primary effect of reading the value of its arguments and returning a value to the invoker of the operation. ...
* Variable-length instruction set
* Yeggogology (Cyrillic: "Еггогология")
References
Further reading
*
*
*
*
*
*
* http://www.jeffcalc.hp41.eu/divers/files/ppcjt-v1n3.pdf
Synthetic programming
{{compu-prog-stub