AVR GCC&IAR

Jan 06, 2004 Last reply: 22 years ago 1699 Replies

Hello, Maxim Polyanskiy !

HÅ ÚÁÇÏÒÁÅÔÓÑ. åÓÌÉ ÁËËÁÍÕÌÑÔÏÒ ÕÂÉÔÙÊ, ÏÎ ÍÏÖÅÔ ÕÍÅÒÅÔØ ×ÏÔ ÔÁË ×ÏÔ ÓÒÁÚÕ. ðÏÛÅÌ ÞÅÌÏ×ÅË × ÓÕÐÅÒ, ÚÁÂÙÌ ÆÁÒÙ, ×ÅÒÎÕÌÓÑ - É ÏÐÁÎØËÉ.

íÏÖÎÏ, ÅÓÌÉ ÕÍÅÔØ ÜÔÏ ÄÅÌÁÔØ. ñ Õ×ÅÒÅÎ, ÞÔÏ Ñ ÎÁ ÍÅÓÔÅ ÈÏÚÑÉÎÁ ÔÏÊ ÍÁÛÉÎÙ, ÎÁÛÅÌ ÂÙ ×ÙÈÏÄ. åÓÌÉ ÜÔÏ ËÏÎÅÞÎÏ ÎÅ ËÁËÁÑ-ÔÏ ÓÉÇÎÁÌÉÚÁÃÉÑ Ó ÕÍÁ ÓÏÛÌÁ. ëÓÔÁÔÉ Õ ÔÏÇÏ ÖÅ ÓÏÔÒÕÄÎÉËÁ ÂÙÌÁ ÐÏÈÏÖÁÑ ÐÏ ÓÕÔÉ ÉÓÔÏÒÉÑ. ðÏ ÎÁÓÔÏÑÎÉÀ ÓÔÒÁÈÏ×ÏÊ ËÏÍÐÁÎÉÉ Õ ÎÅÇÏ ÂÙÌÁ ÕÓÔÁÎÏ×ÌÅÎÁ ÜÌÅËÔÒÉÞÅÓËÁÑ ÂÌÏËÉÒÏ×ËÁ ÚÁÍËÁ ËÁÐÏÔÁ, ËÏÔÏÒÁÑ ÂÅÚ ÁËËÁÍÕÌÑÔÏÒÁ ËÏÎÅÞÎÏ ÎÅ ÄÁ×ÁÌÁ ÏÔËÒÙÔØ ËÁÐÏÔ. äÁÌØÛÅ ÐÏÎÑÔÎÏ? HÅÔ, ËÁÐÏÔ ÏÎ ÎÅ ÌÏÍÁÌ, ÚÁÒÑÄÉÌ ÂÁÔÁÒÅÀ ÞÅÒÅÚ ÐÒÏ×ÏÄÁ Ë ÕÓÉÌÉÔÅÌÀ, ÂÌÁÇÏ ÏÎÉ ÂÙÌÉ...

HÁ ÒÕÌÅ ÏÂÙÞÎÏ ÚÁÍÏË ÍÅÈÁÎÉÞÅÓËÉÊ, Á ÉÍÍÏÂÉÌÁÊÚÅÒ ÎÅ ÄÁÅÔ ÒÁÂÏÔÁÔØ Ä×ÉÇÁÔÅÌÀ.

óÉÔÕÁÃÉÑ-ÔÏ ÛÔÁÔÎÁÑ, ÔÏÌØËÏ ÐÒÉ×ÅÌÁ Ë ÂÏÌØÛÉÍ ÐÏÔÅÒÑÍ.

íÏÖÎÏ, ÎÏ ÄÁÖÅ ÂÅÚ ÜÔÏÇÏ ÒÅÍÏÎÔ Á×ÔÏÍÁÔÁ - ÂÏÌØÛÉÅ ÄÅÎØÇÉ.

á ÞÔÏ ÄÏÌÖÎÏ ÕÄÅÒÖÉ×ÁÔØ Á×ÔÏÍÏÂÉÌØ? óÃÅÐÌÅÎÉÅ?

õ ÔÏÇÏ, ËÔÏ ÜÔÕ ÓÉÓÔÅÍÕ ÐÒÏÅËÔÉÒÏ×ÁÌ ÉÌÉ ÓÔÁ×ÉÌ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

AM> Значит с времением реакции. Я привел пример по регисрам R6, R7 для х51

MP> Hу давай твой пример обсудим. Hу и что ты глобально будешь хранить в R6-R7? MP> Память через них не адресуешь.

...

Ну вот решил программист там что-то хранить, так ему захотелось. Зачем, вопрос десятый. А сопровождать выпало тебе.

AM> Усложнение твой жизни меня слабо интересует. Я использовал Си и жизнь AM> мне использовнаие индексных регистров нисколько не усложняло, и AM> устройства эти работают до сих пор, с индексными регисрами. У тебя AM> есть какие-то объективные аргументы против использования AM> индексных регистров? Чем это плохо?

MP> Я не против регистров. Я против их бездумного использования.

Они специально предназначены для адресации локальных переменных функций, размещенных в стеке и для адресации аргументов функций, переданных через стек. Для этого они и используются компилятором.

AM>> И какие процессоры с индексными регистрами ты еще знаешь? MP>> Лучше наверно сказать какие я знаю без них. Hапример пики - очень MP>> добрая архитектура. Как не напиши - все понятно. Hикаких хитростей MP>> не придумаешь. ;)

AM> Это все? То есть разработчики большинства uC дураки, намеренно ввели AM> усложнение в архитектуру в виде индексных регистров, чтобы побольше AM> денег содрать с потребителей?

MP> Расслабься, я нигде не говорил, что наличие таковых регистров плохо.

Ты сказал, что видел их использование раз в жизни в коде поcле компилятора, что тебя сильно напрягает.

MP>> Тебе не приходила в голову идея, что локальные переменные зачастую MP>> не нужны?

AM> Да, а запопинание значений в промежуточных точках будет делать AM> А.С.Пусшин

MP> И сколько их - тех значений? Ты знаешь как переменные передаются при большой MP> вложености функций в архитектурах с "резиновым стеком"?

Очень хорошо, засовываются в стек, потом адресуются по смещению через индексный регистр.

MP> Это просто кошмар какой-то.

Ничего не кошмар

MP> А если эти функции в результате идиотизма человека писавшего MP> программу еще и переформатируются

Что за термин такой, переформатируются?

MP> - эти самые наборы локальных переменных, в результате дублируются в стеке раз MP> эдак пять

За счет чего?

MP> Когда проще было бы 1 раз организовать глобальную переменную с MP> четким форматом и использовать ее во всех этих процедурах.

Глобальным переменным - свое место, локальным свое. В большей степени зависит от конкртеной задачи.

MP>> А так-же что большинство яву алгоритмов имеют избыточные MP>> переменные AM> Какая разница, на чем написан алгоритм. Количество переменных AM> определяется алгоритмом, а не языком, на котором он выражен. Будешь AM> спорить?

MP> Буду, ты путаешь АЛГОРИТМ (последовательность действий) с РЕАЛИЗАЦИЕЙ (оного на MP> конкретно взятом ЯВУ/CPU, в условиях ограниченности данного ЯВУ/CPU). Пример:

MP> a=a+b

MP> Алгоритм выглядит так - 1) Складываем а и б 2) помещаем результат в а. Все, MP> число переменных тут 2 ШТУКИ! а и б.

MP> А вот теперь представь реализацию, если а и б - числа длинной в милион знаков MP> на своем любимом языке программирования. Hу и сколько будет переменных? Так вот MP> милион, это мало, пусть знаков в числе больше, чем атомов во вселенной - MP> алгоритм от этого нисколечко не изменяется. А вот его реализация становится MP> абсолютно невозможной! И это если еще не касатся представления самих чисел.

Причем это будет спаведиливо как для асм, так и для ЯВУ. И в чем прикол?

MP> Ты 2 лонга на пике не хочешь перемножить? Вон Орлов отказался ;)

Не пишу на PIC, если бы писал, думаю особых проблем не возникло бы.

MP>> (например счетчик while и AM> Что, счетчик while? AM> Hа асм не надо такого же счетчика? MP> Hадо. Hо но он будет считать в ту сторону которую мне надо и будет MP> инициализироватся тем значением которое мне удобно, в отличии от сей, где для MP> упрощения понимания счетчики практически никогда не считают назад.

Keil 51, v5.20

65 1 unsigned char down_cnt = 20; 66 1 do 67 1 { 68 2 } while (--down_cnt != 0);

; SOURCE LINE # 65 ;---- Variable 'down_cnt' assigned to Register 'R7' ----

0000 7F14 MOV R7,#014H ; SOURCE LINE # 67 ; SOURCE LINE # 68 0002 ?C0007: 0002 DFFE DJNZ R7,?C0007

Как видишь, все считает куда тебе надо. И инициализируется, как тебе удобно, без отличия от асм.

MP>> индекс массива явно заданный как переменная, MP>> считающие вперед и различающиеся на еденичку а то и вообще MP>> одинаковые).

AM> И что? Причем тут Си? Ассемблер то эти счетчики в воздухе хранит, AM> что ли?

MP> В регистрах в соответствии с требуемым размером а не по 4 байта в стеке в MP> соответствии с так любимой тут яву-шной "оптимизацией по времени".

Ты приписываешь компилятору то, что он не делает. См. пример выше.

MP>> Кроме того не существует методики грамотного расходования MP>> озу применительно к тем-же pic. AM> Объясни, зачем компилятору Си нужно больше ОЗУ, чем асм-у? AM> Он его, что, солит?

MP> Да из за банальной дибильной реализации алгоритмов программистом в рамках MP> ограничения языка!

Пример ограниченности приведи.

MP> Ты все еще никак не понимаешь почему програмы на асме MP> короче, быстрее и жрут меньше озу? Это помоему клиника уже.

Понимаю, но короче на 15-30%, быстрее из-за этого же оверхеда. Объем ОЗУ - вопрос спорный, может колебаться в ту или иную сторону в зависимости от задачи. Но в общем случае Си не требует ОЗУ для себя. Что объявил, то и получил, возможно где-то компилятор соптимизируется переменные в регистры.

AM>> что очень сложно сделать руками на асме и приходится под каждую AM>> локальную переменную выделять собственный адрес в ОЗУ. MP>> И не говори. Как люди писали на 11-м проце с 4-мя регистрами, тут MP>> я гляжу некоторым и 32-х не хватает ;)

AM> Ты понимаешь, о чем я вообще говорю? Про распределение памяти под AM> локальные переменные функций. Причем тут регистры?

MP> При том что в си их нет - и ты банально не можешь понять, как это так люди MP> пишут проги, не имеют HИ ОДHОЙ! локальной переменной в них,

Если компилятор решит, что в данный момент возможно размещение переменной в регистре, то она там и будет. Если функция является последней в цепи вызовов и не вызывает сама другие фукнции, то с большой долей вероятности все регистры будут заняты под локальные переменные. В общем, почти как на асм.

MP> и при этом озу у них не расходуется вообще.

MP> Помоему ты вообще не представляешь методики реализации алгоритмов на MP> нативных языках процессоров с использованием исключительно HАБОРОВ РЕГИСТРОВ MP> в качестве абсолютно всех локальных переменных,

Во первых, регистров может не хватить для всех локальных переменных, и обычно не хватает. Во вторых, если твоя функция вызывает другую функцию, то перед вызовом регистры нужно сохранить, чтобы не потерять значения в них, то есть потребность в памяти никуда не девается. Либо должно быть соглашение о вызовах, например функция может портить регистры R4,R5, а другие регистры не должна портить, что эквивалентно либо необходимости сохранения/восстановления этих регистров (если вдруг функция захочет их поюзать), либо размещению локальных переменных в памяти.

MP> и не понимаешь как это вдруг подобное приводит к экономии всего на свете.

Потребность в ОЗУ никуда не девается, просто немного смещаются акценты. При вложенных вызовах кто-то должен заботится о сохранении регистров, и сохраняются они в ОЗУ, независимо от Си/asm.

AM> Впрочем, если возможно, компилятор Си может соптимизировать локальную AM> переменную и положить ее в регистр.

MP> Hа самом деле это сказка про белого бычка. Если процедура имеет вложение - MP> максимум на что хватает ума у компилятора использовать регистр как статическую MP> константу, при этом пушить его в абсолютно любой процедуре!

И много компиляторов ты изучил на этот предмет?

AM>> ПЗУ - примерно тоже, даже с учетом оверхеда Си 15-30% MP>> "Шо.. oпять?" (c) мф. "жил был пес". AM> Я предложил Шепелеву выбрать алгоритм из Numerical Recipes in C. AM> Предлагаю и тебе. Выбери алгоритм, я его откомпилирую под х51. Докажи AM> на деле, что на асм можно сделать хотябы на пол-порядка эффективнее.

MP> А зачем. Я могу сейчас найти какой-нибудь open source embedded для x51 на сях и MP> предоставить его тебе для компиляции... А то опять получится сферическая MP> лошадь.

Там нормальные алгоритмы, нужные в реальной жизни. Но найди, кинь ссылку. Только не очень здоровый, чтобы эху не засорять листингами.

DT> Что-то свежие веpсии с ходу не находятся.

formatting link

Hello, Dimmy Timchenko !

üÔÏ ÅÓÌÉ ÏÎÏ ÐÒÏÓÔÏ ÓÌÅÔÉÔ, Á ÎÅ ÐÏÓÞÉÔÁÅÔ ÎÅÐÒÁ×ÉÌØÎÏ ÉÌÉ ÇÒÏÈÎÅÔ ×ÁÖÎÙÅ ÄÁÎÎÙÅ. á ÜÂÅÄÄÅÄ ÍÏÖÅÔ ÂÙÔØ × ÄÅÔÓËÏÊ ÉÇÒÕÛËÅ, ÎÕ ÐÏÅÄÅÔ ÎÅ ÔÕÄÁ ÍÁÛÉÎËÁ, ÄÅÌÏ×-ÔÏ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Dimmy Timchenko !

÷ ÓÁÍÏÍ ÞÔÏ ÎÉ ÎÁ ÅÓÔØ ÓÔÁÎÄÁÒÔÎÏÍ ×ÉÒÔÏ×ÓËÏÍ ÐÁÓËÁÌÅ (×ÅÓØÍÁ ÍÁÌÏÐÒÉÇÏÄÎÏÍ ÄÌÑ ÒÅÁÌØÎÏÇÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÉÎÓÔÒÕÍÅÎÔÅ) ÅÓÔØ ×ÁÒÉÁÎÔÎÁÑ ÚÁÐÉÓØ (ÁÎÁÌÏÇ ÓÉÛÎÏÇÏ union), ÐÏÚ×ÏÌÑÀÝÁÑ ÏÂÊÔÉ ×ÓÀ ÔÉÐÉÚÁÃÉÀ ÎÁ ÆÉÇ É ÐÒÑÍÏ ÒÁÂÏÔÁÔØ Ó ÐÁÍÑÔØÀ.

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Dimmy Timchenko !

ôÁËÏÅ ÓÐÌÏÛØ É ÒÑÄÏÍ × embedded. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hi George,

Thu Jan 22 2004 13:31, George Shepelev wrote to Alex Kouznetsov:

AK>>>> Hапример, конкретная проблема: какие слова должны входить в AK>>>> состав ядра? GS>>> Эта проблема уже решена, кинуть список? AK>> Кидай, это интересно. Если на мыло, то на a_kouz(на)yahoo.com

GS> Отвечено нетмейлом.

Поскольку фидошный гейт отшибает яхушный мэйл: ============== Message from yahoo.com. Unable to deliver message to the following address(es).

<George_Shepelev@....>: Connected to 193.109.241.148 but sender was rejected. Remote host said: 550 I want to know size of messages to fidonet. Use ESMTP. ============== ответить придется в эхе.

Два комментария:

-- Непонятно, по каким причинам одни слова вошли в ядро, а другие нет. Поэтому непонятно чем это лучше любой другой реализации.

-- Для FVM вообще говоря не нужны многие слова, необходимые резидентному ("настоящему") Форту. Поскольку мне, например, не нужен резидентный Форт - мне не нужна почти половина слов из твоего списка.

В результате мы возвращаемся на круги своя: все от задачи зависит, так что универсальных рецептов нет. Поэтому согласиться с тем, что "проблема уже решена", не могу.

Пока, Алексей

Hello, Sergey Davydov !

õ ÍÅÎÑ ÔÏÌØËÏ ÐÏÌÏÖÉÔÅÌØÎÙÅ. ðÅÒÅÐÉÓÙ×ÁÎÉÅ Ó ÁÓÍÁ ÎÁ ó ÄÁ×ÁÌÏ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ É ÓÕÝÅÓÔ×ÅÎÎÏ ÕÓËÏÒÑÌÏ ÐÏÓÌÅÄÕÀÝÕÀ ÒÁÂÏÔÕ.

äÏÓÔÁÔÏÞÎÏ ÎÅÞÁÓÔÁÑ ×ÅÝØ, ÈÏÔØ É ÂÙ×ÁÅÔ. òÁÚÂÉ×ÁÅÛØ ÚÁÄÁÞÕ ÎÁ ÞÁÓÔÉ É ÎÁÈÏÄÉÛØ ÇÄÅ ÏÛÉÂËÁ. ëÓÔÁÔÉ, ÏÛÉÂËÉ É × ÁÓÓÅÍÂÌÅÒÁÈ ÎÅ ÒÅÄËÏÓÔØ.

æÁËÔ. HÉËÔÏ Ö ×ÒÏÄÅ ÎÅ ÓÐÏÒÉÔ Ó ÔÅÍ, ÞÔÏ ÎÁ ÁÓÍÅ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ ÜÆÆÅËÔÉ×ÎÅÊ É Ó ÔÅÍ, ÞÔÏ ËÒÉÔÉÞÅÓËÉÅ ÞÁÓÔÉ (Á Ë ÎÉÍ É RTL ÏÔÎÏÓÉÔÓÑ) ÅÓÔØ ÓÍÙÓÌ ÎÁ ÁÓÍÅ ÎÁÐÉÓÁÔØ.

á ÓÍÙÓÌ?

éÌÉ ÔÙ ÅÍÕ ËÌÀÞÉË ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ×ËÌÀÞÉÌ, ÉÌÉ ×ÙÂÒÏÓØ ÅÇÏ ÎÁ ÆÉÇ.

HÅ ÔÁË ÕÖ ÞÁÓÔÏ ÜÔÏ ÎÕÖÎÏ (Ó ÏÄÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ ÎÁ ÄÒÕÇÏÊ ÓËÁËÁÔØ).

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, George!

ópÄ ñÎ× 21 2004, George Shepelev ÐÉÓÁÌ Ë Maxim Polyanskiy ÐÏ ÐÏ×ÏÄÕ "AVR GCC&IAR." MP>> á C É Z - ÏÎÉ É × ÁÆÒÉËÅ C É Z. þÅ ÔÁÍ ÐÏÍÎÉÔØ.

GS> ó×ÑÔÁÑ ÎÁÉ×ÎÏÓÔØ! éÌÌÀÓÔÒÉÒÕÀ ÐÒÅÄÅÌØÎÏ ÐÒÏÓÔÙÍÉ ÐÒÉÍÅÒÁÍÉ: HÕ ÄÁ×ÁÊ ÒÁÓÓÍÏÔÒÉÍ Ô×ÏÉ ÐÒÉÍÅÒÙ.

1) C ÆÌÁÇ. òÁÚÎÉÃÁ ÔÏÌØËÏ × 1 ÍÅÓÔÅ - × ÐÉËÏ×ÏÊ ËÏÍÁÎÄÅ subwf... ôÁË Ñ ÚÎÁÀ ÞÔÏ subwf ÒÁÂÏÔÁÅÔ ÞÅÒÅÚ ÚÁÄÎÉÃÕ, ÐÏÜÔÏÍÕ ÂÁÎÁÌØÎÏ ÓÔÁÒÁÀÓØ ÅÅ ÉÚÂÅÇÁÔØ. HÁÐÒÉÍÅÒ ÅÓÌÉ ÎÁÄÏ ÐÒÏ×ÅÒÉÔØ ÚÎÁÞÅÎÉÅ ÎÁ ÂÏÌØÛÅ-ÍÅÎØÛÅ, ÔÏ ÅÇÏ ÍÏÖÎÏ ÓÌÏÖÉÔØ c ÏÔÒÉÃÁÔÅÌØÎÙÍ ÞÉÓÌÏÍ É ÐÏÌÕÞÉÔØ C ÆÌÁÇ × ÐÒÉ×ÙÞÎÏÍ ×ÉÄÅ. movf x,w addlw -const ÷ ÏÞÅÎØ ÒÅÄËÉÈ ÓÌÕÞÁÑÈ (ÓÒÁ×ÎÅÎÉÅ 2-È ÑÞÅÅË ÎÁ ÂÏÌØÛÅ/ÍÅÎØÛÅ) ËÕÓÏË ÁÌÇÏÒÉÔÍÁ Ó ÜÔÉÍ ÍÅÓÔÏÍ ÓÒÁÚÕ-ÖÅ ÏÔÌÁÖÉ×ÁÅÔÓÑ × ÓÉÍÕÌÑÔÏÒÅ.

2) Z. Movf - ÏÓÏÂÅÎÎÏÓÔØ ÐÉËÁ, ÓÐÅÃÉÁÌØÎÏ ÄÌÑ ÐÒÏ×ÅÒËÉ ÑÞÅÊËÉ ÎÁ 0 ÂÅÚ ÚÁÓÉÒÁÎÉÑ ÁËËÕÍÕÌÔÏÒÁ.

51 - ÏÓÏÂÅÎÎÏÓÔØ 51-ÇÏ ÞÔÏ ÎÁÏÂÏÒÏÔ ÎÁÄÏ ÚÁÓÒÁÔØ ÁËËÕÍÕÌÑÔÏÒ ÞÔÏ ÐÏÌÕÞÉÔØ Z/NZ ÕÓÌÏ×ÉÅ. ïÓÔÁÌØÎÏÅ ÐÏÄÞÉÎÑÅÔÓÑ ÂÁÎÁÌØÎÏÊ ÌÏÇÉËÅ!

GS> çÅÏÒÇÉÊ WBR! Maxim Polyanskiy.

Thu Jan 22 2004 22:28, George Shepelev wrote to Ilia Tarasov:

IT>> èÏÞÕ ÌÉÛØ ÚÁÍÅÔÉÔØ, ÞÔÏ ÜÔÏ ÏÔÎÏÓÉÔÓÑ ÎÅ Ë ÑÚÙËÕ, Á Ë ÒÅÁÌÉÚÏ×ÁÎÎÙÍ × IT>> ÎÅÍ ÁÌÇÏÒÉÔÍÁÍ...

GS> ÷ æÏÒÔÅ ÞÒÅÚ×ÙÞÁÊÎÏ ÔÒÕÄÎÏ ÏÔÄÅÌÉÔØ ÏÄÎÏ ÏÔ ÄÒÕÇÏÇÏ.

ôÁÍ ÐÒÁËÔÉÞÅÓËÉ ×ÓÅ Ñ×ÌÑÅÔÓÑ ÁÌÇÏÒÉÔÍÁÍÉ. ñÚÙË - L0, É ÜÔÉÍ ×ÓÅ ÓËÁÚÁÎÏ.

IT>> äÒÕÇÏÅ ÄÅÌÏ, ÞÔÏ × ÉÍÅÀÝÉÊÓÑ ÔÒÁÎÓÌÑÔÏÒ æÏÒÔÁ ÍÏÖÎÏ ×ÐÉÈÎÕÔØ ÈÏÔØ IT>> Á×ÔÏÒÁÓÐÏÚÎÁ×ÁÎÉÅ ËÏÎÓÔÁÎÔ ×ÉÄÁ 0x1234 ÉÌÉ 1234H

GS> õÖÅ ;)

HÕ ÔÁË ÅÝÅ ÂÙ! ;)

Thu Jan 22 2004 22:31, George Shepelev wrote to Ilia Tarasov:

IT>> óÉ: a = (char) b; IT>> ðÁÓËÁÌØ: a := char(b);

GS> üÔÏ _Ñ×ÎÏÅ_ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÔÉÐÏ×.

üÔÏ - Ñ×ÎÏÅ. integer -> real - ÎÅÑ×ÎÏÅ. ÷ÁÖÎÏ ÔÏ, ÞÔÏ ÔÁËÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ _ÅÓÔØ_, ÞÔÏ ÄÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ É ÎÁ ðÁÓËÁÌÅ ÚÁÎÉÍÁÔØÓÑ ÈÁËÅÒÓÔ×ÏÍ...

IT>> ôÙ ÔÏÌØËÏ ÎÅ ÇÏ×ÏÒÉ ÎÉËÏÍÕ, ÞÔÏ × ðÁÓËÁÌÅ _ÓÔÒÏÇÁÑ_ ÔÉÐÉÚÁÃÉÑ...

GS> ðÒÉÍÅÒ ÎÁ ÓÑÈ:

GS> int a; GS> unsigned b; GS> float c, d, e; GS> ... GS> b = a; GS> e = c << d; GS> ...

GS> HÒÁ×ÉÔÓÑ?..

HÅ ÐÏÎÉÍÁÀ, ÚÁÞÅÍ ×ÏÏÂÝÅ ÔÁËÏÅ ÍÏÇÌÏ ÂÙ ÐÒÉÇÏÄÉÔØÓÑ. äÁ, ÖÕÔËÏ ÎÅËÏÒÒÅËÔÎÏ. HÏ ÓÔÏÉÔ ÌÉ ÐÒÉÂÅÇÁÔØ Ë ÐÏÌÕÍÅÒÁÍ? éÌÉ ÕÖ ÐÏÌÎÁÑ ÎÅ×ÏÚÍÏÖÎÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÈÁËÅÒÓËÉÈ ÐÒÉÅÍÏ×, ÉÌÉ ÐÏÌÎÁÑ Ó×ÏÂÏÄÁ + ÓÒÅÄÓÔ×Á ÏÔÌÁÄËÉ, ÐÏÚ×ÏÌÑÀÝÉÅ ÜÆÆÅËÔÉ×ÎÏ ÏÔÌÁ×ÌÉ×ÁÔØ ÎÅËÏÒÒÅËÔÎÏÓÔÉ × ÁÌÇÏÒÉÔÍÁÈ. ðÁÓËÁÌØ ÎÅ ÒÅÛÁÅÔ ÐÒÏÂÌÅÍÕ _ËÁÒÄÉÎÁÌØÎÏ_.

IT>> äÁ × ÞÅÍ ÏÔÌÉÞÉÅ-ÔÏ? ÷ ÓÉÎÔÁËÓÉÓÅ ËÏÍÁÎÄ? GS> ÷ ÓÔÒÏÇÏÓÔÉ É ÏÐÒÅÄẠ̊ÎÎÏÓÔÉ ÒÅÁÌÉÚÁÃÉÉ.

ô×ÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÔÒÏÇÏÓÔÉ É ÏÐÒÅÄÅÌÅÎÎÏÓÔÉ? á ÒÅÁÌÉÚÁÃÉÀ ÐÌÉÚ ÐÒÏËÏÍÍÅÎÔÉÒÕÊ ÎÁ ÐÒÉÍÅÒÅ ÂÏÒÌÁÎÄÏ×ÓËÉÈ ËÏÍÐÉÌÑÔÏÒÏ× ðÁÓËÁÌÑ É óÉ...

IT>> éÚ æÏÒÔÁ ×ÐÏÌÎÅ ÍÏÖÎÏ ×ÙËÕÓÉÔØ ÎÅËÏÔÏÒÕÀ ÍÁÛÉÎÎÏÎÅÚÁ×ÉÓÉÍÕÀ ÍÏÄÅÌØ, Á IT>> ÐÏÔÏÍ ÎÁ ÎÅÊ ÒÅÁÌÉÚÏ×ÁÔØ ÞÔÏ ÕÇÏÄÎÏ.

GS> äÁ, ÔÏÌØËÏ ÜÔÕ ÍÏÄÅÌØ Åݣ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÓÔÁÎÄÁÒÔÏÍ, Á áÄÁ ÕÖÅ GS> ÓÕÝÅÓÔ×ÕÅÔ ËÁË ÓÔÁÎÄÁÒÔ.

é ÔÅÍ, ËÔÏ ÐÏÌØÚÕÅÔÓÑ áÄÏÊ, ÐÏÌÏÖÅÎ ÐÉÒÏÖÏË?

IT>> ðÒÉÞÅÍ ÎÅÏÂÑÚÁÔÅÌØÎÏ ÉÚ æÏÒÔÁ - .NET ÔÏÍÕ ÐÒÉÍÅÒ... GS> HÅ × ÔÅÍÕ...

éÍÅÎÎÏ × ÔÅÍÕ. õ ÒÁÚÎÙÈ ÑÚÙËÏ× ÏÂÝÉÊ ÂÜË-ÜÎÄ...

GS> ôÅÍ ÎÅ ÍÅÎÅÅ ìÉÓÐ ÏÞÅÎØ ËÒÁÓÉ×Ï ÄÅÌÁÌÓÑ ÎÁ æÏÒÔÅ. èÏÔÑ GS> ÏÎ ÔÏÖÅ ÓÄÅÌÁÎ "ÎÅ ÐÏÄ ÖÅÌÅÚÏ", × ÒÁÍËÁÈ ÉÓÓÌÅÄÏ×ÁÎÉÊ GS> × ÏÂÌÁÓÔÉ éé.

HÅ ×ÉÄÅÌ. HÏ ìÉÓÐ ÎÁ æÏÒÔÅ ÄÏÌÖÅÎ ÂÙÔØ ÕÄÏÂÎÅÅ ÏÂÙÞÎÏÇÏ ìÉÓÐÁ, ÐÏÓËÏÌØËÕ ÅÓÔØ ×ÏÚÍÏÖÎÏÓÔØ ÄÏÂÒÁÔØÓÑ ÄÏ æÏÒÔ-ÍÁÛÉÎÙ ×ÎÕÔÒÉ, É ÓÄÅÌÁÔØ ÎÁ ÎÅÊ ÎÅÞÔÏ, ÎÅÄÏÓÔÕÐÎÏÅ × ÞÉÓÔÏÍ ìÉÓÐÅ. áÎÁÌÏÇÉÞÎÏ É Ó ÄÒÕÇÉÍÉ ÑÚÙËÁÍÉ - ÎÅ ÉÍÅÅÔ ÂÏÌØÛÏÇÏ ÓÍÙÓÌÁ ÉÚ ÏÄÎÏÇÏ ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ ÄÅÌÁÔØ ÄÒÕÇÏÊ ÕÎÉ×ÅÒÓÁÌØÎÙÊ, Á ÐÏÔÏÍ ÒÅÛÁÔØ ÞÁÓÔÎÕÀ ÚÁÄÁÞÁ. üÆÆÅËÔÉ×ÎÅÅ ÒÅÁÌÉÚÏ×ÁÔØ ÉÎÓÔÒÕÍÅÎÔ ÄÌÑ _ËÌÁÓÓÁ_ ÚÁÄÁÞ...

GS> ñÚÙË ÍÏÖÅÔ Ñ×ÌÑÔØÓÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÏÍ, ÎÕ É ÞÔÏ? òÅÁÌÉÚÏ×Ù×ÁÔØ-ÔÏ GS> ÅÇÏ ÎÕÖÎÏ! éÌÉ ÔÙ Ï "ÂÕÍÁÖÎÙÈ" ÑÚÙËÁÈ, ×ÒÏÄÅ ÐÏÄÅÌËÉ åÒÛÏ×Á?

åÝÅ ÒÁÚ. ñÚÙË - ÜÔÏ ÇÒÁÍÍÁÔÉËÁ. ðÒÁ×ÉÌÁ ÚÁÐÉÓÉ ÏÓÎÏ×ÎÙÈ ÜÌÅÍÅÎÔÏ× ÑÚÙËÁ (ÓÉÎÔÁËÓÉÓ) É ÓÍÙÓÌÏ×ÁÑ ÎÁÇÒÕÚËÁ ÜÔÉÈ ÜÌÅÍÅÎÔÏ× (ÓÅÍÁÎÔÉËÁ). HÉ ÓÌÏ×Á Ï ÒÅÁÌÉÚÁÃÉÉ. é ÑÚÙË ×ÓÅ ÒÁ×ÎÏ ÓÎÁÞÁÌÁ ÐÏÑ×ÌÑÅÔÓÑ ÎÁ ÂÕÍÁÇÅ, Á ÕÖÅ ÚÁÔÅÍ × ×ÉÄÅ ÐÒÏÇÒÁÍÍÙ ÐÏÄ ÎÅËÕÀ ÐÌÁÔÆÏÒÍÕ. óÔÒÏÇÏÓÔØ, ËÏÒÒÅËÔÎÏÓÔØ É ÐÒÏÞ. Ó×ÏÊÓÔ×Á ÑÚÙËÁ ÍÏÇÕÔ ÂÙÔØ ÐÒÏ×ÅÒÅÎÙ É ÂÅÚ ×ÓÑËÉÈ ÒÅÁÌÉÚÁÃÉÊ, ÁÎÁÌÉÚÏÍ ÇÒÁÍÍÁÔÉËÉ.

GS>>> òÅÞØ ÛÌÁ Ï ÔÏÍ, ÞÔÏÂÙ ÚÁÍÅÎÉÔØ "ÎÉÚËÏÕÒÏ×ÎÅ×ÙÊ" ÕÒÏ×ÅÎØ GS>>> Ó ÍÁÛÉÎÏÚÁ×ÉÓÉÍÙÈ ÁÓÓÅÍÂÌÅÒÎÙÈ ËÏÄÏ× ÎÁ ÓÔÒÏÇÏ ÚÁÄÁÎÎÕÀ GS>>> ×ÉÒÔÕÁÌØÎÕÀ ÍÁÛÉÎÕ, ÐÒÏÓÔÕÀ × ÒÅÁÌÉÚÁÃÉÉ. IT>> éÌÉ ÖÅ ÒÅÁÌÉÚÏ×ÁÔØ ÜÔÕ ÍÁÛÉÎÕ × ÖÅÌÅÚÅ,

GS> é ÔÁË ÍÏÖÎÏ, ÅÓÌÉ ÒÅÁÌÉÚÁÃÉÑ "× ËÏÄÁÈ" ÂÕÄÅÔ ÕÄÁÞÎÏÊ.

õ ÍÅÎÑ ÄÅÌÏ ÉÄÅÔ Ë ×ÙÂÒÁÓÙ×ÁÎÉÀ ×ÓÅÇÏ ÚÏÏÐÁÒËÁ íë É ÐÅÒÅÈÏÄÕ ÎÁ ÓÏÆÔ-ÐÒÏÃÅÓÓÏÒ Ó ÁÐÐÁÒÁÔÎÏÊ ÐÏÄÄÅÒÖËÏÊ ÓÔÅËÏ×ÏÊ ÍÁÛÉÎÙ. HÕ ÒÁÚ×Å ÞÔÏ ÄÌÑ CAN É USB ÍÏÖÎÏ ÐÏÌØÚÏ×ÁÔØÓÑ ËÁÍÎÑÍÉ Ó ×ÓÔÒÏÅÎÎÙÍÉ ËÏÎÔÒÏÌÌÅÒÁÍÉ ÜÔÉÈ ÉÎÔÅÒÆÅÊÓÏ×...

IT>> É ÂÏÌÅÅ ÎÅ ÍÅÔÁÔØÓÑ ÏÔ ÌÏÍÁÎÏÊ ×ÅÒÓÉÉ x.y Ë ÔÒÉÁÌØÎÏÊ x.y+1 É Ô.Ð. GS> á ÐÒÉ ޣÍ ÔÕÔ "ÌÏÍÁÎÏÓÔØ"? éÓÐÏÌØÚÕÊ ÞÔÏ-ÎÉÂÕÄØ ÎÁÐÏÄÏÂÉÅ GS> ÌÉÃÅÎÚÉÉ GNU, ÂÕÄÕÔ ÎÏÒÍÁÌØÎÙÅ ×ÅÒÓÉÉ. ðÏÞÅÍÕ-ÔÏ Linux GS> ×ÐÏÌÎÅ ÕÄÁÌÏÓØ ÓÄÅÌÁÔØ × ÜÔÉÈ ÒÁÍËÁÈ...

ðÒÉ ÔÏÍ, ÞÔÏ ÉÍÅÅÔ ÍÅÓÔÏ ÚÏÏÐÁÒË ×ÅÒÓÉÊ. Linux-ÔÏ ÍÏÖÅÔ É ÕÄÁÌÏÓØ ÓÄÅÌÁÔØ, ËÁË É gcc, ÎÏ ×ÅÒÓÉÉ ÔÏÇÏ É ÄÒÕÇÏÇÏ ÐÌÏÄÑÔÓÑ É ÒÁÚÍÎÏÖÁÀÔÓÑ. íÏÖÎÏ ÇÏ×ÏÒÉÔØ Ï ÐÒÉÍÅÎÉÍÏÓÔÉ gcc Ë ËÁËÉÍ-ÔÏ ÚÁÄÁÞÁÍ, ÎÏ ÜÔÏ ÎÁÄÏ ÐÒÏ×ÅÒÑÔØ ËÁÖÄÙÊ ÒÁÚ.

Fri Jan 23 2004 15:31, Ilia Tarasov wrote to George Shepelev:

GS>> Я считаю "нормальным" ассемблером такой компилятор, который GS>> имеет дело с произвольной, но _фиксированной_ системой машинных GS>> команд, а не с набором программируемой логики... Софт для GS>> конфигурирования программируемой логики называется иначе...

IT> Компилятором является программа, преобразующая программу на одном языке в IT> программу на другом.

Совершенно верно. "Книга дракона" дает такую формулировку:

Компилятор - это программа, которая считывает текст программы, написанной на одном языке - исходном, и транслирует (переводит) его в эквивалентный текст на другом языке - целевом ("Компиляторы: принципы, технологии и инструменты" Пер. с англ. - М.: Издательский дом "Вильямс", 2001, стр.22)

Пока, Алексей

Fri Jan 23 2004 02:51, Dimmy Timchenko wrote to Ilia Tarasov:

IT>> úÁÔÏ i := integer(c) - ÍÏÖÎÏ. DT> äÁ, ÅÓÔØ × BP ÈÁËÅpÓËÉÅ ÛÔÕÞËÉ. :)

ï ÞÅÍ É ÒÅÞØ. ðÒÉ ÖÅÌÁÎÉÉ ÍÏÖÎÏ ÐÏÉÍÅÔØ ÐÒÏÂÌÅÍÙ. èÏÔÑ ÌÉÞÎÏ ÍÎÅ ÐÁÓËÁÌÅ×ÓËÉÅ ÌÉÓÔÉÎÇÉ ÞÉÔÁÔØ ÐÒÉÑÔÎÅÅ, ÎÅÖÅÌÉ ÓÉÛÎÙÅ...

IT>> õÐpÁ×ÌÑÀÝÉÅ ËÏÎÓÔpÕËÃÉÉ × óÉ × ÐpÉÎÃÉÐÅ ÜË×É×ÁÌÅÎÔÎÙ ÐÁÓËÁÌÅ×ÓËÉÍ... DT> HÕ ÄÁ, ÔÏÖÅ ÄÉpÅËÔÉ×ÎÙÊ ÁÌÇÏpÉÔÍÉÞÅÓËÉÊ ÑÚÙË, Á ËÁË ÖÅ.

óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÎÉÞÅÇÏ ÐÒÉÎÃÉÐÉÁÌØÎÏ ÎÏ×ÏÇÏ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó óÉ ÎÁ ðÁÓËÁÌÅ ÎÁÐÉÓÁÔØ ÎÅÌØÚÑ. á ×ÏÔ ËÁËÏÊ-ÎÉÂÕÄØ ÁÌÇÏÒÉÔÍ ÐÕÔÅÛÅÓÔ×ÉÑ ÐÏ ÌÁÂÉÒÉÎÔÕ ÎÁ ÆÕÎËÃÉÏÎÁÌØÎÏÍ ÑÚÙËÅ ÂÕÄÅÔ ÎÅ × ÐÒÉÍÅÒ ÐÒÏÝÅ É ÐÏÎÑÔÎÅÅ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó óÉ/ðÁÓËÁÌÅÍ.

IT>> á ×ÏÔ ìÉÓÐ ÉÌÉ æÏpÔ ÂÕÄÕÔ ÏÔÌÉÞÁÔØÓÑ ÐpÉÎÃÉÐÉÁÌØÎÏ...

DT> ðÏÔÏÍÕ ÞÔÏ ÂÌÉÖÅ Ë ÆÕÎËÃÉÏÎÁÌØÎÙÍ ÑÚÙËÁÍ.

ìÉÓÐ - ÄÁ. æÏÒÔ - ÓËÏÒÅÅ Ë ÁÓÓÅÍÂÌÅÒÕ, ÈÏÔÑ ÎÁ "ÐÏÚÄÎÉÈ ÜÔÁÐÁÈ" ÐÒÏÇÒÁÍÍÙ × ÎÅÍ ÍÏÇÕÔ ÐÏÐÁÄÁÔØÓÑ ×ÐÏÌÎÅ ÏÓÍÙÓÌÅÎÎÙÅ ÄÁÖÅ Ó ÞÅÌÏ×ÅÓËÏÊ ÔÏÞËÉ ÚÒÅÎÉÑ ËÕÓËÉ.

Hello Dima.

22 Jan 04 07:39, you wrote to Ilia Tarasov:

÷ gcc ÅÓÔØ ×ÌÏÖÅÎÎÙÅ ÆÕÎËÃÉÉ.

Alexey

Fri Jan 23 2004 10:01, Dima Orlov wrote to Ilia Tarasov:

DO> óÉ É ðÁÓËÁÌØ ÂÅÚÕÓÌÏ×ÎÏ ÏÞÅÎØ ÐÏÈÏÖÉ, ÈÏÔÑ ÏÔÌÉÞÉÑ × ÐÏÄÈÏÄÁÈ ÅÓÔØ. é ÜÔÏ DO> ÎÅ ÐÏÚ×ÏÌÑÅÔ ÇÏ×ÏÒÉÔØ, ÞÔÏ ÜÔÏ ÏÄÉÎ ÑÚÙË

òÁÚÕÍÅÅÔÓÑ, ÎÅ ÏÄÉÎ É ÔÏÔ ÖÅ. HÏ ÎÉ Ï ËÁËÉÈ ÐÒÉÎÃÉÐÉÁÌØÎÙÈ ÒÁÚÌÉÞÉÑÈ ÇÏ×ÏÒÉÔØ ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ.

Fri Jan 23 2004 15:55, Alex Kouznetsov wrote to Ilia Tarasov:

GS>>> ñ ÓÞÉÔÁÀ "ÎÏÒÍÁÌØÎÙÍ" ÁÓÓÅÍÂÌÅÒÏÍ ÔÁËÏÊ ËÏÍÐÉÌÑÔÏÒ, ËÏÔÏÒÙÊ GS>>> ÉÍÅÅÔ ÄÅÌÏ Ó ÐÒÏÉÚ×ÏÌØÎÏÊ, ÎÏ _ÆÉËÓÉÒÏ×ÁÎÎÏÊ_ ÓÉÓÔÅÍÏÊ ÍÁÛÉÎÎÙÈ GS>>> ËÏÍÁÎÄ, Á ÎÅ Ó ÎÁÂÏÒÏÍ ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÊ ÌÏÇÉËÉ... óÏÆÔ ÄÌÑ GS>>> ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÊ ÌÏÇÉËÉ ÎÁÚÙ×ÁÅÔÓÑ ÉÎÁÞÅ...

IT>> ëÏÍÐÉÌÑÔÏÒÏÍ Ñ×ÌÑÅÔÓÑ ÐÒÏÇÒÁÍÍÁ, ÐÒÅÏÂÒÁÚÕÀÝÁÑ ÐÒÏÇÒÁÍÍÕ ÎÁ ÏÄÎÏÍ ÑÚÙËÅ IT>> × ÐÒÏÇÒÁÍÍÕ ÎÁ ÄÒÕÇÏÍ.

AK> óÏ×ÅÒÛÅÎÎÏ ×ÅÒÎÏ. "ëÎÉÇÁ ÄÒÁËÏÎÁ" ÄÁÅÔ ÔÁËÕÀ ÆÏÒÍÕÌÉÒÏ×ËÕ:

AK> ëÏÍÐÉÌÑÔÏÒ - ÜÔÏ ÐÒÏÇÒÁÍÍÁ, ËÏÔÏÒÁÑ ÓÞÉÔÙ×ÁÅÔ ÔÅËÓÔ ÐÒÏÇÒÁÍÍÙ, ÎÁÐÉÓÁÎÎÏÊ AK> ÎÁ ÏÄÎÏÍ ÑÚÙËÅ - ÉÓÈÏÄÎÏÍ, É ÔÒÁÎÓÌÉÒÕÅÔ (ÐÅÒÅ×ÏÄÉÔ) ÅÇÏ × ÜË×É×ÁÌÅÎÔÎÙÊ AK> ÔÅËÓÔ ÎÁ ÄÒÕÇÏÍ ÑÚÙËÅ - ÃÅÌÅ×ÏÍ

ôÅÐÅÒØ ÅÝÅ ÎÁÄÏ ÏÐÒÅÄÅÌÉÔØ ÐÏÎÑÔÉÑ "ÔÅËÓÔ ÐÒÏÇÒÁÍÍÙ", "ÑÚÙË", "ÜË×É×ÁÌÅÎÔÎÏÓÔØ ÔÅËÓÔÁ"... íÏÖÎÏ ÌÉ ÓÞÉÔÁÔØ ÌÉÎËÅÒ ËÏÍÐÉÌÑÔÏÒÏÍ?

WBR, àÒÉÊ.

Hello, Ilia Tarasov !

èÁËÅÒÓÔ×ÏÍ ÄÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÚÁÎÉÍÁÔØÓÑ ×ÁÒÉÁÎÔÎÁÑ ÚÁÐÉÓØ. á × ÐÒÁËÔÉÞÅÓËÉÈ ÒÅÁÌÉÚÁÃÉÑÈ - ÎÅÔÉÐÉÚÉÒÏ×ÁÎÎÙÅ ÕËÁÚÁÔÅÌÉ.

äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏËÁÚÁÔØ ÐÏÌÎÅÊÛÅÅ ÎÅÚÎÁÎÉÅ ó...

HÅÔ ÎÉËÁËÏÊ ÐÏÌÎÏÊ Ó×ÏÂÏÄÙ. ANSI C - ÄÏÓÔÁÔÏÞÎÏ ÓÔÒÏÇÏ ÔÉÐÉÚÉÒÏ×ÁÎÎÙÊ ÑÚÙË É ÓËÁÖÅÍ ÞÉÓÌÏ ÕËÁÚÁÔÅÌÀ ÎÁ ÎÅÍ ÎÅ ÐÒÉÓ×ÏÉÛØ ÔÁË ÐÒÏÓÔÏ.

ïÓÏÂÅÎÎÏ ÅÇÏ ÐÒÁËÔÉÞÅÓËÉÅ ÒÅÁÌÉÚÁÃÉÉ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello Stas.

Fri Jan 23 2004 11:04, Stas Baldin wrote to me:

DT>> þÔÏ-ÔÏ Ó×ÅÖÉÅ ×ÅpÓÉÉ Ó ÈÏÄÕ ÎÅ ÎÁÈÏÄÑÔÓÑ.

SB>

formatting link
á, ÄÁ. ñ ÇÌÑÎÕÌ, Õ×ÉÄÅÌ, ÞÔÏ (c) 1998, ÐÏÄÕÍÁÌ, ÞÔÏ ÓÔÁÒÏÅ...

Dimmy.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required