Zilog Z80380 User Manual
Page 92
Advertising

Initialization File
Initialization and Link Files
A–2
UM004001-COR1103
ld.ib
hl,.BSS_LENGTH; Check for non-zero length
ld
bc,hl
; *
ld
de,hl
; *
swap
de
; *
orw
hl,de
; *
jr
z,_c_bss_done; .BSS is zero-length ...
ld
hl,bc
; (hl)=Length
ld
bc,hl
; (bc)=length lo word
swap
hl
ld
ix,hl
; (ix)=length hi word
ld.ib
hl,.BSS_BASE; [hl]=.bss
ld
(hl),0
ld
de,hl
inc
de
; [de]=.bss+1
decw
bc
; 1st byte's taken care of
ex
hl,bc
orw
hl,hl
ex
hl,bc
jr
z,_c_bss_page; Just 1 byte on this page ...
_c_bss_loop:
ldir
_c_bss_page:
ex
hl,ix
orw
hl,hl
ex
hl,ix
jr
z,_c_bss_done
dec
ix
jr
_c_bss_loop
_c_bss_done:
.endif
; .INITBSS
;------ main()
ld
hl,0
; hl=NULL
push
hl
; argv[0] = NULL
ld
ix,hl
add
ix,sp
; ix=&argv[0]
push
ix
; &argv[0]
push
hl
; argc==0
call.ib
_main
; main()
add
sp,12
; clean the stack
Advertising