; Hardware initialisation, disk, mmc, timer, DRAM test
;
; Copyright (C) 2010 Sprite_tm
-; Copyright (C) 2010 Leo C.
+; Copyright (C) 2010-2013 Leo C.
;
; This file is part of avrcpm.
;
ldiw z,SRAM_START
ldi temp2,high(ramtop)
-clr_l:
+clr_loop:
st z+,_0
cpi zl,low(ramtop)
cpc zh,temp2
- brne clr_l
+ brne clr_loop
+
+; - Fill unused RAM (stack)
+
+ ldi temp2,high(RAMEND+1)
+ ldi temp,SRAMFILL_VAL
+fill_loop:
+ st z+,temp
+ cpi zl,low(RAMEND+1)
+ cpc zh,temp2
+ brne fill_loop
; Init clock/timer system
sei
-#if I2C
+#if I2C_SUPPORT
rcall i2c_init ; Init I2C master
rcall rtc_get
#endif
.if MEMFILL
ldiw x,0
+ ldi temp,MEMFILL_VAL
ramfillw:
- ldi temp,MEMFILL_VAL
rcall dram_write_pp
brcc ramfillw
.endif
printnewline
printstring "Partinit done."
- lcall dsk_inval_hostbuf ;init (de)blocking buffer
+; Init (de)blocking buffer
+
+ lcall dsk_inval_hostbuf
; Read first sector of first CP/M partition (ipl)
ldiw x,IPLADDR
stsw dmaadr,x
- lcall dsk_read
+ ldi temp,1<<READ_FUNC
+ lcall dskDoIt
; lift off
ljmp z80_init