Difference between revisions of "SDCC"
From MSX Game Library
(→Versions) |
|||
Line 62: | Line 62: | ||
=== <tt>SDCC 4.4.0</tt> === | === <tt>SDCC 4.4.0</tt> === | ||
− | * | + | * Main features: |
** Native support for ASCII R800, the MSX turbo R's CPU. | ** Native support for ASCII R800, the MSX turbo R's CPU. | ||
+ | |||
+ | * Full change log: | ||
+ | ** Optimizations for rotations. | ||
+ | ** Generalized constant propagation. | ||
+ | ** New command line option <tt>--syntax-only</tt> to only parse the input. | ||
+ | ** Added C99 header <tt>inttypes.h</tt> | ||
+ | ** Added library functions imaxabs, imaxdiv, llabs, strtoimax, strtoll, strtoull, strtoumax, wcsncmp, wcstoimax, wcstol, wcstoll, wcstoul, wcstoull, wcstoumax | ||
+ | ** New r800 port to better support the ASCII Corp R800 and Zilog Z280. | ||
+ | ** Improved optimizations for code speed for stm8, pdk, z80 (and related). | ||
+ | |||
* Known issues: | * Known issues: | ||
** On Windows, win32 version just doesn't works and win64 is... absent. You can use [https://sourceforge.net/projects/sdcc/files/sdcc-win64/4.4.0/ win64 version of <tt>SDCC 4.4.0 RC3</tt>] (same content than the official release). | ** On Windows, win32 version just doesn't works and win64 is... absent. You can use [https://sourceforge.net/projects/sdcc/files/sdcc-win64/4.4.0/ win64 version of <tt>SDCC 4.4.0 RC3</tt>] (same content than the official release). |
Revision as of 19:23, 30 March 2024
SDCC is the toolchain used in MSXGL to compile, assemble and link the sources files.
Supported version:
- Embedded: SDCC 4.2.0
- Last tested: SDCC 4.4.0 RC3 (Windows) and SDCC 4.4.0 (Linux)
Assembler
The assembler, sdasz80, is based on ASxxxx cross assembles.
sdasz80 syntax is almost standard except for:
- Define instructions numeral values: must be prefixed with # character.
- Define directive: must be prefix with . character.
- Access to IX and IY register using offset: offset have to be write before the register name into parentheses.
Standard | sdasz80 |
---|---|
; Numeral ld a, 100 and 01111100b ld hl, 1234h ; Directive db 100 dw 1234h ; IX/IY offset ld e, iy[0] ld d, iy[1] |
; Numeral ld a, #100 and #0b01111100 ld hl, #0x1234 ; Directive .db 100 .dw 0x1234 ; IX/IY offset ld e, 0(iy) ld d, 1(iy) |
Versions
SDCC 4.2.0
(currently recommended version for MSXgl)
- New features:
- New calling convention (use register to pass function parameters)
- Known issues: None
SDCC 4.3.0
- New features:
- Known issues:
SDCC 4.4.0
- Main features:
- Native support for ASCII R800, the MSX turbo R's CPU.
- Full change log:
- Optimizations for rotations.
- Generalized constant propagation.
- New command line option --syntax-only to only parse the input.
- Added C99 header inttypes.h
- Added library functions imaxabs, imaxdiv, llabs, strtoimax, strtoll, strtoull, strtoumax, wcsncmp, wcstoimax, wcstol, wcstoll, wcstoul, wcstoull, wcstoumax
- New r800 port to better support the ASCII Corp R800 and Zilog Z280.
- Improved optimizations for code speed for stm8, pdk, z80 (and related).
- Known issues:
- On Windows, win32 version just doesn't works and win64 is... absent. You can use win64 version of SDCC 4.4.0 RC3 (same content than the official release).
Links
For more information: