/* --------------------------------------------------------------------------- * Functions mapping to processor memory instead of VME * * Author : J.B.Lane UCL March 1998 mem.c * --------------------------------------------------------------------------- */ #include "ask.h" /* prototypes */ #include "timlet.h" /*** for register constants */ unsigned short* vme_get_window (const int dummy0, const int dummy1, const int dummy2) { static unsigned short array[0x8000] ; /* 16K bytes */ unsigned short *memory_ptr ; /*** MRMW -- let's fill the memory with some more useful data in the future */ printf("Setting mem registers to TIM3 defaults\n"); /* printf("TIM_ID %x\n",TIM_ID); */ /* ------------------------------------------------------ */ /* ------------------------------------------------------ */ array[ENABLES] = 0; array[COMMAND] = 0; array[BURST] = 0; array[FREQUENCY] = 0; array[WINDOW] = 0; array[DELAYS] = 0; array[STATUS] = 0x8A80; array[FIFO] = 0x4040; array[L1IDL] = 0xFFFF; array[L1IDH] = 0x00FF; array[BCID] = 0; array[TTID] = 0; array[RUN_ENABLE] = 0; array[SEQ_CTL] = 0; array[SEQ_END] = 0; array[RB_MASK] = 0; array[RB_STAT] = 0; array[RB_LATCH] = 0; array[RB_MON] = 0; array[TTC_DATA] = 0; array[TTC_SELECT] = 0; array[TTC_BCID] = 0; array[TTCRX_CTL] = 0; array[TTC_STATUS] = 0; array[TIM_OUTPUT] = 0; array[TIM_ID] = 0; array[ENABLES3] = 0; array[COMMAND3] = 0; array[STATUS3] = 0x0242; array[QPLL_CTL] = 0xB0; array[BUSY_EN3] = 0; array[BUSY_STAT3] = 0; array[BCOUNTL] = 0; array[BCOUNTH] = 0; array[BCOUNTX] = 0; array[FV_VETOLEN] = 40000; array[FV_MATCH] = 10; array[FV_P_MIN] = 533; array[FV_P_MAX] = 2666; array[FV_OFLOW] = 2766; array[FV_DELTAT] = 40; array[FV_COUNTL] = 0; array[FV_COUNTH] = 0; array[FV_COUNTX] = 0; array[TSTAMPL] = 0; array[TSTAMPH] = 0; array[SRC_ADDR] = 0; array[SINK_ADDR] = 0; array[DEBUG_CTL] = 0; array[DEBUG_STAT] = 0; /* ------------------------------------------------------ */ /* ------------------------------------------------------ */ array[TIM_ID] = 0x0A30; memory_ptr = array ; printf ("mapped address = %p\n", (void*)memory_ptr) ; return memory_ptr ; } void vme_end (void) { printf ("mem done.\n") ; }