2011-03-11 1 views
0

le titre l'indique. Je veux imprimer un caractère à l'écran sur une machine avec l'architecture PowerPC/POWER ou simplement appeler une fonction du BIOS. Comme je le comprends habituellement, il est important de savoir comment et comment le BIOS est connecté avec le processeur, alors disons que pour commencer, je veux juste me concentrer sur la machine qemu. Je pense que je ne cherche pas la commande 'sc', en fait je ne sais pas vraiment quelles méthodes sont utilisées sur une machine comme celle-ci pour faire quelque chose comme ça. A titre d'exemple pour ce que je veux être en mesure de faire, permettez-moi de fournir l'extrait d'assemblage x86 suivant qui doit imprimer le caractère 'a' en utilisant un BIOS-Interrupt en mode TTY.Comment déclencher une interruption du BIOS (par exemple, l'impression d'un caractère en mode TTY) sur l'architecture PowerPC/POWER en utilisant asm?


mov al, 0x97 
mov bh, 0x00 
mov bl, 0x07 
mov ah, 0x0E 
int 0x10 

Merci!

+0

Vous aurez besoin de docs couvrant ce que la machine fournit qui est similaire à un BIOS PC et invoquez-le selon les docs. Il n'y a vraiment pas beaucoup plus (ou moins) que ça. –

+0

Cela signifie-t-il que, par exemple, Les proto-cartes et devkits PowerPC sont peut-être ou peuvent être binaires (bien 'fonctionnels') incompatibles? (contrairement à la plupart/tous les PC x86) – HotHead117

+1

oui - au moins les quelques personnes avec lesquelles j'ai travaillé étaient * pas * compatibles avec beaucoup d'autres choses que eux-mêmes et (peut-être) quelques autres de la même ligne du même fabricant. –

Répondre

1

Le BIOS est spécifique à l'architecture x86. Les appels BIOS INT ne fonctionneront pas sur une architecture Power.

Votre carte de développement Power possède probablement son propre microprogramme, avec ses propres API. Vous devrez consulter les documents de développement du micrologiciel pour votre plate-forme.

+0

Pas tout à fait vrai ... –

+0

Quelle plate-forme PowerPC possède un BIOS avec une API d'appel INT standard PC? –

+0

"Le BIOS est spécifique à l'architecture x86" n'est pas vrai sauf si vous faites spécifiquement référence au BIOS IBM PC de facto, étendu de manière différente par des tiers, et souvent ne respectant pas le "standard". Apparemment, le terme vient en réalité de CP/M, qui a également couru sur le Z80. Bien que le code du chargeur de démarrage/ROM n'ait pas été appelé "BIOS" sur d'autres plates-formes, c'est effectivement la même chose. –

0

Il n'y a pas vraiment de standard de facto pour l'architecture externe au CPU (surtout quand on se retrouve dans des choses folles comme activer le mode little-endian, où la carte mère pourrait faire un échange d'octets de son posséder...).

Il existe également des architectures non-PC x86 (probablement différentes architectures de superordinateurs). Linux peut être compilé pour ceux-ci. Si qemu fournit une émulation matérielle supplémentaire modélisée après les Mac PPC, il y aura une image ROM qui supporte le démarrage, et probablement aussi un dessin de boîte/texte de base ainsi qu'un certain type d'accès vidéo. À ma connaissance, les Mac PPC n'ont jamais eu quelque chose comme le «mode texte» du PC (où le dessin est fait avec une police chargée sur la carte vidéo); la console OS X défile lentement lentement.

+0

Qu'en est-il de ceux avec un matériel vidéo compatible VGA? Ceux-ci, au moins, n'ont pas le mode texte (si le firmware fournit une interface à celui-ci, et si Darwin en profite ou non)? Par exemple, ce G5 iMac a un GeForce FX 5200 ... – SamB

+0

@SamB: Ma compréhension est que sur le matériel "PC", la carte contient un "BIOS vidéo" qui est essentiellement un code x86 qui sait parler à la carte vidéo , et quelque chose met en place la table d'interruption pour appeler ce code sur les bonnes interruptions. Bonne chance pour que ça fonctionne sur PowerPC.Notez également que même s'il s'agit du même GPU qu'une carte graphique PC, le BIOS vidéo peut être sur une puce différente, et finalement ce n'est pas le même matériel *. Pendant longtemps, les cartes graphiques «mac» étaient un produit totalement différent. en raison de problèmes d'endianness (pourquoi le pilote n'a pas pu résoudre ce problème, je n'ai aucune idée ...). –

Questions connexes