Перейти к содержимому


Свернуть чат Чат Открыть чат во всплывающем окне

lz : (час назад) да не, я не)
Yakim (Watco... : (20 часов назад) Егор, ты говоришь так. будто у тебя они есть, так вот, че по чем?))))
Гость : (вчера) Вот бы сейчас, в 2018, читы на мехов гуглить...
lz : (вчера) Ты просто без читов гоняешь.
Yandersen : (вчера) Ниправда, этот сукасадист должен существовать, его не может не быть! Иначе на кого тяготы жизни сваливать?
Yakim (Watco... : (вчера) Юморист от бога, которого нет)))
Гость : (вчера) Бля, я думал это поиск
Гость : (вчера) Читы
Yakim (Watco... : (6 дней назад) Ну как-бы да, насколько я помню, Дуст и Сплайн основатели =) Кажется идея Дуста, реализация Сплайна.
lz : (6 дней назад) Вон даже свалкер2 будет, а ты говоришь. И P4 будет)
Yandersen : (неделю назад) ессниошибаюсь. Якимка, подтверди?..
Yandersen : (неделю назад) Егор, кто такой Дуст надо знать. Он папа Мехов, основатель Скаев, автор оригинальной идеи и главный разраб.
lz : (неделю назад) Всё будет.
lz : (неделю назад) Я его знать не знаю, и, поэтому, как-то безразлично.
Yandersen : (неделю назад) Не, ну остается ещё пол процента вероятности что старческий маразм, который, судя по всему, уже не за горами, толкнет дедулю на кикстартер и жалкую попытку возродить легенду, но если это и случится, это будет жалкий высер и позор, тут гарантированно.
Yandersen : (неделю назад) Ну так, антипример мотивационный. Тип для подверждения утверждения о последнем Джедае в твоем лице.
Yandersen : (неделю назад) Нам? Да незачем канеш. Прост он Батя Мехов, и после многолетней череды ежегодных грез о М3 такое вот отмачивает.
lz : (неделю назад) Он нам зачем?
lz : (неделю назад) Ни тепло ни холодно.
Yandersen : (неделю назад) Так как тебе новостя, что Дуст из Партизанов в Fearea перешел? От же мотает старика из говна в навоз...
Yandersen : (неделю назад) Еще бы. У меня во времена креативные если проект десяток хидеров включал, так я с наскока в лучшем случае все с нуля тупо переписывал, чем разбирался что там где как было. В худшем - тупо закрывал и забывал нах. Ты-то молодец.
lz : (неделю назад) Я бывает открываю, но с наскока не берётся так пока.
lz : (неделю назад) Так там 3 года назад ещё всё почти готово было. Прогресса особо больше и не было. АИ надо и всё считай.
Yandersen : (неделю назад) Егор, ну позязя, там же на вид не так много осталось? Будет играбельно хоть чутка - получится мотивационно, больше шансов что кто-нить из народа подключится.
lz : (неделю назад) Занят пока просто, терпение)
Гость : (неделю назад) Лол, нет)
Yandersen : (неделю назад) Ну, вялотекущие дела - это по моей части. Ты-то как креативность растерял, а Егорка? На тебя ж одна надежда осталась. Дуст вон в Fearea влился уже. Это ж все, мехам хана, а последний из Джедаев стал вялотекущими делами заниматься, вместо того чтоб мир разумных машин от забвения спасать. Ну Егооооор... :(
lz : (3 недель назад) По гитхабу можно посмотреть.
lz : (3 недель назад) Вялотекущий режим. Время от времени чего-то смотрю.
Yandersen : (3 недель назад) Егорушка, ну а как же ремастеред?.. :(
Yakim (Watco... : (4 недель назад) бугага
lz : (4 недель назад) Вытаскивал из блока.
lz : (4 недель назад) Блэт, мои серваки на амазоне под раздачу попали.
Yakim (Watco... : (05 Апрель 2018 - 20:54) :ph34r:
Гость : (22 Март 2018 - 09:37) Благодарю :) (предпочитаю постоянный стабильный заработок)
Yakim (Watco... : (21 Март 2018 - 19:56) пхахаха
lz : (21 Март 2018 - 16:46) Может быть, хочешь знать, как поднять бабла?
lz : (21 Март 2018 - 16:46) Кстати, а проблем с доступом к джойказино у тебя нет?
lz : (21 Март 2018 - 16:02) Активировал.
Гость : (21 Март 2018 - 15:32) Проблемы с активацией аккаунта на форуме... =)
Yakim (Watco... : (19 Март 2018 - 21:37) :ph34r:
Yakim (Watco... : (01 Февраль 2018 - 21:44) ?
Yandersen : (01 Февраль 2018 - 19:04) Проблемы?..
Yakim (Watco... : (31 Январь 2018 - 13:18) Какие проблемы?
lz : (30 Январь 2018 - 16:17) Какие проблемы? Проблемы с другими движками?

Фотография
- - - - -

[asm.hpp] - библиотека базовых функций

C++ assembler CRT

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 18 Июль 2017 - 19:21

Простейшие функции, написанные по большей части прямо на ассемблере:

 

asm.hpp

 

Справочник:

unsigned int asmBestBufferSize( unsigned int DataSize )

Вычисляет рекомендуемый размер буффера для хранения данных указанного размера.

В случае DataSize=0 возвращает 0;

для 1/2/3/4 байт возвращает 4;

для 4 < DataSize <= 2^31 вычисляет результат путём округления вверх до ближайшей степени двойки (8 для 5/6/7/8, 16 для 9/10/.../16 и т.д.);

если DataSize > 2^31, возвращает 2^32-1 (максимум).

void asmCopyMemory( void* Destination, const void* Source, unsigned int ByteCount )

Улучшенный эквивалент стандартной memmove - копирует кусок памяти размером "ByteCount" из "Source" в "Destination". Не ругается на нулевые адреса в аргументах (ничего тогда не делает). Частичное наложение копируемых кусков допустимо.

void* asmCompareBuffers( const void* Buffer1, const void* Buffer2, unsigned int ByteCount )

Сравнивает два массива ("Buffer1" и "Buffer2") размером "ByteCount" побайтно и возвращает либо 0 (если массивы эквивалентны) либо адрес байта в первом массиве, который не эквивалентен соответствующему байту во втором массиве. Если адрес как минимум одного из массивов NULL, возвращённое значение равно нулю. Чтобы найти индекс различающихся байтов, отнимите от результата адрес первого массива.

unsigned int asmCountChars( const char *String )

Считает количество 8-битных символов в нуль-терминированной строке (эквивалент стандартной strlen). Если на входе NULL, возвращает 0.

char* asmFindChar( const char* String, char CharToFind )

Сканирует нуль-терминированную строку "String" пока не найдёт указанный байт "CharToFind". Если найдёт, вернёт его адрес, а не найдёт - тогда NULL. Нулевой указатель давать можно.

char* asmFindLastChar( const char* String, char CharToFind,
                       unsigned int *CalculatedStringLength = NULL,
                       unsigned int *TotalCharsFound = NULL )

Сканирует всю нуль-терминированную строку "String" в поисках последнего встреченного байта "CharToFind". Если найдёт, вернёт его адрес, а не найдёт - тогда NULL. Нулевой указатель давать можно. Поскольку функция так или иначе сканирует всю строку, то можно в дополнение узнать её длину (дав указатель на контейнер для переменной "CalculatedStringLength") и сколько всего искомых байтов встречено по пути ("TotalCharsFound").

void asmFillMemory( void* Ptr, char c, unsigned int ByteCount )

Заполняет "ByteCount" байт памяти начиная с адреса "Ptr" указанным байтом "с" (эквивалент стандартной memset).

void asmFillMemory( void* Buffer, const void* Item, unsigned int ItemSize, unsigned int ItemCount )

Заполняет массив "Buffer" указанным элементом "Item" в количестве "ItemCount" штук, каждый размером "ItemSize" байт. Если один из указателей NULL или общий размер массива больше 2^32-1 байт, копирования не произойдёт.

unsigned long long asmGetTimeStamp()

Возвращает 64-битный счётчик тактов процессора (обнуляется при перезагрузке системы).

char* asmSLIToStrBin( signed long int Value, char* Buffer )
char* asmULIToStrBin( unsigned long int Value, char* Buffer )
char* asmSLLIToStrBin( signed long long int Value, char* Buffer )
char* asmULLIToStrBin( unsigned long long int Value, char* Buffer )

Конвертирует 32-битное (64-битное) значение ("Value") в бинарный формат (0b101). Для конвертации нужен буффер "Buffer" размером в 35 (67) байт. Возвращённый указатель - это адрес внутри буффера, где число начинается (не всегда прямо с первого байта).

char* asmSLIToStrOct( signed long int Value, char* Buffer )
char* asmULIToStrOct( unsigned long int Value, char* Buffer )
char* asmSLLIToStrOct( signed long long int Value, char* Buffer )
char* asmULLIToStrOct( unsigned long long int Value, char* Buffer )

Конвертирует 32-битное (64-битное) значение ("Value") в восьмеричный формат (0101). Для конвертации нужен буффер "Buffer" размером в 13 (24) байт. Возвращённый указатель - это адрес внутри буффера, где число начинается (не всегда прямо с первого байта).

char* asmSLIToStrHex( signed long int Value, char* Buffer )
char* asmULIToStrHex( unsigned long int Value, char* Buffer )
char* asmSLLIToStrHex( signed long long int Value, char* Buffer )
char* asmULLIToStrHex( unsigned long long int Value, char* Buffer )

Конвертирует 32-битное (64-битное) значение ("Value") в шестнадцатеричный формат (0x101). Для конвертации нужен буффер "Buffer" размером в 11 (19) байт. Возвращённый указатель - это адрес внутри буффера, где число начинается (не всегда прямо с первого байта).

char* asmULIToStrDec( unsigned long int Value, char* Buffer )
char* asmSLIToStrDec( signed long int Value, char* Buffer )
char* asmULLIToStrDec( unsigned long long int Value, char* Buffer )
char* asmSLLIToStrDec( signed long log int Value, char* Buffer )

Конвертирует 32-битное (64-битное) значение ("Value") в десятичный формат (320, -783). Для конвертации нужен буффер "Buffer" размером в 11 или 12 (21 или 22) байт. Возвращённый указатель - это адрес внутри буффера, где число начинается (не всегда прямо с первого байта).

char* asmFToStrDec( float Value, char* Buffer )
char* asmDToStrDec( double Value, char* Buffer )

Конвертирует float (double) значение ("Value") в формат с плавающей запятой (2., -1.23456e-12, 6.e3). Для конвертации нужен буффер "Buffer" размером в 17 (25) байт. Возвращённый указатель - это адрес внутри буффера, где число начинается (не всегда прямо с первого байта). Количество значащих цифр для типа float - 9 (до 8 после запятой), для double - 17 (до 16 после запятой).

int asmDToStrDec( double Value, char* Buffer, int Digits )

Переводит значение ("Value") в формат

[целочисленное_значение] * 10[экспонента]

с указанным количеством цифр ("Digits") в целочисленном значении и сохраняет эту часть в буффер ("Buffer") в виде нуль-терминированной строки цифр (для отрицательных значений первым будет знак минус), а экспоненту функция возвращает. Размер буффера должен быть на два байта больше чем запрошенное количество цифр ("Digits").

unsigned long long int asmStrBinToInt( char* String )
unsigned long long int asmStrOctToInt( char* String )
unsigned long long int asmStrHexToInt( char* String )

Декодирует значение, записанное в бинарном/восьмеричном/шестнадцатеричном формате как 64-битное целочисленное беззнаковое.

signed long long int asmStrDecToInt( char* String )

Декодирует значение, записанное в десятеричном формате как 64-битное целочисленное. Допускает использование +/- знаков.

double asmStrDecToDouble( char* String )

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



#2 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 21 Июль 2017 - 21:10

Версия 1.0.1:

Добавлена функция

 


int asmDToStrDec( double Value, char* Buffer, int Digits )

 Переводит значение ("Value") в формат

[целочисленное_значение] * 10[экспонента]

с указанным количеством цифр ("Digits") в целочисленном значении и сохраняет эту часть в буффер ("Buffer") в виде нуль-терминированной строки цифр (для отрицательных значений первым будет знак минус), а экспоненту функция возвращает. Размер буффера должен быть на два байта больше чем запрошенное количество цифр ("Digits").

 

Функции asmFToStrDec и asmDToStrDec теперь округляют последнюю цифру.



#3 OFFLINE   lz

lz

    True Warrior

  • Админ
  • 213 сообщений

Отправлено 23 Июль 2017 - 02:03

Всё равно тебе репозиторий нужен. Туда и тестов написать можно и примеров, и документацию можно генерить по исходникам сейчас. Туда текст из комментариев будет идти.


Polygon-4
Документация и инструкции по установке доступны по ссылке:
 

#4 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 23 Июль 2017 - 13:37

Занимался ли бы я вапще чем-то подобным будь я способен разобраться с котовасией репозиториев и гитхабов?.. :rolleyes:







Темы с аналогичным тегами C++, assembler, CRT

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных