Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509

Жесткий диск

14.01.2016, 00:27. Показов 4388. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Со старым новым годом Вас товарищи!

Пишу утилиту по работе с жестким диском из под Дос,
Как получить конфигурацию оборудования, ну например фирму жесткого диска,

знаю как получить объем ah=48h int 13, сколько дисков в системе byte 0:475,
а вот хотелось бы больше информации,

подскажите куда капать, спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2016, 00:27
Ответы с готовыми решениями:

Жесткий диск не отображается в Bios'e на ноутбуке HP, при установке Windows 7 пишет, не удалось найти жесткий диск
Здравствуйте, я пишу в форум впервые, поэтому прошу меня извинить, если мой лексикон немного не этичен. Столкнулся я с проблемой при...

Жесткий диск не виден в Bios'e на ноутбуке HP g6-2128sr, при установке Windows 7/8 пишет, не удалось найти жесткий диск
Всем доброго времени суток. Очень нуждаюсь в помощи с ноутбуком HP Pavilion G6-2128sr. Проблема заключается в следующем, полетел винчестер...

скажите у меня жесткий диск на ноутбуке 1Тб очень сильно греется доходит до 45-47 градусов, подскажите что делать. (жесткий диск полностью занят инфор
скажите у меня жесткий диск на ноутбуке 1Тб очень сильно греется доходит до 45-47 градусов, подскажите что делать. (жесткий диск полностью...

31
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6211 / 2445 / 403
Регистрация: 29.07.2014
Сообщений: 3,175
Записей в блоге: 4
14.01.2016, 03:16
Есть-же команда: ECh - IDENTIFY DEVICE
Возвращает подноготную винта ...
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
14.01.2016, 11:49
Цитата Сообщение от tahir_ Посмотреть сообщение
ну например фирму жесткого диска
Писать свой драйвер IDE и AHCI (нетривиально).
0
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 853
14.01.2016, 15:51
Цитата Сообщение от tahir_ Посмотреть сообщение
Как получить конфигурацию оборудования, ну например фирму жесткого диска,
Попробуй Int 13/AH=25h. Если BIOS твоего компа этот вызов не поддерживает, тогда только через порты в/в. Как уже подсказал R71MT,
Цитата Сообщение от R71MT Посмотреть сообщение
ECh - IDENTIFY DEVICE
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
14.01.2016, 16:24
Цитата Сообщение от Argogo Посмотреть сообщение
огда только через порты в/в
Через 0x1F0, 0x3F0 уже лет 10 как ничего считать не получится. В любом случае нужно искать контроллер на шине PCI. C AHCI вся работа происходит через MMIO и DMA. В общем и целом универсальный код (который запустится на любой современной материке и с любыми вменяемыми настройками в BIOS'е) хотя бы для выполнения одной команды IDENTIFY DEVICE довольно непросто. Говорю как человек, который это реализовывал.
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6211 / 2445 / 403
Регистрация: 29.07.2014
Сообщений: 3,175
Записей в блоге: 4
14.01.2016, 19:55
Цитата Сообщение от shmkv Посмотреть сообщение
Писать свой драйвер IDE и AHCI (нетривиально).
..ну ты загнул!
Цитата Сообщение от shmkv Посмотреть сообщение
Через 0x1F0, 0x3F0 уже лет 10 как ничего считать не получится.
..от куда такая инфа?

..софтина заканчивается на том, что создаёт DAT-файл с нарытой инфой.
Читаем комменты, и запускаем из под чистого дос:

Пример окна:
Code
1
2
3
4
5
6
7
8
9
10
11
(c) HDD-TEST v1.00 ================ 2015 ====
*********************************************
 READY DEVICE: OK!
    SAVE DATA: OK!
 
  DEVICE NAME: ST320014A 
SERIAL NUMBER: 5JZEM0N0 
 TOTAL SECTOR: 39100223
     REVISION: 3.07
=============================================
CREATE DAT-FILE: ОК!
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
use16
org 100h
jmp start
 
mess0    db  13,10,'(c) HDD-TEST v1.00 ================ 2015 ===='
         db  13,10,'*********************************************'
         db  13,10,' READY DEVICE: $'
mess1    db  13,10,'    SAVE DATA: $'
mess2    db  13,10,10,'  DEVICE NAME: $'
mess3    db  13,10,'SERIAL NUMBER: $'
mess4    db  13,10,' TOTAL SECTOR: $'
mess5    db  13,10,'     REVISION: $'
mess6    db  13,10,'============================================='
         db  13,10,'CREATE DAT-FILE: ОК! $'
mess7    db  'OK!$'
 
buff     db  512 dup(0)
fName    db  'ATAID.DAT',0
handle   dw  ?
 
start:
   mov   dx,mess0            ; шапка программы
   call  message
 
   call  waitATA             ; DX = 1F7h. ждём готовности диска (BSY=0)
   dec   dx                  ; DX = 1F6h. выбираем девайс
   mov   al,0E0h             ; для Device(0), LBA-адресация
   out   dx,al               ; пишем в порт!
 
   call  waitATA             ; ждём BSY=0
   test  al,40h              ; а так-же DRDY=1
   jz    waitATA             ; если DRDY=Зеро, то циклимся
 
   mov   dx,mess7            ; винт готов! мессага ОК!
   call  message
   mov   dx,mess1     ;------- подготовка к приёму данных в буфер --------------------|
   call  message
 
   mov   dx,01F7h            ; заносим в регистр команд 
   mov   al,0ECh             ;         код команды 'DEVICE_ID'
   out   dx,al
 
   call  waitATA             ; ждём BSY=0
   test  al,08h              ; а так-же DRQ=1
   jz    waitATA             ; если DRQ=0, ждём готовности
 
   cld                       ; винт готов! читать будем слева-направо
   mov   di,buff             ; адрес приёмного буфера
   mov   dx,01F0h            ; от куда будем читать (регистр данных)
   mov   cx,256              ; сколько читать (512 байт, или 256 слов)
   rep   insw                ; читаем с регистра словами!
 
   mov   dx,mess7            ; данные считаны! мессага ОК!
   call  message
 
   mov   dx,mess2   ;--------- выводим DEVICE-NAME -----------------------------------| 
   call  message
   mov   si,buff             ; адрес буфера в DS:SI
   add   si,27*2             ; перемещаемся в буфере на нужный адрес
   mov   cx,20               ; считать 20 слов
   call  print               ; читаем и выводим инфу на экран
 
   mov   dx,mess3   ;--------- выводим SERIAL-NUMBER ---------------------------------|
   call  message
   mov   si,buff 
   add   si,10*2             ; адрес инфы в буфере
   mov   cx,10               ; считать 10 слов
   call  print               ; выводим инфу на экран
 
   mov   dx,mess4   ;--------- выводим TOTAL SECTOR ----------------------------------|
   call  message
   mov   eax,dword[buff+60*2]     ; читаем двойное слово в 32-битный EAX
   call  convert                  ; переводим его в DEC и выводим на экран
 
   mov   dx,mess5   ;--------- выводим REVISION --------------------------------------|
   call  message
   mov   si,buff
   add   si,23*2             ; смещение инфы в буфере
   mov   cx,4                ; считать 4 слова
   call  print               ; выводим инфу на экран
 
   mov   ah,3ch     ;--------- создаём из буфера DAT-файл ----------------------------|
   mov   cx,20h              ; атрибут - архивный
   mov   dx,fName            ; адрес строки с именем файла
   int   21h                 ; создать файл!
 
   mov   dx,fName   ;--------- открываем созданный файл ------------------------------|
   mov   ax,3d02h            ;    в режиме чтения/записи
   int   21h
   mov   [handle],ax         ; сохраняем его дескриптор
 
   mov   ah,40h     ;--------- записываем данные в файл ------------------------------|
   mov   cx,512              ; сколько байт писАть
   mov   bx,[handle]         ; куда писАть (в открытый файл через его хэндл)
   mov   dx,buff             ; от куда брать данные (с буфера)
   int   21h                 ; есть запись!
 
   mov   ah,3eh     ;--------- закрываем файл ----------------------------------------|
   mov   bx,[handle]         ; какой файл закрыть (открытый)
   int   21h                 ; Save & Close!
 
   mov   dx,mess6            ; мессага об успешном завершении
   call  message
exit:               ;--------- на выход! ----------------------------------------------|
   ret
 
;//====================================================================================|
message:
   mov   ah,9
   int   21h
ret
 
waitATA:            ;--------- функция проверки готовности диска ----------------------|
   mov   dx,1F7h             ; регистр состояния на первом канале
back:
   in    al,dx               ; читаем байт состояния..
   test  al,80h              ; проверяем в нём бит(7) BSY. он должен быть 0
   jnz   back                ; если не нуль, то циклимся
ret
 
print:              ;--------- функция чтения ASCII-строк из буфера -------------------|
   lodsw                     ; читаем слово в регистр AX
   push  ax                  ; байты лежат наоборот и нужно их поменять местами
   xchg  ah,al               ; кидаем AH в AL,
   int   29h                 ;     и выводим AL на экран
   pop   ax                  ; снимаем со-стека оригинальный AL,
   int   29h                 ;     и тоже на экран его
   loop  print               ; мотаем цикл CX раз
ret
 
convert:            ;--------- функция для вывода чисел с регистра EAX
   pusha
   mov   ebx,10              ; выводить будем в десятичной системе счисления
   xor   ecx,ecx
isDiv:
   xor   edx,edx
   div   ebx
   push  edx
   inc   ecx
   or    eax,eax
   jnz   isDiv
isOut:
   pop   eax
   cmp   al,9
   jle   noHex
   add   al,7
noHex:
   add   al,30h
   int   29h
   loop  isOut
   popa
ret
Содержимое DAT файла:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
*********************************************************************************
Offset      0  1  2  3  4  5  6  7    8  9  A  B  C  D  E  F
 
00000000   5A 0C FF 3F 37 C8 10 00   00 00 00 00 3F 00 00 00   Z.я?7И......?...
00000010   00 00 00 00 4A 35 45 5A   30 4D 30 4E 20 20 20 20   ....J5EZ0M0N    
00000020   20 20 20 20 20 20 20 20   00 00 00 10 04 00 2E 33           .......3
00000030   37 30 20 20 20 20 54 53   32 33 30 30 34 31 20 41   70    TS230041 A
00000040   20 20 20 20 20 20 20 20   20 20 20 20 20 20 20 20                   
00000050   20 20 20 20 20 20 20 20   20 20 20 20 20 20 10 80                 .Ђ
00000060   00 00 00 2F 00 00 00 02   00 02 07 00 FF 3F 10 00   .../........я?..
00000070   3F 00 10 FC FB 00 10 01   3F 9F 54 02 00 00 07 00   ?..ьы...?џT.....
00000080   03 00 78 00 78 00 F0 00   78 00 00 00 00 00 00 00   ..x.x.р.x.......
00000090   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000000A0   7E 00 00 00 6B 34 01 5B   03 40 68 34 01 1A 03 40   ~...k4.[.@h4...@
000000B0   3F 20 00 00 00 00 00 00   FE FF 3B 60 80 80 00 00   ? ......юя;`ЂЂ..
000000C0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000000D0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000000E0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000000F0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
00000100   01 00 95 B1 54 02 80 A7   54 02 30 2E 02 00 B7 0D   ..•±T.Ђ§T.0...·.
00000110   10 02 00 00 03 3C B4 3C   FF FF 0D 00 00 00 01 08   .....<ґ<яя......
00000120   80 04 A0 02 02 01 00 00   3C 00 38 04 08 E8 10 BD   Ђ. .....<.8..и.Ѕ
00000130   00 00 54 04 28 00 00 00   00 00 00 00 E0 00 0A 00   ..T.(.......а...
00000140   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
00000150   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
00000160   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
00000170   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
00000180   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
00000190   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000001A0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000001B0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000001C0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000001D0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000001E0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00   ................
000001F0   00 00 00 00 00 00 00 00   00 00 00 00 00 00 A5 75   ..............Ґu
 
*********************************************************************************
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
14.01.2016, 20:44  [ТС]
Спасибо вам всем , особенно R71MT

попробывал, в Virtualbox работает, в реале загрузился с freedos флэшкой, стоит на надписи READY DEVICE
у меня на данный момент sata диски, мож это, он ищет Ide ?

mov ah,25h int 13h - пробывал, выдает ошибки
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6211 / 2445 / 403
Регистрация: 29.07.2014
Сообщений: 3,175
Записей в блоге: 4
14.01.2016, 21:03
..для спасибо есть буттон!
выбери девис в строке 27
1
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
14.01.2016, 21:28  [ТС]
R71MT,
спасибо

А есть какая нибудь литература на эту тему, порты, как с ними общаться ни разу не касался
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6211 / 2445 / 403
Регистрация: 29.07.2014
Сообщений: 3,175
Записей в блоге: 4
14.01.2016, 21:33
Я здесь пытался обобщить эту тему..
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
14.01.2016, 21:35  [ТС]
попробывал переправить, так же висит на READY DEVICE
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
14.01.2016, 22:55
Цитата Сообщение от R71MT Посмотреть сообщение
..от куда такая инфа?
Цитата Сообщение от shmkv Посмотреть сообщение
Говорю как человек, который это реализовывал.
Цитата Сообщение от tahir_ Посмотреть сообщение
попробывал, в Virtualbox работает, в реале загрузился с freedos флэшкой, стоит на надписи READY DEVICE
Ясен пень, что на реальном железе это работать НЕ БУДЕТ. Ну как еще написать не знаю... На виртуалках - да, может, но не на реальном современном (на каких-нить материнках 10летней давности м.б.) железе - НЕТ.
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
14.01.2016, 23:15  [ТС]
shmkv, Ну как еще написать не знаю...

Ну объясни коротко и чтоб представить можно было, если не сложно,
если есть у кого литература , напишите автора и книгу, я поищу
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
14.01.2016, 23:33
tahir_, тебе надо чтобы было универсально или чтобы работало хотя бы у тебя?
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
15.01.2016, 00:07  [ТС]
shmkv, в чем разница?
не только в интерфейсе?
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
15.01.2016, 00:22
Разница принципиальна, чтобы работало везде надо реализовать:
1. Работу со старыми контроллерами ATA. Это примерно то, о чем говорит R71MT, хотя его код даже для них не универсален.
2. Работа с "Enhanced IDE". Принцип работы в многом похож, но нужна работа с шиной PCI и обязательна обработка прерываний.
3. AHCI. Тут вообще все по-другому. Но не сказал бы, что сильно сложно. Универсальную поддержку IDE сделать сложнее.

Добавлено через 3 минуты
Если интересует только современное железо, то можешь ограничиться AHCI. RTFM. На конкретные вопросы могу ответить, писать пример целиком не буду - громоздко. Примеры есть на осдеве.
1
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
15.01.2016, 00:50  [ТС]
shmkv, Понятно стало, хоть,
пишу используя ah=41h, 48h, 42h - понимаю что не на каждой машине будет работать,
а на новых на всех или тоже под вопросом ?
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
15.01.2016, 01:01
Цитата Сообщение от tahir_ Посмотреть сообщение
а на новых на всех или тоже под вопросом ?
Вопрос к чему?

Добавлено через 2 минуты
если к этому:
Цитата Сообщение от tahir_ Посмотреть сообщение
пишу используя ah=41h, 48h, 42h
По прежнему остался необязательным блок расширенных параметров, который возвращает 48h. 0x41-0x42 должны рабоать на любом современном железе.
1
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
15.01.2016, 01:30  [ТС]
Цитата Сообщение от shmkv Посмотреть сообщение
По прежнему остался необязательным блок расширенных параметров, который возвращает 48h. 0x41-0x42 должны рабоать на любом современном железе.
грубо говоря можно удачно с помощью LBA считать сектора диска но при этом используя 48h не получить вообще параметры , меня интересует объем в секторах и байт на сектор
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
15.01.2016, 02:19
Цитата Сообщение от tahir_ Посмотреть сообщение
байт на сектор
В старых спецификациях ATA сектор вообще определялся как смежный блок из 256 слов (512 байт). В последней что-то не нахожу. Никогда слышал о (S)ATA дисках дисках с другим размером сектора. Размер сектора даже вроде в identity device не пишется.

Добавлено через 2 минуты
Про новые диски с 4Кб физическими секторами сказано следующее:
Because the 512 byte sector size has been around for a very long time and upto ATA/ATAPI-7 the sector size was fixed at 512 bytes, the sector size assumption is scattered across all the layers - controllers or bridge chips snooping commands, BIOSs, boot codes, drivers, partitioners and system utilities, which makes it very difficult to change the sector size from 512 byte without breaking backward compatibility massively.

As a workaround, the concept of logical sector size was introduced. The physical medium is organized in 4KiB sectors but the firmware on the drive will present it as if the drive is composed of 512 byte sectors thus making the drive behave as before, so if the driver asks the hard drive to read 64 sectors from LBA 2048, the firmware will translate it and read 8 4KiB sectors from hardware sector 256. As a result, the hard drive now has two sector sizes - the physical one which the physical media is actually organized in, and the logical one which the firmware presents to the outside world.

A straight forward example mapping between physical sector and LBA would be
Добавлено через 1 минуту
Ну т.е. даже на самых новых дисках размер логический размер сектора остался равным 512 байтам.

Добавлено через 3 минуты
Цитата Сообщение от tahir_ Посмотреть сообщение
объем в секторах
QWORD из блока стандартных параметров 48й функции.

Добавлено через 3 минуты
Int 13h работает с логическими секторами.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2016, 02:19
Помогаю со студенческими работами здесь

Жёсткий диск ST3250310AS. Жёсткий диск готов или нет?
всем привет. есть жёсткий диск ST3250310AS. проверил hdd scan выдал такую вещь read http://pikucha.ru/ibeZC verify ...

Сгорел жесткий, теперь не работает новый жесткий диск на ноутбуке Lenovo z500
Сгорел жесткий диск, купил новый, поменял и запустил его на стационарном компьютере. Поставил виндовс 7 и теперь он не видит его в...

Нужно клонировать виртуальный жесткий диск из RAID 0 на виртуальный жесткий диск в RAID 1 (зеркало)
Здравствуйте, очень надеюсь на вашу помощь. Сижу на работе 2ое суток. Есть intel embedded raid controller, в нем есть 2 виртуальных...

Подключить внешний USB жесткий диск как папку на локальный диск
Добрый день дорогие форумчане! У меня есть внешний жесткий диск. При подключении к компу по USB он его определяет, все нормально (проблем...

Внешний жесткий диск Toshiba, 3.5 дня проверки chkdsk - диск поврежден?
Всем добрый день. Хочу рассказать о проблеме с внешним жестким диском Toshiba и спросить совета. Есть внешний жесткий диск Toshiba...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru