VOGONS


FTP4DOS – A dual-panel FTP client for MS-DOS

Topic actions

Reply 60 of 102, by Projanglez

User metadata
Rank Newbie
Rank
Newbie

FTP4DOS v0.9.5a released

Still enough time for a small maintenance update, before my plane takes off:
https://github.com/Projanglez/FTP4DOS/releases/tag/v0.9.5a

Changes

  • Downloading files with multi-dot / long names (e.g. apack-1.00.zip) no longer fails. The local target is now mapped to a valid DOS 8.3 name (e.g. APACK-1~1.ZIP) instead of failing to create the file. Applies to both the F5 single-file download and batch copy.
  • Ctrl+C now works as a shortcut for "compare panels" (the numpad + action).
  • Date and Time sorting merged into one "Date/Time" criterion.

Once again, thanks for using and testing FTP4DOS!

Reply 61 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t
Projanglez wrote on 2026-06-26, 08:42:
Grzyb wrote on 2026-06-25, 20:25:

Oh, and I've found that "Compare directories" is under Gray+ , which is a serious discrepancy from other NC-alikes.
No shortcut in the original NC, but it's Ctrl-C in Volkov Commander.

Pretty sure it's numpad-+ also in original nc, but let me check that again.

Numpad+ a.k.a. Gray+ is for selecting files according to a mask.
It's been like this for 40 years - it's already there in the NC 1.00 from 1986, and it's there in pretty much every NC-clone.
It's very confusing to suddenly find under such an important key a completely different function...

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 62 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t

Looks like FTP4DOS can overcome a poor-quality packet driver - Re: Quality of packet drivers: Intel

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 63 of 102, by ntalaec

User metadata
Rank Member
Rank
Member
Grzyb wrote on 2026-06-27, 01:34:

Looks like FTP4DOS can overcome a poor-quality packet driver - Re: Quality of packet drivers: Intel

My case is the opposite. Using mFTP I'm able to download at 200 KB/s but with FTP4DOS my speed is 10 KB/s. Same FTP site, same file.
My network chip is an Atheros AR8132. It's possible to get more speed with FTP4DOS?

Reply 64 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t
ntalaec wrote on 2026-06-27, 10:20:

My case is the opposite. Using mFTP I'm able to download at 200 KB/s but with FTP4DOS my speed is 10 KB/s. Same FTP site, same file.
My network chip is an Atheros AR8132. It's possible to get more speed with FTP4DOS?

Well, I would suggest replacing the PD with NDIS+DIS_PKT or ODI+ODIPKT, but for such a modern chip it may be impossible to find *any* good driver for DOS...

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 65 of 102, by ntalaec

User metadata
Rank Member
Rank
Member

There is an ODI driver for my chip but it uses a lot of conventional memory, which makes it unusable.

Reply 66 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t
ntalaec wrote on 2026-06-27, 10:20:

My case is the opposite. Using mFTP I'm able to download at 200 KB/s but with FTP4DOS my speed is 10 KB/s. Same FTP site, same file.
My network chip is an Atheros AR8132. It's possible to get more speed with FTP4DOS?

I can't help about FTP4DOS, but it may be possible to improve the speed in mTCP FTP client...
See the conclusions at the end of this thread - Quality of packet drivers: Intel

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 67 of 102, by fly_indiz

User metadata
Rank Newbie
Rank
Newbie

It would be great if you could implement Unicode support for file names in FTP, converting them to the current DOS code page for correct display in panels and saving files to your computer non-latin filenames.
It would also be great if you could convert the current code page to Unicode when uploading files from your computer to FTP.
A similar open-source FTP2P program already has this functionality.

Reply 68 of 102, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie
Grzyb wrote on 2026-06-29, 19:45:
ntalaec wrote on 2026-06-27, 10:20:

My case is the opposite. Using mFTP I'm able to download at 200 KB/s but with FTP4DOS my speed is 10 KB/s. Same FTP site, same file.
My network chip is an Atheros AR8132. It's possible to get more speed with FTP4DOS?

I can't help about FTP4DOS, but it may be possible to improve the speed in mTCP FTP client...
See the conclusions at the end of this thread - Quality of packet drivers: Intel

For those of you who want the quick answer, the buffer sizes chosen for the TCP receive buffer and the file write buffer can have a much larger impact on faster machines. If you have a faster machine (Pentium or better) you might want to run some experiments to see if you can get faster performance by changing two values in the mTCP configuration file.

Reply 69 of 102, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

@Projanglez

Instead of copying all of mTCP into your project, I've uploaded mTCP to github: https://github.com/mbbrutman/mTCP.git

It's probably better to reference that as a dependency or fork it and add your files to the fork. That way you can see when mTCP changes and update accordingly.

Reply 70 of 102, by ntalaec

User metadata
Rank Member
Rank
Member
mbbrutman wrote on 2026-06-29, 20:50:

For those of you who want the quick answer, the buffer sizes chosen for the TCP receive buffer and the file write buffer can have a much larger impact on faster machines. If you have a faster machine (Pentium or better) you might want to run some experiments to see if you can get faster performance by changing two values in the mTCP configuration file.

I'm using the same configuration file for FTP4DOS, FTP utility from MTCP and Links web browser:
MTCP.CFG

DHCPVER DHCP Client version Jan 10 2025
TIMESTAMP ( 1760930237 ) Sun Oct 19 23:17:17 2025

# This is a sample mTCP configuration file. These lines are comments.
# Uncomment options that you want to turn use.
#
# Please read the PDF documentation for the full details on how to
# use this file.


# Settings for my machine
#
# Be sure to load your packet driver first. My packet driver lives
# at software interupt 0x60.
#
packetint 0x60


# Standard MTU is 576 and should be safe for any Ethernet.
# MTU for SLIP and PPP might be even smaller. 1500 is the max
# and works well for LANs and broadband access. Uncomment this
# if you can and get better performance.
#
mtu 1500


# Be sure to pick a good hostname!
hostname MyDOSMachine


# IRCjr options. The first three are required and the rest are optional.
#
ircjr_nick Zoidberg
ircjr_user JZoidberg
ircjr_name John F Zoidberg

#ircjr_pass secretGoesHere
#ircjr_connect_timeout 45
#ircjr_register_timeout 60
#ircjr_backscroll 300
#ircjr_backscroll_chat 75
#ircjr_backscroll_server 100
#ircjr_color_scheme cga_mono
#ircjr_timestamps on
#ircjr_logging_default on
#ircjr_log_dir e:\data\irclogs\
#ircjr_nick_updates server
#ircjr_quit_updates server


# FTP options to play with
#
ftp_connect_timeout 10
#
#Set these for even better performance
#
ftp_tcp_buffer 16384
ftp_file_buffer 32768
#
#
Show last 51 lines
#Set this if you are doing mget and mput with lots of files
#
#ftp_mlist_buffer 8192


# Telnet options
#
#telnet_virtbuffer_pages 8
#telnet_connect_timeout 20
#telnet_autowrap 1
#telnet_sendbsasdel 1
#telnet_termtype pcansi
#telnet_send_newline auto


# FTP Server parms
#
# Required parameters
#
#ftpsrv_password_file c:\ftppass.txt
#
#
# Optional parameters
#
#ftpsrv_log_file c:\ftpsrv.log
#ftpsrv_motd_file c:\ftpmotd.txt
#ftpsrv_session_timeout 120
#ftpsrv_ext_ipaddr some.ip.addr.here
#ftpsrv_control_port 21
#ftpsrv_pasv_base 2048
#ftpsrv_pasv_ports 1024
#ftpsrv_clients 10
#ftpsrv_filebuffer_size 16
#ftpsrv_tcpbuffer_size 16
#ftpsrv_packets_per_poll 2
#ftpsrv_exclude_drives AB



# DHCP generated settings will appear here. If you are using DHCP
# then these will be updated automatically by the DHCP client (dhcp.exe).
# You can use the same lines to do a STATIC network setup; just alter
# them and don't run the DHCP client
#
#LEASE_TIME 3600
IPADDR 192.168.1.102
NETMASK 255.255.255.0
GATEWAY 192.168.1.1
NAMESERVER 192.168.1.1
#LEASE_TIME 3600

My speeds are:
FTP4DOS 10 KB/s, FTP from MTCP 200 KB/s, Links web browser 40 KB/s. With Total Commander in Windows 3.1 and using Trumpet Winsock I get around 20 KB/s.
Maybe could be something CPU related? With FTP4DOS the CPU fan spins at max speed when I start downloading. With the FTP utility from MTCP the fan spins at normal speed during download.

My computer is an Intel Atom N280, 1 GB of RAM and Atheros AR8132. I'm using MS-DOS 6.22.

Reply 71 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t
ntalaec wrote on 2026-06-30, 10:20:

ftp_file_buffer 32768

Looks wrong to me - for my Pentium III 800, the optimal setting is:
FTP_FILE_BUFFER 2048

But you may need to do your own experiments to find the optimal values of FTP_TCP_BUFFER and FTP_FILE_BUFFER for your hardware.

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 72 of 102, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

On an older system with a slower disk the larger ftp_file_buffer size is a good thing, as disk writes are relatively expensive on older machines.

FTP4DOS hard coded those configuration settings, so you are stuck with that speed until something gets changed in the program. (The current code is probably doing 1400 byte writes and at most it can write 4KB.)

Reply 73 of 102, by Falcosoft

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2026-06-30, 11:21:
Looks wrong to me - for my Pentium III 800, the optimal setting is: FTP_FILE_BUFFER 2048 […]
Show full quote
ntalaec wrote on 2026-06-30, 10:20:

ftp_file_buffer 32768

Looks wrong to me - for my Pentium III 800, the optimal setting is:
FTP_FILE_BUFFER 2048

But you may need to do your own experiments to find the optimal values of FTP_TCP_BUFFER and FTP_FILE_BUFFER for your hardware.

I have tested this on an even newer PC (i7-4770K + integrated Intel I217-V + Sandisk SSD) and with FTP_FILE_BUFFER 2048 and default FTP_TCP_BUFFER I got 980 KB/sec with a 30 MB copy. When I changed FTP_FILE_BUFFER to 32768 and FTP_TCP_BUFFER to 16384 I got 2800 KB/sec. Both cases were tested with FTP2P.
So it seems this is not simply as slower PC/faster PC difference and it is not true that smaller FTP_FILE_BUFFER sizes are always better on faster PC.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 74 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t
Falcosoft wrote on 2026-06-30, 16:27:

i7-4770K + integrated Intel I217-V

Can you also measure the speed of downloading a large file to NUL, using the CLI FTP client?
Are you using native PD, or NDIS/ODI with some shim?

Anyway, it seems that big speed difference between download to NUL and to disk asks for experiments to find the optimal combination of FTP_TCP_BUFFER and FTP_FILE_BUFFER.

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 75 of 102, by Falcosoft

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2026-06-30, 17:30:
Can you also measure the speed of downloading a large file to NUL, using the CLI FTP client? Are you using native PD, or NDIS/OD […]
Show full quote
Falcosoft wrote on 2026-06-30, 16:27:

i7-4770K + integrated Intel I217-V

Can you also measure the speed of downloading a large file to NUL, using the CLI FTP client?
Are you using native PD, or NDIS/ODI with some shim?

Anyway, it seems that big speed difference between download to NUL and to disk asks for experiments to find the optimal combination of FTP_TCP_BUFFER and FTP_FILE_BUFFER.

It's rather counterintuitive but downloading to NUL, or to a RAMDRIVE results in almost exactly the same results (a few KB/sec faster but within 5%). So it seems the bottleneck in my case is not the storage system.
I use the NDIS2 driver e1000.dos with dis_pkt.dos. I have not found working native packet driver for this integrated NIC.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 76 of 102, by Grzyb

User metadata
Rank l33t
Rank
l33t
Falcosoft wrote on 2026-06-30, 17:37:

It's rather counterintuitive but downloading to NUL, or to a RAMDRIVE results in almost exactly the same results (a few KB/sec faster but within 5%). So it seems the bottleneck in my case is not the storage system.
I use the NDIS2 driver e1000.dos with dis_pkt.dos. I have not found working native packet driver for this integrated NIC.

Looks like we can safely blame it on poor quality of the driver, common for DOS drivers for such a new hardware.

In 2003, I voted in favour of joining the European Union. However, due to later developments - especially the restrictions on cash usage - I have withdrawn my support. DOWN WITH THE EU!

Reply 77 of 102, by Projanglez

User metadata
Rank Newbie
Rank
Newbie

FTP4DOS v0.9.6 released — Once more, thanks to everyone for your feedback!

Download v0.9.6

Faster transfers + tunable buffers
@mbbrutman: You're right: FTP4DOS was doing small per-packet disk writes (~1.4 KB each). Downloads now collect data in a dedicated file buffer and write to disk in large blocks, and both sizes are configurable in your mTCP configuration file — same idea as in the mTCP FTP client:

FTP4DOS_TCP_BUFFER 16384     (512-16384, default 16384)
FTP4DOS_FILE_BUFFER 32768 (512-32768, default 8192)

The mTCP FTP client's FTP_TCP_BUFFER / FTP_FILE_BUFFER are read as fallbacks, so if you already tuned your MTCP.CFG (TCP_BUFFER, FILE_BUFFER without the FTP4DOS prefix), it just works in FTP4DOS too. This is advanced stuff and totally optional — the defaults are fine out of the box. But @ntalaec, I'd be curious whether this fixes the 10 KB/s you were seeing on the AR8132.

UTF-8 file names (@fly_indiz)
File names from modern servers (RFC 2640) are now converted to the active DOS codepage (CP437, CP850/858, CP866 — override with FTP4DOS_CODEPAGE) for the panel display and for local file names. Uploads to servers that announce UTF8 in FEAT are encoded back to UTF-8 (OPTS UTF8 ON). Tested with umlauts and Cyrillic names against pyftpdlib.

Long file names (LFN) in the local panel
On systems with an LFN API (Windows 9x DOS, MS-DOS 7.x, or DOSLFN on plain DOS) the local panel now lists and handles long names natively.

mTCP as a git submodule
@mbbrutman: done — the project now references your official GitHub repo as a submodule, pinned to the 2025-01-10 release tag, instead of carrying an unpacked source zip. Thanks for putting it up!

As always: GPLv3, source on GitHub, the release includes the exact mTCP sources as a separate zip.

Reply 78 of 102, by fly_indiz

User metadata
Rank Newbie
Rank
Newbie
Projanglez wrote on 2026-07-09, 23:15:

UTF-8 file names (@fly_indiz)
File names from modern servers (RFC 2640) are now converted to the active DOS codepage (CP437, CP850/858, CP866 — override with FTP4DOS_CODEPAGE) for the panel display and for local file names. Uploads to servers that announce UTF8 in FEAT are encoded back to UTF-8 (OPTS UTF8 ON). Tested with umlauts and Cyrillic names against pyftpdlib.

This is amazing!
Localized names in the file and folder lists in the panel are now displayed correctly!
But if you open a folder with a localized name, the path to the folder you're in is shown at the top of the panel, and the name is displayed incorrectly.

Projanglez wrote on 2026-07-09, 23:15:

Long file names (LFN) in the local panel
On systems with an LFN API (Windows 9x DOS, MS-DOS 7.x, or DOSLFN on plain DOS) the local panel now lists and handles long names natively.

My system: DOS 7.1 with DOSLFN 4.2
Dos Navigador - correct displayed LFN, but FTP4DOS 0.9.6 no 🙁

Reply 79 of 102, by fly_indiz

User metadata
Rank Newbie
Rank
Newbie

Is it possible to add support for the TCPIP stack from MS Network Client 3.0 to the program in addition to mTCP support?