aword.specs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. % AWORD CLU
  2. %
  3. % CLUMAC assembler: a_word cluster
  4. a_word = cluster is create, % int, int -> wrd
  5. inst, % int, int, int, wrd -> wrd
  6. xinst, % int, int, int, int -> wrd
  7. make_unknown, % str -> wrd
  8. add, % wrd, wrd -> wrd
  9. iadd, % wrd, int -> wrd
  10. iaddl, % wrd, int -> wrd
  11. sub, % wrd, wrd -> wrd
  12. mul, % wrd, wrd -> wrd
  13. and, % wrd, wrd -> wrd
  14. or, % wrd, wrd -> wrd
  15. minus, % wrd -> wrd
  16. swap, % wrd -> wrd
  17. r2l, % wrd -> wrd
  18. get_left, % wrd -> wrd
  19. get_right, % wrd -> wrd
  20. s2ascii, % str -> wrd
  21. w2i, % wrd -> int, int
  22. w2all, % wrd -> int, int, str, str
  23. has_unknowns, % wrd -> bool
  24. get_left_unknown, % wrd -> str
  25. get_right_unknown, % wrd -> str
  26. parse, % str -> wrd => bad_format, overflow
  27. dparse, % str -> wrd => bad_format, overflow
  28. equal, % wrd, wrd -> bool
  29. iequal; % wrd, int -> bool
  30. rep = any;
  31. create = proc (left: int, right: int) returns (wrd);
  32. end create;
  33. inst = proc (op: int, acc: int, xreg: int, addr: wrd) returns (wrd);
  34. end inst;
  35. xinst = proc (op: int, acc: int, xreg: int, addr: int) returns (wrd);
  36. end xinst;
  37. make_unknown = proc (s: str) returns (wrd);
  38. end make_unknown;
  39. add = proc (w1: wrd, w2: wrd) returns (wrd);
  40. end add;
  41. iadd = proc (w: wrd, r2: int) returns (wrd);
  42. end iadd;
  43. iaddl = proc (w: wrd, l2: int) returns (wrd);
  44. end iaddl;
  45. mul = proc (w1: wrd, w2: wrd) returns (wrd);
  46. end mul;
  47. sub = proc (w1: wrd, w2: wrd) returns (wrd);
  48. end sub;
  49. and = proc (w1: wrd, w2: wrd) returns (wrd);
  50. end and;
  51. or = proc (w1: wrd, w2: wrd) returns (wrd);
  52. end or;
  53. minus = proc (w: wrd) returns (wrd);
  54. end minus;
  55. swap = proc (w: wrd) returns (wrd);
  56. end swap;
  57. r2l = proc (w: wrd) returns (wrd);
  58. end r2l;
  59. get_left = proc (w: wrd) returns (wrd);
  60. end get_left;
  61. get_right = proc (w: wrd) returns (wrd);
  62. end get_right;
  63. s2ascii = proc (s: str) returns (wrd);
  64. end s2ascii;
  65. w2i = proc (w: wrd) returns (int, int);
  66. end w2i;
  67. w2all = proc (w: wrd) returns (int, int, str, str);
  68. end w2all;
  69. has_unknowns = proc (w: wrd) returns (bool);
  70. end has_unknowns;
  71. get_left_unknown = proc (w: wrd) returns (str);
  72. end get_left_unknown;
  73. get_right_unknown = proc (w: wrd) returns (str);
  74. end get_right_unknown;
  75. parse = proc (s: str) returns (wrd) signals (bad_format, overflow);
  76. end parse;
  77. dparse = proc (s: str) returns (wrd) signals (bad_format, overflow);
  78. end dparse;
  79. equal = proc (w1: wrd, w2: wrd) returns (bool);
  80. end equal;
  81. iequal = proc (w: wrd, i: int) returns (bool);
  82. end iequal;
  83. end a_word;