1
0
Fork 0

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:
ripsaw8080 2015-12-21 17:14:42 +00:00
parent bfd180f5ae
commit dc4aabb403
3 changed files with 7 additions and 5 deletions

View file

@ -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:

View file

@ -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() {

View file

@ -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) {