Названия системных функций

High-level languages programming questions
  • Я выражаю своё мнение по делу и имею желание сохранить её от разрушительных действий отдельных нубов
    Например? Сохранил уже что-нибудь?
    Я ещё и доказывать должен что-то? Зачем? Чтобы ты поверил? У меня такой цели нет.
    Вот именно, не похоже, что ты много знаешь, иначе давно бы уже продемонстрировал. А то всё пытаешься что-то "сохранять от разрушительных действий" вместо того, чтобы создавать новое.
  • Не надо просто в крайности кидаться. Огораживать = получить застой и смерть в конце концов, сделать анархию = получить трэш. В данный момент наша ситуация мне видится где-то посередине (чуть ближе к анархии). Каждый делает что хочет, но иногда набИгают CleverMouse c Pathoswithin и откровенный трэш подчищают (утрирую, но примерно так и есть). Остальные (вроде меня) созерцают и пытаются помогать чем-нибудь в меру своих знаний и возможностей. Каждая букашка в лесу для чего-нибудь нужна, оттого порядок.(С) Потому не ссорьтесь.
  • Pathoswithin wrote:Ray
    Я считаю, что для спасения системы нужно назначить комитет грамотных и уважаемых программистов
    Я тоже считаю, что некая иерархия не помешала бы. Только угадай, на каком месте в ней будешь ты. Ещё совсем недавно yogev_ezra красил в тёмно-зелёный любителей поумничать и ничего полезного не делать. А CleverMouse даже банила когда-то, чтоб полезным "говнокодерам и питросянам" не приходилось бодаться с такими, как ты.
    языков программирования я знаю немало
    :roll: ... не верю, чем докажешь?

    ALEXS1983
    Я обновил документацию по сисфункциям 18.19, скачай новый sysfuncs.txt.
    Сомневаюсь, что тут будет так много спорных названий, что стоит утверждать по частям, лучше всё сразу в стиле:

    GetScreenSize = 14 ; получить размеры экрана
    Background = 15
    ;подфункции:
    SetSize = 1 ; установить размер фонового изображения
    PutPixel = 2
    Refresh = 3
    SetMode = 4
    PutImage = 5
    Map = 6
    Unmap = 7 ; закрыть проекцию данных фона на адресное пространство процесса

    RDtoFloppy = 16 ; сохранить рамдиск на дискету
    GetButton = 17 ; получить код нажатой кнопки

    Тогда можно будет писать:
    mcall Background, Refresh

    Только может стоит комментарии писать на английском.
    Предложу писать константы в snake_case + uppercase, как это обычно принято во многих стайлгайдах, то есть PUT_IMAGE, BACKGROUND, SET_SIZE (в данном случае во избежание коллизий лучше делать SET_BACKGROUND_SIZE, то есть будет что-то вроде
    mcall BACKGROUND, SET_BACKGROUND_SIZE).
  • Давным-давно, в далекой-далекой галактике был основной сайт сообщества, на котором можно было скачать макросы вида
    WriteTextToWindow xStart,yStart,rgbColor,pText,nTextLen
    PutPixel xCoord,yCoord,rgbColor
    DrawWindow xStart,yStart,xSize,ySize,bColor,gColor,fColor
    PutImage xPos,yPos,xImage,yImage,pImage

    В архиве https://web.archive.org/web/20050307142 ... enuett.rar есть этот самый файл menuett.inc. Я использовал в cpuid его укороченный вариант.
  • Pathoswithin wrote:Сомневаюсь, что тут будет так много спорных названий, что стоит утверждать по частям, лучше всё сразу в стиле
    Pathoswithin wrote:Только может стоит комментарии писать на английском.
    На данный момент, всё в целом от 1 до 18 функции у меня вот так:
    Spoiler:CreateWindow - Функция 0 - определить и нарисовать окно.
    PutPixel - Функция 1 - поставить точку в окне.
    GetKey - Функция 2 - получить код нажатой клавиши.
    GetSysTime - Функция 3 - получить системное время.
    DrawText - Функция 4 - вывести строку текста в окно
    Pause - Функция 5 — пауза.
    old_ReadFileRD - Функция 6 - прочитать файл с рамдиска
    PutImage - Функция 7 - вывести изображение в окно
    DefineButton - Функция 8 - определить/удалить кнопку.
    ProcessInfo - Функция 9 - информация о потоке выполнения.
    WaitEvent - Функция 10 - ожидать события

    CheckEvent - Функция 11 - проверить, есть ли событие, без ожидания.
    BeginDrawWindow - Функция 12 - Подфункция 1 - начать перерисовку окна.
    EndDrawWindow - Функция 12 - Подфункция 2 - закончить перерисовку окна
    DrawRect - Функция 13 - нарисовать прямоугольник в окне
    GetScreenSize - Функция 14 - получить размеры экрана.
    Background - Функция 15 фоновое изображение
    .SetSize - Функция 15, подфункция 1 - установить размер фонового изображения
    .PutPixel - Функция 15, подфункция 2 - поставить точку на фоновом изображении. =
    .Refresh - Функция 15, подфункция 3 - перерисовать фон.
    .SetMode - Функция 15, подфункция 4 - установить режим отрисовки фона.
    .PutImage - Функция 15, подфункция 5 - поместить блок пикселей на фон.
    .Map - Функция 15, подфункция 6 Спроецировать данные фона на адресное пространство процесса.
    .Unmap - Функция 15, подфункция 7 Закрыть проекцию данных фона на адресное пространство процесса.
    RDtoFloppy - Функция 16 - сохранить рамдиск на дискету.
    GetButton - Функция 17 - получить код нажатой кнопки.
    System - Функция 18
    .DeactivateWindow - Функция 18, подфункция 1 - сделать самым нижним окно потока.
    .TerminateThread - Функция 18, подфункция 2 - завершить процесс/поток по слоту.
    .ActivateWindow - Функция 18, подфункция 3 - сделать активным окно заданного потока.
    .GetIdleCount - Функция 18, подфункция 4 - получить счётчик пустых тактов в секунду.
    .GetCPUFrequency - Функция 18, подфункция 5 - получить тактовую частоту.
    .RDtoHDD - Функция 18, подфункция 6 - сохранить рамдиск в файл на жёстком диске.
    .GetActiveWindow - Функция 18, подфункция 7 - получить номер активного окна.
    Speaker - Функция 18, подфункция 8 - отключить/разрешить звук спикера.
    .SpeakerState - Функция 18, подфункция 8 - отключить/разрешить звук спикера. Подподфункция 1 - получить состояние
    .SpeakerToggle - Функция 18, подфункция 8 - отключить/разрешить звук спикера. Подподфункция 2 - переключить состояние.
    shutdownSysParam - Функция 18, подфункция 9 - завершение работы системы с параметром
    WindowMinimize - Функция 18, подфункция 10 - свернуть окно приложения.
    InfoDiscSubSys - Функция 18, подфункция 11 Получить информацию о дисковой подсистеме.
    .KernelVersion - Функция 18, подфункция 13 - получить версию ядра.
    .WaitRetrace - Функция 18, подфункция 14 Ожидать начала обратного хода луча развёртки монитора.
    .CursorReset - Функция 18, подфункция 15 - поместить курсор мыши в центр экрана
    .GetFreeRAM - Функция 18, подфункция 16 Получить размер свободной оперативной памяти.
    .GetTotalRAM - Функция 18, подфункция 17. Получить размер имеющейся оперативной памяти.
    .TerminateThreadID - Функция 18, подфункция 18 Завершить процесс/поток по идентификатору.
    GetMouseSpeed - Функция 18, подфункция 19 - получить/установить настройки мыши. Подподфункция 0 - получить скорость мыши.
    SetMouseSpeed - Функция 18, подфункция 19 - получить/установить настройки мыши. Подподфункция 1 - установить скорость мыши.
    GetMouseDelay - Функция 18, подфункция 19 - получить/установить настройки мыши. Подподфункция 2 - получить задержку мыши.
    SetMouseDelay - Функция 18, подфункция 19 - получить/установить настройки мыши. Подподфункция 3 - установить задержку мыши.
    SetMousePos - Функция 18, подфункция 19 - получить/установить настройки мыши. Подподфункция 4 - установить положение курсора мыши.
    SimulMouseKey - Функция 18, подфункция 19 - получить/установить настройки мыши. Подподфункция 5 - симулировать состояние клавиш мыши.
    Посмотри, что так, что нет так.
    Комментарии, я так понял, надо сделать на английском ? - ну можно и так и сяк (рус\англ)
    Как действовать мне дальше ?... если не частями ?
    Подготовить ВЕСЬ ДО КОНЦА sysfuncs.txt - и выложить с именами которые предлагаю я ?
    Ты думаешь, действительно не так уж много будет спорных названий? Может всё таки лучше частями ?
    Напиши плиз чётко, какие должны быть мои действия.
  • Wildwest wrote: В архиве https://web.archive.org/web/20050307142 ... enuett.rar есть этот самый файл menuett.inc. Я использовал в cpuid его укороченный вариант.
    Весьма не плохо! Вот если бы еще ТАМ, было бы, "легкое" описание, "не отходя от кассы", да еще и на русском, - вот это классно бы было!
  • KOSfuncs.h надо сделать как menuett.inc, и однозначно в CamelCase. KOSfuncs.inc будет просто набором констант через "=", в ассемблере и mcall вполне достаточно. Если по стандартам, то константы должны быть в UPPER_SNAKE_CASE, только будет ли это удобно? Тем более есть неоднозначность, в нашем случае это вроде как названия функций.

    ALEXS1983
    В общем, делаешь KOSfuncs.inc, выкладываешь сюда, я переделываю где-то половину, выкладываю, братва плюётся, матюкается, редактируем
    Spoiler:Image
    приходит атаман, подтверждает, заливаем на SVN, думаем над KOSfuncs.h. Вот такой план.
  • Ну вот набросал такое. Обрати внимание на:
    ;PAUSE=5 ; — пауза.
    ;!!!! error: reserved word used as symbol.

    ;END_DRAW_WINDOW = ???? - ТОЖЕ 12 чтоли ???? - Подфункция 2 - закончить перерисовку окна

    ;а со структорой как быть ?!?
    ; ?!?! struc Background
    ;?!?!? SetSize=1;
    ;?!?!? endstruc

    Code: Select all

    CREATE_WINDOW=0           ; - определить и нарисовать окно.
    PUT_PEXEL=1               ; - поставить точку в окне.
    GET_KEY=2                 ; - получить код нажатой клавиши.
    GET_SYS_TIME=3            ; - Функция 3 - получить системное время.
    DRAW_TEXT=4               ; - Функция 4 - вывести строку текста в окно
    [b];PAUSE=5                   ; — пауза.
    ;!!!! error: reserved word used as symbol.[/b]
    OLD_READ_FILE_RD=6        ; - прочитать файл с рамдиска
    PUT_IMAGE=7               ; - вывести изображение в окно
    DEFINE_BUTTON=8           ; - определить/удалить кнопку.
    PROCESS_INFO=9            ; - информация о потоке выполнения.
    WAIT_EVENT=10             ; - ожидать события
    
    CHECK_EVENT=11            ; - проверить, есть ли событие, без ожидания.
    BEGIN_DRAW_WINDOW=12      ; - Подфункция 1 - начать перерисовку окна.
    [b];END_DRAW_WINDOW = ???? - ТОЖЕ 12 чтоли ????  - Подфункция 2 - закончить перерисовку окна
    [/b]DRAW_RECT=13; 
    GET_SCREEN_SIZE=14;
    
    [b];а со структорой как быть ?!?
    ; ?!?! struc Background
    ;?!?!? SetSize=1;
    ;?!?!? endstruc
    [/b]
    ;Background -  Функция 15  фоновое изображение
    ;  .SetSize - Функция 15, подфункция 1 - установить размер фонового изображения
    ;  .PutPixel - Функция 15, подфункция 2 - поставить точку на фоновом изображении. =
    ;  .Refresh - Функция 15, подфункция 3 - перерисовать фон.
    ;  .SetMode - Функция 15, подфункция 4 - установить режим отрисовки фона.
    ;  .PutImage - Функция 15, подфункция 5 - поместить блок пикселей на фон.
    ;  .Map - Функция 15, подфункция 6 Спроецировать данные фона на адресное пространство процесса.
    ;  .Unmap - Функция 15, подфункция 7 Закрыть проекцию данных фона на адресное пространство процесса.
  • О, за SNAKE_CASE плюсую.

    Насчет DRAW_WINDOW, можно что-то вроде SET_DRAWING_WINDOW_STATUS = 12, START_DRAWING_WINDOW = 1, FINISH_DRAWING_WINDOW = 2
    Но данный варинат не особо подойдет, ибо он искажает суть функции, она не устанавливает никаких статусов (если же устанавливает, то имхо это лучший вариант).
    Но нужно еще поработать над английским, лучше вариант SET_WINDOWS_DRAWING_STATUS, но s добавляется только к одушевленным, поэтому правильнее SET_DRAWING_STATUS_FOR_WINDOW, что длинно.
    Можно ввести неймспейсы, типа WND_SET_DRAWING_STATUS - самая годная моя мысль.
    И еще скорее всего нужно заменить STATUS на STATE, то есть WND_SET_DRAWING_STATE

    Code: Select all

    mcall WND_SET_DRAWING_STATE, WND_DRAWING_STATE_START
    довольно длинно, но читается хорошо