Being used to programming in C, I wanted to be able to do most my software on the Z-80 in C. Here is examples of creating C programs with Custom Z-80 builds:
/* my custom crt0.s for my system */.module crt0.globl _main.globl _isr_08.globl _isr_10.globl _isr_18.globl _isr_20.globl _isr_28.globl _isr_30.globl _isr_38.globl _isr_66.globl _isr_Z80_IO_A.globl _isr_Z80_IO_B.globl _isr_trap.globl l__INITIALIZER.globl s__INITIALIZED.globl s__INITIALIZER.area _HEADER (ABS);; Reset vector.org 0jp init.org 0x08jp _isr_08.org 0x10jp _isr_10.org 0x18jp _isr_18.org 0x20jp _isr_20.org 0x28jp _isr_28.org 0x30jp _isr_30.org 0x38jp _isr_38.org 0x66jp _isr_66.org 0x100init:;; Set stack pointer directly above top of memory.ld sp,#0x3fff;; Initialise global variablescall gsinitcall _mainjp init.org 0x0200.dw _isr_Z80_IO_A.dw _isr_Z80_IO_B.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap.dw _isr_trap;; Ordering of segments for the linker..area _HOME.area _CODE.area _INITIALIZER.area _GSINIT.area _GSFINAL.area _DATA .area _INITIALIZED.area _BSEG.area _BSS.area _HEAP.area _GSINITgsinit::ld bc, #l__INITIALIZERld a, bor a, cjr Z, gsinit_nextld de, #s__INITIALIZEDld hl, #s__INITIALIZERldirgsinit_next:.area _GSFINALret