Messages in this thread Patch in this message | | | Date | Sat, 12 Jul 1997 13:43:26 +0200 | From | Pavel Machek <> | Subject | Penguin for intel, #3 (usefull one) |
| |
Hi!
This is yet another version of intel-penguin patch. Unlike others, this tries to be usefull besides of being nice: It also prints [most of] system configuration at bootup. To avoid problem with frame chars already on screen, I simply wipe them out. [There's not enough space in fonts :-( ]. Pavel
[This is based on someone elses code - I do not have enough time, give him credit ;-). I'm leaving to holidays in less than 30 minutes...]
--- ../clean/arch/i386/boot/video.S Fri May 23 13:11:23 1997 +++ arch/i386/boot/video.S Sat Jul 12 13:39:16 1997 @@ -5,6 +5,9 @@ ! Based on the original setup.S code (C) Linus Torvalds and Mats Anderson ! +! Do you want to see penguin? +#define CONFIG_PENGUIN + ! Enable autodetection of SVGA adapters and modes. If you really need this ! feature, drop me a mail as I think of removing it some day... #undef CONFIG_VIDEO_SVGA @@ -114,6 +117,9 @@ call restore_screen ! Restore screen contents #endif /* CONFIG_VIDEO_RETAIN */ #endif /* CONFIG_VIDEO_SELECT */ +#ifdef CONFIG_PENGUIN + call penguin ! display logo +#endif call mode_params ! Store mode parameters pop ds ! Restore original DS ret @@ -192,6 +198,54 @@ movb [PARAM_VIDEO_LINES],al ret +#ifdef CONFIG_PENGUIN +! +! nice penguin for intel boxes too :-) +! + +penguin: + incb [PARAM_HAVE_VGA] ! make sure we have a vga... + decb [PARAM_HAVE_VGA] + jz logo_skip + + seg gs ! ... and a video mode with + mov ax,[0x485] ! 16-line fonts + cmp ax,#16 + jnz logo_skip + + push gs ! clean all such characters from the screen + mov bx,#0xb800 + mov gs,bx + mov bx,#0 +clean_out: + seg gs + cmpb (bx),#0xb3 + jb noclean + seg gs + cmpb (bx),#0xdf + ja noclean + seg gs + mov (bx),#0x20 +noclean: + inc bx + cmp bx,#0xffff + jne clean_out + pop gs + + mov ax,#0x1100 ! load the font piece using bios functions + mov bx,#0x1000 + mov cx,#32 + mov dx,#0x00c0 + lea bp,logofont + int 0x10 + + lea si,penguin_msg ! print the string with the logo + call prtstr + +logo_skip: + ret +#endif + #ifdef CONFIG_VIDEO_SELECT ! @@ -1838,3 +1892,373 @@ 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 CONFIG_PENGUIN +#include <linux/autoconf.h> +#include <linux/version.h> + penguin_msg: + .ascii " ÀÁÂÃÄÅÆÇ Linux " + .ascii UTS_RELEASE + .ascii " for " +#ifdef CONFIG_M386 + .ascii "386" +#endif +#ifdef CONFIG_M486 + .ascii "486" +#endif +#ifdef CONFIG_M586 + .ascii "Pentium" +#endif +#ifdef CONFIG_M686 + .ascii "PPro" +#endif +#ifdef CONFIG_SMP + .ascii "/SMP" +#endif + .ascii " with " +#ifdef CONFIG_MATH_EMULATION + .ascii "soft387 " +#endif +#ifndef CONFIG_NET + .ascii "no_network " +#endif +#ifndef CONFIG_BINFMT_AOUT + .ascii "no_aout " +#endif +#ifndef CONFIG_BINFMT_ELF + .ascii "no_elf " +#endif +#ifdef CONFIG_BLK_DEV_IDE + .ascii "ide " +#endif +#ifdef CONFIG_SCSI + .ascii "scsi " +#endif +#ifdef CONFIG_PPP + .ascii "ppp " +#endif +#ifdef CONFIG_ISDN + .ascii "isdn " +#endif +#ifdef CONFIG_SLIP + .ascii "slip " +#endif +#ifndef CONFIG_VT_CONSOLE + .ascii "no_vt " +#endif +#ifndef CONFIG_SERIAL + .ascii "no_serial " +#endif +#ifdef CONFIG_CD_NO_IDESCSI + .ascii "?cdrom " +#endif +#ifdef CONFIG_MCA + .ascii "mca " +#endif +#ifdef CONFIG_PNP + .ascii "pray " +#endif +#ifdef CONFIG_MODULES + #ifdef CONFIG_KERNELD + .ascii "mod/k " + #else + .ascii "mod " + #endif +#endif +#ifdef CONFIG_MAGIC_SYSRQ + .ascii "magic " +#endif + + + db 0x0d,0x0a + .ascii " ÈÉÊËÌÍÎÏ fs: " +#ifdef CONFIG_MINIX_FS + .ascii "minix " +#endif +#ifdef CONFIG_EXT2_FS + .ascii "ext2 " +#endif +#ifdef CONFIG_MSDOS_FS + .ascii "msdos " +#endif +#ifdef CONFIG_VFAT_FS + .ascii "vfat " +#endif +#ifdef CONFIG_UMSDOS_FS + .ascii "umsdos " +#endif +#ifdef CONFIG_PROC_FS + .ascii "proc " +#endif +#ifdef CONFIG_NFS_FS + #ifdef CONFIG_ROOT_NFS + .ascii "nfsroot " + #else + .ascii "nfs " + #endif +#endif +#ifdef CONFIG_NFSD + .ascii "nfsserver " +#endif +#ifdef CONFIG_SMB_FS + .ascii "samba " +#endif +#ifdef CONFIG_ISO9660_FS + .ascii "iso9660 " +#endif +#ifdef CONFIG_HPFS_FS + .ascii "hpfs " +#endif +#ifdef CONFIG_SYSV_FS + .ascii "sysv " +#endif +#ifdef CONFIG_AFFS_FS + .ascii "affs " +#endif +#ifdef CONFIG_ROMFS_FS + .ascii "rom " +#endif +#ifdef CONFIG_AUTOFS_FS + .ascii "auto " +#endif +#ifdef CONFIG_UFS_FS + .ascii "ufs " +#endif + + db 0x0d,0x0a + .ascii " ÐÑÒÓÔÕÖ× hw: " +/* Network cards */ +#ifdef CONFIG_EL1 + .ascii "3c501 " +#endif +#ifdef CONFIG_EL2 + .ascii "3c503 " +#endif +#ifdef CONFIG_ELPLUS + .ascii "3c505 " +#endif +#ifdef CONFIG_EL16 + .ascii "3c507 " +#endif +#ifdef CONFIG_ELMC + .ascii "3c523 " +#endif +#ifdef CONFIG_EL3 + .ascii "3c5?9 " +#endif +#ifdef CONFIG_VORTEX + .ascii "vortex " +#endif +#ifdef CONFIG_WD80x3 + .ascii "wd80x3 " +#endif +#ifdef CONFIG_ULTRA + .ascii "smc_ultra " +#endif +#ifdef CONFIG_SMC9194 + .ascii "smc9194 " +#endif +#ifdef CONFIG_AT1700 + .ascii "at1700 " +#endif +#ifdef CONFIG_E2100 + .ascii "e2100 " +#endif +#ifdef CONFIG_DECPA + .ascii "decpa " +#endif +#ifdef CONFIG_EWRK3 + .ascii "EWorks3 " +#endif +#ifdef CONFIG_EEXPRESS + .ascii "EExpress " +#endif +#ifdef CONFIG_EEXPRESS_PRO + .ascii "EExpressPro " +#endif +#ifdef CONFIG_FMV18X + .ascii "fmv18x " +#endif +#ifdef CONFIG_HPLAN_PLUS + .ascii "hplan+ " +#endif +#ifdef CONFIG_HPLAN + .ascii "hplan " +#endif +#ifdef CONFIG_HP100 + .ascii "hp100 " +#endif +#ifdef CONFIG_ETH16I + .ascii "eth16i " +#endif +#ifdef CONFIG_NE2000 + .ascii "ne2000 " +#endif +#ifdef CONFIG_NI52 + .ascii "ni52 " +#endif +#ifdef CONFIG_NI65 + .ascii "ni65 " +#endif +#ifdef CONFIG_SEEQ8005 + .ascii "seeq8005 " +#endif +#ifdef CONFIG_SK_G16 + .ascii "sk_g16 " +#endif +#ifdef CONFIG_PCNET32 + .ascii "pcnet32 " +#endif +#ifdef CONFIG_AC3200 + .ascii "ac3200 " +#endif +#ifdef CONFIG_APRICOT + .ascii "apricot " +#endif +#ifdef CONFIG_CS89x0 + .ascii "cs89x0 " +#endif +#ifdef CONFIG_DE4X5 + .ascii "de4x5 " +#endif +#ifdef CONFIG_DEC_ELCP + .ascii "dc21x4x " +#endif +#ifdef CONFIG_DGRS + .ascii "dgrs " +#endif +#ifdef CONFIG_EEXPRESS_PRO100 + .ascii "EExpressPro100 " +#endif +#ifdef CONFIG_ES3210 + .ascii "es3210 " +#endif +#ifdef CONFIG_ZNET + .ascii "znet " +#endif +#ifdef CONFIG_ATP + .ascii "atp " +#endif +#ifdef CONFIG_DE600 + .ascii "de600 " +#endif +#ifdef CONFIG_DE620 + .ascii "de620 " +#endif + +/* CDROMs */ +#ifdef CONFIG_AZTCD + .ascii "aztcd " +#endif +#ifdef CONFIG_GSCD + .ascii "gscd " +#endif +#ifdef CONFIG_HYCD + .ascii "hycd " +#endif +#ifdef CONFIG_SBPCD + .ascii "sbpcd " +#endif +#ifdef CONFIG_BPCD + .ascii "bpcd " +#endif +#ifdef CONFIG_MCD + .ascii "mcd " +#endif +#ifdef CONFIG_MCDX + .ascii "mcdx " +#endif +#ifdef CONFIG_OPTCD + .ascii "optcd " +#endif +#ifdef CONFIG_CM206 + .ascii "cm206 " +#endif +#ifdef CONFIG_SJCD + .ascii "sjcd " +#endif +#ifdef CONFIG_CDU31A + .ascii "cdu31a " +#endif +#ifdef CONFIG_CDU535 + .ascii "cdu535 " +#endif +/* Someone else please list SCSI drivers here. */ + db 0x0d,0x0a + .ascii " ØÙÚÛÜÝÞß net: " +#ifdef CONFIG_NETLINK + .ascii "netlink " +#endif +#ifdef CONFIG_FIREWALL + .ascii "firewall " +#endif +#ifdef CONFIG_INET + .ascii "ipv4 " +#endif +#ifdef CONFIG_IP_MASQUERADE + .ascii "masq " +#endif +#ifdef CONFIG_NET_IPIP + .ascii "ipip " +#endif +#ifdef CONFIG_IP_MULTICAST + .ascii "mcast " +#endif +#ifdef CONFIG_IP_NOSR + .ascii "nosr " +#endif +#ifdef CONFIG_SKB_LARGE + .ascii "largew " +#endif +#ifdef CONFIG_IPV6 + .ascii "ipv6 " +#endif +#ifdef CONFIG_IPX + .ascii "ipx " +#endif +#ifdef CONFIG_ATALK + .ascii "atalk " +#endif +#ifdef CONFIG_AX25 + .ascii "ax.25 " +#endif +#ifdef CONFIG_WAN_ROUTER + .ascii "wanr " +#endif + db 0x0d,0x0a + +! logo font data +logofont: + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x06,0x02,0x02,0x03 + db 0x03,0x1f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x4f,0xef,0xef,0xe1,0x40 + db 0xc0,0xf8,0xfe,0xff,0xf3,0xf1,0xff,0xff,0xff,0xff,0x03,0x33,0x79,0x79,0x79,0x39 + db 0x00,0x00,0x00,0x80,0xc0,0xc0,0xe0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf8 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01 + db 0x03,0x03,0x02,0x03,0x03,0x03,0x03,0x06,0x0e,0x1c,0x3c,0x38,0x78,0xf8,0xf8,0x70 + db 0x80,0x00,0x00,0x80,0xc1,0xde,0x61,0x7f,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x0f,0x01,0x09,0x31,0xc3,0x33,0xc1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0xf8,0xf8,0xf8,0xf8,0x9c,0xce,0xfe,0xff,0xff,0x7f,0x7f,0x3f,0x3f,0x3f,0x1f,0x0f + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0x7c + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x03,0x03,0x07,0x07,0x0f,0x0f,0x1b,0x1b,0x3b,0x7b,0x7f,0x7d,0x6e,0x03,0x81,0x80 + db 0xf0,0xe0,0xc0,0xc0,0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0xc0,0xe0 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + db 0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x03,0x0f,0x1b,0x11 + db 0xfe,0xbf,0xbf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0x1f,0xe7,0xff,0xff,0xff,0xfe + db 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x80,0x00,0x00 + db 0x01,0x3f,0x40,0x40,0x40,0x40,0x40,0x60,0x60,0x40,0xc0,0x60,0x1f,0x01,0x00,0x00 + db 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x0f,0x01 + db 0x78,0x7c,0x3e,0x1f,0x0f,0x0f,0x07,0x02,0x01,0x01,0x00,0x00,0x01,0x01,0x87,0xfe + db 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x60,0xb0,0xbf,0xff,0xff,0xf8,0x80,0x00 + db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x3f,0xff,0xff,0xff,0x00,0x00,0x00 + db 0x10,0x10,0x10,0x10,0x10,0x10,0x58,0xd8,0xd0,0xd0,0xf0,0xb0,0xf8,0xf8,0x3c,0x1f + db 0xfc,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0c,0x78,0xf0 + db 0x20,0x20,0x20,0x30,0x1c,0x06,0x01,0x01,0x03,0x0c,0x70,0xc0,0x00,0x00,0x00,0x00 +#endif \ No newline at end of file
-- I'm really pavel@atrey.karlin.mff.cuni.cz. Pavel Look at http://atrey.karlin.mff.cuni.cz/~pavel/ ;-).
| |