{File: LargeInteger.dfn Difinition file for SendLargeInteger.mc. Last edited by Makoto Udagawa 13-Sep-85 11:56:24 change Ureg No. for fixing 17000/3 bug. Makoto Udagawa 3-Sep-85 19:19:27 Bug fix for logical operation with smallinteger minus argument. Makoto Udagawa 23-Aug-85 16:08:26 change Ureg Number. Makoto Udagawa 14-Jun-85 15:02:47 Bug fix for LargeInteger primitives. Makoto Udagawa 7-Jun-85 16:28:42 Modify for largeinteger Compare. Makoto Udagawa 4-Jun-85 18:22:56 Modify for largeinteger BitAnd, Or, Xor. Makoto Udagawa 28-May-85 20:59:39 Modify for largeinteger sub. Makoto Udagawa 5-Apr-85 14:52:14 add multiply routine regDef and return linkage. Makoto Udagawa 1-Apr-85 10:48:48 add compareLargeInteger routine return linkage. Makoto Udagawa 29-Mar-85 16:28:03 move linkage for createinstance, otMapBank0, getClassBank0 to Rum.df. Makoto Udagawa 26-Mar-85 16:14:02 Add link and regdef for LargeIntegerSub. Makoto Udagawa 26-Mar-85 15:14:21 Add link and regdef for LargeIntegerAdd. Makoto Udagawa 13-Mar-85 11:01:30 Created. } {Register Difinition} RegDef[uArgValueHigh, U, 14], RegDef[uArgValueLow, U, 17], RegDef[uResultSize, U, 19], RegDef[uRecieverHigh, U, 1a], RegDef[uRecieverLow, U, 1e], RegDef[uResult0, U, 24], RegDef[uResult1, U, {3a}1b], RegDef[uResult2, U, {3b}1c], RegDef[uResult3, U, {4a}1d], {BankPlug return adress u register} RegDef[uReturnAdSave, U, 4f], {qFetchByte subroutine working register} RegDef[uSave, U, 4d], {BankPlug return address u register} RegDef[uReturnBank0, U, 4e], {qFetchByte2 subroutine return linkage, L1 is linkage register} Set[wordValueIs4Byte0, 0]; Set[wordValueIs4Byte1, 1]; Set[wordValueIs4Byte2, 2]; Set[wordValueIs4Byte3, 3]; Set[wordValueIs4Byte0Pos, 4]; Set[wordValueIs4Byte1Pos, 5]; Set[wordValueIs4Byte2Pos, 6]; Set[wordValueIs4Byte3Pos, 7]; {fetchByteLength subroutine return linkage, L2 is linkage register} Set[get2word, 0]; Set[get2wordPos, 1]; {fetch2WordValuePos subroutine return linkage, L3 is linkage register} Set[largePosAddArgument, 0]; Set[largePosSubArgument, 1]; Set[largePosMulArgument, 2]; Set[largePosDivArgument, 3]; Set[largePosModArgument, 4]; Set[largePosDivideArgument, 5]; Set[largePosCompareArgument, 6]; Set[largePosAndArgument, 7]; Set[largePosOrArgument, 8]; Set[largePosXorArgument, 9]; {fetch2WordValue subroutine return linkage, L3 is linkage register} Set[largePosAddReciever, 0]; Set[largePosSubReciever, 1]; Set[largePosMulReciever, 2]; Set[largePosDivReciever, 3]; Set[largePosModReciever, 4]; Set[largePosDivideReciever, 5]; Set[largePosAndReciever, 6]; Set[largePosOrReciever, 7]; Set[largePosXorReciever, 8]; Set[largePosCompareReciever, 9]; Set[largePosBitShiftReciever, 0A]; {compareLargeInteger subroutine return linkage, L3 is linkage register} Set[primLargeLess, 0]; Set[primLargeGreater, 1]; Set[primLargeLessEqual, 2]; Set[primLargeGreaterEqual, 3]; Set[primLargeEqual, 4]; Set[primLargeNotEqual, 5]; {MultiplySubForLargeInt subroutine return linkage, L1 is linkage register} Set[mulLowLow, 0]; Set[mulLowHigh, 1]; Set[mulHighLow, 2]; Set[mulHighHigh, 3]; {Divide4byte SubForLargeInt subroutine return linkage, L3 is linkage register} Set[prim4ByteDiv, 0]; Set[prim4ByteMod, 1]; Set[prim4ByteDivide, 2];