Difference between revisions of "SDCC"

From MSX Game Library

Line 1: Line 1:
 
[[SDCC]] is the toolchain used in {{MSXGL}} to compile, assemble and link the sources files.
 
[[SDCC]] is the toolchain used in {{MSXGL}} to compile, assemble and link the sources files.
 +
 +
== Assembler ==
  
 
The assembler, sdasz80, is based on ASxxxx cross assembles.
 
The assembler, sdasz80, is based on ASxxxx cross assembles.
Line 43: Line 45:
 
|}
 
|}
  
Links:
+
== Links ==
 +
 
 +
For more information:
 
* [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:26, 22 January 2024

SDCC is the toolchain used in MSXGL to compile, assemble and link the sources files.

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      lh, 1234h

; Directive
db      100
dw      1234h

; IX/IY offset
ld      e, iy[0]
ld      d, iy[1]
; Numeral
ld      a, #100
and     #0b01111100
ld      lh, #0x1234

; Directive
.db     100
.dw     0x1234

; IX/IY offset
ld      e, 0(iy)
ld      d, 1(iy)

Links

For more information: