Re: A83: Menus & ZMENULIB
[Prev][Next][Index][Thread]
Re: A83: Menus & ZMENULIB
Ok, I'll ul it to ticalc. Look for MenuLib83.zip.
Linus
On 05-Oct-98, Alan C Johnson wrote:
>I can't read attatchments. How can I get these progs?
>>Hello.
>>
>>The menus play a big role in the TI-83 operating system. Some would
>>say it is
>>the very core of the user interface. So how come we can't use it from
>>asm?
>>
>>The answer is simple; the menu routines accept 1 byte that specifies
>>which
>>menu to put up. All menu-related rom calls read this 1-byte menu code,
>>and
>>look up the rest in tables found in ROM. All menu-related rom calls
>>check
>>this byte to see whether they should display the reset warning
>>message,
>>whether they should build a program list etc. And all menu-related rom
>>calls
>>refer to these hardcoded ROM tables and cannot be fed with pointers
>>into ram.
>>
>>The BASIC menus? Well, it's indeed complicated. You have to create
>>several
>>temporary string variables, push them onto the fpstack, push the names
>>of the
>>BASIC labels to jump to, all with proper memory checking and error
>>handling.
>>And then you still get the ugly every-other-dot run inicator turned on
>>all
>>the time. And then it doesn't work either. =)
>>
>>There is only one solution to this (which Pat has actually told us).
>>To write
>>your own menu routines. And I've done that.
>>
>>ZMENULIB is a 395 bytes big file, containing ready-to-use menu code.
>>It is
>>NOT a sos library. Instead, you have to look the program up, and jump
>>to the
>>beginning of it. This way, it can be used by shell-independent
>>programs (AND
>>sos programs of course).
>>
>>Please have a look at the attached files; try running menutest.83p
>>(Send9),
>>and then look at its source code. There is also a brief description in
>>the
>>readme file.
>>
>>Enjoy.
>>
>>Linus
>>
>___________________________________________________________________
>You don't need to buy Internet access to use free Internet e-mail.
>Get completely free e-mail from Juno at http://www.juno.com
>Or call Juno at (800) 654-JUNO [654-5866]
References: