summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2004-07-11 04:29:12 (UTC)
committer Michael Krelin <hacker@klever.net>2004-07-11 04:29:12 (UTC)
commitd6f931eb800d16d0bf116765cbaeef83d232cfad (patch) (unidiff)
tree811e8513e303825ebf028ea9df332a243cdc38f8
parent885f8cc426a8840ae61023b75f3f0e4a1e268082 (diff)
downloadkinsole-d6f931eb800d16d0bf116765cbaeef83d232cfad.zip
kinsole-d6f931eb800d16d0bf116765cbaeef83d232cfad.tar.gz
kinsole-d6f931eb800d16d0bf116765cbaeef83d232cfad.tar.bz2
prepared for kinsole 1.1 release1.1
git-svn-id: http://svn.klever.net/kin/kinsole/trunk@7 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--AUTHORS3
-rw-r--r--COPYING2
-rw-r--r--README.RELEASE (renamed from README)0
-rw-r--r--help/kinsole.cnt4
-rw-r--r--help/kinsole.rtf18
-rw-r--r--help/kinsole.xml16
-rw-r--r--install/install.cpp16
-rw-r--r--install/install.rc10
-rw-r--r--kinsole.cpp6
-rw-r--r--kinsole.mak50
-rw-r--r--kinsole.rc10
11 files changed, 87 insertions, 48 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..a9fb0c7
--- a/dev/null
+++ b/AUTHORS
@@ -0,0 +1,3 @@
1Klever dissected:
2 Michael 'hacker' Krelin <hacker@klever.net>
3 Leonid Ivanov <kamel@klever.net>
diff --git a/COPYING b/COPYING
index 997e508..9abe63f 100644
--- a/COPYING
+++ b/COPYING
@@ -1,7 +1,7 @@
1Copyright (c) 1998, 2002 Klever Group (http://www.klever.net/) 1Copyright (c) 1998-2004 Klever Group (http://www.klever.net/)
2 2
3Permission is hereby granted, free of charge, to any person obtaining a copy of 3Permission is hereby granted, free of charge, to any person obtaining a copy of
4this software and associated documentation files (the "Software"), to deal in 4this software and associated documentation files (the "Software"), to deal in
5the Software without restriction, including without limitation the rights to 5the Software without restriction, including without limitation the rights to
6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7of the Software, and to permit persons to whom the Software is furnished to do 7of the Software, and to permit persons to whom the Software is furnished to do
diff --git a/README b/README.RELEASE
index 9bbcbe8..9bbcbe8 100644
--- a/README
+++ b/README.RELEASE
diff --git a/help/kinsole.cnt b/help/kinsole.cnt
index 9a8af90..a30e9b7 100644
--- a/help/kinsole.cnt
+++ b/help/kinsole.cnt
@@ -2,8 +2,8 @@
2:Title KINSole 2:Title KINSole
31 KINSole 31 KINSole
42 About KINSole=About 42 About KINSole=About
52 Using KINSole=Using 52 Using KINSole=Using
62 Command Line Options=CmdOptions 62 Command Line Options=CmdOptions
72 Keyboard Shortcuts=HotKeys 72 Keyboard Shortcuts=HotKeys
82 Beta Notes=BetaNotes 82 Notes=Notes
92 Beta News=News 92 What's New=News
diff --git a/help/kinsole.rtf b/help/kinsole.rtf
index 2cfd296..f0b6c8a 100644
--- a/help/kinsole.rtf
+++ b/help/kinsole.rtf
@@ -14,26 +14,26 @@ DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD
14${\footnote About KINSole} 14${\footnote About KINSole}
15{ \f1\fs18\b\sb120 About KINSole} 15{ \f1\fs18\b\sb120 About KINSole}
16\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b KINSole} is our {\i Win32} implementation of client side of the {\i telnet} protocol described in details in the {\uldb {\b RFC854}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc854.txt")} and related RFCs (namely {\uldb {\b RFC855}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc855.txt")}, {\uldb {\b RFC857}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc857.txt")}, {\uldb {\b RFC1091}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1091.txt")}, {\uldb {\b RFC1073}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1073.txt")}, {\uldb {\b RFC1572}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1572.txt")} and others). It uses {\i Win32} console and, therefore, can be run both windowed and in fullscreen mode. 16\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b KINSole} is our {\i Win32} implementation of client side of the {\i telnet} protocol described in details in the {\uldb {\b RFC854}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc854.txt")} and related RFCs (namely {\uldb {\b RFC855}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc855.txt")}, {\uldb {\b RFC857}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc857.txt")}, {\uldb {\b RFC1091}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1091.txt")}, {\uldb {\b RFC1073}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1073.txt")}, {\uldb {\b RFC1572}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1572.txt")} and others). It uses {\i Win32} console and, therefore, can be run both windowed and in fullscreen mode.
17\par\sa120\sb120\qj\pard \f1\fs18\sb120 17\par\sa120\sb120\qj\pard \f1\fs18\sb120
18\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}} 18\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}}
19{ 19{
20\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1998, 2002 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")} 20\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1998-2004 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")}
21\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 21\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
22\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
23\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24} 24}
25\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")} 25\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")}
26\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")} 26\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")}
27\page 27\page
28 28
29\pard\plain\keepn 29\pard\plain\keepn
30#{\footnote News} 30#{\footnote News}
31${\footnote Beta News} 31${\footnote What's new}
32{ \f1\fs18\b\sb120 Beta News} 32{ \f1\fs18\b\sb120 What's New}
33\par\pard\plain\f1\fs24\qc\cf2\b 1.00 Beta 3 - August 19st, 2002 33\par\pard\plain\f1\fs24\qc\cf2\b 1.1 - July 11th, 2004
34\par\pard\plain\fi0\li0\f1\fs18 \bullet No changes in code. License change. 34\par\pard\plain\fi0\li0\f1\fs18 \bullet No changes in code. License change.
35\par\pard\plain\f1\fs24\qc\cf2\b 1.00 Beta 2 - March 7th, 1998 35\par\pard\plain\f1\fs24\qc\cf2\b 1.00 Beta 2 - March 7th, 1998
36\par\pard\plain\fi0\li0\f1\fs18 \bullet Better copying from {\b KINSole} window. 36\par\pard\plain\fi0\li0\f1\fs18 \bullet Better copying from {\b KINSole} window.
37\par\pard\plain\fi0\li0\f1\fs18 \bullet Better handling of cursor position when resizing window. 37\par\pard\plain\fi0\li0\f1\fs18 \bullet Better handling of cursor position when resizing window.
38\par\pard\plain\fi0\li0\f1\fs18 \bullet Sending {\b CR/LF} pair when pressing {\b ENTER}. This is of help when telnetting to non-telnet ports. 38\par\pard\plain\fi0\li0\f1\fs18 \bullet Sending {\b CR/LF} pair when pressing {\b ENTER}. This is of help when telnetting to non-telnet ports.
39\par\pard\plain\fi0\li0\f1\fs18 \bullet Corrected bug, preventing {\b KINSole} from pasting text to remote twice. 39\par\pard\plain\fi0\li0\f1\fs18 \bullet Corrected bug, preventing {\b KINSole} from pasting text to remote twice.
@@ -83,15 +83,15 @@ ${\footnote Hot Keys}
83\par \fi0\li0 \bullet {\b Ctrl-Break} Send {\b IP (Interrupt Process)} telnet command. Usually effectively equivalent to Ctrl-C, but it's up to server to decide what to do in each case. 83\par \fi0\li0 \bullet {\b Ctrl-Break} Send {\b IP (Interrupt Process)} telnet command. Usually effectively equivalent to Ctrl-C, but it's up to server to decide what to do in each case.
84\par \fi0\li0 \bullet {\b Alt-INS} - Invoke {\b copying} from {\b KINSole} screen buffer. 84\par \fi0\li0 \bullet {\b Alt-INS} - Invoke {\b copying} from {\b KINSole} screen buffer.
85\par \fi0\li0 \bullet {\b Alt-T} - Send {\b TIMING-MARK} request. As soon as response comes {\b KINSole} will flash window thrice or beep if window handle is not available for some reason.\pard 85\par \fi0\li0 \bullet {\b Alt-T} - Send {\b TIMING-MARK} request. As soon as response comes {\b KINSole} will flash window thrice or beep if window handle is not available for some reason.\pard
86\page 86\page
87 87
88\pard\plain\keepn 88\pard\plain\keepn
89#{\footnote BetaNotes} 89#{\footnote Notes}
90${\footnote Beta Notes} 90${\footnote Notes}
91{ \f1\fs18\b\sb120 Beta Notes} 91{ \f1\fs18\b\sb120 Notes}
92\par\sa120\sb120\qj\pard \f1\fs18\sb120 A few things you may want to know about this Beta Release:\pard 92\par\sa120\sb120\qj\pard \f1\fs18\sb120 A few things you may want to know about this release:\pard
93\par \fi0\li0 \bullet Only two terminal emulation modules are included in this beta release - one for dumb terminal and one for vt100/102. If you try to select ANSI terminal type vt100 emulation will be selected, which is actually close enough to ANSI so you shouldn't suffer too much. Why would one want to use ANSI terminal emulation, anyway? 93\par \fi0\li0 \bullet Only two terminal emulation modules are included in this release - one for dumb terminal and one for vt100/102. If you try to select ANSI terminal type vt100 emulation will be selected, which is actually close enough to ANSI so you shouldn't suffer too much. Why would one want to use ANSI terminal emulation, anyway?
94\par \fi0\li0 \bullet Telnet {\b LINEMODE} option ({\uldb {\b RFC1184}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1184.txt")}) is still to come. 94\par \fi0\li0 \bullet Telnet {\b LINEMODE} option ({\uldb {\b RFC1184}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1184.txt")}) is still to come.
95\par \fi0\li0 \bullet Pasting of text using console toolbar button may cause {\b KINSole} to lock up. Use {\b Shift-INS} instead.\pard 95\par \fi0\li0 \bullet Pasting of text using console toolbar button may cause {\b KINSole} to lock up. Use {\b Shift-INS} instead.\pard
96\page 96\page
97} \ No newline at end of file 97} \ No newline at end of file
diff --git a/help/kinsole.xml b/help/kinsole.xml
index 7d15eed..c08aa01 100644
--- a/help/kinsole.xml
+++ b/help/kinsole.xml
@@ -2,18 +2,18 @@
2<winhelp> 2<winhelp>
3 <topic id="About" title="About KINSole"> 3 <topic id="About" title="About KINSole">
4 <heading scroll="no">About KINSole</heading> 4 <heading scroll="no">About KINSole</heading>
5 <p><kin>KINSole</kin> is our <term>Win32</term> implementation of client side of the <term>telnet</term> protocol described in details in the <rfc num="854"/> and related RFCs (namely <rfc num="855"/>, <rfc num="857"/>, <rfc num="1091"/>, <rfc num="1073"/>, <rfc num="1572"/> and others). It uses <term>Win32</term> console and, therefore, can be run both windowed and in fullscreen mode.</p> 5 <p><kin>KINSole</kin> is our <term>Win32</term> implementation of client side of the <term>telnet</term> protocol described in details in the <rfc num="854"/> and related RFCs (namely <rfc num="855"/>, <rfc num="857"/>, <rfc num="1091"/>, <rfc num="1073"/>, <rfc num="1572"/> and others). It uses <term>Win32</term> console and, therefore, can be run both windowed and in fullscreen mode.</p>
6 <p/> 6 <p/>
7 <p><b><i>Enjoy!</i></b></p> 7 <p><b><i>Enjoy!</i></b></p>
8 <license years="1998, 2002"/> 8 <license years="1998-2004"/>
9 <credits/> 9 <credits/>
10 </topic> 10 </topic>
11 <topic id="News" title="Beta News"> 11 <topic id="News" title="What's new">
12 <heading scroll="no">Beta News</heading> 12 <heading scroll="no">What's New</heading>
13 <newsfor version="1.00 Beta 3" date="August 19st, 2002"> 13 <newsfor version="1.1" date="July 11th, 2004">
14 <ni>No changes in code. License change.</ni> 14 <ni>No changes in code. License change.</ni>
15 </newsfor> 15 </newsfor>
16 <newsfor version="1.00 Beta 2" date="March 7th, 1998"> 16 <newsfor version="1.00 Beta 2" date="March 7th, 1998">
17 <ni>Better copying from <kin>KINSole</kin> window.</ni> 17 <ni>Better copying from <kin>KINSole</kin> window.</ni>
18 <ni>Better handling of cursor position when resizing window.</ni> 18 <ni>Better handling of cursor position when resizing window.</ni>
19 <ni>Sending <b>CR/LF</b> pair when pressing <b>ENTER</b>. This is of help when telnetting to non-telnet ports.</ni> 19 <ni>Sending <b>CR/LF</b> pair when pressing <b>ENTER</b>. This is of help when telnetting to non-telnet ports.</ni>
@@ -57,16 +57,16 @@
57 <li><b>Shift-INS</b> Paste text from Windows Clipboard.</li> 57 <li><b>Shift-INS</b> Paste text from Windows Clipboard.</li>
58 <li><b>Ctrl-Break</b> Send <b>IP (Interrupt Process)</b> telnet command. Usually effectively equivalent to Ctrl-C, but it's up to server to decide what to do in each case.</li> 58 <li><b>Ctrl-Break</b> Send <b>IP (Interrupt Process)</b> telnet command. Usually effectively equivalent to Ctrl-C, but it's up to server to decide what to do in each case.</li>
59 <li><b>Alt-INS</b> - Invoke <b>copying</b> from <kin>KINSole</kin> screen buffer.</li> 59 <li><b>Alt-INS</b> - Invoke <b>copying</b> from <kin>KINSole</kin> screen buffer.</li>
60 <li><b>Alt-T</b> - Send <b>TIMING-MARK</b> request. As soon as response comes <kin>KINSole</kin> will flash window thrice or beep if window handle is not available for some reason.</li> 60 <li><b>Alt-T</b> - Send <b>TIMING-MARK</b> request. As soon as response comes <kin>KINSole</kin> will flash window thrice or beep if window handle is not available for some reason.</li>
61 </ul> 61 </ul>
62 </topic> 62 </topic>
63 <topic id="BetaNotes" title="Beta Notes"> 63 <topic id="Notes" title="Notes">
64 <heading scroll="no">Beta Notes</heading> 64 <heading scroll="no">Notes</heading>
65 <p>A few things you may want to know about this Beta Release:</p> 65 <p>A few things you may want to know about this release:</p>
66 <ul> 66 <ul>
67 <li>Only two terminal emulation modules are included in this beta release - one for dumb terminal and one for vt100/102. If you try to select ANSI terminal type vt100 emulation will be selected, which is actually close enough to ANSI so you shouldn't suffer too much. Why would one want to use ANSI terminal emulation, anyway?</li> 67 <li>Only two terminal emulation modules are included in this release - one for dumb terminal and one for vt100/102. If you try to select ANSI terminal type vt100 emulation will be selected, which is actually close enough to ANSI so you shouldn't suffer too much. Why would one want to use ANSI terminal emulation, anyway?</li>
68 <li>Telnet <b>LINEMODE</b> option (<rfc num="1184"/>) is still to come.</li> 68 <li>Telnet <b>LINEMODE</b> option (<rfc num="1184"/>) is still to come.</li>
69 <li>Pasting of text using console toolbar button may cause <kin>KINSole</kin> to lock up. Use <b>Shift-INS</b> instead.</li> 69 <li>Pasting of text using console toolbar button may cause <kin>KINSole</kin> to lock up. Use <b>Shift-INS</b> instead.</li>
70 </ul> 70 </ul>
71 </topic> 71 </topic>
72</winhelp> 72</winhelp>
diff --git a/install/install.cpp b/install/install.cpp
index e6f4e5a..aa474d5 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -1,16 +1,16 @@
1#include "resource.h" 1#include "resource.h"
2#include "../shared-code/install.h" 2#include "../shared-code/install.h"
3 3
4 #define KINAME"KINSole 1.00 Beta 3" 4 #define KINAME"KINSole 1.1"
5 #define SKINAME"KINSole" 5 #define SKINAME"KINSole"
6 6
7BOOL Install(void) 7BOOL Install(void)
8{ 8{
9STRING tPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.",SKINAME "Path"); 9STRING tPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path");
10STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.","KINPath"); 10STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath");
11LPCSTR qPath = ((LPCSTR)tPath)?(LPCSTR)tPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings"); 11LPCSTR qPath = ((LPCSTR)tPath)?(LPCSTR)tPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings");
12STRING path = REQUESTPATH(" " KINAME,"Note: KINSole program file will be installed into your windows directory so that you can rely on it's presence in your search path\nEnter destination path:",qPath); 12STRING path = REQUESTPATH(" " KINAME,"Note: KINSole program file will be installed into your windows directory so that you can rely on it's presence in your search path\nEnter destination path:",qPath);
13 if(!path) 13 if(!path)
14 return NULL; 14 return NULL;
15STRING winDir(_MAX_PATH); 15STRING winDir(_MAX_PATH);
16 16
@@ -26,15 +26,15 @@ STRING shortPath = GET_SHORT_PATH(path);
26 INSTALLFILE("KINSole.hl_",path,"KINSole.hlp") && 26 INSTALLFILE("KINSole.hl_",path,"KINSole.hlp") &&
27 INSTALLFILE("KINSole.cn_",path,"KINSole.cnt") 27 INSTALLFILE("KINSole.cn_",path,"KINSole.cnt")
28 )){ 28 )){
29 MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); 29 MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
30 return FALSE; 30 return FALSE;
31 } 31 }
32 ADDMENU("Accessories\\Klever Co.","KINSole Help",path,SKINAME ".hlp"); 32 ADDMENU("Klever Group","KINSole Help",path,SKINAME ".hlp");
33 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.", SKINAME "Path",path); 33 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group", SKINAME "Path",path);
34 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.","KINPath",path); 34 strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath",path);
35FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF"); 35FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF");
36 if(!inf){ 36 if(!inf){
37 MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK); 37 MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK);
38 return FALSE; 38 return FALSE;
39 } 39 }
40 INF_FILE_HEADER(inf); 40 INF_FILE_HEADER(inf);
@@ -50,16 +50,16 @@ FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF");
50 INF_REMOVE_FILE(inf,SKINAME "WFiles",SKINAME ".exe"); 50 INF_REMOVE_FILE(inf,SKINAME "WFiles",SKINAME ".exe");
51 51
52 INF_FILE_SECTION(inf,"kReg"); 52 INF_FILE_SECTION(inf,"kReg");
53 INF_UNINSTALL_REG(inf,SKINAME); 53 INF_UNINSTALL_REG(inf,SKINAME);
54 54
55 INF_FILE_SECTION(inf,"kMenu"); 55 INF_FILE_SECTION(inf,"kMenu");
56 INF_MENU_GROUP(inf,1,"Accessories\\Klever Co."); 56 INF_MENU_GROUP(inf,1,"Klever Group");
57 INF_MENU_ITEM(inf,1,"KINSole Help"); 57 INF_MENU_ITEM(inf,1,"KINSole Help");
58 fclose(inf); 58 fclose(inf);
59 59
60 REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall"); 60 REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall");
61 61
62 MessageBox(NULL,KINAME " installed successfully, you may now run it from command line, read documentation in Programs/Accessories/Klever Co. menu or simply remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK); 62 MessageBox(NULL,KINAME " installed successfully, you may now run it from command line, read documentation in 'Programs/Klever Group' menu or simply remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK);
63 63
64 return TRUE; 64 return TRUE;
65} 65}
diff --git a/install/install.rc b/install/install.rc
index d7780b6..04ae8f4 100644
--- a/install/install.rc
+++ b/install/install.rc
@@ -128,14 +128,14 @@ IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico
128///////////////////////////////////////////////////////////////////////////// 128/////////////////////////////////////////////////////////////////////////////
129// 129//
130// Version 130// Version
131// 131//
132 132
133VS_VERSION_INFO VERSIONINFO 133VS_VERSION_INFO VERSIONINFO
134 FILEVERSION 1,0,0,3 134 FILEVERSION 1,1,0,0
135 PRODUCTVERSION 1,0,0,3 135 PRODUCTVERSION 1,1,0,0
136 FILEFLAGSMASK 0x3fL 136 FILEFLAGSMASK 0x3fL
137#ifdef _DEBUG 137#ifdef _DEBUG
138 FILEFLAGS 0x1L 138 FILEFLAGS 0x1L
139#else 139#else
140 FILEFLAGS 0x0L 140 FILEFLAGS 0x0L
141#endif 141#endif
@@ -146,19 +146,19 @@ BEGIN
146 BLOCK "StringFileInfo" 146 BLOCK "StringFileInfo"
147 BEGIN 147 BEGIN
148 BLOCK "040904b0" 148 BLOCK "040904b0"
149 BEGIN 149 BEGIN
150 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0" 150 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0"
151 VALUE "FileDescription", "INSTALL: KINSole, telnet client\0" 151 VALUE "FileDescription", "INSTALL: KINSole, telnet client\0"
152 VALUE "FileVersion", "1, 0, 0, 3\0" 152 VALUE "FileVersion", "1, 1, 0, 0\0"
153 VALUE "InternalName", "INSTALL\0" 153 VALUE "InternalName", "INSTALL\0"
154 VALUE "LegalCopyright", "Copyright © 1998, 2002 Klever Group (http://www.klever.net/)\0" 154 VALUE "LegalCopyright", "Copyright © 1998-2004 Klever Group (http://www.klever.net/)\0"
155 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0" 155 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0"
156 VALUE "OriginalFilename", "INSTALL.EXE\0" 156 VALUE "OriginalFilename", "INSTALL.EXE\0"
157 VALUE "ProductName", "KINSole\0" 157 VALUE "ProductName", "KINSole\0"
158 VALUE "ProductVersion", "1, 0, 0, 3\0" 158 VALUE "ProductVersion", "1, 1, 0, 0\0"
159 END 159 END
160 END 160 END
161 BLOCK "VarFileInfo" 161 BLOCK "VarFileInfo"
162 BEGIN 162 BEGIN
163 VALUE "Translation", 0x409, 1200 163 VALUE "Translation", 0x409, 1200
164 END 164 END
diff --git a/kinsole.cpp b/kinsole.cpp
index 463db1c..01286f3 100644
--- a/kinsole.cpp
+++ b/kinsole.cpp
@@ -13,13 +13,13 @@
13 13
14#include <winsock.h> 14#include <winsock.h>
15#include "resource.h" 15#include "resource.h"
16#include "windowsx.h" 16#include "windowsx.h"
17 17
18 #define DAMN_KIN_NAME "KINSole" 18 #define DAMN_KIN_NAME "KINSole"
19 #define DAMN_KIN_VERSION"v1.00 Beta 3" 19 #define DAMN_KIN_VERSION"1.1"
20 20
21#ifdef _DEBUG 21#ifdef _DEBUG
22#define new DEBUG_NEW 22#define new DEBUG_NEW
23#undef THIS_FILE 23#undef THIS_FILE
24static char THIS_FILE[] = __FILE__; 24static char THIS_FILE[] = __FILE__;
25#endif 25#endif
@@ -547,25 +547,25 @@ UINT nopros=0;
547 547
548main(int argc,char*argv[]) 548main(int argc,char*argv[])
549{ 549{
550 if(argc<2){ 550 if(argc<2){
551usagebye: 551usagebye:
552 printf( 552 printf(
553 DAMN_KIN_NAME " " DAMN_KIN_VERSION ", Copyright (c) 1998, 2002 Klever Group (http://www.klever.net/)\n\n" 553 DAMN_KIN_NAME " " DAMN_KIN_VERSION ", Copyright (c) 1998-2004 Klever Group (http://www.klever.net/)\n\n"
554 "Usage:\t" DAMN_KIN_NAME " [<options> ]<host-name/ip-address>[ <port>]\n\n" 554 "Usage:\t" DAMN_KIN_NAME " [<options> ]<host-name/ip-address>[ <port>]\n\n"
555 "Options are:\n" 555 "Options are:\n"
556 "-r## or -##\tSet number of rows in console screenbuffer\n" 556 "-r## or -##\tSet number of rows in console screenbuffer\n"
557 "-c##\t\tSet number of columns in console screenbuffer\n" 557 "-c##\t\tSet number of columns in console screenbuffer\n"
558 "\tnote: changing console screenbuffer size may not work properly\n" 558 "\tnote: changing console screenbuffer size may not work properly\n"
559 "\twhen in full-screen mode\n" 559 "\twhen in full-screen mode\n"
560 "-l<user>\tPass username to remote server in environment\n" 560 "-l<user>\tPass username to remote server in environment\n"
561 "-e<var>=<val>\tPass environment variable to remote server\n" 561 "-e<var>=<val>\tPass environment variable to remote server\n"
562 "-v<var>=<val>\tPass user environment variable to remote server\n" 562 "-v<var>=<val>\tPass user environment variable to remote server\n"
563 "-t<termtype>\tChange preferred terminal type\n" 563 "-t<termtype>\tChange preferred terminal type\n"
564 "\tnote: there are only two different terminal emulations in this\n" 564 "\tnote: there are only two different terminal emulations in this\n"
565 "\tbeta release - one for dumb terminal and one for vt terminal\n" 565 "\trelease - one for dumb terminal and one for vt terminal\n"
566 ); 566 );
567 CleanEnvars(); 567 CleanEnvars();
568 return 1; 568 return 1;
569 } 569 }
570 if(!InitializeWinsock()){ 570 if(!InitializeWinsock()){
571 DeinitializeWinsock(); 571 DeinitializeWinsock();
diff --git a/kinsole.mak b/kinsole.mak
index b25a32d..9b7eeac 100644
--- a/kinsole.mak
+++ b/kinsole.mak
@@ -62,13 +62,13 @@ ALL : "$(OUTDIR)\kinsole.exe" "$(OUTDIR)\kinsole.ex_" "$(OUTDIR)\kinsole.hlp"\
62CLEAN : 62CLEAN :
63 -@erase "$(INTDIR)\kinsole.cn_" 63 -@erase "$(INTDIR)\kinsole.cn_"
64 -@erase "$(INTDIR)\kinsole.cnt" 64 -@erase "$(INTDIR)\kinsole.cnt"
65 -@erase "$(INTDIR)\kinsole.hl_" 65 -@erase "$(INTDIR)\kinsole.hl_"
66 -@erase "$(INTDIR)\kinsole.hlp" 66 -@erase "$(INTDIR)\kinsole.hlp"
67 -@erase "$(INTDIR)\KINSole.obj" 67 -@erase "$(INTDIR)\KINSole.obj"
68 -@erase "$(INTDIR)\KINSole.res" 68 -@erase "$(INTDIR)\kinsole.res"
69 -@erase "$(OUTDIR)\kinsole.ex_" 69 -@erase "$(OUTDIR)\kinsole.ex_"
70 -@erase "$(OUTDIR)\kinsole.exe" 70 -@erase "$(OUTDIR)\kinsole.exe"
71 -@erase "$(OUTDIR)\kinsole.map" 71 -@erase "$(OUTDIR)\kinsole.map"
72 72
73"$(OUTDIR)" : 73"$(OUTDIR)" :
74 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 74 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
@@ -100,13 +100,13 @@ CPP_SBRS=.\.
100.cxx{$(CPP_SBRS)}.sbr: 100.cxx{$(CPP_SBRS)}.sbr:
101 $(CPP) $(CPP_PROJ) $< 101 $(CPP) $(CPP_PROJ) $<
102 102
103RSC=rc.exe 103RSC=rc.exe
104# ADD BASE RSC /l 0x409 /d "NDEBUG" 104# ADD BASE RSC /l 0x409 /d "NDEBUG"
105# ADD RSC /l 0x409 /d "NDEBUG" 105# ADD RSC /l 0x409 /d "NDEBUG"
106RSC_PROJ=/l 0x409 /fo"$(INTDIR)/KINSole.res" /d "NDEBUG" 106RSC_PROJ=/l 0x409 /fo"$(INTDIR)/kinsole.res" /d "NDEBUG"
107BSC32=bscmake.exe 107BSC32=bscmake.exe
108# ADD BASE BSC32 /nologo 108# ADD BASE BSC32 /nologo
109# ADD BSC32 /nologo 109# ADD BSC32 /nologo
110BSC32_FLAGS=/nologo /o"$(OUTDIR)/kinsole.bsc" 110BSC32_FLAGS=/nologo /o"$(OUTDIR)/kinsole.bsc"
111BSC32_SBRS= \ 111BSC32_SBRS= \
112 112
@@ -117,13 +117,13 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
117 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ 117 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
118 odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:no\ 118 odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:no\
119 /pdb:"$(OUTDIR)/kinsole.pdb" /map:"$(INTDIR)/kinsole.map" /machine:I386\ 119 /pdb:"$(OUTDIR)/kinsole.pdb" /map:"$(INTDIR)/kinsole.map" /machine:I386\
120 /out:"$(OUTDIR)/kinsole.exe" 120 /out:"$(OUTDIR)/kinsole.exe"
121LINK32_OBJS= \ 121LINK32_OBJS= \
122 "$(INTDIR)\KINSole.obj" \ 122 "$(INTDIR)\KINSole.obj" \
123 "$(INTDIR)\KINSole.res" 123 "$(INTDIR)\kinsole.res"
124 124
125"$(OUTDIR)\kinsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 125"$(OUTDIR)\kinsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
126 $(LINK32) @<< 126 $(LINK32) @<<
127 $(LINK32_FLAGS) $(LINK32_OBJS) 127 $(LINK32_FLAGS) $(LINK32_OBJS)
128<< 128<<
129 129
@@ -163,13 +163,13 @@ ALL : "$(OUTDIR)\kinsole.exe" "$(OUTDIR)\kinsole.ex_" "$(OUTDIR)\kinsole.hlp"\
163CLEAN : 163CLEAN :
164 -@erase "$(INTDIR)\kinsole.cn_" 164 -@erase "$(INTDIR)\kinsole.cn_"
165 -@erase "$(INTDIR)\kinsole.cnt" 165 -@erase "$(INTDIR)\kinsole.cnt"
166 -@erase "$(INTDIR)\kinsole.hl_" 166 -@erase "$(INTDIR)\kinsole.hl_"
167 -@erase "$(INTDIR)\kinsole.hlp" 167 -@erase "$(INTDIR)\kinsole.hlp"
168 -@erase "$(INTDIR)\KINSole.obj" 168 -@erase "$(INTDIR)\KINSole.obj"
169 -@erase "$(INTDIR)\KINSole.res" 169 -@erase "$(INTDIR)\kinsole.res"
170 -@erase "$(INTDIR)\vc40.idb" 170 -@erase "$(INTDIR)\vc40.idb"
171 -@erase "$(INTDIR)\vc40.pdb" 171 -@erase "$(INTDIR)\vc40.pdb"
172 -@erase "$(OUTDIR)\kinsole.ex_" 172 -@erase "$(OUTDIR)\kinsole.ex_"
173 -@erase "$(OUTDIR)\kinsole.exe" 173 -@erase "$(OUTDIR)\kinsole.exe"
174 -@erase "$(OUTDIR)\kinsole.ilk" 174 -@erase "$(OUTDIR)\kinsole.ilk"
175 -@erase "$(OUTDIR)\kinsole.pdb" 175 -@erase "$(OUTDIR)\kinsole.pdb"
@@ -204,13 +204,13 @@ CPP_SBRS=.\.
204.cxx{$(CPP_SBRS)}.sbr: 204.cxx{$(CPP_SBRS)}.sbr:
205 $(CPP) $(CPP_PROJ) $< 205 $(CPP) $(CPP_PROJ) $<
206 206
207RSC=rc.exe 207RSC=rc.exe
208# ADD BASE RSC /l 0x409 /d "_DEBUG" 208# ADD BASE RSC /l 0x409 /d "_DEBUG"
209# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" 209# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
210RSC_PROJ=/l 0x409 /fo"$(INTDIR)/KINSole.res" /d "_DEBUG" /d "_AFXDLL" 210RSC_PROJ=/l 0x409 /fo"$(INTDIR)/kinsole.res" /d "_DEBUG" /d "_AFXDLL"
211BSC32=bscmake.exe 211BSC32=bscmake.exe
212# ADD BASE BSC32 /nologo 212# ADD BASE BSC32 /nologo
213# ADD BSC32 /nologo 213# ADD BSC32 /nologo
214BSC32_FLAGS=/nologo /o"$(OUTDIR)/kinsole.bsc" 214BSC32_FLAGS=/nologo /o"$(OUTDIR)/kinsole.bsc"
215BSC32_SBRS= \ 215BSC32_SBRS= \
216 216
@@ -218,13 +218,13 @@ LINK32=link.exe
218# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 218# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
219# ADD LINK32 wsock32.lib /nologo /subsystem:console /debug /machine:I386 219# ADD LINK32 wsock32.lib /nologo /subsystem:console /debug /machine:I386
220LINK32_FLAGS=wsock32.lib /nologo /subsystem:console /incremental:yes\ 220LINK32_FLAGS=wsock32.lib /nologo /subsystem:console /incremental:yes\
221 /pdb:"$(OUTDIR)/kinsole.pdb" /debug /machine:I386 /out:"$(OUTDIR)/kinsole.exe" 221 /pdb:"$(OUTDIR)/kinsole.pdb" /debug /machine:I386 /out:"$(OUTDIR)/kinsole.exe"
222LINK32_OBJS= \ 222LINK32_OBJS= \
223 "$(INTDIR)\KINSole.obj" \ 223 "$(INTDIR)\KINSole.obj" \
224 "$(INTDIR)\KINSole.res" 224 "$(INTDIR)\kinsole.res"
225 225
226"$(OUTDIR)\kinsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 226"$(OUTDIR)\kinsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
227 $(LINK32) @<< 227 $(LINK32) @<<
228 $(LINK32_FLAGS) $(LINK32_OBJS) 228 $(LINK32_FLAGS) $(LINK32_OBJS)
229<< 229<<
230 230
@@ -420,12 +420,15 @@ LINK32_OBJS= \
420!ENDIF 420!ENDIF
421 421
422################################################################################ 422################################################################################
423# Begin Source File 423# Begin Source File
424 424
425SOURCE=.\KINSole.cpp 425SOURCE=.\KINSole.cpp
426
427!IF "$(CFG)" == "KINSole - Win32 Release"
428
426DEP_CPP_KINSO=\ 429DEP_CPP_KINSO=\
427 ".\NAWS.cpp"\ 430 ".\NAWS.cpp"\
428 ".\NEW-ENVIRON.cpp"\ 431 ".\NEW-ENVIRON.cpp"\
429 ".\options.cpp"\ 432 ".\options.cpp"\
430 ".\status.cpp"\ 433 ".\status.cpp"\
431 ".\terminal.cpp"\ 434 ".\terminal.cpp"\
@@ -434,25 +437,58 @@ DEP_CPP_KINSO=\
434 ".\VT100.cpp"\ 437 ".\VT100.cpp"\
435 438
436 439
437"$(INTDIR)\KINSole.obj" : $(SOURCE) $(DEP_CPP_KINSO) "$(INTDIR)" 440"$(INTDIR)\KINSole.obj" : $(SOURCE) $(DEP_CPP_KINSO) "$(INTDIR)"
438 441
439 442
443!ELSEIF "$(CFG)" == "KINSole - Win32 Debug"
444
445DEP_CPP_KINSO=\
446 ".\NAWS.cpp"\
447 ".\NEW-ENVIRON.cpp"\
448 ".\options.cpp"\
449 ".\status.cpp"\
450 ".\terminal.cpp"\
451 ".\TIMING-MARK.cpp"\
452 ".\TTY.cpp"\
453 ".\VT100.cpp"\
454
455
456"$(INTDIR)\KINSole.obj" : $(SOURCE) $(DEP_CPP_KINSO) "$(INTDIR)"
457
458
459!ENDIF
460
440# End Source File 461# End Source File
441################################################################################ 462################################################################################
442# Begin Source File 463# Begin Source File
443 464
444SOURCE=.\kinsole.rc 465SOURCE=.\kinsole.rc
466
467!IF "$(CFG)" == "KINSole - Win32 Release"
468
445DEP_RSC_KINSOL=\ 469DEP_RSC_KINSOL=\
446 ".\res\kinsole.ico"\ 470 ".\res\kinsole.ico"\
447 471
448 472
449"$(INTDIR)\KINSole.res" : $(SOURCE) $(DEP_RSC_KINSOL) "$(INTDIR)" 473"$(INTDIR)\kinsole.res" : $(SOURCE) $(DEP_RSC_KINSOL) "$(INTDIR)"
450 $(RSC) $(RSC_PROJ) $(SOURCE) 474 $(RSC) $(RSC_PROJ) $(SOURCE)
451 475
452 476
477!ELSEIF "$(CFG)" == "KINSole - Win32 Debug"
478
479DEP_RSC_KINSOL=\
480 ".\res\kinsole.ico"\
481
482
483"$(INTDIR)\kinsole.res" : $(SOURCE) $(DEP_RSC_KINSOL) "$(INTDIR)"
484 $(RSC) $(RSC_PROJ) $(SOURCE)
485
486
487!ENDIF
488
453# End Source File 489# End Source File
454################################################################################ 490################################################################################
455# Begin Source File 491# Begin Source File
456 492
457SOURCE=.\VT100.cpp 493SOURCE=.\VT100.cpp
458# PROP Exclude_From_Build 1 494# PROP Exclude_From_Build 1
diff --git a/kinsole.rc b/kinsole.rc
index b789f37..6e45d44 100644
--- a/kinsole.rc
+++ b/kinsole.rc
@@ -60,14 +60,14 @@ END
60///////////////////////////////////////////////////////////////////////////// 60/////////////////////////////////////////////////////////////////////////////
61// 61//
62// Version 62// Version
63// 63//
64 64
65VS_VERSION_INFO VERSIONINFO 65VS_VERSION_INFO VERSIONINFO
66 FILEVERSION 1,0,0,3 66 FILEVERSION 1,1,0,0
67 PRODUCTVERSION 1,0,0,3 67 PRODUCTVERSION 1,1,0,0
68 FILEFLAGSMASK 0x3fL 68 FILEFLAGSMASK 0x3fL
69#ifdef _DEBUG 69#ifdef _DEBUG
70 FILEFLAGS 0x29L 70 FILEFLAGS 0x29L
71#else 71#else
72 FILEFLAGS 0x28L 72 FILEFLAGS 0x28L
73#endif 73#endif
@@ -78,19 +78,19 @@ BEGIN
78 BLOCK "StringFileInfo" 78 BLOCK "StringFileInfo"
79 BEGIN 79 BEGIN
80 BLOCK "040904b0" 80 BLOCK "040904b0"
81 BEGIN 81 BEGIN
82 VALUE "CompanyName", "Klever Group (http://www.klever.net)\0" 82 VALUE "CompanyName", "Klever Group (http://www.klever.net)\0"
83 VALUE "FileDescription", "KINSole, telnet client\0" 83 VALUE "FileDescription", "KINSole, telnet client\0"
84 VALUE "FileVersion", "1, 0, 0, 3\0" 84 VALUE "FileVersion", "1, 1, 0, 0\0"
85 VALUE "InternalName", "KINSOLE\0" 85 VALUE "InternalName", "KINSOLE\0"
86 VALUE "LegalCopyright", "Copyright © 1998, 2002 Klever Group (http://www.klever.net/)\0" 86 VALUE "LegalCopyright", "Copyright © 1998-2004 Klever Group (http://www.klever.net/)\0"
87 VALUE "LegalTrademarks", "Klever Group (http://www.klevernet/)\0" 87 VALUE "LegalTrademarks", "Klever Group (http://www.klevernet/)\0"
88 VALUE "OriginalFilename", "KINSOLE.EXE\0" 88 VALUE "OriginalFilename", "KINSOLE.EXE\0"
89 VALUE "ProductName", "KINSole\0" 89 VALUE "ProductName", "KINSole\0"
90 VALUE "ProductVersion", "1, 0, 0, 3\0" 90 VALUE "ProductVersion", "1, 1, 0, 0\0"
91 END 91 END
92 END 92 END
93 BLOCK "VarFileInfo" 93 BLOCK "VarFileInfo"
94 BEGIN 94 BEGIN
95 VALUE "Translation", 0x409, 1200 95 VALUE "Translation", 0x409, 1200
96 END 96 END