home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 July
/
VPR9707B.ISO
/
DRIVER
/
IODATA
/
B64P101
/
DISK.EXE
/
REMOSERV
/
98
/
INSP.SUP
< prev
next >
Wrap
Text File
|
1996-12-16
|
21KB
|
757 lines
#
# MAOIX
# INS-B64/PCI (PC9821) iスクリプト
# 宣言子
.title = "INS-B64/PCI (9821シリーズ)ハードディスクインストール (Ver1.00)";
.maker = "(株)アイ・オー・データ機器";
.sname = "INS-B64/PCI";
.usedir = "DDEV\\B64P";
.files = 21;
.buffers = 20;
.mount = "DDEV";
.mmspace = 0;
.mpspace = 0;
.mespace = 0;
.mbspace = 0;
.jfepinc = "";
.jfep = "";
#
# インストール開始
#
START:
# **************************** デフォルト値 ************************
%max = maxdrive(); $max = drvname(%max); $lim = "(A~"~drvname(%max)~")";
%sub = %max; %cunt = 1; %fd=0; %hd=0; %ram=0;
while(%sub > 0 ) {
%drv = isdrive(%cunt);
switch(%drv){
case 1: ; if(%fd==1){
break;
}else{
%fd = %fd+1; %fdrv=%cunt; break;
}
case 2: ; if(%hd==1){
break;
}else{
%hd = %hd+1; %hdrv=%cunt; break;
}
case 3: ; if(%ram==1){
break;
}else{
%ram = %ram+1; break;
}
}
%cunt = %cunt + 1; %sub = %sub - 1;
}
cls();
%sdrv = %fdrv; $sdrv = drvname(%sdrv)~":";
%ddrv = %hdrv; $ddrv = drvname(%ddrv)~":";
locate(15,2); print("");
locate(15,3); print(" INS-B64/PCI ハードディスク・インストール ");
locate(15,4); print("");
locate(1,6); print("");
locate(1,7); print("INS-B64/PCIのマスタディスク"); locate(40,7); print($sdrv);
locate(1,9); print("インストール先ハードディスク"); locate(40,9); print($ddrv);
locate(1,11); print("起動するドライブ名"); locate(40,11); print($ddrv);
locate(1,12); print("");
# *********************** ドライブの種類検索 ***********************
%abc = 18;
%sub = %max; %cunt = 1; %x = 43; %y = 43; %z = 43;%mhd = 0;
locate(1,16); print("***************************ドライブインフォメーション***************************");
if(%hd==0){
locate(%y, %abc); print("接続されていません.");
}
if(%ram==0){
locate(%z, %abc+4); print("設定されていません.");
}
locate(20, %abc+2);print("フロッピィディスクは");
locate(20, %abc);print("ハードディスクは");
locate(20, %abc+4);print("仮想ドライブは");
while(%sub > 0 ) {
$ddrv = drvname(%cunt)~":";
%drv = isdrive(%cunt);
switch(%drv){
case 1: ; locate(%x, %abc+2);print($ddrv);
%x = %x + 3; break;
case 2: ; locate(%y, %abc);print($ddrv);
%y = %y + 3; %mhd = %mhd + 1;break;
case 3: ; locate(%z, %abc+4);print($ddrv);
%z = %z + 3; break;
}
%cunt = %cunt + 1; %sub = %sub - 1;
}
# ************************ インストール情報の質問 ******************
QUES:
clrline(13); clrline(14);
locate(1, 14); print("INS-B64/PCIのマスタディスクが入ったドライブを指定してください."~$lim);
%sdrv = qesdrive(%max,%sdrv); $sdrv = drvname(%sdrv)~":";
locate(40, 7); print($sdrv);
clrline(13); clrline(14);
locate(5, 14); print("インストール先ハードディスクのドライブを指定してください."~$lim);
%ddrv = qesdrive(%max,%ddrv); $ddrv = drvname(%ddrv)~":";
locate(40, 9); print($ddrv); .maoix = %ddrv;
clrline(13); clrline(14);
locate(17, 14); print("起動するドライブ名を指定してください.");
locate(55, 14); print("(A~"~drvname(%max)~")");
%drv_b = qesdrive(%max,%ddrv); $drv_b = drvname(%drv_b)~":";
locate(40, 11); print($drv_b);
clrline(13); clrline(14); clrline(15);
locate(15, 14); print("上記の設定でインストールしますか?(Y/N)");
clrkey();
%r1 = qesyorn(1);
if( %r1 != 1 ) goto QUES;
# ***************** ハードディスクの容量チェック **********************
# ドライブの空きをチェック
%free = diskfree(%ddrv);
%cls_size = clstsize(%ddrv);
%free = %cls_size * %free;
if( %free < 1000000 ){
$err = "ディスクの空き領域が少ないのでインストールできません.";
goto ERROR_2;
}
# ************************ システムの有無 **************************
# MSDOS.SYS IO.SYS COMMAND.COMの判別
CHECK_DOS:
%ans = isfile($drv_b~"\\MSDOS.SYS");
if(%ans != 0) {
%ans = isfile($drv_b~"\\IO.SYS");
}
if (%ans != 0) {
%ans = isfile($drv_b~"\\COMMAND.COM");
}
if (%ans == 0) {
%ans = isfile($drv_b~"\\IBMDOS.COM");
if (%ans != 0) {
%ans = isfile($drv_b~"\\IBMBIO.COM");
}
if (%ans != 0) {
%ans = isfile($drv_b~"\\COMMAND.COM");
}
}
if (%ans == 0) {
cls();
locate(15, 11);
print("起動時ドライブ"~$drv_b~"にはシステムが存在しません.\n");
locate(15, 12);
print("起動時ドライブを変更してください.");
locate(25, 14);
print("変更する[Y/N]?");
clrkey();
%ans = qesyorn(1);
if (%ans == 1) {
goto START;
}else{
$err = "起動時ドライブにシステムを入れてください.";
goto ERROR_2;
}
}
# ************************* BAT & SYSの有無 ************************
#CHK_BAT&SYS
$a_bat = $drv_b~"\\AUTOEXEC.BAT";
$c_sys = $drv_b~"\\CONFIG.SYS";
%auto = isfile($a_bat);
%config = isfile($c_sys);
# ************************* D.H.TOOLチェック ***************************
#CHK_DHT
while( %mhd > 0 ){
$HD = drvname(%mhd)~":";
%ans = isdir($HD~"\\DHT");
if( %ans == 1){
%dht = 1;
}
%mhd = %mhd - 1;
}
# ********************* サブディレクトリの作成 *********************
cls();
locate( 23, 10);print("\n");
locate( 23, 11);print("サブディレクトリを作成します\n");
locate( 23, 12);print("\n");
locate( 28, 15);print($ddrv~"\\DDEV\\B64Pを作成します. ");
wait(3);
$ddir = $ddrv;
%cnt = 1;
while(%cnt < 3){
switch(%cnt){
case 1: $fnm = "\\DDEV"; break;
case 2: $fnm = "\\DDEV\\B64P"; break;
}
$mdir = $ddir~$fnm;
%r1 = isdir( $mdir );
if( %r1 == 0 ){
%r2 = mkdir( $mdir );
if( %r2 != 0 ){
$err = $mdir~" が作成できません.";
goto ERROR_1;
}
}
%cnt = %cnt + 1;
}
$ddir = $ddrv~"\\DDEV\\B64P";
# ファイルのコピー *************************************************
cls();
locate(23,10);print("\n");
locate(23,11);print("ドライバの転送を開始します\n");
locate(23,12);print("");
wait(2);
%cnt = 1;
while(%cnt < 14){
switch(%cnt){
case 1: $dnm="\\"; $fnm = "README.TXT "; break;
case 2: $dnm="\\98\\"; $fnm = "INSPX.SYS "; break;
case 3: $dnm="\\98\\"; $fnm = "INSPDL.EXE "; break;
case 4: $dnm="\\98\\"; $fnm = "INSPDL.ROM "; break;
case 5: $dnm="\\98\\"; $fnm = "INS64M.SYS "; break;
case 6: $dnm="\\98\\"; $fnm = "INS64M.CNE "; break;
case 7: $dnm="\\98\\"; $fnm = "INS64CL.EXE"; break;
case 8: $dnm="\\98\\"; $fnm = "FDR.EXE "; break;
case 9: $dnm="\\98\\"; $fnm = "FDS.EXE "; break;
case 10: $dnm="\\98\\"; $fnm = "INS64EL.EXE"; break;
case 11: $dnm="\\98\\"; $fnm = "INS64S.EXE "; break;
case 12: $dnm="\\98\\"; $fnm = "SETINSP.EXE"; break;
case 13: $dnm="\\98\\"; $fnm = "TESTINS.EXE"; break;
}
$sfile = $sdrv~"\\REMOSERV"~$dnm~$fnm;
%r1=isfile($sfile);
if(%r1==0){ $err=$sfile~" が存在しません."; goto ERROR_1; }
locate(15,18); print("★"~$fnm~"を "~$ddrv~"\\DDEV\\B64Pにコピーしています... ★");
%r1=copy($sfile, $ddir );
if(%r1 !=0){
$err = $sfile~" をコピー中にエラーが発生しました.";
goto ERROR_1;
}
%cnt = %cnt + 1;
}
# ISDN *************************************************************
# \DDEV\B64P\CONFIG.SYSの生成 --------------------------------------
#MAKE_B64V_CONFIG:
$ddir = $ddrv~"\\DDEV\\B64P"; $fnm = $ddir~"\\CONFIG.SYS";
%ans = isfile($fnm);
if (%ans == 1) {
%del = delete($fnm);
if(%del != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
}
%r1 = open($fnm);
if(%r1 != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
seek(1);
addline("Files = 21");
addline("Buffers= 20");
addline("Shell = "~$drv_b~"\\COMMAND.COM "~$drv_b~"\\ /P");
addline("Device = "~$ddir~"\\INSPX.SYS");
addline("Device = "~$ddir~"\\INS64M.SYS /2K");
close();
# CONFIG.SYSのコピーに使用されるファイル
# ---------------------- CONFIG.INX作成 ---------------------------
$c_sys = $drv_b~"\\CONFIG.SYS";
$config_inx = $ddir~"\\CONFIG.INX";
%ans = isfile($c_sys);
if (%ans == 1) {
%sts = copy($c_sys, $config_inx);
if (%sts != 0) {
$err = "CONFIG.SYS~CONFIG.INXへのコピーに失敗しました." ;
goto ERROR_1;
}
open($config_inx);
seek(1);
%sys_x = forward("INSPX.SYS");
if ( %sys_x > 0){
seek(%sys_x);
delline();
}
seek(1);
%sys_m = forward("INS64M.SYS");
if ( %sys_m > 0){
seek(%sys_m);
delline();
}
seek(0);
insline("Device = "~$ddir~"\\INSPX.SYS");
addline("Device = "~$ddir~"\\INS64M.SYS /2K");
close();
} else {
$fnm = $ddir~"\\CONFIG.INX";
%ans = isfile($fnm);
if (%ans == 1) {
%del = delete($fnm);
if(%del != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
}
%r1 = open($fnm);
if(%r1 != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
seek(1);
addline("Files = 21");
addline("Buffers= 20");
addline("Shell = "~$drv_b~"\\COMMAND.COM "~$drv_b~"\\ /P");
addline("Device = "~$ddir~"\\INSPX.SYS");
addline("Device = "~$ddir~"\\INS64M.SYS /2K");
close();
}
# CONFIG.INM作成 ---------------------------------------------------
$config_inm = $ddir~"\\CONFIG.INM";
%ans = isfile($c_sys);
if (%ans == 1) {
%sts = copy($c_sys, $config_inm);
if (%sts != 0) {
$err = "CONFIG.SYS~CONFIG.INMへのコピーに失敗しました.";
goto ERROR_1;
}
open($config_inm);
seek(1);
%sys_x = forward("INSPX.SYS");
if ( %sys_x > 0){
seek(%sys_x);
delline();
}
seek(1);
%sys_m = forward("INS64M.SYS");
if ( %sys_m > 0){
seek(%sys_m);
delline();
}
seek(0);
insline("Device = "~$ddir~"\\INSPX.SYS");
addline("Device = "~$ddir~"\\INS64M.SYS /2K");
close();
} else {
$fnm = $ddir~"\\CONFIG.INM";
%ans = isfile($fnm);
if (%ans == 1) {
%del = delete($fnm);
if(%del != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
}
%r1 = open($fnm);
if(%r1 != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
seek(1);
addline("Files = 21");
addline("Buffers= 20");
addline("Shell = "~$drv_b~"\\COMMAND.COM "~$drv_b~"\\ /P");
addline("Device = "~$ddir~"\\INSPX.SYS");
addline("Device = "~$ddir~"\\INS64M.SYS /2K");
close();
}
# CONFIG.INS作成 ---------------------------------------------------
$config_ins = $ddir~"\\CONFIG.INS";
%ans = isfile($c_sys);
if (%ans == 1) {
%sts = copy($c_sys, $config_ins);
if (%sts != 0) {
$err = "CONFIG.SYS~CONFIG.INSへのコピーに失敗しました." ;
goto ERROR_1;
}
open($config_ins);
seek(1);
%sys_x = forward("INSPX.SYS");
if ( %sys_x > 0){
seek(%sys_x);
delline();
}
seek(1);
%sys_m = forward("INS64M.SYS");
if ( %sys_m > 0){
seek(%sys_m);
delline();
}
seek(0);
insline("Device = "~$ddir~"\\INSPX.SYS");
close();
} else {
$fnm = $ddir~"\\CONFIG.INS";
%ans = isfile($fnm);
if (%ans == 1) {
%del = delete($fnm);
if(%del != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
}
%r1 = open($fnm);
if(%r1 != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
seek(1);
addline("Files = 21");
addline("Buffers= 20");
addline("Shell = "~$drv_b~"\\COMMAND.COM "~$drv_b~"\\ /P");
addline("Device = "~$ddir~"\\INSPX.SYS");
close();
}
# \DDEV\B64P\AUTOEXEC.BATの生成 ------------------------------------
MAKE_B64V_AUTOEXEC:
$ddir = $ddrv~"\\DDEV\\B64P";
$fnm = $ddir~"\\AUTOEXEC.BAT";
%ans = isfile($fnm);
if (%ans == 1) {
%del = delete($fnm);
if(%del != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
}
%r1 = open($fnm);
if(%r1 != 0){
$err = $fnm~" が作成できません.";
goto ERROR_1;
}
seek(1);
addline("ECHO OFF");
addline("PATH "~$ddrv~"\\;"~$ddrv~"\\DDEV\\B64P");
addline("PROMPT $p$g");
addline("INS64S /BW");
close();
#AUTOEXEC.BATのコピーに使用されるファイル
# AUTOEXEC.INX作成 -------------------------------------------------
$a_bat = $drv_b~"\\AUTOEXEC.BAT";
$a_inx = $ddir~"\\AUTOEXEC.INX";
%ans = isfile($a_bat);
if(%ans==1){
%sts=copy($a_bat,$a_inx);
if (%sts != 0) {
$err = $ddir~"AUTOEXEC.BAT~AUTOEXEC.INXへのコピーに失敗しました.";
goto ERROR_1;
}
open($a_inx)
seek(1);
%ins64=forward($ddrv~"\\B64P;");
seek(1);
%path=forward("PATH");
if(%path == 0){
seek(1);
insline("PATH "~$ddrv~"\\;"~$ddrv~"\\DDEV\\B64P");
}else{
%path2=%path; %sww=1;
while(%sww != 0){
%path=%path2;
%path2=%path + 1;
seek(%path2);
%path2=forward("PATH");
if(%path2==%path){
%path=0;
%sww=0;
}
if(%path2==0){
%sww=0;
}
}
if(%ins64==0){
%path=%path+1;
seek(%path);
$path="PATH "~$ddrv~"\\DDEV\\B64P;%PATH%";
insline($path);
}
}
seek(1);
%ins64s=forward("INS64S");
if(%ins64s !=0){
seek(%ins64s);
delline();
}
seek(0);
insline("INS64S /BW");
close();
} else {
$fnm = $ddir~"\\AUTOEXEC.INX";
%ans = isfile($fnm);
if(%ans==1) {
%del=delete($fnm);
if(%del !=0){
$err=$fnm~" が作成できません.";
goto ERROR_1;
}
}
%r1=open($fnm);
if(%r1 != 0){
$err=$fnm~" が作成できません.";
goto ERROR_1;
}
seek(1);
addline( "ECHO OFF" );
addline( "PATH "~$ddrv~"\\;"~$ddrv~"\\DDEV\\B64P");
if( %ddrv != %drv_b ){
addline( $ddrv );
}
addline( "PROMPT $p$g" );
addline( "INS64S /BW" );
close();
}
$autoexec_inm = $ddir~"\\AUTOEXEC.INM";
$autoexec_ins = $ddir~"\\AUTOEXEC.INS";
%sts = copy($a_inx, $autoexec_inm);
if (%sts != 0) {
$err="AUTOEXEC.INX~AUTOEXEC.INMへのコピーに失敗しました.";
goto ERROR_1;
}
open($autoexec_inm)
%ins64 = forward("\\DDEV\\B64P\\INS64S");
if(%ins64>0){ seek(%ins64); delline(); }
%ins64 = forward("INS64S");
if(%ins64>0){ seek(%ins64); delline(); }
close();
%sts=copy($a_inx, $autoexec_ins);
if(%sts!=0){
$err="AUTOEXEC.INX~AUTOEXEC.INSへのコピーに失敗しました.";
goto ERROR_1;
}
open($autoexec_ins);
%ins64 = forward("\\DDEV\\B64P\\INS64S");
if(%ins64>0){
seek(%ins64);
delline();
}
%ins64 = forward("INS64S");
if(%ins64>0){
seek(%ins64);
delline();
}
seek(0);
insline("INS64S");
close();
# *************** あたま part2 *************************************
# 起動元にユーザーのAUTOEXEC.BATとCOINFIG.SYSが存在した場合は
# 編集のする,しないはユーザーに判断を任せる.
# ******************************************************************
# --------- ル-トディレクトリの CONFIG.SYS作成 -------------------------
cls();
locate(15,3);print(" 次の処理内容はルートにある AUTOEXEC.BAT & CONFIG.SYS を\n");
locate(15,5);print("ISDN用のデバイスドライバを組み込んだ AUTOEXEC.BAT と\n");
locate(15,7);print("CONFIG.SYS に変換するためのプログラムです.\n");
locate(15,9);print("従来の AUTOEXEC.BAT & CONFIG.SYS は ***.ORG に保存されます.\n");
locate(19,12);print("書き換え元・・・\\DDEV\\B64P\\AUTOEXEC.IN? & CONFIG.IN?\n");
locate(19,13);print("書き換え先・・・\AUTOEXEC.BAT & CONFIG.SYS\n");
locate(19,15);print("次の処理形式の中から番号で選択してください\n");
locate(23,17);print("1 : 混合型\n");
locate(23,18);print("2 : 発呼型\n");
locate(23,19);print("3 : 着呼型\n");
locate(23,20);print("4 : 新規に作成しない\n");
locate(25,22);print("選択番号[1-4]");
%prmt1 = 4;
%prmt2 = 1;
LOOP:
clrkey();
%res = qessel(%prmt1,%prmt2);
switch(%res){
case -1: goto LOOP;
case 1: $end = "INX"; break;
case 2: $end = "INM"; break;
case 3: $end = "INS"; break;
case 4: goto MEND;
}
cls();
locate(23,10);print("\n");
locate(23,11);print("CONFIG.SYSの作成を開始します\n");
locate(23,12);print("");
wait(2);
if(%config != 0){
$c_sys = $drv_b~"\\CONFIG.SYS";
$c_org = $drv_b~"\\CONFIG.ORG";
locate(26, 20); print($c_sys~"を変更します.");
locate(18, 21); print("元の"~$c_sys~"は、"~$c_org~"に保存します.");
wait(3); clrline(20); clrline(21);
%ans = isfile($c_org);
if (%ans == 1) {
locate(25,20);print($c_org~"が既に存在しています.");
locate(25,21);print($c_org~"を書き換えます");
locate(30,22);print("よろしいですか?[Y/N]");
clrkey();
%ans = qesyorn(1);
clrline(20);clrline(21);clrline(22);
if(%ans==1){
%sts=copy($c_sys, $c_org);
if(%sts != 0){
$err = $c_org~" が作成できません.";
goto ERROR_1;
}
}else{
goto MAKE_ROOT_CONFIG;
}
}else{
%sts = copy($c_sys, $c_org);
if(%sts!=0){
$err=$c_org~" が作成できません.";
goto ERROR_1;
}
}
}
MAKE_ROOT_CONFIG:
$ddir = $ddrv~"\\DDEV\\B64P"; $fnm = $ddir~"\\CONFIG."~$end;
$c_sys = $drv_b~"\\CONFIG.SYS";
copy($fnm,$c_sys);
# ******************************************************************
# --------- ル-トディレクトリの AUTOEXEC.BAT作成 --------------------------
MAKE_ROOT_AUTOEXEC:
cls();
locate( 23, 10);print("\n");
locate( 23, 11);print("AUTOEXEC.BATの作成を開始します\n");
locate( 23, 12);print("");
wait(2);
if(%auto != 0){
$a_bat = $drv_b~"\\AUTOEXEC.BAT";
$a_org = $drv_b~"\\AUTOEXEC.ORG";
locate(25,20); print($a_bat~"を変更します.");
locate(15,21); print("元の"~$a_bat~"は、"~$a_org~"に保存します.");
wait(2);
clrline(20); clrline(21);
%ans = isfile($a_org);
if(%ans==1){
locate(25,20);print($a_org~"が既に存在しています.");
locate(25,21);print($a_org~"を書き換えます");
locate(30,22);print("よろしいですか[Y/N]?");
clrkey();
%ans = qesyorn(1);
clrline(20);clrline(21);clrline(22);
if(%ans==1){
%sts=copy($a_bat, $a_org);
if(%sts!=0){$err=$a_org~" が作成できません."; goto ERROR_1; }
}else{
goto MAKE_ROOT_AUTO;
}
}else{
%sts = copy($a_bat, $a_org);
if(%sts!=0){$err=$a_org~" が作成できません."; goto ERROR_1; }
}
}
MAKE_ROOT_AUTO:
$ddir = $ddrv~"\\DDEV\\B64P"; $fnm = $ddir~"\\AUTOEXEC."~$end;
$a_bat = $drv_b~"\\AUTOEXEC.BAT";
copy($fnm,$a_bat);
# ------------------------------------------------------------------
# END処理&メッセージ
MEND:
cls();
locate( 25, 10);print("\n");
locate( 25, 11);print("インストールが終了しました\n");
locate( 25, 12);print("");
wait(2);
if(%dht==1){
%x=12; %y_1=13; %k=9;
} else{
%x=12; %y_1=15; %k=7;
}
locate( %x , %y_1 );
#print(" 最後に ");
%cunt = 1; %y = %y_1 + 1;
while(%cunt < %k ){
locate( %x , %y );
print(" ");
%cunt=%cunt+1; %y=%y+1;
}
locate(%x ,%y_1+%k);
print(" \n");
if( %dht == 0 ){
locate(%x+2,%y_1+2);print("ご苦労さまでした. インストールが終了しました.");
locate(%x+2,%y_1+5);print("再び起動された時にはINS-B64/PCIが使用できます.");
} else {
locate(%x+2,%y_1+2);print("ご苦労さまでした. インストールが終了しました.");
locate(%x+2,%y_1+5);print("再び起動された時にはINS-B64/PCIが使用できます.");
}
goto END;
# エラーの処理
ERROR_1:
cls();
locate(25,10);print("\n");
locate(25,11);print("インストールを中止しました\n");
locate(25,12);print("");
print("\n");
locate(17, 15);print("エラー:"); print($err~"\n");
print("\n");
exit(-1);
goto END;
ERROR_2:
cls();
locate(25,10);print("\n");
locate(25,11);print("インストールを中止しました\n");
locate(25,12);print("");
locate(20,15);print($err~"\n");
print("\n");
print("再起動方法は"~$sdrv~"MAOIX INSP.SUPと入力してください.\n");
print("\n");
exit(-1);
END:
print("\n");