Laaca

Czech republic, 24.05.2026, 22:14 |
Volkov commander is open sourced (Announce) |
Only rarely I watch the mailing list of FreeDOS because only rarely is there something interresting. But now yes. There is a mention that Volkov commander is open sourced.
==================================
On the FreeDOS Facebook group, someone pointed out that Vsevolod
Volkov has released the Volkov Commander source code under an open
source license. You can download it from Vsevolod's website:
https://vc.vvv.kyiv.ua/…ad/
The source code is here:
https://vc.vvv.kyiv.ua/…rc/
This includes the source code to Volkov Commander 4.05 and Volkov
Commander 4.99.09 alpha.
The license (copied below, from 4.99.09 alpha) is the 2-clause BSD license. --- DOS-u-akbar! |
jadoxa

Queensland, Australia, 25.05.2026, 01:52
@ Laaca
|
Volkov commander is open sourced |
> https://vc.vvv.kyiv.ua/…ad/
https://vc.vvv.kyiv.ua/download/
> https://vc.vvv.kyiv.ua/…rc/
https://vc.vvv.kyiv.ua/download/src/
There's also a GitHub page (found via the Wikipedia entry for VC).
https://github.com/ddanila/vc |
Japheth

Germany (South), 25.05.2026, 16:47
@ jadoxa
|
Volkov commander is open sourced |
> There's also a GitHub page (found via the Wikipedia entry for VC).
>
> https://github.com/ddanila/vc
Cool!
I couldn't resist and adjusted the sources for jwasm/jwlink. Since those tools should run in DOS/Win32/Linux, there's perhaps no need to fiddle with kvikdos/qemu.
The most severe problem that I see is that the overlay binary scratches at the 64 kB dgroup limit - so there's not much space for extensions. --- MS-DOS forever! |
RayeR

CZ, 26.05.2026, 02:38
@ Japheth
|
Volkov commander is open sourced |
> I couldn't resist and adjusted the sources for jwasm/jwlink.
Could you post your build script? Need to modify some source files too? I see original used TASMX... --- DOS gives me freedom to unlimited HW access. |
Japheth

Germany (South), 26.05.2026, 04:44 (edited by Japheth, 26.05.2026, 05:02)
@ RayeR
|
Volkov commander is open sourced |
> Could you post your build script?
It's a simple .BAT:
@echo off
jwasm -nologo -Fl -Sg VCOVL.ASM
IF errorlevel==1 GOTO End
rem \msvc\bin\LINK VCOVL.OBJ, VC.OVL, VCOVL.MAP;
jwlink format dos f VCOVL.OBJ n VC.OVL op q,m=VCOVL.MAP, dosseg
IF errorlevel==1 GOTO End
jwasm -nologo -Fl -Sg VC.ASM
IF errorlevel==1 GOTO End
rem \msvc\bin\LINK /TINY VC.OBJ;
jwlink format dos com f VC.OBJ n VC.COM op q,m=VC.MAP, dosseg
:End
> Need to modify some source files too?
Yes. A long time ago I considered to add a "tasm compatibility switch" to jwasm; finally rejected that idea as not worth it, but it made me aware of the incompatibilities:
1. "uses" clause in tasm may be on a separate line
2. global labels in PROCs don't need a double colon as in Masm
3. size of local arrays is defined differently
4. in Masm, LABEL directive is rejected inside STRUCTs
https://drive.google.com/file/d/1172nbZURX1aAB_e-27d-zcqsnqVzSmjG/view?usp=sharing --- MS-DOS forever! |
RayeR

CZ, 26.05.2026, 17:47
@ Japheth
|
Volkov commander is open sourced |
Thanks, I'm doing something wrong:
VCOVL.ASM(1628) : Error A2235: Constant value too large: FFFFFFFF0000001h
VCOVL.ASM(1681) : Error A2235: Constant value too large: FFFFFFFF0000001h
VCEXTMNU.INC(164) : Error A2235: Constant value too large: FFFFFFFF0000001h
VCEXTMNU.INC(164): Included by
VCOVL.ASM(3190): Main line code
VCARC.INC(1366) : Error A2235: Constant value too large: FFFFFFFF0000001h
VCARC.INC(1366): Included by
VCOVL.ASM(3202): Main line code
maybe coz of running at x64? (JWasm v2.21, Jan 12 2026, win32 version)
it would be nice to have one assembler that understand MASM and TASM syntax (with swithces) as they were most common for old SW... --- DOS gives me freedom to unlimited HW access. |
Japheth

Germany (South), 26.05.2026, 19:27
@ RayeR
|
Volkov commander is open sourced |
> maybe coz of running at x64? (JWasm v2.21, Jan 12 2026, win32 version)
No, the error is due to an incomplete fix in v2.21 - you'll need the binary created from the latest github source (25.5.2026). --- MS-DOS forever! |
RayeR

CZ, 26.05.2026, 20:18
@ Japheth
|
Volkov commander is open sourced |
I rebuilt current jwasm (github master) with mingw32 and now got:
C:\DATA\VC>MAKE.BAT
VCOVL.ASM(1628) : Error A2048: Operands must be the same size: 2 - 4
VCOVL.ASM(1681) : Error A2048: Operands must be the same size: 2 - 4
VCEXTMNU.INC(164) : Error A2048: Operands must be the same size: 2 - 4
VCEXTMNU.INC(164): Included by
VCOVL.ASM(3190): Main line code
VCARC.INC(1366) : Error A2048: Operands must be the same size: 2 - 4
VCARC.INC(1366): Included by
VCOVL.ASM(3202): Main line code
VCOVL.ASM: 3213 lines, 1 passes, 50 ms, 0 warnings, 4 errors
--- DOS gives me freedom to unlimited HW access. |
Japheth

Germany (South), 27.05.2026, 04:09
@ RayeR
|
Volkov commander is open sourced |
> I rebuilt current jwasm (github master) with mingw32 and now got:
>
> C:\DATA\VC>MAKE.BAT
> VCOVL.ASM(1628) : Error A2048: Operands must be the same size: 2 - 4
[snip]
>
Seems you're still using v2.20
Here's what I got cloning jwasm:
xxx@xxx-desktop:~$ git clone https://github.com/Baron-von-Riedesel/JWasm
Cloning into 'JWasm'...
remote: Enumerating objects: 2183, done.
remote: Counting objects: 100% (516/516), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 2183 (delta 387), reused 373 (delta 333), pack-reused 1667 (from 1)
Receiving objects: 100% (2183/2183), 20.10 MiB | 720.00 KiB/s, done.
Resolving deltas: 100% (1500/1500), done.
xxx@xxx-desktop:~$ cd JWasm
xxx@xxx-desktop:~/JWasm$ make -f GccUnix.mak
mkdir -p build/GccUnixR
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/main.o src/main.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/apiemu.o src/apiemu.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/assemble.o src/assemble.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/assume.o src/assume.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/atofloat.o src/atofloat.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/backptch.o src/backptch.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/bin.o src/bin.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/branch.o src/branch.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/cmdline.o src/cmdline.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/codegen.o src/codegen.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/coff.o src/coff.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/condasm.o src/condasm.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/context.o src/context.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/cpumodel.o src/cpumodel.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/data.o src/data.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/dbgcv.o src/dbgcv.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/dbgdw.o src/dbgdw.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/directiv.o src/directiv.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/elf.o src/elf.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/end.o src/end.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/equate.o src/equate.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/errmsg.o src/errmsg.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/expans.o src/expans.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/expreval.o src/expreval.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/extern.o src/extern.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/fastpass.o src/fastpass.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/fixup.o src/fixup.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/fpfixup.o src/fpfixup.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/hll.o src/hll.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/input.o src/input.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/invoke.o src/invoke.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/label.o src/label.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/linnum.o src/linnum.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/listing.o src/listing.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/loop.o src/loop.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/lqueue.o src/lqueue.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/macro.o src/macro.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/mangle.o src/mangle.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/memalloc.o src/memalloc.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/msgtext.o src/msgtext.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/omf.o src/omf.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/omffixup.o src/omffixup.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/omfint.o src/omfint.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/option.o src/option.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/parser.o src/parser.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/posndir.o src/posndir.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/preproc.o src/preproc.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/proc.o src/proc.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/queue.o src/queue.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/reswords.o src/reswords.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/safeseh.o src/safeseh.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/segment.o src/segment.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/simsegm.o src/simsegm.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/string.o src/string.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/symbols.o src/symbols.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/tbyte.o src/tbyte.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/tokenize.o src/tokenize.c
gcc -c -Isrc/H -D__UNIX__ -std=gnu99 -DNDEBUG -O2 -o build/GccUnixR/types.o src/types.c
gcc build/GccUnixR/main.o build/GccUnixR/apiemu.o build/GccUnixR/assemble.o build/GccUnixR/assume.o build/GccUnixR/atofloat.o build/GccUnixR/backptch.o build/GccUnixR/bin.o build/GccUnixR/branch.o build/GccUnixR/cmdline.o build/GccUnixR/codegen.o build/GccUnixR/coff.o build/GccUnixR/condasm.o build/GccUnixR/context.o build/GccUnixR/cpumodel.o build/GccUnixR/data.o build/GccUnixR/dbgcv.o build/GccUnixR/dbgdw.o build/GccUnixR/directiv.o build/GccUnixR/elf.o build/GccUnixR/end.o build/GccUnixR/equate.o build/GccUnixR/errmsg.o build/GccUnixR/expans.o build/GccUnixR/expreval.o build/GccUnixR/extern.o build/GccUnixR/fastpass.o build/GccUnixR/fixup.o build/GccUnixR/fpfixup.o build/GccUnixR/hll.o build/GccUnixR/input.o build/GccUnixR/invoke.o build/GccUnixR/label.o build/GccUnixR/linnum.o build/GccUnixR/listing.o build/GccUnixR/loop.o build/GccUnixR/lqueue.o build/GccUnixR/macro.o build/GccUnixR/mangle.o build/GccUnixR/memalloc.o build/GccUnixR/msgtext.o build/GccUnixR/omf.o build/GccUnixR/omffixup.o build/GccUnixR/omfint.o build/GccUnixR/option.o build/GccUnixR/parser.o build/GccUnixR/posndir.o build/GccUnixR/preproc.o build/GccUnixR/proc.o build/GccUnixR/queue.o build/GccUnixR/reswords.o build/GccUnixR/safeseh.o build/GccUnixR/segment.o build/GccUnixR/simsegm.o build/GccUnixR/string.o build/GccUnixR/symbols.o build/GccUnixR/tbyte.o build/GccUnixR/tokenize.o build/GccUnixR/types.o -s -o build/GccUnixR/jwasm -Wl,-Map,build/GccUnixR/jwasm.map
xxx@xxx-desktop:~/JWasm$ sudo make -f GccUnix.mak install
[sudo] password for xxx:
xxx@xxx-desktop:~/JWasm$ cd /media/xxx/SG2T-P3/Projects/VC/4.99.09j/
xxx@xxx-desktop:/media/xxx/SG2T-P3/Projects/VC/4.99.09j$ jwasm -nologo -Fl -Sg VCOVL.ASM
VCOVL.ASM: 3213 lines, 16 passes, 396 ms, 0 warnings, 0 errors
xxx@xxx-desktop:/media/xxx/SG2T-P3/Projects/VC/4.99.09j$ jwasm -nologo -Fl -Sg VC.ASM
VC.ASM: 3457 lines, 4 passes, 10 ms, 0 warnings, 0 errors
It's interesting that VCOVL.ASM needs 16 passes - very unusual and signals lots of forward references. --- MS-DOS forever! |
RayeR

CZ, 28.05.2026, 00:30
@ Japheth
|
Volkov commander is open sourced |
OK, I downloaded source again and now have built the right version of JWASM. VC compiled fine... --- DOS gives me freedom to unlimited HW access. |
rosegondon
C:\DOS, 29.05.2026, 14:15
@ Japheth
|
Volkov commander is open sourced |
> Seems you're still using v2.20
>
> Here's what I got cloning jwasm:
>
Is there a place, where I can get compiled current jwasm for DOS?
The tantalizing state of having VC source code and not being able to do anything... ;) --- echo g=ffff:0|debug>nul |
Japheth

Germany (South), 30.05.2026, 07:56
@ rosegondon
|
Volkov commander is open sourced |
> Is there a place, where I can get compiled current jwasm for DOS?
Added jwasm & jwlink to the vc package. You'll still have to get hdpmi32.exe. --- MS-DOS forever! |
rosegondon
C:\DOS, 30.05.2026, 10:51
@ Japheth
|
Volkov commander is open sourced |
> > Is there a place, where I can get compiled current jwasm for DOS?
>
> Added jwasm & jwlink to the vc package. You'll still have to get
> hdpmi32.exe.
Thank you, kind sir. --- echo g=ffff:0|debug>nul |
RayeR

CZ, 31.05.2026, 15:50
@ rosegondon
|
Volkov commander is open sourced |
> Is there a place, where I can get compiled current jwasm for DOS?
>
> The tantalizing state of having VC source code and not being able to do
> anything... ;)
I compiled it with DJGPP and mingw32 without problems. If you still needs it I can upload it. --- DOS gives me freedom to unlimited HW access. |