;No MBR, no partition table ...
+#if CPMDSK_SUPPORT
+
inc temp3 ;pretend we have one.
sts ndisks,temp3
ldi temp,high((1<<16) * 128/512)
ldi temp3,0
rcall dpb_imgdata_get
+#endif /* CPMDSK_SUPPORT */
+
rjmp mgr_pend
-; Search for valid Partitions and ImageFiles
mgr_search:
+
+#if CPMDSK_SUPPORT
+
+; Search for valid Partitions and ImageFiles
ldiw z,hostbuf+510-64 ;Point to first byte of partition table
mgr_ploop:
adiw z,16
cpi zl,low(hostbuf+510) ;End of partition table reached?
brne mgr_ploop
+#endif /* CPMDSK_SUPPORT */
#if FAT16_SUPPORT
adiw zl,16
cpi zl,low(hostbuf+510)
brne mgr_ploop2
-#endif
+#endif /* FAT16_SUPPORT */
mgr_pend:
clr temp3
; ====================================================================
mgr_prnt_parttbl:
+ lds yl,ndisks
+ tst yl
+ brne ppr_doit
+ ret
+
+ppr_doit:
push r15
push r14
ldiw z,hostparttbl
- lds yl,ndisks
ldi xh,'A'
-
pprl:
printnewline
ldd r14,z+3
ldd r15,z+4
+; Partitiontype examining
+
+ ldd xl,z+0
+ andi xl,dskType_MASK
+
+#if CPMDSK_SUPPORT
+
cp temp,_0 ;If zero ...
cpc temp2,_0
cpc r14,_0
cpc r15,_0
- breq mgr_prnop ;... no partition table at 0
+ brne mgr_prchkcpm ;... no partition table at 0
-; Partitiontype examining
- ldd xl,z+0
- andi xl,dskType_MASK
+ rcall mgr_prnt_diskname
+ rcall mgr_prnt_image
+ rjmp mgr_prnt_size
+
+mgr_prchkcpm:
; CP/M ?
cpi xl,dskType_CPM
brne mgr_prtb_nocpm
rcall mgr_prnt_diskname
rcall mgr_prnt_table_cpm
rjmp mgr_prnt_size
-
mgr_prtb_nocpm:
+#endif
+
#if FAT16_SUPPORT
; FAT16 ?
cpi xl,dskType_FAT
rjmp mgr_prnt_size
mgr_prtb_nofat:
#endif
+
#if 0 /* RAMDISK is not on SD card */
+#if RAMDISKCNT
; RAMDISK ?
cpi xl,dskType_RAM
- brne mgr_prnt_err
+ brne mgr_prnt_noramdisk
rcall mgr_prnt_diskname
rcall mgr_prnt_table_ram
rjmp mgr_prnt_size
+mgr_prnt_noramdisk:
+#endif
#endif
-mgr_prnt_err:
+
; Entry Error
rcall mgr_prnt_table_err
- rjmp mgr_prnt_size
-
-mgr_prnop:
- rcall mgr_prnt_diskname
- rcall mgr_prnt_image
mgr_prnt_size:
lcall print_ultoa
push temp
mov temp,xh
lcall uartputc
- ldi temp,':'
- lcall uartputc
+ printstring ": "
pop temp
ret
+#if CPMDSK_SUPPORT
mgr_prnt_table_cpm:
printstring "CP/M partition at: "
ret
+mgr_prnt_image:
+ printstring "Assuming CP/M image at: "
+ ret
+#endif
+
+#if FAT16_SUPPORT
mgr_prnt_table_fat:
- printstring "FAT16 File-Image at: "
+ printstring "FAT16 File-Image '"
+ push temp
+ mov temp,r14
+ lcall uartputc
+ clr r14
+ pop temp
+ printstring "' at: "
ret
+#endif
+#if RAMDISKCNT
mgr_prnt_table_ram:
printstring "Ramdisk at: "
ret
+#endif
mgr_prnt_table_err:
printstring "Unknown Entry at: "
ret
-mgr_prnt_image:
- printstring "Assuming CP/M image at: "
- ret
-