Ολα αυτα που κοκορευεστε .... ηρθαν με την ελευση του HIMEM.SYS (και DOS 4.0).
Τα 580 Kb ... ηταν απλησιαστο oνειρο για DOS 3.30. Γιατι επρεπε ΟΛΑ να χωρεσουν
σε 60 Kb μνημης (IO - MSDOS - COMMAND και ολα τα TSR η SYS).
Oταν ηρθε ο HΙΜΕΜ.SYS (εξαιτιας ενος προγραμματιστικου bug) εδωσε επιπλεον
64 Kb μνημης πανω απο το 1 Mb boundary. Aς ειναι καλα το bug, δηλαδη



Μεσα σε μια νυχτα διπλασιαστηκε ο χωρος για αρχεια συστηματος και TSRs !!!!
Ουτε καν χρειαστηκε η συνδρομη των UMBs. Mονο με την High Memory Area (τρομαρα της

)
Oυσιαστικα, ο HIMEM διαχειριζοταν δυο μνημες : Την High Memory Area (1024 - 1088 Kb)
ΚΑΙ την Extended Memory (1088 - 16384 Kb).
Μετα, με την ελευση του DOS 5.0 ... αλλα κυριως με την ελευση του DOS 6.0 (!!!!!) ....
ηρθαν και τα UMBs που (στην καλυτερη των περιπτωσεων) προσθεσαν 160 Kb Upper Memory.
To oποιο ηταν ΠΑΡΑ ΠΟΛΥ ΜΕΓΑΛΗ ΥΠΟΘΕΣΗ οταν το συνολο μνημης ηταν 640 Kb
η ακομα και 2 Mb μνημης (οι πρωτοι 286, με ποση μνημη νομιζετε οτι πουλιοντουσαν ?)
Στην αρχη (EMM386.EXE) δεσμευοταν μνημη απο την Extended Memory (περιοχη >1 Mb)
και οχι μεσα απο την πραγματικη Upper Memory Area (640-1024 Κb memory area).
Μετα ..... βγηκε ενας τυπακος (ονοματι Uwe Sieber) .... o oποιος δεσμευσε
κατευθειαν μεσα απο την Upper Memory Area, μνημη για TSR και SYS οδηγους.
Μονο που ... ΔΕΝ υποστηριζονταν απο ολα τα τσιπσετ. Bλαστημισαμε μερικοι :icon15:
Η Upper Memory Area δημιουργησε περισσοτερα προβληματα απο οσα ελυσε.
Ο ΕΜΜ386.ΕΧΕ και η Microsoft το ξεραν αυτο ... γιατι εκει μεσα επεφταν ολες οι ROM
απο ΒΙΟSes για καρτες δικτυου, VGA/ΕGA/CGA/MDA η αποκλειστικες περιοχες μνημης
για Frame Βuffers (A000-BFFF) και οτι παλαιολιθικη καλιακουδα μπορειτε να φανταστειτε.
Οποτε .... το πλεον στανταρντ φαινομενο ηταν να κολλαει ολακερο το συμπαν.
Ενα byte επικαλυψης αναμεσα σε TSR και ROM ... και γαμιοταν ο Διας και ο Ηλιας μαζι.
Επειδη κατα το reboot ξαναφορτωνονταν το ιδιο λαθος και δεν ξεκολαγες με τιποτα
... επρεπε να πατησεις ειτε F8 ειτε να μπουταρεις με "καθαρη" (απο CONFIG και
AUTOEXEC) δισκετα. Δηλαδη, πολυ βρισιδι στο troubleshooting. ΠΟΛΥ ! :angry:
Ευτυχως, ηρθε το MEMMAKER να τα λυσει ολα αυτα.
Γιατι ενω εσυ υπολογιζες οτι το ταδε αρχειακι καταλαμβανει μονο 7 Kb στην UMA
αυτο, οταν ετρεχε, αποσυμπιεζε ενα κομματι του κωδικα του και καταλαμβανε ... 17 Kb
(το γ@μημενο :angry

. Που να τα ξεραμε ολα αυτα ? Τοτε ! Aλλο το μεγεθος του αρχειου
στον δισκο και ΑΛΛΟ στην μνημη οταν τρεχει (which makes sense, eventually).
Οποτε, με το MemMaker, ολα αυτα υπολογιζονταν και τιποτα δεν επικαλυπτε κατι αλλο.
Τα multi-configs (που λεει ο Τσιμισκης) ... ηταν ενα ακομα κερασακι στην τουρτα.
Αλλο configuration για Τurbo C++ (η οποια γινεται στριγγλα με τον EMM386 και κολλαει
καλυτερα και απο εποξικη ρητινη) αλλη για παιχνιδακια που χρειαζονται οσο το δυνατον
περισσοτερη extended memory και αλλη .... για Windows 3.0. Ειδικα τα Windows 3.0
δεν εκαναν καθολου καλο χωριο με UMA .... μα καθολου ! Την ξεχνουσες την UMA
(αν ηθελες να τρεξεις Windows τα οποια σκεδιαστηκαν για protected mode λειτουργια
και OXI real mode ... οπως μαθαμε οι ντοσαδες επι αιωνες

roud: χιλιετηριδες !).
Hardcore stuff ->
http://staff.ustc.edu.cn/~xyfeng/research/cos/resources/machine/mem.htm