Difference between revisions of "SDCC"

From MSX Game Library

(Versions)
(Versions)
Line 51: Line 51:
 
== Versions ==
 
== Versions ==
  
SDCC 4.2.0 (currently recommended for MSXgl)
+
SDCC 4.2.0
 +
(currently recommended version for MSXgl)
 
* New features:
 
* New features:
* Know issues:
+
** New calling convention (use register to pass function parameters)
 +
* Known issues: None
  
 
SDCC 4.3.0
 
SDCC 4.3.0
 
* New features:
 
* New features:
* Know issues:
+
* Known issues:
  
 
SDCC 4.4.0
 
SDCC 4.4.0
 
* New features:
 
* New features:
 
** Native support for ASCII R800, the MSX turbo R's CPU.
 
** Native support for ASCII R800, the MSX turbo R's CPU.
* Know 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 SDCC 4.4.0 RC3] (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 SDCC 4.4.0 RC3] (same content than the official release).
  

Revision as of 19:10, 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
  • Tested: SDCC 4.4.0 RC3

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

  • New features:
    • Native support for ASCII R800, the MSX turbo R's CPU.
  • 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: