[Date Prev][Date Next][Subject Prev][Subject Next][
Date Index][
Subject Index]
Tame shell to DOS fix
- Subject: Tame shell to DOS fix
- From: Harry Binswanger hb@xxxxxxxx
- Date: Sat, 01 Oct 2016 12:38:40 -0400
Does anyone out there using Tame have a problem with the screen not
refreshing properly after returning from shelling out to DOS? It's probably
only me, but I have this fix, in case anyone can use it.
This goes in one of the many, scattered Tame setting files. For me, it goes
in XyWrite.App.Tam, apparently in either of the two places it appears on my
system: in Editor's directory and/or in Program Files/Tame 6.0
/Conwatch
Str="^"
Row=0
Col=101
OnShow=(SendInput MenuExecute="D L")
That's a Tame macro that puts the carat character in an out-out-of-the-way
spot (here, on the CMline in column 101 (0-relative). If you are using an
80-column screen, that would be: Col=79.
Then in any program that shells to DOS, I have the program call this U2
frame, which puts the carat there, waits a bit, then erases it (if you
don't erase it, it will repeat the re-load of all settings every
half-second or so, for as long as the carat is in that position):
XPLeNCODE v2.0 (ENCODE.EXE)
b-gin [UNTITLED]
{123}{123}5hbdos{125}{125} Sept. 30, 2016--now that I have the
Tame macro working with ^ cmline header, at column 101, I'm g
oing to take all dos handling into here[cr|lf]{002}[GH_][LB_]{<}
SX111,{<}VA$P.{>}{>}{<}SX111,{<}VA|111{>}{>};*;[cr|lf]{<}SX112
,101-{<}PV111{>}{>}{<}CUa,112{>}[CR_]{<}LBa{>}^[DO_][FF_][BX_]
p [Q2_][RC_]{002} [cr|lf]
-nd
XPLeNCODE
Again, you need to adjust the code to put in the right number of
CursorRights (function CR) added in for your screen width. I
used the "permanent" memory s/g's 111 and 112 only because I don't want to
interfere with any s/g's that are in my XPL programs. Feel free to change
the s/g numbers.
So, in pseudo-code, a call to DOS would be handled this way:
BX dos/nv/x/z /c cmd /c foo.exeQ2
JM 2.hbdosQ2
If you have more than one shelling to DOS in an XPL program, you need the
JM 2.hbdosQ2 only after the last one, unless you want to see the screen
fixed on intermediate stages.
--Harry