/*
 *  These values was detected using DOSEMU and original ultrinit.exe...
 *  I like these hacks :-)
 *  Jaroslav Kysela <perex@jcu.cz>
 */

PORT: Wr 0x0388 -> 0x55
PORT: Rd 0x022a -> 0xf8
PORT: Wr 0x0388 -> 0x55
PORT: Rd 0x023a -> 0xff
PORT: Wr 0x0388 -> 0x55
PORT: Rd 0x024a -> 0xff
PORT: Wr 0x0388 -> 0x55
PORT: Rd 0x025a -> 0xff
PORT: Wr 0x0388 -> 0x55
PORT: Rd 0x026a -> 0xff
// reset sequence 1
PORT: Wr 0x0226 -> 0x03		// reset on
PORT: Rd 0x0226 -> 0x0b		// in? maybe validity of reset
PORT: Wr 0x0226 -> 0x00		// reset off
PORT: Rd 0x022e -> 0xd8		// data available (7. bit)
PORT: Rd 0x022a -> 0xaa		// reset ok -> 0xaa
// reset sequence 2
PORT: Wr 0x0226 -> 0x03
PORT: Rd 0x0226 -> 0x8b
PORT: Wr 0x0226 -> 0x00
PORT: Rd 0x022e -> 0xd8
PORT: Rd 0x022a -> 0xaa
// enable sequence
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x022b -> 0xaa
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x022b -> 0xaa
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x022b -> 0xaa
PORT: Rd 0x0229 -> 0x00
PORT: Rd 0x0220 -> 0x00
// reset sequence 3
PORT: Wr 0x0226 -> 0x03
PORT: Rd 0x0226 -> 0x0b
PORT: Wr 0x0226 -> 0x00
PORT: Rd 0x022e -> 0xd8
PORT: Rd 0x022a -> 0xaa
// identification detect
PORT: Rd 0x022c -> 0x18		// data avail -> ready
PORT: Wr 0x022c -> 0xe7		// return ES identification
PORT: Rd 0x022c -> 0x58		// data avail -> ready
PORT: Rd 0x022a -> 0x68		// major = 0x68
PORT: Rd 0x022c -> 0x58		// data avail -> ready
PORT: Rd 0x022a -> 0x8b		// minor = 0x8b
// reset sequence 4
PORT: Wr 0x0226 -> 0x03
PORT: Rd 0x0226 -> 0x8b
PORT: Wr 0x0226 -> 0x00
PORT: Rd 0x022e -> 0xd8
PORT: Rd 0x022a -> 0xaa
// enable extended mode
PORT: Rd 0x022c -> 0x18		// data avail -> ready
PORT: Wr 0x022c -> 0xc6		// enable extended mode
// configure IRQ line
PORT: Rd 0x022c -> 0x18		// data avail -> ready
PORT: Wr 0x022c -> 0xc0		// read command
PORT: Rd 0x022c -> 0x18		// data avail -> ready
PORT: Wr 0x022c -> 0xb1		// IRQ line config
PORT: Rd 0x022c -> 0x58		// data avail -> ready
PORT: Rd 0x022a -> 0x14		// read IRQ line config
PORT: Rd 0x022c -> 0x18		// data avail -> ready
PORT: Wr 0x022c -> 0xb1		// IRQ line config
PORT: Rd 0x022c -> 0x18		// data avail -> ready
PORT: Wr 0x022c -> 0x14		// write new IRQ line config
// reset sequence 5
PORT: Wr 0x0226 -> 0x03
PORT: Rd 0x0226 -> 0x8b
PORT: Wr 0x0226 -> 0x00
PORT: Rd 0x022e -> 0xd8
PORT: Rd 0x022a -> 0xaa
// enable extended mode
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc6
// read IRQ config again
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc0		// read command
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xb1		// IRQ config
PORT: Rd 0x022c -> 0x58
PORT: Rd 0x022a -> 0x14		// IRQ config value
// reset sequence 6
PORT: Wr 0x0226 -> 0x03
PORT: Rd 0x0226 -> 0x8b
PORT: Wr 0x0226 -> 0x00
PORT: Rd 0x022e -> 0xd8
PORT: Rd 0x022a -> 0xaa
// enable extended mode
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc6
// configure DMA channel
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc0		// read command
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xb2		// DMA config
PORT: Rd 0x022c -> 0x58
PORT: Rd 0x022a -> 0x18		// DMA config value
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xb2		// DMA config
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0x18		// write new DMA config value
// reset sequence 7
PORT: Wr 0x0226 -> 0x03
PORT: Rd 0x0226 -> 0x8b
PORT: Wr 0x0226 -> 0x00
PORT: Rd 0x022e -> 0xd8
PORT: Rd 0x022a -> 0xaa
// enable extended mode
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc6
// 
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc0		// read command
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xb2		// DMA config
PORT: Rd 0x022c -> 0x58
PORT: Rd 0x022a -> 0x18		// read DMA config
//
PORT: Wr 0x0227 -> 0x00		// ???
PORT: Wr 0x0224 -> 0x40		// mixer addr
PORT: Rd 0x0225 -> 0x89		// read mixer data
PORT: Wr 0x0225 -> 0x8b		// write mixer data
PORT: Wr 0x0227 -> 0x02		// ???
PORT: Wr 0x0201 -> 0x00		// joystick?
PORT: Wr 0x0227 -> 0x00		// ???
PORT: Wr 0x0201 -> 0x00		// joystick?
PORT: Wr 0x0227 -> 0x01		// ???
PORT: Wr 0x0224 -> 0x40		// mixer addr
PORT: Rd 0x0225 -> 0x8b		// ???
PORT: Wr 0x0225 -> 0x89		// ???
PORT: Wr 0x0224 -> 0x3a		// line?
PORT: Wr 0x0225 -> 0xff
PORT: Wr 0x0224 -> 0x40
PORT: Rd 0x0225 -> 0x89
PORT: Wr 0x0225 -> 0x89
PORT: Rd 0x022c -> 0x18
PORT: Wr 0x022c -> 0xc7

// ok... next part is GF1 initialization
// we know all about it, so go away..

PORT: Rd 0x024c -> 0x00

.
.
.

