{File name: MoreLispDefs.dfn
Description: Definitions for Dandelion Lisp Microcode,
Created: 24-Apr-84 11:45:51
Last Edited: 24-Apr-84 11:45:58 - charnley
}
{ L0 return values for WLMapFixB2 }
Set[L0.DLMap, 1];{DrawLine}
Set[L0.RedoFtARG, 2];{FFT}
Set[L0.RedoFtAB, 3];{FFT}
Set[L0.RedoFtCD, 4];{FFT}
{ L0 return values for RLMapFixB2 }
Set[L0.xRedoFtFF, 1];{FFT}
Set[L0.RedofptGet, 2];{GetFPT}
Set[L0.RedoCreate, 5];{FloatIt subr}
Set[L0.RedoFLFix, 6];{FloatIt subr}
{ L1 fix values for RWTrap }
Set[L1.DLFixesB2, 1];{DrawLine}
Set[L1.NoFixesB2, 2];{FFT}
Set[L1.RestoreTosB2, 3];
Set[L1.FFTFixesB2, 4];{FFT}
{ DRAWLINE stuff}
RegDef[umXX0, U, 02];{move to fZ=0 before using} {TWiddle factor 4 word complex float}
RegDef[ulXX, U, 03];
RegDef[umYY0, U, 04];{move to fZ=0 before using; STK points here}
RegDef[ulYY0, U, 05];{fp chip doesn't like ulYY here for some STRANGE reason}
RegDef[uFFvH, U, 06];{Virtual Address of source (From) array base.}
RegDef[uFFvL, U, 07];
RegDef[uABvH, U, 08];{Virtual Address of destination array base.}
RegDef[uABvL, U, 09];
RegDef[uCDvH, U, 0A];{Virtual Address of midpoint in destination array base.}
RegDef[uCDvL, U, 0B];
RegDef[uTCnt, U, 0C];{count of butterflies with same twiddle (x4)}
RegDef[uHCnt, U, 0D];{high portion of count of butterflies remaining (x4)}
Set[ft.twiddle.offset, 4 ];
Set[ft.twiddle.delta.offset, 20'd ];{Twiddle Delta(8 words): address of complex zero followed by packed complex root of unity to change twiddle}
Set[ft.HCnt.offset, 11'd ];
RegDef[umXX, U, 50]; {umXX,FTimes{0}}
RegDef[umYY, U, 60];{uRx} {umYY,FTimes{0}}
RegDef[ulYY, U, 51];{alternate home for ulYY see ulYY0}
RegDef[uArgH, U, 68];{virtual address of argument record}
RegDef[uArgL, U, 69];{rA=Rx}
RegDef[ulCC, U, 4]; {ulCC, STK{FPlus}}
RegDef[umYW, U, 4]; {umYW, STK{FPlus}}
RegDef[FF, R, 3];{PV} {Real address in "From" array. Equal to Source + 2*(HCnt + RCnt) }
RegDef[rhFF, RH, 3];
RegDef[AB, R, 4];{S} {Real address in destination array. Equal to Dest + HCnt + WCnt) }
RegDef[rhAB, RH, 4];
RegDef[CD, R, 1];{TOSH}{Real address in destination array. Equal to Dest + HCnt + WCnt) }
RegDef[rhCD, RH, 1];
RegDef[rmAW, R, 2];{TT}
RegDef[rlBW2, R, 2];{TT}
RegDef[rTCnt, R, 2];{TT}
RegDef[rmBW, R, 6];{Rx}
RegDef[rlDY, R, 6];{Rx}
{RegDef[rmCY, R, 6];{Rx}{remove eventually}}
RegDef[rRCnt, R, 2];{TT}{uRCnt, rRCnt, FMinus}
RegDef[uRCnt, U, 26];{uPV}{low portion of count of butterflies remaining to Read(x4)}
RegDef[uWCnt, U, 47];{low portion of count of butterflies remaining to Write(x4)}
RegDef[ulDY, U, 54];
{RegDef[TOS, R, 0];}
{RegDef[rmDY, R, 0];}
{RegDef[rlCY, R, 0];{remove eventually}}
RegDef[rmYW, R, 0];
RegDef[rmAA, R, 0];
RegDef[rlDW, R, 0];
RegDef[rmDW, R, 0];
RegDef[rlCW2, R, 0];
{RegDef[PC, R, 5];}
RegDef[rlDD, R, 5];
RegDef[rlBW, R, 5];
RegDef[rmCW, R, 5];
RegDef[umCW, U, 58]; {rmCW,umCW}
RegDef[rlCC, R, 5];
RegDef[rlCW, R, 5];
RegDef[ulCW, U, 52]; {rlCW,ulCW}
RegDef[rHCnt, R, 5];
RegDef[rlAW, R, 5];
RegDef[rmDY, R, 5]; {rmDY,umDY}
RegDef[umDY, U, 56]; {umDY,FMinus{6}}
{RegDef[rlDY, R, 5];}{moved to 6=Rx}
RegDef[rlBB, R, 5];
RegDef[ulBB, U, 53];
RegDef[rlYW, R, 5];
RegDef[rlAA, R, 5];
RegDef[ulAA, U, 55]; {rlAA,ulAA,FMinusB{5}}
MacroDef[fpUMS, FloatUMS];
MacroDef[fpULS, FloatULS];
MacroDef[fpUMP, FloatUMP];
MacroDef[fpULP, FloatULP];
MacroDef[FloatR, FloatResult];
MacroDef[FTimes, FLTimes.A.B];
MacroDef[FPlus, FLPlus];
MacroDef[FMinus, FLBMinusA];
MacroDef[FMinusB, FLAMinusB];
RegDef[uBlock0, UY, 0];
Set[L2.init, 3 ];
Set[L2.start, 7{2} ];
Set[L2.middle, 1 ];
Set[L2.finish, 0 ];
{ for LISP FLOAT ARRAY}
RegDef[Kount, R, 0],{TOS}
RegDef[S1, R, 1],{TOSH}
RegDef[rhS1, RH, 1],
RegDef[Zorch, R, 2],{TT}
RegDef[rhZorch, RH, 2],
RegDef[S2, R, 3],{PV}; {init to 0 to force remap}
RegDef[rhS2, RH, 3],
RegDef[uStemp, U, 53];
RegDef[D, R, 4],{S} {init to 0 to force remap}
RegDef[rhD, RH, 4],
RegDef[Stemp, R, 5],{PC}
RegDef[Stemp2, R, 6],{Rx}
RegDef[Zimph, R, 6],
RegDef[uDLo, U, 02],
RegDef[uDHi, U, 03],
RegDef[uS1Lo, U, 30],
RegDef[uS1Hi, U, 35],
RegDef[uS2Lo, U, 38],
RegDef[uS2Hi, U, 07],
{RegDef[uTOS, U, 0D],}
{RegDef[uTOSH, U, 1D],}
RegDef[uS, U, 04B],
RegDef[urhS, U, 051],
RegDef[uPVx, U, 03B],
RegDef[urhPV, U, 034],
{RegDef[uPC, U, 05B],}
{RegDef[ufloat, U, 042],{fZ value for Float}}
RegDef[uXdisp, U, 041],{LMG}
RegDef[uWidth, U, 042],{LMG}
RegDef[uICount, U, 043],{LMG}
RegDef[uNBits, U, 044],{LMG}
RegDef[umask, U, 045],{LMG}
RegDef[uShiftedPattLo, U, 03A],{LMG}
RegDef[uShiftedPattHi, U, 037],{LMG}
{ RestoreRegsRet}
Set[L1.LFApf, 1],
Set[L1.LFAexit, 3],
Set[L1.LFGexit, 4],
{ LFASaveRegsRet}
Set[L1.LFA2prep, 3],
Set[L1.LFA1prep, 4],
Set[L1.LMGprep, 5],
{RegDef[TOS, R, 0],{TOS}
RegDef[TOSH, R, 1],{TOSH}
RegDef[TT, R, 2],{TT}
RegDef[PV, R, 3],{PV}
RegDef[rhPV, R, 3],{PV}
RegDef[S, R, 4],{S}
RegDef[rhS, RH, 4],{S}
RegDef[PC, R, 5],{PC}
RegDef[Rx, R, 6],{Rx} }
{S2 remap returns}
Set[L0.S2timeslooptimes, 01],{uses 3 also}
Set[L0.S2timesloopplus, 05],{uses 7 also}
Set[L0.S2timesloopminus, 09],{uses 0B also}
Set[L0.PERM, 04],
Set[L0.lfam.s2a, 02],
Set[L0.S2mag0, 06],
{S1 remap returns}
Set[L0.S1init2, 1],
Set[L0.S1timesloop, 2],
{Set[L0.PERM, 4],{uses 5 also} }
Set[L0.EXP, 6],
Set[L0.COMPLEX, 7],
Set[L0.FLOAT, 8],
Set[L0.MAGx, 9],
Set[L0.FLOATx, 03],
Set[L0.lfam.s1a, 0C],
Set[L0.S1mag0, 0D],
{Set[L0.MAGD2, 0A],}
Set[L0.MAG, 0B],
{D remap returns}
Set[L0.Dtimesloop, 1],
{Set[L0.PERM, 4],}
{Set[L0.EXP, 6],}
{Set[L0.COMPLEX, 7],}
{Set[L0.FLOAT, 8],}
Set[L0.MAGD1, 9],
Set[L0.MAGD2, 0A],
Set[L0.MAGD3, 0],
Set[L0.COMPLEXx, 3],
Set[L0.lfam.di, 05],
Set[L0.lfam.da, 0C],
Set[L0.lfam.db, 0D],
Set[L0.lfam.dd, 0E],
Set[L0.lfam.df, 02],
{Set[L0.MAG, 0B],}
Set[L2.Xtimes, 0],
Set[L2.perm, 1],
Set[L2.Xplus, 2],
Set[L2.minus, 3],
Set[L2.magic, 04],
Set[L2.exp, 08],
Set[L2.mag, 09],
Set[L2.float, 0A],
Set[L2.complex, 0B],
{for LispMakeGraph}
{ LMGremapDret}
Set[L0.LMGDinit, 4],
Set[L0.LMGD1, 2],
Set[L0.LMGD2, 3],
Set[L0.LMGD3, 5],
{ LMGremapS1ret}
Set[L0.LMGS1init, 4],
Set[L0.LMGS1S2, 6],
{ LMGremapS2ret}
{Set[L0.LMGS1S2, 6],}
{ AllignRet}
{Set[L0.LMGS1S2, 6],}
{GetFPT remap returns}
Set[L2.btou, 1],
;{ E N D }