Difference between revisions of "SDCC"

From MSX Game Library

Line 52: Line 52:
  
 
For more information:
 
For more information:
 +
* [https://sdcc.sourceforge.net/ SDCC homepage]
 
* [http://sdcc.sourceforge.net/doc/sdccman.pdf SDCC documentation]
 
* [http://sdcc.sourceforge.net/doc/sdccman.pdf SDCC documentation]
 
* [https://shop-pdp.net/ashtml/asmlnk.pdf ASxxxx documentation]
 
* [https://shop-pdp.net/ashtml/asmlnk.pdf ASxxxx documentation]

Revision as of 13:29, 22 January 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 RC2

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)

Links

For more information: