⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oemiotbl.as_

📁 <BIOS研发技术剖析>书的源代码,包括完整的BIOS汇编语言源程序.
💻 AS_
📖 第 1 页 / 共 5 页
字号:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC665
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     08Ah          ; CR 0
        db      001h,     0BCh          ; CR 1
        db      002h,     088h          ; CR 2
        db      003h,     079h          ; CR 3
        db      004h,     000h          ; CR 4
        db      005h,     000h          ; CR 5
        db      00Ah,     007h          ; CR A - ECC FIFO
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC665IR
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     08Ah          ; CR 0 
        db      001h,     0BCh          ; CR 1
        db      002h,     088h          ; CR 2
        db      003h,     079h          ; CR 3
        db      004h,     000h          ; CR 4
        db      005h,     000h          ; CR 5
        db      006h,     0FFh          ; CR 6
        db      007h,     000h          ; CR 7
        db      008h,     000h          ; CR 8
        db      009h,     000h          ; CR 9
        db      00Ah,     000h          ; CR A
        db      00Bh,     000h          ; CR B
        db      00Ch,     000h          ; CR C
        db      00Dh,     00Dh          ; CR D
        db      00Eh,     082h          ; CR E
        db      00FH,     000h          ; CR F
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC669
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     0AAh          ; CR 0
        db      001h,     09Ch          ; CR 1
        db      002h,     088h          ; CR 2
        db      003h,     0F4h          ; CR 3
        db      004h,     000h          ; CR 4
        db      005h,     000h          ; CR 5
        db      007h,     000h          ; CR 7
        db      00Ah,     007h          ; CR A - ECC FIFO (SMC669FR - IR Pins selection)
        db      00Ch,     000h          ; CR C
        db      010h,     040h          ; CR 10 - (SMC669 - PLL Clock selection)
        db      020h,     000h          ; CR 20
        db      021h,     000h          ; CR 21
        db      022h,     000h          ; CR 22
        db      023h,     000h          ; CR 23
        db      024h,     000h          ; CR 24
        db      025h,     000h          ; CR 25
        db      026h,     000h          ; CR 26
        db      027h,     000h          ; CR 27
IF MKF_SMC669FR                         ;IF for SMC669FR
        db      028h,     000h          ; CR 28
        db      029h,     010h          ; CR 29 (SMC669FR - Pin 23 set to IR Mode)
        db      02Ah,     000h          ; CR 2A
        db      02Bh,     000h          ; CR 2B
        db      02Ch,     000h          ; CR 2C
        db      02Dh,     003h          ; CR 2D
        db      02Eh,     000h          ; CR 2E
        db      02Fh,     000h          ; CR 2F
ENDIF                                   ;ENDIF for SMC669FR
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC67X
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      003h,     003h  ; GP Index Reg. Address
        db      022h,     039h  ; PWR ON FDC, LPT, SER ports
        db      023h,     000h  ; turn off intelligent pwr mgnt

;-----------------------------------------------------------------------------;
;;; 12 Bit Address Qualification, for either standard or Serialized IRQ system
        db      024h,     004h  ; OSC is on, 12 Bit Address Qualification

;;; 16 Bit Address Qualification, for Serialized IRQ system only
;;;	db      024h,     044h  ; OSC is on, 16 Bit Address Qualification
;-----------------------------------------------------------------------------;

        db      007h,     000h  ; select logical device 0 (FDC)
        db      030h,     000h  ; deactivate FDC

        db      007h,     003h  ; select logical device 3 (LPT)
        db      030h,     000h  ; deactivate

        db      007h,     004h  ; select logical device 4 (SER1)
        db      030h,     000h  ; deactivate

        db      007h,     005h  ; select logical device 5 (SER2)
        db      030h,     000h  ; deactivate
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC68X
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      022h,     039h  ; PWR ON FDC, LPT, SER
        db      023h,     000h  ; turn off intelligent pwr mgnt
        db      024h,     084h  ; OSC is on

        db      007h,     000h  ; select logical device 0 (FDC)
        db      030h,     000h  ; deactivate FDC
        db      060h,     003h
        db      061h,     0f0h  ; set FDC port addr to 3F0h
        db      070h,     006h  ; set to IRQ 6

        db      007h,     003h  ; select logical device 3 (LPT)
        db      030h,     000h  ; deactivate

        db      007h,     004h  ; select logical device 4 (SER1)
        db      030h,     000h  ; deactivate

        db      007h,     005h  ; select logical device 5 (SER2)
        db      030h,     000h  ; deactivate
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC922
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     0aah          ; CR 0 
        db      001h,     0bch          ; CR 1
        db      002h,     098h          ; CR 2
        db      003h,     078h          ; CR 3
        db      004h,     000h          ; CR 4
        db      005h,     000h          ; CR 5
        db      006h,     0ffh          ; CR 6
        db      007h,     000h          ; CR 7 
        db      00Ah,     007h          ; CR A
        db      00Bh,     000h          ; CR B
        db      00Ch,     000h          ; CR C
        db      00Fh,     000h          ; CR F
        db      010h,     000h          ; CR 10
        db      018h,     04fh          ; CR 13
        db      019h,     080h          ; CR 16
        db      01Bh,     080h          ; CR 18
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC932
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      022h,     03fh  ; PWR ON FDC, LPT, SER, IDE ports
        db      023h,     000h  ; turn off intelligent pwr mgnt
        db      024h,     0c4h  ; OSC is on

        db      007h,     000h  ; select logical device 0 (FDC)
        db      030h,     000h  ; deactivate FDC
        db      060h,     003h
        db      061h,     0f0h  ; set FDC port addr to 3F0h
        db      070h,     006h  ; set to IRQ 6
        db      074h,     002h  ; set to DMA 2

        db      007h,     001h  ; select logical device 1 (IDE1)
        db      030h,     000h  ; deactivate

        db      007h,     002h  ; select logical device 2 (IDE2)
        db      030h,     000h  ; deactivate

        db      007h,     003h  ; select logical device 3 (LPT)
        db      030h,     000h  ; deactivate

        db      007h,     004h  ; select logical device 4 (SER1)
        db      030h,     000h  ; deactivate

        db      007h,     005h  ; select logical device 5 (SER2)
        db      030h,     000h  ; deactivate
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC957
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      022h,     039h  ; PWR ON FDC, LPT, SER ports
        db      023h,     000h  ; turn off intelligent pwr mgnt
        db      024h,     084h  ; IRQ8 active low, CLK_OUT = 1.8432 MHZ
                                ; OSC is on
        
        db      007h,     000h  ; select logical device 0 (FDC)
        db      030h,     000h  ; deactivate FDC
        
        db      007h,     003h  ; select logical device 3 (LPT)
        db      030h,     000h  ; deactivate
        
        db      007h,     004h  ; select logical device 4 (SER1)
        db      030h,     000h  ; deactivate
        
        db      007h,     005h  ; select logical device 5 (SER2)
        db      030h,     000h  ; deactivate
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_UMC8663
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      0C0h,     000h          ; CR 0 
        db      0C1h,     09Fh          ; CR 1
        db      0C2h,     081h          ; CR 2
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_UMC8663B
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      0C0h,     000h          ; CR 0 
        db      0C1h,     09Fh          ; CR 1
        db      0C2h,     081h          ; CR 2
        db      0C3h,     008h          ; CR 3
;       db      0C4h,     000h          ; CR 4 - Not needed
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_UMC8669
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      0C0h,     067h          ; CR 0 
        db      0C1h,     07fh          ; CR 1
        db      0C2h,     0e1h          ; CR 2
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_WIN787
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     0F0h          ; CR 0
        db      001h,     03Fh          ; CR 1
        db      002h,     000h          ; CR 2
        db      003h,     060h          ; CR 3
        db      004h,     000h          ; CR 4
        db      005h,     008h          ; CR 5
        db      006h,     000h          ; CR 6
        db      007h,     005h          ; CR 7
        db      008h,     000h          ; CR 8

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -