Доброй ночи.
Привожу пример, стоит задача вывести одновременно более 38 локальных переменных одновременно.
Как, в данном случае, прочитать и вывести с нулевого и первого ID ячеек значения, чтобы это было такого вида: Writed 1337 228.
Повторюсь, в моем случае надо будет выводить более 38 ячеек буфера одновременно.
Спасибо за помощь.
С уважением, Hardov.
Привожу пример, стоит задача вывести одновременно более 38 локальных переменных одновременно.
Как, в данном случае, прочитать и вывести с нулевого и первого ID ячеек значения, чтобы это было такого вида: Writed 1337 228.
Повторюсь, в моем случае надо будет выводить более 38 ячеек буфера одновременно.
Спасибо за помощь.
Код:
{$CLEO}
0AC8: 0@ = allocate_memory_size 512
0C11: memset destination 0@ value 0x0 size 512
0AB1: call_scm_func @CallBuffer Params 4 | {ID Ячейки}0 {Указатель на Buffer}0@ {Тип функции}1 {Число}1337 || {Result}1@ |
0AB1: call_scm_func @CallBuffer Params 4 | {ID Ячейки}0 {Указатель на Buffer}0@ {Тип функции}0 {Число}0 || {Result}1@ |
0AB1: call_scm_func @CallBuffer Params 4 | {ID Ячейки}1 {Указатель на Buffer}0@ {Тип функции}1 {Число}228 || {Result}1@ |
0AB1: call_scm_func @CallBuffer Params 4 | {ID Ячейки}1 {Указатель на Buffer}0@ {Тип функции}0 {Число}0 || {Result}1@ |
0AD1: show_formatted_text_highpriority "Writed: %d" time 5000 {Result}1@
0AC9: free_allocated_memory 0@
0A93:
:CallBuffer
// 0@ - ID Ячейки.
// 1@ - Указатель на Buffer .
// 2@ - Тип функции {1 - Write, Other - Read}.
// 3@ - Число для записи.
0012: 0@ *= 4 // Получаем смещение на указанную ячейку.
005A: 0@ += 1@ // Получаем указатель на ячейку.
IF 0039: 2@ == 1 // Проверяем тип вызова.
THEN 0A8C: write_memory 0@ size 4 value 3@ virtual_protect TRUE // Запись данных в ячейку.
ELSE 0A8D: 25@ = read_memory 0@ size 4 virtual_protect TRUE // Считывание данных.
END
0AB2: RET_ 1 {Result}25@
С уважением, Hardov.