]> cloudbase.mooo.com Git - avrcpm.git/blobdiff - avr/dsk_mgr.asm
* Z80/8080 registers BC, DE, HL moved from RAM to AVR CPU registers. 'temp4' removed.
[avrcpm.git] / avr / dsk_mgr.asm
index db62ed1eb3c3c800dc9f4a29345a7c618bb3c22e..9cb1aefa959a9c01ef70e30ae52f17261e702bc7 100644 (file)
@@ -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,7 +172,7 @@ mgr_fatfound:
 
 mgr_nextp2:
        adiw    zl,16
-       dec     temp4
+       cpi     zl,low(hostbuf+510)
        brne    mgr_ploop2
 #endif
 
@@ -212,17 +210,15 @@ mgr_prnt_parttbl:
        ldi     xh,'A'
 
 pprl:
-       ldd     temp ,z+1               ;Get partition start
-       ldd     temp2,z+2
-       ldd     temp3,z+3
-       ldd     temp4,z+4
-
        printnewline
 
-       cp      temp,_0                 ;If zero ...
-       cpc     temp2,_0
-       cpc     temp3,_0
-       cpc     temp4,_0
+       ldd     temp ,z+1               ;Get partition start
+       ldd     temp2,z+2
+       or      temp,temp2
+       ldd     temp2,z+3
+       or      temp,temp2
+       ldd     temp2,z+4
+       or      temp,temp2              ;If zero ...
        breq    mgr_prnop               ;... no partition table at 0
 
 ; Partitiontype examining
@@ -268,14 +264,15 @@ 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
+       push    r15
+       push    r14
+       clr     r14
+       clr     r15
+       lsr     temp2
        ror     temp
        lcall   print_ultoa
+       pop     r14
+       pop     r15
        printstring "KB."
 
 mgr_goto_next_part: