-
- .dseg
-tmpdpb: .byte 15
-
- .cseg
-
-; init bios disk tables.
-; leave drive 'A' out for now
-
-
- rcall dbg_prdrvtbl
-
- rcall dsk_drvtblinit
- rcall dbg_prdrvtbl
-
- lds temp,biosenddat
- lds temp2,biosenddat+1
- rcall heap_init
-
- ldi temp,1
-dsk_pdil:
- cp temp,temp2
- brsh dsk_pdie
- push temp2
- push temp
- rcall dsk_diskinit
- pop temp
- pop temp2
- inc temp
- rjmp dsk_pdil
-
-
-
-dsk_pdie:
- mov temp,temp2
-; 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
-#if 0
-;rd1016
- .db 0x20,0x00 ;spt
- .db 0x04,0x0F ;block shift, bock mask
- .db 0x00,0xFB ;extent mask, low(disk size -1),
- .db 0x01,0xBF ;high(disk size -1), low(dir max)
- .db 0x00,0xE0 ;high(dir max), alloc0
- .db 0x00,0x30 ;alloc1, low(chk size)
- .db 0x00,0x02 ;high(chk size), low(offset)
- .db 0x00,0x00 ;high(offset), fill
-;rd9192s
- .db 0x20,0x00 ;spt
- .db 0x05,0x1F ;block shift, bock mask
- .db 0x01,0xFD ;extent mask, low(disk size -1),
- .db 0x07,0xFF ;high(disk size -1), low(dir max)
- .db 0x01,0xF0 ;high(dir max), alloc0
- .db 0x00,0x80 ;alloc1, low(chk size)
- .db 0x00,0x02 ;high(chk size), low(offset)
- .db 0x00,0x00 ;high(offset), fill
-#endif
-
-; Test
-cpy_dpb:
- push zh
- push zl
- push yh
- push yl
- ldiw z,dpblist*2
- ldi temp2,16
- mul temp,temp2
- add zl,_tmp0
- adc zh,_tmp1
- ldiw y,tmpdpb
-cpydpb_l:
- lpm temp,z+
- st y+,temp
- cpi yl,low(tmpdpb + 15)
- brne cpydpb_l
- pop yl
- pop yh
- pop zl
- pop zh