Просмотр полной версии : Модуль процессора (МП)
Viktor2312
02.10.2011, 11:20
...
1. Подтягивающие резисторы порта С микросхемы КР580ВВ55А - это резисторная сборка НР2 слева от К555ЛА9
2. Да, сброс переключает порты КР580ВВ55А на ввод, и нули будут задаваться схемой начального пуска. Первое обращение к этой микросхеме должно задавать режим работы порта С на вывод, при этом РС0-РС7 будут установлены в ноль (по даташиту).
3. Далее?
будет поддерживаться лог 0 на выводах А3 и А4
Будет удерживаться выходами элементов D14.4 и D14.3.
но это только часть адреса первые три бита?
А первые три бита адреса РЕ3 поступают с адресной шины: A13, A14, A15. Там будут нули. Соответственно, в диапазоне адресов 0x0000h - 1FFFh, 8 КБайт, будет выбрана нулевая ячейка 155РЕ3.
---------- Post added at 19:13 ---------- Previous post was at 19:09 ----------
Первое обращение к этой микросхеме должно задавать режим работы порта С на вывод, при этом РС0-РС7 будут установлены в ноль (по даташиту).*
в диапазоне адресов 0x0000h - 1FFFh, 8 КБайт
Исправил.
А записано в этой ячейке число 07H?
70h - это значит, что на выходе /MS4 будет "0". А это сигнал выбора ПЗУ D34.
---------- Post added at 19:34 ---------- Previous post was at 19:28 ----------
Только не 07h, а 70h. :)
---------- Post added at 19:41 ---------- Previous post was at 19:34 ----------
Скажу заранее, что значения сигналов МА14, МА15, MP0, MP1 не будут иметь значения, ввиду того, что сигнал /SSSD переведёт D38 и D39 в Z-состояние.
Код 07H
--->
Только не 07h, а 70h. :)
---------- Post added at 19:48 ---------- Previous post was at 19:47 ----------
Никакой инверсии нет. Откуда такие данные?
На схеме нарисованы инверсные выходы.
Да, авторы такие затейники :)
Никакой инверсии нет. Откуда такие данные?
Тут я немного слукавил. ;) Дело в том, что по некоторым описаниям программирования 155РЕ3, 556РТ4 (и т.д.) используется "инверсный" дамп, но это всё тонкости программирования ПЗУ. Нам же нужны реальные данные. :)
Да, авторы такие затейники :)
Ага... Представили ПЗУ в виде дешифратора, так сказать "изобразили функцию". :)
Правильно?
Всё правильно.
D38 и D39 шину данных буферизируют
А теперь важно. ;) Ввиду того, что происходит обращение к устройствам МП находящимся на внутренней магистрали, то их и выключают.
в итоге нам получаются доступны адреса 0000H...1FFFH, а это наша ПЗУ D34 с программой BOOTM. Остальные сигналы нем и не нужны
було б непогано маты хоч трохи ОЗУ, а то стек и хранение переменных еще ни кто не отменял
Микросхемы буферизирующие сигналы для внешней магистрали переведены в Z-состояние, тем самым модуль процессора (МП) автономен и не соединён с системной магистралью.
Не совсем правильно, в Z-состояние переводятся только буферы ШД (D38, D39), так как происходит обращение к внутренним ресурсам (памяти либо УВВ) модуля. Для отключения остальных буферов (ШУ, ША) процессор должен выставить сигнал HLDA, либо программно разрешить захват шины сигналом PC4 порта С 580ВВ55.
что у нас находится в регистре признаков F и других регистрах
Посмотри в эмуляторе b2m. Либо b2m прояснит, он ГУРУ в этих вопросах. :)
було б непогано маты хоч трохи ОЗУ, а то стек и хранение переменных еще ни кто не отменял
Так описан момент "после сброса", а до инициализации стека ещё не дошло, не говоря уже о том, что ещё и ВВ55 не проинициализирован. ;)
---------- Post added at 11:51 ---------- Previous post was at 11:20 ----------
Ещё одна тонкость, всё описанное выше верно только после того как процессор выставит "слово состояния", т.к. сигнал "IO/M", к которому привязаны D22 (РЕ3) и D23 (ИД7), формируется из него.
Посмотри в эмуляторе b2m. Либо b2m прояснит, он ГУРУ в этих вопросах. :)
Качаем справочник Шахнова и смотрим стр. 59. :)
Да, регистр флагов и PC по сбросу устанавливаются в ноль (а ещё триггеры разрешения прерывания и захвата шины). Однако, не надо забывать, что когда регистр флагов выдаётся в виде байта, там есть один бит, который железно установлен в еденицу, поэтому будет число 02.
Так описан момент "после сброса", а до инициализации стека ещё не дошло
согласен, момент выбора банка ОЗУ может находиться где-то в коде инициализации.
правильно.
во всех системмах где возможны аппаратные прерывания обязательно при входе в критические участки их запрещают.
какие могут быть прерывания если не настроен (их) контроллер и не определен стек.
Atari, ну как же правильно? PC = 0000 + 1 --> 0001.
да я и забыл про РС... это само сабой...
согласен, момент выбора банка ОЗУ может находиться где-то в коде инициализации.
После сброса, схема начального старта принудительно включает нулевую карту памяти:
[0000h - 3FFFh] - ПЗУ,
[4000h - CFFFh] - ОЗУ,
[D000h - FFFFh] - Видео.
После инициализации ВВ55, включается та же нулевая карта.
Весь процесс, собственно, вот (под спойлером):
ROM:0000 loc_0000:
ROM:0000 F3 di
ROM:0001 31 00 D0 lxi sp, 0D000h
ROM:0004 C3 47 02 jmp _Init0
ROM:008E ; ---------------------------------------------------------------------------
ROM:0091 00 00 00 40+_init_VV51: .db 0, 0, 0, 40h, 0CEh, 15h
ROM:0097 FF FF 00 FF+_toAsrar: .db 0FFh,0FFh,0,0FFh,50h,41h,0,0,0,0,50h,19h,0,0,0FFh, 20h
ROM:00A7 ; ---------------------------------------------------------------------------
ROM:0247 _Init0:
ROM:0247 3E 82 mvi a, 82h
ROM:0249 D3 13 out PPA_RUS
ROM:024B 21 97 00 lxi h, _toAsrar
ROM:024E 01 10 00 lxi b, 10h
ROM:0251 11 74 FF lxi d, ASRAR
ROM:0254 CD 6F 00 call _LDIR
ROM:0257 3E 76 mvi a, 76h
ROM:0259 D3 0B out TMR_RUS
ROM:025B 3E 21 mvi a, 21h
ROM:025D D3 09 out TMR_CH1
ROM:025F 3E 1B mvi a, 1Bh
ROM:0261 D3 09 out TMR_CH1
ROM:0263 3E 36 mvi a, 36h
ROM:0265 D3 0C out PIC_0C_REQ_CMD
ROM:0267 3E 88 mvi a, 88h
ROM:0269 D3 0D out PIC_0D_MASK_CMD
ROM:026B 3E FF mvi a, 0FFh
ROM:026D D3 0D out PIC_0D_MASK_CMD
ROM:026F 3E 20 mvi a, 20h
ROM:0271 D3 0C out PIC_0C_REQ_CMD
ROM:0273 0E 06 mvi c, 6
ROM:0275 21 91 00 lxi h, _init_VV51
ROM:0278
ROM:0278 loc_0278:
ROM:0278 7E mov a, m
ROM:0279 D3 07 out VV51_StatCtrl
ROM:027B 0D dcr c
ROM:027C 23 inx h
ROM:027D C2 78 02 jnz loc_0278
ROM:0280 DB 06 in VV51_Data
ROM:0282 3E 36 mvi a, 36h
ROM:0284 D3 0B out TMR_RUS
ROM:0286 3E 0C mvi a, 0Ch
ROM:0288 D3 08 out TMR_CH0
ROM:028A 3E 00 mvi a, 0
ROM:028C D3 08 out TMR_CH0
Это весь процесс инициализации МП.
---------------------------------------
* Из любезно предоставленной esl информации. :)
KokaF77, приправьте ПЛЗ комментами, а то почти минуту догонял что "???_RUS" - это регистр управляющего слова.
KokaF77, приправьте ПЛЗ комментами, а то почти минуту догонял что "???_RUS" - это регистр управляющего слова.
Привычка - вторая натура :)
уже будет так ;P
есть где нормальная распортовка? всмысле описание что на каких портах находится
---------- Post added at 23:05 ---------- Previous post was at 22:46 ----------
esl, в принципе стилистика нормальная, просто думаю стоит иногда объяснять что именно имеется ввиду и не плодить ненужные ребусы.
"Красная книга" :)
тут была ссылка на мою идашную базу
Бери и переименовывай как удобно ;)
; enum IO_Ports
KBD_R4: equ 4
KBD_R5: equ 5
VV51_Data: equ 6
VV51_StatCtrl: equ 7
TMR_CH0: equ 8
TMR_CH1: equ 9
TMR_CH2: equ 0Ah
TMR_RUS: equ 0Bh
PIC_0C_REQ_CMD: equ 0Ch
PIC_0D_MASK_CMD: equ 0Dh
PIC_0E_REQ_CMD: equ 0Eh
PIC_0F_MASK_CMD: equ 0Fh
PPA_A: equ 10h
PPA_B: equ 11h
PPA_C: equ 12h
PPA_RUS: equ 13h
ROMDISK_PORT: equ 14h
VID_MODE: equ 0D8h
VID_COLOR: equ 0D9h
VID_PAGE: equ 0DAh
а контролеров прерываний два?
а контролеров прерываний два?
Один.
Это сам контроллер:
PIC_0C_REQ_CMD: equ 0Ch
PIC_0D_MASK_CMD: equ 0Dh
А это дубль:
PIC_0E_REQ_CMD: equ 0Eh
PIC_0F_MASK_CMD: equ 0Fh
таблица 3.1, стр.23. КК (красной книги). :)
А, что? Так никто и не подскажет?
А счётчик команд PC изменит своё значение на 0000H.
ну как же правильно? PC = 0000 + 1 --> 0001.
А в остальном - да.
---------- Post added at 00:27 ---------- Previous post was at 00:18 ----------
На самом деле во внутренний, находящийся в микропроцессоре регистр SP записано значение D000H. Но и не более того, покрайней мере это я так понимаю себе.
Я правильно понял вторую команду?
В SP заносится значение D000h - это так. И стек будет "расти" вниз начиная с этого адреса.
Viktor2312, вопрос был твой, и знак вопроса тоже.
А сообщение надо бы дочитать до конца...
P.S. В цитатах есть "стрелочка" (после имени пользователя), если нажать на неё, то увидишь сообщение, которое процитировано. ;)
Viktor2312, повторю ответ на твой последний вопрос...
На самом деле во внутренний, находящийся в микропроцессоре регистр SP записано значение D000H. Но и не более того, покрайней мере это я так понимаю себе.
Я правильно понял вторую команду?
В SP заносится значение D000h - это так. И стек будет "расти" вниз начиная с этого адреса.
В SP заносится значение D000h - это так. И стек будет "расти" вниз начиная с этого адреса.
если быть уж совсем дотошным то при использовании стека сначала происходит декремент SP а потом уже будут занесены данные в ОЗУ, значит первыми будут заняты адреса CFFFh и CFFEh.
Запустил модуль процессора от Виктора.
Виктору респект, всего одна ошибка.
Правда пока только работает то, что очевидно, всякие порты не проверялись еще и клава не подцеплена.
Но с контроллером дисплея общается , то есть основное работает, остальное мелочи.
Ошибка - нет соединения контакта системного разъема А8 со схемой - пропущено соединение в резисторной сборке НР6.
Еще по мелочи :
1. Желательно разъем X6 отодвинуть от сборки НД1, уж очень он близко ( и на оригинальной плате тоже )
2. Перемычка которая по питанию ВМ80 очень близко, мешает панелька.
3. Перемычки 2К/8К отодвинуть от панелек, их точить приходится.
4. R7 - маленькие отверстия
5. C1 - не показан и маленькие отверстия.
А в общем можно собирать эту плату, рекомендую тем кто купил или собирается.
Еще хотел спросить, а почему Вы убрали старые добрые советские танталовые кондеры по питанию и решили обычные радиальные поставить ?
Неужели уже их не купить ?
Они всяко красивей смотрятся на фоне 580 комплекта.
У меня пока еще не все детали впаяны, поэтому может не стоит в первый пост, сами смотрите.
Хотел побыстрее запустить и то что к периферии относится не впаял пока. Там эти геморройные самопальные резисторные сборки надо городить, много времени отнимают.
http://cats-chess.narod.ru/IRISHA/IMG_2722.jpg
Вот как мой модуль процессора (МП) выглядит на данный момент:
Круто, все микрухи на панельках.
И хочу ещё в МП_ver1.1 избавиться от самодельных резисторных сборок, что бы можно было готовые заводские впаивать.
Вот это дело, согласен полностью.
Надо рассчитывать на сборки 5 и 9 ногие, такие точно всегда можно купить.
Я буду применять, естественно наши отечественные НР-1-4-9М
Наши бывают и 4М и 7М и 8М и 9М и без М ( более громоздкие на вид ). Другое дело
что найти наши не весь ассортимент уже можно и не всех номиналов, да и импорт не все номиналы легко доступны.
Конечно самые легко доставаемые - 9М.
Но в некоторых случаях , например когда стоит КР556РТ4 ( таких много в контроллере дисплея ) нужно всего 4 резистора. И не рекомендуется тянуть слижком далеко дорожки до свободных выводов другой сборки.
Я думаю что надо придерживаться относительно легко доставаемых номиналов -
330 Ом
470 Ом
1КОм
2,2 КОм
4,7 КОм
10 КОм
---------- Post added at 15:03 ---------- Previous post was at 14:59 ----------
Не подскажите, насколько обязательно необходимо подтягивать шину адреса к +5В через резисторы? Вот например у нас в МП, только после второй буферизации перед выходом сигналов адреса на системную магистраль, они подтянуты резисторами по 1 кОм к шине +5В. В одном из справочников там шина адреса буферизирована и подтянута к +5В через резисторы 15 кОм, а в некоторых справочниках не подтянута.
Подтягивать надо, у нас конструктив такой, что платы расположены могут быть на расстоянии, потому что стоят в корзине и соответственно источник и приемник сигнала удалены на несколько сантиметров или десяток сантиметров. Без резисторов помехоустойчивость будет ниже. Поэтому и резисторы такие мелкие - 1К, а на некоторых сигналах вообще 330Ом стоит. Внутри плат можно конечно и больше номиналы, они там так и стоят - 4,7КОм и 10-12КОм.
---------- Post added at 15:06 ---------- Previous post was at 15:03 ----------
В одном из справочников там шина адреса буферизирована и подтянута к +5В через резисторы 15 кОм, а в некоторых справочниках не подтянута.
Значит там все на одной плате расположено, а тут неизвестно как будут стоять платы, например в Каспии два ряда плат, между рядами сантиметров 20 проводов просто в жгуте без всяких экранов. Поэтому сделано все с запасами, и буфера стоят на большую нагрузку, и это правильно при таком конструктиве.
---------- Post added at 15:10 ---------- Previous post was at 15:06 ----------
И еще конечно такие хитрые номиналы в сборках как 1,1КОм, 750Ом надо менять, их найти практически нереально. Мне вообще непонятно с чего такой номинал на выходах РЕ3 выбран - 1,1КОм.
Обнаружил косячек в схеме модуля процессора, на который раньше похоже никто не обращал внимания.
Вход S триггера D17.1 ( по схеме из красной книги ) не подключен, что не есть хорошо.
Надо хотя бы на 5В его подключить.
На авторской плате этот косяк есть, и на плате Виктора и у меня тоже не подключен.
Виктор, рекомендую поправить у себя, нехорошо когда вход, который может влиять на работу схемы, болтается в воздухе.
Посмотрел на заводскую плату Каспия - та же история, похоже никто на это не обратил внимания с самого начала разработки и производства плат МП.
Преобразователь сделан на ICL7660
http://www.alldatasheet.com/datasheet-pdf/pdf/67437/INTERSIL/ICL7660A.html
Страница 3-31
VovanRK86
23.04.2013, 00:07
MV1971, А где посмотреть ошибки на вашу плату, а то что то тихо в теме, пора хоть мне собирать начать.
VovanRK86
24.04.2013, 12:01
да и финансовый кризис у меня
у меня тоже, вот я и занялся сборкой, что бы как то отвлечься
Так все уже собрали
т.е. и FDD подключили? что то я упустил что ли?
VovanRK86
25.04.2013, 00:00
и всё должно заработать.
Вот и я про это, заработало ли? Ваша тема про сборку модуля процессора очень понравилась, о вот темы про видео такой нет и про fdd нет
MV1971 - насколько я понял всё собрал, подключил и проверил
именно так но у него корпус месяц назад готов ещё не был, а проверял он в другом готовом компике, я в личке спрашивал
а вопрос по поводу начать собирать как раз он и подбросил и про отсутствие телодвижений в теме тем более со мной еще четыре человека комплект для сборки Ириши приобрели, месяц назад
а у Вас на какой стадии проект? да и вопросы есть но попозже я сейчас вторую неделю занимаюсь рк на z80
VovanRK86
26.04.2013, 00:59
Закупка резисторов
У нас резисторы есть, а вот микросборок нет совсем ни импорта ни наших, поэтому и не собираю, микрухи логики на плату процессора кроме 531ла17 нашёл все, на видео пока только счётчики купил.
Если есть резисторы, то их можно спаять вместе.
Микросхемы старые запасы есть, все из Мск или сопредельных районов, сборки резисторные красивые черные на выбор (Китай), а вот резисторов выводных и в Китае не просто найти.
Да вроде как выводных навалом, навскидку http://www.ebay.com/itm/1-10M-1120pcs-56-Values-1-4W-0-25W-1-Metal-Film-Resistors-Assorted-kit-Set-/120962771537?pt=LH_DefaultDomain_0&hash=item1c29f16a51
MV1971, А где посмотреть ошибки на вашу плату, а то что то тихо в теме, пора хоть мне собирать начать.
Ссылка на фото плат с двух сторон, на каждом фото красным указано, что нужно резать, синим - что соединять.
http://yadi.sk/d/6EfZdv-M4lkng
К сожалению, ошибок много, и это только те, которые я нашел просто на чистой непаяной плате.
perestoronin
04.07.2013, 03:58
на каждом фото красным указано, что резать, синим - что соединять.
http://yadi.sk/d/6EfZdv-M4lkng
И это только те ошибки, которые я нашел на непаяной плате.
Других ошибок на этом экспериментальном варианте плате МП не найдено?
perestoronin
10.07.2013, 23:40
на ICL7660
Думаю эта ссылка будет полезна для поиска аналога этой микросхемки http://transistor.by/forum/index.php?topic=306.0
Других ошибок на этом экспериментальном варианте плате МП не найдено?
Пока не найдено.
Добрый день.
Посмотрите пожалуйста шаблон, у меня в районе НР6 нет соединения, цепь BD7 с разъема разрывается. На фото обведено кружком, сверху напаяна перемычка. Судя по всему было 2 версии шаблонов, так как ошибки из http://yadi.sk/d/6EfZdv-M4lkng я у себя не обнаружил.
perestoronin
12.07.2013, 01:43
у меня в районе НР6 нет соединения, цепь BD7 с разъема разрывается. На фото обведено кружком, сверху напаяна перемычка. Ошибки из http://yadi.sk/d/6EfZdv-M4lkng я у себя не обнаружил.
Ошибки из http://yadi.sk/d/6EfZdv-M4lkng только для плат от MV1971.
Идентифицировать Вашу плату можно, всего скорее она не от MV1971, если сделаете сканы или фотографии обеих сторон, желательно в png и выложите их, можно будет посмотреть различия с платой от MV1971. Главное и заметное различие - наличие преобразователя в корпусе DIP8 (http://transistor.by/forum/index.php?topic=306.0) вблизи кварцевого резонатора в центре платы - такая модификация есть только на последней экспериментальной плате от MV1971.
Странно, но преобразователя нет, а не было ревизии с исправленными ошибками и без преобразователя?
Фото Irisha (https://plus.google.com/photos/115985625161232218859/albums/5899557203402900689).
Вверху будет кнопочка "Еще" там подменю "Скачать", он тогда отдаст оригинал.
Посмотрите, сканера под рукой нет, фотоаппарат сразу в JPG :). Если разрешение не достаточно, то в понедельник сделаю скан.
Спасибо.
perestoronin
12.07.2013, 07:53
Разрешение достаточно, но скан не будет лишним.
На Вашей плате рев. 1.0 отмечен автор - Victor2312. Он же автор этой темы. У него ожидается новая ревизия платы 1.1, надеюсь в следующем году он её выпустит. Плата рев. 1.0 мне не досталась http://zx-pk.ru/market/viewtopic.php?f=7&t=43.
Он первым поднял тему восстановления документации для производства Ириши и планомерно успешно развивает её, исходниками своих проектов не делится - говорит "у нас капитализм как никак вроде бы". В подписи у автора есть ссылка на его форум http://ruecm.forum2x2.ru/.
Плату от Victor2312 собирал и MV1971, вот здесь http://zx.pk.ru/showpost.php?p=550248&postcount=41 он отметил ошибки на ней, в том числе и ту, о которой Вы сообщили. Но в целом можно считать, что на плате Victor2312 ошибок почти нет и она запущена не только автором. Полностью собранной Вашу плату можно увидеть в первом посте этой темы http://zx.pk.ru/showthread.php?t=16933 или здесь http://fotki.yandex.ru/users/lpiti/view/520234/?page=3. Жаль что Victor2312 не привел фотографию обратной стороны собранной платы своей разработки.
Хорошо, в понедельник тогда отсканю, тольк верхняя сторона вряд-ли прилично уже получится, так как резисторные сборки уже поставил.
Ага, теперь понятно, значит можно спокойно продолжать собирать модуль.
Спасибо большое.
Хорошо, в понедельник тогда отсканю, тольк верхняя сторона вряд-ли прилично уже получится, так как резисторные сборки уже поставил.
Ага, теперь понятно, значит можно спокойно продолжать собирать модуль.
Спасибо большое.
Эта ошибка рядом со сборками - единственная на плате Виктора.
Добрый день.
Еще заметил одну неточность на плате, сигнал I3(иннв.) идущий с разъема Х8(11А,11Б) попадает на НР7, и по плате получается 2 резистора в паралель, то есть вместо 1К получается 0,5К. Я у себя просто не впаивал один из резисторов НР7. На рисунке показано.
Да, все верно, начал собирать по шелкографии и схеме, теперь буду еще и с монтажкой сверяться.
Нашел на монтажке С1, его нет на шеклографии и отверстия для его установки сделаны переходным диаметром, соответственно кондер не лезет :) Исправьте для будущих заказов, если еще не исправлено.
Спасибо.
Да, все верно, начал собирать по шелкографии и схеме, теперь буду еще и с монтажкой сверяться.
Нашел на монтажке С1, его нет на шеклографии и отверстия для его установки сделаны переходным диаметром, соответственно кондер не лезет :) Исправьте для будущих заказов, если еще не исправлено.
Спасибо.
Я писал про этот кондер, скорее всего Виктор это исправил.
http://www.zx.pk.ru/showthread.php?t=16933&page=5
Собрал свою плату версии 1.
http://cats-chess.narod.ru/IRISHA/MP_v1_assembl.jpg
Обновленные файлы ошибок :
Сторона деталей (http://cats-chess.narod.ru/IRISHA/CPU_TOP_big.jpg)
Сторона пайки (http://cats-chess.narod.ru/IRISHA/CPU_BOTTOM_big.jpg)
MV1971, А что за секретные письмена в правом нижнем углу? ;-)
MV1971, А что за секретные письмена в правом нижнем углу? ;-)
Это китайцы при изготовлении пишут.
Viktor2312,
Серьезное дело затеяли, в Спринте это непросто будет развести.
А еще есть интерфейсные платы.
Вот только не понял, зачем вы кинули перемычку от шины +5В на вывод конденсатора С3, в левом нижнем углу на вашей фотографии. Этот вывод конденсатора идёт на +12В. Таким образом вы шину +5В соединили с шиной +12В. Конденсатор С3 "вешается" на шину +12В одним выводом и на шину GND "общий провод" вторым выводом?
Да, все верно. Я пока собирал без процессора соединил +5 и +12 что бы запустить и проверить ГФ24. Для крос-платы разъемов на тот момент не было, да и проще было питание кинуть прямо на модуль процессора. Сейчас пока перерыв в сборке :(. Как только буде запускать уже в ВМ80, то сразу заведу все как положено.
perestoronin
28.12.2016, 10:02
А где хоть одна схема?
Схема в красной книге.
Скан схемы и прочие картинки и файлы можно посмотреть здесь:
http://irisha-files.perestoroniny.ru/МП/
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot