![]() |
Модераторы: PILOT |
![]() ![]() ![]() |
|
AO_COST |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.2.2007 Репутация: нет Всего: нет |
Работа для московского или подмосковного программиста
В программу Фортрана вставить вместонаписанной на С+ программу на Ассемблере. Подпрограммы библиотеки Dflib используют для передачи информации формальные параметры: INTERFACE !DEC$ IF DEFINED(_X86_) SUBROUTINE setpixelsrgb(n,x,y,color) !DEC$ ATTRIBUTES DEFAULT :: setpixelsrgb !DEC$ ATTRIBUTES C,ALIAS:"__setpixelsrgb" :: setpixelsrgb !DEC$ ELSE SUBROUTINE setpixelsrgb(n,x,y,color) !DEC$ ATTRIBUTES DEFAULT :: setpixelsrgb !DEC$ ATTRIBUTES C,ALIAS: "_setpixelsrgb" :: setpixelsrgb !DEC$ ENDIF INTEGER*4 n INTEGER*2 x (*) !DEC$ ATTRIBUTES REFERENCE :: x INTEGER*2 y (*) !DEC$ ATTRIBUTES REFERENCE :: y INTEGER*4 color (*) !DEC$ ATTRIBUTES REFERENCE :: color END SUBROUTINE END INTERFACE INTERFACE !DEC$ IF DEFINED(_X86_) SUBROUTINE getpixelsrgb(n,x,y,color) !DEC$ ATTRIBUTES DEFAULT :: getpixelsrgb !DEC$ ATTRIBUTES C,ALIAS:"__getpixelsrgb" :: getpixelsrgb !DEC$ ELSE SUBROUTINE getpixelsrgb(n,x,y,color) !DEC$ ATTRIBUTES DEFAULT :: getpixelsrgb !DEC$ ATTRIBUTES C,ALIAS: "_getpixelsrgb" :: getpixelsrgb !DEC$ ENDIF INTEGER*4 n INTEGER*2 x (*) !DEC$ ATTRIBUTES REFERENCE :: x INTEGER*2 y (*) !DEC$ ATTRIBUTES REFERENCE :: y INTEGER*4 color (*) !DEC$ ATTRIBUTES REFERENCE :: color END SUBROUTINE END INTERFACE INTERFACE Для ускорения работы указанных подпрограмм мне необходимо передавать массивы через конструкцию module. Специально созданные в других языках (кроме Фортрана) подпрограммы не предлагать. Желательно для приёма-предачи работы (или услуги или консультации ) использование территории города Москвы. Это сообщение отредактировал(а) AO_COST - 19.9.2007, 17:25 |
|||
|
||||
AO_COST |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.2.2007 Репутация: нет Всего: нет |
Поработал с литературой (Бартеньев).
Понял, что прошу невозможное. Для пердачи через параметры подпрограммы не массива, а ссылки на массив надо, чтобы исполняющая программы была не стандартной. В этой связи прошу подпрограмму на Ассемблере, выводящую массив из блока module в видеопамять. Что то похожее на нижепривведенное. /* * ImageConsumer implementation */ /* * Set image properties. */ public void setProperties(Hashtable props) { // ignore } public void setColorModel(ColorModel cm) { if (forceRGB) { colorModel = new java.awt.image.DirectColorModel(24, 0xff0000, 0xff00, 0xff); } else { colorModel = cm; } } public void setDimensions(int width, int height) { this.width = width; this.height = height; } public void setHints(int hintflags) { } public void setPixels(int x, int y, int w, int h, ColorModel model, byte pixels[], int off, int scansize) { if (finished) { return; } try { checkProxy(pixels); } catch (JimiException e) { abort(); return; } if (forceRGB) { setPixelsRGB(x, y, w, h, model, pixels, off, scansize); } else { if (model == colorModel) { try { byteImage.setRectangle(x, y, w, h, pixels, off, scansize); } catch (ImageAccessException e) { abort(); } } else { abort(); } } } public void setPixels(int x, int y, int w, int h, ColorModel model, int pixels[], int off, int scansize) { if (finished) { return; } try { checkProxy(pixels); } catch (JimiException e) { abort(); return; } if (forceRGB) { setPixelsRGB(x, y, w, h, model, pixels, off, scansize); } else { if (model == colorModel) { try { intImage.setRectangle(x, y, w, h, pixels, off, scansize); } catch (ImageAccessException e) { abort(); } } else { abort(); } } } public void imageComplete(int status) { source.removeConsumer(this); if (!finished) { if (!finished && status != IMAGEERROR && status != IMAGEABORTED) { setFinished(); } else { abort(); } } } protected void setPixelsRGB(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off, int scansize) { int[] rowBuf = new int[pixels.length]; for (int row = 0; row < h; row++) { for (int column = 0; column < w; column++) { rowBuf[column] = model.getRGB(pixels[off + (row * scansize) + column]); } try { intImage.setRectangle(x, y + row, w, 1, rowBuf, 0, w); } catch (ImageAccessException e) { abort(); } } } protected void setPixelsRGB(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize) { int[] rowBuf = new int[pixels.length]; for (int row = 0; row < h; row++) { for (int column = 0; column < w; column++) { rowBuf[column] = model.getRGB(pixels[off + (row * scansize) + column]); } try { intImage.setRectangle(x, y + row, w, 1, rowBuf, 0, w); } catch (ImageAccessException e) { abort(); } } } } |
|||
|
||||
AO_COST |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.2.2007 Репутация: нет Всего: нет |
Задача остаётся актуальной.
Жду вопросы о цене вопроса [email protected] 11.10.2010 добавлено: Задача уточняется. После заключения договора со мной исполнитель должен написать программу и зарегистрировать надлежащим в России способом на себя, а уж затем продать права мне на владение, аренду, продажу и залог прав на одновременное использование не более десяти реализаций программы, на максимальный срок , разрешенный нашим законодателем. Это сообщение отредактировал(а) AO_COST - 10.10.2010, 23:46 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Объявления о найме специалистов" | |
|
В случае невыполнения данных правил Ваши сообщения могут быть удалены без предупреждения. Полный спискок правил. С уважением, BearBeer. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Объявления о найме специалистов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |