diff --git a/include/dos_inc.h b/include/dos_inc.h index 070bb3b2..1919684a 100644 --- a/include/dos_inc.h +++ b/include/dos_inc.h @@ -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: diff --git a/src/dos/dos_classes.cpp b/src/dos/dos_classes.cpp index 27658b42..ac2d622d 100644 --- a/src/dos/dos_classes.cpp +++ b/src/dos/dos_classes.cpp @@ -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() { diff --git a/src/dos/dos_files.cpp b/src/dos/dos_files.cpp index 3cdac4bf..614cdb90 100644 --- a/src/dos/dos_files.cpp +++ b/src/dos/dos_files.cpp @@ -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) {