Z80 calculator unification (Include files and suchlike).

One suite to code them all. An complete IDE and assembler for all your z80 projects!

Moderators: benryves, kv83

Post Reply
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Z80 calculator unification (Include files and suchlike).

Post by benryves »

Prompted by Timendus, this is something that needs to be addressed.

Bear in mind that I haven't done any TI development beyond the 83/83+ series.

For starters, I'd need to know which common TIOS include files people use. Even the official ti83asm.inc I have lacks common ROM call addresses - ideally, I'd like a complete set to work from.

On top of that, there would be definitions that map similar (but different) names that mean the same thing to eachother, as well as common alternatives (plotSScreen to gbuf).

...and then there's the shell issue. I'll need to know the common shells and which include files they use. My current template adds TI-83 Venus support, for example, but I'm not sure about the 82 shells.

With respect to running in PTI, I hope to streamline things in the future by having a set of ROMs/state files for each shell (all preinstalled and ready to go), which would greatly speed up running your program. However, this wouldn't help for the 85/86/73, so for the moment I'd like to concentrate on the 82.

So, can anyone help, with respect to full include files, or shell include files?
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

For Ti-83, I have compiled my programs for:
- Ashell
- Venus
- TI Explorer
- Ion
- Native ("Send(9")
- ZASMLOAD (Runs squished programs like Ti-83+ Asm() does)

All shells use the same includes, only different headers, which you can find in their zip folders.
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Surely Ion has Ion libs, Venus has Venus libs, Native has no libs (and so on?)

(dwedit.inc will probably help an awful lot with this, I've not used it an awful lot myself though so am unfamiliar with it).
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

To my knowledge:
- Ashell has no libs
- Venus, don't know, probably the same as Ion
- TI Explorer can run Ashell/Ion programs I think, but with the native headers you can link data files to readers or something like that, you probably don't want that
- Native and ZASMLOAD have no libs

You'll probably want to compile for Ion, Venus, native squished (ZASMLOAD) and unsquished, and Ashell. Oh, and I forgot SOS. Ti-82 has Ash and Crash as mainstream shells.

Okay, I'm doing a bit more research for you :)

ASHELL

http://www.ticalc.org/archives/files/fi ... 7/714.html
Ashell manual wrote: Since there is no way to tell the difference between a squished asm
program and basic program, a table is placed at the beginning of
AShell-compatable asm programs:

nop ;these 2 lines identify the program
jr prog_start ;as AShell-compatable
.dw $0000 ;Version of table
.dw Description ;Points to the program description
.dw Icon ;Points to an 8x8 icon
.dw $0000 ;For future use ( *Libraries*? :)
prog_start:

The following are placed anywhere in the program:

Description:
.db "Super Game 1.0 by Me",0
Icon:
.db %11111111 ;this example icon is a box
.db %10000001 ;icons are not displayed by AShell
.db %10000001 ;but the next version of Aurora will support
.db %10000001 ;this format for icons
.db %10000001
.db %10000001
.db %10000001
.db %11111111

ATTENTION PROGRAMMERS!
BE SURE NOT TO USE THIS AREA OF MEMORY IN YOUR ASM PROGRAMS:
CMDSHADOW EQU 9157h
IT COULD EASILY CAUSE THE CALCULATOR TO CRASH!

NOTE **ASHELL COMPATABLE PROGS MUST BE SQUISHED**
Furthermore, Ashell uses program writeback, unlike native. No libraries.

TI Explorer

http://www.ticalc.org/archives/files/fi ... /8811.html

Can run Ion, Ashell and SOS programs, so you don't need to take it into account.

SOS

http://www.ticalc.org/archives/files/fi ... /8781.html

Runs Ashell programs, uses program writeback, allows external modules and libraries. How this is to be done is not entirely clear to me, and no header is supplied in the readme.

Venus

http://www.ticalc.org/archives/files/fi ... 17170.html

vRandom and vFastCopy library routines, has good documentation on the header in devinfo.html in the zip file, but doesn't state anything on program writeback.

Ion

http://www.ticalc.org/archives/files/fi ... 26097.html

Guess you already know all about this one :)

Others

The others are mostly redos of Ashell or Ion, with more fancy GUIs and stuff that no-one needs. Like Anova, Doors CS, Ginius, Ice, Inidium, Zes, et cetera... I have tested them all, and apart from the mainstream shells (in order of appearance: Ashell, SOS and Ion), only TI Explorer and Venus really add something.
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS
pacHa
Sir Posts-A-Lot
Posts: 190
Joined: Sun 09 Jan, 2005 9:51 am
Contact:

Post by pacHa »

For the TI-82, the major shells are -imo- ACE, SNG and CrASH.
Actually SNG can replace them all since it has emulators for ACE and CrASH, but it's not widely spread. Moreover, CrASH does not run on 19.006 ROMs, CrASH19006 does, but is binary incompatible, it means 2 binaries must be generated (some rom call's addresses have changed, and are not handeld by CrASH's ROM_CALL routine).

In the 82 asm 'tradition' (coming from the 85 iirc), the rom calls name differ much from the 83/+ ones, and ressemble things like D_ZM_STR, HL_DECI, etc. This is only an equates-related issue though, but those names *should* be included for compatibility.
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Thanks a lot Timendus! :)

Indeed, ideally I'd like to have every equate defined (so an 82 programmer could use their equate names and happily assemble to 83 without issue (aliases)).

Shells are less of an issue, though what would be nice would be to create implementations of common shell functions that could be added if needed. Same goes for ROM calls, if it comes to it. (The functionality would need to be added to Brass).
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Timendus wrote:Venus

http://www.ticalc.org/archives/files/fi ... 17170.html

vRandom and vFastCopy library routines, has good documentation on the header in devinfo.html in the zip file, but doesn't state anything on program writeback.
Venus does writeback, as it moves around the program instead of copying. Actually, it defers the writeback to TIOS itself with a neat trick.
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

Yes, I expected that much.

Ben, you can just use the ion routines, instead of making your own implementation. The full source of the shell is supplied with it. A really interesting read that was three years ago :)
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I'm a bit hesitant to lump the 85/86 calcs with the 82/83/83+ calcs as the hardware differs (especially with the displays) too much to make easy portability between them practical (at this moment in time). Not to mention that PTI doesn't as yet support them...
Liazon
Calc Guru
Posts: 962
Joined: Thu 27 Oct, 2005 8:28 pm

Post by Liazon »

:(
Image Image Image
Post Reply