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

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
    довольно длинно, но читается хорошо
  • ALEXS1983
    Для ассемблера не надо структуры. Делай, как я показал, отдельные константы.
    Разбираться по мелочам будет долго. Сделай черновик, я разберусь.
  • Pathoswithin wrote:Например? Сохранил уже что-нибудь?
    Уже писал, читай внимательно. Из последнего превращение документации в цирк с помощью перлов типа "лютое". По крайней мере в системе нет блобов в виде библиотек без исходного кода, за что я поблагодарил автора, т.к. он в отличии от некоторых умеет воспринимать критику правильно и исправлять ошибки.
    Вот именно, не похоже, что ты много знаешь, иначе давно бы уже продемонстрировал. А то всё пытаешься что-то "сохранять от разрушительных действий" вместо того, чтобы создавать новое.
    Так и скажи "покажи мне код или ты ничего не знаешь". Новое я создаю в том числе и для Колибри, но когда выкладывать и выкладывать ли вообще буду решать сам.

    P.S. Здесь оффтопить более не намерен, пиши в чат если что.
  • ALEXS1983
    Последние наименования для функций уже гораздо лучше. Ещё ShutdownSysParam СисПарам там явно лишний, параметры так или иначе большинство функций имеет. Использование префикса old мне кажется неудачной идеей. Если какая-то функция устареет, которая вызывается во многих местах, то придется по всему коду бегать переделывать или использовать костыли в виде редефайнов. Такие функции просто должны помечаться как deprecated, т.е. не рекомендуемые к использованию в документации. А вот префикс в виде fk или ещё чего-то там ко всем именам позволит избежать проблем с дублированием, в частности тот же Pause.
  • E-andrew , Pathoswithin , Ray и другие!
    О-о-о-о, ребята ! :-) Всем спасибо!
    Почувствовал, что у нас будет, что-то получаться! Вот только правильный подход нужен, и он постепенно у нас наладился! Теперь я думаю правильно действовать так:
    Я перевожу очередную «порцию функций», выкладываю, саму ту «порцию функций», а также выкладываю вложенный файл KOSfuncs.inc со всеми, наработанными «патрохами». Вы обсуждайте, предлагайте, комментируйте, это всё будет учтено, но не сразу же, или точнее выражаясь, будет исправлено не сразу же, а после полного завершения созданий имён всех функций, т. е. после обработки мной всего файла.
    Ну вот. Вроде так должно, получаться, что-то эффективное у нас.
    Окончательную правку будет делать скорее всего Pathoswithin , он на это согласился. Как по мне, то мне, всё равно кто её будет делать, только не я!... :-) Так как я не являюсь таким уж большим спецом, годным для окончательных утверждений и заключений!
    Еще раз всем спасибо за участие и не безразличие.
    =====================
    Думаю правильно будет, если я файл с русским комментариями, пока «подвину» в сторону. А то, что делаю, буду «начинять» английскими комментариями. При большом желании, после всей обработки, создать версию с русскими комментариями, думаю не составит труда.
    Все что не скомпилирует FASM будет закоментировано, вот так «;!!!!» , с припиской ошибки которую выдаёт FASM вот пример:
    ;!!!!PAUSE=5 ; — пауза.
    ;!!!! error: reserved word used as symbol.
    Обращайте особое внимание на подобные строки.
    ==============================
    Вот, добавил:
    Spoiler:

    Code: Select all

    CREATE_WINDOW=0           ; - define and draw the window
    PUT_PEXEL=1               ; - put pixel in the window
    GET_KEY=2                 ; - get the code of the pressed key
    GET_SYS_TIME=3            ; - get system time
    DRAW_TEXT=4               ; - draw text string
    ;!!!!PAUSE=5              ; — delay
    ;!!!! error: reserved word used as symbol.
    OLD_READ_FILE_RD=6        ; - read the file from ramdisk
    PUT_IMAGE=7               ; - draw image in the window
    DEFINE_BUTTON=8           ; - define/delete the button
    PROCESS_INFO=9            ; - information on execution thread
    WAIT_EVENT=10             ; - wait for event
    CHECK_EVENT=11            ; - check for event, no wait
    
    WINDOW_REDRAW=12;;!!!!! Function 12 - begin/end window redraw
    .BEGIN_DRAW_WINDOW=1      ; Subfunction 1 - begin window redraw
    .END_DRAW_WINDOW = 2 ; Subfunction 2 - end window redraw
    
    DRAW_RECT=13          ; - draw a rectangle in the window 
    GET_SCREEN_SIZE=14    ; - get screen size 
    
    ; Function 15, subfunction 1 - set a size of the background image
    BACKGROUND=15 ;  background image 
    .SET_SIZE=1 ; subfunction 1 - set a size of the background image
    .PUT_PIXEL=2 ; subfunction 2 - put pixel on the background image
    .REFRESH=3 ; subfunction 3 - redraw background
    .SET_MODE=4 ;subfunction 4 - set drawing mode for the background
    .PUT_IMAGE=5 ; subfunction 5 - Put block of pixels on the background image.
    .MAP=6 ; subfunction 6 - Map background data to the address space of process       
    .UNMAP=7 ;  subfunction 7 - close mapped background data.
    .LAST_DRAW=8;subfunction 8 - Get coordinates of last draw the background
    .REDRAWS_RECTANG=9       ;subfunction 9 - Redraws a rectangular part of the background
     
    RD_TO_FLOPPY=16       ;  - save ramdisk on a floppy
    GET_BUTTIN=17   ; - get the identifier of the pressed button
    
    SYSTEM=18  ;  Function 18
    .DEACTIVATE_WINDOW=1 ;  subfunction 1 -  Make deactive the window of the given thread.
    .TERMINATE_THREAD=2 ; subfunction 2 - terminate process/thread by the slot. 
    .ACTIVATE_WINDOW=3 ; subfunction 3 - Make active the window of the given thread   
    .GET_IDLE_COUNT=4 ;  subfunction 4 - Get counter of idle time units per one second.
    .GET_CPU_REQUENCY=5 ; subfunction 5 - get CPU clock rate.
    .RD_TO_HDD=6 ; subfunction 6 - save ramdisk to the file on hard drive
    .GET_ACTIVE_WINDOW=7 ; subfunction 7 - get active window
    
    .SPEAKER =8 ; Function 18, subfunction 8
    .SPEAKER_STATE=1 ; Subsubfunction 1 - get status 
    .SPEAKER_TOGGLE=2 ; Subsubfunction 2 - toggle status.
    
    .SHUTDOWN_SYS_PARAM=9 ;   subfunction 9 - system shutdown with the parameter. 
    .WINDOW_MINIMIZE=10 ; subfunction 10 - minimize topmost window   
    .INFO_DISC_SYS=11 ; subfunction 11 - get information on the disk subsystem    
    .KERNEL_VERSION=13 ; subfunction 13 - get kernel version.
    .WAIT_RETRACE=14 ; subfunction 14 - wait for screen retrace
    .CURSOR_RESET=15 ; subfunction 15 - center mouse cursor on the screen
    .GET_FREE_RAM=16 ; subfunction 16 - get size of free RAM
    .GET_TOTAL_RAM=17 ; subfunction 17 - get full amount of RAM
    .TERMINATE_THREAD_ID=18 ; subfunction 18  Terminate process/thread by the identifier. ============
    
    ;======== Function 18, subfunction 19 - get/set mouse features. =======   
    .GET_MOUSE_SPEED=0 ; Subsubfunction 0 - get mouse speed.
    .SET_MOUSE_SPEED=1 ; Subsubfunction 1 - set mouse speed.       
    .GET_MOUSE_ACCELARAT=2 ; Subsubfunction 2 - get mouse acceleration
    .SET_MOUSE_ACCELARAT=3 ; Subsubfunction 3 - set mouse acceleration
    .SET_MOUSE_POS=4 ; Subsubfunction 4 - set mouse pointer position 
    .SIMUL_MOUSE_KEY=5 ; Subsubfunction 5 - simulate state of mouse buttons
    .GET_DOUBLE_CLICK_DELAY=6 ; Subsubfunction 6 - get doubleclick delay. -------------
    .SET_DOUBLE_CLICK_DELAY=7  ;Subsubfunction 7 - set doubleclick delay.
    
    .GET_INFO_RAM =20 ; ;subfunction 20 - get information on RAM.
    .GET_NUMBER_PROCESS_THREAD=21         ; subfunction 21 - Get slot number of process/thread by the identifier.
    ;!!!!. !!!!!!! ????                         ; subfunction 22 - Operations with window of another thread
    .MINIMIZE_ALL_WINDOW=23         ;subfunction 23 - minimize all windows
    .SET_LIMIT_SCREEN=24 ; subfunction 24 - set limits of screen
    
    .CONTROL_POS_WINDOW=25                  ;subfunction 25- Control position of the window relative to other windows.
     .GET_POS=1 ; Subsubfunction 1 - get position 
     .SET_POS=2  ;Subsubfunction 2 - set position
     
     
     MIDI=20 ;==================== Function 20 - MIDI interface. ===================
     .RESET=1; Subfunction 1 - reset
     .OUTPUT=2 ;Subfunction 2 - output byte
     
     MPU_MIDI_BASE_PORT=21; 
     .SET_MPU_MIDI_BASE_PORT=1 ;subfunction 1 - set MPU MIDI base port
     .SET_KEYBOARD_LAYOR=2 ;subfunction 2 - set keyboard layout.
     .SET_SYS_LANG=5  ; subfunction 5 - set system language
     .LOW_LEVEL_ACCESS_HD=11 ;   subfunction 11 - enable/disable low-level access to HD.
     .LOW_LEVEL_ACCESS_PCI=12 ;subfunction 12 - enable/disable low-level access to PCI.
     
    SET_SYS_DATE_TIME=22 ; - set system date/time
    WAIT_EVENT_TIMEOUT=23 ;     ; - wait for event with timeout.
    
    ;Function 24
    EJECT_TRAY_DISC=4; subfunction 4 - eject tray of disk drive. 
    LOAD_TRAY_DISK=5;  subfunction 5 - load tray of disk drive.
    
    PUT_IMAGE_AREA_BACKGROUNG=25 ; - put image area on the background layer   
    
    Пока хватит! А, то что-то у меня мозги «зашиваются» от Subsubfunction . Проверяйте внимательно и всё абсолютно, - имя, номер, комментарий к нему и т. д. Особенно функции с subfunction и subsubfunction.
    В дальнейшем, первые 10,20, ... функций, я публиковать в сообщении не буду!
    Абсолютно всё будет в прикреплённом к сообщению, файле KOSfuncs.inc
    Кстати, 7z-пить или RAR-ить его нужно ? или пусть так ?
    KOSfuncs.inc (5.19 KiB)
    Downloaded 352 times
  • Вот еще, что хочу всем сказать:
    Я "начальный" "изготовитель" имён, которые еще должны обсуждаться, критиковаться, корректироваться. И поэтому, я критику и замечания буду учитывать, только ту, что явно имеет ко мне отношение, а именно: делай в SNAKE... делай в CASE... делай с "_"... делай вместо Flow, - Thread... и т.д.
    Остальное, не очень-то касающееся именно "начального" "изготовления" имён, какие-то явно спорные моменты "Size" или "Resolution".... структурой.... через точку... еще чего-то, я буду относится в режиме "постольку-поскольку" :-). Пока не скажет, тот кто будет принимать (Pathoswithin), как продолжать делать.
  • Who is online

    Users browsing this forum: No registered users and 0 guests