Commodore 64, UDG's

O C64 κανονικά, δεν υποστηρίζει προγραμματιζόμενους χαρακτήρες μέσα από την Basic, έχει τους δικούς του γραφικούς χαρακτήρες στη ROM του. Αυτό που μπορούμε να κάνουμε είναι, να μεταφέρουμε αυτούς τους χαρακτήρες από τη ROM στη RAM και μετά να τους αλλάξουμε! Από το manual του (βρίσκεται εύκολα στο internet), μπορούμε να βρούμε τον κωδικό που αντιστοιχεί σε κάθε χαρακτήρα και μετά να τον μορφοποιήσουμε, π.χ. το Shift+A είναι ο χαρακτήρας 65 (με shift αναφέρεται στο set 1, σελίδα 133 του manual "Appendix E Screen Display Codes").

9000 PRINT "PLEASE WAIT..."
9005 POKE 56334,PEEK(56334) AND 254
9010 POKE 1,PEEK(1) AND 251
9020 FOR I=0 TO 255
9030 FOR J=0 TO 7
9040 POKE 12288+I*8+J,PEEK(53248+I*8+J)
9050 NEXT J:NEXT I
9060 POKE 1,PEEK(1) OR 4:POKE 56334,PEEK(56334) OR 1
9070 POKE 53272,(PEEK(53272) AND 240)+12

Αυτές οι γραμμές μεταφέρουν τους χαρακτήρες από την ROM στην RAM και "δηλώνουν" στο μηχάνημα που θα τους βρίσκει (Θέλει χρόνο ο C64 για την εκτέλεση τους!!!).

9080 READ CHR
9090 FOR BYTE=0 TO 7
9100 READ NUMBER
9120 POKE 12288+(8*CHR)+BYTE,NUMBER
9130 NEXT BYTE

Αυτές οι γραμμές ορίζουν ένα UDG στη νέα θέση του, σύμφωνα με τα DATA που θα δώσουμε:

9140 DATA 65,24,24,16,126,24,60,36,102

Ο χαρακτήρας 65 αντιστοιχεί στο Α που αποτελεί και το πρώτο DATA, μετά την εκτέλεση των γραμμών, πατώντας το shift+A θα εμφανίζεται το "ανθρωπάκι" του παραδείγματος από εδώ

Μπορούμε να επαναλάβουμε τις γραμμές 9080-9130 (μέσα σ' ένα FOR) για όσους χαρακτήρες θέλουμε, έτσι, μπορούμε να εισάγουμε στον C64 και τα Ελληνικά γράμματα, πέρα απ' ότι άλλο θέλουμε!

ZX_Jim Greece

e-mail: dcotsos2015@gmail.com