Difference between revisions of "SDCC"

From MSX Game Library

(Versions)
Line 2: Line 2:
  
 
Supported version:
 
Supported version:
* Embedded: SDCC 4.2.0
+
* Embedded: <tt>SDCC 4.2.0</tt>
* Tested: SDCC 4.4.0 RC3
+
* Last tested: <tt>SDCC 4.4.0 RC3<tt> (Windows) and <tt>SDCC 4.4.0 RC3<tt> (Linux)
  
 
== Assembler ==
 
== Assembler ==

Revision as of 19:11, 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<tt> (Windows) and <tt>SDCC 4.4.0 RC3<tt> (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 <tt># 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: