Πρόσφατες Βελτιώσεις του FUZIX για το Amstrad CPC
Τους τελευταίους μήνες, συνέχισα να εργάζομαι πάνω στη μεταφορά (port) του FUZIX για το Amstrad CPC. Δεν σχεδιάζω μια νέα κυκλοφορία ακόμα, καθώς θέλω πρώτα να ολοκληρώσω και να σταθεροποιήσω την υποστήριξη δικτύωσης για το M4Board. Ωστόσο, η τρέχουσα κατάσταση του αποθετηρίου περιλαμβάνει ήδη σημαντικές αλλαγές στην απόδοση, την κονσόλα, την αποθήκευση και τη συμβατότητα υλικού.
Κύριες Αλλαγές:
Απόδοση και Σύστημα
Η διάταξη του εικονικού τερματικού χρησιμοποιεί πλέον 80×25 χαρακτήρες, μαζί με μια σειρά από μικρότερες σχετικές βελτιώσεις.
Ο κώδικας που καλείται από τη διακοπή συστήματος (system interrupt) τώρα μεταβαίνει στο interrupt_high μόνο όσο είναι ενεργό το vsync. Αυτό μειώνει τον ενεργό ρυθμό διακοπών από τα 300 Hz στα 50 Hz, αποφεύγει προβλήματα επανεισόδου (reentrancy) και βελτιώνει αισθητά τη συνολική απόδοση.
Η ρουτίνα ldir_far έχει βελτιστοποιηθεί ώστε να χρησιμοποιεί τη στοίβα κατά τη μετακίνηση δεδομένων μεταξύ σελίδων μνήμης, μειώνοντας το κόστος ανά μεταφερόμενο byte.
Κονσόλα και Βίντεο
Ριζική αναθεώρηση του οδηγού κονσόλας (console driver) του CPC:
Υποστήριξη για τέσσερα TTY.
Διαχείριση χρωμάτων.
Συμπαγής κέρσορας (block cursor).
Διορθώθηκε η αποτύπωση χαρακτήρων με το γνώρισμα αντιστροφής (inverse attribute).
Προστέθηκε μια καταχώριση fuzixcpc στο termcap, επιτρέποντας στις εφαρμογές που αναγνωρίζουν το termcap να ταυτοποιούν σωστά τις δυνατότητες της κονσόλας του Amstrad CPC και ορίστηκαν τα γλύφα cpc για τα σύμβολα de ACS, ώστε οι εφαρμογές curses να μπορούν να τα προβάλλουν.
Αποθήκευση και RTC
Προστέθηκε συσκευή μπλοκ (block device) κάρτας SD για το M4Board.
Υλοποιήθηκε συσκευή δίσκου M4Board που βασίζεται σε αρχείο εικόνας (image file).
Προστέθηκε υποστήριξη RTC τόσο για το M4Board όσο και για το Symbiface.
Βελτιώθηκε η συσκευή μπλοκ CH376 που υποστηρίζει τα USIfAC, ULIfAC και Albireo.
Ο οδηγός συσκευής μπλοκ m4 και ch376 μπορεί πλέον να χρησιμοποιεί το εγγενές επίπεδο FAT32 για την προσάρτηση εικόνων δίσκου που βασίζονται σε αρχεία ως συσκευή ρίζας (root device).
Τρέχουσα Κατάσταση
Η κύρια εργασία που απομένει είναι η ολοκλήρωση της υποστήριξης δικτύου για το M4Board. Μόλις τελειώσει και δοκιμαστεί σωστά, θα ετοιμάσω μια κυκλοφορία με μια πιο σταθερή, αυτοτελή διαμόρφωση και εικόνες δίσκου. Επίσης, στη λίστα των εκκρεμοτήτων (TODO list) βρίσκεται η μεταφορά του κώδικα ώστε να μεταγλωττίζεται με το Fuzix Compiler Kit αντί για το SDCC.
Στο μεταξύ, όποιος θα ήθελε να δοκιμάσει την τρέχουσα κατάσταση ανάπτυξης μπορεί να τη δημιουργήσει (build) χρησιμοποιώντας τις οδηγίες που διατηρεί ο salvogendut για τον εξομοιωτή 1984 (ευχαριστώ @salvogendut!!):
Το έγγραφο εξηγεί το περιβάλλον μεταγλώττισης και τη ροή εργασίας που απαιτούνται για τη μεταγλώττιση και εκτέλεση της τρέχουσας έκδοσης του FUZIX για το CPC με τον εξομοιωτή 1984.