Update HISTORY and README.
Chris Pressey
4 years ago
3 | 3 | 0.16 |
4 | 4 | ---- |
5 | 5 | |
6 | * Removed `--prelude` in favour of specifying both format and prelude | |
7 | with a single option, `--output-format`. Documentation for same. | |
8 | * `or a, z`, `and a, z`, and `eor a, z` compile to zero-page operations | |
9 | if the address of z < 256. | |
6 | * Added `save` block, which allows the named locations to be modified | |
7 | arbitrarily inside the block, and automatically restored at the end. | |
10 | 8 | * More thorough tests and justifications written for the case of |
11 | 9 | assigning a routine to a vector with a "wider" type. |
12 | 10 | * Support for `copy [ptra]+y, [ptrb]+y` to indirect LDA indirect STA. |
14 | 12 | * Support for `I a, btable + x` where `I` is `add`, `sub`, `cmp`, |
15 | 13 | `and`, `or`, or `xor` |
16 | 14 | * Support for `I btable + x` where `I` is `shl`, `shr`, `inc`, `dec` |
15 | * `or a, z`, `and a, z`, and `eor a, z` compile to zero-page operations | |
16 | if the address of z < 256. | |
17 | * Removed `--prelude` in favour of specifying both format and prelude | |
18 | with a single option, `--output-format`. Documentation for same. | |
17 | 19 | |
18 | 20 | 0.15 |
19 | 21 | ---- |
86 | 86 | It might make more sense, then, for it to be "part of the operation" instead of "part of |
87 | 87 | the reference"; something like `st.hi x, word`; `st.lo y, word`. Dunno. |
88 | 88 | |
89 | ### Save values | |
89 | ### Save multiple values in single block | |
90 | 90 | |
91 | This preserves them, so that, semantically, they can be used later even though they | |
92 | are trashed (or otherwise alternately used) inside the block. | |
93 | ||
94 | Inside the block, we set them as writeable (but not meaningful). When the block | |
95 | exits, we restore whatever status they had. | |
96 | ||
97 | This act will trash `a`, both in the block, and outside it, unless the value being | |
98 | saved is `a`. One idiom would be something like | |
91 | As a shortcut for the idiom | |
99 | 92 | |
100 | 93 | save a { save var { |
101 | 94 | ... |
102 | 95 | } } |
103 | 96 | |
104 | which would save all values. Maybe abbreviate this to | |
97 | allow | |
105 | 98 | |
106 | 99 | save a, var { |
107 | 100 | ... |
108 | 101 | } |
109 | 102 | |
110 | This can use the stack. But it need not use the stack. | |
103 | ### Save values to other-than-the-stack | |
104 | ||
105 | Allow | |
106 | ||
107 | save a to temp_a { | |
108 | ... | |
109 | } | |
110 | ||
111 | Which uses some other storage location instead of the stack. A local static | |
112 | would be a good candidate for such. | |
111 | 113 | |
112 | 114 | ### Make all symbols forward-referencable |
113 | 115 |