summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/reference.md183
-rw-r--r--programs/dms2hms.lst16
-rw-r--r--programs/hfp.lst35
-rw-r--r--programs/hms2dms.lst17
-rw-r--r--programs/ow.lst23
5 files changed, 274 insertions, 0 deletions
diff --git a/doc/reference.md b/doc/reference.md
new file mode 100644
index 0000000..5026834
--- /dev/null
+++ b/doc/reference.md
@@ -0,0 +1,183 @@
+# HP‑41C Befehlsreferenz (Standardfunktionen)
+
+Alle Befehlsnamen sind so notiert, wie sie im Display bzw. im Programmlisting erscheinen.[page:1]
+
+## A
+
+- ABS – Absolutwert von X.[page:1]
+- ACOS – Arkuskosinus von X im aktuellen Winkelmodus.[page:1]
+- AOFF – Schaltet ALPHA‑Modus aus.[page:1]
+- AON – Schaltet ALPHA‑Modus ein.[page:1]
+- ARCL – Inhalt eines Registers an ALPHA anhängen.[page:1]
+- ASHF – ALPHA‑Register um 6 Zeichen nach links schieben.[page:1]
+- ASIN – Arkussinus von X im aktuellen Winkelmodus.[page:1]
+- ASN – Funktion/Programm einer Taste für USER‑Modus zuweisen.[page:1]
+- ASTO – Linke 6 Zeichen von ALPHA in Register speichern.[page:1]
+- ATAN – Arkustangens von X im aktuellen Winkelmodus.[page:1]
+- AVIEW – ALPHA‑Register anzeigen, bis Taste gedrückt wird.[page:1]
+
+## B
+
+- BEEP – Kurzen Signalton ausgeben.[page:1]
+- BST – Schritt zurück im Programm / Programmschritt rückwärts anzeigen.[page:1]
+
+## C
+
+- CAT – KATALOG – Auflisten von Programmen/Funktionen (CAT 1/2/3).[page:1]
+- CF – Flag nn löschen.[page:1]
+- CHS – Vorzeichen von X ändern.[page:1]
+- CLA – ALPHA‑Register löschen.[page:1]
+- CLD – Anzeige und sichtbares Register löschen.[page:1]
+- CLP – Programm löschen (CLP "Name" oder aktuelles Programm).[page:1]
+- CLRG – Alle Datenregister löschen.[page:1]
+- CLΣ – Statistikregister löschen.[page:1]
+- CLST – Stackregister löschen.[page:1]
+- CLX – X‑Register löschen.[page:1]
+- COPY – Benutzerprogramm kopieren.[page:1]
+- COS – Kosinus von X.[page:1]
+
+## D
+
+- D‑R – Grad → Radiant umrechnen.[page:1]
+- DEC – Oktal → Dezimal umrechnen.[page:1]
+- DEG – Winkelmodus Grad.[page:1]
+- DEL – n Befehle ab aktueller Zeile löschen.[page:1]
+- DSE – Decrement and skip if ≤ (Zählerschritt mit Test).[page:1]
+
+## E
+
+- END – Programmende / Trennt globale Programme.[page:1]
+- ENG – Ingenieur‑Darstellung.[page:1]
+- ENTER↑ – Stack nach oben schieben.[page:1]
+- E↑X – Exponentialfunktion \(e^x\).[page:1]
+- E↑X‑1 – \(e^x − 1\) für kleine x.[page:1]
+
+## F
+
+- FACT – Fakultät von X (nur ganzzahlig, nicht negativ).[page:1]
+- FC? – Test: Flag nn ist gelöscht? (ggf. Sprung).[page:1]
+- FC?C – Test und Flag nn löschen.[page:1]
+- FIX – Festkomma‑Darstellung mit n Nachkommastellen.[page:1]
+- FRC – Nachkommateil von X.[page:1]
+- FS? – Test: Flag nn ist gesetzt?[page:1]
+- FS?C – Test und Flag nn löschen.[page:1]
+
+## G
+
+- GRAD – Winkelmodus Grad‑Gon (400).[page:1]
+- GTO – Sprung zu Marke / Zeilennummer / Label / GTO .. PACK.[page:1]
+
+## H
+
+- HMS – Dezimalstunden → h.mmss.[page:1]
+- HMS+ – Addition im HMS‑Format.[page:1]
+- HMS‑ – Subtraktion im HMS‑Format.[page:1]
+- HR – h.mmss → Dezimalstunden.[page:1]
+
+## I
+
+- INT – Ganzzahlteil von X.[page:1]
+- ISG – Increment and skip if > (Zählerschritt mit Test).[page:1]
+
+## L
+
+- LASTX – Vorheriger X‑Wert.[page:1]
+- LBL – Label (lokal/global) im Programm setzen.[page:1]
+- LN – Natürlicher Logarithmus.[page:1]
+- LN1+X – ln(1+x) für kleine x.[page:1]
+- LOG – Zehnerlogarithmus.[page:1]
+
+## M
+
+- MEAN – Mittelwert der Statistikdaten.[page:1]
+- MOD – Rest bei Division Y/X.[page:1]
+
+## O
+
+- OCT – Dezimal → Oktal umrechnen.[page:1]
+- OFF – Rechner ausschalten.[page:1]
+- ON – Rechner einschalten / globaler Reset mit ← gehalten.[page:1]
+
+## P
+
+- P‑R – Polar → Kartesisch.[page:1]
+- PACK – Programmspeicher packen.[page:1]
+- % – Prozent von Y auf X (kein Stack‑Pop).[page:1]
+- %CH – Prozentänderung von Y nach X.[page:1]
+- PI – Konstante \(\pi\).[page:1]
+- PROMPT – ALPHA anzeigen, Zahleneingabe abwarten.[page:1]
+- PSE – Pause (~1 s) und X anzeigen.[page:1]
+
+## R
+
+- R↑ – Stack nach oben rotieren.[page:1]
+- R‑D – Radiant → Grad umrechnen.[page:1]
+- R‑P – Kartesisch → Polar.[page:1]
+- RAD – Winkelmodus Radiant.[page:1]
+- RCL – Registerinhalt nach X (inkl. indirekter und Stack‑Adressierung).[page:1]
+- RDN / R↓ – Stack nach unten rotieren.[page:1]
+- RND – X rundet entsprechend FIX/SCI/ENG‑Einstellung.[page:1]
+- RTN – Rückkehr aus Unterprogramm / Run‑Modus: GTO 000.[page:1]
+
+## S
+
+- SDEV – Standardabweichung aus Statistikregistern.[page:1]
+- SCI – Wissenschaftliche Darstellung.[page:1]
+- SF – Flag nn setzen.[page:1]
+- SIN – Sinus von X.[page:1]
+- SIGN – Vorzeichenfunktion von X (±1).[page:1]
+- SIZE – Anzahl Datenregister festlegen.[page:1]
+- SQRT – Quadratwurzel.[page:1]
+- SST – Einzelschritt / Programmschritt anzeigen/ausführen.[page:1]
+- ST+ – X zu Register nn addieren (STO +).[page:1]
+- ST‑ – X von Register nn subtrahieren (STO −).[page:1]
+- ST* – Register nn mit X multiplizieren (STO *).[page:1]
+- ST/ – Register nn durch X teilen (STO /).[page:1]
+- STO – X in Register nn speichern.[page:1]
+- STOP – Programmausführung anhalten.[page:1]
+- Σ+ – Daten in Statistikregister einfügen.[page:1]
+- Σ‑ – Daten aus Statistikregister entfernen.[page:1]
+- ΣREG – Basisregister der Statistikregister setzen.[page:1]
+
+## T
+
+- TAN – Tangens von X.[page:1]
+- TONE – Ton mit Frequenzparameter n (0–9) ausgeben.[page:1]
+
+## V
+
+- VIEW – Inhalt eines Registers anzeigen, ohne X zu überschreiben.[page:1]
+
+## X / Y / Vergleich
+
+- X=0? – Test X = 0.[page:1]
+- X≠0? – Test X ≠ 0.[page:1]
+- X<0? – Test X < 0.[page:1]
+- X≤0? – Test X ≤ 0.[page:1]
+- X>0? – Test X > 0.[page:1]
+- X=Y? – Test X = Y.[page:1]
+- X≠Y? – Test X ≠ Y.[page:1]
+- X<Y? – Test X < Y.[page:1]
+- X≤Y? – Test X ≤ Y.[page:1]
+- X>Y? – Test X > Y.[page:1]
+- X<> – X mit Register nn tauschen.[page:1]
+- X<>Y – X und Y tauschen.[page:1]
+- XEQ – Funktion/Programm ausführen.[page:1]
+- X↑2 – X quadrieren.[page:1]
+- Y↑X – Y hoch X.[page:1]
+
+## Grundrechenarten & Tastenfunktionen
+
+- + – Addiert Y + X → X.[page:1]
+- − – Subtrahiert Y − X → X.[page:1]
+- × – Multipliziert Y × X → X.[page:1]
+- ÷ – Dividiert Y ÷ X → X.[page:1]
+- 1/X – Kehrwert von X.[page:1]
+- 10↑X – Zehnerpotenz \(10^X\).[page:1]
+- R/S – Start/Stop Programmausführung.[page:1]
+- ← – Letzte Ziffer/X löschen, im PRGM Zeile löschen.[page:1]
+- USER – USER‑Modus ein/aus.[page:1]
+- PRGM – Programmmodus ein/aus.[page:1]
+- ALPHA – ALPHA‑Modus umschalten.[page:1]
+
+
diff --git a/programs/dms2hms.lst b/programs/dms2hms.lst
new file mode 100644
index 0000000..e6df6bf
--- /dev/null
+++ b/programs/dms2hms.lst
@@ -0,0 +1,16 @@
+# dms -> hms (Eingabe: Grad.Minuten dezimal; Ausgabe: Grad.MMSS)
+# Beispiel: Eingabe 50.305 interpretiert als 50° 30.5' -> 50.3030 (für HMS+, HMS-)
+# ist mit ASN DMS2HMS auf SQRT gemappt im User mode
+
+01 LBL DMS2HMS
+02 ENTER↑ # Eingabe duplizieren
+03 INT # Grad
+04 X<>Y # X: Eingabe, Y: Grad
+05 FRC # Minutenanteil (dezimal/100)
+06 100
+07 *
+08 60
+09 /
+10 + # Grad + Minuten/60 (Dezimalgrad)
+11 HMS # in HMS-Format wandeln
+12 RTN
diff --git a/programs/hfp.lst b/programs/hfp.lst
new file mode 100644
index 0000000..dced588
--- /dev/null
+++ b/programs/hfp.lst
@@ -0,0 +1,35 @@
+# hyperfocalpunkt
+#
+#d_h = f^2/(k*Z)+f
+#
+#d_h hyperfokale Entfernung
+#f Brennweite in mm
+#k Blendenzahl
+#Z Zerstreuungskreisduchmesser (Grad der Unschärfe, entspricht bei monochromen Digitalsensoren 1 Pixel -> 4.5 µm)
+#
+#6mm^2/(4*0.0045mm)+6mm = 2006 mm für die Hyperfocale Entfernung bei 6mm Brennweite (Nahpunkt 1m).
+#
+# assined to LN in user mode
+# SHIFT ASN HFP LN
+
+LBL HFP
+ALPHA Focal Length ALPHA
+XEQ PROMPT
+STO 01
+ALPHA F STOP ALPHA
+XEQ PROMPT
+STO 02
+ALPHA Pixel SIZE in um ALPHA
+XEQ PROMPT
+STO 03
+RCL 01
+X^2
+RCL 03
+1000
+/
+RCL 02
+*
+/
+RCL 01
++
+
diff --git a/programs/hms2dms.lst b/programs/hms2dms.lst
new file mode 100644
index 0000000..8145040
--- /dev/null
+++ b/programs/hms2dms.lst
@@ -0,0 +1,17 @@
+# hms -> dms (Eingabe: Grad.MMSS im HMS-Format; Ausgabe: Grad.MinutenDez)
+# Beispiel: Eingabe 50.3030 (50°30'30'') -> 50.3050 (für weitere DMS-Rechnungen)
+# ist mit ASN HMS2DMS auf X^2 gemappt im User mode
+
+01 LBL HMS2DMS
+02 HR # HMS -> Dezimalgrad
+03 ENTER↑ # duplizieren
+04 INT # Grad
+05 X<>Y # X: Dezimalgrad, Y: Grad
+06 FRC # Bruchteil der Dezimalgrad
+07 60
+08 *
+09 100
+10 /
+11 X<>Y # X: Grad, Y: Minuten/100
+12 +
+13 RTN
diff --git a/programs/ow.lst b/programs/ow.lst
new file mode 100644
index 0000000..d38c948
--- /dev/null
+++ b/programs/ow.lst
@@ -0,0 +1,23 @@
+# oeffnungswinkel bei bekannter sensorbreite in mm und brennweite
+# 2*atan(8.748 /(2*3.5)) = 102.7°
+# assined to LOG in user mode
+
+LBL OW
+ALPHA FOCAL LENGTH in mm ALPHA
+XEQ PROMPT
+STO 01
+ALPHA No of Pixel ALPHA
+XEQ PROMPT
+ALPHA um Pixel size ALPHA
+XEQ PROMPT
+1000
+/
+*
+RCL 01
+2
+*
+/
+ATAN
+2
+*
+