accumulatore.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include "elea_tipi.h"
  2. #include "governo.h"
  3. static carattere Accumulatore[100];
  4. static segno REG_SEGNO_A = 0;
  5. /* Da accumulatore a memoria */
  6. int AoM(carattere *mem, int lun)
  7. {
  8. int i;
  9. int pos;
  10. for (i = 0; i < lun; i++) {
  11. pos = (R.P + lun - (i + 1));
  12. mem[i] = (Accumulatore[pos] & 0x7F);
  13. Accumulatore[pos] = 0x80;
  14. }
  15. return 0;
  16. }
  17. /* Da memoria a accumulatore */
  18. int MA(const carattere *mem, int lun)
  19. {
  20. int i;
  21. int pos;
  22. for (i = 0; i < lun; i++) {
  23. pos = (lun - (i + 1));
  24. Accumulatore[R.P + i] = (mem[pos] & 0x7F);
  25. Accumulatore[R.P + i] &= ~0x80;
  26. }
  27. /* accende gA nell'ultimo carattere */
  28. Accumulatore[R.P + lun - 1] |= 0x80;
  29. }
  30. int DA(const int disp)
  31. {
  32. if (disp < 0 || disp > 99)
  33. return -1;
  34. R.P = disp;
  35. return R.P;
  36. }
  37. int op_da(istruzione *i)
  38. {
  39. return 0;
  40. }
  41. int op_fam(istruzione *i)
  42. {
  43. return 0;
  44. }
  45. int op_aom(istruzione *i)
  46. {
  47. return 0;
  48. }
  49. int op_piu_ma(istruzione *i)
  50. {
  51. return 0;
  52. }
  53. int op_cma(istruzione *i)
  54. {
  55. return 0;
  56. }
  57. int op_ma(istruzione *i)
  58. {
  59. return 0;
  60. }
  61. int op_am(istruzione *i)
  62. {
  63. return 0;
  64. }
  65. int op_piu_am(istruzione *i)
  66. {
  67. return 0;
  68. }
  69. int op_meno_ma(istruzione *i)
  70. {
  71. return 0;
  72. }