誰でもわかるVZエディタ  batファイル, makeファイル

祝VZエディタソースコード公開
https://qiita.com/kaizen_nagoya/items/baad23cf4a041ce845a9

祝：ソースコード公開：VZエディタ移植の方法と成果。註釈 coding(123)
https://qiita.com/kaizen_nagoya/items/5551be98dcbed8f41949

オープンソース化されたVZエディタをブラウザ上で動かしてみる
https://qiita.com/Takaraya/items/785ac9319c3934e30703

# Github
vcraftjp/VZEditor
https://github.com/vcraftjp/VZEditor/

誰でもわかるVZエディタ。0から始める。
https://qiita.com/kaizen_nagoya/items/afe6c4cdccbfdd94baab
## SRC
順次、ソースコードの解説、改良点などを追記予定。

source code
https://github.com/vcraftjp/VZEditor/tree/main/SRC

順次、ソースコードの解説、改良点などを追記予定。

.batファイルは、ShellScriptの簡単なもの。
.makファイルは、Makefileの簡単なもの。
.lnkファイルは、LinkScript
.omkは、Optasm用Makefileだったような気がする。

AC.BAT
LK.BAT
MK.BAT
VZ.LNK
VZ.MAK
VZ.OMK

バッチファイル、Makeファイルのソースコードを掲載。
ファイルの最後の制御コードがあっているかどうか不明。
ご存知の方がおみえでしたら、ご教示ください。

## AC.BAT
```bat:ac.bat
echo off
rem	-------	Assemble a source -------
rem		... called by cmos.def [f¥10],[SHIFT]+[f¥10]
rem
rem	%ASM%	:assembler name cap (opt,t,m) ex. set asm=opt
rem	%MASM%	:assemble option (/ml) ex. set masm=/ml

echo ===== %ASM%asm %1 =====
if not "%2"=="" goto asm2
if not "%HARD%"=="" goto asm1d
%ASM%asm %MASM% %1;
goto end

:asm1d
%ASM%asm %MASM% /d%HARD% %1;
goto end

:asm2
if not "%HARD%"=="" goto asm2d
%ASM%asm %MASM% /%2 %1;
goto end

:asm2d
%ASM%asm %MASM% /d%HARD% /%2 %1;
goto end

:end
if errorlevel 1 echo 
```
最終行とその前のecho行のところがESCAPEコードになっている。
元がなんだったか、ご存知の方がおみえでしたらご教示ください。
これであっているのかもってなっている。

## LK.BAT
```bat:lk.bat
echo off
rem	-------	Link VZ, other tools -------
rem	usage: lk [vmap, etc.]
rem
rem	%LNK%	:linker name cap (t, ) ex. set lnk=t

if not "%1"=="" goto link_tool
set LNKFILE=@vz.lnk
set LNKCOM=vz%HARD%
goto start

:link_tool
set LNKFILE=%1
set LNKCOM=%1

:start
if "%LNK%"=="t" goto tlink

:mslink
link /m /noi %LNKFILE%,%LNKCOM%,%LNKCOM%;
exe2bin %LNKCOM%.exe %LNKCOM%.com
del %LNKCOM%.exe
goto done

:tlink
tlink /c /m /t %LNKFILE%,%LNKCOM%,%LNKCOM%;
if errorlevel 1 goto end

:done
if exist %LNKCOM%.sym del %LNKCOM%.sym
dir %LNKCOM%.com

:end
set LNKFILE=
set LNKCOM=

```

## MK.BAT
```bat:mk.bat
echo off
rem	-------	Make vz???.com -------
rem	usage: mk [98,J31,IBM,IBMJ,AX,55,US]
rem	       mk vmap
rem
rem	%ASM%	:assembler name cap (opt,t,m)  ex: set asm=opt

if exist dummy goto init
type nul >dummy

:init
if not "%1"=="" goto init2
if not "%HARD%"=="" goto makevz
goto mk_98

:init2
type nul >dummy
for %%a in (98 j31 J31 ibm IBM ibmj IBMJ ax AX 55 us US) do if "%1"=="%%a" goto mk_%%a
command /c ac %1
lk %1

:mk_98
set HARD=
set masm=/dPC98
goto makevz

:mk_J31
set HARD=J31
set masm=/dJ31
goto makevz

:mk_IBM
set HARD=IBM
set masm=/dIBMV
goto makevz

:mk_IBMJ
set HARD=IBMJ
set masm=/dIBMJ
goto makevz

:mk_AX
set HARD=AX
set masm=/dIBMAX
goto makevz

:mk_55
set HARD=55
set masm=/dJBM
goto makevz

:mk_US
set HARD=US
set masm=/dUS
goto makevz

:makevz
echo ===== Make VZ%HARD% %2 =====
set %ASM%asm=%MASM%
if "%ASM%"=="opt" goto optmake
if "%ASM%"=="t" goto tmake
make vz.mak
goto link

:optmake
optasm @vz.omk
goto link

:tmake
make -fvz.mak
goto link

:link
if errorlevel 1 goto error
lk

:error
echo 

```

## VZ.LNK
```txt:vz.lnk
main+
alias+
char+
core+
disp+
dos+
expr+
filer+
gets+
harderr+
inst+
key+
ledit+
macro+
memo+
menu+
misc+
open+
printf+
scrn+
smooth+
string+
text+
view+
wind+
xscr+
swap+
ems+
msg
```
## VZ.MAK
```make:vz.mak
.asm.obj:
	$(ASM)asm /ml $(MASM) $*;

vz.com: main.obj alias.obj char.obj core.obj disp.obj dos.obj expr.obj\
	filer.obj gets.obj harderr.obj inst.obj key.obj ledit.obj macro.obj\
	memo.obj menu.obj misc.obj open.obj printf.obj scrn.obj smooth.obj\
	string.obj text.obj view.obj wind.obj swap.obj ems.obj xscr.obj msg.obj

main.obj: vz.inc main.asm

alias.obj: vz.inc alias.asm

char.obj: vz.inc char.asm

core.obj: vz.inc core.asm

disp.obj: vz.inc disp.asm

dos.obj: vz.inc dos.asm

expr.obj: vz.inc expr.asm

filer.obj: vz.inc filer.asm

gets.obj: vz.inc gets.asm

harderr.obj: vz.inc harderr.asm

inst.obj: vz.inc inst.asm

key.obj: vz.inc key.asm key98.asm keyibm.asm dummy

ledit.obj: vz.inc ledit.asm

macro.obj: vz.inc macro.asm

memo.obj: vz.inc memo.asm

menu.obj: vz.inc menu.asm

misc.obj: vz.inc misc.asm

open.obj: vz.inc open.asm

printf.obj: sprintf.inc printf.asm

scrn.obj: vz.inc scrn.asm scrn98.asm scrnibm.asm dummy

smooth.obj: vz.inc smooth.asm

string.obj: vz.inc string.asm

text.obj: vz.inc text.asm

view.obj: vz.inc view.asm

wind.obj: vz.inc wind.asm

xscr.obj: vz.inc xscr.asm

swap.obj: vz.inc swap.asm

ems.obj: vz.inc ems.asm

msg.obj: vz.inc msg.asm dummy

```
## VZ.OMK
```make:vz.omk
 main.obj vz.inc main.asm
main /ml;
 alias.obj vz.inc alias.asm
alias /ml;
 char.obj vz.inc char.asm
char /ml;
 core.obj vz.inc core.asm
core /ml;
 disp.obj vz.inc disp.asm
disp /ml;
 dos.obj vz.inc dos.asm
dos /ml;
 expr.obj vz.inc expr.asm
expr /ml;
 filer.obj vz.inc filer.asm
filer /ml;
 gets.obj vz.inc gets.asm
gets /ml;
 harderr.obj vz.inc harderr.asm
harderr /ml;
 inst.obj vz.inc inst.asm
inst /ml;
 key.obj vz.inc key.asm key98.asm keyibm.asm dummy
key /ml;
 ledit.obj vz.inc ledit.asm
ledit /ml;
 macro.obj vz.inc macro.asm
macro /ml;
 memo.obj vz.inc memo.asm
memo /ml;
 menu.obj vz.inc menu.asm
menu /ml;
 misc.obj vz.inc misc.asm
misc /ml;
 open.obj vz.inc open.asm
open /ml;
 printf.obj sprintf.inc printf.asm
printf /ml;
 scrn.obj vz.inc scrn.asm scrn98.asm scrnibm.asm dummy
scrn /ml;
 smooth.obj vz.inc smooth.asm
smooth /ml;
 string.obj vz.inc string.asm
string /ml;
 text.obj vz.inc text.asm
text /ml;
 view.obj vz.inc view.asm
view /ml;
 wind.obj vz.inc wind.asm
wind /ml;
 xscr.obj vz.inc xscr.asm
xscr /ml;
 swap.obj vz.inc swap.asm
swap /ml;
 ems.obj vz.inc ems.asm
ems /ml;
 msg.obj vz.inc msg.asm dummy
msg /ml;
```


# Ref