From owner-svn-src-user@FreeBSD.ORG Sat Dec 12 13:24:07 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32B6C1065693; Sat, 12 Dec 2009 13:24:07 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 175CC8FC1D; Sat, 12 Dec 2009 13:24:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBCDO64U053892; Sat, 12 Dec 2009 13:24:06 GMT (envelope-from nyan@svn.freebsd.org) Received: (from nyan@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBCDO6QJ053889; Sat, 12 Dec 2009 13:24:06 GMT (envelope-from nyan@svn.freebsd.org) Message-Id: <200912121324.nBCDO6QJ053889@svn.freebsd.org> From: Takahashi Yoshihiro Date: Sat, 12 Dec 2009 13:24:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r200437 - user/nyan/pc98/sys/boot/pc98/boot2 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Dec 2009 13:24:07 -0000 Author: nyan Date: Sat Dec 12 13:24:06 2009 New Revision: 200437 URL: http://svn.freebsd.org/changeset/base/200437 Log: - Disable setting machine type. - Add scrolling screen support. Modified: user/nyan/pc98/sys/boot/pc98/boot2/Makefile user/nyan/pc98/sys/boot/pc98/boot2/boot1.S Modified: user/nyan/pc98/sys/boot/pc98/boot2/Makefile ============================================================================== --- user/nyan/pc98/sys/boot/pc98/boot2/Makefile Sat Dec 12 13:08:47 2009 (r200436) +++ user/nyan/pc98/sys/boot/pc98/boot2/Makefile Sat Dec 12 13:24:06 2009 (r200437) @@ -38,6 +38,9 @@ CFLAGS= -Os \ -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ -Winline --param max-inline-insns-single=100 +# Set machine type to PC98_SYSTEM_PARAMETER +#CFLAGS+= -DSET_MACHINE_TYPE + # Initialize the bi_bios_geom using the BIOS geometry #CFLAGS+= -DGET_BIOSGEOM Modified: user/nyan/pc98/sys/boot/pc98/boot2/boot1.S ============================================================================== --- user/nyan/pc98/sys/boot/pc98/boot2/boot1.S Sat Dec 12 13:08:47 2009 (r200436) +++ user/nyan/pc98/sys/boot/pc98/boot2/boot1.S Sat Dec 12 13:24:06 2009 (r200437) @@ -104,8 +104,10 @@ main: cld and $0x00ffffff,%eax mov %eax,%es:(EPSON_ID) +#ifdef SET_MACHINE_TYPE /* Set machine type to PC98_SYSTEM_PARAMETER */ - call machine_check + call set_machine_type +#endif /* Setup graphic screen */ mov $0x42,%ah /* 640x400 */ @@ -210,11 +212,14 @@ putstr: lodsb /* * Display a single char. */ -putc: push %ds +putc: pusha xor %dx,%dx mov %dx,%ds mov MEM_REL+cursor-start,%di - mov $160,%cx + mov $0xa000,%bx + mov %bx,%es + mov $(80*2),%cx + cmp $0x08,%al je putc.bs cmp $0x0d,%al @@ -224,41 +229,55 @@ putc: push %ds cmp $0x5c,%al /* \ */ jne 1f mov $0xfc,%al -1: mov $0xa000,%bx - mov %bx,%es - mov $0xe1,%bl - mov %bl,%es:0x2000(%di) /* Attribute */ - stosb - inc %di - jmp putc.move +1: movb $0xe1,%es:0x2000(%di) + stosw + jmp putc.scr putc.bs: test %di,%di jz putc.move dec %di dec %di + movb $0xe1,%es:0x2000(%di) + movw $0x20,%es:(%di) jmp putc.move -putc.cr: /* xor %dx,%dx */ - mov %di,%ax +putc.cr: mov %di,%ax div %cx sub %dx,%di jmp putc.move putc.lf: add %cx,%di +putc.scr: cmp $(80*2*25),%di /* Scroll screen */ + jb putc.move + push %ds + mov %bx,%ds + mov $(80*2),%si + xor %di,%di + mov $(80*24/2),%cx + rep + movsl + xor %ax,%ax + mov $0x20,%al + mov $80,%cl + rep + stosw + pop %ds + mov $(80*24*2),%di putc.move: mov %di,MEM_REL+cursor-start /* Move cursor */ mov $0x13,%ah mov %di,%dx int $0x18 - pop %ds + popa lret cursor: .word 0 +#ifdef SET_MACHINE_TYPE /* * Set machine type to PC98_SYSTEM_PARAMETER. */ -machine_check: xor %edx,%edx +set_machine_type: + xor %edx,%edx mov %dx,%ds -# mov $MEM_SYS,%ax -# mov %ax,%es - +// mov $MEM_SYS,%ax +// mov %ax,%es /* Wait V-SYNC */ vsync.1: inb $0x60,%al test $0x20,%al @@ -310,8 +329,8 @@ m_not_h98: or $M_NOT_H98,%edx 1: mov $PC98_MACHINE_TYPE,%bx mov %edx,%es:(%bx) - ret +#endif /* Messages */