Skip to content

Commit 8db29ed

Browse files
committed
Merge branch 'master' of https://github.com/Stephane-D/SGDK
2 parents debb814 + 1e1a640 commit 8db29ed

File tree

9 files changed

+150
-119
lines changed

9 files changed

+150
-119
lines changed

bin/convsym.exe

-1.62 MB
Binary file not shown.

lib/libmd.a

27.3 KB
Binary file not shown.

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Github: https://github.com/Stephane-D/SGDK
55

66
**SGDK** is a free development kit allowing development of software in **C language** for the **Sega Mega Drive**.
77
It contains the development library itself (with the code sources) and some custom tools used to compile resources.
8-
SGDK uses the GCC compiler (m68k-elf target) and the libgcc to generate a ROM image. Binaries (GCC 6.3) are provided for Windows OS for convenience, but you need to install it by yourself for other operating systems.
8+
SGDK uses the GCC compiler (m68k-elf target) and the libgcc to generate a ROM image. Binaries (GCC 13.2) are provided for Windows OS for convenience, but you need to install it by yourself for other operating systems.
99
Note that SGDK also requires Java (custom tools require it), so you need to have Java installed on your system.
1010

1111
SGDK library and custom tools are distributed under the MIT license (see [license.txt](license.txt) file).

src/sys_a.s

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,32 @@ func SYS_assertReset
77

88

99
func SYS_reset
10-
move #0x2700,%sr
11-
move.l (0),%a7
10+
move #0x2700,%sr
11+
move.l (0),%a7
1212

1313
move %sp, %usp
1414
sub #USER_STACK_LENGTH, %sp // configure a USER_STACK_LENGTH bytes user stack at bottom, and system stack on top of it
1515

16+
move.l #0xA11100,%a0 /* Z80_HALT_PORT */
17+
move.w #0x0100,%d0
18+
move.w %d0,(%a0) /* HALT Z80 */
19+
move.w %d0,0x0100(%a0) /* END RESET Z80 */
20+
1621
jmp _reset_entry
1722

1823

1924
func SYS_hardReset
20-
move #0x2700,%sr
21-
move.l (0),%a7
25+
move #0x2700,%sr
26+
move.l (0),%a7
2227

2328
move %sp, %usp
2429
sub #USER_STACK_LENGTH, %sp // configure a USER_STACK_LENGTH bytes user stack at bottom, and system stack on top of it
2530

31+
move.l #0xA11100,%a0 /* Z80_HALT_PORT */
32+
move.w #0x0100,%d0
33+
move.w %d0,(%a0) /* HALT Z80 */
34+
move.w %d0,0x0100(%a0) /* END RESET Z80 */
35+
2636
jmp _start_entry
2737

2838

tools/convsym/CHANGES.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11

22
# ConvSym version history
33

4+
### Version 2.12.1 (2024-12-14)
5+
6+
* `deb2` output format:
7+
- Fixed an edge-case bug where if one block is too large and symbol heap exceeds 64 kb, all further blocks are skipped.
8+
9+
* Improve README, including some wording and terminology (e.g. "input/output parsers" -> "input/output formats").
10+
411
### Version 2.12 (2024-12-11)
512

613
* Added support for symbol references instead of raw offsets in `-ref` and `-org` options:
@@ -14,7 +21,7 @@
1421

1522
* Added new `txt` input parser to parse arbitrary text files; ConvSym can now parse SGDK's `symbols.txt` file.
1623

17-
* `asm` and `log` output parsers:
24+
* `asm` and `log` output formats:
1825
- Implement proper options support in `-outopt`. You can configure line format as `-outopt "/fmt='format-string'"` now (legacy `-outopt "format-string"` syntax is preserved). This goes in line with the new `txt` parser (which also has `/fmt` option among others and will allow to add additional options in the future;
1926
- Warn if line format string is incorrect (e.g. too few arguments specified).
2027

@@ -24,7 +31,7 @@
2431
* `as_lst_exp` input parser:
2532
- Show a warning that `-inopt` is unsupported if user tries to set it.
2633

27-
* `deb2` and `deb1` output parsers:
34+
* `deb2` and `deb1` output formats:
2835
- Made tree flattening algorithm introduced in 2.10 deterministic.
2936

3037
* Document all default parser options in ConvSym's usage message (printed when invoked without arguments), document `-debug` option.
@@ -33,12 +40,12 @@
3340

3441
* Added `-addprefix` option to prepend any string to output symbols.
3542

36-
* `deb2` and `deb1` output parsers:
43+
* `deb2` and `deb1` output formats:
3744
- Fixed a rare symbol encoding issue where data with unusual entropy would produce long prefix trees with some codes exceeding 16-bits. Respective characters (usually extremely rare) would then fail to decode properly corrupting a small set of symbol texts. A custom tree rebalancing algorithm was implemented to fix trees with codes longer than 16-bit;
3845
- Fixed a minor memory leak (<2 kb in a lifetime) on nodes in encoding function;
3946
- Fixed a tiny (several bytes) memory leak due to an unreleased file handle.
4047

41-
* `asm` and `log` output parsers:
48+
* `asm` and `log` output formats:
4249
- Properly report I/O error if output file couldn't be opened.
4350

4451
### Version 2.9.1 (2023-03-22)
@@ -67,15 +74,15 @@
6774

6875
### Version 2.7.1 (2022-07-23)
6976

70-
* Fix incorrect newlines produced by `log` and `asm` output parsers on Windows;
77+
* Fix incorrect newlines produced by `log` and `asm` output formats on Windows;
7178
* Fix a minor memory leak when a parser crashes;
7279
* Overall stability and portability improvements.
7380

7481
### Version 2.7 (2021-04-27)
7582

7683
* Added support for multiple labels sharing the same offset for all input and output wrappers;
7784

78-
* `deb1` and `deb2` output parsers:
85+
* `deb1` and `deb2` output formats:
7986
- Add "/favorLastLabels" option, which toggles choosing last labels when there are multiple labels at the same offset (first labels are preferred otherwise).
8087

8188
### Version 2.6 (2021-02-01)
@@ -93,10 +100,10 @@
93100
- Fixed a bug that prevented offsets >=$80000000 to be added due to incorrect signed boundary check;
94101
- When several labels occur on the same offset, use the last label met, not the first;
95102
- Track last global label name correctly (it previously didn't update the label when it was filtered via boundary or other checks).
96-
* `deb1` output parser:
103+
* `deb1` output format:
97104
- Fix memory corruption when symbol map requires more than 64 memory blocks;
98105
- Explicitly limit symbols map to 64 blocks, display an error when overflow was about to occur.
99-
* `deb2` output parser:
106+
* `deb2` output format:
100107
- Fix infinite loop when the full the last block id was 0xFFFF;
101108
- Limit symbols map to 256 blocks, display error if more blocks were requested.
102109

0 commit comments

Comments
 (0)