z88dk - The z88 Development Kit - Application Production


Home
News
Downloads
Documentation
Contact
Links
Single command application generation

z88dk can generate emulator runnable applications for a number of platforms. To enable generation of applications simply add the -create-app flag to the zcc line. Please note that the -o option still refers to the name of the binary generated by z80asm and not the emulator compatible file.


The following platforms support one command application generation:


Amstrad CPC
The application generation stage of z88dk for the CPC generates a file with the suffix .cpc which should then be transferred onto a .dsk image using the program cpcfs. The program can then be loaded by CPC basic using the following commands:

MEMORY &5FFF
LOAD "filename.cpc",&6000
CALL &6000

TI Calculators
The application format generated by z88dk for TI calculators is a variable file which can then be uploaded to a TI calculator using the Ti-Graph Link software. Be sure that you've generated the binary for the shell that you're using on the calculator! Here's some details (which can be found in the file doc/ti.txt within the kit):
general compilation command:
zcc [+..] [-startup=..] [-o..] [-l..] [flags] file(s)
[+..]
- Config file to load:
Ti82
Ti82ansi
Ti83
Ti83ansi
Ti8x
Ti8xansi
Ti85
Ti85ansi
Ti86
Ti86ansi
[-startup=..]
- Startup header to use (see below for values)
[-o..]
- Binary output file (standard a.bin)
[-l..]
- Link this library:
tigray82
tigray83
tigray83p
tigray85
tigray86
[flags]
- For other flags see compile.txt
file(s)
- File(s) to compile

-------------------------------------------------------------------------------
Ti82:
compiles for CrASH (always)

#pragma string name xxx
- program description, max 22 characters (approx)

#pragma output nostreams
- If you just don't use the streams at all (no text and file-stuff)

#pragma output atexit
- If you use the atexit() command (uses 64 bytes extra stack).

-------------------------------------------------------------------------------
Ti83:
zcc [+..] [-startup=..] [-o..] [-l..] file(s)

-startup =
n - Primary shell(s); compatible shell(s)
(Primary shell merely means it's the smallest implementation
for that shell, that uses full capabilities of the shell)

1 - Ion; Ti-Explorer (default)
2 - Venus;
3 - ZES;
4 - Anova; SOS
5 - Ti-Explorer, AShell; SOS, Anova (same as 6)
6 - AShell, Ti-Explorer; SOS, Anova (same as 5)
7 - SOS; Anova
8 - Venus Explorer (VE); Venus
9 - Ion, Ti-Explorer; ZASMLOAD, plain TIOS
10 - Plain TIOS, ZASMLOAD

#pragma string name xxx
- program description, max 22 characters (approx)

#pragma data icon xx,xx,xx;
- shell icon 5 (Anova), 7 (VE), or 8 (rest) bytes long.
Bigger icons won't brake anything, they are just displayed truncated
(with most of the shells). Standard icon is "C+".

#pragma output nostreams
- If you just don't use the streams at all (no text and file-stuff)

#pragma output atexit
- If you use the atexit() command (uses 64 bytes extra stack).

-------------------------------------------------------------------------------
Ti83+ (Second Edition):
zcc -startup =
n - Primary shell, compatible shells
(Primary shell merely means it's the smallest implementation
for that shell, that uses full capabilities of the shell)

1 - Ion (default)
2 - MirageOS without quit key
3 - MirageOS with quit key - *dangerous* (possibly)
4 - TSE Kernel

#pragma string name xxx
- program description, max 22 characters (approx)

#pragma data icon xx,xx,xx;
- shell icon 8 bytes long. Standard icon is "C+".

#pragma data mirage_icon xx,xx,xx;
- Icon for MirageOS, 16 bytes long. Standard icon is a 'map' with
"C+" written on it.

#pragma output GimmeSpeed
- Will switch the Ti83+ Second Edition to 15MHz during runtime.
Setting this when compiling for the normal Ti83+ won't brake
anything. It will return to the shell at the normal 6MHz.
This won't work when using grayscale, until there is made a
"high speed" IM2 grayscale interrupt...
NOTE: Only works with ROM v1.13 and higher.

#pragma output StackNeeded = nnn;
- External Data Required for virtual stack.
TSE uses this value, it is standard set to 400 bytes, which equals
to the normal stackspace of the Ti83+. When you think your program
uses more or less than that, try a bit to find the best value.

#pragma output nostreams
- If you just don't use the streams at all (no text and file-stuff)

#pragma output atexit
- If you use the atexit() command (uses 64 bytes extra stack).

-------------------------------------------------------------------------------
Ti85:
compiles for Rigel (always)

#pragma string name xxx
- program description

#pragma output nostreams
- If you just don't use the streams at all (no text and file-stuff)

#pragma output atexit
- If you use the atexit() command (uses 64 bytes extra stack).

-------------------------------------------------------------------------------
Ti86:
zcc -startup =
n - Primary shell(s); compatible shell(s)
(Primary shell merely means it's the smallest implementation
for that shell, that uses full capabilities of the shell)

1 - LASM (default)
2 - ASE, Rascal, emanon, etc.
3 - zap2000
4 - emanon
5 - Embedded LargeLd - !!!EXPERIMENTAL!!!
10 - asm() executable

#pragma string name xxx
- program description

#pragma data icon xx,xx,xx;
- shell icon 8 bytes long. Standard icon is "C+".

#pragma output nostreams
- If you just don't use the streams at all (no text and file-stuff)

#pragma output atexit
- If you use the atexit() command (uses 64 bytes extra stack).

Xircom REX 6000

In order to generate a Rex application it is necessary to create a resource file with the suffix .res, this resource file contains the application name, application comment and the icon which is displayed in the Rex's main menu. An example of the resource file for an application named 'Hello World' is below:

APPNAME Hello World
COMMENT Made with z88dk
ICON
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
X...................................X...
X....................................X..
X.....................................X.
X......................................X
X......X..X.XXXX.X....X.....XX.........X
X......X..X.X....X....X....X..X........X
X......X..X.X....X....X....X..X........X
X......XXXX.XXX..X....X....X..X........X
X......X..X.X....X....X....X..X........X
X......X..X.X....X....X....X..X........X
X......X..X.XXXX.XXXX.XXXX..XX.........X
X......................................X
X......................................X
X......................................X
X......................................X
X......X..X..XX..XXX..X...XXX..........X
X......X..X.X..X.X..X.X...X..X.........X
X......X..X.X..X.X..X.X...X..X.........X
X......X..X.X..X.XXX..X...X..X.........X
X......XXXX.X..X.X..X.X...X..X.........X
X......XXXX.X..X.X..X.X...X..X.........X
X.......XX...XX..X..X.XXX.XXX..........X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
X......................................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

The icon is 40 pixels across by 32 deep.



Last Modified by Dom on 12.10.2003