X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=device%2Flib%2Fgbz80%2Fcrt0.s;h=814b43ed2cdc8b1916ca88366acac5dc1fc54534;hb=f542e052f62b7dcf19a6ea79496237fc9a339032;hp=eb015280ea44f56e557bfb86031dcc953691831e;hpb=6a01e2d7d2353eb11e862f332bc2df43a967b9fa;p=fw%2Fsdcc diff --git a/device/lib/gbz80/crt0.s b/device/lib/gbz80/crt0.s index eb015280..814b43ed 100644 --- a/device/lib/gbz80/crt0.s +++ b/device/lib/gbz80/crt0.s @@ -1,62 +1,68 @@ - ;; Generic crt0.s for a Z80 - .globl __main - - .area _HEADER (ABS) - ;; Reset vector - .org 0 - jp init - - .org 0x08 - reti - .org 0x10 - reti - .org 0x18 - reti - .org 0x20 - reti - .org 0x28 - reti - .org 0x30 - reti - .org 0x38 - reti - - .org 0x100 - jp 0x150 - - .org 0x150 + ;; Generic crt0.s for a GBZ80 + .globl _main + + .area _HEADER (ABS) + ;; Reset vector + .org 0 + jp init + + .org 0x08 + reti + .org 0x10 + reti + .org 0x18 + reti + .org 0x20 + reti + .org 0x28 + reti + .org 0x30 + reti + .org 0x38 + reti + + .org 0x100 + jp 0x150 + + .org 0x150 init: - di - ;; Stack at the top of memory. - ld sp,#0xdfff + di + ;; Stack at the top of memory. + ld sp,#0xdfff + + ;; Setup global data + call gsinit - ;; Use _main instead of main to bypass sdcc's intelligence - call __main - jp _exit + ;; Use _main instead of main to bypass sdcc's intelligence + call _main + jp _exit - ;; Ordering of segments for the linker. - .area _CODE - .area _DATA + ;; Ordering of segments for the linker. + .area _HOME + .area _CODE + .area _GSINIT + .area _GSFINAL + .area _DATA + .area _BSS + .area _HEAP + + .area _CODE __clock:: - ld a,#2 - rst 0x00 - ret - -_getsp:: - ld hl,#0 - add hl,sp - ret - -__printTStates:: - ld a,#3 - rst 0x00 - ret - + ld a,#2 + rst 0x08 + ret + _exit:: - ;; Exit - special code to the emulator - ld a,#1 - rst 0x00 + ;; Exit - special code to the emulator + ld a,#0 + rst 0x08 1$: - halt - jr 1$ + halt + jr 1$ + + .area _GSINIT +gsinit:: + + .area _GSFINAL + ret