#include "header.h"

void Input(unsigned char adresse)
{
    int saisie;
    printf("INPUT: ");
    scanf("%d", &saisie);
    memoire[adresse] = saisie;
}

void Output(unsigned char adresse)
{
    printf("OUTPUT: %x\n", memoire[adresse]);
}

void ClearAndAdd(unsigned char adresse)
{
    R_ACC = memoire[adresse];
}

void Store(unsigned char adresse)
{
    memoire[adresse] = R_ACC;
}

void Add(unsigned char adresse)
{
    R_ACC = R_ACC + memoire[adresse];
}

void Sub(unsigned char adresse)
{
    R_ACC = R_ACC + memoire[adresse];
}

void Shift(void)
{

}

void Jump(unsigned char adresse)
{
    R_ADR = adresse;
}

void TestAccContent(unsigned char adresse)
{
    if (R_ACC != 0)
        R_CO = adresse;
}

void HaltAndReset(void)
{
    printf("Signal HRS reçu, fin du programme.\n\n");
    exit(0);
}

void Temp(void)
{
    R_TMP = R_ACC;
}

void LessThan(unsigned char adresse)
{
    if (R_ACC > R_TMP)
        R_CO = adresse;
}

void GreaterThan(unsigned char adresse)
{
    if (R_ACC < R_TMP)
        R_CO = adresse;
}

void CallSub(unsigned char adresse)
{
    R_ADR = R_CO + 1;
    R_CO = adresse - 1;
}

void Return(void)
{
    R_CO = R_ADR;
}
