Въпрос за SETI

8 отговора 164 прегледа
#1

Въпрос за SETI

Предполагам, че сте запознати с програмата Seti@home.
Писана е на C++, а графичната й версия - на MS Visual C++ (или поне е ползвана библиотека от MS Visual C++).

Та значи, въпросът ми е:
Защо в програмата (в самият изпълним файл) е включен сума ти сорс код, и то в ASCII вид? Това важи както за версията за команден ред, така и за графичната версия. И според вас като програмисти, може ли програмата още да се оптимизира за бързодействие?

Ето част от кода вътре в SETI:

geometry IndexedLineSet {
coord Coordinate {
point [
0.000000 0.000000 0.000000,
10.000000 0.000000 0.000000,
10.000000 0.000000 -30.000000,
0.000000 0.000000 -30.000000,
0.000000 5.000000 0.000000,
10.000000 5.000000 0.000000,
10.000000 5.000000 -30.000000,
0.000000 5.000000 -30.000000,
]
}
coordIndex [
0 1 2 3 0 -1
4 5 6 7 4 -1
0 4 -1
1 5 -1
2 6 -1
3 7 -1
]
}
}
Transform {
translation 3 0 0
children [
Shape {
geometry Text {
string ["Frequency"]
}
}
]
}
Transform {
translation 10.000000 3 -15.000000
children [
Shape {
geometry Text {
string ["Time"]
}
}
]
}
Transform {
translation 10.000000 3.00000 0
children [
Shape {
geometry Text {
string ["Power"]
}
}
]
}
Ќн5; р? Ђ? $@ Ђ< љ™™™™™©? р? Ђ? Ђ?{®Gбz„? @ Ђ?{®Gбz„? '  ;1,< Ђ? A ? @ -DTы!@ р?%I’=НММ= $@ ИB $@ р? >@ р?{®Gбz„? р? р? Ђ? Ђ? Ђ? Ђ? Ђ? ИB {®Gбz„? Ђ? НМММММм? Ђ? рA Ђ? р? р? Ђ? ? Ђ? Ђї Ђ? р? р? Ђ? ? Ђ? Ђ? Ђ? @ Ђ? @ @ Ђ? @ Ђ? НММ< а? р?)QО ИEи> (@ 8А (@ 8@ р? 8@ 8@ 8А р? р? Ђ? Ђ? Ђ? A Ђ? Ђ? Ђ? Ђ?НММ= Ђ? %I’= Ђ? Ђ? ИB Ђ? Ђ?{®Gбz„? ИB {®Gбz„? р? Ђ? “V-жї Ђ? Ђ< Ђ? Ђ? р? Ђ? “V-жї«ЄЄ> р?“V-жї Ђ? Ђ? @ Ђ? а? ђ?)QО ИEи> (@ 8А (@ 8@ р? 8@ 8@ЃЂЂ; Ђ? 8А а? Ђ? ? ? р?  ™™№? Ђ? Ђ? Ђ? Ђ? р? а? р?)QО ИEи> p? р? аo@ р? Ђ? ЂC ЂC ЂC (@ 8А (@ 8@ р? Ђ? Ђ? @ Ђ? 8@ 8@ 8А рA Ђ? @ А р? ? ? ? @ «ЄЄ> ? ? @ ? @@ @@·С8«ЄЄ> Ђ> ? ? @ ? @@ ? Ђ@ Ђ? Ђ? ?Б Ђ@·С8 Ђ> ? ?Б  @·С8НМL> ? ?Б«ЄЄ> Ђ? Ђ?ЧіЭ?ЧіЭ? ? р?ЄLXиz¶ы?ЄLXиz¶ы? ? Ђ> Ђ? Ђ? @ @ р? @ @ ?НМL> Ђ? Ђ?Ѕ@Ѕ@ ? р?Ёф—›wг@Ёф—›wг@ ? ?·С8 Ђ? ? ?Б·С8 Ђ? ? ?Б·С8 Ђ? ? ?Б ? Ђ? Ђ? ? р? ? ? Ђ? Ђ? р? ? ? Ђ? Ђ? р? ? Ђ? Ђї р? а? р?)QО ИEи> Ђ; C Ђ? (@ 8А (@ 8@ р? 8@ 8@ 8А рA А? ? @ а? р? р?З
р? р? р? р? р? р? р? р? р? р? р? р?'ц“
@ Ђ? љy Ђ? @zш·Ґ•Є8.­T Ђ?zш·Ґ•Є8.­T Ђ? рїЌнµ чЖ°> ? Ђ?З
р? р? р? р? р? р? р? р? р? р? р?'ц“
@ љy Ђ? @ zш·Ґ•Є8.­T Ђ?zш·Ґ•Є8.­T Ђ? рїЌнµ чЖ°> НММ= @ а? р?З
р? р? р? р? р? р? р? р? р? р? р? р? р?'ц“
@ Ђ? љy Ђ? @zш·Ґ•Є8.­T Ђ?zш·Ґ•Є8.­T Ђ? рїЌнµ чЖ°>НММЅ р? р? р? р? р? р? р? р? р? р?'ц“
@ љy Ђ? @ zш·Ґ•Є8.­T Ђ?zш·Ґ•Є8.­T Ђ? рїЌнµ чЖ°>  @·С8 Ђ? ?Б N@HЇјљтЧz>ь©сТMbP? р? {®Gбz„? рї {®Gбz„? рї рA р? р? Ђ? р? р? -DTы!@ р? Ђ? {®Gбz„? @ Ђ?'  ;1,< A%I’=НММ= Ђ? Ђ? ? ? р? Ђ? $@ Ђ< љ™™™™™©? р? рAЌн5; ИB{®Gбz„? Ђ? Ђ? Ђ? а? а? р?)QО ИEи> (@ 8А (@ 8@ 8@ 8@ 8А р? Ђ? Ђ? Ђ? р? Ђ? “V-жї Ђ? Ђ? р?“V-жї Ђ? Ђ? @ р?“V-жї Ђ? Ђ? Ђ? љy Ђ? @ zш·Ґ•Є8.­T Ђ?zш·Ґ•Є8.­T Ђ? рїЌнµ чЖ°> @ а? р?З
р? р? р? р? р? р? р? р? р? р? р? р?'ц“
@ р? р? Ђ< рA р? Ђ? Ђ? р?‘?ЯјљxV42?(X§{;MЗ>‘?ЯјљxV42?(X§{;MЗ> 8@ 8@ 8А N@ N@ Y@ аїUUUUUUҐ? АЕћBБ х@сhг€µшд> АЕћBA)QО ИEи> ЂїЮ(ХA @ ЂїЮ(ХA p@ р? рї р? @ {®Gбz„? ? а? р? р? а? а? а? рї рї р? А р? 0 YS“їяяп?юя? р? р? One or more files were inconsistent. Getting new data.
Server is down; will retry in an hour.
Can't connect to server; will retry in an hour.
Password: User name: Need SOCKS user name and password.
%s
(exiting)
Client init error: %d
Using proxy server %s:%d
Couldn't get lock file. This is probably because
another instance of SETI@home is running in this directory.
Each instance of SETI@home must run in a separate directory.
We were unable to open the network, error = %d
-login -version -countries -stop_after_xfer -stop_after_process -verbose -nolock -socks_server -socks_user -socks_passwd -proxy -pcsm -port -server -vrml -cpu bad arg: %s
code: %d
SOCKS_PASSWD SOCKS_USER SOCKS_SERVER http:// HTTP_PROXY lock.sah SETI@home client.
Platform: %s
Version: %d.%d
%d
w pid.sah rb wb user_info.sah Invalid email address: %s
Please type:
1 to set up a new account (first-time users);
2 to log into an existing account (returning users).
Your choice (1 or 2): If you need help or have questions,
please check the FAQ at [линк].
Welcome to SETI@home.
We use your email address to identify you.
Email address: Everything correct? (y/n) Computer location: 0=unspecified 1=school 2=work 3=home : Your postal code: Your country number: %d Your country number (Return see country list): OK to show your name on the SETI@home web site? (y/n): Your name or nickname: OK to show your email address on the SETI@home web site? (y/n): Bad email address - please reenter:
Your email address:
- Press Enter (%d%%) - ] %s
no yes

Here's your account info:
Email address: %s
OK to show email address? %s
Name: %s
OK to show name? %s
Country: %s
Postal code: %s
Computer location: %s

%s
A new version of SETI@home is available for download
at [линк].
The new version is %d.%d.
Home Work School Unspecified Could not allocate Power Spectrum array in v_BaseLineSmooth()
100%% done
outfile.sah Starting work for Doppler shift rate %f, FFT length %d
Doing baseline smoothing.
(This is the last message displayed while the client works.
To see progress messages between now and completion of
processing, operate the client with the -verbose option.
You can also see the progress of the client by looking at
the 'prog=' line in the state.sah file.
Beginning analysis...
%f%% done
pulse: power=%e mean=%e period=%e ra=%6.3f dec=%6.2f time=.5f freq=.2f fft_len=%d chirp_rate=%e snr=%e thresh=%e len_prof=%d prof= triplet: power=%e mean=%e period=%e ra=%6.3f dec=%6.2f time=.5f freq=.2f fft_len=%d chirp_rate=%e
x gaussian: peak=%e mean=%e ra=%6.3f dec=%6.2f time=.5f freq=.2f sigma=%e chisqr=%e fft_len=%d chirprate=%e maxpow=%e pot= spike: power=%e ra=%6.3f dec=%6.2f time=.5f freq=.2f fft_len=%d chirp_rate=%e
ab ... Searching for Pulses
... Searching for Gaussians
Zimbabwe Zambia Yugoslavia Yemen Western Sahara Wallis and Futuna Islands Viet Nam Venezuela Vanuatu Uzbekistan Uruguay United States Virgin Islands United Rep. of Tanzania United Kingdom United Arab Emirates Ukraine Uganda Tuvalu Turks and Caicos Islands Turkmenistan Turkey Tunisia Trinidad and Tobago Tonga Tokelau Togo Thailand Tajikistan Taiwan Syrian Arab Republic Switzerland Sweden Swaziland Suriname Sudan Sri Lanka Spain South Africa Somalia Solomon Islands Slovenia Slovakia Singapore Sierra Leone Seychelles Senegal Saudi Arabia Sao Tome and Principe San Marino Samoa Saint Vincent and Grenadines Saint Pierre and Miquelon Saint Lucia Saint Kitts and Nevis Rwanda Russian Federation Romania Reunion Republic of Moldova Republic of Korea Qatar Puerto Rico Portugal Poland Pitcairn Islands Philippines Peru Paraguay Papua New Guinea Panama Palau Pakistan Oman Norway Northern Mariana Islands Niue Nigeria Niger Nicaragua New Zealand New Caledonia Netherlands Antilles Netherlands Nepal Nauru Namibia Myanmar Mozambique Morocco Montserrat Mongolia Monaco Micronesia Mexico Mauritania Martinique Marshall Islands Malta Mali Maldives Malaysia Malawi Madagascar Macedonia Macau Luxembourg Lithuania Liechtenstein Libya Liberia Lesotho Lebanon Latvia Laos Kyrgyzstan Kuwait Kiribati Kenya Kazakstan Jordan Japan Jamaica Italy Israel Isle of Man Ireland Iraq Iran Indonesia India Iceland Hungary Honduras Haiti Guyana Guinea-Bissau Guinea Guatemala Guam Guadeloupe Grenada Greenland Greece Gibraltar Ghana Germany Georgia Gaza Strip Gambia Gabon French Polynesia French Guiana France Finland Fiji Falkland Islands Faeroe Islands Ethiopia Estonia Eritrea Equatorial Guinea El Salvador Egypt Ecuador East Timor Dominican Republic Dominica Djibouti Denmark Dem. Republic of the Congo Dem. People's Rep. of Korea Czech Republic Cyprus Cuba Croatia Cote d'Ivoire Costa Rica Cook Islands Congo Comoros Colombia China Chile Channel Islands Chad Central African Republic Cayman Islands Cape Verde Canada Cameroon Cambodia Burundi Burkina Faso Bulgaria Brunei Darussalam British Virgin Islands Brazil Botswana Bosnia and Herzegovina Bolivia Bhutan Bermuda Benin Belize Belgium Belarus Barbados Bangladesh Bahrain Bahamas Azerbaijan Austria Australia Aruba Armenia Argentina Antigua and Barbuda Antarctica Anguilla Angola Andorra American Samoa Algeria Albania Afghanistan United States xx key.sah Purging temp files: %s.
x work_unit.sah result.sah state.sah result_header.sah %1x r %s%s ChiSqr is %f, not good enough.
%f POT %s %d %f %f %f %f %d Checking ChiSqr for PoT dump....
Found good peak at this PoT element.... truemean is %f, power is %f
SETI@home account summary:
Name: %s
Data units completed: %d
Total computer time: %s
temp.sah wtemp.sah wu_key=%x
key3=%x
key2=%x
params_index=%d
status=%d
cpu_time=%f
user_id=%d
type=result
end_header
name=%s
version=%d
task=seti
task=seti_test
task=test
nwus=%d
nresults=%d
total_cpu=%f
params_index=%d
last_result_time=%s
last_wu_time=%s
register_time=%s
type=user info
id=%d
key=%d
email_addr=%s
name=%s
url=%s
country=%s
postal_code=%s
show_name=%s
show_email=%s
venue=%d
key email_addr url country postal_code show_name show_email venue register_time last_wu_time last_result_time nwus nresults total_cpu type=user info cpu_time params_index key2 key3 wu_key type=result task version name test seti_test seti type=work unit end_header status major_version_comment minor_version_comment message message_url quit end_reply_header user_id major_version minor_version id %x operation=%s
user_id=%d
user_key=%d
major_version=%d
minor_version=%d
platform=%s
cpu_type=%s
system=%s
id=%x
key0=%x
key1=%x
end_request_header
POST / HTTP/1.0
Pragma: nocache
Host: %s:%d
Cache-Control: no-cache
Content-Type: text/plain
Content-Length: %d

POST / HTTP/1.0
Pragma: nocache
Host: %s
Cache-Control: no-cache
Content-Type: text/plain
Content-Length: %d

POST [линк] HTTP/1.0
Pragma: nocache
Host: %s:%d
Cache-Control: no-cache
Content-Type: text/plain
Content-Length: %d

POST [линк] HTTP/1.0
Pragma: nocache
Host: %s
Cache-Control: no-cache
Content-Type: text/plain
Content-Length: %d

POST HTTP %c Receiving data: %dK recv fd=%d n=%d, errno=%d
connect gethostbyname shserver.ssl.berkeley.edu lookup_user_name Logging in - connecting to server. create_user Creating account - connecting to server. xxxxyyyy %8x send_result data_class=%d
get_work_unit %f%f Work unit file too short
send_result_get_user_stats ncfft= cr= fl= cpu= prog= potfreq= potactivity= outfilepos= bs_power= bs_score= bs_bin= bs_fft_ind= bs_chirp_rate= bs_fft_len= bg_score= bg_sigma= bg_power= bg_true_mean= bg_chisq= bg_bin= bg_fft_ind= bg_chirp_rate= bg_fft_len= bg_pot bp_score bp_power bp_mean bp_period bp_freq_bin bp_time_bin bp_chirp_rate bp_fft_len bp_pot bt_score bt_power bt_mean bt_period bt_bperiod bt_tpotind0_0 bt_tpotind0_1 bt_tpotind1_0 bt_tpotind1_1 bt_tpotind2_0 bt_tpotind2_1 bt_freq_bin bt_time_bin bt_chirp_rate bt_scale bt_fft_len bt_pot bt_pot= bt_fft_len=%d bt_scale=%f bt_chirp_rate=%f bt_time_bin=%f bt_freq_bin=%d bt_tpotind2_1=%d bt_tpotind2_0=%d bt_tpotind1_1=%d bt_tpotind1_0=%d bt_tpotind0_1=%d bt_tpotind0_0=%d bt_bperiod=%f bt_period=%f bt_mean=%f bt_power=%f bt_score=%f bp_pot= bp_fft_len=%d bp_chirp_rate=%f bp_time_bin=%d bp_freq_bin=%d bp_period=%f bp_mean=%f bp_power=%f bp_score=%f bg_pot %d=%f bg_pot %d bg_fft_len=%d bg_chirp_rate=%f bg_fft_ind=%d bg_bin=%d bg_chisq=%f bg_true_mean=%f bg_power=%f bg_sigma=%f bg_score=%f bs_fft_len=%d bs_chirp_rate=%f bs_fft_ind=%d bs_bin=%d bs_score=%f bs_power=%f outfilepos=%ld potactivity=%d potfreq=%d prog=%f cpu=%lf fl=%d cr=%e ncfft=%d OVERFLOW

bt_score=%f
bt_power=%f
bt_mean=%f
bt_period=%f
bt_bperiod=%f
bt_tpotind0_0=%d
bt_tpotind0_1=%d
bt_tpotind1_0=%d
bt_tpotind1_1=%d
bt_tpotind2_0=%d
bt_tpotind2_1=%d
bt_freq_bin=%d
bt_time_bin=%f
bt_chirp_rate=%f
bt_scale=%f
bt_fft_len=%d
bt_pot= xx bp_score=%f
bp_power=%f
bp_mean=%f
bp_period=%f
bp_freq_bin=%d
bp_time_bin=%d
bp_chirp_rate=%f
bp_fft_len=%d
bp_pot= bg_pot %d=%f
bg_score=%f
bg_sigma=%f
bg_power=%f
bg_true_mean=%f
bg_chisq=%f
bg_bin=%d
bg_fft_ind=%d
bg_chirp_rate=%f
bg_fft_len=%d
bs_power=%f
bs_score=%f
bs_bin=%d
bs_fft_ind=%d
bs_chirp_rate=%f
bs_fft_len=%d
ncfft=%d
cr=%e
fl=%d
cpu=%f
prog=%.8f
potfreq=%d
potactivity=%d
outfilepos=%ld
<ogt ncfft=%d cr=%e fl=%d cpu=%f>
<ogh ncfft=%d cr=%e fl=%d>
Base Frequency: .9f GHz
Test Data Arecibo Radio Observatory Source: %s
Recorded on: %s
Sky coordinates: %6.3f R.A., %6.3f Dec
Data Info:
bad WU header
data_type=ascii
data_type=encoded
data_class= start_ra= start_dec= end_ra= end_dec= angle_range= time_recorded= subband_center= subband_base= subband_sample_rate= fft_len= ifft_len= subband_number= receiver= tape_version= nsamples= end_seti_header num_positions= coord =%lf %lf %lf coord%d num_positions=%d nsamples=%lu tape_version=%s Unknown receiver.
subband_number=%d ifft_len=%d fft_len=%d subband_sample_rate=%lf subband_base=%lf subband_center=%lf time_recorded=%lf angle_range=%f end_dec=%f end_ra=%f start_dec=%f start_ra=%f data_class=%d end_seti_header
coord%d=.5f %6.3f %6.2f
num_positions=%d
tape_version=%s
nsamples=%lu
receiver=%s
subband_number=%d
ifft_len=%d
fft_len=%d
subband_sample_rate=%7.2f
subband_base=.2f
subband_center=.2f
time_recorded=%s
angle_range=%6.3f
end_dec=%6.2f
end_ra=%6.3f
start_dec=%6.2f
start_ra=%6.3f
splitter_version=0x%.4x
data_type=%s
encoded ascii ao1420 synthetic invalid Do_work: %d
Writing checkpoint
state=0
%d hr d min .1f sec .5f .5f (%s) Unknown error %d Identd must be running to use SOCKS 4 Failure reading or writing to the SOCKS server The SOCKS server does not support the address type requested SOCKS: An internal error has occured SOCKS: A network error has occured (TTL expired) The SOCKS server has returned a IPV6 address which is currently unsupported The SOCKS server or SETI data server has refused the connection SOCKS: Host/Network unreachable The SOCKS server has been instructed not to allow you to connect (Contact your local systems administator) SOCKS server can't connect to SETI@home server Unknown SOCKS error SOCKS server not found Bad SOCKS user name or password SOCKS server is not version 4 or 5 compatible Can't connect to SOCKS server SOCKS: Socket open failed Cannot find SOCKS server Attempt to send duplicate result Access denied by server Program file corrupted Program memory corrupted File integrity compromised Integrity file missing Client exit at user request (-stop_after options) Returned HTTP header malformed: started with an empty line Returned HTTP header indicated error status: proxy server unable to connect to SETI@Home host Account creation disabled Platform not found Database error on server New version of software available Must download new version of software No account with that email address User ID not found - please log in Result file overflow Buffer overflow reading from server Can't create network socket Server host unknown Can't decode data Bad file header Can't open file %s Garbled message from server Unexpected end of data from server Can't allocate memory Can't write to file - disk full? Can't create file %s - disk full? Can't connect to server No data available Can't delete file %s An account with that email address already exists. Unknown Power PC Alpha MIPS Intel x86 Intel Pentium Intel 80486 Intel 80386 : %lu.%lu Unknown Win32 (%ld) Windows NT Windows 95 Windows 98 Windows 3.1/Win32s encoded line has bad length: %s
too many bad lines - rejecting file
file ended too soon
i386-winnt-cmdline ]
}
}
]
}
%f, Transform {
translation 0 0 -30
children [
Shape {
appearance Appearance {
material Material {
diffuseColor .2 .8 .2
}
}
geometry ElevationGrid {
xDimension %d
zDimension %d
xSpacing %f
zSpacing %f
solid FALSE
height [
#VRML V2.0 utf8
Background {
skyColor [.5 .5 1, .1 .1 .7]
skyAngle [3.14]
}
Viewpoint {
description "Entry Point"
position 15 8 10
}
%svrml_fft_%d_%d.wrl The server has no data now; will try again.
Done with work unit.
stop_after_send.txt Scanning result header file.
data/result header mismatch
Found data file: %s. Found result header file: %s. Starting work unit without key.
Logged in as %s (%s)
Number of work units processed: %d
Total CPU time: %f
All data sent.
Sending result - connecting to server.
Can't parse work unit - sending error to server
All data received.
Getting data - connecting to server.
Error reading data: %d
Scanning data file
major_version=%d
minor_version=%d
New software version - deleting temp files.
minor_version=%d minor_version= major_version=%d major_version= version.sah getrefwu.sah work_unit.txt user_info.txt %f %d


Е, чакам мнението ви. На мен лично наличието на сорс код вътре в .exe -то ми се вижда странно...


Отговор
в отговор на Philip #2

Отг: Въпрос за SETI

А не си ли се замислял че това може да е така наречения debug information.

Отговор
в отговор на Tonimir #3

Отг: Въпрос за SETI

Debug information не остава ли също в бинарен вид?

Ако не се лъжа, такава информация не се добавя в крайната версия, за да се постигне по-малък обем...
Е, не съм програмист. Затова - питам. Това е начинът да се научи нещо за конкретен въпрос.

Отговор
в отговор на Philip #4

Отг: Въпрос за SETI

Добавя се текст. А също така в часта от кода която си дал има текст който програмата изписва при нормалната си работата в диалозите, съобщенията, менютата и др. Той също е в ASCII формат. По принцип в крайната версия би трябвало да се махне debug information, но явно са забравили. Ако имаш инсталирана някоя версия на C++ за DOS, там има една програмка която ги маха. Във Visual C++ не знам дали има такава, а и не съм търсил защото преди да се компилира програмата може да зададеш да не е Debug режима, а Release. То и в досовския C++ го има ама когато го забравиш вместо да прекомпилираш го махаш със другата програмка.


Отговор
в отговор на Tonimir #5

Отг: Въпрос за SETI

А наличието на такава допълнителна информация забавя ли работата на програмата? Или само увеличава обема?

Отговор
в отговор на Philip #6

Отг: Въпрос за SETI

В началото също се интересувах от този проблем и запитах едни големи спецове на C-то и те ми казаха, че когато се зарежда програмата за изпълнение, debug information-на не се качва в паметта. Така че нито ти заема повече байтове нито ти взема от процесорното време.

Отговор
в отговор на Tonimir #7

Отг: Въпрос за SETI

За процесорното време съм сигурен - просто не се изпълнява и debug информацията, но колкото до качването в паметта... Не се ли качва цялата програма, т.е. целият изпълним файл? Любопитно ми е как се определя да не се зареди в паметта определена секция от програмата... чрез някаква инструкция в заглавната част на .exe -то, вероятно?

Отговор
в отговор на Philip #8

Отг: Въпрос за SETI

Debug informaciqta se zarevda SAMO ot debugeri !
Tq nqma nikakwo otno[enie po wreme na izpalnenie na programata. Samata programa dave i ne podozira za tazi informaciq. Informaciqta se zarevda SAMO I EDINSTWENNO ot debugeri.


BTW. ima nqkolko razli`ni debug informacii:
1. Microsoft
2. Borland
3. i t.n. ..




Отговор
в отговор на xakepu #9

Отг: Въпрос за SETI

програмата си подозира за тях и още как иначе jump-овете щяха да се мятат на ASCII код и да забиват.
ама дееба толкос ли няма с кво да си праят програмите по-големи ами с тея тъпотии
всичкия ASCII код е записам под формата на стандартна константа (с например EQU, const и т.н.)

Отговор