Content deleted Content added
m Replace or disable a template per TFD outcome; no change in content |
m →top: HTTP to HTTPS for SourceForge |
||
(6 intermediate revisions by one other user not shown) | |||
Line 1:
{{One source|date=March 2025}}
'''Keystroke programming''' describes a specific way of programming by which each keystroke on a device or application is recorded in some way and then played back so that the recorded key-presses can be repeated multiple times. Keystroke programming is most commonly but not exclusively found in [[programmable calculator]]
==
[[File:TI58c.jpg|thumb|The TI-58C]]
The Texas Instruments [[TI-59 / TI-58|TI-58
{| class="wikitable" style="background-color:#000000;"
Line 60 ⟶ 61:
You can see that the codes 85, 95 and 91 correspond to the positions of the keys labelled {{TI-5x/Keys/Yellow| + }}, {{TI-5x/Keys/Yellow| {{=}} }} and {{TI-5x/Keys/Brown|R/S}} on the grid above, but the code for the {{TI-5x/Keys/White| 2 }} is not 83 as you would expect from the grid position, but 02. This last code was chosen to be more easily understandable by a human trying to read the program. There is no row 0, so the codes 00 .. 09 are used to represent the keys {{TI-5x/Keys/White| 0 }} .. {{TI-5x/Keys/White| 9 }}.
=== Context-
These TI calculators allowed for addressing up to 100 data memory locations, numbered 00 to 99 (some models had a lower limit than this). A keystroke sequence like {{TI-5x/Keys/Brown|STO}} {{TI-5x/Keys/White| 4 }} {{TI-5x/Keys/White| 2 }} (store the currently-displayed number into memory 42) would be encoded as 42 42. In this case the first 42 is the key code for the {{TI-5x/Keys/Brown|STO}} key, but the second 42 is not a key code, but a memory register number. The calculator knows to interpret it as such because that's what has to follow the code for the {{TI-5x/Keys/Brown|STO}} key.
Line 70 ⟶ 71:
Most of the keys on the keypad can be used as symbolic labels. For example, sequences like {{TI-5x/Keys/Brown|GTO}} {{TI-5x/Keys/Brown|STO}} and {{TI-5x/Keys/Brown|GTO}} {{TI-5x/Keys/Brown|GTO}} are legitimate, provided that {{TI-5x/Keys/Brown|STO}} and {{TI-5x/Keys/Brown|GTO}} have in fact been defined as labels somewhere in the program.
=== Modifier
Most of the keys had multiple functions, depending on whether {{TI-5x/Keys/Brown|INV}} or {{TI-5x/Keys/Yellow|2nd}} had been pressed beforehand. {{TI-5x/Keys/Brown|INV}} invoked the "inverse" (whatever that meant) of the following function, and was recorded in a program as a separate keystroke (code 22), while {{TI-5x/Keys/Yellow|2nd}} invoked a completely different function which was written on the keypad faceplate just above the key. For example, pressing {{TI-5x/Keys/Yellow|2nd}} {{TI-5x/Keys/Brown|x<sup>2</sup>}} invoked the {{TI-5x/Keys/Alt|sin}} function, while {{TI-5x/Keys/Brown|INV}} {{TI-5x/Keys/Yellow|2nd}} {{TI-5x/Keys/Brown|x<sup>2</sup>}} (or {{TI-5x/Keys/Brown|INV}} {{TI-5x/Keys/Alt|sin}}) gave you the arcsine.
Line 109 ⟶ 110:
|}
=== Merged
The {{TI-5x/Keys/Alt|Ind}} key allows for indirection: wherever a reference to a memory register or a program ___location is allowed, this key can be used to fetch the actual value from a memory register. For example, the key sequence {{TI-5x/Keys/Brown|RCL}} {{TI-5x/Keys/Alt|Ind}} {{TI-5x/Keys/White| 1 }} {{TI-5x/Keys/White| 0 }} means to fetch the value in memory register 10, and use that value in turn as the number of a memory register whose contents are to be fetched as the current operand. However, in this case the {{TI-5x/Keys/Alt|Ind}} cannot be encoded as code 40, because the code sequence 43 40 would be interpreted as {{TI-5x/Keys/Brown|RCL}} {{TI-5x/Keys/White| 4 }} {{TI-5x/Keys/White| 0 }}, not {{TI-5x/Keys/Brown|RCL}} {{TI-5x/Keys/Alt|Ind}}.
|