Subversion Repositories MB01 Project

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 - 1
 
2
.IFNDEF		__FAT_INC__
3
__FAT_INC__	.SET	1
4
 
5
	.LIST on
6
 
7
	.INCLUDE INC\LDT.INC
8
 
9
CLSBUF		.EQU	$100	; dma buffer of cluster cache
10
CLSMAXSIZ	.EQU	64	; max. size of cluster in sector's
11
 
12
;---------------------------------------------------------------------------
13
; FAT Working Segment
14
;---------------------------------------------------------------------------
15
 
16
FATSEG		.EQU	$010000
17
FATBNK		.EQU	.SEG.FATSEG	; FAT working bank
18
 
19
FS		.SET	FATSEG
20
FE		.SET	FATSEG + $FFFF
21
FO		.SET	$018C00
22
 
23
_FATS:	.SECTION ref_only, common, offset FO, range FS FE ;FAT Segment
24
_FATS_START	.DS	0
25
 
26
_pbr0		.DS	512
27
_pbr1		.DS	512
28
_pbr2		.DS	512
29
_pbr3		.DS	512
30
 
31
_FATS_END	.DS	0
32
FATSSIZ		.EQU	(_FATS_END - _FATS_START)
33
.ENDS
34
 
35
;---------------------------------------------------------------------------
36
; direct page for LDT tables (P0LDT direct page)
37
;---------------------------------------------------------------------------
38
 
39
_DPLDT:	.SECTION page0, common, ref_only, offset 0	;LDT D.P.
40
 
41
ldt0		.DS	LDTSIZE
42
ldt1		.DS	LDTSIZE
43
ldt2		.DS	LDTSIZE
44
ldt3		.DS	LDTSIZE
45
ldt4		.DS	LDTSIZE
46
ldt5		.DS	LDTSIZE
47
 
48
_DPLDT_END	.DS	0
49
 
50
.ENDS
51
 
52
 
53
;---------------------------------------------------------------------------
54
; FAT var's direct page (P0FAT direct page)
55
;---------------------------------------------------------------------------
56
 
57
_DPFAT:	.SECTION page0, common, ref_only, offset 0	;FAT D.P.
58
 
59
ldtfg1		.DB		; logical volume flag's
60
				; <7>: device ready (fdc drive or ata device)
61
				; <6>: if=1->HD/CF else->FD
62
				; <0>: phisycal device number
63
 
64
ldtfg2		.DB		; <7>: valid volume (fat volume or cbm disk)
65
				; <6>: if=1->FAT else->CBM (FD only)
66
				; <5>: disk format checked
67
				; <1:0>: disk format (fdc only)
68
 
69
ldtroot		.DW		; lba of root dir
70
ldtfat1		.DW		; lba of fat1 table
71
ldtfat2		.DW		; lba of fat2 table
72
ldtcls		.DW		; lba of first data cluster
73
ldtmax		.DW		; max usable cluster + 1
74
ldtrent		.DW		; root dir. max. entries
75
ldtcent		.DW		; max. entries in dir. cluster
76
ldteoc		.DW		; end of cluster chain marker
77
ldtfree		.DW		; count of free cluster's
78
ldtnxt		.DW		; next free cluster
79
ldtfsiz		.DW		; fat table size
80
 
81
ldtcsiz		.DB		; cluster size (1,2,4,8,16,32,64)
82
ldtcshf		.DB		; cluster shift (0,1,2,3,4,5,6)
83
ldtrsiz		.DB		; root dir. size (sector's)
84
ldtmcls		.DB		; mask for clust. module: 00,01,03,07,0F,1F,3F
85
ldtcdlp		.DW		; current working dir list pointer
86
ldtcdcls	.DW		; current working dir start cluster
87
ldtcdlvl	.DB		; current working dir level count
88
 
89
; ---------------------------
90
 
91
curldt		.DB		; pointer to current LDT
92
ldtp		.DS	6	; LDT's pointer
93
defdrv		.DB		; default logical drive
94
curdrv		.DB		; current logical drive
95
 
96
lba		.LWORD		; current lba
97
wseccnt		.DW		; sector count
98
 
99
defhsec		.DB		; default hidden sector's in fdisk
100
pdrive		.DB		; phisycal drive number (temp.)
101
 
102
_fattmp		.DS	48
103
 
104
.ENDS
105
 
106
	.LIST off
107
 
108
.ENDIF