Re: LZ: my 2 1/2 cents on CShell


[Prev][Next][Index][Thread]

Re: LZ: my 2 1/2 cents on CShell



Michael Wyman wrote:
> 
> On Mon, 26 May 1997, Micah/Richard Brodsky wrote:
> 
> > My 2 1/2 cents on CShell, though i'd say it deserves a few dollars;)
> > 1) It's cool! A shell that's smaller that ZShell, yet has menu APD and
> > contrast change!
> 
> Well, that's what people seemed to want when I asked back in early April...
Ah yes... APD.  CShell-NT 3.0 has an internal routine that will help you
all manage this feature (in ANY prog!!!), if you opt to use it.  :)

> > 2) Amazingly, it works with ZD-Bug and GWIZ's extended-ZShell string interrupt
> > handlers,
> 
> Because it is shorter, there is no risk that it will interfere with the
> vector table or handler... The next big version (with Password stuff,
> etc.) will be larger, and will have problems... Don't worry though... I
> plan to keep a smaller version (basically just the version Keith and I
> are just finishing up...).
Ummm... I don't know too much 'bout GWIZ or ZD-bug, etc.

> > 3) It seems to me that CShell does not reset the X and Y coords of the text
> > cursor, making a few programs a little unhappy, such as Speed Timer
> 
> This has been mentioned before, and I'll make sure it's fixed in the next
> release (if Keith hasn't seen to it already... ;)
Consider it done.  ;)

> > 4) Although I may be wrong, the menu seems a bit slower in displaying that
> > ZShell's
> 
> Possibly... I think Keith has fixed this.
Yes.  I made several of the routines in CShell (some of which were taken
from ZShell) MUCH more efficient.  I mean size and speed.  Actually, I
_could_ knock off 17 more bytes, but really I can't, as it would render
current progs incompatible with CShell.  Here's why:
ZShell has, at the beginning of it's code, a jump table.  This table
handles all your CALL_()s and JUMP_()s and ROM_CALL()s.  As many of you
know, a jp uses 3 bytes; a jr uses only 2.  The ZShell team put the
ROM_CALL routine at the end of their code (when it SHOULD have been at
the beginning) and thus had to use jumps.  IF the ROM_CALL routine had
been placed at the BEGINNING of the code (where it is in CShell), they
COULD have used jump relatives, therefore making ZShell (and CShell)
faster AND somewhat smaller.
Just some food for thought.  ;)

> > 5) A pixel on the right side of the screen is never reset when CShell exits,
> > giving it a slightly unprofessional look
> 
> Do you have _ANY_ idea _how_ many people have mentioned this??!
I fixed that!  :)

> > 2) After being crashed back to, CShell does not reset the screen when exiting
> >       A) The crash-back command is: JP $8BFC
Ummm... the reason it crashes is because CShell's code doesn't actually
start until... um... lemme check... $8CA4.  If you're doing a jp $8BFC,
well, you're executing text and info bytes and possibly even routines
you shouldn't be.  Of course it will crash.  ;)  Actually, even $8CA4 is
just initialization stuff used by CShell ONLY on startup.

> Well, I didn't exactly have interrupt programs in mind when I put the
> source together... ;|
Neither do I.

Cheers,
-- 
~Keith
TSK3000@Prodigy.Net
----
The Official TI-85 Controlled Light Flasher homepage:
http://pages.prodigy.net/tsk3000/TI85LF.html
http://www.geocities.com/SiliconValley/Lakes/9403/TI85LF.html


References: