; Various functions: init, (RAM) disk, mmc, timer
-; This file needs to get split up.
;
; Copyright (C) 2010 Sprite_tm
; Copyright (C) 2010 Leo C.
.if BOOTWAIT
ldi temp,10
- rcall delay_ms
+ call delay_ms
.endif
ramtestw:
mov temp,xh
eor temp,xl
- mem_write
- adiw xl,1
+ rcall dram_write_pp
brcc ramtestw
printstring "wait..."
ldi temp2,8
ramtestwl:
ldi temp,255
- rcall delay_ms
+ call delay_ms
dec temp2
brne ramtestwl
ldiw x,0
ramfillw:
ldi temp,MEMFILL_VAL
- mem_write
- adiw xl,1
+ rcall dram_write_pp
brcc ramfillw
.endif
boot_again:
printnewline
printstring "Initing mmc...",0
- rcall dsk_partinit
+ printnewline
+ call mgr_init_partitions
cbr temp,0x80
brne boot_ipl2
printstring "No bootable CP/M disk found! Please change MMC/SD-Card."
+ printnewline
ldi temp2,18
boot_iplwl:
ldi temp,255
boot_ipl2:
- rcall prnt_parttbl
+ call mgr_prnt_parttbl
printnewline
printstring "Partinit done."
-; Read first sector of first CP/M partition
+ rcall dsk_cboot ;init (de)blocking buffer
+
+; Read first sector of first CP/M partition (ipl)
- lds xl,hostparttbl
- lds xh,hostparttbl+1
- lds yl,hostparttbl+2
- lds yh,hostparttbl+3
+ lds xl,hostparttbl+1
+ lds xh,hostparttbl+2
+ lds yl,hostparttbl+3
+ lds yh,hostparttbl+4
rcall mmcReadSect
- rcall dsk_cboot ;init (de)blocking buffer
+; rcall dsk_cboot ;init (de)blocking buffer
;First sector of disk or first CP/M partition is in hostbuf.
ldiw x,IPLADDR
iplwriteloop:
ld temp,z+
- mem_write
- adiw xl,1
+ rcall dram_write_pp
cpi zl,low(hostbuf+128)
brne iplwriteloop
cpi zh,high(hostbuf+128)
brne iplwriteloop
- rjmp z80_init
+ jmp z80_init