|
ArcaOS 5.0 Russian
Russian ARCAOS exists and it's available since the middle of 2017.
All versions are supported: 5.0, 5.0.1, 5.0.2.
eCo Software is able release OS/2 LIP packages for any other language
(German, Dutch, Brazilian Portuguese, Spanish, Sweden, etc)
|
Using XObject for Configuration Files |
TITLE: Using XObject for Configuration Files
DATE: 2010-09-28 11:21:23
AUTHOR: Joseph Shrago
Please use online translator go to http://translate.google.com and request the translation of http://ru.ecomstation./showarticle.php?id=220 to your language |
..........:
... ...... ......... ......... ........ ...... . ....... ............
(ini-......, ........, registry . ......).
.. .... ........... (................) ....... ........... ...... ........
(............) ........... ............. ... .......... ......
(....... ........ ... OS/2), .. ....... ...... ............. ........ .... ........
.............. (.............) ........, . ..... ........ (API) .............
... . ..... OS/2.
.... ........ ..... ........... ........ ........ . .... ... "........=........",
..... ....... .............. . ..... ......... *ix (..... ....... .. ..
........ .... .. ......... .......... ...... ....... . sendmail.cf - ....
...... .. ...), .. ....... .. ....... ...... .... ......... (.........)
...... config.sys . autoexec.bat, ......... .......... ....... ..........
...... .... ........ ...., . ........ ......., ........ ..... ..... config.sys
.....:
SET EPMPATH=C:\OS2\APPS;C:\opendoc\BIN;
PROTECTONLY=NO
SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS
FCBS=16,8
RMSIZE=640
DEVICE=C:\OS2\MDOS\VEMM.SYS
DOS=LOW,NOUMB
DEVICE=C:\OS2\MDOS\VXMS.SYS /UMB
DEVICE=C:\OS2\MDOS\VDPMI.SYS
DEVICE=C:\OS2\MDOS\VDPX.SYS
DEVICE=C:\OS2\MDOS\VWIN.SYS
DEVICE=C:\OS2\MDOS\VW32S.SYS
........... ..... ......... ........ - .. .. ......... ............. ........
........ ...... ........ . ..... ...... .... ... ............. ..........
........... .......... . .. ...... ....... .......... .. .. .. .... .......
.........
.............. .......... ..... ......... ....... . ini-...... .. Windows
X.XX (........ 3.11) .. .... ........ ....... ........... ...... .........
............... ........ . ............. ....... .. ........ ........ ...
.. .... .......... "... ......"-"... .........", ... ....... ........ ...
...... .. ..... SYSTEM.INI ... WIN-OS2 ......:
[keyboard]
subtype=
type=4
keyboard.dll=kbdru.dll
oemansi.bin=xlat866.bin
typeofswitch=2
secondkeyb.dll=kbdusx.dll
[boot.description]
keyboard.typ=Enhanced 101 or 102 key US and Non US keyboards
mouse.drv=Microsoft, or IBM PS/2
network.drv=No Network Installed
language.dll=Russian
system.drv=MS-DOS System
codepage=866
woafont.fon=Russian (866)
. ........... ..... ...... ..... ....... .............. ................
... ...... . .......... ...... ....... . ...... ..... ...... . ..........
........... ......, ... ...... ....... .... .. ... .............. .......
........ ......., ... ... ..... ... ... ..... ........... .........., ..
... .......... .. ..... ............ .......... .... .......... .
........., . .... .............. .............. .............
..... ....... ........, ... ....... . ..... ..... .... .. .....,
.... ........ .......... .... . ............, .. ..... .....
......... ..... . ........ .... ........-.......... ..... registry ..
Windows9X . ....., . ..... ini-..... . OS/2. ........ .. ....... .. ..............
......... . .... .. ............. ....... ......... - ... .............
........... ......... ......... (........ .... ...........) . .........
....... ....... ...... .... .. .... ........ ........ ........ ..........
...., ... .. ...........
... ....... ............ .......... ......... ....... (. OS/2 .. ..........
. WINPRF.DLL) .......... ........ .......... . .......... ...... ............
.......
... .......... ....., ......., ..... .........., ..... ...........
...... ... ........... ............. .........
.........-......... ... ..........
........ ... ......... ......... ........ . .... ... ......... ...............
......... ......... ......... ....... ......... . ........, .... .. ......
.......... .. ...... .............
.. ........ ...... .... ........ ......... .......... ........... ........
- .......... .......... ............, .......... ..... . .. ......... .
............. ......, ........ ......... ........ ........... .. ......
........ (..... .......... .... .. ......) . .... . ....
........ ........ ...... .... ........... ...... .............. .........
...... ......... .......... ........... .......... ... .............. .....
........ . ....... .. ..........
......... ........ ...... . .... .. ............ ..... ...........
.. ...... ........., ... ...... .... ........... ........ .. ...... ........
. ....... . .... . .... .......
...... ........... ........ .......... ............ .........., .......
...... .... .............. ........ ... ...... . ....... . ........ .....
... .......... ........ .. ..... ........ ....... ............. .........
..... ..... ........... .......:
- WPS-........ ....... .......... ....... ........ (........ ............,
........ . ......);
- WPS-........ ... ......... ....... .... ............... ..... (........
........ ............, . ...... . ......... ... ........);
- ............ ...... ........... .. ........ .......... ...... . ........
. .... ........... ......... . ......-.........
......... ........ ...... ....... ...... .. ..... ............. .........
........... .......... ........ . ....... ......... .. ..., ..., ...........,
..... .........
... .......... .........., ... ...... .........-............ ......,
... ........ ... .....-.. ......... ... ........ . .. .... .. .... .. ..........
.... ......... ........ .. ......... . ........, .. ...... .......,
...... .............. ........ ............. Profile API ... .............
....... .............
... ... ........ ... .. ............ ......... .......... . .........
................:
- ... ........ ...... ............ ...... ...... ..... ........... . ..........
(.. ......);
- ... ........ ........... . ........ (........... ............. ...... .
......... ......) ..... ............ ...... ..... ... ........., ... .
........ ............., ... .. ...... ...... .. ...... .. .............;
- ............ .... ...... ......... ...... ...... ............. ... ..........
"...... ......" . .........;
- ............ .... ...... .... ........;
- ............ ...... ........... ....... .......... . ...... .......
... .......... . .... ........... . ............ .......... ...... . .......
............. ... .......... ........., .......... ....... ........, WPS-......
............ . ......, . ..... API ... ...... . ...... .. ...........
............ ........:
..... .... ............ ............... ... ..... ..... ......... ......
.... ..... .... ........ . ........... ..... ....... ... .... ............
........ ........ ....... .......... .... (......).
............ ......... ........ ........ ......., ....... .........
......... ......., .......... . .............
........ ............ .....-.. ... . C++ : \xx, \\,\n,\t, etc, . .....
........... ........ %.
........... ............ .......... ........ //, /*,*/ . ....... ..
............. .......... .++.
....... ......... .......... .........:
.............. |
transient |
....... .. ...... ... ........ .. .........; ..... .... ....... . ......
............. |
....... .... ...... |
int
double
string
group
|
..... (4 .....)
............ (8 ....)
...... ........ (.. ........... .............. \0)
...... ............ ........ - ......... ...... .. ...... ........
|
....... .... ...... ... ............ . ...... |
IntField
DoubleField
StringField
TextField
RadioToggleField
CheckBoxField
ComboTogleField
ReferenceField
PasswordField |
..... .............. . ........... int
..... .............. . ........... double
..... .............. . ........... string
..... .............. . ........... .......... .... (textarea)
..... ...... . ....... . ....... RadioButton
..... ...... . ....... . ....... CheckBox
..... ...... .. ...... . ....... . ....... ComboBox
.....-...... - . ....... ............. . ....... drag&drop
..... ... ..... . ........ ......, ............... .. GOST 21847-89 |
......... ... |
ObjectListField |
..... .......... ......... ......... ............. .... |
|
namedgroup |
....... .. .... group, ............ ... ........ ....... . ...... |
..... ......... .. ........ . ............ ......... :
IntField = . string title = "" // ........ ......... ... ...... . .............. . ....... int value = 0 // ........ .... int min = 0 // .............. . ....... .......... ........ ...... value int max = 0 // .............. . ....... ............ ........ ...... value int delta = 0 // ... ............. ... .............. . ....... .
DoubleField = . string title = "" // ........ ......... ... ...... . .............. . ....... double value = 0 // ........ .... double min = 0 // .............. . ....... .......... ........ ............. value double max = 0 // .............. . ....... ............ ........ ............. value double coef = 0 // ........... ........ (... ...... .............. . ..... ........ // ........., . ............. . ......) double delta = 0 // ... ............. ... .............. . ....... int decimals = 0 // .......... ......... ... ...... . .............. ...... // ..... .......... ..... .
StringField = . int max = 0 // ............ .......... ........ . ...... string title = "" // ........ ......... ... ...... . .............. . ....... string value = "" // .... ...... .......... .......... ......... '...' ............ ...... // (\0 .. ........) .
TextField = . // .......... StringField, .. ............ ..... textarea (MLE) int max = 0 string title = "" string value = "" .
RadioToggleField = . // ........ ....... .... .. .... - .......... ........... ........ string title = "" int value = 0 // ........ ..... ......... ...... group elements = . . // ..... ..... .... string .
CheckBoxField = . // ........ ....... .... .. .... - .......... ........... ........ string title = "" int value = 0 // ........ 1 .... ....... ...... .
ComboToggleField = . // .......... ........... ... ....... ComboBox string title = "" int value = 0 group elements = . . .
..... ReferenceField ......... ............ ......... ........ . .....,
...., ........, ........... ....... ....... .. ......... ....., ......
.. ....... ..... .... ......... . .............. . ..... ......, .
........, .... ......... ...... ....... ............ .. .........
.......
ReferenceField = . // ......-...... .. ...... ....... . ....... ......... drag&drop
string title = ""
string class = "" // ... ...... ....... ........ ..... ......... ...... ....
// (.. ..... .... ..... - class0|ckass1|...|classN)
string value = "" // ... ...... ..... ........... ......
int value2 = 0 // WPS-objectid
.
..... ObjectListField ......... ......... ...... ......... ........,
...., ........, ...... .......... . ...... ... ...... ......... ....... .......... ................. ...... ............
ObjectListField list = . // ...... ...... ........ ReferenceField ......... ......
transient string title = ""
transient group factory = .
ReferenceField rs = .
transient string title = ""
transient group menu = .
"......."
"........"
.
transient string class = ""
string value = ''
int value2 = 0
.
.
transient group buttons = .
"........"
"......."
.
group elements = .
.
.
... ...... ....... ObjectListField . ...... .........
........ ........ string title ........ ........, ...., ........
........ name|value, .... . ........ .......... .......
...... ....... StringField name.
...... . ......, ......... . PasswordField, ............ .............. .......:
rc=getPasswordFieldValue(*XObject,password,sizeof(password));
. ........ ..... ............. (... ........ ........... .....), ..........
..... ...... .......:
ColorMaskField = .
string title = ""
int fcolor = 0 // .... ......... .....
int bcolor = 0 // .... .... int width = 16 // ...... . ...... int height = 16 // ...... . ...... string value = '' // ..... ....... 8*8
.
..... ..... ........, ... .......... . ................. ......:
- title - .. ......... ..... ......-........ ........, ....... ............
. ....... . ... ......;
- status - ... ...... ...... SUBTITLE ........ .......
- value - .. ......... ..... ........ ........;
- elements - ............ ... ........ ....... . ......;
- pages - ......... ........ .......;
- sections - ......... ...... ...... ........
.. ...... .... ....... . ....... ..... ..... ......... .... ....... ...... .........
..., ........, ........
.....-........ ......... .........:
DEngine drill=.
string title="........ ........."
DoubleField diam_zd =. title="....... ............." coef=0.001 decimals=1 delta=0.1 min=30 max=400.
DoubleField leng_zd =. title="..... ............." coef=1 decimals=2 delta=0.01 max=50.
DoubleField q_zd =. title="...... ............." coef=1000 decimals=1 delta=0.1 min=30 max=400.
DoubleField dens_zd =. title="......... ........" coef=1000 decimals=2 delta=0.01 min=0.8 max=2.5.
DoubleField loss_px_zd =. title="...... ........ .. ........ ...." coef=98100 min=1 max=200.
DoubleField freq_nx_zd =. title="....... ........ .. ........ ...." coef=0.01666 min=10 max=999.
DoubleField loss_pt_zd =. title="...... ........ ... .........." coef=98100 min=1 max=200.
DoubleField moment_t_zd=. title="......... ......" coef=10 min=1 max=1500.
ComboToggleField drop =.
string title ="... ........."
group elements = .
string = "........ . .......... ......"
string = "........ . ........ ......"
string = "........ ........."
.
.
.
. ... ........ ........ ........... ......... ......... (/* ...........
*/ . ...... ...... ......... ... ............. ...... ... XObject):
/* XObject */
DEngine = .
diam_zd = .value = 30.0000.
leng_zd = .value = 0.0000.
q_zd = .value = 30.0000.
dens_zd = .value = 0.8000.
loss_px_zd = .value = 1.0000.
freq_nx_zd = .value = 10.0000.
loss_pt_zd = .value = 1.0000.
moment_t_zd = .value = 1.0000.
drop = .value = 0.
.
...... ......... .......... ........... ......... . ...... .......... .......
. ............... .....: min, max . .......
... .......... ..... ...... - ".... ..... ...... ... ........ . ........!"
......... . .......... ................ . ..................., ...
............ . .......
......, ... .......... ....., WPS-...... ................ ..........
.............. ..... ........ ....... ... ........ ..... ....... (property).
... ..... . ........ ...... ........ ........... ........ - group .
....... pages ( ... .......) . sections (... ......).
... ... ........ ........... ...... ..... ...... :
group pages = .
namedgroup = . // ........ ........ .......
title = "%MajorTab" // ...... % ........ MajorTab elements = .
string = "... 1" // ....... ......
string = "... 2"
...
string = "... N"
.
.
namedgroup = . // ...... ........ .......
title = "MinorTab ........"
elements = .
string = "... 1"
string = "... 2"
...
string = "... N"
.
.
... // ...... ........ .......
.
... ... ........ (. ... .........) ..... ........ ...... ......... .........
(DEngine) ........... . .......:
DEngine drill=.
...
group pages = .
namedgroup = .
string title = "%........ ........."
group elements = .
string string = "drop"
string string = "diam_zd"
string string = "leng_zd"
string string = "q_zd"
string string = "dens_zd"
string string = "loss_px_zd"
string string = "freq_nx_zd"
string string = "loss_pt_zd"
string string = "moment_t_zd"
.
.
.
.
|
|
........ ........ .. ...... ........ - .... ... ......... ...... .
....
........... .... ...... ..... ....... . ....... ...... ..........
(........./........).
......... ......... ..... .......... ...... ..... .... ....... .
.......
.......... .......... . ........, ..... ...... ..... .... ...... .
........
........., . ..... ........ . ........ ..... . ...... ........ .
........ ...., ...... ......... .... ....... .. ........ .........
......... ........ ...... ........ .. ........., ....... ......
......... ..... XObject ........... ...... ...........
... ........ ...... ....... ............ .......... .............. group
sections . ..., ... .......... ... ......:
DEngine drill=.
...
group sections=.
namedgroup=.
title = "........ ........."
elements=.
string ="drop"
string ="diam_zd"
string ="leng_zd"
string ="q_zd"
string ="dens_zd"
string ="loss_px_zd"
string ="freq_nx_zd"
string ="loss_pt_zd"
string ="moment_t_zd"
.
.
.
.
|
|
...... ....... ............ .... .. ... .... .... ....... .............
... ..... .. ..... (......) .........
.... ........ ...... ...... ...... ........ ... .. ......, ... ReferenceField
...... ........, ... ...... ..... ......... ...:
... ... ... ............:
... ............. ............ ....... ...... . .............. ..........
. ..... ... ........ ......... .......... ......... AMT_PATH ....... ....
config.ini .......... .......... (.. ....... .........):
/* AMT */
group Config = .
string customer = "... ..."
int loglevel = 0 // -1 ...... .......... ..... . .... \xobject.log
// 0 ........ ...... ......... .........
// 1 ........ .............. .......... .. .......
group classes = .
string = "classes.ini" // ........ ..... ....... (...........)
string = "common.ini" // ........ ...... ...... ..... .......
string = "DSTclass.ini" // ........ ....... ........ .........
string = "KRSclass.ini" // ........ ....... ......... ... ............ ....... .......
.
.
.... .... ............ WPS-........ AMTWPSXObject ........... ....... .
...... ........ .............
.... ...... ............ . ........... AMT.
. ......... .. .......... ......... LIBPATH ....... ........... ...
............ .......... ........ XObject . ........ ........... .
....... .......... ....... .. Rexx:
/*********************************************************************/
/* XObject registration utility*/
/*********************************************************************/
Call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
Call SysLoadFuncs
Say 'AMT XObjects to be registered'
rc=SysRegisterObjectClass('AMTWpsObject', 'amtwpso')
if rc then say 'AMTWpsObject registered'
else say 'AMTWpsObject cannot be registered'
................ . ....... API XObject:
... ................ .......
...... ......... ........ ............ ....... - ........ .... config.ini
. ... ............. . ... ..... ... ...... ...... ................ .....
.... ...... .......... .... ......... ....... ......... . config.ini:
#include "common.h"
XObject *o_config; // ... ........
// ....... .............. .......... ................. ....... XObject
// . .......... ...-.. ....... . ...........
int InitXClasses(void)
.
char buf[256]="", *str;
char *amtPath = getenv(AMT_PATH);
int num=0;
XOBJECT_INITIALIZE
// ........ ......... .......
buf[0] = 0;
if (amtPath) strcat(buf, amtPath);
strcat(buf, "\\");
strcat(buf, AMT_CONFIG);
o_config = XObject::loadObject(buf);
if (!o_config)
return 1;
o_config = o_config->getGroupElement("classes");
for (int i = 0; igetGroupSize(); i++ )
.
str = o_config->getGroupElement(i)->getStringValue();
if (str)
.
buf[0] = 0;
if (amtPath)
strcat(buf, amtPath);
strcat(buf, "\\");
strcat(buf, str);
num += XObject::loadClasses(buf);
.
.
return num;
.
C........ ...... .... ............. . ......... ........ ......... .........
...... ........ ... .........:
.
...
o_main=XObject::loadObject(file_name); // ........ ..... ........... ........ if (!o_main) return 1; // ...... ...... ........ - ....... . ......... ......
...
o_sub = o_main->getGroupElement("title");
Name=strdup(o_sub->getStringValue());
o_sub = o_main->getGroupElement("model_type");
model_type=o_sub->getIntValue(); // ... (.....) ...... ....... .........
o_sub = o_main->getGroupElement2("mode|value"); // ..... ............ ......... ...
mode=o_sub->getIntValue(); // ... (.....) ...... ....... .........
// .... ....... ........ ......., ..... ............... ....... GetValue(name),
// ....... ... . ........ ...... ......
o_ref=o_main->getValue("derrik"); // ......... ........ ....... .....
// ... ..... .......
// o_ref=XObject::loadObject(o_main->getGroupElement2("derrik|value")->getStringValue();
// ......... ........ ......... g_kv . ....... ..
g_kv=o_ref->getGroupElement2("g_kv|value")->getDoubleValue() * o_ref->getGroupElement2("g_kv|coef")->getDoubleValue();
.
... ... ...... ...... .............
...... . ......... ............ (..........) .....
............ .. ...... ..... ...... (name), .. ......... ...... ("name|subname"),
. ..... .. .. .......... ....... . group. . ........... .... ........
......... ......... ........ ......... ..... .......
.. ..... <%1|value>, .... diam_zd ..... .......... ..... .... . .......
...... XObject ......... ..... . ......... .
... .......... .......... ........... ... .... ........ ...........
............, ...... . ................ ..............
... .................. ........ ........ public ........ ...... XObject
class _Export XObject . public: static void setLogLevel(int); static int log(char*, ...); static int log(int, char*, ...); static int logObject(XObject*, char* = NULL); static void logClasses();
static void initClass(); static void unInitClass(); static int loadFile(char*, char**, int*); static int saveFile(char*, char*, int); static XObject* getInstance(char*, char*, int = FLAGS_NORMAL, int =-1); static XObject* getInstanceText(char*, int*, int =-1); static XObject* getInstanceBin(char*, int*, int = -1); static int loadClasses(char*); static XObject* loadObject(char*); static int saveObject(char*, XObject*); ... public: static int getClassNum(); static char* getClassName(int); ... public: virtual ~XObject(); int isVoid(); int isInteger(); int isDouble(); int isString(); int isComplex(); int isGroup(); int isObject(); int isObject(char*); int isBasic();
virtual XObject* clone(); int initFrom(XObject*);
char* getName(); int setName(char* n); char* getClassName(); int getClassVersion();
int getFlags(); int setFlags(int); void flagSet(int); void flagClear(int); int flagIsSet(int);
int getSizeBin(); int getSizeText();
int getIntValue(); int setIntValue(int);
double getDoubleValue(); int setDoubleValue(double);
char* getStringValue(); int getStringSize(); int getStringLength(); int setStringSize(int); int setStringValue(int, char*); int setStringValue(char*);
int getGroupSize(); XObject* getGroupElement(int); XObject* getGroupElement(char*); XObject* getGroupElement2(char*); int addGroupElement(XObject*); int removeGroupElement(int); int removeGroup();
int loadBinFile(char*); int readText(char*, int); int readBin(char*, int); int writeBin(char*, int); int writeText(char*, int, int = 0);
virtual XObject* getValue(); virtual int show(int); virtual int print(int); virtual int html(int); // misc static char* strPrintInteger(char*, int, int); static char* strPrintDouble(char*, double, int, int); static char* strPrintString(char*, char*, int, int*); static char* strPrintStringEsc(char*, char*, int, int*); ... .;
.... ... ........... ......... ...., .. ...... ....... ........
... ............ ......
.... .. ...... ......... ... ...... .......... . .......,
...... ....: Joseph Shrago -- e:mail : LFer at rambler dot ru
Test the program:
|
Piano Launchpad - launch pad for your favorite applications
|
Comments: ....... 2010-10-04 17:17:30 | . ..... ... ... ............. .. Rexx'..?!
... .... ... .... .. ..... ........ | joseph 2010-10-06 18:31:39 | .. ...... .......... ............. ...... ... . ...... ..... ..... ....
.......... .. ..... ....... ......... .... . ........... xob . ..... ........ - ........... .
name_of_class=.. ..... .... .. ......... ... Xobject.
.... .... .... . rexx2xobject API .. ..... ....... .. ...... ............ ..... ....? | .......: 2010-10-12 23:52:03 | joseph: . ....... ......... ........... ...... .... . ............ .... .. ... .... ........ ..... ..... ........... ...... ... ...... ........ ............ ........... ........... ..... .. .. ...... .............. | Joseph 2010-10-14 15:50:44 | ......., ..... ....... ....... - ...... ....... . ......... Xobject . ........ . .... rxXobject.dll ............ ...... ....... ... ...... | ....... 2010-10-15 15:24:35 | Joseph: ...... Dll .. ......? :))) .. . .. ...., ....... ...... ..... 8 ... ....., ... ... .... .. ........ .. ... . ..... ........?
Rexx .......... ...., . ...... ........ . .... :), . ... ... 6 .... ...... .. .... ..... .... rexx ........ ............ ............. ... ............. ....... ... ....... .......... ..2 ... ....... . ..... .... ......... ........ . ..... (.... ........... .........), . .. ....... ... ......... ....... ...... .... ......... . ...... .. 100%, ... ... .. ... ..... ........ . . ........ .. ... ..... .... .......... ..........
. ... ......... .... ............., ....... ...... ...... . ...... ...... ................. :( ... .... ...... ... .......... .. ...... . ....... ......... . .... .. rexx ... ... ... ...... .. ... dll'.. . ... ........ .. ....... . .... ... ........ ... .. ....... .. .. ........., ....... . ... ..... . ....... ... ......, ... .......... .. ..... .... (... ....... ........).
....... ........ ........ ............., ............ ........... ........ ..... . . eCS. . ...... .... ........ .. ........ ........ ..........., . ........ Rexx'... ..... ..... ........ ... rexx - ... ....... ....... os2 (eCS). ... ... . ....! .. . ......... ..... ... ......... ..... ........, ... Rexx ...-.. ......... . ...... ....... ...... ... .............
.. .... .......... . ..........., . .... . ...... ........... .... .......... ... ....... ....... ..... ..., .. .. ... ........ ......, ....... ........ ...... ........ .. .......... ...... .......... OS2 (eCS) . Rexx'.... .......... .. ........... ........ ....... ... . ............ .. .... ....-........ ....... ........ ...... ........ OS2, Rexx ..... .... .. ........ ...... ...... ... .... ........ .............. ....... (......: ......... ......... Mesa) . .... ........... ......... ..... ......... . ........... .. .......... ..... . rexx'... _........._ ............ . ... ....... ....... . ......... ...... ... ........... ........ .... ........ . ... ... ....... ........ ......... ..... ............ . . ........ :( ... . ...... ....... ........, ......... ........ . ......... ............ (..... . .. ........).
.... ......., ... ...... ... ...... ..... ....... | Joseph 2010-12-24 21:20:40 | ....... REXX API ... XObject | Joseph 2011-03-15 17:55:35 | .......... . XObject .............. ..... ......... ..... ...... ........ .. ..... ...... (... ......), .. . .. ..... ....... ...... ....... ......... ... .... . Warpin. |
Comment this article.
|