astrofos Δημοσ. 21 Μαρτίου 2007 Δημοσ. 21 Μαρτίου 2007 Ας υποθέσουμε οτι δεν υπάρχει ούτε OpenGL, ούτε DirectX, ούτε device drivers, κ.λ.π. (σαν το DOS). Πως χρησιμοποιούμε την μνήμη μιας συσκευής; Παράδειγμα πως μπορώ να γράψω κάτι στη μνήμη της κάρτας γραφικών ή της κάρτας ήχου;
Directx Δημοσ. 21 Μαρτίου 2007 Δημοσ. 21 Μαρτίου 2007 Ας πάρουμε για παράδειγμα την κάρτα ήχου (υποθέτουμε μια Sound Blaster 16bit συμβατή -όχι κάτι εξωτικό όπως μια Roland ή κάτι παλιό όπως μια AdLib), στην εποχή DOS (δίχως Device Driver και τέτοια..) έπρεπε να γνωρίζεις 3 βασικά πράγματα ώστε να επικοινωνήσει μαζί της που ήταν: H Address της, το Interrupt και τέλος το DMA που χρησιμοποιούσε (οπότε έπρεπε να γνωρίζεις και λίγο προγραμματισμό του DMA controller!). Για περισσότερα σχετικά με εκείνες τις "ηρωικές εποχές" όσον αφορά τον ήχο πάντα, δες εδώ: http://www.shipbrook.com/jeff/sb.html και ... http://homepages.cae.wisc.edu/~brodskye/sb16doc/sb16doc.html Για την VGA, τα πράγματα ήταν λίγο καλύτερα καθώς βασιζόμασταν σε κλήσεις του Video BIOS (Int 10h) και αν η κάρτα το υποστήριζε του (VESA) SVGA BIOS, βέβαια και εδώ μπορούσες να γράψεις στο Screen Buffer με την μια άλλα υπήρχαν άλλα προβλήματα (συγχρονισμός refresh rate κάρτας - μόνιτορ κτλ) για περισσότερα εδώ:http://www.osdever.net/FreeVGA/home.htm Ευτυχώς ήρθαν τα μοντέρνα Λ.Σ. με τους Drivers τους και γλυτώσαμε από όλα αυτά!
alkisg Δημοσ. 21 Μαρτίου 2007 Δημοσ. 21 Μαρτίου 2007 Μια φορά κι έναν καιρό που ασχολούμουν με VGA, είχα πάρει ένα βιβλίο 700 σελίδων με τις πιο διάσημες τότε κάρτες γραφικών, τις θύρες και τους καταχωρητές τους (ακόμα το έχω). Έτσι ήταν δυνατόν να φτιαχτούν custom αναλύσεις, π.χ. 412x272, να φορτωθούν sprites στα extra planes της μνήμης, να φορτωθούν γραμματοσειρές για text mode, να γίνει συγχρονισμός με το vertical refresh, plane swapping, dma transfers κτλ. Μετά βγήκε το VESA standard και γλυτώσαμε από κάμποσα από αυτά. Και στη συνέχεια Windows, drivers, directx κτλ. Αν θες για DOS το καλύτερο που έχω να σου προτείνω είναι η βιβλιοθήκη SDL. Παίζει σε διάφορα λειτουργικά συστήματα, και εκτός από γραφικά υποστηρίζει και ήχο.
StavrosD Δημοσ. 26 Μαρτίου 2007 Δημοσ. 26 Μαρτίου 2007 Πλέον οι μνήμες των συσκευών δεν είναι προσβάσιμες στον προγραμματιστή, εκτός αν το SDK που δίνει η εταιρεία έχει υποστήριξη γι'αυτό.
ANEMOS-V Δημοσ. 26 Μαρτίου 2007 Δημοσ. 26 Μαρτίου 2007 aax.. aksexastes epoxes DOS.. akoma exo ena AMD5X86 133 na trexei sfera..to 6.22 & programa tis douleias. gia voithia se MSDOS..edo: MS-DOS help and commands http://www.computerhope.com/msdos.htm
afnman Δημοσ. 30 Μαρτίου 2007 Δημοσ. 30 Μαρτίου 2007 O παρακατω κωδικα τυπωνει εναν χαρακτηρα που αναβοσβηνει χωρις κλησεις του DOS κ BIOS...σε 8086x >mov ax,0b000h <- 0b00h:διεθυνση τμηματος της μνήμης οθονης mov es,ax mov ah,0f8h <- ιδιοτητες χαρακτηρα Α mov al,41h <-χαρακτηρας Α mov es:[00h],ax <- εγγραφη του χαρακτηρα στην μνήμης οθονης μαζι με τις ιδιοτητες του απο τα windows μπορεις να δεις το διαστημα διευθυνσης μνημης της καρτας γραφικων σου,οπου θα παρατηρησεις οτι ειναι σχεδον η ιδια οπως με την παραπανω (τουλαχιστον σε μενα).... Βεβαια τωρα εχουν γινει πιο πολυπλοκα τα πραγματα....παιζουν και 3d επεξεργαστες και διαφοροι καταχωρητες...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.