C 64
Tips & Tricks

Formatierte Eingabe

Für professionelle Programme wird oft eine INPUT-Routine benötigt, die nur bestimmte Zeichen zuläßt. Mit diesem Maschinenprogramm können Sie sehr einfach Eingabemasken realisieren.

Haben Sie schon mal wirklich professionelle Programme geschrieben? Dann hat Ihnen mit Sicherheit die INPUT-Routine des C 64-Betriebssystems zu schaffen gemacht, die sämtliche Zeichen zuläßt. Auch solche, die zu völligem Unsinn oder Fehlermeldungen führen. Dieser Mißstand wird in Basic-Programmen meist mit einer GET-Schleife umgangen. Bei dieser Methode wird ständig ein Zeichen von der Tastatur geholt, auf Zulässigkeit überprüft und auf den Bildschirm gedruckt. Die einzelnen Zeichen werden in einem String addiert. Wenn sie mit INS oder DEL im Eingabefeld Korrekturen ausführen wollen, können Sie sich vorstellen, wie kompliziert und zeitraubend eine solche Routine werden kann.

Eine schnelle Lösung dieses Problems schafft dieses Maschinenprogramm, das einen neuen Input-Befehl generiert. Die Syntax des Befehls lautet:

INPUT>Eingabelänge, Spalte, Zeile, Variable

Wie Sie schon an der Syntax sehen, ein recht komfortabler INPUT-Befehl. Mit der Eingabelänge geben Sie an, wie lang das Eingabefeld höchstens sein darf. Durch Angabe von Zeile und Spalte können Sie das Eingabefeld direkt an jeder beliebigen Bildschirmstelle positionieren. Als Variable müssen Sie eine Stringvariable einsetzen, zum Beispiel A$. Sollen ausschließlich Zahlen eingegeben werden, braucht der String nur noch auf Buchstaben hin überprüft werden. Beispielsweise mit folgender Routine: 10 INPUT>4,1,1,A$ 20 IF STR$(VAL(A$))=" "+A$ THEN PRINT "ES IST EINE ZAHL":END 30 PRINT "KEINE ZAHL":GOTO 10

Tips zur Eingabe

Das Programm müssen Sie mit dem MSE eingeben und abspeichern. Laden Sie dann die Input-Routine mit LOAD »name«,8,1 oder LOAD "name",1,1 und geben Sie NEW und SYS 49152 zur Initialisierung ein. Danach können Sie Ihre Basic-Programme eintippen und mit dem neuen INPUT>-Befehl verwenden. Die Routine können Sie natürlich auch mit dem Basic-Programm nachladen und mit dem neuen INPUT>-Befehl verwenden.

Zusammenfassung

Ein Nachteil soll nicht verschwiegen werden:

Fragetext kann nicht, wie beim serienmäßigen INPUT-Befehl, ausgegeben werden. Der Text muß mit PRINT gedruckt werden.

(Thomas Graf/hm)
PROGRAMM : E-ROUTINE 64   C000 C1F4
-----------------------------------
C000 : A9 0B A0 C0 8D 08 03 8C   AD
C008 : 09 03 60 20 73 00 C9 85   18
C010 : F0 06 20 79 00 4C E7 A7   8C
C018 : 20 73 00 C9 B1 F0 06 20   26
C020 : BF AB 4C AE A7 A9 00 8D   81
C028 : 6E C1 20 9B B7 8E 6F C1   23
C030 : 20 FD AE 20 9E B7 E0 28   7A
C038 : B0 0C 86 FD 20 FD AE 20   3D
C040 : 9E B7 E0 19 90 03 4C 48   F8
C048 : B2 8E 70 C1 A4 FD 20 0C   68
C050 : E5 20 24 EA A5 D2 85 FE   B1
C058 : 98 18 65 D1 90 02 E6 FE   43
C060 : 85 FD A5 F4 85 FC 98 18   BF
C068 : 65 F3 90 02 E6 FC 85 FB   90
C070 : A5 C6 85 CC 8D 92 02 F0   CB
C078 : F7 78 A5 CF F0 0C A5 CE   B2
C080 : AE 87 02 A0 00 84 CF 20   2A
C088 : 13 EA 20 B4 E5 C9 0D D0   31
C090 : 03 4C 71 C1 C9 14 F0 46   DB
C098 : C9 9D F0 42 C9 1D F0 29   50
C0A0 : C9 94 F0 61 C9 91 D0 03   8E
C0A8 : 4C 41 C1 C9 11 D0 03 4C   7B
C0B0 : 54 C1 AE 18 D0 E0 15 F0   DE
C0B8 : 08 C9 DB B0 B3 C9 C1 B0   A4
C0C0 : 08 C9 60 B0 AB C9 20 90   86
C0C8 : A7 C9 22 F0 A3 AE 6E C1   E7
C0D0 : EC 6F C1 F0 9B EE 6E C1   71
C0D8 : 20 16 E7 4C 70 C0 AC 6E   23
C0E0 : C1 F0 8D CE 6E C1 C9 9D   AE
C0E8 : F0 EE B1 FB AA B1 FD 88   7C
C0F0 : 91 FD 8A 91 FB C8 C8 F0   60
C0F8 : 07 CC 6F C1 90 EC F0 EA   83
C100 : A9 9D 4C D8 C0 AC 6F C1   59
C108 : CE 6F C1 88 C0 FF F0 2B   35
C110 : CC 6E C1 90 26 B1 FD C9   11
C118 : 20 F0 F0 CC 6F C1 F0 1B   85
C120 : B1 FB AA B1 FD C8 91 FD   18
C128 : 8A 91 FB 88 88 C0 FF F0   FB
C130 : 05 CC 6E C1 B0 EA C8 A9   48
C138 : 20 91 FD EE 6F C1 4C 70   95
C140 : C0 AA 38 AD 6E C1 E9 28   06
C148 : 90 07 8D 6E C1 8A 4C D8   E0
C150 : C0 4C 70 C0 AA 18 AD 6E   69
C158 : C1 69 28 B0 07 CD 6F C1   0E
C160 : F0 05 90 03 4C 70 C0 8D   BE
C168 : 6E C1 8A 4C D8 C0 EA EA   F8
C170 : EA 4C 96 C1 88 C0 FF D0   8E
C178 : 13 20 73 00 C9 00 F0 07   E7
C180 : C9 3A F0 03 4C 79 C1 A0   DC
C188 : 00 4C EB C1 B1 FD C9 20   54
C190 : F0 E2 C8 8C 6F C1 20 FD   36
C198 : AE 20 8B B0 48 98 48 20   FA
C1A0 : A3 B6 68 85 65 68 85 64   E2
C1A8 : AD 6F C1 20 75 B4 84 FB   88
C1B0 : A0 00 91 64 C8 8A 91 64   31
C1B8 : C8 A5 FB 91 64 A0 01 B1   37
C1C0 : 64 48 C8 B1 64 85 65 68   89
C1C8 : 85 64 AC 6F C1 88 B1 FD   BB
C1D0 : AE 18 D0 E0 15 F0 08 C9   67
C1D8 : 41 90 04 09 80 D0 06 C9   BE
C1E0 : 20 B0 02 09 40 91 64 C0   9E
C1E8 : 00 D0 E2 AE 70 C1 20 0C   8C
C1F0 : E5 4C AE A7               DA
Listing zu »Formatierte Eingabe«. Das Listing ist mit dem MSE einzugeben.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →