|
|
29.03.2024 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum |
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
Kurs: GeoProgrammer (Teil 9)INPUT Jedem, der schon einmal unter BASIC programmiert hat, ist der Befehl INPUT ein Begriff. Er dient zur Eingabe von Zahlen oder Texten in Variablen. GEOS ist da nicht so komfortabel. Für die Eingabe von Text steht uns die Dialogbox als recht einfache Möglichkeit zur Verfügung, siehe dazu im Kursteil 6 nach. Aber mit Zahlen sieht es ganz schlecht aus. jsr DoDlgBox ; Dialogbox aufbauen ldx #CANCEL ; Register mit Wert für ; Abbruch-Feld laden cpx sysDBData ; Vergleichen mit ; Mausklickstatus bne Weiter ; Bei Return Taste ; gehe zu Weiter jmp EnterDesktop ; Bei Abbruchklick ; zum Desktop Weiter: Zur Überprüfung der Zahlumrechnung wird die ermittelte Zahl mit PutDecimal ausgegeben. An dieser Stelle wird der GeoProgrammerKurs beendet, um auch für andere Kurse Platz zu machen. Von nun ab werden in unregelmäßigen Abständen in einer neuen Rubrik, GeoProgrammmer Tips, Tricks und weitere Hilfen vorgestellt. Der gesamte GeoProgrammerKurs ist auf einer Diskette zusammengefaßt worden. Diese Disk, GUP Spezial 1, kann innerhalb der GeoThek bestellt werden. Auf der Disk finden sich die Texte zu allen Kursteilen, die Listings der Demoprogramme und die lauffähigen Programme selbst. Außerdem befindet sich ein kompletter allgemeiner Assemblerkurs für den C=64 auf der Diskette. ; Umrechnung der Textzahl in einen 2 Byte-Wert Weiter: LoadB a2,48 ; Variable a2 mit Wert für "0" laden LoadW a9,1 ; In Variable a9 Dezimalposition LoadB a3,10 ; Variable a3 Faktor für Dezimalposition LoadW AusgabeZahl,0; Ergebnisvariable mit NULL laden LoadB a8L,4 ; Variable a8L = Größe des Textes - 1 jmp Schleife ; Einsprung in die Berechnungsschleife Mal_10: ; Dezimalposition mit 10 multiplizieren ldy #$72 ; Register Y und X zeigen auf die ldx #$7e ; Faktoren (Variablen a6L und a9) jsr BMult ; Ergebnis im Zeiger von X Leerstelle: ; Geprüfte Stelle war keine Zahl dec a8L ; Reduziere a8L um 1 bcs Ende ; Wenn aSL <0 also 255 dann ENDE Schleife: ; Ermittlung ob Zahl oder Text Idx a8L ; X Register mit der zu untersuchenden ; Stelle laden lda EingabeZahl,x; In Akku den Wert der zu ; untersuchenden Stelle laden cmp #48 ; Vergleiche mit Wert für "0" bmi Leerstelle ; Wenn kleiner dann zu LEERSTELLE cmp #58 ; Vergleiche mit Wert für ":" bpl Leerstelle ; Wenn größer dann zu LEERSTELLE sec ; Übertragsbit setzen für Subtraktion sbc a2 ; Von AkKu Wert für "0" abziehen sta a6L ; Ergebnis in a6L festhalten MoveW a9,a5 ; Variable a9 nach a5 retten ldy #$78 ; Register Y und X auf die Faktoren ldx #$7e ; zeigen lassen jsr BMult ; Ermittelten Wert mit Dezimalposition ; Multiplizieren AddW a9,AusgabeZahl; Dieses Ergebnis zu Ausgabezahl addieren MoveW a5,a9 ; Variable a9 mit alten Wert versehen jmp Mal_10 ; Dezimalposition nach links verschieben Ende: ; Ende der Berechnungen
Jürgen Heinisch
Kurzlink hierhin: http://geos-printarchiv.de/953 |
Letzte Änderung am 01.11.2019 |