Subversion Repositories NedoOS

Rev

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
Twitter
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