Difference between revisions of "SDCC"

From MSX Game Library

(Versions)
Line 51: Line 51:
 
== Versions ==
 
== Versions ==
  
=== SDCC 4.2.0 ===
+
<tt>SDCC 4.2.0</tt>
 
(currently recommended version for MSXgl)
 
(currently recommended version for MSXgl)
 
* New features:
 
* New features:
Line 57: Line 57:
 
* Known issues: None
 
* Known issues: None
  
=== SDCC 4.3.0 ===
+
<tt>SDCC 4.3.0</tt>
 
* New features:
 
* New features:
 
* Known issues:
 
* Known issues:
  
=== SDCC 4.4.0 ===
+
<tt>SDCC 4.4.0</tt>
 
* 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.

Revision as of 19:12, 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 RC3 (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

  • 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: