flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > fat12 root directory |
Author |
|
revolution 23 Jul 2008, 04:55
This is from the dim dark recesses of my memory, so some information following my be incorrect ...
Each entry in the directory has a "attributes" byte (offset 0x0B). The bits inside the attributes byte give information like hidden/system/archive/read only/directory/volume label. So what you need to do is check if the volume flag (bit 3) is set. Try this: Code: ... @loop: test byte[di+0x0b],1 shl 3 ;is it a volume label? jnz del mov al,[di+bx] ... Last edited by revolution on 23 Jul 2008, 04:58; edited 1 time in total |
|||
23 Jul 2008, 04:55 |
|
DOS386 23 Jul 2008, 04:56
abuashraf wrote: my proplem is that my programe also prints the volume name of the floppy,so can you help me not to print the volume name. Check the attrib's, b3 = 8 is V - so ban entries having this bit set EDIT : too late |
|||
23 Jul 2008, 04:56 |
|
abuashraf 23 Jul 2008, 05:25
it's working perfectly,thank you revolution,
but would you please give some explain about the formula Code: test byte[di+0x0b],1 shl 3 because I didn't understand it |
|||
23 Jul 2008, 05:25 |
|
DOS386 23 Jul 2008, 05:31
> would you please give some explain about the formula
> byte[di+0x0b],1 shl 3 1 shl 3 is 8 see my post above 0x0b or $0B or decimal 11 is the name length (8+3) and just after it the attrib byte is sitting |
|||
23 Jul 2008, 05:31 |
|
neville 25 Jul 2008, 04:08
What happened to the rest of our posts here ?
|
|||
25 Jul 2008, 04:08 |
|
LocoDelAssembly 25 Jul 2008, 04:20
|
|||
25 Jul 2008, 04:20 |
|
neville 25 Jul 2008, 04:48
oh i see, you split it. How do you find such splits without a link as above?
|
|||
25 Jul 2008, 04:48 |
|
abuashraf 25 Jul 2008, 05:01
Now I'm trying to read the contents of the first sector of the root directory,
but without using an array,so I'm just trying to load the contents into some place in memory,but the problem is when I try to read from that place I get random stuff,and garbage data,here's my new code: Code: start: push cs ; Push CS on stack pop ds ; Move CS into DS push ds ; Push DS pop es ; Move DS into ES mov [count],3 ;try three times mov bx,0x200 ;here was the old buffer . . . printbuffer: xor ax,ax mov bx,ax mov dx,ax mov si,ax mov di,ax mov di,0x200 . . so,what should I do to fix this? Thanx. |
|||
25 Jul 2008, 05:01 |
|
edfed 25 Jul 2008, 20:10
look at this maybe it can help you a bit...
|
|||
25 Jul 2008, 20:10 |
|
abuashraf 26 Jul 2008, 05:39
I used the combination
Code: [es:0x200] and it's working now. Thanx. |
|||
26 Jul 2008, 05:39 |
|
rugxulo 27 Jul 2008, 02:55
There's another such example of similar thing here (see VFAT.ASM).
|
|||
27 Jul 2008, 02:55 |
|
edfed 27 Jul 2008, 09:52
have anyone tried to make it for fat32 LFN?
as it is free in europe to make so... |
|||
27 Jul 2008, 09:52 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.