*----------------------------------------------------------- Title[DMesaDummyFloat.mc...September 5, 1983 3:56 PM...Taft]; * Substitute for DMesaFloat.mc -- all operations trap to software *----------------------------------------------------------- *----------------------------------------------------------- FloatingPointPresent: * Returns T=2 if floating point microcode is present, 0 otherwise. *----------------------------------------------------------- Subroutine; T_ A0, Return; TopLevel; KnowRBase[RTemp0]; MiscTable[20], Branch[FloatTrap]; MiscTable[21], Branch[FloatTrap]; MiscTable[22], Branch[FloatTrap]; MiscTable[23], Branch[FloatTrap]; MiscTable[24], Branch[FloatTrap]; MiscTable[25], Branch[FloatTrap]; MiscTable[26], Branch[FloatTrap]; MiscTable[27], Branch[FloatTrap]; MiscTable[30], Branch[FloatTrap]; MiscTable[31], Branch[FloatTrap]; MiscTable[32], Branch[FloatTrap]; MiscTable[33], Branch[FloatTrap]; MiscTable[34], Branch[FloatTrap]; MiscTable[35], Branch[FloatTrap]; MiscTable[36], Branch[FloatTrap]; *----------------------------------------------------------- FloatTrap: * Trap to the software floating-point handler. * Alto mode: * Enter: StkP = TOS+1 * OTPReg = 4*alpha (left over from MISC dispatch) * Puts the alpha byte in OTPReg and traps to SD[137]. * PrincOps mode: * Invokes the Cedar OpcodeTrap mechanism. *----------------------------------------------------------- TopLevel; :If[AltoMode]; ********** Alto version ********** MiscTable[37], OTPReg_ LDF[OTPReg, 10, 2]; T_ 137C, StkP-1, Branch[SavePCAndTrap]; :Else; ******** PrincOps version ******** MiscOpcodeUnimplemented[37]; :EndIf; ********************************** (1552)