Correct some offsets in the DTA for FCB-based search results. Fixes DIR listing in COMMAND.COM from MS-DOS and file info in XTree Gold.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3955
This commit is contained in:
parent
bfd180f5ae
commit
dc4aabb403
3 changed files with 7 additions and 5 deletions
|
@ -507,7 +507,7 @@ public:
|
|||
bool Extended(void);
|
||||
void GetAttr(Bit8u & attr);
|
||||
void SetAttr(Bit8u attr);
|
||||
void SetResultAttr(Bit8u attr);
|
||||
void SetResult(Bit32u size,Bit16u date,Bit16u time,Bit8u attr);
|
||||
bool Valid(void);
|
||||
void ClearBlockRecsize(void);
|
||||
private:
|
||||
|
|
|
@ -498,8 +498,11 @@ void DOS_FCB::SetAttr(Bit8u attr) {
|
|||
if(extended) mem_writeb(pt - 1,attr);
|
||||
}
|
||||
|
||||
void DOS_FCB::SetResultAttr(Bit8u attr) {
|
||||
mem_writeb(pt + 12,attr);
|
||||
void DOS_FCB::SetResult(Bit32u size,Bit16u date,Bit16u time,Bit8u attr) {
|
||||
mem_writed(pt + 0x1d,size);
|
||||
mem_writew(pt + 0x19,date);
|
||||
mem_writew(pt + 0x17,time);
|
||||
mem_writeb(pt + 0x0c,attr);
|
||||
}
|
||||
|
||||
void DOS_SDA::Init() {
|
||||
|
|
|
@ -949,8 +949,7 @@ static void SaveFindResult(DOS_FCB & find_fcb) {
|
|||
fcb.Create(find_fcb.Extended());
|
||||
fcb.SetName(drive,file_name,ext);
|
||||
fcb.SetAttr(find_attr); /* Only adds attribute if fcb is extended */
|
||||
fcb.SetResultAttr(attr);
|
||||
fcb.SetSizeDateTime(size,date,time);
|
||||
fcb.SetResult(size,date,time,attr);
|
||||
}
|
||||
|
||||
bool DOS_FCBCreate(Bit16u seg,Bit16u offset) {
|
||||
|
|
Loading…
Add table
Reference in a new issue