]> cloudbase.mooo.com Git - avrcpm.git/blobdiff - avr/dsk_mgr.asm
* Some bug fixes
[avrcpm.git] / avr / dsk_mgr.asm
index f0a570292ad8c445e306d61430d541956b05170a..40a2cd443c6de3d25ff3d4603cce6c7e2298f388 100644 (file)
@@ -75,7 +75,7 @@ mgr_picl:
 
 ; Start mmc Card interaction
        lcall   mmcInit
-       andi    temp,MMCST_NOINIT & MMCST_NODISK
+       andi    temp,MMCST_NOINIT | MMCST_NODISK
        brne    mgr_pierr
        
 ;Load first sector from MMC (boot sector)
@@ -97,10 +97,10 @@ mgr_check_bootsektor:
 ;Test, if it has a valid MBR
 
        lds     temp,hostbuf+510        ;MBR signature (0xAA55)  at and of sector?
-       lds     temp2,hostbuf+510+1
-       ldi     temp4,0xAA
        cpi     temp,0x55               
-       cpc     temp2,temp4
+       lds     temp,hostbuf+510+1
+       ldi     temp2,0xAA
+       cpc     temp,temp2
        breq    mgr_search
 
 ;No MBR, no partition table ...
@@ -125,7 +125,6 @@ mgr_check_bootsektor:
 ; Search for valid Partitions and ImageFiles 
 mgr_search:
        ldiw    z,hostbuf+510-64        ;Point to  first byte of partition table
-       ldi     temp4,4                 ;Partition table has 4 entries.
 
 mgr_ploop:
 
@@ -145,14 +144,13 @@ mgr_ploop:
        
 mgr_nextp:
        adiw    z,16
-       dec     temp4
+       cpi     zl,low(hostbuf+510)     ;End of partition table reached?
        brne    mgr_ploop
 
 #if FAT16_SUPPORT
 
 ; Test for FAT16 Partition
        ldiw    z,hostbuf+510-64        ;Point to  first byte of partition table
-       ldi     temp4,4
 
 mgr_ploop2:
 ;      Get Partitiontype
@@ -174,19 +172,18 @@ mgr_fatfound:
 
 mgr_nextp2:
        adiw    zl,16
-       dec     temp4
+       cpi     zl,low(hostbuf+510)
        brne    mgr_ploop2
 #endif
 
 mgr_pend:
-       lds     temp4,ndisks
        clr     temp3
 mgr_imgd_lp:
-       tst     temp4
+       lds     temp,ndisks
+       cp      temp3,temp
        breq    mgr_pend2
        rcall   dpb_imgdata_get
        inc     temp3
-       dec     temp4
        rjmp    mgr_imgd_lp
 
 mgr_pend2:
@@ -208,22 +205,24 @@ mgr_pend2:
 ; ====================================================================
 
 mgr_prnt_parttbl:
+       push    r15
+       push    r14
        ldiw    z,hostparttbl
        lds     yl,ndisks
        ldi     xh,'A'
 
 pprl:
+       printnewline
+
        ldd     temp ,z+1               ;Get partition start
        ldd     temp2,z+2
-       ldd     temp3,z+3
-       ldd     temp4,z+4
-
-       printnewline
+       ldd     r14,z+3
+       ldd     r15,z+4
 
        cp      temp,_0                 ;If zero ...
        cpc     temp2,_0
-       cpc     temp3,_0
-       cpc     temp4,_0
+       cpc     r14,_0
+       cpc     r15,_0
        breq    mgr_prnop               ;... no partition table at 0
 
 ; Partitiontype examining
@@ -269,12 +268,9 @@ mgr_prnt_size:
 
        ldd     temp ,z+5               ;Get partition size
        ldd     temp2,z+6
-       ldi     temp3,0
-       ldi     temp4,0
-
-       lsr     temp4
-       ror     temp3
-       ror     temp2
+       clr     r14
+       clr     r15
+       lsr     temp2
        ror     temp
        lcall   print_ultoa
        printstring "KB."
@@ -286,6 +282,8 @@ mgr_goto_next_part:
        brne    pprl
 
 mgr_pppre:
+       pop     r14
+       pop     r15
        ret