--- linux/arch/i386/boot/video.S	Fri Feb  2 17:07:58 2001
+++ linux/arch/i386/boot/video.S	Sun Feb  4 13:39:22 2001
@@ -13,6 +13,8 @@
 
 #include <linux/config.h> /* for CONFIG_VIDEO_* */
 
+#define ANDY_GOTH_HACKING
+
 /* Enable autodetection of SVGA adapters and modes. */
 #undef CONFIG_VIDEO_SVGA
 
@@ -438,6 +440,10 @@
 
 # Setting of user mode (AX=mode ID) => CF=success
 mode_set:
+#ifdef ANDY_GOTH_HACKING
+	cmpw	$0xbeef, %ax			# 0xbeef!
+	jz	bring_on_the_beef
+#endif
 	movw	%ax, %bx
 	cmpb	$0xff, %ah
 	jz	setalias
@@ -689,6 +695,9 @@
 # Set the 80x30 mode (all VGA's). 480 scanlines, 16-pixel font.
 set_80x30:
 	call	use_80x25			# Start with real 80x25
+#ifdef ANDY_GOTH_HACKING
+set_480_scanlines:
+#endif
 	DO_STORE
 	movw	$0x3cc, %dx			# Get CRTC port
 	inb	%dx, %al
@@ -974,6 +983,10 @@
 	.word	0x5022				# 80x34
 	.word	VIDEO_80x60
 	.word	0x503c				# 80x60
+#ifdef ANDY_GOTH_HACKING
+	.word	0xbeef
+	.word	0x843c				# 132x60
+#endif
 #ifdef CONFIG_VIDEO_GFX_HACK
 	.word	VIDEO_GFX_HACK
 	.word	VIDEO_GFX_DUMMY_RESOLUTION
@@ -1932,3 +1945,69 @@
 adapter:	.byte	0	# Video adapter: 0=CGA/MDA/HGA,1=EGA,2=VGA
 video_segment:	.word	0xb800	# Video memory segment
 force_size:	.word	0	# Use this size instead of the one in BIOS vars
+
+#ifdef ANDY_GOTH_HACKING
+bring_on_the_beef:
+	movw	$0x0123, %ax			# Set 132x25 mode
+	call	mode_set
+	call	set_480_scanlines		# And enable 480-scanline mode
+/*
+	DO_STORE				# Enable 480-scanline mode
+	movw	$0x3cc, %dx			# Get CRTC port
+	inb	%dx, %al
+	movb	$0xd4, %dl
+	rorb	%al				# Mono or color?
+	jc	st48a
+	movb	$0xb4, %dl
+st48a:	movw	$0x0c11, %ax		# Vertical sync end (also unlocks CR0-7)
+ 	call	outidx
+	movw	$0x0b06, %ax			# Vertical total
+ 	call	outidx
+	movw	$0x3e07, %ax			# (Vertical) overflow
+ 	call	outidx
+	movw	$0xea10, %ax			# Vertical sync start
+ 	call	outidx
+	movw	$0xdf12, %ax			# Vertical display end
+	call	outidx
+	movw	$0xe715, %ax			# Vertical blank start
+ 	call	outidx
+	movw	$0x0416, %ax			# Vertical blank end
+ 	call	outidx
+	pushw	%dx
+	movb	$0xcc, %dl			# Misc output register (read)
+ 	inb	%dx, %al
+ 	movb	$0xc2, %dl			# (write)
+ 	andb	$0x0d, %al	# Preserve clock select bits and color bit
+ 	orb	$0xe2, %al			# Set correct sync polarity
+ 	outb	%al, %dx
+	popw	%dx
+*/
+	movw	$0x1003, %ax			# Disable blinking
+	xorb	%bl, %bl
+	int	$0x10
+
+	movw	%cs, %ax			# Set my custom font
+	movw	%ax, %es
+	movw	$0x1110, %ax
+	xorb	%bl, %bl
+	movb	my_font_height, %bh
+	movw	$0x00ff, %cx
+	xorw	%dx, %dx
+	leaw	my_font_data, %bp
+	int	$0x10
+
+	movw	$0x1200, %ax			# Use alternate print screen
+	movb	$0x20, %bl
+	int	$0x10
+	movw	$0x1201, %ax			# Turn off cursor emulation
+	movb	$0x34, %bl
+	int	$0x10
+	movb	$0x01, %ah			# Define cursor scan lines 6-7
+	movw	$0x0607, %cx
+	int	$0x10
+
+	movw	$0xdf12, %ax			# VGA vertical display end
+	movw	$0x843c, force_size		# 132x60 (!)
+	jmp	setvde
+#include "thin8x8.font.s"
+#endif
