]> cloudbase.mooo.com Git - avrcpm.git/blobdiff - avrcpm/avr/dsk_fsys.asm
* ipl.mac added
[avrcpm.git] / avrcpm / avr / dsk_fsys.asm
index 85656202b3c1661a45ac13cd98064eb836bbb265..1f3a1950b246c50bd2c0ebb6ee28d6ad382cf72c 100644 (file)
@@ -35,7 +35,7 @@
 ;*****************************************************
 ;*         CP/M to host disk constants               *
 ;*****************************************************
-       .equ    MAXDISKS  = 6                   ;Max number of Disks (partitions)
+       .equ    MAXDISKS  = 8                   ;Max number of Disks (partitions)
        .equ    PARTENTRY_SIZE = 9              ;Size of a Partitiontableentry
        .equ    blksize = 1024                  ;CP/M allocation size
        .equ    hostsize = 512                  ;host disk sector size
@@ -351,6 +351,42 @@ tmpdpb:    .byte   15
 ; Test DPBs (avrcpm format)
 
 dpblist:
+;dpb243        
+       .db 0x1A,0x00           ;spt
+       .db 0x03,0x07           ;block shift, bock mask
+       .db 0x00,0xF2           ;extent mask, low(disk size -1), 
+       .db 0x00,0x3F           ;high(disk size -1), low(dir max)
+       .db 0x00,0xC0           ;high(dir max), alloc0
+       .db 0x00,0x10           ;alloc1, low(chk size)
+       .db 0x00,0x02           ;high(chk size), low(offset)
+       .db 0x00,0x00           ;high(offset), fill
+;dpb243        
+       .db 0x1A,0x00           ;spt
+       .db 0x03,0x07           ;block shift, bock mask
+       .db 0x00,0xF2           ;extent mask, low(disk size -1), 
+       .db 0x00,0x3F           ;high(disk size -1), low(dir max)
+       .db 0x00,0xC0           ;high(dir max), alloc0
+       .db 0x00,0x10           ;alloc1, low(chk size)
+       .db 0x00,0x02           ;high(chk size), low(offset)
+       .db 0x00,0x00           ;high(offset), fill
+;dpb243        
+       .db 0x1A,0x00           ;spt
+       .db 0x03,0x07           ;block shift, bock mask
+       .db 0x00,0xF2           ;extent mask, low(disk size -1), 
+       .db 0x00,0x3F           ;high(disk size -1), low(dir max)
+       .db 0x00,0xC0           ;high(dir max), alloc0
+       .db 0x00,0x10           ;alloc1, low(chk size)
+       .db 0x00,0x02           ;high(chk size), low(offset)
+       .db 0x00,0x00           ;high(offset), fill
+;dpb243        
+       .db 0x1A,0x00           ;spt
+       .db 0x03,0x07           ;block shift, bock mask
+       .db 0x00,0xF2           ;extent mask, low(disk size -1), 
+       .db 0x00,0x3F           ;high(disk size -1), low(dir max)
+       .db 0x00,0xC0           ;high(dir max), alloc0
+       .db 0x00,0x10           ;alloc1, low(chk size)
+       .db 0x00,0x02           ;high(chk size), low(offset)
+       .db 0x00,0x00           ;high(offset), fill
 ;dpb243        
        .db 0x1A,0x00           ;spt
        .db 0x03,0x07           ;block shift, bock mask
@@ -431,9 +467,6 @@ cpydpb_l:
        pop     zh
        ret
        
-; clear drive table
-; for now, only  entries 1 - 3 are cleared.
-
 ; ====================================================================
 ; Function: Clear drive table
 ; ====================================================================
@@ -446,12 +479,12 @@ cpydpb_l:
 ; Description:
 ; ====================================================================
 
-; For now, only  entries 1 - 3 are cleared.
+; For now, only  entries 1 - 7 are cleared.
 
 dsk_drvtblinit:
        ldsw    x,biosdrvtbl
        adiw    x,2
-       ldi     temp3,3
+       ldi     temp3,7
 dsk_drvi_l:
        ldi     temp,0
        ldi     temp2,0
@@ -690,7 +723,6 @@ dsk_read:
        cpi             temp,dskType_None
        brne    PC+2
        rjmp    dsk_read_err
-
 ; It must be a FAT16-Imagefile or CP/M Partition.
        sts             unacnt,_0
        sbi             flags,rsflag            ;must read data