/*
 * "Hello World" example.
 *
 * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on
 * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example
 * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT
 * device in your system's hardware.
 * The memory footprint of this hosted application is ~69 kbytes by default
 * using the standard reference design.
 *
 * For a reduced footprint version of this template, and an explanation of how
 * to reduce the memory footprint for a given application, see the
 * "small_hello_world" template.
 *
 */

#include <stdio.h>
#include <alt_types.h>
//#include "alt_up_ps2_port.h"
//#include "ps2_keyboard.h"

//KB_CODE_TYPE decode_mode;

int main()
{
   short int *EFFECTOR = (short int *)0x80800;
   unsigned char *KEYBOARD = (char *)0x80A10;

    printf("Ready\n");
    *(EFFECTOR) = 0x3F;
    printf("AT beginning, vol==%i\n",*(EFFECTOR));
    char keyboard_data = *(KEYBOARD+4);
    char keyboard_status = *KEYBOARD;

    while(1) {
        *(KEYBOARD+4) = 0;
  
        printf("%c",keyboard_data);
        if(keyboard_data=='u') { //up arrow
            if( *(EFFECTOR) < 0x7F) {
                *(EFFECTOR) = *(EFFECTOR) << 1;    // left channel volume
                printf("vol==%i\n",*(EFFECTOR));
            }
            keyboard_data = 'a';
        }
        if(keyboard_data=='r') { //down arrow
            if( *(EFFECTOR) > 0x01) {
                *(EFFECTOR) = *(EFFECTOR) >> 1;    // left channel volume
                printf("vol==%i\n",*(EFFECTOR));
            }
            keyboard_data = 'a';
        }
        if(keyboard_data=='2') { //left vibrato enable, 'b' on keyboard
            *(EFFECTOR+12) = ~(*(EFFECTOR+12));    // left vibrato enable
            keyboard_data = 'a';
        }
        
        int i;
        for(i=0; i<50; i++) {}
        printf("Out of for loop\n");
           
    }

  /* 
  // Initialize the keyboard
  printf("Please wait three seconds to initialize keyboard\n");
  clear_FIFO();
  int mode = get_mode();
  switch (mode) {
    case PS2_KEYBOARD:
        break;
    default:
        printf("Error: Unrecognized or no device on PS/2 port\n");
        printf("%i", mode);   
        //exit(1);
  }
    */
  printf("Hello from Nios II!\n");

  return 0;
}
