/usr/share/z88dk/lib/rxl_crt0.asm is in z88dk-data 1.8.ds1-10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | ; Startup Code for Xircom Rex 6000
;
; djm 6/3/2001
;
; $Id: rxl_crt0.asm,v 1.3 2007/06/27 20:49:28 dom Exp $
;
MODULE rex_crt0
INCLUDE "zcc_opt.def"
;--------
; Some scope declarations
;--------
XREF _main ;main() is always external to crt0
XREF _LibMain
XDEF _std_seed ;integer rand() seed
XDEF exitsp ;atexit() variables
XDEF exitcount
XDEF heapblocks ;malloc() variables
XDEF heaplast
XDEF l_dcal ;jp(hl) instruction
XDEF cleanup
; defm "ApplicationName:Addin"&10&13
; defm "[program name - 10 chars?]"&10&13
; defb 0
; defw endprof-begprog
; defb 0,0
; Prior to $8000 we have a 40x32 icon
;--------
; Main code starts here
;--------
org $8000
jp start ;addin signature jump
.signature
defm "XXX"
.lib
ld hl,farret
push hl
jp _LibMain
.start
; Make room for the atexit() stack
ld hl,65535-64 ;Initialise sp
ld sp,hl
ld hl,$f033 ;Clear static memory
ld de,$f034
ld bc,$ffff-$f033
ld (hl),0
ldir
ld (exitsp),sp ;Store atexit() stack
xor a
ld (exitcount),a ;Setup number of atexit() routines
ld hl,$8080 ;Initialise fp seed
ld (fp_seed),hl
; Entry to the user code
call _main ;Call the users code
.cleanup
ld de,$42 ;DS_ADDIN_TERMINATE
ld ($c000),de
rst $10 ;Exit the addin
.endloop
jr endloop
.l_dcal jp (hl) ;Used for call by function pointer
.farret ;Used for farcall logic
pop bc
ld a,c
jp $26ea
;--------
; Static variables are kept in RAM in high memory
;--------
DEFVARS $f033
{
_std_seed ds.w 1 ;Integer seed
exitsp ds.w 1 ;Pointer to atexit() stack
exitcount ds.b 1 ;Number of atexit() routines registered
fp_seed ds.w 3 ;Floating point seed, unused ATM
extra ds.w 3 ;Floating point temp variable
fa ds.w 3 ;Floating point accumulator
fasign ds.b 1 ;Floating point temp store
heapblocks ds.w 1 ;Number of malloc blocks
heaplast ds.w 1 ;Pointer to linked list of free malloc blocks
}
;--------
; Now, include the math routines if needed..
;--------
IF NEED_floatpack
INCLUDE "#float.asm"
ENDIF
|