CVS commit: [netbsd-9] src/sys/arch/atari/dev

2022-09-11 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Sep 11 18:10:23 UTC 2022

Modified Files:
src/sys/arch/atari/dev [netbsd-9]: ite.c ite_cc.c ite_et.c itevar.h

Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #1518):

sys/arch/atari/dev/ite.c: revision 1.82
sys/arch/atari/dev/ite_cc.c: revision 1.45
sys/arch/atari/dev/ite_et.c: revision 1.36
sys/arch/atari/dev/itevar.h: revision 1.15

Add a minimum DEC special graphics character support for atari ite(4).

This closes PR port-atari/46647 (Menu borders in sysinst appear as
characters with diacritical marks instead of graphics characters).

Switching encoding support by "ESC ( " sequence for vt220 was
pulled from x68k ite(4) (that already supports ISO-2022-JP and EUC-JP).

Note atari's fonts already include DEC special graphics characters.
ET4000 on Hades is untested due to long-term lack of hardware.

Discussed on port-atari@ etc.


To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.79.2.1 src/sys/arch/atari/dev/ite.c
cvs rdiff -u -r1.40 -r1.40.2.1 src/sys/arch/atari/dev/ite_cc.c
cvs rdiff -u -r1.31 -r1.31.2.1 src/sys/arch/atari/dev/ite_et.c
cvs rdiff -u -r1.14 -r1.14.58.1 src/sys/arch/atari/dev/itevar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: [netbsd-9] src/sys/arch/atari/dev

2022-09-11 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Sep 11 18:10:23 UTC 2022

Modified Files:
src/sys/arch/atari/dev [netbsd-9]: ite.c ite_cc.c ite_et.c itevar.h

Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #1518):

sys/arch/atari/dev/ite.c: revision 1.82
sys/arch/atari/dev/ite_cc.c: revision 1.45
sys/arch/atari/dev/ite_et.c: revision 1.36
sys/arch/atari/dev/itevar.h: revision 1.15

Add a minimum DEC special graphics character support for atari ite(4).

This closes PR port-atari/46647 (Menu borders in sysinst appear as
characters with diacritical marks instead of graphics characters).

Switching encoding support by "ESC ( " sequence for vt220 was
pulled from x68k ite(4) (that already supports ISO-2022-JP and EUC-JP).

Note atari's fonts already include DEC special graphics characters.
ET4000 on Hades is untested due to long-term lack of hardware.

Discussed on port-atari@ etc.


To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.79.2.1 src/sys/arch/atari/dev/ite.c
cvs rdiff -u -r1.40 -r1.40.2.1 src/sys/arch/atari/dev/ite_cc.c
cvs rdiff -u -r1.31 -r1.31.2.1 src/sys/arch/atari/dev/ite_et.c
cvs rdiff -u -r1.14 -r1.14.58.1 src/sys/arch/atari/dev/itevar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/atari/dev/ite.c
diff -u src/sys/arch/atari/dev/ite.c:1.79 src/sys/arch/atari/dev/ite.c:1.79.2.1
--- src/sys/arch/atari/dev/ite.c:1.79	Sat Jun 29 16:41:19 2019
+++ src/sys/arch/atari/dev/ite.c	Sun Sep 11 18:10:23 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: ite.c,v 1.79 2019/06/29 16:41:19 tsutsui Exp $	*/
+/*	$NetBSD: ite.c,v 1.79.2.1 2022/09/11 18:10:23 martin Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -44,7 +44,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ite.c,v 1.79 2019/06/29 16:41:19 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ite.c,v 1.79.2.1 2022/09/11 18:10:23 martin Exp $");
 
 #include "opt_ddb.h"
 
@@ -736,6 +736,12 @@ ite_reset(struct ite_softc *sc)
 	sc->keypad_appmode = 0;
 	sc->imode = 0;
 	sc->key_repeat = 1;
+	sc->G0 = CSET_ASCII;
+	sc->G1 = CSET_DECGRAPH;
+	sc->G2 = 0;
+	sc->G3 = 0;
+	sc->GL = &sc->G0;
+	sc->GR = &sc->G1;
 	memset(sc->tabs, 0, sc->cols);
 	for (i = 0; i < sc->cols; i++)
 		sc->tabs[i] = ((i & 7) == 0);
@@ -1247,6 +1253,14 @@ ite_lf (struct ite_softc *sc)
 }
   SUBR_CURSOR(sc, MOVE_CURSOR);
   clr_attr(sc, ATTR_INV);
+
+  /* reset character set */
+  sc->G0 = CSET_ASCII;
+  sc->G1 = CSET_DECGRAPH;
+  sc->G2 = 0;
+  sc->G3 = 0;
+  sc->GL = &sc->G0;
+  sc->GR = &sc->G1;
 }
 
 static inline void
@@ -1446,7 +1460,7 @@ iteputchar(register int c, struct ite_so
 		  case 'B':	/* ASCII */
 		  case 'A':	/* ISO latin 1 */
 		  case '<':	/* user preferred suplemental */
-		  case '0':	/* dec special graphics */
+		  case '0':	/* DEC special graphics */
 		  
 		  /* 96-character sets: */
 		  case '-':	/* G1 */
@@ -1471,27 +1485,32 @@ iteputchar(register int c, struct ite_so
 		  
 		  /* locking shift modes (as you might guess, not yet supported..) */
 		  case '`':
-		sc->GR = sc->G1;
+		sc->GR = &sc->G1;
 		sc->escape = 0;
 		return;
 		
 		  case 'n':
-		sc->GL = sc->G2;
+		sc->GL = &sc->G2;
 		sc->escape = 0;
 		return;
 		
 		  case '}':
-		sc->GR = sc->G2;
+		sc->GR = &sc->G2;
 		sc->escape = 0;
 		return;
 		
 		  case 'o':
-		sc->GL = sc->G3;
+		sc->GL = &sc->G3;
 		sc->escape = 0;
 		return;
 		
 		  case '|':
-		sc->GR = sc->G3;
+		sc->GR = &sc->G3;
+		sc->escape = 0;
+		return;
+
+		  case '~':
+		sc->GR = &sc->G1;
 		sc->escape = 0;
 		return;
 		
@@ -1511,16 +1530,30 @@ iteputchar(register int c, struct ite_so
 
 
 		  case '7':
+		/* save cursor */
 		sc->save_curx = sc->curx;
 		sc->save_cury = sc->cury;
 		sc->save_attribute = sc->attribute;
+		sc->sc_G0 = sc->G0;
+		sc->sc_G1 = sc->G1;
+		sc->sc_G2 = sc->G2;
+		sc->sc_G3 = sc->G3;
+		sc->sc_GL = sc->GL;
+		sc->sc_GR = sc->GR;
 		sc->escape = 0;
 		return;
 		
 		  case '8':
+		/* restore cursor */
 		sc->curx = sc->save_curx;
 		sc->cury = sc->save_cury;
 		sc->attribute = sc->save_attribute;
+		sc->G0 = sc->sc_G0;
+		sc->G1 = sc->sc_G1;
+		sc->G2 = sc->sc_G2;
+		sc->G3 = sc->sc_G3;
+		sc->GL = sc->sc_GL;
+		sc->GR = sc->sc_GR;
 		SUBR_CURSOR(sc, MOVE_CURSOR);
 		sc->escape = 0;
 		return;
@@ -1551,8 +1584,22 @@ iteputchar(register int c, struct ite_so
 		break;
 
 
-	  case '(':
-	  case ')':
+	  case '(': /* designated G0 */
+		switch (c) {
+		case 'B': /* US-ASCII */
+		  sc->G0 = CSET_ASCII;
+		  sc->escape = 0;
+		  return;
+		case '0': /* DEC special graphics */
+		  sc->G0 = CSET_DECGRAPH;
+		  sc->escape = 0;
+		  return;
+		default:
+		  /* not supported */
+		  sc->escape = 0;
+