Op 9 januari 2023 22:45:23 schreef Hoeben:
Ik programmeerde deze niet, deed 6502 en 6809, en snap nog steeds niet waarom Intel (dit zijn Zilogs, afstammeling daarvan) alles in pagina's verdeelde.
De Z80 was een 8080 compatible processor door Zilog bedacht. Die 64k werden opgelegd door dat de 8 bit processors als de 8080, Z80, 6502, 680x allemaal een 16 bit adresbus hadden en daarmee maximaal 65536 verschillende adressen konden aanwijzen.
Intel heeft bij het ontwerp van de 16 (register)bit 8088/8086 terugwaartse compatibiliteit voor ogen gehad met de bus structuur van de 8 bit processors.
En met een 16 bits adresregister kun je maar 64 kByte aanwijzen. Intels oplossing was om een extra register te gebruiken die aangaf welke bank van 64 Kbyte je wilde gebruiken.
In veel CP/M computers met een 8080/Z80 werd ook wel meer dan 64 kByte toegepast maar dan moest er ook weer geschakeld worden tussen geheugenbanken. De CPU 'zag' altijd maar 64kByte.
Motorola had in die tijd de (intern 32 bits) 68000 welke wel al een lineaire adressering had. Door het beperkte aantal pinnen waren daar echter ook maar 24 van de 32 adresbits naar buiten gevoerd. De databus was 'maar' 16 bits en dus moest de 68000 ook in twee slagen een 32 bits getal inlezen. In de latere 68020/030/040 processoren waren wel alle 32 bits naar buiten gebracht.
Toen Intel met de 80386 en 80486 uitkwam hadden die naast 32 bits registers, ook een volledige adres en databus en konden tot 4 GByte rechtstreeks aanwijzen. Nu lachen we ook daar al weer om en is 32 bits al niet meer genoeg.