Rev 539 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log
Rev 539 | Rev 1537 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | 3 | ||
4 | 4 | ||
5 | ==================== |
5 | ==================== |
6 | Ped: |
6 | Ped: |
7 | 7 | ||
- | 8 | baze — Today at 22:22 |
|
- | 9 | @neon Even if you keep paging outs in machine code, it's a good idea to keep LOAD in BASIC. My suggestion would be to use set 4,(iy + 1) so that +3 BASIC doesn't corrupt page 7 during IM 1. Then, for every out (c),a you also do ld (#5B5C),a to keep 128 BASIC happy. I think that should work with 48K BASIC, 128K BASIC and +3 BASIC. |
|
- | 10 | ||
- | 11 | errors: add new CLI option for the "emitted/included at/from" messages, |
|
- | 12 | keeping the assembler more silent in msg=war|err mode |
|
- | 13 | ||
- | 14 | listing with pre-substituted original source line included |
|
- | 15 | catch list: DUP -> EDUP, `nop:nop:nop`, ... |
|
- | 16 | output: maybe `<` like macros have `>`? and missing address, only line number? |
|
- | 17 | ||
- | 18 | relocation -> extra support for Next driver banks? |
|
- | 19 | (see Robin's https://github.com/Threetwosevensixseven/ZXRelocate to learn what exactly that means) |
|
- | 20 | ||
- | 21 | check https://github.com/google/AFL |
|
- | 22 | ||
8 | add block/reserve which does really preserve the device memory content (currently only the |
23 | add block/reserve which does really preserve the device memory content (currently only the |
9 | structure block+align does preserve memory, and standalone ALIGN, but not DS/BLOCK) |
24 | structure block+align does preserve memory, and standalone ALIGN, but not DS/BLOCK) |
10 | 25 | ||
11 | "emitted from here" error should maybe show original line, as people not using error parsing |
26 | "emitted from here" error should maybe show original line, as people not using error parsing |
12 | claim it's confusing/useless. |
27 | claim it's confusing/useless. |
13 | -> turned out to be lot more difficult than expected (macros + lua inlining) |
28 | -> turned out to be lot more difficult than expected (macros + lua inlining) |
14 | 29 | ||
15 | remote build script - "done" ATM, waiting for feedback/improvements suggestions/logs |
- | |
16 | - | ||
17 | ARM emulation on x86: https://github.com/nongiach/arm_now ??? |
- | |
18 | - | ||
19 | +3DOS podpora do sjasmplus: |
- | |
20 | z00m: |
- | |
21 | uz sme to tu sto razy rozoberali |
- | |
22 | Elliotova utilitka to vie |
- | |
23 | lepit tie hlavicky |
- | |
24 | http://www.seasip.info/ZX/unix.html |
- | |
25 | specform a unspecform |
- | |
26 | a ma tam aj priamo patchnuty zmakebas |
- | |
27 | a ma k tym taptools aj zdrojaky |
- | |
28 | aha tak na zmakebas je len patch |
- | |
29 | a teraz som si spomenul, ze u mna je to cele uz patchnute |
- | |
30 | https://github.com/z00m128/zmakebas (edited) |
- | |
31 | - | ||
32 | +3DOS v pythone: https://github.com/shred/nextskeleton/blob/master/skeleton/tools/makeautoexec.py |
- | |
33 | - | ||
34 | - | ||
35 | `make install` doesn't refresh binary??? |
- | |
36 | (does link, but doesn't use the new library, but old) |
- | |
37 | --- not sure what was this varmfskii report about, the Makefile is now tuned a bit any way |
- | |
38 | -- maybe dependencies? (but it did sound like after clean the `make install` alone doesn't |
- | |
39 | work properly, and that should now work) Dependencies are borked, needs `make clean` when |
- | |
40 | headers are modified (known bug, too lazy to build dependencies in universal makefile). |
- | |
41 | - | ||
42 | consider the "low memory access" warning locked to only ZX-like devices? |
- | |
43 | - | ||
44 | parser.cpp ParseExpShift and other "needa" doing transformations (shr => '>' ???) |
30 | parser.cpp ParseExpShift and other "needa" doing transformations (shr => '>' ???) |
45 | - write tests trying those "while" loops for groups of operators |
31 | - write tests trying those "while" loops for groups of operators |
46 | - write tests testing operator precedence |
32 | - write tests testing operator precedence |
47 | 33 | ||
48 | CSPECTMAP - needs better support for DISP and instances of STRUCT |
34 | CSPECTMAP - needs better support for DISP |
49 | - also reported to be not as good as external tool, but seems that is due to not-using DEVICE directive by author |
35 | - also reported to be not as good as external tool, but seems that is due to not-using DEVICE directive by author |
50 | (can't help that) |
36 | (can't help that) |
51 | 37 | ||
52 | --syntax: "I" to uppercase all labels + usage (needs labels refactoring) |
38 | --syntax: "I" to uppercase all labels + usage (needs labels refactoring) |
53 | --syntax: L options implementation |
39 | --syntax: L options implementation |
Line 55... | Line 41... | ||
55 | 41 | ||
56 | static analysis: PVS-Studio https://www.viva64.com/en/m/0036/ |
42 | static analysis: PVS-Studio https://www.viva64.com/en/m/0036/ |
57 | * https://scan.coverity.com/projects/z00m128-sjasmplus |
43 | * https://scan.coverity.com/projects/z00m128-sjasmplus |
58 | (needs build according to their tool or Travis CI) |
44 | (needs build according to their tool or Travis CI) |
59 | 45 | ||
60 | Lua error reporting: if function is defined in different anonymous block, only the emit |
- | |
61 | line is reported in error message. If each anonymous block would get unique name, and |
- | |
62 | track the starting position of the definition, then it would be possible to report even |
- | |
63 | errors from inside lua functions defined in current asm file with the definition-line of |
- | |
64 | error + "emitted here" line. |
- | |
65 | - | ||
66 | FIXME in sources mark further points worth refactoring |
- | |
67 | - | ||
68 | FIXME: get rid of ParseDirective_REPT somehow, its existence can't be right |
46 | FIXME: get rid of ParseDirective_REPT somehow, its existence can't be right |
69 | (breaks ` .34 repeatX` directive probably? .. and END@beginningOfLine? .. actually not?) |
47 | (breaks ` .34 repeatX` directive probably? .. and END@beginningOfLine? .. actually not?) |
70 | 48 | ||
71 | ReadBufLine parsing refactored. Now look for other parts of code trying to do similar things and refactor too.. |
- | |
72 | - | ||
73 | I almost certainly broke some STRCPY/STRCAT max-size limits (i.e. malicious source may buffer overflow)... |
49 | I almost certainly broke some STRCPY/STRCAT max-size limits (i.e. malicious source may buffer overflow)... |
74 | 50 | ||
75 | Macro world issues: |
51 | Macro world issues: |
76 | - macros for operators? (in ideal case `zeuskeyaddr` possible to recreate in macro?) |
52 | - macros for operators? (in ideal case `zeuskeyaddr` possible to recreate in macro?) |
77 | - more operators, capable of some string manipulation and maybe some type/expression checks (islabel) |
53 | - more operators, capable of some string manipulation and maybe some type/expression checks (islabel) |
Line 88... | Line 64... | ||
88 | ? extend that rule to underscore at end sealing also the tail? |
64 | ? extend that rule to underscore at end sealing also the tail? |
89 | - lock some keywords for define/etc... at least put them under warning |
65 | - lock some keywords for define/etc... at least put them under warning |
90 | - inhibitor of substitutions happening (like `@djnz` inhibits macro replacement). |
66 | - inhibitor of substitutions happening (like `@djnz` inhibits macro replacement). |
91 | ** Current refactored implementation: |
67 | ** Current refactored implementation: |
92 | - doesn't play priorities as proposed above |
68 | - doesn't play priorities as proposed above |
93 | - evaluation of defarray index is still flaky and doesn't work correctly inside macro/etc |
- | |
94 | - needs lot more testing and cleanup |
69 | - needs lot more testing and cleanup |
95 | + should be already a bit more intuitive than 1.08+ (although it may break legacy source) |
70 | + should be already a bit more intuitive than 1.08+ (although it may break legacy source) |
96 | 71 | ||
97 | ZX128 snapshot default state and mapping - still doesn't survive simple `ret` into BASIC |
- | |
98 | ret to basic: di : ld iy,#5c3a : ld hl,#2758 : exx : im 1 : ei : ret |
- | |
99 | - | ||
100 | DISP inside DISP bugs => documented. Correct solution = nesting DISPs?! |
72 | DISP inside DISP bugs => documented. Correct solution = nesting DISPs?! |
101 | 73 | ||
102 | $$label operator to get label page. (and fix pages for defl/equ/expression/... labels) |
74 | $$label operator to get label page. (and fix pages for defl/equ/expression/... labels) |
103 | ^^ done, also whole label parsing and validation refactored, the syntax "$$label" is winner |
75 | ^^ done, also whole label parsing and validation refactored, the syntax "$$label" is winner |
104 | ^^ TODO: remove this note maybe after some time, when everything will prove to be stable |
76 | ^^ TODO: remove this note maybe after some time, when everything will prove to be stable |
Line 119... | Line 91... | ||
119 | 91 | ||
120 | MMU: |
92 | MMU: |
121 | - custom pages order for wrap-next-mapping option (like "<3, 5, 1, 2>" ?) |
93 | - custom pages order for wrap-next-mapping option (like "<3, 5, 1, 2>" ?) |
122 | - err/warn/warp option for slot range? |
94 | - err/warn/warp option for slot range? |
123 | 95 | ||
124 | Kate syntax: |
- | |
125 | - backward slashes in path strings are not working as escapes, single "\" there is OK, but syntax highlight thinks it's "DB" like string. |
- | |
126 | - | ||
127 | * maybe create extra syntax rules for listing files? (especially if it's possible to include asm syntax for half of line) |
96 | * maybe create extra syntax rules for listing files? (especially if it's possible to include asm syntax for half of line) |
128 | 97 | ||
129 | ##### sjasmplus 2.x/fork: |
98 | ##### sjasmplus 2.x/fork: |
130 | 99 | ||
131 | SHELLEXEC change syntax |
100 | SHELLEXEC change syntax |
132 | 101 | ||
133 | "ok" warning suppressing mechanism for ALL warnings? |
- | |
134 | - | ||
135 | EQU and DEFL to not affect local labels (not defining new "main" label) |
102 | separate local-labels vs macro-local-labels, like giving the macros new prefix? ">"? |
- | 103 | (issue #120) |
|
136 | 104 | ||
137 | Operators precedence: (2 == 3&2) = ((2 == 3)&2) = false in current sjasmplus... ???? |
105 | Operators precedence: (2 == 3&2) = ((2 == 3)&2) = false in current sjasmplus... ???? |
138 | https://en.cppreference.com/w/cpp/language/operator_precedence |
106 | https://en.cppreference.com/w/cpp/language/operator_precedence |
139 | Operator "word" or "w16/i16" to truncate big value (similar to "low") |
107 | Operator "word" or "w16/i16" to truncate big value (similar to "low") |
140 | 108 | ||
Line 153... | Line 121... | ||
153 | 121 | ||
154 | Check about other syntax ambiguities, what seems too much relaxed and could be stricter for v2.x |
122 | Check about other syntax ambiguities, what seems too much relaxed and could be stricter for v2.x |
155 | 123 | ||
156 | N-pass |
124 | N-pass |
157 | 125 | ||
158 | new lua + js support? |
126 | js support? |
159 | - | ||
160 | Refactor filepath functions to deal with backward slashes systematically |
- | |
161 | (or maybe just wait few more years, can't be that long now before windows are gone) |
- | |
162 | 127 | ||
163 | ==================== |
128 | ==================== |
164 | Debian packaging: |
129 | Debian packaging: |
165 | 130 | ||
166 | cmake used to enforce (and test) system libs: |
131 | cmake used to enforce (and test) system libs: |
Line 196... | Line 161... | ||
196 | * C++ification of syntax and language, i.e. changing operator precedence, probably apostrophe enclosed string/char literals escaping rules, etc. |
161 | * C++ification of syntax and language, i.e. changing operator precedence, probably apostrophe enclosed string/char literals escaping rules, etc. |
197 | * new operators (string and device-memory/labels related, type/checks, maybe var-arg-like stuff) |
162 | * new operators (string and device-memory/labels related, type/checks, maybe var-arg-like stuff) |
198 | * macro-defined-operators (not only "instructions") |
163 | * macro-defined-operators (not only "instructions") |
199 | * nesting DISPs? |
164 | * nesting DISPs? |
200 | * better support for Maziac's tools (label type export, whatever else is needed) |
165 | * better support for Maziac's tools (label type export, whatever else is needed) |
201 | * fresher version of lua, revisit integration |
- | |
202 | * maybe also JavaScript scripting support |
166 | * maybe also JavaScript scripting support |
203 | * filepath stuff through POSIX/clib API to make it cross-platform without hacks (normal slashes everywhere) |
167 | * filepath stuff through POSIX/clib API to make it cross-platform without hacks (normal slashes everywhere) |
204 | 168 | ||
205 | RELEASE spam: |
169 | RELEASE spam: |
206 | Next wiki assemblers |
170 | Next wiki assemblers |
207 | Next discord |
171 | Next discord |
- | 172 | ||
208 | zx-pk.ru forum |
173 | zx-pk.ru forum |
209 | Next FB |
174 | Next FB |
210 | (maybe once per year or two: next forum, linkedin) |
175 | (maybe once per year or two: next forum, linkedin) |
- | 176 | -- also update .exe/docker in tests/misc |