Skip to content

Commit

Permalink
/ DosDev: supported calling Turbo C under Win64.
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleg-N-Cher committed Nov 9, 2020
1 parent c963bb9 commit 4d05b9c
Show file tree
Hide file tree
Showing 71 changed files with 471 additions and 749 deletions.
2 changes: 1 addition & 1 deletion .gitignore
@@ -1,6 +1,6 @@
Bin/graphviz/
Bin/proguard/
DosDev/Obj/*.OBJ
DosDev/Obj/*.obj
DosDev2/
DroNDK/
DroSDK/
Expand Down
Binary file modified DosDev/ASCII.EXE
Binary file not shown.
13 changes: 13 additions & 0 deletions DosDev/Bin/bu.bat
@@ -0,0 +1,13 @@
@ECHO OFF
CLS
CD Obj
SET PATH=..\BIN\TC201\BIN
SET Lib=..\Lib
SET Mod=%%Mod%%
tcc.exe -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -I..\LIB\C -L..\BIN\TC201\LIB -IOBJ -I%Lib% %Lib%\DOSDEV.LIB %Mod%.c
IF errorlevel 1 PAUSE
IF EXIST %Mod%.exe MOVE %Mod%.exe ..\%Mod%.exe
CLS
..\%Mod%.exe
PAUSE
EXIT
35 changes: 18 additions & 17 deletions DosDev/Bin/build.bat
@@ -1,17 +1,18 @@
@FOR /F "tokens=*" %%f IN (..\Bin\config.cfg) DO %%f
@SET PATH=..\BIN\TC201\BIN
@SET Lib=..\Lib
@SET This=%CD:~-3%
@SET DOSBoxOpt=%DOSBoxOpt:~1,-1%

IF /%DOSBox%==/ GOTO :nodosbox
%DOSBox% %DOSBoxOpt% -c "mount c .." -c "c:" -c "cd %This%" -c "path %PATH%" -c "tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -L..\BIN\TC201\LIB -IOBJ -I%Lib% %Lib%\DOSDEV.LIB %1.c" -c "@IF errorlevel 1 PAUSE" -c "@IF EXIST %1.exe REN %1.exe ..\%1.exe" -c "CLS" -c "@..\%1.exe" -c PAUSE -c EXIT
@EXIT

:nodosbox
tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -L..\BIN\TC201\LIB -IOBJ -I%Lib% %Lib%\DOSDEV.LIB %1.c
@IF errorlevel 1 PAUSE
@IF EXIST %1.exe MOVE %1.exe ..
@CLS
@..\%1.exe
@PAUSE
@ECHO OFF
IF EXIST "%ProgramFiles(x86)%" GOTO vDos

SET PATH=..\BIN\TC201\BIN
SET Lib=..\Lib
tcc.exe -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -L..\BIN\TC201\LIB -IOBJ -I%Lib% %Lib%\DOSDEV.LIB %1.c
IF errorlevel 1 PAUSE
IF EXIST %1.exe MOVE %1.exe ..
CLS
..\%1.exe
PAUSE
EXIT

:vDos

CD ..
SET Mod=%1
START vDosPlus.exe /set frame=on;window=50;autoexec=Bin\bu.bat
9 changes: 9 additions & 0 deletions DosDev/Bin/cc.bat
@@ -0,0 +1,9 @@
@ECHO OFF
CLS
CD Obj
SET PATH=..\BIN\TC201\BIN
SET Lib=..\Lib
SET Mod=%%Mod%%
tcc.exe -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -I..\LIB\C -IOBJ -L..\BIN\TC201\LIB -I%Lib% -c %Mod%.c
IF errorlevel 1 PAUSE
EXIT
27 changes: 14 additions & 13 deletions DosDev/Bin/compile.bat
@@ -1,13 +1,14 @@
@FOR /F "tokens=*" %%f IN (..\Bin\config.cfg) DO %%f
@SET PATH=..\BIN\TC201\BIN
@SET Lib=..\Lib
@SET This=%CD:~-3%
@SET DOSBoxOpt=%DOSBoxOpt:~1,-1%

IF /%DOSBox%==/ GOTO :nodosbox
%DOSBox% %DOSBoxOpt% -c "mount c .." -c "c:" -c "cd %This%" -c "path %PATH%" -c "tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -I%Lib% -c %1.c" -c "@IF errorlevel 1 PAUSE" -c EXIT
@EXIT

:nodosbox
tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -I%Lib% -c %1.c
@IF errorlevel 1 PAUSE
@ECHO OFF
IF EXIST "%ProgramFiles(x86)%" GOTO vDos

SET PATH=..\BIN\TC201\BIN
SET Lib=..\Lib
tcc.exe -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -I%Lib% -c %1.c
@IF errorlevel 1 PAUSE
EXIT

:vDos

CD ..
SET Mod=%1
START vDosPlus.exe /set frame=on;window=50;autoexec=Bin\cc.bat
2 changes: 0 additions & 2 deletions DosDev/Bin/config.cfg

This file was deleted.

Binary file modified DosDev/CMDLNTST.EXE
Binary file not shown.
Binary file modified DosDev/DYNMEM.EXE
Binary file not shown.
12 changes: 12 additions & 0 deletions DosDev/Docu/1.txt
@@ -0,0 +1,12 @@
����������� �������

����������� ������������, ��������� ������ (� ������������ ���������)
����� ������ � ����� ������, ��������� � ��������

PutSpr (x, y: INTEGER; spr: Sprite)

������ �������

������ (� ��������)
������ (� ��������)
������ �������
5 changes: 5 additions & 0 deletions DosDev/Docu/ReadMe.txt
@@ -0,0 +1,5 @@
To launch Turbo C under Win64, just install vDosPlus - www.vdosplus.org

http://vdosplus.org/files/vDosPlus-201708-Ed2018.zip

Add a path to the installed vDosPlus to system variable Path
Binary file modified DosDev/EMPTY.EXE
Binary file not shown.
Binary file modified DosDev/KUBIK.EXE
Binary file not shown.
8 changes: 8 additions & 0 deletions DosDev/Lib/Bin/bu.bat
@@ -0,0 +1,8 @@
@ECHO OFF
CLS
CD Lib\Obj
SET PATH=..\..\BIN\TC201\BIN
SET Mod=%%Mod%%
tcc.exe -1 -O -d -f87 -Z -I..\..\BIN\TC201\INCLUDE -I..\C -I.. -L..\..\BIN\TC201\LIB -c %Mod%
IF errorlevel 1 PAUSE
EXIT
31 changes: 11 additions & 20 deletions DosDev/Lib/Bin/build.bat
@@ -1,22 +1,13 @@
@CD ..
@SET path=..\BIN\TC201\BIN
@SET RootBin=..\..\Bin
@IF EXIST %1.lib DEL %1.lib
@ECHO OFF
CD ..\..
SET PATH=..\BIN\TC201\BIN
SET RootBin=..\..\Bin
IF EXIST %1.lib DEL %1.lib
%RootBin%\smartlib %1.c %1
@FOR %%i IN (%1???.c) DO (
tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -c %%i
@IF errorlevel 1 PAUSE
FOR %%i IN (%1???.c) DO (
SET Mod=%%i
START vDosPlus.exe /set frame=on;window=50;autoexec=Lib\Bin\bu.bat
)
@FOR %%i IN (%1???.o) DO TLIB /C %1 +%%i
@PAUSE
@Bin\clear










FOR %%i IN (%1???.o) DO TLIB /C %1 +%%i
PAUSE
Bin\clear.bat
39 changes: 29 additions & 10 deletions DosDev/Lib/Bin/buildxdv.bat
@@ -1,11 +1,30 @@
@CD ..
@SET path=..\BIN\TC201\BIN
@SET RootBin=..\..\Bin
%RootBin%\smartlib %1.c %2
@FOR %%i IN (%2???.c) DO (
tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -c %%i
@IF errorlevel 1 PAUSE
@ECHO OFF
SET SmartLib=..\..\..\Bin\smartlib.exe
IF EXIST ..\C\%1.c GOTO c_lib

:o_lib

%SmartLib% %1.c %2
GOTO compile

:c_lib

IF EXIST ..\Obj\%1.oh DEL %1.oh
IF EXIST ..\Obj\%1.c DEL %1.c
%SmartLib% ..\C\%1.c %2

:compile

FOR %%i IN (%2???.c) DO (
SET Mod=%%i
CD ..\..
vDosPlus.exe /set frame=on;window=50;autoexec=Lib\Bin\bu.bat
CD Lib\Obj
)
@FOR %%i IN (%2???.OBJ) DO TLIB /C dosdev +%%i
@CALL Bin\clear
@CD OBJ
FOR %%i IN (%2???.OBJ) DO (
SET Mod=%%i
CD ..\..
vDosPlus.exe /set frame=on;window=50;autoexec=Lib\Bin\lib.bat
CD Lib\Obj
)
..\Bin\clear.bat
22 changes: 22 additions & 0 deletions DosDev/Lib/Bin/cc.bat
@@ -0,0 +1,22 @@
@ECHO OFF
CLS
CD Lib\Obj
SET PATH=..\..\BIN\TC201\BIN
SET Mod=%%Mod%%

IF EXIST ..\C\%Mod%.c GOTO c_lib

:o_lib_obj

tcc.exe -1 -O -d -f87 -Z -I..\..\BIN\TC201\INCLUDE -L..\..\BIN\TC201\LIB -I.. -c %Mod%.c
GOTO exit

:c_lib

IF EXIST ..\C\%Mod%.oh DEL %Mod%.oh >NUL
IF EXIST ..\C\%Mod%.c DEL %Mod%.c >NUL
tcc.exe -1 -O -d -f87 -Z -I..\..\BIN\TC201\INCLUDE -I..\C -L..\..\BIN\TC201\LIB -I.. -c ..\C\%Mod%.c

:exit
IF errorlevel 1 PAUSE
EXIT
5 changes: 2 additions & 3 deletions DosDev/Lib/Bin/clear.bat
@@ -1,3 +1,2 @@
@DEL *.OBJ
@DEL *_0??.c
@DEL *.sbm
@DEL *.OBJ >NUL
@DEL *_0??.c >NUL
17 changes: 13 additions & 4 deletions DosDev/Lib/Bin/compile.bat
@@ -1,4 +1,13 @@
@CD ..
@SET path=..\BIN\TC201\BIN
tcc -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -c %1.c
@IF errorlevel 1 PAUSE
@ECHO OFF
IF EXIST "%ProgramFiles(x86)%" GOTO vDos

SET PATH=..\BIN\TC201\BIN
tcc.exe -1 -O -d -f87 -Z -I..\BIN\TC201\INCLUDE -IOBJ -L..\BIN\TC201\LIB -c %1.c
IF errorlevel 1 PAUSE
EXIT

:vDos

CD ..\..
SET Mod=%1
START vDosPlus.exe /set frame=on;window=50;autoexec=Lib\Bin\cc.bat
6 changes: 6 additions & 0 deletions DosDev/Lib/Bin/lib.bat
@@ -0,0 +1,6 @@
@ECHO OFF
CD Lib\Obj
SET PATH=..\..\BIN\TC201\BIN
SET Mod=%%Mod%%
TLIB.exe /C ..\DOSDEV +%Mod%
EXIT
13 changes: 6 additions & 7 deletions DosDev/Lib/C/CmdLine.c
@@ -1,6 +1,5 @@
/* Ofront 1.2 -xtspkae */
#include "SYSTEM.h"
#include "CmdLine.h"
#include "SYSTEM.oh"
#include "CmdLine.oh"

typedef
CHAR (*CmdLine_ArgPtr)[128];
Expand All @@ -11,21 +10,21 @@ typedef
/*typedef
CHAR CmdLine_String[128];*/

export void CmdLine_GetParam (INTEGER n, CHAR *param, LONGINT param__len);
export void CmdLine_GetParam (SHORTINT n, CHAR *param, SHORTINT param__len);

/*================================== Header ==================================*/
export INTEGER CmdLine_paramCount;
export SHORTINT CmdLine_paramCount;

/*--------------------------------- Cut here ---------------------------------*/
#define CmdLine_argc() SYSTEM_argc
#define CmdLine_argv() (long)SYSTEM_argv

void CmdLine_GetParam (INTEGER n, CHAR *param, LONGINT param__len)
void CmdLine_GetParam (SHORTINT n, CHAR *param, SHORTINT param__len)
{
CmdLine_ArgVec av = NIL;
if (n <= CmdLine_paramCount) {
av = (CmdLine_ArgVec)CmdLine_argv();
__COPY(*(*av)[__X(n, 128)], param, param__len);
__COPY(*(*av)[n], param, param__len);
} else {
__COPY("", param, param__len);
}
Expand Down
19 changes: 0 additions & 19 deletions DosDev/Lib/C/CmdLine.h

This file was deleted.

17 changes: 17 additions & 0 deletions DosDev/Lib/C/CmdLine.oh
@@ -0,0 +1,17 @@
#ifndef CmdLine__oh
#define CmdLine__oh

#include "SYSTEM.oh"

typedef
CHAR CmdLine_String[128];


import SHORTINT CmdLine_paramCount;


import void CmdLine_GetParam (SHORTINT n, CHAR *param, SHORTINT param__len);
#define CmdLine__init() { CmdLine_paramCount = SYSTEM_argc - 1; }


#endif

0 comments on commit 4d05b9c

Please sign in to comment.