Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Συσκευές Εισόδου και Εξόδου

Γράφοντας στη μνήμη VDU σε λειτουργία κειμένου;

Γράφοντας απευθείας στη μνήμη VDU (Μονάδα οπτικής οθόνης) σε λειτουργία κειμένου είναι μια λειτουργία χαμηλού επιπέδου που είναι ιδιαίτερα ειδική για το σύστημα και γενικά αποθαρρύνεται στον σύγχρονο προγραμματισμό. Η μέθοδος εξαρτάται σε μεγάλο βαθμό από το λειτουργικό σύστημα (OS), την κάρτα βίντεο και τη λειτουργία βίντεο. Δεν υπάρχει ενιαία, φορητή λύση.

Ακολουθεί μια κατανομή του γιατί είναι δύσκολο και ποιες προσεγγίσεις μπορεί να λάβετε υπόψη, μαζί με τους περιορισμούς τους:

Γιατί είναι δύσκολο και αποθαρρύνεται:

* στρώματα αφαίρεσης: Σύγχρονα λειτουργικά συστήματα αφηρημένα απευθείας πρόσβαση μνήμης στο υλικό βίντεο. Αυτό είναι για λόγους σταθερότητας και ασφάλειας. Η άμεση χειραγώγηση της μνήμης μπορεί εύκολα να καταρρεύσει το σύστημά σας εάν γίνει εσφαλμένα.

* Εξάρτηση από υλικό: Η διεύθυνση μνήμης όπου βρίσκεται το βίντεο RAM (VRAM) ποικίλλει δραστικά ανάλογα με την κάρτα βίντεο και τη διαμόρφωσή της.

* Χαρτογράφηση μνήμης: Ακόμα κι αν μπορούσατε να βρείτε τη διεύθυνση VRAM, θα πρέπει να καταλάβετε πώς χαρτογραφείται η μνήμη βίντεο (π.χ. πόσα bytes ανά χαρακτήρα, χαρακτηριστικά χαρακτήρων, ανάλυση οθόνης). Αυτό εξαρτάται σε μεγάλο βαθμό από τη λειτουργία βίντεο.

* Μηχανισμοί προστασίας: Τα λειτουργικά συστήματα χρησιμοποιούν συχνά προστασία μνήμης για να αποτρέψουν τα προγράμματα από τη σύνταξη σε αυθαίρετες τοποθεσίες μνήμης, συμπεριλαμβανομένου του VRAM.

* Σύγχρονες κάρτες γραφικών: Με τις σύγχρονες κάρτες γραφικών και τους οδηγούς, η άμεση πρόσβαση στη μνήμη στο πλαίσιο είναι σχεδόν αδύνατη. Η GPU χειρίζεται όλη την απόδοση.

προσεγγίσεις (με σημαντικές προειδοποιήσεις):

1. BIOS Διακρατήσεις (πολύ παλιά συστήματα):Σε εξαιρετικά παλιά συστήματα (σκεφτείτε DOS ή πολύ πρώιμες εκδόσεις των Windows), μπορείτε * να μπορείτε * να χρησιμοποιήσετε το BIOS διακοπές για να γράψετε απευθείας στη μνήμη βίντεο. Ωστόσο, αυτές οι διακοπές δεν είναι τυποποιημένες και εξαρτώνται σε μεγάλο βαθμό από το σύστημα. Αυτή η προσέγγιση είναι σχεδόν εντελώς παρωχημένη.

2. Ειδικά API του λειτουργικού συστήματος (περιορισμένη χρήση): Ορισμένα λειτουργικά συστήματα (όπως πολύ παλιές εκδόσεις παραθύρων ή συγκεκριμένων ενσωματωμένων συστημάτων) ενδέχεται να παρέχουν API χαμηλού επιπέδου για πρόσβαση στη μνήμη βίντεο. Αυτά τα API είναι εξαιρετικά σπάνια και δεν συνιστώνται γενικά.

3. Χρήση βιβλιοθήκης γραφικών: Αντί για άμεση πρόσβαση μνήμης, θα πρέπει πάντα να χρησιμοποιείτε μια βιβλιοθήκη γραφικών (όπως SDL, SFML ή μια βιβλιοθήκη GUI υψηλότερου επιπέδου). Αυτές οι βιβλιοθήκες χειρίζονται την πολυπλοκότητα της αλληλεπίδρασης με το υλικό γραφικών και παρέχουν έναν πολύ ασφαλέστερο και πιο φορητό τρόπο εμφάνισης κειμένου. Αφαιρούνται από τις λεπτομέρειες ειδικών για το υλικό.

Παράδειγμα (επεξηγηματικό, ιδιαίτερα ειδικό σύστημα και πιθανόν να αποτύχει):

Αυτό είναι μόνο ένα * εννοιολογικό * παράδειγμα και θα όχι Εργαστείτε στα περισσότερα σύγχρονα συστήματα. Παρέχεται αποκλειστικά για την απεικόνιση της πολυπλοκότητας:

`` c ++

// Αυτός ο κώδικας είναι ιδιαίτερα ειδικός στο σύστημα και πιθανότατα δεν θα λειτουργήσει.

// είναι μόνο για επεξηγηματικούς σκοπούς.

#include

int main () {

// Αυτή είναι μια εντελώς αυθαίρετη διεύθυνση και σχεδόν σίγουρα θα είναι λάθος.

unsigned char* videoMemory =(unsigned char*) 0xb8000; // Παράδειγμα για πολύ παλιά συστήματα

// Υποθέτοντας 2 bytes ανά χαρακτήρα (χαρακτήρας και χαρακτηριστικό)

videoMemory [0] ='h'; // χαρακτήρας

videoMemory [1] =0x07; // χαρακτηριστικό (π.χ. λευκό σε μαύρο)

videoMemory [2] ='e'; // χαρακτήρας

videoMemory [3] =0x07; // χαρακτηριστικό

επιστροφή 0;

}

`` `

Συνοπτικά, αποφύγετε την άμεση πρόσβαση στη μνήμη στο VRAM. Χρησιμοποιήστε μια βιβλιοθήκη γραφικών. Είναι ο μόνος αξιόπιστος και φορητός τρόπος για να κάνετε κείμενο στην οθόνη σε ένα σύγχρονο πλαίσιο. Ο χειρισμός της άμεσης μνήμης είναι επικίνδυνη, εξαρτώμενη από το σύστημα και επιρρεπής στην πρόκληση αστάθειας ή συντριβών του συστήματος.

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα