-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathChangeLog
172 lines (159 loc) · 7.15 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
ChangeLog
---------
Version 1.3.0 - 18-Jan-2024:
- splib:
- system.inc:
- Added check that OPTION EXPLICIT is set; throws ERROR if not.
- Added sys.run_shell(), sys.read_shell_file$() and sys.write_shell_file()
to support a new mechanism for launching a program from a "shell"
program and then returning to the "shell" when finished.
- Removed internal use of sys.is_platform%() with the intent of removing
the function entirely in the future.
- Fixed syntax error in sys.format_firmware_version$().
- array.inc:
- Added array.find_string$() function.
- ctrl.inc:
- Added Linux/USB gamepad support.
- Added PicoMiteVGA Wii controller support.
- Added missing entries to PS/2 scan-code map.
- Added ctrl.default_driver$() and ctrl.open_no_error%() functions.
- Added mapping from ENTER key to SELECT in keys_cursor_ext() function.
- Fixed bug where a controller driver that failed to open would be
recorded as opened.
- Several other minor changes.
- file.inc:
- Fixed bug in file.mkdir%() where it was not skipping the path string's
length byte and thus failing when the length was the ASCII code for
'/' (47) or '\' (92).
- game.inc:
- Replaces 'gamemite.inc' adding several new routines to support
Game*Pack:
- game.init_window()
- game.on_break()
- game.on_window_event()
- game.highscore_file$()
- game.highscore_read()
- game.highscore_write()
- Changed game.end() to return to menu/shell even when the break% flag is
set.
- Removed gamemite.file$() function; replaced by the new "shell" mechanism
and/or local routines in the Game*Mite startup and menu programs.
- menu.inc:
- Changed to use 'keys_cursor_ext' keyboard driver and respond to
ctrl.HOME.
- msgbox.inc:
- Changed to backup and restore display after the message box has been
dismissed.
- txtwm.inc:
- Added global twm.console_only% flag to allow use without a graphics
display.
- sptest:
- Added assert_string_neq() subroutine.
- Fixed bug when error text > 255 characters.
- Fixed bug on MMB4L caused by calling the non-existent (in MMB4L) DRIVE
command.
- sptrans:
- Added support for replacing literal strings using !REPLACE directives.
- Fixed bug in symbol processing that was caused by the 8-digit hex words
in CSUB/DEFINEFONT being treated as TK_IDENTIFIER tokens; they now have
a unique TK_WORD type.
Version 1.2.0 - 3-Feb-2024:
- splib:
- Added subs/functions to 'bits.inc' to handle bit-sets > 64 bits:
bits.big_clear()
bits.big_fill()
bits.big_get%()
bits.big_set()
and also for 64-bit sets:
bits.fill()
- Added str.reverse$() function
- reverses the characters in a string.
- Added str.rtrim$() function
- right trims spaces from string.
- Added array.qsort_ints%() function
- quick sorts array of integers using user specified comparison function.
- Added sys.HOME$(), sys.SEPARATOR$() and sys.TMPDIR$() functions
- replaces sys.string_prop$().
- Added sys.PLATFORM$() function
- returns value of MM.INFO$(PLATFORM) if implemented and non-empty,
otherwise value of MM.DEVICE$.
- Added gamemite.file$() function
- given a non-absolute path looks for and returns file relative to
"A:/GameMite" or if not found, "B:/GameMite".
- Added 'spupdate' utility which updates a local copy of the 'splib'
directory from a checkout of the 'master' branch.
- Changed menu.msgbox%() to support
- message boxes with only one button.
- optional frame colour.
- Changed sys.format_firmware$() to handle new (v0.6.0+) MMB4L version
number.
- Renamed sys.is_device%() => sys.is_platform%().
- Fixed bug in sys.is_device%("gamemite") which would always return 1 if not
pre-processed.
- Fixed bug in map2.put() when element already present.
- sptest:
- Added option 'use_hex%' flag to assert_int_array_equals() which if set
causes it to use hexadecimal format.
- sptrans:
- Added new features/options:
-L, --list-all Output lists of identifiers, functions/subs,
references and orphan functions/subs.
-T, --tree-shake Remove unused functions/subs.
- Added new directives:
!DYNAMIC_CALL <fn-name> Flags function/sub so it isn't removed by
tree-shaking, required if a function/sub is
only called via the CALL command/function.
!DISABLE_FORMAT [ ON | OFF ] Disables/re-enables auto-formatting for a
section of code.
- Fixed indentation when auto-formatting END IF construct.
- Changed auto-formatting to always include space after FLOAT,INTEGER,STRING
keywords.
- Added missing entries to keyword list.
Version 1.1.0 - 1-Oct-2023:
- gonzo:
- Fixed --version command line argument.
- Fixed undeclared variable bug in gonzo.check_arg_min%().
- splib:
- Changed sys.VERSION to be a 6 or 7-digit integer: {A}ABBCDD
- {A}A is the 1 or 2-digit major version.
- BB is the 2-digit minor version.
- C = 0 for alpha
= 1 for beta
= 2 for release candidate
= 3..9 for release.
- DD is the micro version if c <= 3.
If c > 3 Then CDD - 300 is the micro version.
e.g. 1234567 would be version 12.34.267
- Added function sys.format_firmware_version$()
- replaces the 'fw%' parameter to sys.format_version$().
- Added subroutine menu.process_key().
- spsh:
- Fixed --version command line argument.
- sptrans:
- Fixed BOUND and CHOICE not being recognised as keywords.
Version 1.0.0 - 13-Sep-2023:
- First official release including another three years worth of
undocumented changes; I hope to do better going forward.
- This is the version used to build the GameMite v1.0.0 code.
Version 1b3 - Unreleased:
- Changed maximum number of tokens supported per line from 100 => 255.
- Fixed bug where internal error was reported when input file was not found.
- Added additional utility code to 'src/common'.
- Changed naming standard for all code to use a '.' instead of an '_' to
separate the 'package' prefix from the function/subroutine/variable name.
Version 1b2 - 18-Aug-2020:
- The package has been renamed to "SP Tools" and the GitHub address changed
correspondingly: https://github.com/thwill1000/sptools
It currently consists of 3 programs:
spflow - Generates graph of function/subroutine dependencies for MMBasic.
sptest - Unit-test framework for MMBasic,
* rudimentary at the moment and requires Option Base 0.
sptrans - Transpiler and code-formatter for MMBasic.
* code-formatting is ropey as I've found out trying to use it
on the "Welcome Tape" project.
See https://github.com/thwill1000/sptools/blob/master/README.md for more
details.
- Increased maximum number of tokens supported per line from 50 => 100.
- Added support for identifiers with ! or % suffixes; $ was already supported.
Version 1b1 - 22-Jul-2020:
- Initial public beta.