Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

Во нашел DDS -> меандр для экономии времени BOB51
Если выводить на 1 бит в порту, то получилось 11 циклов:

Код: Выделить всё

lds r24,{Fincr+0} 'LSB passa incremento frequenza
lds r25,{Fincr+1} 'usa 24 dei 32 bit
lds r26,{Fincr+2} 'MSB
Gen:
add r28, r24 ' 1 cycle
adc r29, r25 ' 1 cycle
adc r30, r26 ' 1 cycle
sbrc r30,7    ' 1/2
rjmp m1      ' 2/0
cbi PortD,0  ' 0/2
rjmp m2     ' 0/2
m1:
sbi PortD,0   ' 2/0
sbic Pinb,0   ' 1/0 проверка на выход из подпрограммы
m2:
rjmp Gen     ' 2 cycles totale 11 cicli
sbic Pinb,0 пропускаю в одном случае для выравнивания веток по времени.
https://www.radiokot.ru/forum/viewtopic ... 6#p1145786
можно в принципе засунуть в прерывание с целью уменьшения джиттера
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

У меня немного более садистский подход...
(один лишь генератор не столь интересен)
Хотя основа в принципе та же.
:twisted:
Концепт-набросок "треглавого змея" пищащего на разные голоса.
схемка теста
https://img.radiokot.ru/files/20529/2fkkt20prf.GIF
архив проекта
ags_t.zip
(41.92 КБ) 266 скачиваний
в наброске заданы три фиксированных частоты...
К сожалению на внутреннем RC у аттини2313 частота 15000 Гц получилась "не очень" - надо б и остатки совести иметь...
:?
Однако в остальном... Весьма интересное применение может иметь место...
:roll:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

маленько офигел от этого, дальше рассматривать не смог:

Код: Выделить всё

;         "irq_avr.txt"  файл описания поля векторов прерываний
;
 .cseg
	.org 0x000
 irq_res:
	rjmp start ; переход к началу программы инициализации системы
; - - - - - - - - - - - - - - - - - - - - - - - - - - -
; блок размещения векторов активных прерываний
 .org OVF0addr ; Timer/Counter0 Overflow
irq_t0:
  rjmp test_inp
; - - - - - - - - - - - - - - - - - - - - - - - - - - -
; ***** END OF FILE ******************************************************
забыл почему include рассширение txt а не asm inc как положено.
Имхо можно было все в одном asm файле разместить - как тут понять где находится "test_inp" и где reti в векторе подевалась.
типа "треглавого змея" пищащего на разные голоса было же, про RTOS упоминалось
http://www.pic24.ru/doku.php/osa/articles/pk2_osa_piano
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

*.asm у моего "слэнга" только один -дабы не путать обработку компилятором с линкером(и запуском с прописями из командной строки). Мы ранее уже в достатке про те условности поцарапсом занимались - смысла повторяться не вижу.
8)
Касательно одного файла - можно и так, но попозже захочется вытянуть в вариант библиотечки - так лучше уж заранее заложить вариант разделения.
В "наброске" только базовый алгоритм теста на три независимых канала генерации с раздельными выходами для каждого из каналов. А как уже ими управлять/куда применять то уже вторично. В отличии от DDS использован только базовый счётчик периода без формирования сигнала через массив данных в ПЗУ.
Главный результат того тест-наброска - независимая генерация меандра по нескольким каналам возможна, запаса по времени вполне достаточно для запуска в фоновом режиме, размер кода весьма скромный.
Параметры выходного сигнала вполне укладываются в "ширпотреб" для любительского применения даже при 8МГц тактовой частоты.
8)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3979756#p3979756"]В отличии от DDS использован только базовый счётчик периода без формирования сигнала через массив данных в ПЗУ.[/uquote]
ФЕЭЭЭЭ!!!(c) туеву хучу регистров забрать вместо одной таблички :shock:
Спойлер

Код: Выделить всё

 .def kod_f01 = r1 ; оперативный буфер кода частоты генератора 0
             ; байт 1
             ;(mfr1 математика и обмен с ПЗУ/самопрограммирование)
 .def kod_f02 = r2 ; оперативный буфер кода частоты генератора 0
             ; байт 2
             ;(s_sreg зеркало SREGограниченный функционал)
 .def kod_f10 = r3 ; оперативный буфер кода частоты генератора 1
             ; байт 0
             ;(sys_flag системные флагиограниченный функционал)
 .def kod_f11 = r4 ; оперативный буфер кода частоты генератора 1
             ; байт 1
             ;(ограниченный функционал)
 .def kod_f12 = r5 ; оперативный буфер кода частоты генератора 1
             ; байт 2
             ;(ограниченный функционал)
 .def kod_f20 = r6 ; оперативный буфер кода частоты генератора 2
             ; байт 0
             ;(ограниченный функционал)
 .def kod_f21 = r7 ; оперативный буфер кода частоты генератора 2
             ; байт 1
             ;(ограниченный функционал)
;
 .def kod_f22 = r8 ; оперативный буфер кода частоты генератора 2
             ; байт 2
             ;(ограниченный функционал)
 .def bak_00 = r9 ; оперативный накопитель генератора 0 байт 0
             ;(ограниченный функционал)
 .def bak_01 = r10 ; оперативный накопитель генератора 0 байт 1
             ;(ограниченный функционал)
 .def bak_02 = r11 ; оперативный накопитель генератора 0 байт 2
             ;(ограниченный функционал)
 .def bak_10 = r12 ; оперативный накопитель генератора 1 байт 0
             ;(ограниченный функционал)
 .def bak_11 = r13 ; оперативный накопитель генератора 1 байт 1
             ;(ограниченный функционал)
 .def bak_12 = r14 ; оперативный накопитель генератора 1 байт 2
             ;(ограниченный функционал)
 .def bak_20 = r15 ; оперативный накопитель генератора 2 байт 0
             ;(ограниченный функционал)
;
; область полного функционала
 .def bak_21 = r16 ; оперативный накопитель генератора 2 байт 1
             ;(tmp0 рабочий регистр полный функционал)
 .def bak_22 = r17 ; оперативный накопитель генератора 2 байт 2
             ;(tmp1 рабочий регистр полный функционал)
 .def g_flags = r18 ; флаги управления каналами
             ; (tmp2 рабочий регистр полный функционал)
 .def gm_input = r19 ; дубликат текущего статуса выходных линий генераторов
             ; (tmp3 рабочий регистр полный функционал)
 .def tmp0 = r20 ; РВХ общего назначения

Код: Выделить всё

    add bak_00,kod_f00
    adc bak_01,kod_f01
    adc bak_02,kod_f02
    brbc SREG_C,tone1
    sbrs gm_input,g0_out
    sbi genoutport,g0_out
    sbrc gm_input,g0_out
    cbi genoutport,g0_out

Код: Выделить всё

add r28, r24 ' 1 cycle
adc r29, r25 ' 1 cycle
adc r30, r26 ' 1 cycle
sbrc r30,7    ' 1/2
rjmp m1      ' 2/0
cbi PortD,0  ' 0/2
rjmp m2     ' 0/2
m1:
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Так это практически одно и то же - только в Вашем случае ОДИН генератор, а у меня ТРИ
:wink:
(используется один источник тактирования на Т0 для всех трех "генерирующих модулей").
И каждый из трех может "бежать" самостоятельно.
Посему и регистров больше используется.
8)
В принципе можно до четырех одновременно работающих генераторов дотянуть...
Насчет таблички... чей-то она мне не сильно понравилась - меандр можно получить и из двух полупериодов - для выходных данных только инвертируем текущее значение выходного сигнала. И то у 15 КГц "джиттер" на осциллограмме наблюдается...
Другое дело - была бы генерация синуса или чего другого...
Тогда можно хоть к каждому из "генерирующих модулей" свою табличку прикошмарить...
:dont_know:
А чего б таки "прикладного" на той основе замутить... Пока не придумалось...
ЛЕЕНЬ...
:sleep:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3979864#p3979864"]Так это практически одно и то же - только в Вашем случае ОДИН генератор, а у меня ТРИ[/uquote]
а если пять и более (для пианино пальцев 10) - регистров не хватит. Придется из ОЗУ в регистры нужный канал загрузить, надо всего 6 регистров временно.

Код: Выделить всё

lds r24,{Fincr+0} 'LSB passa incremento frequenza
lds r25,{Fincr+1} 'usa 24 dei 32 bit
lds r26,{Fincr+2} 'MSB
а таблица будет то одна
з.ы. прикладное - такое же пианино как на PIC16 с OSA, AVR то пошустрее будет
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Один генератор ведёт одну частоту.
Таблица даёт только форму одного периода частоты для данного генератора.
А замена параметров для частоты одинакова как для одного комплекта регистров с одним генератором, так и для нескольких. Лишь бы регистров хватило и время для замены содержимого вписывалось в остаток времени тактового интервала (то, что останется от обработки прерывания по переполнения Т0).
Собственно тот вопрос "запаса по времени" меня и интересовал. Остаётся проверить хотя-бы каким-нибудь "перебором частот"...
Все же интересно - сколько возможного можно выдавить из ресурса АВРки с удобоваримыми параметрами без особого изврата.
Регистров то особо не жалко - "нижний" участок с "ограниченными возможностями" в большинстве случаев "лежит без дела" - а так вроде бы при делах (в основном для подавляющего большинства программ нагрузка на R16-R25 и указатели). Зато выигрыш в объёме ПЗУ - параметры генерации могут быть и вычисляемыми/фиксированными для большинства "примитивов" применения. А это и ПИКовые малютки и АВР 8-лапки.
8)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3980100#p3980100"]Таблица даёт только форму одного периода частоты для данного генератора.[/uquote]
ну для меандра таблица то и не нужна - следим за старшим битом аккумулятора
вместо

Код: Выделить всё

		lpm						; 3
		out		PORTB,r0		; 1
используется

Код: Выделить всё

sbrc r30,7    ' 1/2
универсальность это хорошо - для пианино на слух синусоида звучит "мягче".
сколько "выдавить" - тут надо технически(с), посчитать можно

Код: Выделить всё

; Output frequency (using 24 bit accumulator) :
;
;	f = deltaPhase * fClock/2^24
;
;   fClock is in this case the CPU clock divided by the
;	number of cycles to output the data ( 9 cycles )
;
;	f = r24/r25/r26 * (11059200/9)/16777216
;
;	f = r24/r25/r26 * 0.073242188
;
;	fMax (theoretical) = 0.5 * fClock
в случае больше каналов будет уже не 9 циклов
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Вопрос в том, чего удобнее использовать из имеющегося арсенала:
аппаратный таймер (в разных режимах);
аппаратно - программный таймер "по классике" (счетчик досчета);
аппаратно - программный таймер с "модулем DDS";
возможность одновременного использования нескольких программных модулей на базе единого аппаратного предделителя...
Зависит и от начинки соответствующего семейства (возможная тактовая частота, аппаратная поддержка) и от допусков на результат - стабильность, разрешающая способность, дискретность шага перестройки частоты.
Так что неплохие заготовки получились.
:beer:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

наткнулся на "пищание на разные голоса" с помощью голубой пилюльки, на ардуино:

Код: Выделить всё

// пример для stm32f103c8t6 Генерация 4 - х разных частот одним таймером.
/* Генерации одним таймером нескольких частот за счёт перепрограммирования
 *  регистров сравнения в прерываниях. Выходы PA8,9,10,11 Частоты с данными параметрами
 *  549,36Hz 1098Hz 2197 Hz 4394Hz компилить в ардуине (аддон от STM) без UART и без USB
 */
uint16_t CCR1_Val = 32768;
uint16_t CCR2_Val = 16384;
uint16_t CCR3_Val = 8192;
uint16_t CCR4_Val = 4096;
void setup()
{
    HardwareTimer *MyTim = new HardwareTimer(TIM1);
    RCC->APB2ENR |= (1 << 11) | (1 << 2); //tim1, gpioa clock enable
    GPIOA->CRH &= ~0xFFFF;
    GPIOA->CRH |= 0xBBBB;                                    //PA8,9,10,11 output altfunc
    TIM1->CCER = (1 << 12) | (1 << 8) | (1 << 4) | (1 << 0); //pin enable
    TIM1->CCMR1 = (3 << 12) | (3 << 4);                      //toogle mode
    TIM1->CCMR2 = (3 << 12) | (3 << 4);                      //toogle mode
    TIM1->PSC = 1;
    TIM1->ARR = 65535;
    TIM1->CCR1 = CCR1_Val;
    TIM1->CCR2 = CCR2_Val;
    TIM1->CCR3 = CCR3_Val;
    TIM1->CCR4 = CCR4_Val;
    TIM1->BDTR = 1 << 14; //output enable
    TIM1->CR1 = 1;
    MyTim->attachInterrupt(1, tim1_ch1);
    MyTim->attachInterrupt(2, tim1_ch2);
    MyTim->attachInterrupt(3, tim1_ch3);
    MyTim->attachInterrupt(4, tim1_ch4);
}
void tim1_ch1() { TIM1->CCR1 += CCR1_Val; }
void tim1_ch2() { TIM1->CCR2 += CCR2_Val; }
void tim1_ch3() { TIM1->CCR3 += CCR3_Val; }
void tim1_ch4() { TIM1->CCR4 += CCR4_Val; }

void loop() {}
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Пока занимаюсь экспериментальной проверкой портабельности по мотивам
https://radiokot.ru/forum/viewtopic.php?f=59&t=175573
8)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Итак... Краткий отчет по вопросу реанимации ардуиноIDE (1.8.9) на компьютерах с виндовс ХР (х32):
резервнаякопия ардуино IDE.pdf
(72.83 КБ) 383 скачивания
вот такой фокус-покус... оченно симпатяшный...
:hunger:
Вот с размещением "вручную" там еще поразбираться надо - несколько иная раскладка внутренних каталогов.
:roll:

Поскольку ни один вменяемо - разумный КОТ не станет гробить имеющееся у него на компе программное обеспечение, а затравку иным способом можно только на еще одном "лишнем" пустом ПК с виндовсХР сотворить....
В то же время резерв делать надо ДО факта непланируемого сбоя....
Я выкладываю подготовленную "чистую" затравку ардуиноIDE 1.8.9 для размещения в корне резервной флешки (вышеуказанная методика).
Пользователь самостоятельно сможет ее "нашпиговать" под свои интересы. А уж затем или использовать в режиме дублера или сделать замену в случае катастрофического отказа основной IDE/
Ссылка на архив на яндекс-диске
https://disk.yandex.ua/d/zrYPVougRHG0VA
:hunger:
(попробую еще этот архивчик в СУНДУК положить - там доступ "демократичнее" будет)
:roll:

всех старых КОТОВ родом из СССР с праздничком!
:beer:
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

А вот и ссыль на СУНДУК КОТА подоспела
https://sunduk.radiokot.ru/view/?id=1613887033
это архив для создания резервной копии ардуиноIDE 1.8.9 на автономной флешке.
Комплект-минимум.
:beer:
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Дополнительные замечания по применению "резервной копии" (виндовс ХР х32)
Собственно при автозагрузке может не производится корректной установки драйверов для программаторов.
Это касается платформ STM8/STM32 относительно программатора STLink...
Обнаружилось при проработке STM8.
Для устранения необходимо скачать новые драйвера вот тут:
https://static.chipdip.ru/lib/163/DOC001163692.zip
и установить их.
Далее работа с платформой sduino позволяет работать с платкой
https://img.radiokot.ru/files/20529/2g9hc95yn3.jpg (stm8s105k4t6 brekout board)
используя "народный" вариант STLink V2
https://img.radiokot.ru/files/20529/2g9hmcjxkn.jpg
:hunger:
Теперь с ним (stm8s105k4t6 brekout board и stm8s105c6 discovery board) поэкспериментировать надо бы...
:roll:

С платкой
https://img.radiokot.ru/files/20529/2g9hc84gx2.jpg (stm8s103f3 brekout board)
придется еще разбираться - напрямую чего-то нехватает...
А старая версия STVP похоже не определяет stlink V2...
:roll:

И таки можно и с https://img.radiokot.ru/files/20529/2g9hc84gx2.jpg (stm8s103f3 brekout board) поработать...
Просто старая версия ST TOOLS stlink V2 не ведала...
Пришлось переустановку сделать
дистрибутив брал на этой страничке
https://www.drive2.ru/b/520221558250144309/
собственно сам дистрибутив
http://umat.ru/files/en.stvp-stm8.zip
после переустановки STVP работает как с "устаревшей"
stm8s105c6 discovery board (там своя платка с STLink старой версии)
так и с stlink V2.
Посему можно прошивку для stm8s103f3 brekout board через "внешний программатор" протащить.
(Не путать с программатором в ардуинке!).
:beer:
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Котуинко

Сообщение Мурик »

BOB51 писал(а):Собственно при автозагрузке может не производится корректной установки драйверов для программаторов.
Это касается платформ STM8/STM32 относительно программатора STLink...
Ни разу такого не замечал.
Драйвер не находится в автозагрузке, а запускается при обнаружении связанного с ним устройства.
BOB51 писал(а):Для устранения необходимо скачать новые драйвера вот тут
Предлагаете ставить устаревшие (2011 год) драйверы с неизвестного сайта, вместо тех что на сайте-производителе?
BOB51 писал(а):Далее работа с платформой sduino позволяет работать с платкой https://img.radiokot.ru/files/20529/2g9hc95yn3.jpg (stm8s105k4t6 brekout board)
Разве что просто попробовать. Для практического использования, лучше взять плату с STM32F103C8T6. Стоит столько же, а возможностей больше.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Драйвера периферии некоторые платформы (при автоматической установке/обновлении) таки ставят.
Причём иногда в самый неподходящий момент - когда надоело следить за окном обновления.
:(
Относительно "старых" драйверов/программ от stm из "сторонних источников"...
Речь то об аварийном резерве под ХР - там к сожалению не все " самое современное" работать будет.
Приходится "старье" разыскивать и перепроверять...
То, что указано на своих "подопытных" проверил - работает.
Кому удастся более качественное добыть(да в свободном доступе без регистраций) - надеюсь положит дополнением.
Для 7-10ки этих проблем не возникает - там все современное и так ставится.
:beer:

ГЫММ...
Ежли уж SDCC пристроили один раз, то возможно его кто-нибудь адаптирует и для продукции STC
http://www.stcmcu.com/
http://stcmicro.com/rjxz.html
...?
Ядро там от MCS51 (SDCC), а "прошивалка" весьма "демократично-доступна"...
:roll:
:tea:
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Графические добавления для парка платок от адуринки:
https://img.radiokot.ru/files/20529/2gdn70xljm.GIF
и архивчик с сплан и лэйоут заготовками
GRAF.zip
(68.19 КБ) 197 скачиваний
добавлены платки для STM8.
8)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

Путь от простой IDE к продвинутой IDE

Хотя Arduino IDE предоставляет простой и понятный интерфейс, который идеально подходит для начинающих пользователей, более продвинутые пользователи часто сообщают, что возможности редактирования немного ограничены по сравнению с современными редакторами. Сюда входят такие функции, как отступ кода, сворачивание блоков, автоматическое закрытие скобок, поиск и замена регулярных выражений, переключение комментариев. В дополнение к этому, многие пользователи просили отладку в реальном времени , то есть возможность запускать код на подключенной плате и останавливать его на заданной строке для проверки содержимого переменных, памяти и регистров.

IDE 1.x разработана на Java, и ее монолитная кодовая база затрудняет реализацию таких функций. Java также становится устаревшей технологией для настольных приложений и постепенно вытесняется новыми операционными системами и магазинами приложений, что заставляет нас тратить время на решение проблем совместимости.

Пришло время: поприветствуйте Arduino IDE 2.0 (бета)

Мы рады сообщить, что с сегодняшнего дня бета-версия Arduino IDE 2.0 доступна для загрузки, а ее репозитории кода становятся открытыми . Он оснащен современным редактором и обеспечивает лучший пользовательский интерфейс благодаря адаптивному интерфейсу и более быстрому времени компиляции . Не бойтесь попробовать это сегодня: обновление будет простым, так как интерфейс будет выглядеть очень знакомым. Но давайте посмотрим, какие вкусности вы найдете...
вкусности тут:
https://blog.arduino.cc/2021/03/01/anno ... -2-0-beta/
з.ы. Проверил - ядра устанавливаются, похожим (как ранее) способом, примеры компилятся. Редактировать код стало намного приятнее. Из коробки есть темная тема. Фокус с папкой "portable" не проходит - в линуксе образуется 2 дополнительных папки, правда в местах для этого предназначенных
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Жаль таки тянет на системный блок с 10-кой...
:roll:
Ответить

Вернуться в «Разные вопросы по МК»