Page 5 of 8

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

Posted: Mon Dec 14, 2015 4:13 pm
by CleverMouse
ALEXS1983 wrote:Ну вот набросал такое. Обрати внимание на:
;PAUSE=5 ; — пауза.
;!!!! error: reserved word used as symbol.
Отсутствие общего префикса, вид сбоку. pause - команда SSE2, опкод F3 90. Общий префикс обязательно должен быть, иначе будут случайные совпадения.
В случае конкретно функции 5, впрочем, общепринятое название - sleep.

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

Posted: Mon Dec 14, 2015 5:27 pm
by ALEXS1983

Code: Select all

;Function 26
GET_MPU_MIDI_BASE_PORT=1 ;Function 26, subfunction 1 - get MPU MIDI base port.
GET_KEY_LAYOUT=2  ;Function 26, subfunction 2 - get keyboard layout.
GET_SYS_LANG=5 ;subfunction 5 - get system language. 
GET_VALUE_TIME_COUNT=9 ; subfunction 9 - get the value of the time counter
GET_VALUE_HIGH_PRECRIS_TIME_COUNT=10; subfunction 10 - Get the value of the high precision time counter. =========
FIND_OUT_LOW_LEVEL_ACCESS=11 ; subfunction 11 - Find out whether low-level HD access is enabled
FIND_OUT_LOW_LEVEL_ACCESS_PCI=12 ; subfunction 12 , Find out whether low-level PCI access is enabled

GET_SYS_DATE=29 ;  Function 29 - get system date.
 
WORK_CURRENT_FOLDER=30; Function 30 - work with the current folder
SET_CURRENT_FOLDER_THREAD=1 ;Subfunction 1 - set current folder for the thread
GET_CURRENT_FOLDER_THREAD=2 ; Subfunction 2 - get current folder for the thread.
INST_SYS_DIR_KERNEL=3 ; Subfunction 3 - install the add.system directory for the kernel
WHO_OWNER_PIXEL_SCREEN=34; - who owner the pixel on the screen. 
READ_COLOR_PIXEL_SCREEN=35 ; read the color of a pixel on the screen.
KOSfuncs.inc (6.29 KiB)
Downloaded 382 times

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

Posted: Mon Dec 14, 2015 5:31 pm
by ALEXS1983
CleverMouse, с префиксом писать ? С каким ?
FK_ ? или KOS_ ? или....
Ну KOS_ уже есть в kosSyst.cpp
CleverMouse wrote:впрочем, общепринятое название - sleep.
Ну общепринятое название, получается, что тоже нельзя в данном случае применять, так как оно общепринятое _УЖЕ_! Только префикс ?!

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

Posted: Mon Dec 14, 2015 5:35 pm
by Veliant
GET_VALUE_TIME_COUNT -> GET_TICK_COUNT
FIND_OUT_LOW_LEVEL_ACCESS -> CHECK_HD_LOW_LEVEL_ACCESS
FIND_OUT_LOW_LEVEL_ACCESS_PCI -> CHECK_PCI_LOW_LEVEL_ACCESS

WORK_CURRENT_FOLDER=30; Function 30 - work with the current folder
SET_CURRENT_FOLDER_THREAD=1 ;Subfunction 1 - set current folder for the thread
GET_CURRENT_FOLDER_THREAD=2 ; Subfunction 2 - get current folder for the thread.
=>SET_CURRENT_DIRECTORY, GET_CURRENT_DIRECTORY

INST_SYS_DIR_KERNEL => APPEND_KERNEL_SYSDIR

READ_COLOR_PIXEL_SCREEN => GET_PIXEL

Везде пиши либо directory либо folder, не надо мешать

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

Posted: Mon Dec 14, 2015 5:59 pm
by Pathoswithin
Ещё можно префикс SF_ (sysfunction) или тупо INT_

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

Posted: Mon Dec 14, 2015 6:03 pm
by ALEXS1983
Pathoswithin wrote:Ещё можно префикс SF_ (sysfunction) или тупо INT_
Эй, Атаманы!... :-) поточнее можно!... что еще за "или" ? :-)
===============
Извиняюсь, что забыл про "точки" в константах, последних функциях.

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

Posted: Mon Dec 14, 2015 6:08 pm
by ALEXS1983
Veliant wrote:Везде пиши либо directory либо folder, не надо мешать
Хорошо! FOLDER писать, да ?

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

Posted: Mon Dec 14, 2015 6:45 pm
by ALEXS1983

Code: Select all

READ_SCREEN_AREA=36 ; - read screen area. ==================

WORK_MOUSE=37;  - work with mouse. ===================
.SCREEN_COORD_MOUSE=0;Subfunction 0 - screen coordinates of the mouse
.COORD_MOUSE_WINDOW=1;   Subfunction 1 - coordinates of the mouse relative to the window
.STATE_MOUSE_BUTTON=2; Subfunction 2 - states of the mouse buttons
.STATE_EVENTS_MOUSE_BUTTON=3 ; Subfunction 3 - states and events of the mouse buttons
.LOAD_CURSOR=4; Subfunction 4 - load cursor 
.SET_CURSOR=5;Subfunction 5 - set cursor 
.DEL_CURSOR=6;Subfunction 6 - delete cursor --------------------
.GET_SCROLL_DATA=7;Subfunction 7 - get scroll data -------------------

DRAW_LINE=38; Function 38 - draw line. 

;== Function 39,
.GET_SIZE_BACKGROUND_IMAGE=1;  subfunction 1 - get a size of the background image.
.GET_PIXEL_BACKGROUND_IMAGE=2; subfunction 2 - get pixel from the background image.
.GET_DRAW_MODE_BACKGROUND=4 ; - get drawing mode for the background.
 
SET_MASK_EVENTS=40;  - set the mask for expected events
IN_OUT_PORT=43 ; - input/output to a port. 
RESERVE_OR_FREE_GROUP_IN_OUT_PORT=46;  - reserve/free a group of input/output ports. =====
DRAW_NUMB_WINDOW=47 ;

;Function 48
.APLLY_SCREEN_SETING=0; subfunction 0 - apply screen settings.
.SET_BUTTON_STYLE=1 ;  subfunction 1 - set button style
.SET_STANDARD_WINDOW_COLOR=2; - set standard window colors
.GET_STANDARD_WINDOW_COLOR=3; subfunction 3 - get standard window colors
.GET_SKIN_HEIGHT=4 ;subfunction 4 - get skin height
.GET_SCREEN_WORK_AREA=5 ;subfunction 5 - get screen working area. 
.SET_SCREEN_WORK_AREA=6 ;subfunction 6 - set screen working area
.GET_SKIN_MARGINS=7 ;subfunction 7 - get skin margins
.SET_USED_SKIN=8; subfunction 8 - set used skin
.GET_FONT_SMOOTH_SETTING=9 ;subfunction 9 - get font smoothing setting.
.SET_FONT_SMOOTH=10;subfunction 10 - set font smoothing.
.GET_FONT_SIZE=11 ;subfunction 11 - get font size. 
.SET_FONT_SIZE=12 ;subfunction 12 - set font size.

ADVANC_POWER_MANAGMETN=49 ; !!!или может APM ?!?! - Advanced Power Management (APM)
SET_WINDOW_SHAPE=50 ; - set window shape
KOSfuncs.inc (8.36 KiB)
Downloaded 397 times

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

Posted: Tue Dec 15, 2015 12:59 pm
by ALEXS1983

Code: Select all

CREATE_THREAD=51;- create thread
;Function 54,
.GET_NUMB_SLOT_CLIPBOARD=0 ; subfunction 0 - Get the number of slots in the clipboard.
.READ_DATA_CLIPBOARD=1 ;subfunction 1 - Read the data from the clipboard
.WRITE_DATA_CLIPBOARD=2 ;  subfunction 2 - Write the data to the clipboard
.DEL_LAST_SLOT_CLIPBOARD=3;  ;subfunction 3 - Delete the last slot in the clipboard
.ALARM_RESET_BUFFER=4; subfunction 4 - Alarm reset the lock buffer

; Function 55,
.BEGIN_PLAY_SPEAKER=55; subfunction 55 - begin to play data on built-in speaker.
PCI_BIOS=57;  Function 57 - PCI BIOS.
INTER_PROCESS_COMMUNICAT=60; - Inter Process Communication (IPC).
.SET_AREA_FOR_IPC=1 ;Subfunction 1 - set the area for IPC receiving
.SEND_IPC_MESSAGE=2 ; Subfunction 2 - send IPC message
GET_PARAMETERS_DIRECT_GRAPH_ACCESS=61 ;- get parameters for the direct graphics access. ====

;Function 62
.GET_VERSION_PCI=0; ;-subfunction 0 - get version of PCI-interface. 
.GET_NUMB_LAST_PCI=1; ;subfunction 1 - get number of the last PCI-bus
.GET_MECHANISM_ADRR_PCI_CONFIG=2 ;subfunction 2 - Get mechanism of addressing to the PCI configuration space.
;!!!!!!!!!.READ_PCI_REGISTER=4;  ;subfunctions 4,5,6 - read PCI-register. ========
;!!!!!!!!!! .WRITE_PCI_REGISTER=8 subfunctions 8,9,10 - write to PCI-register. =====

WORK_DEBUG_BOARD=63; - work with the debug board
RESIZE_APP_MEM=64; - resize application memory. 
DRAW_IMAGE_PALLETTE_WINDOW=65; - draw image with palette in the window.
KOSfuncs.inc (9.81 KiB)
Downloaded 391 times

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

Posted: Tue Dec 15, 2015 7:24 pm
by ALEXS1983

Code: Select all

; Function 66 - work with keyboard.
.SET_KEY_INP_MODE=1; Subfunction 1 - set keyboard input mode. --------------
.SET_KEY_INP_MODE=2;;Subfunction 2 - get keyboard input mode. --------------
.GET_STATUS_CONTROL_KEYS=3;Subfunction 3 - get status of control keys. -------------
.SET_SYS_WIDE_HOTKEY=4; Subfunction 4 - set system-wide hotkey. ---------------
.DEL_INST_HOTKEY=5; Subfunction 5 - delete installed hotkey. --------------
.LOCK_NORMAL_INP=6;Subfunction 6 - block the normal input. --------------
.ULOCK_NORMAL_INP=7; Subfunction 7 - unlock the normal input. ----------------

CHANGE_POS_SIZES_WINDOW=67;- change position/sizes of the window. 

;====== Function 68,
.GET_TASK_SWITCH_COUNT=0; subfunction 0 - get the task switch counter. 
.SWITCH_NEXT_THREAD=1;subfunction 1 - switch to the next thread. 
.CACHE_RDPMC=2;subfunction 2 - cache + rdpmc. 
.READ_MSR_REGISTER=3;subfunction 3 - read MSR-register. 
.READ_MSR_REGISTER=4;subfunction 4 - write to MSR-register.
.INIT_PROCESS_HEAP=11;subfunction 11 - initialize process heap.
.ALLOCATE_MEM_BLOCK=12;subfunction 12 - allocate memory block. 
.FREE_MEM_BLOCK=13;subfunction 13 - free memory block. 
.WAIT_SIGNAL_ANOTH_APP=14; subfunction 14 - Wait for signal from another program/driver
.LOAD_DRIVER=16; subfunction 16 - load driver
.DRIVER_CONTROL=17;subfunction 17 - driver control.
.LOAD_DLL=19; subfunction 19 - load DLL. 
.REALLOCATE_MEM_BLOCK=20;subfunction 20 - reallocate memory block.
.LOAD_DRIVER_PE=21;subfunction 21 - load driver PE.
.OPEN_NAMED_MEM_AREA=22;subfunction 22 - open named memory area. 
.CLOSE_NAMED_MEM_AREA=23; subfunction 23 - close named memory area.
.SET_EXCEPT_HANDLER=24; subfunction 24 - set exception handler.
.SET_FPU_EXCEPT_HANDLER=25;subfunction 25 - set FPU exception handler.
.RELEASE_MEM_PAGES=26;subfunction 26 - release memory pages ============
.LOAD_FILE=27; subfunction 27 - load file 

DEBUG=69; Function 69 - debugging.
.DEFINE_DATA_AREA_DEBUG_MESSAGES=0; 0 - define data area fror debug messages.
.GET_CONTEBTS_REGISTERS_DEBUG_THREAD=1; subfunction 1  Get contents of registers of debugged thread. ===========
.SET_CONTEBTS_REGISTERS_DEBUG_THREAD=2;subfunction 2 -  Set contents of registers of debugged thread.
.DETACH_FROM_DEBUG_PROCESS=3; subfunction 3 - detach from debugged process.
.SUSPEND_DEBUG_THREAD=4;subfunction 4 - suspend debugged thread. 
.RESUME_DEBUG_THREAD=5;subfunction 5 - resume debugged thread.
.READ_MEM_DEBUG_PROCESS=6; subfunction 6 - read from memory of debugged process.
.READ_MEM_DEBUG_PROCESS=7 ; subfunction 7 - write to memory of debugged process.
.TERMINATE_DEBUG_THREAD=8 ;subfunction 8 - terminate debugged thread.
.SET_CLEAR_HERD_BREAKPOINT=9 ; subfunction 9 - set/clear hardware breakpoint. 

WORK_FILE_SYS_LONG_NAME=70;- work with file system with long names support.
.READ_FILE_LONG_NAMES=0; subfunction 0 - read file with long names support.
.READ_FOLDER_LONG_NAMES=1;subfunction 1 - read folder with long names support. =
.CREATE_REWRITE_FILE_LONG_NAMES=2; subfunction 2 - Create/rewrite file with long names support.
.WRITE_FILE_LONG_NAMES=3; subfunction 3 - Write to existing file with long names support. 
.SET_END_FILE=4; subfunction 4 - set end of file.
.GET_INFO_FILE_FOLDER=5;subfunction 5 - get information on file/folder.
.SET_ATTR_FILE_FOLDER=6 ;subfunction 6 - set attributes of file/folder.
.START_APP=7; subfunction 7 - start application.
.DEL_FILE_FOLDER=8 ; subfunction 8 - delete file/folder.
.CREATE_FOLDER=9; subfunction 9 - create folder.

;Function 71,
.SET_WINDOW_CAPTION=1; subfunction 1 - set window caption

SEND_MESSAGE_WINDOW=72 ; - send message to a window. 
.SEND_MESSAGE_ACTIVE_WINDOW=1; Subfunction 1 - send message with parameter to the active window.

BLIT_BITMAP=73;  - blit bitmap

;;Function 74 
GET_NUMB_ACTIVE_NETWORK_DEVICES=255; Subfunction 255, Get number of active network devices.
.GET_NETWORK_DEVICE_TYPE=0;Subfunction 0, Get network device type.
.GET_NETWORK_DEVICE_NAME=1;Subfunction 1, Get network device name.
.RESET_NETWORK_DEVICE=2; Subfunction 2, Reset network device. 
.STOP_NETWORK_DEVICE=3;Subfunction 3, Stop network device.
.GET_DEVICE_POINER=4; Subfunction 4, Get device pointer. 
.GET_PACKET_TX_COUNT=6; Subfunction 6, Get packet TX counter
.GET_PACKET_КX_COUNT=7;Subfunction 7, Get packet RX counter
.GET_TX_BYTE_COUNT=8; Subfunction 8, Get TX byte counter
.GET_RX_BYTE_COUNT=9;Subfunction 9, Get RX byte counter.
.GET_LINK_STATUS=10;Subfunction 10, Get link status.
  ;Link status:
  ;  ETH_LINK_DOWN   =    0b         ; Link is down
  ;  ETH_LINK_UNKNOWN=    1b         ; There could be an active link
  ;  ETH_LINK_FD     =   10b         ; full duplex flag
  ;  ETH_LINK_10M    =  100b         ; 10 mbit
  ;  ETH_LINK_100M   = 1000b         ; 100 mbit
  ;  ETH_LINK_1G     = 1100b         ; gigabit
  
  ;Function 75   
.OPEN_SOCKET=0; Subfunction 0, Open socket.
.CLOSE_SOCKET=1; Subfunction 1, Close socket.
.BIND=2;Subfunction 2, Bind.
.LISTEN=3;Subfunction 3, Listen.
.CONNECT=4;Subfunction 4, Connect. 
.ACCEPT=5;Subfunction 5, Accept.
.SEND=6;Subfunction 6, Send. 
.RECEIVE=7;Subfunction 7, Receive.
.SET_SOCKET_OPTIONS=8;Subfunction 8, Set socket options.
.GET_SOCKET_OPTIONS=9;Subfunction 9, Get socket options. 
.GET_SOCKETPAIR=10;Subfunction 10, Get socketpair.
 
NETWORK_OPTIONS_STATISTICS=76 ;Network options and statistics.

TERMINATE_THREAD_PROCESS=-1 ; Function -1 - terminate thread/process

;======================================================================
;=========================== List of events ===========================
;======================================================================
.............
;======================================================================
;=================== Error codes of the file system ===================
;======================================================================
...................
KOSfuncs.inc (17.71 KiB)
Downloaded 393 times
НУ ВОТ ВРОДЕ И ВСЁ! НАДЕЮСЬ НИЧЕГО НЕ ПРОПУСТИЛ!

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

Posted: Thu Dec 17, 2015 9:18 am
by ALEXS1983
Ну, что тут, за тишина, подозрительная такая ? :-) Что-то делается ?... или не делается ?
Ну в смысле, утверждается ?... это или что-то другое?
Мне всё равно. Утвердите уже что нибудь. :-) Хочу знать и видеть, что оно уже есть и оно уже утверждёно! :-))

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

Posted: Thu Dec 17, 2015 12:24 pm
by Veliant
WORK_MOUSE -> MOUSE
SCREEN_COORD_MOUSE -> POS_ON_SCREEN
COORD_MOUSE_WINDOW ->POS_ON_WINDOW
STATE_MOUSE_BUTTON -> STATE_BUTTON
DRAW_NUMB_WINDOW -> DRAW_NUMBER

;Function 48 =>WINDOW_STYLE=48
.APLLY_SCREEN_SETING => APPLY_STYLE
.SET_STANDARD_WINDOW_COLOR =>SET_STANDARD_WINDOW_COLORS
.GET_STANDARD_WINDOW_COLOR =>GET_STANDARD_WINDOW_COLORS

ADVANC_POWER_MANAGMETN =>APM


;Function 54, => CLIPBOARD
.GET_NUMB_SLOT_CLIPBOARD => COUNT_OF_SLOT
.READ_DATA_CLIPBOARD => READ_DATA
.WRITE_DATA_CLIPBOARD => WRITE_DATA

WORK_DEBUG_BOARD => DEBUG_BOARD
RESIZE_APP_MEM => REALLOC_APP_MEM

CHANGE_POS_SIZES_WINDOW => MOVE_WINDOW ???

.SWITCH_NEXT_THREAD = >YIELD_THREAD
.INIT_PROCESS_HEAP =>HEAP_INIT
.ALLOCATE_MEM_BLOCK => HEAP_ALLOC
.FREE_MEM_BLOCK =>HEAP_FREE
.REALLOCATE_MEM_BLOCK =>HEAP_REALLOC

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

Posted: Thu Dec 17, 2015 4:47 pm
by Kopa
Мне неудобны многословные определения функций :)
Например слово GET можно заменить символом @
SET знаком ! или чем то подобным.
Keyboard - KBD
Знак > например трактовать как слово MOVE
и.др.

P.S. Подчёркивания между словами удалить и заменить на первые заглавные буквы слов.

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

Posted: Fri Dec 18, 2015 12:54 am
by Pathoswithin
Заняло больше времени, чем я думал. Это чистовик, оценивайте во всех отношениях.
Мне тоже CamelCase больше нравится, но по стандарту константы должны выглядеть так.

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

Posted: Fri Dec 18, 2015 8:49 am
by ALEXS1983
Pathoswithin wrote:Заняло больше времени, чем я думал.
А оно всегда так. :-)
===================
Ну что?!.... Имена функций и входящие в них данные стандартизировать для ЯВУ будем ?... (хотя я было предлагал утвердить "всё до кучи", меняя лишь приставки к именам, ну да ладно... :-) )
Утверждать будем, на базе тех, что уже стандартизировали в этой теме? В ВерблюдКассе? :-) С именами входящих переменных и их типом (сразу)?... или может даже с содержимым (с кодом ) процедуры? С приставкой к имени функции или без ? Понятие "номерка" (цифрового ИД-процедуры) в реестре массива функций/процедур КОС у них должно быть ? Ну в смысле, типа "номерок" в массиве процедур:
(Вот только жаль функции нельзя присвоить в том массив процедур, и отдельный массив функций нельзя создать, в частности в Дельфи7)

Code: Select all

var procKOS: array [0..200] of procedure;
//{!!!нельзя}    var  funcKOS: array [0..200] of function;
procedure PutPixel; begin  {....} end;
function Proba:byte; begin   {....} end;
begin
procKOS[1]:=PutPixel;
//{!!!нельзя} procKOS[3]:=Proba;
end.
Будем утверждать и как функции и как процедуры ? Или в каком-то одном виде ?
Для начала вырезки того, что уже есть. Вырезки из (разных) kosSyst.cpp файлов попавшихся мне "на глаза"
Spoiler:// функция 0
void kos_DefineAndDrawWindow(
Word x, Word y,
Word sizeX, Word sizeY,
Byte mainAreaType,
Dword mainAreaColour,
Byte headerType,
Dword headerColour,
Dword borderColour
)

// функция -1 завершения процесса
void kos_ExitApp()

// функция 1 поставить точку
void kos_PutPixel( Dword x, Dword y, Dword colour )

// функция 2 получить код нажатой клавиши
bool kos_GetKey( Byte &keyCode )

// функция 3 получить время
Dword kos_GetSystemClock()

// функция 4
void kos_WriteTextToWindow(
Word x,
Word y,
Byte fontType,
Dword textColour,
const char *textPtr,
Dword textLen
)

// функция 5 пауза, в сотых долях секунды
void kos_Pause( Dword value )

// функция 7 нарисовать изображение
void kos_PutImage( RGB * imagePtr, Word sizeX, Word sizeY, Word x, Word y )


// функция 8 определить кнопку
void kos_DefineButton( Word x, Word y, Word sizeX, Word sizeY, Dword buttonID, Dword colour )

// функция 9 - информация о процессе
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID )

// функция 10
Dword kos_WaitForEvent()

// функция 11
Dword kos_CheckForEvent()

// функция 12
void kos_WindowRedrawStatus( Dword status )

// функция 13 нарисовать полосу
void kos_DrawBar( Word x, Word y, Word sizeX, Word sizeY, Dword colour )

// функция 17
bool kos_GetButtonID( Dword &buttonID )

// функция 23
Dword kos_WaitForEventTimeout( Dword timeOut )

// получение информации о состоянии "мыши" функция 37
void kos_GetMouseState( Dword & buttons, int & cursorX, int & cursorY )

// функция 40 установить маску событий
void kos_SetMaskForEvents( Dword mask )

// функция 47 вывести в окно приложения число
void kos_DisplayNumberToWindow(
Dword value,
Dword digitsNum,
Word x,
Word y,
Dword colour,
eNumberBase nBase,
bool valueIsPointer
)

// функция 70 доступ к файловой системе
Dword kos_FileSystemAccess( kosFileInfo *fileInfo )

// функция 63 вывод символя в окно отладки
void kos_DebugOutChar( char ccc )

// функция 66 режим получения данных от клавиатуры
void kos_SetKeyboardDataMode( Dword mode )

// вывод строки в окно отладки
void rtlDebugOutString( char *str )

// функция 64 изменение количества памяти, выделенной для программы
bool kos_ApplicationMemoryResize( Dword targetSize )

// функция 67 изменить параметры окна, параметр == -1 не меняется
void kos_ChangeWindow( Dword x, Dword y, Dword sizeX, Dword sizeY )

void kos_InitHeap() =?!?!?