/************************************************/
/*                                              */
/* File        : rockdump.c                     */
/* Description : Dump the ROCK registers        */
/*                                              */
/* Author: Sfiligoi Igor                        */
/*                                              */
/* Created      : 29.01.1997                    */
/* Last modified: 04.04.1997                    */
/*                                              */
/************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <Error.h>

#include <GeoVme.h>
#include <rockhard.h>

int main()
{
 ROCKH_id rock_id;
 unsigned int val;
 int res;

 char *MapName;

 ErrorInit(Error_PRINT_OFF); /* Needed for the Error treatement. */
 
 MapName = getenv("GEOMAP");
 if (MapName==NULL)
   {
     fprintf(stderr,"Fatal error: GEOMAP not defined!\n\n");
     return 1;
   }
 
 GeoVmeLoadMap(MapName);

 res = rockh_open(1,7,&rock_id);
 if (res!=ROCKH_ERROR_OK)
   {
     printf("Error opening ROCK!\n");
     return 1;
   }

 printf("ROCK opened.\n");

 val = rockh_read_reset(rock_id);
 printf("Reset: 0x%2x\n",val);

 val = rockh_read_fifo(rock_id);
 printf("FIFO: 0x%2x\n",val);

 val = rockh_read_watchdog(rock_id);
 printf("Watchdog: 0x%2x\n",val);

 val = rockh_read_csr0(rock_id);
 printf("CSR0: 0x%2x\n",val);

 val = rockh_read_csr1(rock_id);
 printf("CSR1: 0x%2x\n",val);

 val = rockh_read_csr2(rock_id);
 printf("CSR2: 0x%2x\n",val);

 val = rockh_read_elapsed(rock_id);
 printf("Elapsed: 0x%2x\n",val);

 val = rockh_read_trigger(rock_id);
 printf("Trigger: 0x%2x\n",val);

 val = rockh_read_tque(rock_id);
 printf("TQUE: 0x%4x\n",val);

 val = rockh_read_tnow(rock_id);
 printf("TNOW: 0x%4x\n",val);

 val = rockh_read_rockinfo(rock_id);
 printf("Rockinfo: 0x%4x\n",val);

 val = rockh_read_golden(rock_id);
 printf("Golden: 0x%4x\n",val);


 rockh_close(rock_id);
 printf("ROCK closed\n");

 GeoVmeUnloadMap();

 return 0;
}