diff -ur eota/kernel/BTRON/device/console/console.h eota-c/kernel/BTRON/device/console/console.h
--- eota/kernel/BTRON/device/console/console.h	Tue Jul 25 17:18:38 2000
+++ eota-c/kernel/BTRON/device/console/console.h	Tue Apr 29 18:46:07 2003
@@ -7,6 +7,8 @@
 
 (C) B-Free Project.
 
+(C) 2003, Tomohide Naniwa
+
 */
 /* $Header: /usr/local/src/master/B-Free/Program/btron-pc/kernel/BTRON/device/console/console.h,v 1.16 2000/02/27 15:25:16 naniwa Exp $ */
 
@@ -116,7 +118,7 @@
 #define __CONSOLE_H__	1
 
 
-#include "../../../ITRON/kernlib/device.h"
+#include <kernlib/device.h>
 
 /*  定数の設定
  */
@@ -153,12 +155,12 @@
 #define GR_FILLELLIPSE	0x0000800A
 #define GR_SCROLL       0x0000800B
 
-#define NORM_ATTR	0x1e		/* 通常文字 			*/
+#define NORM_ATTR	0x1e		/* 通常文字 */
 
 #define SCROLL_UP       0
 #define SCROLL_DOWN     1
 
-#define TEXT_VRAM_ADDR	0x800B8000	/* TEXT VRAM のアドレス		*/
+#define TEXT_VRAM_ADDR	0x800B8000	/* TEXT VRAM のアドレス */
 #define TEXT_VRAM_SIZE	2000
 
 #define GDC_ADDR	0x03d4
@@ -168,9 +170,9 @@
 #define GDC_COMMAND	0x03d5
 
 #define	VGA_OVERWRITE			0x00
-#define	VGA_AND				0x10
-#define	VGA_OR				0x20
-#define	VGA_XOR				0x30
+#define	VGA_AND				0x08
+#define	VGA_OR				0x10
+#define	VGA_XOR				0x18
 
 struct gr_point_t
 {
diff -ur eota/kernel/BTRON/init/main.c eota-c/kernel/BTRON/init/main.c
--- eota/kernel/BTRON/init/main.c	Sat Apr 19 21:17:57 2003
+++ eota-c/kernel/BTRON/init/main.c	Sat Jun  7 17:17:57 2003
@@ -100,7 +100,7 @@
 #include "h/lowlib.h"
 #include "posix_if.h"
 #include "lib/init-stdlib.h"
-#define RELID "2003/4/19-1"
+#define RELID "2003/6/7-1"
 
 
 /*
diff -ur eota/kernel/ITRON/i386/virtual_mem.c eota-c/kernel/ITRON/i386/virtual_mem.c
--- eota/kernel/ITRON/i386/virtual_mem.c	Sun Feb 17 13:01:46 2002
+++ eota-c/kernel/ITRON/i386/virtual_mem.c	Fri Jun  6 21:42:48 2003
@@ -637,6 +637,9 @@
     W counter;
 #endif
 
+#ifdef DEBUG
+    printk("vdel_reg %d %d\n", id, rid);
+#endif
     taskp = get_tskp(id);
     if (taskp == NULL) {
 	/*
@@ -836,6 +839,9 @@
     T_TCB *taskp, *dstp;
     UW counter;
 
+#ifdef DEBUG
+    printk("vdup_reg %d %d %d\n", src, dst, rid);
+#endif
     taskp = (T_TCB *) get_tskp(src);
     if (taskp->tskstat == TTS_NON) {
 	return (E_PAR);
diff -ur eota/kernel/POSIX/manager/exec.c eota-c/kernel/POSIX/manager/exec.c
--- eota/kernel/POSIX/manager/exec.c	Mon Feb 18 04:33:30 2002
+++ eota-c/kernel/POSIX/manager/exec.c	Fri Jun  6 21:40:31 2003
@@ -7,7 +7,7 @@
 
 (C) B-Free Project.
 
-(C) 2001-2002, Tomohide Naniwa
+(C) 2001-2003, Tomohide Naniwa
 
 */
 
@@ -82,8 +82,6 @@
     ID signal_task;
 #endif
     struct proc *procp;
-    ID rid;
-
 
 #ifdef notdef
     printk("[PM] exec_program: path = \"%s\"\n", pathname);	/* */
@@ -199,13 +197,27 @@
     }
 
     /* 残りの region の作成 */
-    vnew_reg(req->caller, (VP) VADDR_HEAP, 0, STD_HEAP_SIZE,
-	     VM_READ | VM_WRITE | VM_USER, NULL, &rid);	/* heap */
+    errno = vcre_reg(req->caller, HEAP_REGION,
+		     (VP) VADDR_HEAP, 0, STD_HEAP_SIZE,
+	     VM_READ | VM_WRITE | VM_USER, NULL);	/* heap */
+#ifdef DEBUG
+    if (errno) {
+      dbg_printf("[EXEC]: vcre_reg return %d\n", errno);
+    }
+    {
+      T_REGION reg;
+
+      errno = vsts_reg(req->caller, HEAP_REGION, (VP) & reg);
+      dbg_printf("[EXEC] err = %d sa %x, min %x, max %x\n",
+		 errno, reg.start_addr, reg.min_size, reg.max_size);
+    }
+#endif
+
 #if 0
     /* stack の region は fork から呼ばれる vcpy_stk で実行される */
-    vnew_reg(req->caller,
+    vcre_reg(req->caller, STACK_REGION,
 	     (VP) VADDR_STACK_HEAD, STD_STACK_SIZE, STD_STACK_SIZE,
-	     VM_READ | VM_WRITE | VM_USER, NULL, &rid);	/* stack */
+	     VM_READ | VM_WRITE | VM_USER, NULL);	/* stack */
 #endif
 
 #if 0
@@ -374,8 +386,6 @@
     W vaddr;
     static B buf[PAGE_SIZE];
     UW start, size;
-    ID rid;
-
 
     start = CUTDOWN(text->p_vaddr, PAGE_SIZE);
     size =
@@ -383,8 +393,8 @@
 		(text->p_vaddr - CUTDOWN(text->p_vaddr, PAGE_SIZE)),
 		PAGE_SIZE);
     /* text region の設定 */
-    vnew_reg(task, (VP) start, size, size,
-	     VM_READ | VM_EXEC | VM_USER, NULL, &rid);
+    vcre_reg(task, TEXT_REGION, (VP) start, size, size,
+	     VM_READ | VM_EXEC | VM_USER, NULL);
 
     errno = alloc_memory(procid, start, size, VM_READ | VM_EXEC);
     if (errno) {
@@ -438,7 +448,6 @@
     W vaddr;
     static B buf[PAGE_SIZE];
     UW start, size;
-    ID rid;
 
     start = CUTDOWN(data->p_vaddr, PAGE_SIZE);
     size =
@@ -446,8 +455,8 @@
 		(data->p_vaddr - CUTDOWN(data->p_vaddr, PAGE_SIZE)),
 		PAGE_SIZE);
     /* data+bss region の設定 */
-    vnew_reg(task, (VP) start, size, size,
-	     VM_READ | VM_WRITE | VM_USER, NULL, &rid);	/* data+bss */
+    vcre_reg(task, DATA_REGION, (VP) start, size, size,
+	     VM_READ | VM_WRITE | VM_USER, NULL);	/* data+bss */
     errno = alloc_memory(procid, start, size, VM_READ | VM_WRITE);
     if (errno) {
 #ifdef EXEC_DEBUG
diff -ur eota/kernel/POSIX/manager/fork.c eota-c/kernel/POSIX/manager/fork.c
--- eota/kernel/POSIX/manager/fork.c	Mon Jan 28 17:28:25 2002
+++ eota-c/kernel/POSIX/manager/fork.c	Fri Jun  6 21:36:38 2003
@@ -7,7 +7,7 @@
 
 (C) B-Free Project.
 
-(C) 2001-2002, Tomohide Naniwa
+(C) 2001-2003, Tomohide Naniwa
 
 */
 
@@ -160,11 +160,15 @@
 #endif
 
     /* region のコピー */
-    vdup_reg(source->proc_maintask, 1, destination->proc_maintask);	/* text */
-    vdup_reg(source->proc_maintask, 2, destination->proc_maintask);	/* data+bss */
-    vdup_reg(source->proc_maintask, 3, destination->proc_maintask);	/* heap */
+    /* text */
+    vdup_reg(source->proc_maintask, destination->proc_maintask, TEXT_REGION);
+    /* data+bss */
+    vdup_reg(source->proc_maintask, destination->proc_maintask, DATA_REGION);
+    /* heap */
+    vdup_reg(source->proc_maintask, destination->proc_maintask, HEAP_REGION);
 #ifdef notdef
-    vdup_reg(source->proc_maintask, 4, destination->proc_maintask);	/* stack */
+    /* stack */
+    vdup_reg(source->proc_maintask, destination->proc_maintask, STACK_REGION);
 #endif
 
     /* 仮想空間の生成 */
diff -ur eota/kernel/POSIX/manager/process.c eota-c/kernel/POSIX/manager/process.c
--- eota/kernel/POSIX/manager/process.c	Sun Feb  3 18:06:41 2002
+++ eota-c/kernel/POSIX/manager/process.c	Fri Jun  6 19:25:55 2003
@@ -210,9 +210,15 @@
     procp->proc_ppid = procinfo->proc_ppid;
 
     /* region の生成 */
-    vnew_reg(tskid, 0, 0x7fffffff, 0x7fffffff, procinfo->proc_access, NULL, &rid);	/* text */
-    vnew_reg(tskid, 0, 0x7fffffff, 0x7fffffff, procinfo->proc_access, NULL, &rid);	/* data+bss */
-    vnew_reg(tskid, 0, 0, 0x7fffffff, procinfo->proc_access, NULL, &rid);	/* heap */
+    /* text */
+    vcre_reg(tskid, TEXT_REGION,
+	     0, 0x7fffffff, 0x7fffffff, procinfo->proc_access, NULL);
+    /* data+bss */
+    vcre_reg(tskid, DATA_REGION,
+	     0, 0x7fffffff, 0x7fffffff, procinfo->proc_access, NULL);
+    /* heap */
+    vcre_reg(tskid, HEAP_REGION,
+	     0, 0, 0x7fffffff, procinfo->proc_access, NULL);
 #if 0
     vnew_reg(tskid, 0, PAGE_SIZE, 0x7fffffff, procinfo->proc_access, NULL, &rid);	/* stack */
 #endif
diff -ur eota/kernel/POSIX/manager/syscalls/brk.c eota-c/kernel/POSIX/manager/syscalls/brk.c
--- eota/kernel/POSIX/manager/syscalls/brk.c	Sun Feb 17 13:08:52 2002
+++ eota-c/kernel/POSIX/manager/syscalls/brk.c	Fri Jun  6 21:41:23 2003
@@ -7,7 +7,7 @@
 
 (C) B-Free Project.
 
-(C) 2001, Tomohide Naniwa
+(C) 2001-2003, Tomohide Naniwa
 
 */
 /*
@@ -30,12 +30,17 @@
     if (err)
 	return err;
 
-    err = vsts_reg(req->caller, 3, (VP) & reg);
+    err = vsts_reg(req->caller, HEAP_REGION, (VP) & reg);
 #ifdef DEBUG
-    printk("[PM] err = %d sa %x, min %x, max %x, ea %x\n",
+    dbg_printf("[PM] err = %d id %d, sa %x, min %x, max %x, ea %x\n",
+	       req->caller,
 	   err, reg.start_addr, reg.min_size, reg.max_size,
 	   req->param.par_brk.end_adr);
 #endif
+    if (err) {
+	put_response(req, err, -1, 0, 0);
+	return (FAIL);
+    }
 
     err = EP_OK;
     start = reg.start_addr + reg.min_size;
@@ -63,10 +68,10 @@
 	return (FAIL);
     }
 
-    /* for debug */
 #ifdef DEBUG
-    vsts_reg(req->caller, 3, (VP) & reg);
-    printk("[PM] after brk sa %x, min %x, max %x\n",
+    /* for debug */
+    vsts_reg(req->caller, HEAP_REGION, (VP) & reg);
+    dbg_printf("[PM] after brk sa %x, min %x, max %x\n",
 	   reg.start_addr, reg.min_size, reg.max_size);
 #endif
 
diff -ur eota/kernel/POSIX/manager/syscalls/exit.c eota-c/kernel/POSIX/manager/syscalls/exit.c
--- eota/kernel/POSIX/manager/syscalls/exit.c	Sun Apr  8 13:28:44 2001
+++ eota-c/kernel/POSIX/manager/syscalls/exit.c	Tue Jun  3 21:37:40 2003
@@ -7,7 +7,7 @@
 
 (C) B-Free Project.
 
-(C) 2001, Tomohide Naniwa
+(C) 2001-2003, Tomohide Naniwa
 
 */
 /*
@@ -86,11 +86,11 @@
 
   /* region の開放, 実際には必要無いだろう */
   tskid = req->caller,
-  vdel_reg(tskid, 1); /* text */
-  vdel_reg(tskid, 2); /* data+bss */
-  vdel_reg(tskid, 3); /* heap */
+  vdel_reg(tskid, TEXT_REGION); /* text */
+  vdel_reg(tskid, DATA_REGION); /* data+bss */
+  vdel_reg(tskid, HEAP_REGION); /* heap */
 #ifdef notdef
-  vdel_reg(tskid, 4); /* stack */
+  vdel_reg(tskid, STACK_REGION); /* stack */
 #endif
 
   put_response (req, EP_OK, 0, 0, 0);
diff -ur eota/kernel/POSIX/servers/wconsole/misc.c eota-c/kernel/POSIX/servers/wconsole/misc.c
--- eota/kernel/POSIX/servers/wconsole/misc.c	Sat Apr  5 16:16:49 2003
+++ eota-c/kernel/POSIX/servers/wconsole/misc.c	Tue Apr 29 18:57:44 2003
@@ -117,11 +117,6 @@
   if (video_mode == GRAPHIC_MODE && winid == focus) {
     if (x >= w[winid].column || y >= w[winid].line) return;
 #ifdef notdef
-    draw_istring(w[winid].font_w*x + w[winid].x + 1,
-		 w[winid].font_h*y + w[winid].y + 1,
-		 " ", 0, 8, 0);
-#else
-#if 0
     fillbox_vga(w[winid].font_w*x + w[winid].x + 1,
 		w[winid].font_h*y + w[winid].y + 1,
 		w[winid].font_w, w[winid].font_h, VGA16_DGRAY, VGA_XOR);
@@ -132,7 +127,6 @@
 	     w[winid].font_h*y + w[winid].y + w[winid].font_h + 1,
 	     VGA16_LGRAY, VGA_OVERWRITE);
 #endif
-#endif
     return;
   }
   dis_int ();
@@ -149,11 +143,6 @@
 {
   if (video_mode == GRAPHIC_MODE) {
 #ifdef notdef
-    draw_istring(w[winid].font_w*w[winid].curpos.x + w[winid].x + 1,
-		 w[winid].font_h*w[winid].curpos.y + w[winid].y + 1,
-		 " ", VGA16_BLACK, VGA16_WHITE, 0);
-#else
-#if 0
     fillbox_vga(w[winid].font_w*w[winid].curpos.x + w[winid].x + 1,
 		w[winid].font_h*w[winid].curpos.y + w[winid].y + 1,
 		w[winid].font_w, w[winid].font_h, VGA16_DGRAY, VGA_XOR);
@@ -166,7 +155,6 @@
 	     w[winid].font_h*w[winid].curpos.y + w[winid].y
 	     + w[winid].font_h + 1,
 	     VGA16_WHITE, VGA_OVERWRITE);
-#endif
 #endif
   }
 }
