Synthetic programming (HP-41)
Synthetic programming (SP) is an advanced technique for programming the HP-41C and Elektronika B3-34 calculators, involving creating instructions (or combinations of instructions and operands) that cannot be obtained using the standard capabilities of the calculator.[1]
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.[2][3]
See also
- Casio FX-602P series
- Illegal opcode
- Logic synthesis
- NOMAS (support)
- Overlapping instructions
- Self-modifying code
- Side effect (computer science)
- Variable-length instruction set
- Yeggogology (Cyrillic: "Еггогология")
References
- ^ Ristanovic, Dejan; Proti, Jelica (2012). "Once Upon a Pocket: Programmable Calculators from the Late 1970s and Early 1980s and the Social Networks Around Them". IEEE Annals of the History of Computing. 34 (3): 55–66. doi:10.1109/MAHC.2011.63. S2CID 15888694.
- ^ Smith, Eric L. "Brouhaha" (2023-01-30) [2004]. "HP-15C Synthetics". Archived from the original on 2023-09-25. Retrieved 2023-09-25.
- ^ "HP 15C Synthetics and Synthetic Programming". Retrieved 2022-08-10.
Further reading
- Wickes, William C. (1980). Synthetic Programming on the HP-41C. ISBN 0-96252580-4.
- Jarett, Keith (1982). HP-41 Synthetic Programming Made Easy. United States: Synthetix.
- Dodin, Jean-Daniel (1985). Inside the HP-41C. ISBN 0-9612174-4-8.
- Mier-Jędrzejowicz, Włodzimierz "Włodek" Anthony Christopher (1985). Extend Your HP-41. ISBN 0-9510733-0-3.
- McCornack, Alan; Jarett, Keith (1987). HP-41 Advanced Programming Tips. ISBN 0-9612174-6-4.
- Smith, Eric (2004-09-26). "Microcode-Level Calculator Simulation" (PDF). Hewlett-Packard Handheld Conference in San Jose, California, USA.
- http://www.jeffcalc.hp41.eu/divers/files/ppcjt-v1n3.pdf