30Fermer32
KochiseLe 21/11/2006 à 10:47
Zerosquare (./29) :
stabylo (./28) :
C'est parce qu'Atari n'a pas passé la consigne de ne pas accéder aux ports d'entrées/sorties en mettant l'octet haut des adresse à $ff. Atari a mal prévu les extensions à venir, et le résultat est évident et sans appel : un boulet de plus à traîner pour la rétro-compatibilité tongue.gif
Bah, faut peut-être pas leur jeter la pierre trop vite non plus. Déjà, il me semble que le ST a été conçu plus ou moins "à l'arrache", non ? Et puis, je ne connais pas vraiment les 68k, mais la possiblité d'utiliser des opcodes courts était peut-être intéressante à l'époque (bon, d'un autre côté, on peut aussi utiliser l'adressage indexé, et là ça ne fait plus de différence...)

La conception du ST à pris 6 mois (mais ça c'est la légende urbaine). Sinon il n'existe pas d'opcode court en 68K, à l'image du mode 'Thumb' sur ARM. Par contre il existe un mode d'adressage court sur 15 bits ($0000 à $7FFF -> $00000000 à $00007FFFF - les vecteurs 68K - ET $8000 à $FFFF -> $FFFF8000 à $FFFFFFFF - les IO normalement -), le 16ème bit étant étendu sur les 16 derniers bits.

Historiquement comme le 68000 n'avait que 23 bits d'adresse (le bits 0 étant le strobe, puisque le 68000 ne peut qu'acceder à des adresses paires, pas comme le 68030), les 8 bits de poid fort de l'adresse étaient systématiquement inutilisés de façon hard par le 68000, ce qui permis à certains codeur un peu torchon d'utiliser ces 8 bits comme stockage temporaire (genre index de tableau, etc...). Ce n'est pas fondamentalement un bug, puisque le 68000 date de 1978 (vendu à partir de l'année suivante), tandis que le 68020, premier 32 bits de l'histoire, est apparu en 1984/85. C'est alors que sont apparus les problèmes liés à ces 8 bits au préalables non utilisés.

Vous remarquerez quand même que la date de sortie du 68020 coincide étrangemet avec la date de conception/commercialisation du ST, donc Atari aurait pu prendre en compte ces nouvelles données (existance d'un processeur réellement 32 bits dans la gamme 68k en vue d'une évolution de la gamme). Mais ce serait oublier que la programmation du 68000 (ou du 68020) dépend avant tout des compilateurs, et des programmeurs eux mêmes. Donc ce n'est pas forcément Atari qu'il faille foueter (je pense aux routines sndchip ou tracker par exemple, suivez mon regard)...

Kochise