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.
Re: Названия системных функций
Posted: Mon Dec 14, 2015 5:31 pm
by ALEXS1983
CleverMouse, с префиксом писать ? С каким ?
FK_ ? или KOS_ ? или....
Ну KOS_ уже есть в kosSyst.cpp
Ну общепринятое название, получается, что тоже нельзя в данном случае применять, так как оно общепринятое _УЖЕ_! Только префикс ?!
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
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.
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 ===================
;======================================================================
...................
НУ ВОТ ВРОДЕ И ВСЁ! НАДЕЮСЬ НИЧЕГО НЕ ПРОПУСТИЛ!
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() =?!?!?