diff -urN jnethack-3.4.3-0.10/include/config.h jnethack-3.4.3-0.10_hpmon-1.0/include/config.h
--- jnethack-3.4.3-0.10/include/config.h	2011-03-28 01:42:26.000000000 +0900
+++ jnethack-3.4.3-0.10_hpmon-1.0/include/config.h	2011-03-28 01:42:26.000000000 +0900
@@ -359,6 +359,10 @@
 /*# define USE_MAKESINGULAR */	/* Enable singularize */
 #endif
 
+#ifdef TTY_GRAPHICS
+# define HPMON		/* Color HP Monitor */
+#endif
+
 /*
  * Section 5:  EXPERIMENTAL STUFF
  *
diff -urN jnethack-3.4.3-0.10/src/botl.c jnethack-3.4.3-0.10_hpmon-1.0/src/botl.c
--- jnethack-3.4.3-0.10/src/botl.c	2011-03-28 01:42:26.000000000 +0900
+++ jnethack-3.4.3-0.10_hpmon-1.0/src/botl.c	2011-03-28 01:42:26.000000000 +0900
@@ -10,6 +10,11 @@
 */
 
 #include "hack.h"
+#if defined(HPMON) && defined(TEXTCOLOR)
+# ifndef WINTTY_H
+#  include "wintty.h"
+# endif
+#endif
 
 #ifdef OVL0
 extern const char *hu_stat[];	/* defined in eat.c */
@@ -310,6 +315,9 @@
 	char  newbot2[MAXCO];
 	register char *nb;
 	int hp, hpmax;
+#ifdef HPMON
+	int hpcolor, hpattr;
+#endif
 	int cap = near_capacity();
 
 	hp = Upolyd ? u.mh : u.uhp;
@@ -318,6 +326,18 @@
 	if(hp < 0) hp = 0;
 	(void) describe_level(newbot2);
 	Sprintf(nb = eos(newbot2),
+#ifdef HPMON
+/*JP
+		"%c:%-2ld HP:", oc_syms[COIN_CLASS],
+*/
+		"%c:%-2ld ÂÎ:", oc_syms[COIN_CLASS],
+#ifndef GOLDOBJ
+		u.ugold
+#else
+		money_cnt(invent)
+#endif
+		);
+#else /* HPMON */
 /*JP
 		"%c:%-2ld HP:%d(%d) Pw:%d(%d) AC:%-2d", oc_syms[COIN_CLASS],
 */
@@ -328,6 +348,42 @@
 		money_cnt(invent),
 #endif
 		hp, hpmax, u.uen, u.uenmax, u.uac);
+#endif /* HPMON */
+#ifdef HPMON
+	curs(WIN_STATUS, 1, 1);
+	putstr(WIN_STATUS, 0, newbot2);
+
+	Sprintf(nb = eos(newbot2), "%d(%d)", hp, hpmax);
+#ifdef TEXTCOLOR
+	if (iflags.use_color) {
+	  curs(WIN_STATUS, 1, 1);
+	  hpattr = ATR_NONE;
+	  if(hp == hpmax){
+	    hpcolor = NO_COLOR;
+	  } else if(hp > (hpmax*2/3)) {
+	    hpcolor = CLR_GREEN;
+	  } else if(hp <= (hpmax/3)) {
+	    hpcolor = CLR_RED;
+	    if(hp<=(hpmax/10)) 
+	      hpattr = ATR_BLINK;
+	  } else {
+	    hpcolor = CLR_YELLOW;
+	  }
+	  if (hpcolor != NO_COLOR)
+	    term_start_color(hpcolor);
+	  if(hpattr!=ATR_NONE)term_start_attr(hpattr);
+	  putstr(WIN_STATUS, hpattr, newbot2);
+	  if(hpattr!=ATR_NONE)term_end_attr(hpattr);
+	  if (hpcolor != NO_COLOR)
+	    term_end_color();
+	}
+#endif /* TEXTCOLOR */
+/* JP
+	Sprintf(nb = eos(newbot2), " Pw:%d(%d) AC:%-2d",
+*/
+	Sprintf(nb = eos(newbot2), " Ëâ:%d(%d) ³»:%-2d",
+		u.uen, u.uenmax, u.uac);
+#endif /* HPMON */
 
 	if (Upolyd)
 		Sprintf(nb = eos(nb), " HD:%d", mons[u.umonnum].mlevel);
