Solved

Extended filename file operations programming in DOS mode

Posted on 2006-10-24
13
276 Views
Last Modified: 2010-04-16
I want to be able to copy FAT16/FAT32 files created in Win9x after booting to DOS with a DOS boot disk or Console Mode using a Win9x boot disk. This is primarily for upgrading hard drives in Win9x PCs. I think it is possible but not sure what tools to use to create such a program. My efforts so far have resulted in problems like (i) only 8.3 filenames supported, & (ii) program developed in Win9x IDE will not run in DOS mode. Any comments appreciated.
0
Comment
Question by:tkonan
  • 6
  • 5
13 Comments
 
LVL 22

Accepted Solution

by:
cookre earned 250 total points
ID: 17800576
For pure DOS, you'll need 16-bit real-mode code.  There may be others, but the only compiler/linker I know of that's readily available for that is Digital Mars:

http://www.digitalmars.com/

Pay special attention to the 16-bit guidelines:
http://www.digitalmars.com/ctg/win32programming.html#win16
0
 

Author Comment

by:tkonan
ID: 18010106
Yeah thanks for that cookre. Will get to it when i can.
0
 

Author Comment

by:tkonan
ID: 18012369
So are we talking about using the C/C++ or D compiler?

The license agreement says that the C/C++ compiler is 'not designed to operate after December 31, 1999', 'has not undergone testing' and also that 'It may be incomplete and it may not function properly'.

I guess that means i'd better include a verify command in my application.

:/
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 22

Expert Comment

by:cookre
ID: 18012745
My guess is they didn't want to deal with Y2K.
0
 

Author Comment

by:tkonan
ID: 18053238
ok. do you know if it is possible to use msvc++ to create this app?
0
 

Author Comment

by:tkonan
ID: 18053263
version 6 that is
0
 
LVL 22

Expert Comment

by:cookre
ID: 18056080
Alas, the last 16-bit compiler from MS was VC 1.52

Try this one - it claims to generate 16-bit code:
http://www.openwatcom.org/index.php/Main_Page
0
 

Author Comment

by:tkonan
ID: 18058860
i am guessing 'real-mode' means a program that fits into the 640K memory block and therefore would need to specify a compatible memory model. However, when i do this with digital mars C/C++ compiler, the linker tells me a library is missing. Does this mean I would only be able to do it with the full version? could i not just specify the memory model in the ms linker?
0
 
LVL 22

Expert Comment

by:cookre
ID: 18064377
You would normally specify the memory model to the compiler, either with a command line option or a #define.

Unfortunately, it would appear that the documentation is only on the CD version.
0
 
LVL 22

Expert Comment

by:cookre
ID: 18064455
I found this old thread:
http://www.experts-exchange.com/Programming/Q_20666684.html?query=%22digital+mars%22&clearTAFilter=true

compiler option -ml for large memory model, -ms for small.




If you can't get DM working, try DJGPP:
http://www.delorie.com/djgpp/


0
 

Author Comment

by:tkonan
ID: 18084324
i think the memory model also may only be on the cd version
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
In this post we will learn different types of Android Layout and some basics of an Android App.

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question