Commodore 64 Basic - Texteingabe mit GET?
Ich arbeite an einer Adressverwaltung und möchte der Lesbarkeit halber den Groß-/Kleinschrift- Zeichensatz verwenden.
Wie schaffe ich es, dass das GET auch Großbuchstaben abfragt?
Bei Shift + Buchstabentaste bleibt das Programm in der Schleife, obwohl ich den Petscii-Bereich von 32 bis 122 als zulässig "durchlasse".
Laut Tabelle liegt das große "T" z.B. mit 116 im "erlaubten" Bereich.
Listing:
2 Antworten
Der C64 benutzt für die Tasten kein echtes ASCII, sondern das von Commodore abgeänderte "PETSCII". Da sind die Kleinbuchstaben im Bereich 65-89 und die Großbuchstaben im Bereich 193-217.
Ich hab dieses Programm gebaut, um das rauszufinden:
10 GET TD$: IF TD$="" GOTO 10
20 PRINT STR$(ASC(TD$))
30 GOTO 10
Und du kannst statt TD% auch nur TD (also Fließkommazahlen) benutzen. Das würde einem bei anderen Programmiersprachen zwar die Nackenhaare aufstellen, aber Commodore Basic rechnet die Integer-Zahlen eh erst in Fließkommazahlen um, bevor es damit rechnet und einen Speichervorteil hättest du nur in Arrays. Sogar bei For-Schleifen funktionieren nur die Fließkommazahlen, daher macht es in Commodore Basic fast nie Sinn, Integers zu benutzen.
Ich kenne den CBM 4016 leider nicht. Kann sein, dass er das gleiche Basic an Bord hat und sich nur bei der Assembler-Programmierung unterscheidet, weil er nur 16kB anstatt 64kB hat.
Vom Screenshot in der Frage gehe ich aber mal davon aus, dass der Fragesteller einen Emulator verwendet. Die beliebtesten beiden dürften Vice und CCS64 sein.
Das ist so ein exotisches Problem, dass Du Dich damit an eine spezialisierte Plattform wenden solltest.
Vielleicht hilft dir das weiter:
https://www.retro-programming.de/programming/nachschlagewerk/petscii/
Tja, nun müsste man entweder den originalen C64 besitzen [ist das beim CBM 4016 analog wie beim C64], oder einen Emulator.....