De Personal Computer is al op vele vlakken geupgraded, maar de architectuur zou nog steeds compatible moeten zijn met de 8086. Ondanks alle 64-bit extensies is de oorspronkelijke 8086 code nog steeds aanwezig (toch?). Ik heb een tijd geleden een 8088 en een 80286 machine aangesloten om data van een 5,25" floppy te kopieren. Stiekem heb ik toch wat spelletjes geinstalleerd en heb ik wat lopen klooien met het machientje dat op MS-DOS draaide en uiteraard heb ik Leisure Suit Larry 1 en Police Quest 1 even uitgespeeld. Nu heb ik een aantal vraagjes:
1.
De adresbus van de 8086/8088 is 20-bit (1 MB). Intern is de 8086/8088 16-bit. Heeft de CPU dan twee cycles nodig om een adresgebied te bereiken? Of werkt dat dan niet zo? Zou een 16 bit adresbus dan niet sneller zijn geweest ondanks de beperking van 64 KB adresruimte? De eerste PC had immers maar 16 KB RAM. Vroeger zag je een BIOS bij de POST het RAM geheugen testen in stappen van 64 KB. Heeft dat te maken met die interne 16-bit waardoor het alleen mogelijk was om blokken van 64 KB te benaderen en er dus steeds van bank moest worden gewisseld of iets dergelijks?
2.
De 80286 kan wel naar protected mode, maar niet terug naar real-mode, behalve wanneer je een reset uitvoert op de CPU. Een van de pinnetjes heet RESET. Is een signaal naar de RESET pin van de CPU voldoende voor een reset? Is dat alsof je de reset knop indrukt? Reset de CPU dan en start hij de BIOS op?
3.
Het schijnt dat er een truukje is om toch uit de 80286 protected mode te gaan door een waarde in de CMOS op te slaan en een reset uit te voeren. De BIOS ziet deze waarde en gaat terug naar het geheugenadres waar het was gebleven. Hoe ziet dat er in de praktijk uit? Duurt dat lang? Of is dat binnen een seconde gepiept? Zie je de POST voorbij komen? Is het een reset als in een signaal op de reset pin van de CPU?
4.
Als je naar ffff:0 gaat dan wordt de computer opnieuw opgestart. Is dat ook het beginadres waar de computer heen gaat als je de computer aan zet? Wordt het RAM geheugen bij een reboot dan sowieso niet gewist, maar gewoon overschreven wanneer nodig? Is dat waarom je vroeger je computer pas na 10 seconden weer mocht inschakelen, zodat het RAM geheugen echt leeg was? Gaat een moderne Intel Core i7 ook naar ffff:0 als je hem inschakelt?
Is de huidige BIOS (niet UEFI) architectuur nog steeds volledig compatible met de 8086? M.a.w. zou je op een Core2Duo nog steeds MS-DOS 1.00 kunnen draaien mits je een single sided single density floppydrive aangesloten krijgt?
Waarom sluit het venster als je in de commandline van Windows 9x/NT naar ffff:0 gaat? Heeft dat te maken met de Virtual 8086 mode op de 80386+ CPU's die dan reboot?
5.
Als je een Core2Duo inschakelt (de laatste systemen met BIOS), start deze dan initieel op in enhanced/protected mode en is virtual real mode een optie? Of start deze ook initieel op in real mode? Hoe test de machine dan het RAM geheugen boven de 1 MB? Ik heb nog een oude dual-processor Pentium 3-server in storage met 4 GB RAM. Die telt vrolijk tot 4 GB bij de POST. Ver buiten de 8086 adresruimte. Doet die dat door steeds blokken van 1 MB te switchen?
6.
Op de PC/XT is een BIOS tot 64 KB groot. Op de laatste BIOS machines (Core2 machines) zijn BIOSen soms wel 2 MB groot. Dat past toch nooit in de 1 MB adresruimte van de 8086? Hoe kan dat? Dat zou dus betekenen dat de meest recente BIOS systemen (Core2Duo/Quad) dus direct in enhanced/protected mode moeten opstarten? Dan zou zo'n systeem toch niet meer compatible zijn met MS-DOS?
7.
In hoeverre is de huidige x86 architectuur compatible met de oudere processors, zoals de 8085, 8080 of zelfs 4-bit processors zoals de 4040 en 4004? De 8086 kon 8085 programma's draaien, kan een Intel Core i7 dat ook?
8.
In sommige BIOS files van "moderne" (Pentium 3/4) computers staat nog steeds de tekst "No ROM Basic." Het betekent dat de Basic-chip niet op het moederbord zit. Waarom zit die foutmelding er nog in als de mogelijkheid er sinds de Intel 80386 er niet meer is? Of kan de huidige Core i7 in BIOS mode nog steeds een Basic chip aansturen?
Allemaal vraagjes waarvan ik het antwoord niet op internet kan terugvinden. Ik ben helemaal geen assembler/machinecodekenner, dus wellicht zijn sommige vragen ook wat vreemd geformuleerd. Deze vragen en de bijbehorende antwoorden zullen niet echt bijdragen aan een betere computing-experience, behalve dat we wellicht beter begrijpen hoe Leisure Suit Larry 1 werkt. Het zijn voornamelijk vragen die in mij op kwamen toen ik middels een oude PC/XT data van een 5,25 floppydisk probeerde te halen.
1.
De adresbus van de 8086/8088 is 20-bit (1 MB). Intern is de 8086/8088 16-bit. Heeft de CPU dan twee cycles nodig om een adresgebied te bereiken? Of werkt dat dan niet zo? Zou een 16 bit adresbus dan niet sneller zijn geweest ondanks de beperking van 64 KB adresruimte? De eerste PC had immers maar 16 KB RAM. Vroeger zag je een BIOS bij de POST het RAM geheugen testen in stappen van 64 KB. Heeft dat te maken met die interne 16-bit waardoor het alleen mogelijk was om blokken van 64 KB te benaderen en er dus steeds van bank moest worden gewisseld of iets dergelijks?
2.
De 80286 kan wel naar protected mode, maar niet terug naar real-mode, behalve wanneer je een reset uitvoert op de CPU. Een van de pinnetjes heet RESET. Is een signaal naar de RESET pin van de CPU voldoende voor een reset? Is dat alsof je de reset knop indrukt? Reset de CPU dan en start hij de BIOS op?
3.
Het schijnt dat er een truukje is om toch uit de 80286 protected mode te gaan door een waarde in de CMOS op te slaan en een reset uit te voeren. De BIOS ziet deze waarde en gaat terug naar het geheugenadres waar het was gebleven. Hoe ziet dat er in de praktijk uit? Duurt dat lang? Of is dat binnen een seconde gepiept? Zie je de POST voorbij komen? Is het een reset als in een signaal op de reset pin van de CPU?
4.
Als je naar ffff:0 gaat dan wordt de computer opnieuw opgestart. Is dat ook het beginadres waar de computer heen gaat als je de computer aan zet? Wordt het RAM geheugen bij een reboot dan sowieso niet gewist, maar gewoon overschreven wanneer nodig? Is dat waarom je vroeger je computer pas na 10 seconden weer mocht inschakelen, zodat het RAM geheugen echt leeg was? Gaat een moderne Intel Core i7 ook naar ffff:0 als je hem inschakelt?
Is de huidige BIOS (niet UEFI) architectuur nog steeds volledig compatible met de 8086? M.a.w. zou je op een Core2Duo nog steeds MS-DOS 1.00 kunnen draaien mits je een single sided single density floppydrive aangesloten krijgt?
Waarom sluit het venster als je in de commandline van Windows 9x/NT naar ffff:0 gaat? Heeft dat te maken met de Virtual 8086 mode op de 80386+ CPU's die dan reboot?
5.
Als je een Core2Duo inschakelt (de laatste systemen met BIOS), start deze dan initieel op in enhanced/protected mode en is virtual real mode een optie? Of start deze ook initieel op in real mode? Hoe test de machine dan het RAM geheugen boven de 1 MB? Ik heb nog een oude dual-processor Pentium 3-server in storage met 4 GB RAM. Die telt vrolijk tot 4 GB bij de POST. Ver buiten de 8086 adresruimte. Doet die dat door steeds blokken van 1 MB te switchen?
6.
Op de PC/XT is een BIOS tot 64 KB groot. Op de laatste BIOS machines (Core2 machines) zijn BIOSen soms wel 2 MB groot. Dat past toch nooit in de 1 MB adresruimte van de 8086? Hoe kan dat? Dat zou dus betekenen dat de meest recente BIOS systemen (Core2Duo/Quad) dus direct in enhanced/protected mode moeten opstarten? Dan zou zo'n systeem toch niet meer compatible zijn met MS-DOS?
7.
In hoeverre is de huidige x86 architectuur compatible met de oudere processors, zoals de 8085, 8080 of zelfs 4-bit processors zoals de 4040 en 4004? De 8086 kon 8085 programma's draaien, kan een Intel Core i7 dat ook?
8.
In sommige BIOS files van "moderne" (Pentium 3/4) computers staat nog steeds de tekst "No ROM Basic." Het betekent dat de Basic-chip niet op het moederbord zit. Waarom zit die foutmelding er nog in als de mogelijkheid er sinds de Intel 80386 er niet meer is? Of kan de huidige Core i7 in BIOS mode nog steeds een Basic chip aansturen?
Allemaal vraagjes waarvan ik het antwoord niet op internet kan terugvinden. Ik ben helemaal geen assembler/machinecodekenner, dus wellicht zijn sommige vragen ook wat vreemd geformuleerd. Deze vragen en de bijbehorende antwoorden zullen niet echt bijdragen aan een betere computing-experience, behalve dat we wellicht beter begrijpen hoe Leisure Suit Larry 1 werkt. Het zijn voornamelijk vragen die in mij op kwamen toen ik middels een oude PC/XT data van een 5,25 floppydisk probeerde te halen.