From: birchall@pilot.njin.net (Shag)
Newsgroups: comp.os.msdos.pcgeos
Subject: GeoComm - what works, what doesn't.
Summary: If I had a social life, I wouldn't torture GEOS all night.
Keywords: good implementations, bad implementations, non-implementations.
Date: 27 Dec 92 05:30:18 GMT
Organization: Screaming in Digital, the Queensryche Digest

My notes on GeoComm's implementation of VT100.

Code 0 - bl. CTRL-G.	Nice standard bell.
Code 1 - le. CTRL-H.	Good old backspace.
Code 2 - ta. CTRL-I.	Tab - no surprise here.
Code 3 - do. CTRL-J.	Cursor down, works nicely.
Code 4 - cr. CTRL-M.	The ever-popular ENTER key.
Code 5 - sf. ESC-M.	Scroll-forward.  This would logically be bound to
			page-down, but doesn't seem to be, although page-down
			scrolls forward _locally_.  ESC-M also doesn't seem
			to scroll forward in VI or Emacs.  It may be
			_generated_ by a half-screen scroll in either of
			those editors.  I haven't checked to see yet, so I
			don't think I'll delete that line. :)
Code 6 - ku. ESC-OA.	Up-arrow.  My cursor keys work quite nicely in VI and
			Emacs.  I can't bind them for tcsh edit-mode, but
			that's not GeoComm's fault.
Code 7 - kd. ESC-OB.	Down-arrow.
Code 8 - kr. ESC-OC.	Right-arrow.
Code 9 - kl. ESC-OD.	Left-arrow.
Code 10- k0. ESC-OP.	F1.  Does not do anything.
Code 11- k1. ESC-OQ.	F2.  Back to the welcome screen.  So much for F-keys!
Code 12- k2. ESC-OR.	F3.  I'm not _stupid_ enough to hit this!
Code 13- k3. ESC-OS.	F4.  See F1.  What was the programmer thinking? :)
Code 14- cl. Lengthy.	Perfectly implemented VT-100 clear.
Code 15- ks. Lengthy.	Num on.  This does not affect the _local_ numlock.
Code 16- ke. Lengthy.	Num off.  I suspect ks/ke means keypad start/end.
			Since PC's don't have VT-style keypads, this seems
			very silly to implement in a PC-based OS.  For some
			reason, VI triggers ks and ke when it starts and ends,
			so deleting 15 and 16 would result in stray control
			characters being printed to the screen, I suppose.
Code 17- up. ESC-[A.	Cursor up.  Not to be confused with up-arrow.  When
			I _send_ a ku (up-arrow) to VI, it _responds_ with an
			up (cursor-up), actually moving the cursor.
Code 18- nd. ESC-[C.	Cursor right.  I don't know what the "nd" stands for.
Code 19- ho. ESC-[H.	Cursor home.  Works nicely.
Code 20- cd. ESC-[J.	Clear to end of screen.  Works fine.  What confuses
			me is that sending a ho (cursor home) followed by a
			cd (clear to end of screen) would _seem_ to require
			less characters than a cl (clear/home).  But if that
			is the way DEC wants it to be, that's what GeoComm
			has to emulate, I guess.
Code 21- ce. ESC-[K.	Clear to end of line.  Does what it says.
Code 22- me. ESC-[m.	Normal mode (no graphics, bold, reverse, or blink)
Code 23- sc. ESC-7.	Save location of cursor.  Nifty little feature.
Code 24- rc. ESC-8.	Restore cursor to saved location.  Fun.
Code 25- cs. Lengthy.	Change scroll region.  GeoCrash Roulette.
Code 26- cm. Lengthy.	Move cursor to coordinates.  Works perfectly.
Code 27- md. ESC-1;1m.	Bright.  GeoComm doesn't _do_ bright/bold.  Feh. :(
Code 28- us. ESC-1;4m.  Underscore.  Not defined in stock VT100.TC, but it
			works anyway.  I put it into my copy of the file, and
			it didn't _stop_ working, but I want to know why it
			worked without being told to!
Code 29- mb. ESC-1;5m.	Blink.  GeoComm doesn't _do_ blinking.  Feh^2. :(
Code 30- mr. ESC-1;7m.	Reverse text.  Works just fine.  If anyone's wondering
			why code 30 is at the _end_ of the stock VT100.TC file
			I have no clue - I moved it up to its logical position
			and it worked just fine there.  Oh well. :)
Code 31- al. ESC-[L.	Insert line.  Works just fine.
Code 32- bt. Undefined.	Back Tab - VT100's dont seem to have this function. ;)
Code 33- dl. ESC-[M.	Delete line.  Works just fine.
Code 34- dc. ESC-[P.	Delete character.  Works, but it would be much nicer
			if we had a key to correspond to it... ;)
Code 35- ic. Undefined. Insert Character - VT100's don't have this function,
			instead they apparently toggle insert mode on and off.
Code 36- ts. Undefined. Go to status line, or mode... This is something that
			a VT100 doesn't seem to do, and since most emulators
			don't even have status lines, they definitely don't.
Code 37- im. ESC-[4h.	Insert mode.  Works like you'd expect it to, and seems
			to be on most of the time.
Code 38- ei. ESC-[4l.	Leave Insert mode.  Neat if you want to overwrite,
			but not frequently called.
Code 39- sr. ESC-D.	Scroll reverse.  This would be page-up, except, well,
			see the bit about page-down, way up top. :)
Code 40- is. Lengthy.	Terminal initialize string.  GeoComm doesn't have one
			defined, and the VT100 initialization string is long
			and hard to generate, so don't worry about it. :)
Code 41- rs. Lengthy.	Reset to "sane" settings.  Even more lengthy than the
			init string - apparently sanity takes more characters
			to achieve.  This one is also left undefined in 
			GeoComm (implying that either the software, the
			programmer, or the users are, of course, not sane).
Code 42- ac. Lengthy.	Graphics on.  All the people who know why this command
			is implemented are kept under armed guard.  I have not
			been able to find any way to trigger it, and the few
			times my terminal _has_ gone into graphics mode have
			been rather unpleasant.  VT100 graphics suck, anyway.
Code 43- cv. Lengthy.	Set row.  This is a subset of code 26, cm.  Like code
			26, it works.
Code 44- ch. Lengthy.	Set column.  Another functional subset of code 26.
Code 45- ue. ESC-[m.	Underscore off.  Same code as "normal mode."  Left
			undefined in VT100.TC, since it'd be redundant.
Code 46- se. ESC-[m.	Reverse(?) off.  Redundant, left undefined.
Code 47- st. ESC-H.	Set Tab.  Not defined in VT100.TC, and I haven't
			tried implementing it yet, since I like my tabs.
Code 48- ct. ESC-[3g.	Clear Tab.  Ditto.
Code 49- vb. ESC-vb.	Visual Bell.  It works, flashing the entire 80x24
			display.  Look, mommy, my computer's having an orgasm!
Code 50- DO. Lengthy.	Cursor down many.  Works fine.
Code 51- LE. Lengthy.	Cursor left many.  Works fine.
Code 52- RI. Lengthy.	Cursor right many.
Code 53- UP. Lengthy.	Cursor up many.
Code 54- pb. ESC-splat.	Paintball.  Not supported by VT100, left undefined in
			GeoComm.  Sends terminal out to play with John and
			fellow GeoWorkers.

Summary:

- Putting \E[1;1m in for code 27 won't cause a crash, but since GeoComm does
	not do bold/bright, you'll just get plain text.
- Putting \E[1;4m in for code 28 won't cause a crash, but GeoComm already
	does underlining correctly _without_ the code being defined in the
	.tc file, which confuses me.  I put it in just to be on the safe side.
- Putting \E[1;5m in for code 29 won't cause a crash, but since GeoComm does
	not do blink, you'll just get plain text.
- Putting \E[m in for codes 45 and 46 probably won't cause a crash, but since
	GeoComm already recognizes it as meaning "normal mode," there's no
	need for them, and they would be redundant.

- If you read this far, I'm not the only one in need of a social life.

Shag


-- 
Shag                    | Operator, ShagNET | Editor of "Screaming in Digital" 
birchall@pilot.njin.net |  Rutgers / NJIN   |  The Queensryche E-mail Digest 
birchall@njin.bitnet    | dialup access for | queensryche-owner@pilot.njin.net
shag@most.other.places  | Burlington County | Anything Queensryche, every week