elea9003-emu/accumulatore.c
2019-12-23 23:05:03 +01:00

86 line
1.2 KiB
C

#include "elea_tipi.h"
#include "governo.h"
static carattere Accumulatore[100];
static segno REG_SEGNO_A = 0;
/* Da accumulatore a memoria */
int AoM(carattere *mem, int lun)
{
int i;
int pos;
for (i = 0; i < lun; i++) {
pos = (R.P + lun - (i + 1));
mem[i] = (Accumulatore[pos] & 0x7F);
Accumulatore[pos] = 0x80;
}
return 0;
}
/* Da memoria a accumulatore */
int MA(const carattere *mem, int lun)
{
int i;
int pos;
for (i = 0; i < lun; i++) {
pos = (lun - (i + 1));
Accumulatore[R.P + i] = (mem[pos] & 0x7F);
Accumulatore[R.P + i] &= ~0x80;
}
/* accende gA nell'ultimo carattere */
Accumulatore[R.P + lun - 1] |= 0x80;
}
int DA(const int disp)
{
if (disp < 0 || disp > 99)
return -1;
R.P = disp;
return R.P;
}
int op_da(istruzione *i)
{
return 0;
}
int op_fam(istruzione *i)
{
return 0;
}
int op_aom(istruzione *i)
{
return 0;
}
int op_piu_ma(istruzione *i)
{
return 0;
}
int op_cma(istruzione *i)
{
return 0;
}
int op_ma(istruzione *i)
{
return 0;
}
int op_am(istruzione *i)
{
return 0;
}
int op_piu_am(istruzione *i)
{
return 0;
}
int op_meno_ma(istruzione *i)
{
return 0;
}