mirror of
https://github.com/stevenhowes/wbios.git
synced 2026-05-26 15:53:34 +01:00
d410ad0acb
Original source https://www.pcengines.ch/file/wbios111s.zip
111 lines
3.0 KiB
Plaintext
111 lines
3.0 KiB
Plaintext
;
|
|
; initialization tables
|
|
;
|
|
; (C)1997-2001 Pascal Dornier / PC Engines; All rights reserved.
|
|
; This file is licensed pursuant to the COMMON PUBLIC LICENSE 0.5.
|
|
;
|
|
|
|
;
|
|
; Initial initialization table (used in post2)
|
|
;
|
|
clrtab: db cm_nmi+cm_b,cm_idx ;RTC: disable NMI
|
|
db 2,cm_dat ;RTC: BCD mode, interrupt disable
|
|
db cm_nmi+cm_a,cm_idx ;RTC: 32768 Hz oscillator, 1ms int
|
|
db 26h,cm_dat
|
|
|
|
db 4,dma0+8 ;disable dma0
|
|
db 4,dma1+8+8 ;disable dma1
|
|
db 0,dma0+0dh ;reset dma0 (data don't care)
|
|
db 0,dma1+0dh+0dh ;reset dma1 (data don't care)
|
|
db 0fh,dma0+0fh ;mask all channels
|
|
db 0fh,dma1+0fh+0fh ;mask all channels
|
|
db 0,dma0+8 ;Enable dma0
|
|
db 0,dma1+8+8 ;Enable dma1
|
|
|
|
db 0fch,port61 ;disable parity
|
|
|
|
#if def NO_ISAREF
|
|
db 50h,timer+3
|
|
#else
|
|
db 54h,timer+3 ;init refresh
|
|
#endif
|
|
db 12h,timer+1 ;refresh interval
|
|
|
|
db 0ffh,0ffh ;end of table
|
|
;
|
|
; Timer, DMA, PIC initialization table (used in post2)
|
|
;
|
|
; first data byte, then port address
|
|
;
|
|
tdmatab: db 0,dma1+8+8 ;Enable dma1
|
|
db 0c0h,dma1+0bh+0bh ;Cascade mode, channel 4
|
|
db 041h,dma1+0bh+0bh ;Single mode, channel 5
|
|
db 042h,dma1+0bh+0bh ;Single mode, channel 6
|
|
db 043h,dma1+0bh+0bh ;Single mode, channel 7
|
|
db 0,dma1+09h+09h ;clear DRQ4 request
|
|
db 0,dma1+0ah+0ah ;unmask DRQ4 -> enable cascade
|
|
db 0,dma0+8 ;Enable dma0
|
|
db 40h,dma0+0bh ;Single mode, channel 0
|
|
db 41h,dma0+0bh ;Single mode, channel 1
|
|
db 42h,dma0+0bh ;Single mode, channel 2
|
|
db 43h,dma0+0bh ;Single mode, channel 3
|
|
|
|
db 0,npx+1 ;clear x87 interrupt
|
|
|
|
db 11h,pic0 ;ICW1: edge, ICW4
|
|
db 08h,pic0+1 ;ICW2: interrupt vector 08..0F
|
|
db 04h,pic0+1 ;ICW3: IRQ2 is used for cascade
|
|
db 01h,pic0+1 ;ICW4: 8086 mode
|
|
db 0ffh,pic0+1 ;OCW: mask all interrupts
|
|
|
|
db 11h,pic1 ;ICW1: edge, ICW4
|
|
db 70h,pic1+1 ;ICW2: interrupt vector 70..77
|
|
db 02h,pic1+1 ;ICW3: slave identification number
|
|
db 01h,pic1+1 ;ICW4: 8086 mode
|
|
db 0ffh,pic1+1 ;OCW: mask all interrupts
|
|
|
|
db 26h,port92 ;enable A20 gate
|
|
|
|
db 0ffh,0ffh ;end of table
|
|
;
|
|
; baud rates, H/L swapped
|
|
;
|
|
#if ! def rs_baud ;can be overridden by chipset
|
|
rs_baud: db 04,17h ;110 baud
|
|
db 03,00h ;150 baud
|
|
db 01,80h ;300 baud
|
|
db 00,0c0h ;600 baud
|
|
db 00,60h ;1200 baud
|
|
db 00,30h ;2400 baud
|
|
db 00,18h ;4800 baud
|
|
db 00,0ch ;9600 baud
|
|
#endif
|
|
;
|
|
; serial port I/O addresses (points to scratch register)
|
|
;
|
|
rs_ports: dw 3ffh,2ffh,3efh,2efh,287h,28fh
|
|
dw 297h,29fh,2F7h,377h,0 ;0 = end of table
|
|
;
|
|
; parallel port I/O addresses
|
|
;
|
|
lp_ports: dw 03bch,0378h,0278h,0 ;0 = end of table
|
|
;
|
|
; RTC initialization table
|
|
;
|
|
; Note: When location cm_dia is set to 80, MS-DOS will ignore the
|
|
; RTC date and set 1980.
|
|
;
|
|
rtc_tab: db 0,cm_ss ;00: second
|
|
db 0,cm_ssa ;01: alarm second
|
|
db 0,cm_mm ;02: minute
|
|
db 0,cm_mma ;03: alarm minute
|
|
db 0,cm_hh ;04: hour
|
|
db 0,cm_hha ;05: alarm hour
|
|
db 0,cm_day ;06: day of week
|
|
db 1,cm_dd ;07: day
|
|
db 1,cm_mo ;08: month
|
|
db 00h,cm_yy ;09: year
|
|
db 80h,cm_dia ;0E: power loss flag
|
|
db 20h,cm_cent ;32: century
|
|
rtc_tab9: ;end of table
|