migf1 Δημοσ. 13 Δεκεμβρίου 2011 Δημοσ. 13 Δεκεμβρίου 2011 Δεν νομίζω να υπάρχει σφαιρικότερος Pascal Compiler από τον Free Pascal αυτή τη στιγμή, μέχρι εκτελέσιμα σε Java Virtual Machine παράγει. Είναι και crossplatform. Μπορείς να δοκιμάσεις και GNU Pascal, αλλά έχει να ενημερωθεί από το 2005. Αν πάλι ενδιαφέρεσαι για... optimization to the death, ρίξε μια ματιά στον True Compiler (πρώην Compiler191) αλλά είναι strictly Object Pascal και διατίθεται δωρεάν μονάχα για Windows (XP και άνω) Όσο για το DOSbox... ε προφανώς και παίζει σημαντικά αρνητικό ρόλο στη ταχύτητα εκτέλεσης. Πάντως μου κάνει τρομερή εντύπωση που είσαι linux-άς και αναπολείς το dos!
Directx Δημοσ. 13 Δεκεμβρίου 2011 Δημοσ. 13 Δεκεμβρίου 2011 [..] DirectX Καταρχην, τι ειναι OFM ? (εξαιρετικο το demo απο το NC clone σου ! πως χειριζεσαι τα LFN ?) Σε ευχαριστώ πολύ για τα καλά σου λόγια όσον αφορά το clone μου! Τώρα, OFM (από το Orthodox File Manager) λέγονται οι διαχειριστές αρχείων που ακολουθούν το στυλ διεπαφής (Interface) του Norton Commander, ο Total Commander για παράδειγμα αποτελεί ένα κλασσικό δείγμα OFM μεταφερμένο όμως σε ρυθμό GUI αντί του πατροπαράδοτου text-mode. Δευτερον, ΔΕΝ γνωριζω C++ .... !!! Oυτε, εξ'όψεως ! Μονο τις αγκυλες ξερω τι κανουν ! Ειναι λιγο ακαταλαβιστικα ολα αυτα περι TCanvas και απευθειας προσβαση σε bitmap. Η μνημη της καρτας γραφικων ειναι, ετσι και αλλιως, ενα Bitmap. Ετσι δεν ειναι ? Γιατι να χρησιμοποιησω ενα mask αφου η καρτα ειναι ενα array απο bytes (η words) ? Εχω μαθει να γραφω ΑΠΕΥΘΕΙΑΣ στην περιοχη A000:0000 και να παιζω με τους δεικτες SI και DI στα ports 03CE και 03CF ωστε να παιξω με τα χρωματα της VGA (16 χρωματα μονο). Mε ΕΞΑΙΡΕΤΙΚΑ μεγαλη δυσκολια κατορθωσα να φτιαξω μια PutPixel που να δουλευει σε VESA 1280 x 1024 x 256 χρωματα. Που στα κομματια να ξερα οτι η μνημη μιας VGA δεν ειναι χωρισμενη μονο σε bitplanes (χρωματων) αλλα και banks (που δεν μπορουσαν να ξεπερασουν τα 64K) ? Τωρα, ολα αυτα ειναι προιστορια, γιατι η μνημη ειναι flat για τους συγχρονους επιταχυντες. Πανε και γραφουν/διαβαζουν οπου θελουν, χωρις ΔΙΟΔΙΑ ! Ομως .... οι σημερινοι επιταχυντες ειναι δεκα ταξεις μεγεθους σε ευφυια απο τους παλιους VGA controllers. Τι να συγκρινουμε ? Αστο καλυτερα ..... Δεν ηξερα οτι το GDI αναλαμβανε και κλησεις στον εκτυπωτη ! Αυτο νομιζα οτι το εκανε το LPT.VXD. Αλλα να μην το παιζω ξερολας ! Δεν ξερω. Όταν προγραμματίζεις σε περιβάλλον GDI δεν έχεις απευθείας πρόσβαση στην κάρτα γραφικών καθώς όλα γίνονται μέσα από ειδικές κλήσεις και δομές που προσφέρει το GDI, το οποίο ύστερα με την σειρά του αναλαμβάνει να τις δρομολογήσει στους κατάλληλους οδηγούς, είτε πρόκειται για την οθόνη είτε για τον εκτυπωτή είτε για οποιαδήποτε άλλη συσκευή παρέχει τον κατάλληλο οδηγό προς το hardware στο οποίο απευθύνεται. Και τούτο ήταν ένα από τα πλέον επαναστατικά χαρακτηριστικά του GDI καθώς εξάλειψε σε μεγάλο βαθμό το τεράστιο πρόβλημα που υπήρχε στην διαχείριση εκτυπωτών επί DOS αφού ομογενοποίησε την πρόσβαση στην σχεδίαση ανεξαρτήτως πλέον συσκευής. Για την ιστορία, τα χρώματα (τους VGA registers δηλαδή) θυμάμαι ότι σε DOS τους τροποποιούσα με την διακοπή 10h, οπότε έκανα πολύ εύκολα μερικά εντυπωσιακά fade in / fade out effects (εποχές!). Συγχαρητηρια για το NC clone σου, και παλι. Σε τι text mode τρεχει ? Εχω την εντυπωση οτι ειναι 80 x 30 ... και οχι 80 x 25 ! Που παει το tab εκει που πατας συνεχεια tab δεξια ? Το εχασα λιγο ! Το πρόγραμμα αυτό είναι γραμμένο σε C# (.NET) συνεπώς διαχειρίζεται αυτόματα τα LFN κλπ. Δεν τρέχει σε ρυθμό κονσόλας, είναι GUI (τρέχει σε κανονικό παράθυρο δηλαδή), απλά έχω επέμβει σε μερικά σημεία ώστε να του δώσω την όψη του text-mode (όσο γίνεται βέβαια). Το Tab κάνει κύκλο μεταξύ των Panel και ενός Splitter (που δεν πέρασε στο Video) και με τον οποίο μπορείς να αλλάξεις τις διαστάσεις των δυο Panels αλά Total Commander. Υ.Γ. 1. Το DOSBox περιορίζει όσο να είναι την ταχύτητα καθώς πρόκειται για emulator. 2. Pixel!! (Όμορφα χρόνια!!)
SR71B Δημοσ. 13 Δεκεμβρίου 2011 Μέλος Δημοσ. 13 Δεκεμβρίου 2011 Migf1 Λαθος μου ! Δεν τρεχω την FreePascal μεσα απο DOSbox ! Την Turbo Pascal τρεχω μεσα απο DOSbox. Η FreePascal διαθετει GUI interface, ετσι και αλλιως ! Επισης ... δεν ειμαι λινουξας ! Απλα, αναγνωριζω οτι το UNIX δεν εγκατελειψε ποτε τον χρηστη γραμμης εντολων, ΧΩΡΙΣ να σνομπαρει την παραθυρικοτητα. DirectX Δηλαδη, το GDI ειναι ενα shell εντολων για γραφικα (οπως το AVI ειναι ενα container για το MP4) ... αν κανω λαθος διορθωσε με ! Οποτε, παει περιπατο η ταχυτητα !!! Οσον αφορα τα γραφικα, ΝΑΙ, πρεπει να βαλεις την τιμη 10hex μεσα στον καταχωρητη AX και μετα να προχωρησεις με τον σχεδιασμο του πιξελ. Εγω γραφω, απο κει και μετα, πως παιζεις με τα χρωματα (και μονο για στανταρντ αναλυση VGA 640x480x16). Aφου θεωρεις ομορφες εποχες εκεινες του περιοδικου Pixel, μαλλον εχει νοημα να παραθεσω την ρουτινιτσα που σχεδιαζα fractals σε εναν 8088, πισω στο 1990. Oλα ειναι σε procedures για αμεση χρηση σε ενα προγραμμα (εννοειται, ΚΑΙ σε C). Const BytesPerLine = 100; {800 pixels σε καθε γραμμη} Procedure InitGraphMode; Assembler; ASM MOV AX, 4F02h {ενεργοποιηση VESA mode} MOV BX, 102h {800 x 600 x 16 mode} INT 10h END; Procedure RestoreTextMode; Assembler; ASM MOV AX, 3h MOV BX, 0h {80 x 25 text mode} INT 10h END; Prodecure SetPixel(X, Y: Word; Color: Byte); Assembler; ASM MOV AX, Y MOV BX, X MOV CL, BL MOV DX, BytesPerLine {δωσε πλατος γραμμων = 800 pixel} MUL DX SHR BX, 1 {επιταχυνση της διαιρεσης /8} SHR BX, 1 {με τρεις εντολες SHR !!!} SHR BX, 1 ADD BX, AX MOV AX, 0A000h {γραφε στην διευθυνση A000:0000} MOV ES, AX AND CL, 7 XOR CL, 7 MOV AH, 1 SHL AH, CL MOV DX, 03CEh {ενεργοποιησε το bitplane port 03CE} MOV AL, 8 OUT DX, AX MOV AH, Color {δωσε τιμη χρωματος, απο 16 συνολικα} MOV AL, 0 OUT DX, AX MOV AX, 0F01h {ενημερωσε τους VGA registers} OUT DX, AX OR ES:[bX], AL END; Οπως βλεπεις, ειναι περισσοτερα αυτα που δεν γνωριζω για τις υπολοιπες εντολες. Ομως, η συγκεκριμενη ρουτινα ηταν 7 ΦΟΡΕΣ ΤΑΧΥΤΕΡΗ απο την αντιστοιχη PutPixel της Turbo Pascal που ηταν και σε χαμηλοτερη αναλυση (VGA 640 x 480 x 16) !!!! Kαι πισω στο 1990 ... δεν ηθελες και πολυ για να την "παντρευτεις". Χαιρομαι πολυ που βρηκα ατομα που εχουν προγραμματισει, σαν τον Migf1 και DirectX. Ειλικρινα χαιρομαι ! Γιαυτο δεν θελω να με παρεξηγησετε ως ενα γυφτικο σκεπαρνι που επιδεικνυει μια ρουτινιτσα που δεν ειναι δικια του. Ετσι και αλλιως, το Pixel την δημοσιευσε πισω στο σωτηριον ετος 1989 (νομιζω). Σιγα μην ξυπνησα ενα πρωι και αρχισα να γραφω MOV AX, Y ... MOV BX, X ...... μην τρελλαθουμε, ΟΚ ?
defacer Δημοσ. 14 Δεκεμβρίου 2011 Δημοσ. 14 Δεκεμβρίου 2011 Δεν θέλω να κάνω τον έξυπνο, αλλά μου σηκώθηκε η τρίχα μ' αυτά που διάβασα στο πρώτο post. Καλύτερα ας αφήσουμε να ασχολούνται με τα OS άτομα που ξέρουν που παν τα τέσσερα. Για όσους ακόμα δεν ξέρουν, μια πολύ καλή all-around εισαγωγή είναι το βιβλίο του Tanenbaum που διδάσκεται πρακτικά σε όλες τις σχολές πληροφορικής. Υπάρχει και στα ελληνικά. Δε θα μπω στον κόπο να εξηγήσω γιατί το ΜS-DOS ήταν τόσο άθλιο σε σχέση με τα "συνομήλικα" λειτουργικά του που είναι προσβολή για τα υπόλοιπα μόνο και μόνο να τα λες όλα μαζί "λειτουργικά". Ασχέτως που θέλοντας και μη (ελλείψει άλλης ρεαλιστικής επιλογής) είχα μάθει το shell του (άλλο shell, άλλο το λειτουργικό) μέσα έξω. ΥΓ: Pixel rules. Και ακόμα έχω τα βιβλία του Αράπογλου.
Directx Δημοσ. 14 Δεκεμβρίου 2011 Δημοσ. 14 Δεκεμβρίου 2011 DirectX Δηλαδη, το GDI ειναι ενα shell εντολων για γραφικα (οπως το AVI ειναι ενα container για το MP4) ... αν κανω λαθος διορθωσε με ! Οποτε, παει περιπατο η ταχυτητα !!! Οσον αφορα τα γραφικα, ΝΑΙ, πρεπει να βαλεις την τιμη 10hex μεσα στον καταχωρητη AX και μετα να προχωρησεις με τον σχεδιασμο του πιξελ. Εγω γραφω, απο κει και μετα, πως παιζεις με τα χρωματα (και μονο για στανταρντ αναλυση VGA 640x480x16). Ας πούμε ότι είναι κάπως έτσι ή πιο σωστά πρόκειται για ένα Ιnterface που μεσολαβεί μεταξύ εφαρμογής και συσκευής σχεδίασης ώστε να υλοποιήσει τις εντολές σχεδίασης της πρώτης στην δεύτερη είτε πρόκειται για οθόνη είτε για εκτυπωτή είτε για κάποια άλλη συμβατή συσκευή δίχως η πρώτη να ενδιαφέρεται για το που κατευθύνονται οι εντολές σχεδίασης της, αφού τελικά αυτή μιλά πάντα με τυποποιημένο τρόπο προς το GDI το οποίο θα κάνει την βρώμικη δουλειά να μεταφέρει τις επιθυμείς της εφαρμογής στην επιλεγμένη συσκευή. Δες το ως ένα (ας πούμε) "INT 10h" το οποίο απευθύνεται όμως σε οποιαδήποτε συμβατή με αυτό συσκευή (οθόνη ή εκτυπωτή ή οτιδήποτε άλλο). Αν θες ταχύτητα πας προς DirectX το οποίο ουσιαστικά προσφέρει άμεση πρόσβαση στο υλικό διότι προσπερνά την γενικότητα του GDI με συγκεκριμένα Interface. Όχι μέσο διακοπών κτλ αλλά μέσο ας πούμε ενός συνόλου εντολών και δομών δεδομένων (είναι πολύ πιο περίπλοκο αλλά για χάρη της κουβέντας δεν θα επεκταθώ) με τις οποίες οι οδηγοί τόσο της κάρτας γραφικών ή άλλων συσκευών γράφουν απευθείας στο hardware κάνοντας για παράδειγμα πολύ γρήγορο blit ή page flip ή transparency κλπ με ταχύτητα ίσα με εκείνη του DOS. Τώρα, για το fade in / fade out effect πρέπει να χρησιμοποιούσα απευθείας τροποποίηση των χρωματικών καταχωρητών της VGA μέσο της υπηρεσίας 1010 της διακοπής 10h. Το ατού αν δεν με απατά η μνήμη μου ήταν ότι μπορούσες να τροποποιήσεις τους καταχωρητές ανεξαρτήτως mode λειτουργίας (δούλευε δηλαδή και σε text-mode). Ακολουθεί ένα μικρό fader demo που είχα γράψει εκείνες τις παλιές εποχές (το τρέχω σήμερα σε DOSBox -το ξέθαψα από το αρχείο μου): http://www.youtube.com/watch?v=qBqdPSusWKo Υ.Γ. Σαν Pixelας σίγουρα θα σου αρέσουν τα links που ακολουθούν: Εδώ υπάρχει κάθε τεύχος σε μορφή αρχείων εικόνας αλλά τώρα σταδιακά και σε μορφή PDF (μια καταπληκτική δουλειά!!) και εδώ υπάρχει κάθε τεύχος διαθέσιμο για ανάγνωση μέσο Web από την εκδοτική εταιρία!
SR71B Δημοσ. 15 Δεκεμβρίου 2011 Μέλος Δημοσ. 15 Δεκεμβρίου 2011 Defacer Ουτε εγω κανω τον εξυπνο ! Εγραψα επικεφαλιδα στο πρωτο post ..... "I had a dream". Που σημαινει οτι δεν χρειαζομαι την αδεια του Tanenbaum για να ονειρευτω ! Δικαιουμαι, νομιζω, να ονειρευτω κατι Quick and Dirty οπως ειναι το DOS χωρις να νιωθω τυψεις που δεν γνωρισα το Unix. Αλλωστε ............ τι πιθανοτητες ειχε ενας 24αρης, πισω στο 1988, να ερθει σε επαφη με ενα UNIX συστημα ? Απο ελαχιστες μεχρι μηδενικες ... μηπως ? Ομως, δεν μου αρεσει η αντιπαραθεση, γιατι δεν γεφυρωνει κοσμους. Εαν ο κοσμος του UNIX εχει κατι να προσφερει στον κοσμο του DOS (για την ακριβεια του FreeDOS-32, που τωρα ξεκιναει) τι θα ηταν αυτο ? Καλυτερη διαχειρηση IRQs, καλυτερο συστημα αρχειων, καλυτερα DMA transfers αναμεσα στα περιφερειακα ? (κατι, που να ειναι ισχυρο χωρις να ειναι υπερβολικα δαπανηρο σε κυκλους CPU) Περιμενω τις ιδεες σου .... DirectX Επειδη με τσιγκλας (με τον πιο δημιουργικο τροπο) .... οριστε και η ρουτινα χειρισμου των DAC registers (μονο για 16 χρωματα, για 256 ειναι διαφορετικη). PROCEDURE SetRGBvalue(Color, Red, Green, Blue: Byte ); Assembler; ASM MOV AX, 1007h MOV BL, Color INT 10h XOR BL, BL XCHG BH, BL MOV AX, 1010h {ενημερωση των DAC registers} MOV DH, Red MOV CH, Green MOV CL, Blue INT 10h END; ΥΓ1. Εβγαλα τον Pentium 166 απο το ραφι .... !!! ΥΓ2. Μακαρι να μπορουσα να γιουτουμπιασω τα γραφικα μου σε Pascal. Oι ρουτινες δεν συναρπαζουν καθολου στο ματι .... !
defacer Δημοσ. 15 Δεκεμβρίου 2011 Δημοσ. 15 Δεκεμβρίου 2011 Defacer Ουτε εγω κανω τον εξυπνο ! Εγραψα επικεφαλιδα στο πρωτο post ..... "I had a dream". Που σημαινει οτι δεν χρειαζομαι την αδεια του Tanenbaum για να ονειρευτω ! Δικαιουμαι, νομιζω, να ονειρευτω κατι Quick and Dirty οπως ειναι το DOS χωρις να νιωθω τυψεις που δεν γνωρισα το Unix. Αλλωστε ............ τι πιθανοτητες ειχε ενας 24αρης, πισω στο 1988, να ερθει σε επαφη με ενα UNIX συστημα ? Απο ελαχιστες μεχρι μηδενικες ... μηπως ? Ομως, δεν μου αρεσει η αντιπαραθεση, γιατι δεν γεφυρωνει κοσμους. Εαν ο κοσμος του UNIX εχει κατι να προσφερει στον κοσμο του DOS (για την ακριβεια του FreeDOS-32, που τωρα ξεκιναει) τι θα ηταν αυτο ? Καλυτερη διαχειρηση IRQs, καλυτερο συστημα αρχειων, καλυτερα DMA transfers αναμεσα στα περιφερειακα ? (κατι, που να ειναι ισχυρο χωρις να ειναι υπερβολικα δαπανηρο σε κυκλους CPU) Περιμενω τις ιδεες σου .... Εσύ περιγράφεις κάτι που μοιάζει με σύστημα στο οποίο η οποιαδήποτε λειτουργία θα εκτελούταν με όσο το δυνατό λιγότερες instructions (αρχικά δηλαδή... γιατί μετά αρχίζεις να λες για πράγματα τα οποία θα γίνονται "όπως θέλει το πρόγραμμα", κάτι που είναι εντελώς αντίθετο σ' αυτή τη λογική και επίσης είναι ακριβώς ο λόγος για τον οποίο στο DOS πολλά πράγματα ήταν fixed είτε μας αρέσει είτε όχι). Εγώ σκέφτομαι ότι ένα τέτοιο σύστημα θα ήταν παντελώς άχρηστο -- με την έννοια unworkable εντελώς να έχει φορτωμένα ταυτόχρονα στη μνήμη 2 προγράμματα τα οποία δε γράφτηκαν από την ίδια ομάδα με αποκλειστική μέριμνα το να μη μπαίνει το ένα στα πόδια του άλλου (και ακόμα και τότε πάρτε μια καρέκλα και αράξτε, έρχονται τα bugs). Από τεχνικής άποψης επίσης το post σου μου δίνει την εντύπωση ότι γράφτηκε από κάποιον που δεν ξέρει ποιά είναι τα προβλήματα που καλείται ένα λειτουργικό να λύσει, παρα μόνο έχει δει τις λύσεις που παρέχει το DOS (οι οποίες είναι κάθε άλλο παρά βέλτιστες) και έχει ξεκινήσει από κει για να πάει στο χάος. Επίσης υπάρχουν κάποια τμήματα που δείχνουν εντελώς λάθος αντίληψη όχι για το πως δουλεύει ένα λειτουργικό αλλά ακόμα και για το πώς είναι στημένο ένα "personal computer". Αυτά λοιπόν διάβασα και μου σηκώθηκε η τρίχα οπότε και "έσπειρα φωτιά και ατσάλι". Πάω πάσο αν μιλάμε για το προσωπικό σου όνειρο, και ζητώ συγγνώμη που μπλέχτηκα στην κουβέντα χωρίς να έχω κάτι να προσφέρω.
Directx Δημοσ. 15 Δεκεμβρίου 2011 Δημοσ. 15 Δεκεμβρίου 2011 (επεξεργασμένο) DirectX Επειδη με τσιγκλας (με τον πιο δημιουργικο τροπο) .... οριστε και η ρουτινα χειρισμου των DAC registers (μονο για 16 χρωματα, για 256 ειναι διαφορετικη). PROCEDURE SetRGBvalue(Color, Red, Green, Blue: Byte ); Assembler; ASM MOV AX, 1007h MOV BL, Color INT 10h XOR BL, BL XCHG BH, BL MOV AX, 1010h {ενημερωση των DAC registers} MOV DH, Red MOV CH, Green MOV CL, Blue INT 10h END; ΥΓ1. Εβγαλα τον Pentium 166 απο το ραφι .... !!![..] Λοιπόν, μια νέα ανασκαφή στο αρχείο μου με οδήγησε σε ένα άρθρο & listing του Computer & Software της 1ης Ιουλίου 1995 το οποίο πραγματεύεται την κατασκευή ενός demo που παρουσίαζε ένα plasma effect σε DOS. Ο κολλητός μου, που τότε έγραφε σε Turbo Pascal το είχε ξεσκίσει σχεδιάζοντας υπέροχα εφέ!! Επειδή πιστεύω ότι θα σου φανεί ενδιαφέρον & χρήσιμο το αναρτώ: 1ο τμήμα 2ο τμήμα ΥΓ2. Μακαρι να μπορουσα να γιουτουμπιασω τα γραφικα μου σε Pascal. Oι ρουτινες δεν συναρπαζουν καθολου στο ματι .... ! Επί DOS υπήρχαν κάποια προγράμματα που τραβούσαν video την οθόνη (νομίζω), αλλά δεν θυμάμαι πλέον ονομασία, στην χειρότερη περίπτωση.. σκοτεινό δωμάτιο, ρύθμιση της φωτεινότητας της οθόνης και λήψη βίντεο μέσο ψηφιακής κάμερας ή κινητού τηλεφώνου. --UPDATE: Ακολουθεί μεταφορά του παραπάνω κώδικα σε C++ Builder (επιλέγω ως βασικό χρώμα το κόκκινο -νομίζω έτσι ήταν και στο αυθεντικό [?]), η σχεδίαση της οθόνης γίνεται μέσο κλήσεων GDI: http://www.youtube.com/watch?v=QyLPylPfMGk Επίσης, το αρχικό listing υπό συνθήκες μπορεί να οδηγήσει σε "boundary overflow" (πράγμα που διόρθωσα στον κώδικα C που έγραψα) αλλά καθώς δεν γνωρίζω PASCAL επιφυλάσσομαι να μην ισχύει αυτό το ζήτημα στην γλώσσα αυτή ή να μου ξέφυγε κάτι στην μεταγραφή. --UPDATE: Η χρήση Byte var προφυλάσσει το αρχικό listing από τέτοια προβλήματα καθώς σε περίπτωση overflow η μεταβλητή γυρίζει σε 0 ή 255 ανάλογα του τρόπου αύξησης ή μείωσης. Επεξ/σία 16 Δεκεμβρίου 2011 από Directx
SR71B Δημοσ. 15 Δεκεμβρίου 2011 Μέλος Δημοσ. 15 Δεκεμβρίου 2011 Defacer ΔΕΝ δειχνεις ανθρωπος που δεν γνωριζει. Το αντιθετο θα λεγα ! Πες μας σε παρακαλω, γιατι δεν γινεται να φορτωσω σε ενα κομματι μνημης ενα προγραμμα (που θα τρεξει εκει μεσα) και σε ενα διαφορετικο κομματι μνημης ενα αλλο προγραμμα. Για να καταλαβω και εγω, που ξεκινουν τα bugs ? Eφοσον, ειμαι τοσο δηλητηριασμενος απο την φιλοσοφια του DOS (που γνωριζω οτι ειναι πασαλλειμα λειτουργικου συστηματος) δωσε μας τα φωτα σου. Πρεπει να ειμαι software engineer για να σε καταλαβω ? Γραψε που θεωρεις οτι χωλαινε ΚΥΡΙΩΣ το DOS, και οχι ενα γενικο αναθεμα. Γραψε ποιο θεωρεις εσυ γρηγοροτερο συστημα αρχειων (FAT, NTFS, Ext2 ...) χωρις δικλειδες ασφαλειας λες και βρισκομαι σε εταιρικο περιβαλλον. Ενα συστημα αρχειων για ΕΝΑΝ δισκο και ΕΝΑΝ επεξεργαστη και ΕΝΑΝ χρηστη. Θυμασαι εκεινη την εποχη ... ετσι δεν ειναι ? DirectX Χαχαχα .... η περιστροφη παλεττας (σε 256 χρωματα) ειναι χαρμα οφθαλμων που χαθηκε με την ελευση του αληθινου (24-bit) χρωματος. Ξερεις απο που την ξεσηκωσα ? Θυμασαι ενα προγραμματακι DOS για υπολογισμο fractals, το Fractint ? Λοιπον, το Fractint, εκτος απο τα executables , εδινε και τον πηγαιο κωδικα (σε C δυστυχως). Eψαχνα και δοκιμαζα ατελειωτα κομματια κωδικα μεχρι βρω τι τρεχει σε Pascal (τοτε δεν υπηρχε οδηγος BGI για SuperVGA !!!). Οταν το βρηκα (που δεν ειναι αυτο που ποσταρα, αλλα ενα αλλο που θα το ποσταρω) ΚΑΘΕ ΚΟΜΜΑΤΙ ΚΩΔΙΚΑ ετρεχε και μια περιστροφη παλεττας. Πηγαινε δεν πηγαινε. Με ειχε πιασει αμοκ. Εντελως. Εκανα ενα χρονο για να το ξεπερασω (ισως να μην το ξεπερασα ποτε). Και ναι, η FreePascal εχει προβλημα να κανει περιστροφη παλεττας μεσα απο Windows. Θυμαμαι και εγω οτι υπηρχαν προγραμματακια που τραβουσαν βιντεο οτι επαιζε σε μια οθονη DOS. Θα ψαξω κατι παλια CD του Computer για Oλους και ισως σταθω τυχερος. Κλαψ ..... σνιφ ...... εχω σχεδιασει μια μεγενθυνση σε Mandelbrot set (νομιζω ενα Julia set) που απλα ειναι απαιχτο σε color rotation ! (γμτ ....)
Directx Δημοσ. 15 Δεκεμβρίου 2011 Δημοσ. 15 Δεκεμβρίου 2011 DirectX Χαχαχα .... η περιστροφη παλεττας (σε 256 χρωματα) ειναι χαρμα οφθαλμων που χαθηκε με την ελευση του αληθινου (24-bit) χρωματος. Ξερεις απο που την ξεσηκωσα ? Θυμασαι ενα προγραμματακι DOS για υπολογισμο fractals, το Fractint ? Λοιπον, το Fractint, εκτος απο τα executables , εδινε και τον πηγαιο κωδικα (σε C δυστυχως). Eψαχνα και δοκιμαζα ατελειωτα κομματια κωδικα μεχρι βρω τι τρεχει σε Pascal (τοτε δεν υπηρχε οδηγος BGI για SuperVGA !!!). Οταν το βρηκα (που δεν ειναι αυτο που ποσταρα, αλλα ενα αλλο που θα το ποσταρω) ΚΑΘΕ ΚΟΜΜΑΤΙ ΚΩΔΙΚΑ ετρεχε και μια περιστροφη παλεττας. Πηγαινε δεν πηγαινε. Με ειχε πιασει αμοκ. Εντελως. Εκανα ενα χρονο για να το ξεπερασω (ισως να μην το ξεπερασα ποτε). Και ναι, η FreePascal εχει προβλημα να κανει περιστροφη παλεττας μεσα απο Windows.[..] Yeap! Η περιστροφή παλέτας ήταν σήμα κατατεθέν των περισότερων DEMO και παιχνιδιών τόσα στα 16μπιτ όσο και στα 8μπιτα μηχανάκια. Δίχως να κοστίζει σημαντικά σε υπολογιστικό χρόνο (CPU) μπορούσε να παρουσιάσει απίθανα εφέ! Στα Windows η παλέτα εξακολουθεί να υπάρχει όταν δουλεύουμε σε χαμηλές χρωματικές αναλύσεις αλλά η διαχείριση της είναι σαφέστατα πιο περίπλοκη από εκείνη του DOS. Το Fractint κάτι μου λέει αλλά ως εκεί, βλέπεις προς το τέλος του 80 και στις αρχές του 90 δούλευα με Amiga οπότε άλλος κόσμος (τα PC ήταν ακόμα πρωτόγονα ), πρωτύτερα με CPC6128 (θυμάται κανείς το *CP/M? -κλώνος του, για τα 16bit, υπήρξε το QDOS). * Η συζήτηση περί του DOS πρέπει να γίνει μόνο υπό το πρίσμα ότι στόχος της πρώτης έκδοσης του ήταν να αποτελέσει ένα πιστό αντίγραφο του CP/M αλλά για 16bit επεξεργαστές. Από εκεί και πέρα, το DOS 2.0 δοκίμασε να φέρει κάποια πράματα που έμαθε η MS από το XENIX (ναι υπήρξε μια εποχή που η MS είχε το δικό της UNIX ). Αλλά εδώ υπάρχει και ένα "μυστικό" από την IBM που εξηγεί πολλά πράματα για την αρχική σχεδίαση του hardware & software που έλαβε το πρώτο IBM PC. . .
SR71B Δημοσ. 15 Δεκεμβρίου 2011 Μέλος Δημοσ. 15 Δεκεμβρίου 2011 DirectX Αυτο ... ηταν μια πολυ μικρη γευση του τι σχεδιαζε εκεινο το "προγραμματακι" που λεγοταν Fractint. http://en.wikipedia.org/wiki/File:Mandelbrot_palette_colour_editing_with_Fractint.png Συμφωνω οτι το DOS ηταν ενα πασαλλειμα πανω στο QDOS (Quick & Dirty Operating System). Και φυσικα, ΔΕΝ ηταν πνευματικο παιδι του Gates. Να μας θυμιζει πως οι πλεον ακαταλληλοι ανθρωποι βρεθηκαν να ηγουνται της πληροφορικης (βιομηχανιας και οχι καινοτομιας). Τεσπα .... τεραστια η κουβεντα ! Ας μην ανοιξουμε πληγες του παρελθοντος. Αυτο που ηθελα με αυτο το ποστακι, ηταν να γινει μια χαλαρη κουβεντα πανω σε λειτουργικα συστηματα. Χ-Α-Λ-Α-Ρ-Η !!!!! Σαν αυτες που ξεκινας Κυριακη πρωι με καλους φιλους (και καλο καφε φιλτρου). Oμως, ενω υπαρχει κοσμος που γνωριζει ... νιωθει τοσο ασημαντος μπροστα σε αυτα που ξερουν αλλοι, που παραιτειται ! Δεν ειμαι βαθμολογητης (την τυφλα μου) ... ονειροβατης ειμαι (SkyWalker) ! Εφαγα 10 χρονια με το DOS και (δυστυχως η ευτυχως) ειναι κομματι της ζωης μου. Και καθε κομματι της ζωης σου, οσο ασχημο και αν ειναι .... ειναι περιουσια σου. Δεν το πετας στα σκουπιδια. Ηθελα να μιλησουμε για filesystems, για interrupts, για real vs protected mode ..... μαλλον, δεν θα μιλησουμε. Και δεν μπορω να αντιληφθω τα εμποδια , ΕΙΛΙΚΡΙΝΑ ΔΕΝ ΜΠΟΡΩ ! Ας πουμε, το UNIX (που θυμαμαι εγω) ειχε ενα root directory οπου ΟΛΑ τα αρχεια ηταν προσβασιμα αλλα ΔΕΝ βρισκονταν ολα σε ΕΝΑΝ δισκο (ουτε σκληρο, ουτε floppy, ουτε optical). Ηταν σε μια virtual κατασταση (δηλαδη σε ενα RAM disk, η ακομα χειροτερα σε ενα δικτυο). To DOS δεν το ειχε αυτο, και ηταν/ειναι τεραστιο μειονεκτημα σε προσβαση. ΟΜΩΣ, εχοντας ολα τα αρχεια (και δισκους) σε εναν PC, προσφερε ταχυτητα (σε mount/dismount των αποθηκευτικων μεσων, ισως). Το FreeDOS-32 , με το LEAN .... τι ακριβως θα κανει σε αυτον τον τομεα ? Θα θυσιασει την ταχυτητα για την ευρυτητα προσβασης ? (τοσο γελοια πραγματα ρωταω ? .....)
Directx Δημοσ. 16 Δεκεμβρίου 2011 Δημοσ. 16 Δεκεμβρίου 2011 DirectX [..] Συμφωνω οτι το DOS ηταν ενα πασαλλειμα πανω στο QDOS (Quick & Dirty Operating System). Και φυσικα, ΔΕΝ ηταν πνευματικο παιδι του Gates. Να μας θυμιζει πως οι πλεον ακαταλληλοι ανθρωποι βρεθηκαν να ηγουνται της πληροφορικης (βιομηχανιας και οχι καινοτομιας). Τεσπα .... τεραστια η κουβεντα ! Ας μην ανοιξουμε πληγες του παρελθοντος.[..] Yeap, μεγάλη και βρώμικη ιστορία με πολύ ενδιαφέρουσες πτυχές που φήμες ήθελαν να έχουν ως και ροζ απόχρωση!! Αυτο που ηθελα με αυτο το ποστακι, ηταν να γινει μια χαλαρη κουβεντα πανω σε λειτουργικα συστηματα. Χ-Α-Λ-Α-Ρ-Η [..] Προσωπικά πάντως πέρασα όμορφα με αφορμή αυτά τα posts καθώς θυμήθηκα πράγματα που έχουν περάσει εδώ και πολλά χρόνια και όμως ήρθαν στην μνήμη μου σαν να ήταν χθες! Επίσης έγραψα και ένα προγραμματάκι (σε C) που είχα αφήσει σε εκκρεμότητα 16 ολόκληρα χρόνια (!) -τι άλλο θέλω!! Τώρα αν υπάρχουν και μικρές παραφωνίες, συμβαίνουν αυτά σε ένα δημόσιο forum φίλε SR71B οπότε μην σκας.
migf1 Δημοσ. 16 Δεκεμβρίου 2011 Δημοσ. 16 Δεκεμβρίου 2011 ... βλέπεις προς το τέλος του 80 και στις αρχές του 90 δούλευα με Amiga οπότε άλλος κόσμος (τα PC ήταν ακόμα πρωτόγονα ), πρωτύτερα με CPC6128 (θυμάται κανείς το *CP/M? -κλώνος του, για τα 16bit, υπήρξε το QDOS). * Η συζήτηση περί του DOS πρέπει να γίνει μόνο υπό το πρίσμα ότι στόχος της πρώτης έκδοσης του ήταν να αποτελέσει ένα πιστό αντίγραφο του CP/M αλλά για 16bit επεξεργαστές. ... Το θυμάμαι εγώ Όταν ήσουν με Amiga ήμουν με Atari ST, και το TOS που χρησιμοποιούσε ως λειτουργικό τότε ήταν ένας συνδυασμός CP/M 68 + DOS (αρχικά ήταν να βγει με CP/M ο ST, αλλά τελικά έφτιαξαν το TOS σε συνεργασία με την Digital Research, κατασκευαστή του CP/M, που είχε ήδη ξεκινήσει να φτιάχνει DOS με γραφική υποστήριξη, αλλά για PC.). Πριν από τον ST ήμουν σε Apple IIc ... εποχές! Επιστροφή στο σήμερα, η αλήθεια είναι πως οι ανάγκες του τότε με τις ανάγκες του σήμερα δεν έχουν απολύτως καμία σχέση. Το portability και η ευελιξία είναι μακράν σημαντικότερα από το brute-force τόσο σε επίπεδο ΛΣ όσο και εφαρμογών, αποτελεί μάλιστα και βασικό λόγο που η assembly αντικαταστάθηκε εν πολλοίς από την C και χρησιμοποιείται μονάχα περιστασιακά και σε πολύ εξειδικευμένες περιπτώσεις (και σχεδόν ποτέ αυτόνομα, αλλά ως binding για πολύ συγκεκριμένες ρουτίνες ευρύτερων project)
Directx Δημοσ. 16 Δεκεμβρίου 2011 Δημοσ. 16 Δεκεμβρίου 2011 Το θυμάμαι εγώ Όταν ήσουν με Amiga ήμουν με Atari ST, και το TOS που χρησιμοποιούσε ως λειτουργικό τότε ήταν ένας συνδυασμός CP/M 68 + DOS (αρχικά ήταν να βγει με CP/M ο ST, αλλά τελικά έφτιαξαν το TOS σε συνεργασία με την Digital Research, κατασκευαστή του CP/M, που είχε ήδη ξεκινήσει να φτιάχνει DOS με γραφική υποστήριξη, αλλά για PC.). Yeap! Ουσιαστικά η DR μετέφερε το CP/M-68 & GEM (το GUI της -ας πούμε μετεξέλιξη του CP/M GSX API) στον ST καθώς δυστυχώς στα PC υπέκυψε στις απειλές της Apple με αποτέλεσμα την απόσυρση του GEM και την μετασκευή του σε GUI Library από εκεί που ήταν πλήρες αυτόνομο γραφικό περιβάλλον εργασίας. Αντίθετα η MS δεν υπέκυψε σε ανάλογες απειλές της Apple προς τα Windows και πήγε το θέμα στα δικαστήρια (ανάλογες πρακτικές εφαρμόζει η Apple και σήμερα σχετικά με το iPhone/iOS). Πριν από τον ST ήμουν σε Apple IIc ... εποχές! Προ 6128 είχα παίξει λίγο με το ZX Spectrum ενός συγγενή, θυμάμαι προσπαθούσαμε να φορτώσουμε το International Karate (νομίζω?) σε μια ασπρόμαυρη φορητή τηλεόραση με το κασετόφωνο να μην μας κάνει την χάρη. Ύστερα από αυτά, μακάρισα το floppy disk του 6128 έστω και αν ήταν αναξιόπιστο και ιδιωματικό (3" δισκέτες). Τώρα όσον αφορά το Apple IIc, λοιπόν πριν καμία 10ρια χρόνια έσωσα ένα από βέβαια θάνατο. Ένας συγγενής μου που είχε φροντιστήριο ξένων γλωσσών και στις αρχές του '80 ανακατεύτηκε με την Πληροφορική (είχε οργανώσει και ένα Show Η/Υ σε κάποιο γνωστό ξενοδοχείο τότε) ξεσκαρτάρισε τον άχρηστο εξοπλισμό του μεταξύ του οποίου ήταν κλασικά κομμάτια (πχ. Apple Macintosh 512K -τα πρόλαβαν άλλοι :-\) έτσι λοιπόν βρήκα ένα παλιό IIc μαζί με το Monitor του δίχως όμως όλα τα καλώδια του ή τις δισκέτες του (πέραν ορισμένων νομίζω Manuals) ώστε να το βάλω μπρος, παρόλα αυτά καθώς δεν είχα ποτέ ένα Apple Η/Υ το τσίμπησα πριν καταλήξει στα σκουπίδια, ιδού: (το σασί -αυτό και του monitor- είναι ταλαιπωρημένο(α) ύστερα από τόσα χρόνια υπηρεσίας σε φροντιστήριο που δούλευε ως επί το πλείστο με παιδιά μικρής ηλικίας και εφήβους) Επιστροφή στο σήμερα, η αλήθεια είναι πως οι ανάγκες του τότε με τις ανάγκες του σήμερα δεν έχουν απολύτως καμία σχέση. Το portability και η ευελιξία είναι μακράν σημαντικότερα από το brute-force τόσο σε επίπεδο ΛΣ όσο και εφαρμογών, αποτελεί μάλιστα και βασικό λόγο που η assembly αντικαταστάθηκε εν πολλοίς από την C και χρησιμοποιείται μονάχα περιστασιακά και σε πολύ εξειδικευμένες περιπτώσεις (και σχεδόν ποτέ αυτόνομα, αλλά ως binding για πολύ συγκεκριμένες ρουτίνες ευρύτερων project) Έτσι είναι, Assembly στα PC (τουλάχιστον) παραδοσιακά έγραφες όταν οι βιβλιοθήκες της C (ή της PASCAL) που πρόσφερε ο μεταφραστής δεν είχαν κάποιο απαιτούμενο function (ή κόστιζαν πολύ σε ταχύτητα) οπότε αναγκαστικά έπρεπε να καταφεύγεις στα περίφημα Int του BIOS ή του DOS που το πρόσφεραν. Στα 8bit η Assembly ήταν μονόδρομος ενώ στα 16bit μόνο αν ήθελες να έχεις ολόκληρο το σύστημα δικό σου για να κάνεις πολλά εφέ με όσο το δυνατό μικρότερο κόστος μνήμης και ταχύτητας (η πλειοψηφία των παιχνιδιών δηλαδή). Βέβαια στην επόμενη αναθεώρηση του hardware / software (στα 16μπιτα) έψαχνες για "degrader" μπας και παίξουν τα παλιά games (αφού κάνανε ότι γουστάρανε στο σύστημα καταστρατηγώντας το abstraction του λειτουργικού).
migf1 Δημοσ. 16 Δεκεμβρίου 2011 Δημοσ. 16 Δεκεμβρίου 2011 Φίλε DirectX, σε βρίσκω πολύ ενημερωμένο και μου αρέσει πολύ... πρέπει να είμαστε και της ίδιας εποχής Επί του θέματος, το DOS χρησιμοποιείται ακόμα σε κάποια ενσωματωμένα συστήματα, αλλά δεν ξέρω για πόσο ακόμα. Ίσως είναι επίσης καλό για εκπαιδευτικούς λόγους, λόγω της απλότητάς του για κάποιον που θέλει να πάρει μια ιδέα, αν και και για αυτές τις δουλειές θεωρώ το Minix μακράν ιδανικότερο. Θυμάμαι τέλη δεκαετίας του '80 το σκάλιζα στον Atari, σε "αντιπαράθεση" με το System V Unix που είχαμε στο mainframe... υπήρχε από τότε, φτιαγμένο από τον Tanenbaum αποκλειστικά για αυτό το σκοπό... σήμερα έχει φτάσει στην έκδοση 3, είναι πολύ πιο εξελιγμένο, διατίθεται με BSD license κι εξακολουθεί φυσικά να είναι open-source... σε C προφανώς
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα