Rascall

This article is under construction and needs to be completed. You can help by expanding it.

rascall.gif

Filename

Rascall

Summary

TI-86 assembly shell

Authors

Matthew Shepcar

Site URL

http://icarus.ticalc.org

Ticalc.org URL

http://www.ticalc.org/archives/files/fileinfo/21/2147.html

Release Date

Sometime 1997

Compatibility

TI-86

Language

Assembly

Rascall is an assembly shell programmed by Matthew Shepcar for the TI-86 calculator. Along with Aurora Shell Enhanced (ASE) by Bill Nagel, the shell is notable for providing built-in emulation support to allow you to run TI-85 programs for ZShell, Rigel, PhatOS, and Usgard in the .85S format, as well as the standard TI-86 assembly and TI-Basic programs. The shell has many additional features including custom file descriptions, program grouping, group renaming, hidden programs, emergency exiting, external variable support, password protection, and memory locking.

Significance of Product

  • Why product was important to TI community
  • Any controversy or interesting circumstances surrounding product
  • Awards won, fond memories that people have

Documentation

(Taken from the readme file)

R A S C A L L
v0.9

(C) Matthew Shepcar

What is Rascall?

Rascall is an assembly shell for the TI-86 calculator that will allow you
to run programs for ZShell 4.0, Rigel, PhatOS and Usgard in the .85S
format. Standard TI-86 ASM and Basic programs are also listed in the
shell. File descriptions for programs are supported and much work has
gone into getting the shell to execute as many TI-85 programs as possible.

New for Version 0.9

* A far superior interface to v0.2 allowing you not only to see 18 programs
at once the screen, but also to group your programs into four different
categories!
NB: You may have noticed that ASE also includes this feature and the
idea behind grouping programs was in fact mine originally.

* Usgard 1.1+ support including interrupts and VAT functions. That means
you can play Balloon and other cool Usgard games! Programs for Usgard
versions less than 1.0 are not supported.

* There is also limited Rigel support. No relocation or library support
though. Most Rigel programs are available in Usgard, PhatOS or ZShell
format anyway.

* Improved ZShell/PhatOS emulation.

* Password your calculator so that nobody can turn it on without knowing
the password.

* Memory locking. By intercepting the key presses in the reset and delete
menus, Rascall prevents your memory from being wiped! A fake reset
screen is shown when you try to reset your calculator in locked mode but
nothing will be cleared!!

Getting started with Rascall

Having sent the file RASCALL.86G to your TI-86 you can start Rascall
by simply running the program "Rascall" from the home screen. You
should NOT start it with the command Asm(rascall) however, since the
shell will then fail to execute BASIC programs!

All your programs will automatically be entered into the games menu.
To select a program, use the arrow keys to move the highlight bar.
Press ENTER or 2ND to run the highlighted program.

If you have more than 18 programs in a group then you will see two
numbers after the name in the title bar. The first is the current
page and the second is the number of pages of programs in the group.
Press the MORE key to go to the next page.

The Status Bar

The status bar shows the currently selected program's name or description
(if it has one) and a letter indicating what type of program it is:

A - TI-86 Machine code
B - TI-86 BASIC
P - TI-85 PhatOS program
R - TI-85 Rigel program
U - TI-85 Usgard program
Z - TI-85 ZShell program

Grouping Programs

To move a program out of the games menu into another group, simply select
the program you wish to move and press STO->. You will be asked where
you wish to move the program to. Pressing a key F1-F4 will move the
program into one of the four available groups. Pressing F5 will HIDE
the program. To view the contents of another program group simply
press a key F1-F4. F5 will show you the version of Rascall you are
running and how much free memory you have. Pressing ENTER on this
screen will show a summary of the keys.

Note: Rascall uses a very simple method of storing groups which I
thought of when I saw that each VAT entry contains an apparently
unused byte. That's where the group numbers are stored. It seems
to work okay anyway. :)

Renaming Groups

You can rename the program groups if you do not like the default names.
To do this, select the group you wish to rename and then press the
CUSTOM key. Now enter the name you wish to appear in the tab at the
bottom of the screen and press ENTER. It can be no longer than 7
characters.

Hidden Programs

You can hide a program by moving it to the 'About' tab or by selecting
it and pressing DEL. To unhide a program select the 'About' tab
and press MORE. A program group titled 'Hidden Programs' will appear
which operates in the same way as the four standard program groups. To
unhide a program simply select a program and press STO-> as usual. The
purpose of hiding programs is simply to reduce clutter on the other menus
by removing any unused programs which you do not wish to permenantly
delete.

Emergency Exit!

A feature has been included to allow you to abort a TI-85 ASM program
should it enter an endless loop for any reason. This is achieved by
pressing the ON key. It will not always work because unfortunately
some programs completely crash the calculator. This feature makes use
of the TI-86's in-built support for interrupts and any TSR interrupts
you may have installed will be overwritten.

TI-85 External Variables

Rascall now allows TI-85 programs to access external variables by
copying them into an area of memory accessible to TI-85 programs. You
can have up to about 8k of external variables loaded into this space
at once. To select which variables you want to be made available
to TI-85 programs hit X-VAR in Rascall. From the menu which will
appear, you can select and deselect strings to be copied using the
2ND or ENTER key. Selected items are indicated with a dot before
their name.

If you select more than 8k of data to be copied then you will not
see a warning or error message in this version but some of the data
will not be copied into the TI-85 address space!

Variables are NOT copied back to the TI-86's variable storage area
if they are modified by a TI-85 program.

If you have installed the finance or stats applets then TI-85 programs
will not be able to access external variables since the applets use
the memory area required to build the TI-85 variable allocation table.

Password Protection

To prevent other people from using your calculator you can password
protect it. Press P (,) to set the password. Your password can
be a sequence of up to ten key presses ending with ENTER. To
activate the password simply turn your calculator off by pressing the
ALPHA key. Now when somebody next comes to turn it on they will be
prompted for a password before they can use it. To change your
password press the P key again, enter your old password and then
enter a new one. To disable the password press ENTER at the new
password prompt. In case you mistype your password you are asked to
confirm it before it is activated.

Memory Lock

Rascall can lock your memory by preventing variables from being deleted
or your calculator being reset. To lock the memory press L (7) from
the shell. If you have a password enabled you will be prompted for it
before the status of the lock is toggled.

When locked, resetting your calculator will not erase the contents of
the memory but it will still display the "Mem cleared, Defaults Set"
message on the screen.

NB: When the memory lock is enabled a # symbol appears in the status
bar on the about screen.

Key Summary

Arrows Move selection bar
ENTER/2nd Run program (or toggle in Virt-85 editor)
MORE Next page
STO-> Move program to another group
DEL Hide program
F1-F5 Select group
CUSTOM Rename group
F5,MORE Show hidden programs
X-VAR Enter Virt-85 screen to select vars copied into 85 RAM
L Lock/Unlock memory
P Change password
C Toggle initial capitals
ALPHA Power calculator off
+/- Adjust the contrast setting.
EXIT Return to home screen

Plans

Rigel libraries and relocation are not implemented. I might fix this
sometime if anybody wants me to.

I will probably release a 'lite' version of Rascall without things like
TI-85 VAT emulation and perhaps even a version with no TI-85 support
at all.

I have plans for a loader for TI-86 ASM programs to overcome some of
the problems with the built in support. Support for larger program
sizes, multiple TSR's, interrupts and access to data stored in external
variables will be made more accessible to ASM programmers. I also hope
to implement some form of code sharing system to allow common routines
for sprites and scrolling (for instance) to be shared. I am working
on an LZH compression system at the moment which will be used in the
loader to compress all ASM code and data on the calculator allowing you
to fit even more games/levels in the 96k available.

Known problems

Rascall cannot handle TI-85 programs larger than about 12k. You will
see a message in the status bar when you select a program which is
too large. You may also come across some TI-86 programs which Rascall
reports are too large to run. This is likely to occur if you have
loaded the stats or finance applets into memory which zap some of the
space used for running ASM programs. Rascall will only run programs
which fit into available memory. This does not provide complete
protection of overwriting the applets though, since some programs use
additional workspace in ASM execution RAM…

The majority of ZShell 4.0, PhatOS, Rigel and Usgard programs
should work perfectly in Rascall but some may crash your calculator. I
cannot and will not take responsibility for any loss of data or damage to
your calculator in these cases. It is an unfortunate fact that some
TI-85 programs are incompatible with the emulator and WILL cause your
calculator to crash. Please report any such programs and I'll do my
best to sort the problem out!

Some programs which don't work properly..

Balloon doesn't seem to work if you load more than one set of levels
into the TI-85 VAT at once…

Usgard Galaxian 2.01 previously had a bug causing it to crash and pour
trash over the screen. I am not entirely satisfied with how this has
been fixed. Let me know if it causes you any grief.

I'm sure there are quite a few others which don't work so drop me a
note and I'll add them here or, better still, try and make them work. :)

Recovering from a crash

If your calculator crashes, you should remove the batteries and press
the ON button five times, replace the batteries and turn the calculator
back on. You may need to adjust the contrast after doing this. All
data will have been lost!

Bug Reports please please please please please! :)

If you run a program that crashes or functions abnormally, please contact
me so that I can correct the problem for future versions of Rascall.
In fact, why not write me an email anyway to tell me what you think of
Rascall and what you think would make it better? It would be greatly
appreciated! :)

Special Thanks

Randy Gluvna - for starting the original ZShell emulator project from
which Rascall has evolved
Bill Nagel - for the method of running BASIC programs used in Rascall
My loyal beta testers - for reporting bugs and providing suggestions

- SCaBBy
Matthew Shepcar (ku.oc.9ecrof.racpehs|m#ku.oc.9ecrof.racpehs|m)

Development History

  • A chronological overview of the product's development

Miscellaneous

Related Products

  • List of related products