Work on fleshing out sections

This commit is contained in:
Kyle Cardoza 2024-03-23 02:26:24 -04:00
parent f4d97edbf2
commit d52c1cdecc
2 changed files with 22 additions and 0 deletions

20
C Compiler.md Normal file
View File

@ -0,0 +1,20 @@
---
gitea: none
include_toc: true
---
# C Compiler
The cross-development SDK for Sentinel 65X requires the Calypsi C/asm toolchain, targeting 65816. The SDK does not include Calypsi, which is available as freeware from [the Calypsi website](https://calypsi.cc).
## Language
Calypsi supports a fairly modern dialect of C, essentially C11 with some additions from later C standard revisions. The C standard library it supplies is used by the SDK, modified to work with the Sentinel 65X kernel installed to the on-board flash ROM.
## Toolchain
Calypsi also provides a 65816 assembler, a linker, and a librarian, all of which are used by the SDK. Your SDK projects can be written in C, assembly language, or a mix of the two.
## Libraries
The SDK will include several useful libraries ready to use in your projects, under license terms which place no obligations on your own code's license terms.

View File

@ -22,3 +22,5 @@ This is followed by one or more segments, packed with no padding or separator. E
This enables the binary loader to be extremely simple, as the data to be read into memory is always read from a contiguous region of memory, and the information provided is sufficient to make use of the C standard library `memcpy()` function. This enables the binary loader to be extremely simple, as the data to be read into memory is always read from a contiguous region of memory, and the information provided is sufficient to make use of the C standard library `memcpy()` function.
The final segment is special: its target address represents the entry point to the executable, and its length of data value is always `0x000000`. The loader can easily detect this to identify when loading is done and where to enter the program. The final segment is special: its target address represents the entry point to the executable, and its length of data value is always `0x000000`. The loader can easily detect this to identify when loading is done and where to enter the program.
The Sentinel 65X SDK will be configured to produce PGZ format executables by default, with the option to instead export to a file suitable for writing to a ROM cartridge.