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

📄 oemiotbl.asm

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

ENDIF
IF MKF_DSCH20
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      02h,      00h   ; Disable FDC   
        db      03h,      0C0h  ; FDC mode
        db      07h,      0F8h  ; Disable LPT
        db      0Ch,      0F8h  ; Disable COMA  
        db      11h,      0F8h  ; Disable COMB  
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_GM803B
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      0A0h,     003h          ; CR A0
        db      0A1h,     000h          ; CR A1
        db      0A2h,     000h          ; CR A2
        db      0A4h,     000h          ; CR A4
        db      0A5h,     000h          ; CR A5
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_GM803C
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      0C2h,     003h          ; CR C2
        db      0C3h,     0FCh          ; CR C3
        db      0CEh,     000h          ; CR CE
        db      0CFh,     000h          ; CR CF
        db      0D0h,     000h          ; CR D0
        db      0D1h,     000h          ; CR D1
        db      0D3h,     000h          ; CR D3
        db      0D5h,     000h          ; CR D5
        db      0D6h,     000h          ; CR D6
        db      0D7h,     000h          ; CR D7
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_ITE8680 or MKF_ITE8661 
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;              Device   Data/Reg
;             --------  --------
        db      000h                    ;select logical device 0 (FDC)
        dw                0030h         ;deactivate FDC

        db      001h                    ;select logical device 1 (SER1)
        dw                0030h         ;deactivate COMA

        db      002h                    ;select logical device 2 (SER2)
        dw                0030h         ;deactivate COMB

        db      003h                    ;select logical device 3 (LPT)
        dw                0030h         ;deactivate LPT
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 3
ENDIF

IF MKF_NAT303
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0
        db      001h,     000h          ; CR 1
        db      002h,     00Ch          ; CR 2
        db      003h,     001h          ; CR 3
        db      004h,     002h          ; CR 4
;       db      005h,     00Fh          ; CR 5
        db      006h,     098h          ; CR 6
        db      007h,     000h          ; CR 7
        db      009h,     0C0h          ; CR 9
        db      00Bh,     0CFh          ; CR B
        db      00Dh,     0CFh          ; CR D
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_NAT306
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0
        db      001h,     000h          ; CR 1
        db      002h,     000h          ; CR 2
        db      003h,     001h          ; CR 3
        db      004h,     002h          ; CR 4
        db      006h,     000h          ; CR 6
        db      007h,     000h          ; CR 7
        db      009h,     0C0h          ; CR 9
        db      00Ah,     000h          ; CR A
        db      00Bh,     000h          ; CR B
        db      00Ch,     000h          ; CR C
        db      00Dh,     000h          ; CR D
        db      00Eh,     000h          ; CR E
        db      00Fh,     01Eh          ; CR F
        db      010h,     000h          ; CR 10
        db      011h,     000h          ; CR 11
        db      012h,     030h          ; CR 12
        db      018h,     000h          ; CR 18
        db      019h,     000h          ; CR 19
        db      01Bh,     030h          ; CR 1B
        db      01Ch,     000h          ; CR 1C
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_NAT308
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;              Device   Data/Reg
;             --------  --------
        db      003h                    ;select logical device 3 (FDC)
        dw                0030h         ;deactivate FDC

        db      004h                    ;select logical device 3 (LPT)
        dw                0030h         ;deactivate LPT

        db      004h                    ;select logical device 3 (LPT)
        dw                0271h         ;IRQ high activate

        db      006h                    ;select logical device 6 (SER1)
        dw                0030h         ;deactivate COMA

        db      005h                    ;select logical device 5 (SER2)
        dw                0030h         ;deactivate COMB
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 3

ENDIF
IF MKF_NAT312
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0 
        db      001h,     000h          ; CR 1
        db      002h,     008h          ; CR 2
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_NAT322
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0 
        db      001h,     000h          ; CR 1
        db      002h,     008h          ; CR 2
        db      003h,     001h          ; CR 3
        db      004h,     000h          ; CR 4
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_NAT332
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0
        db      001h,     000h          ; CR 1
        db      002h,     008h          ; CR 2
        db      003h,     001h          ; CR 3
        db      004h,     000h          ; CR 4
        db      006h,     008h          ; CR 6
;       db      007h,     000h          ; CR 7
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_NAT336
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0
        db      001h,     000h          ; CR 1
        db      002h,     000h          ; CR 2
        db      003h,     001h          ; CR 3
        db      004h,     002h          ; CR 4
        db      006h,     000h          ; CR 6
        db      007h,     000h          ; CR 7
        db      009h,     0C0h          ; CR 9
        db      00Ah,     000h          ; CR A
        db      00Bh,     000h          ; CR B
        db      00Ch,     000h          ; CR C
        db      00Dh,     000h          ; CR D
        db      00Eh,     000h          ; CR E
        db      010h,     000h          ; CR 10
        db      011h,     000h          ; CR 11
        db      012h,     000h          ; CR 12
;       db      018h,     000h          ; CR 18
        db      01Bh,     079h          ; CR 1B
        db      01Ch,     000h          ; CR 1C
        db      040h,     000h          ; CR 40
        db      041h,     006h          ; CR 41
        db      042h,     000h          ; CR 42
        db      043h,     000h          ; CR 43
        db      044h,     000h          ; CR 44
        db      045h,     000h          ; CR 45
        db      046h,     000h          ; CR 46
        db      047h,     000h          ; CR 47
        db      048h,     0FCh          ; CR 48
        db      049h,     000h          ; CR 49
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_NAT338
        public  REGINITCOUNT
        public  RegisterInitTableStart
        public  RegisterInitTableEnd
RegisterInitTableStart:
;                        Power
;             Register  On Value
;             --------  --------
        db      000h,     000h          ; CR 0
        db      002h,     000h          ; CR 2
        db      003h,     001h          ; CR 3
        db      004h,     002h          ; CR 4
        db      006h,     000h          ; CR 6
        db      007h,     000h          ; CR 7
        db      009h,     0C0h          ; CR 9
        db      00Ah,     000h          ; CR A
        db      00Bh,     000h          ; CR B
        db      00Ch,     000h          ; CR C
        db      00Dh,     000h          ; CR D
        db      010h,     000h          ; CR 10
        db      011h,     000h          ; CR 11
        db      012h,     000h          ; CR 12
        db      018h,     026h          ; CR 18
        db      01Bh,     008h          ; CR 1B
        db      01Ch,     000h          ; CR 1C
        db      040h,     0A0h          ; CR 40
        db      041h,     036h          ; CR 41
        db      042h,     000h          ; CR 42
        db      043h,     000h          ; CR 43
        db      044h,     000h          ; CR 44
        db      045h,     000h          ; CR 45
        db      046h,     000h          ; CR 46
        db      047h,     000h          ; CR 47
        db      048h,     0FCh          ; CR 48
        db      049h,     000h          ; CR 49
;       db      04Ah,     000h          ; CR 4A
;       db      04Bh,     000h          ; CR 4B
        db      04Ch,     000h          ; CR 4C
        db      04Dh,     000h          ; CR 4D
        db      04Eh,     000h          ; CR 4E
        db      04Fh,     000h          ; CR 4F
        db      050h,     000h          ; CR 50
        db      051h,     000h          ; CR 51
RegisterInitTableEnd:

REGINITCOUNT = (RegisterInitTableEnd - RegisterInitTableStart) / 2

ENDIF
IF MKF_SMC651                           ; Same for SMC661, CT711, CT712
        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
RegisterInitTableEnd:

⌨️ 快捷键说明

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