17.05.2015 Views

TI486 Microprocessor - Al Kossow's Bitsavers

TI486 Microprocessor - Al Kossow's Bitsavers

TI486 Microprocessor - Al Kossow's Bitsavers

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8MI Handler Example<br />

COMMENT A<br />

The TX486 SMM support for X/O being interrupted provides information that<br />

per.mits the restarting of the X/O instruction without investigating the<br />

actual code where the instruction is located.<br />

Many things can be done at this point beyond turning on a powered down<br />

peripheral. The CPU clock could now be speeded up in anticipation of heavy<br />

CPU processing requirements, timers could be reset, etc.<br />

i** Restart the interrupted instruction<br />

mov<br />

mov<br />

mov<br />

itest for REP instruction<br />

bt<br />

adc<br />

test<br />

jnz<br />

eax,dword ptr [SMEND+SMI_PREVIOUSIP]<br />

dword ptr [SMEND+SMI_NEXTIP],eax<br />

al,byte ptr cs: [SMEND+SMI_BITS]<br />

al,2<br />

ecx,O<br />

al,l shl 1<br />

irep instruction?<br />

i (result to Carry)<br />

iif so, increment ecx<br />

itest bit 1 to see<br />

iif an OUTS or INS<br />

COMMENT A<br />

** A port read (INx) instruction caused the chip set to generate an<br />

SMI instruction. Restore EDI saved by SMI microcode.<br />

mov<br />

jmp<br />

out_instr:<br />

edi, dword ptr cs: [SMEND+SMI_EDIESI]<br />

commonl<br />

COMMENT A<br />

** A port write (OUTx) instruction caused the chip set to generate an<br />

SMI instruction. Restore ESI saved by SMI microcode.<br />

mov<br />

commonl:<br />

jmp<br />

done<br />

esi, dword ptr cs: [SMEND+SMI_EDIESI]<br />

A-19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!