· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Программирование Железа

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Июл 25, 2004 20:15:52

Не подскажите, где можно найти инфу по программированию железа, в частности интересует как написать драйвер для мышки ps/2 и com, а также как программировать флоппи через порты ввода/вывода.

Зарание спасибо.


Дата: Июл 26, 2004 04:32:21

Смотри тут - http://www.wasm.ru/forum/index.php?action=vthread&forum=3&topic=5962
Скачай фйал портов(Это когда по другой ссылке перейдёш) - там популярно написано всё по интересующей теме - если не поймёш что то то спроси


Дата: Июл 26, 2004 22:46:56

А есть ли где информация по программированию вообще всякого разного железа?


Дата: Июл 27, 2004 00:58:52

Еще очень интересует как работать с FDD.

Спасибо.


Дата: Июл 27, 2004 07:44:15

2 VitalikV Если тебя не устраивает выписка из списка портов по ссылке которую я давал(http://wasm.ru/forum/index.php?action=vthread&forum=3&topic=5953 &page=-1), То извени значит ты не там спрашивал, а дословно в примерах думаю обьяснять тебе не кто не будет...
---------------------------------------------------------------------- ---------
03F0-03F7 ----	FDC 1  (1st Floppy Disk Controller)	second FDC at 0370
		(8272, 8272A, NEC765)
		(82072, 82077AA for perpendicular recording at 2.8Mb)

03F0	r	diskette EHD controller board jumper settings (82072AA)
		 bit 7-6      drive 3
		 bit 5-4      drive 2
		 bit 3-2      drive 1
		 bit 1-0      drive 0
			 = 00  1.2Mb
			 = 01  720Kb
			 = 10  2.8Mb
			 = 11  1.4Mb

03F0	r	diskette controller status A (PS/2)
		 bit 7	 interrupt pending
		 bit 6	 -DRV2	second drive installed
		 bit 5	 step
		 bit 4	 -track 0
		 bit 3	 head 1 select
		 bit 2	 -index
		 bit 1	 -write protect
		 bit 0	 +direction

03F0	r	diskette controller status A (PS/2 model 30)
		 bit 7	 interrupt pending
		 bit 6	 DRQ
		 bit 5	 step F/F
		 bit 4	 -track 0
		 bit 3	 head 1 select
		 bit 2	 +index
		 bit 1	 +write protect
		 bit 0	 -direction

03F1	r	diskette controller status B (PS/2)
		 bit 7-6  =1 reserved
		 bit 5	  drive select (0=A:, 1=B:)
		 bit 4	  write data
		 bit 3	  read data
		 bit 2	  write enable
		 bit 1	  motor enable 1
		 bit 0	  motor enable 0

03F1	r	diskette controller status B (PS/2 model 30)
		 bit 7	  -DRV2	second drive installed
		 bit 6	  -DS1
		 bit 5	  -DS0
		 bit 4	  write data F/F
		 bit 3	  read data F/F
		 bit 2	  write enable F/F
		 bit 1	  -DS3
		 bit 0	  -DS2

03F2	w	diskette controller DOR (Digital Output Register)
		 bit 7-6    reserved on PS/2
		 bit 7 = 1  drive 3 motor enable
		 bit 6 = 1  drive 2 motor enable
		 bit 5 = 1  drive 1 motor enable
		 bit 4 = 1  drive 0 motor enable
		 bit 3 = 1  diskette DMA enable (reserved PS/2)
		 bit 2 = 1  FDC enable	(controller reset)
		       = 0  hold FDC at reset
		 bit 1-0    drive select (0=A 1=B ..)

03F3		tape drive register (on the 82077AA)
		 bit 7-2      reserved, tri-state
		 bit 1-0      tape select
			 = 00  none, drive 0 cannot be a tape drive.
			 = 01  drive1
			 = 10  drive2
			 = 11  drive3

03F4	r	diskette controller main status register
		 bit 7 = 1  RQM	 data register is ready
			 0  no access is permitted
		 bit 6 = 1  transfer is from controller to system
			 0  transfer is from system to controller
		 bit 5 = 1  non-DMA mode
		 bit 4 = 1  diskette controller is busy
		 bit 3 = 1  drive 3 busy (reserved on PS/2)
		 bit 2 = 1  drive 2 busy (reserved on PS/2)
		 bit 1 = 1  drive 1 busy (= drive is in seek mode)
		 bit 0 = 1  drive 0 busy (= drive is in seek mode)
		Note:	in non-DMA mode, all data transfers occur through
			  port 03F5h and the status registers (bit 5 here
			  indicates data read/write rather than than
			  command/status read/write)

03F4	w	diskette controller data rate select register
		 bit 7-2      reserved on 8272
		 bit 7	 = 1  software reset (self clearing)	82072/82077AA
		 bit 6	 = 1  power down			82072/82077AA
		 bit 5	 = 0  reserved on 8272 and 82077AA
			      PLL select bit on 82072
		 bit 4-2      write precompensation value, 000 default
		 bit 1-0      data rate select
			 = 00  500 Kb/S MFM	250 Kb/S FM
			 = 01  300 Kb/S MFM	150 Kb/S FM
			 = 10  250 Kb/S MFM	125 Kb/S FM
			 = 11  1Mb/S	MFM	illegal	 FM on 8207x

03F5	r	diskette command/data register 0 (ST0)
		 bit 7-6      last command status
			 = 00  command terminated successfully
			 = 01  command terminated abnormally
			 = 10  invalid command
			 = 11  terminated abnormally by change in ready signal
		 bit 5	 = 1  seek completed
		 bit 4	 = 1  equipment check occurred after error
		 bit 3	 = 1  not ready
		 bit 2	 = 1  head number at interrupt
		 bit 1-0 = 1  unit select (0=A 1=B .. )
			      (on PS/2	01=A  10=B)

		status register 1 (ST1)
		 bit 7	    end of cylinder; sector# greater then sectors/track
		 bit 6 = 0
		 bit 5 = 1  CRC error in ID or data field
		 bit 4 = 1  overrun
		 bit 3 = 0
		 bit 2 = 1  sector ID not found
		 bit 1 = 1  write protect detected during write
		 bit 0 = 1  ID address mark not found

		status register 2 (ST2)
		 bit 7 = 0
		 bit 6 = 1  deleted Data Address Mark detected
		 bit 5 = 1  CRC error in data
		 bit 4 = 1  wrong cylinder detected
		 bit 3 = 1  scan command equal condition satisfied
		 bit 2 = 1  scan command failed, sector not found
		 bit 1 = 1  bad cylinder, ID not found
		 bit 0 = 1  missing Data Address Mark 

		status register 3 (ST3)
		 bit 7	    fault status signal
		 bit 6	    write protect status
		 bit 5	    ready status
		 bit 4	    track zero status
		 bit 3	    two sided status signal
		 bit 2	    side select (head select)
		 bit 1-0    unit select (0=A 1=B .. )

03F5	w	diskette command register.  The commands summarized here are
		mostly multibyte commands. This is for brief recognition only.

			MFM = MFM mode selected, opposite to MF mode.
			HDS = head select
			DS  = drive select
			MT  = multi track operation
			SK  = skip deleted data address mark

		   Command	     # bytes	D7  6	5   4	3   2	1   0
		 read track		9	0  MFM	0   0	0   0	1   0
						0   0	0   0	0 HDS DS1 DS0
		 specify		3	0   0	0   O	O   O	1   1
		 sense drive status	2	0   0	0   0	0   1	0   0
						0   0	0   0	0 HDS DS1 DS0
		 write data		9	MT MFM	0   0	0   1	0   1
						0   0	0   0	0 HDS DS1 DS0
		 read data		9	MT MFM SK   0	0   1	1   0
						0   0	0   0	0 HDS DS1 DS0
		 recalibrate		2	0   0	0   0	0   1	1   1
						0   0	0   0	0   0 DS1 DS0
		 sense interrupt status	1	0   0	0   0	1   0	0   0
		 write deleted data	9	MT MFM	0   0	1   0	0   1
						0   0	0   0	0 HDS DS1 DS0
		 read ID		2	0  MFM	0   0	1   0	1   0
						0   0	0   0	0 HDS DS1 DS0
		 read deleted data	9	MT MFM SK   0	1   1	0   0
						0   0	0   0	0 HDS DS1 DS0
		 format track		10	0  MFM	0   0	1   1	0   1
						0   0	0   0	0 HDS DS1 DS0
		 dumpreg **		1	0   0	0   0	1   1	1   0
		 seek			3	0   0	0   0	1   1	1   1
						0   0	0   0	0 HDS DS1 DS0
		 version **		1	0   0	0   1	0   0	0   0
		 scan equal *		9	MT MFM SK   1	0   0	0   1
						0   0	0   0	0 HDS DS1 DS0
		 perpendicular mode **	2	0   0	0   1	0   0	1   0
						0   0	0   0	0   0 WGATE GAP
		 configure **		4	0   0	0   1	0   0	1   1
						0   0	0   0	0   0	0   0
		 verify			9	MT MFM SK   1	0   1	1   0
						EC  0	0   0	0 HDS DS1 DS0
		 scan low or equal *	9	MT MFM SK   1	1   0	0   1
						0   0	0   0	0 HDS DS1 DS0
		 scan high or equal *	9	MT MFM SK   1	1   1	0   1
						0   0	0   0	0 HDS DS1 DS0
		 relative seek **	3	1  DIR	0   0	1   1	1   1
						0   0	0   0	0 HDS DS1 DS0

		 BEWARE: not every invalid command is treated as invalid!
		 *  Note: the scan commands aren't mentioned for the 82077AA.
		 ** Note: EHD controller commands.

03F6		reserved on FDC

03F6	r/w	FIXED disk controller data register
		 bit 7-4    reserved
		 bit 3 = 0  reduce write current
			 1  head select 3 enable
		 bit 2 = 1  disk reset enable
			 0  disk reset disable
		 bit 1 = 0  disk initialization enable
			 1  disk initialization disable
		 bit 0	    reserved

03F7	r/w	harddisk controller
		 bit 6	   FIXED DISK write gate
		 bit 5	   FIXED DISK head select 3 / reduced write current
		 bit 4	   FIXED DISK head select 2
		 bit 3	   FIXED DISK head select 1
		 bit 2	   FIXED DISK head select 0
		 bit 1	   FIXED DISK drive 1 select
		 bit 0	   FIXED DISK drive 0 select

03F7	r	diskette controller DIR (Digital Input Register, PC/AT mode)
		 bit 7 = 1 diskette change
		 bit 6-0   tri-state on FDC

03F7	r	diskette controller DIR (Digital Input Register, PS/2 mode)
		 bit 7	 = 1 diskette change
		 bit 6-3 = 1
		 bit 2	     datarate select1
		 bit 1	     datarate select0
		 bit 0	 = 0 high density select (500Kb/s, 1Mb/s)

 conflicts with	 bit 0	   FIXED DISK drive 0 select

03F7	r	diskette controller DIR (Digital Input Register, PS/2 model 30)
		 bit 7	 = 0 diskette change
		 bit 6-4 = 0
		 bit 3	     -DMA gate (value from DOR register)
		 bit 2	     NOPREC (value from CCR register)
		 bit 1	     datarate select1
		 bit 0	     datarate select0

 conflicts with	 bit 0	   FIXED DISK drive 0 select

03F7	w	configuration control register (PC/AT, PS/2)
		 bit 7-2       reserved, tri-state
		 bit 1-0 = 00  500 Kb/S mode (MFM)
			 = 01  300 Kb/S mode (MFM)
			 = 10  250 Kb/S mode (MFM)
			 = 11  1   Mb/S mode (MFM) (on 82072/82077AA)

 conflicts with	 bit 0	   FIXED DISK drive 0 select

03F7	w	configuration control register (PS/2 model 30)
		 bit 7-3       reserved, tri-state
		 bit 2	       NOPREC (has no function. set to 0 by hardreset)
		 bit 1-0 = 00  500 Kb/S mode (MFM)
			 = 01  300 Kb/S mode (MFM)
			 = 10  250 Kb/S mode (MFM)
			 = 11  1   Mb/S mode (MFM) (on 82072/82077AA)

 conflicts with	 bit 0	   FIXED DISK drive 0 select

---------------------------------------------------------------------- ---------
0370-0377 ----	FDC 2  (2nd Floppy Disk Controller)	first FDC at 03F0
		(8272, 8272A, NEC765)
		(82072, 82077AA for perpendicular recording at 2.8Mb)

0370	r	diskette Extra High Density controller board jumpers (AT)
0370	r	diskette controller status A (PS/2, PS/2 model 30)
0371	r	diskette controller status B (PS/2, PS/2 model 30)
0372	w	diskette controller DOR (Digital Output Register)
0374	r	diskette controller main status register
0374	w	diskette controller datarate select register
0375	r/w	diskette controller command/data register
0376	r/w	(2nd FIXED disk controller data register)
0377	r	diskette controller DIR (Digital Input Register)
0377	w	select register for diskette data transfer rate


Про програмирование железа посмотри тута - http://www.nondot.org/sabre/os/

А вообще програмирование железа всего не когда не бывает в одном месте - для всего всё своё...


Дата: Июл 27, 2004 07:54:08

Спасибо, на первый взгляд все понятно, пойду разбираться


Дата: Июл 29, 2004 02:58:01

есть несколько толковых мануалов по программированию флопов:
* Контроллер НГМД i8272.Описание работы контроллера и системы команд
* Ю. С. Лукач, А. Е. Сибиряков АРХИТЕКТУРА ВВОДА-ВЫВОДА ПЕРСОНАЛЬНЫХ ЭВМ IBM PC
* и др.

говори куда выложить или поищи их в сети сам - они везде есть


Дата: Июл 29, 2004 05:31:22

2 kaspersky - Какие люди и без охраны:) А по остальному железу не чего нет? например по USB?


Дата: Июл 29, 2004 10:22:41

OK!

C НГМД разобрался, а нету чегонибудь по видяхам, но только для нормальных режимов хотябы 800х600 24 бит

Буду очень благодарен!


Дата: Июл 29, 2004 13:32:39

to Same
где-то была у меня целая е-бука по программированию USB. толковая книжка. если надо - поищу, пиши.


Дата: Июл 29, 2004 14:56:15

2 plext0r - куда писать?
2 VitalikV - А чё с PS/2 не разобрался - я же тебе ссылку давал?
Видюхами я не занимался(ещё пока) так что предложить не чего не могу


Дата: Июл 29, 2004 17:17:24

Same спасибо, с PS/2 все OK.
А на счет видюх не знаешь где спросить?


Дата: Июл 30, 2004 03:15:38

2 VitalikV - На этом форуме есть люди кто знает - но вот ответят ли они...
Мне кроме как Vesa посаветовать не чего - если что встречу скажу - Ты встретиш тоже говори = мож в будущем пригодится


Дата: Июл 30, 2004 07:08:32

Same - OK


Дата: Июл 30, 2004 07:10:24

VitalikV


скока можно говорить, что книжки чичтать надо, Кулакова, Гука, к примеру, Зубкова, на нондот орг мануалоф на данную тему до 屁股. Ф чём проблемы то ?????

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.159