Difference between revisions of "84PCSE:OS:Applications"

From WikiTI
Jump to: navigation, search
(mention that TI's tools are still usage)
Line 1: Line 1:
 
[[Category:84PCSE:OS_Information]]
 
[[Category:84PCSE:OS_Information]]
 +
''See also [[83Plus:OS:Certificate/Headers:Fields:Application_Headers|the page on TI-83+ series application headers]].''
 +
 +
== App Header ==
 +
 
Creating an application for the TI-84 Plus C SE is just like creating an application for the TI-8x B&W series. Aside from all the changes to OS equates and hardware, the only thing you need to change is the signing key. Any TI-8x app will include the byte sequence 80120104; simply change this to 8012010F to specify that your application is signed with the TI-84+CSE key. Therefore, an example header might be:
 
Creating an application for the TI-84 Plus C SE is just like creating an application for the TI-8x B&W series. Aside from all the changes to OS equates and hardware, the only thing you need to change is the signing key. Any TI-8x app will include the byte sequence 80120104; simply change this to 8012010F to specify that your application is signed with the TI-84+CSE key. Therefore, an example header might be:
 
  <nowiki> ; Master Field
 
  <nowiki> ; Master Field
Line 26: Line 30:
 
call MySplashScreen</nowiki>
 
call MySplashScreen</nowiki>
  
Then, you need the actual TI-84+CSE 010F.key file to sign the application. This is the file:
+
== Key File ==
 +
 
 +
You need the actual TI-84+CSE 010F.key file to sign the application. This is the file:
 
  <nowiki>40A5269CCDFAD4ACBE816B6C6ED00B984B08E34A3172F504C58DDB9F1E1F92E9B357FCF0314148E80881DBD1B8C8D7E4E81025B9158CB808706E45ABC1E218E982
 
  <nowiki>40A5269CCDFAD4ACBE816B6C6ED00B984B08E34A3172F504C58DDB9F1E1F92E9B357FCF0314148E80881DBD1B8C8D7E4E81025B9158CB808706E45ABC1E218E982
 
20FBB377F8EFDAD1C03FF076BB1E7956C0D0B0D7E41613B726F805D5E7F2D23843
 
20FBB377F8EFDAD1C03FF076BB1E7956C0D0B0D7E41613B726F805D5E7F2D23843
Line 35: Line 41:
 
Simply copy and paste that text into a file and name it 010F.key.
 
Simply copy and paste that text into a file and name it 010F.key.
  
If you're using Spasm as your assembler and rabbitsign to sign the application:
+
== Building Your Application ==
 +
 
 +
Generally, building an application will be a two-step process: assembling the application into a .hex file, and signing the .hex into a .8ck file. Below are instructions for creating .hex files with Spasm and Brass, and signing instructions for RabbitSign. Spasm, Brass, and RabbitSign can be invoked from the command line, and can be automated into a .bat file.
 +
 
 +
=== Spasm ===
 +
 
 +
Spasm is a fast, modern macro Z80 assembler which can generally be used as a drop-in replacement for TASM. It can be gotten from its Website: https://wabbit.codeplex.com/wikipage?title=SPASM%20Documentation .
 +
 
 +
Spasm infers the output format the extension you pass it. Therefore, to assemble your app into a .hex file simply do:
 
  spasm myapp.asm myapp.hex
 
  spasm myapp.asm myapp.hex
 +
 +
=== Brass ===
 +
 +
Brass 1.x is a powerful macro assembler. It happens to be preferred by KermM, who also distributes it with the DCSE SDK. If you're using Brass 1.x:
 +
* Don't use the Brass macro to generate app headers; manually create the header as shown above.
 +
* Use .defpage and .page to define your pages
 +
* Set .binarymode intel
 +
* Brass will generate a .hex file as its output, which you can then pass into RabbitSign, as shown above.
 +
Invoke it as you normally would:
 +
brass myapp.asm myapp.hex
 +
 +
=== ZDS ===
 +
 +
ZDS is the official ZiLog assembler. It's what TI used in the the app SDK, and it's probably what they themselves use.
 +
 +
=== Signing the Application ===
 +
 +
RabbitSign is a multiplatform application signer. It functions as a stand-alone application, just like Brass and Spasm do. RabbitSign for Linux is at http://www.ticalc.org/archives/files/fileinfo/383/38392.html and RabbitSign for Win32 is at http://www.ticalc.org/archives/files/fileinfo/420/42035.html
 +
 +
To sign myapp.hex:
 
  rabbitsign -g -o myapp.8ck myapp.hex
 
  rabbitsign -g -o myapp.8ck myapp.hex
Spasm is can be gotten from its Website: https://wabbit.codeplex.com/wikipage?title=SPASM%20Documentation; similarly, RabbitSign for Linux is at http://www.ticalc.org/archives/files/fileinfo/383/38392.html and RabbitSign for Win32 is at http://www.ticalc.org/archives/files/fileinfo/420/42035.html
 
  
You can still use ZDS + TI's Wappsign to sign applications, but I'm not as familiar with those tools.
+
You can also use TI's Wappsign to sign applications. Just make sure it can find the .key file.

Revision as of 04:30, 21 February 2014

See also the page on TI-83+ series application headers.

App Header

Creating an application for the TI-84 Plus C SE is just like creating an application for the TI-8x B&W series. Aside from all the changes to OS equates and hardware, the only thing you need to change is the signing key. Any TI-8x app will include the byte sequence 80120104; simply change this to 8012010F to specify that your application is signed with the TI-84+CSE key. Therefore, an example header might be:

	; Master Field
	.db	80h, 0Fh, 0, 0, 0, 0
	; Name
	.db	80h, 46h, "My App"
	; Disable TI splash screen.
	.db	80h, 90h
	; Revision
	.db	80h, 21h, 0
	; Build
	.db	80h, 31h, 1
	; Pages
	.db	80h, 81h, 1
	; Signing Key ID
	.db	80h, 12h, 01, 0Fh
	; Date stamp.  Nothing ever checks this, so you can put nothing in it.
	.db	03h, 22h, 09h, 00h
	; Date stamp signature.  Since nothing ever checks this, there's no
	; reason ever to update it.  Or even have data in it.
	.db	02h, 00
	; Final field
	.db	80h, 70h
	; There's no need for more padding here.  TI just starts execution after
	; the last field.
	call	MySplashScreen

Key File

You need the actual TI-84+CSE 010F.key file to sign the application. This is the file:

40A5269CCDFAD4ACBE816B6C6ED00B984B08E34A3172F504C58DDB9F1E1F92E9B357FCF0314148E80881DBD1B8C8D7E4E81025B9158CB808706E45ABC1E218E982
20FBB377F8EFDAD1C03FF076BB1E7956C0D0B0D7E41613B726F805D5E7F2D23843
21DFED75BE1329EC0AC94C91C23CED4339133CFCDDB3058E5316148AB7DE378BF201


Simply copy and paste that text into a file and name it 010F.key.

Building Your Application

Generally, building an application will be a two-step process: assembling the application into a .hex file, and signing the .hex into a .8ck file. Below are instructions for creating .hex files with Spasm and Brass, and signing instructions for RabbitSign. Spasm, Brass, and RabbitSign can be invoked from the command line, and can be automated into a .bat file.

Spasm

Spasm is a fast, modern macro Z80 assembler which can generally be used as a drop-in replacement for TASM. It can be gotten from its Website: https://wabbit.codeplex.com/wikipage?title=SPASM%20Documentation .

Spasm infers the output format the extension you pass it. Therefore, to assemble your app into a .hex file simply do:

spasm myapp.asm myapp.hex

Brass

Brass 1.x is a powerful macro assembler. It happens to be preferred by KermM, who also distributes it with the DCSE SDK. If you're using Brass 1.x:

  • Don't use the Brass macro to generate app headers; manually create the header as shown above.
  • Use .defpage and .page to define your pages
  • Set .binarymode intel
  • Brass will generate a .hex file as its output, which you can then pass into RabbitSign, as shown above.

Invoke it as you normally would:

brass myapp.asm myapp.hex

ZDS

ZDS is the official ZiLog assembler. It's what TI used in the the app SDK, and it's probably what they themselves use.

Signing the Application

RabbitSign is a multiplatform application signer. It functions as a stand-alone application, just like Brass and Spasm do. RabbitSign for Linux is at http://www.ticalc.org/archives/files/fileinfo/383/38392.html and RabbitSign for Win32 is at http://www.ticalc.org/archives/files/fileinfo/420/42035.html

To sign myapp.hex:

rabbitsign -g -o myapp.8ck myapp.hex

You can also use TI's Wappsign to sign applications. Just make sure it can find the .key file.