Good news!

My old program can run now on vDOS and DOSBOX. (In addition to pure FreeDOS 

Jos Schaars from the vDOS project gave me an interesting trick: edit manualy 
the temporary dumpfile generated by the program, and making it read-only. I 
discovered being wrong about the relevance of the date style (2-10-98 intead of 
02-10-98 was in fact not detrimental). Instead it was about the position of the 
filename extension. The extension of filenames was moved left by the vDOS's (or 
4DOS's) DIR command when the filename are less than 8 characters long, and the 
program expect them to be written at fixed column positions (cols number 
10-11-12). Knowing this we just have to set alias dir=*dir /j in the 
autoexec.txt of vDOS and the problem is solved. The full discussion can be 
found here:


DOSBOX has a different fatal issue : a comma ',' as thousand separator for 
files size.

It may looks a little bit heavy-metal but quite fine for my actual needs to 
modify and recompile the FreeCom's COMMAND.COM. There is just one line to 
modify in the convert() function of the NUM_FMT.C files:

    Just replace the line:
        temp[30 - c++] = nlsBuf->thousendsSep[0];
        temp[30 - c++] = ' ';

    The following may probably also works because vDOS works with no separator:
        temp[30 - c++] = '';

    And then recompile (ex: build -r xms-swap)

    In a previous post I wrote this changed nothing to the behavior. I was 
wrong... this is because I forgot having a duplicate COMMAND.COM file on the 
system (there is C:\FDOS\BIN\COMMAND.COM in addition to C:\COMMAND.COM, and I 
was not replacing the good one)

After solving the comma issue, I discovered:
  * AM/PM flags not being really detrimental. Sorry for the mislead.
  * The 4 digits year cause a fault requiring a keypress but not a fatal crash 
(better behavior with SET DIRCMD=/-4)

The localcfg program pointed out by Matheuz is nice but it creates a file.sys 
which still need a config.sys country directive in order to be loaded. So I 
think it does not solves the thousendSep or other country issues potentially 
encountered by FreeCOM in the DOSBOX.

I imagine the proof of concept from Eric (CANADA.ASM) has the potential to load 
country settings without config.sys. I let you guys decide I you want to go 
forward that way. I can be no more than a user or a tester because I do not 
have the required developper knowledge.

I did not try EtherDFS but it's good to know it's existence.

Regards, Denis

    Le lundi 20 février 2017 2h02, Mateusz Viste <> a 
écrit :

 Instead of filling out a binary country.sys by hand, you might want to 
use localcfg.exe - much more reliable. It will produce a country.sys file 
with all the parameters you wish.

Of course, all this is pointless if your program won't listen to country 
preferences anyway.


On Sun, 19 Feb 2017 22:57:47 +0000, Denis St-Lau wrote:
> Hi everyone,
> vDOS is very nice. Unfortunately also blocked with Dir-command related
> issues with my program (file dates in style 2-10-98 intead of 02-10-98).
> I posted a topic on their site. I also found they not support
> modification of the global Country setting (locked to 1).
> About VMWARE and VMSMOUNT. I think it's nearly equivalent to what we
> have at work with Microsoft VirtualPC. I didn't try sendkeys automation
> through this heavier layer but I will give it a try if I cannot use vDOS
> and DOSBOX.
> Eric, I found you are author of MODE.COM !! To set the codepage I added
> this in my autoexec.bat:
>        DISPLAY CON=(ega,863,)
>        MODE CON CODEPAGE PREPARE=((863) %dosdir%\cpi\ega9.cpx)
> I don't know how far I can follow you in the TSR trail to get country
> informations but I'm interested to learn at least up to the next
> obstacle :-) I filled the table you showed to me, if it's not taking too
> much of your time:
>> Offset  Size    Description     (Table 01399)
>>  00h    WORD    date format [2 Y-M-D]
>>  02h  5 BYTEs   ASCIZ currency symbol string ['$'.. so I imagine it is
>>  24h, 00h ?] 07h  2 BYTEs   ASCIZ thousands separator [you want this
>>  to be 20h, 00h...Yes]
>>  09h  2 BYTEs   ASCIZ decimal separator ['.' = 2E, 00h ?]
>>  0Bh  2 BYTEs   ASCIZ date separator ['-' = 2D, 00h ?]
>>  0Dh  2 BYTEs   ASCIZ time separator [':' = 3A, 00h ?]
>>  0Fh    BYTE    currency format [not relevant for you? probably not,
>>  answers bellow]
>>                 bit 2 = set if currency symbol replaces
>>                 decimal point
>                           [I would say No, do
>                           not replaces decimal
>                           point]
>>                 bit 1 = number of spaces between value
>>                 and currency symbol
>                           [I would guess 1
>                           space]
>>                 bit 0 = 0 if currency symbol precedes
>>                 value
>>                         1 if currency symbol
>>                         follows value
>                           [Not sure but I would
>                           guess bit 0 =1]
>>  10h    BYTE    number of digits after decimal in currency
>                   [not relevant? maybe not but I would
>                   say 2 digits]
>>  11h    BYTE    time format [you say you want 24h time, so make this
>>  1--Yes]
>>                 bit 0 = 0 if 12-hour clock
>>                         1 if 24-hour clock
>>  12h    DWORD   address of case map routine [could point to RETF
>>  opcode]
>>                 (FAR CALL, AL = character to map to
>>                 upper case [>= 80h])
>>  16h  2 BYTEs   ASCIZ data-list separator [not relevant? who uses
>>  this?]
>>  18h 10 BYTEs   reserved [so not relevant for you by definition...]
> To answer your question about our old MS-DOS program: We have used it in
> MS-DOS and winXP-win32 console only. It is described at
> <>. There is not so many users since it is
> addressed to a very specialized domain. Only the newer Windows version
> is supported by the maker.
> Thanks, Denis
>    Le Dimanche 19 février 2017 8h39, Ulrich Hansen
>    <> a écrit :
> Am 18.02.2017 um 23:22 schrieb Denis St-Lau <>:
> Without the DOSBOX kernel, we don't have the "mount" command and we
> constantly have to mount/unmount the DOS disk image from the GNU/Linux
> or Windows host (or use FTP networking) to exchange data. This is
> tedious and the disk image gets corrupted if simultaneously mounted or
> written on by the Host and the DOS.
> Yes, you are completely right about that.
> But please take a look at a new project: „EtherDFS“ by Mateusz
> Viste. If your host is running GNU/Linux,
> you can start EtherSRV on the host and EtherDFS on your DOS guest.
> On the host go to the directory, that EtherSRV is mounting. Share it
> with Samba to your Windows clients.
> That’s it. You have now what everybody wants: A network disk in FreeDOS,
> shared with everybody in your LAN, and still 618 K conventional memory
> free.
> The only downsides, as I see it:- At the moment EtherSRV will change
> timestamps of received files to the actual date and time.- On VirtualBox
> a guest with EtherDFS can not reach (yet) an EtherSRV running on a
> machine outside the host.- EtherSRV is running on GNU/Linux only.

Check out the vibrant tech community on one of the world's most
engaging tech sites,!
Freedos-devel mailing list

Check out the vibrant tech community on one of the world's most
engaging tech sites,!
Freedos-devel mailing list

Reply via email to