--- scratch/src/tvga8900.c	1999-07-28 02:36:19.000000000 +1000
+++ pat/src/tvga8900.c	1999-08-30 07:55:20.000000000 +1000
@@ -720,8 +720,18 @@
 	/* check version */
 	outw(SEQ_I, 0x000b);
 	switch (inb(SEQ_D)) {
-	case 0x02:			/* 8800cs */
 	case 0x03:			/* 8900b */
+	    /* 8900b has maximum 1 Mb, memsize mask 0x03 needed.
+	     * A VGA Ultra PT-2017 was seen with CRTC reg 0x1F containing 0x1F.
+	     * Its video BIOS memsize int 10h AH=12h BL=12h used mask 0x03.
+	     * But it also returned bits masked 0x0C shifted to high nibble of
+	     * AH (don't know what these mean).
+	     */
+	    port_out(0x1f, __svgalib_CRT_I);
+	    tvga8900_memory = (port_in(__svgalib_CRT_D) & 0x03) * 256 + 256;
+	    tvga_model = 8900;
+	    break;
+	case 0x02:			/* 8800cs */
 	case 0x04:			/* 8900c */
 	case 0x13:
 	case 0x33:			/* 8900cl */
