ASM Header

From Doors CS, Doors CSE, and Doors CE Wiki
(Redirected from ASM Header (Doors CS 6))
Jump to: navigation, search

You are here: Developers' SDK >> ASM Header

Normal Header

; Program Name: 
; Author: 
; Version: 
; Date: 
; Written for Doors CS 7.0 and higher (http://dcs.cemetech.net)

.nolist
#include "ti83plus.inc"
#include "dcs7.inc"
.list
	.org progstart
	.db $BB,$6D
Init:
	xor d
	ret
	jr Start
	
	.dw Description			;or .dw $0000 if you don't have a description
	.db $07,$00			;always this string
	.dw Icon			;or .dw $0000 if you don't have an icon
	.dw ALE				;usually .dw $0000 if you don't have or know what an ALE is
Start:                          	;main routines
	;etc etc etc
	;ret
Description:
	.db "Description",0	;can be omitted if .dw Description is .dw 0000 above
Icon:				;a 16x16 icon (can be omitted if .dw Icon is .dw 0000 above)
	.db %11111111,%11111000
	.db %10000000,%00001100
	.db %10111100,%00001010
	.db %10010010,%00001111
	.db %10010010,%01010001
	.db %10010010,%10101001
	.db %10111100,%01010101
	.db %10000000,%00000001
	.db %10101010,%10101001
	.db %10010101,%01010101
	.db %10101010,%10101001
	.db %10000000,%00000001
	.db %10010101,%01010101
	.db %10101010,%10101001
	.db %10000000,%00000001
	.db %11111111,%11111111
ALE:					;must be omitted if .dw ALE is .dw 0000 above
	.db "ZALE",0,0,0,0 ;always eight bytes, use
	.db "ZLALE",0,0,0 ;zeros for extra bytes
	.db $FF ;put after last ALE

Header for AP-Enabled Programs

Main Program

; Program Name: 
; Author: 
; Version: 
; Date: 
; Written for Doors CS 7.0 and higher (http://dcs.cemetech.net)

.nolist
#include "ti83plus.inc"
#include "dcs7.inc"
.list
	.org progstart
	.db $BB,$6D
Init:
	xor d
	ret
	jr Start
	
	.dw Description
	.db $07,$00
	.dw Icon
	.dw $0000
	.dw Apstart			;the routine to open files.  DCS will start you here instead of at $9D95 if an AP file is pending
	.db $31,$7F			;argh, this be an APMain
	.db $02				;number of accepted filetypes
MyType1:
	.db 0,1,1			;plaintext
MyType2:
	.db 0,1,2			;DDE6 text
START:                          	;main routines

Description:
	.db "Description",0	;can be omitted if .dw Description is .dw 0000 above
Icon:				;a 16x16 icon (can be omitted if .dw Icon is .dw 0000 above)
	.db %11111111,%11111000
	.db %10000000,%00001100
	.db %10111100,%00001010
	.db %10010010,%00001111
	.db %10010010,%01010001
	.db %10010010,%10101001
	.db %10111100,%01010101
	.db %10000000,%00000001
	.db %10101010,%10101001
	.db %10010101,%01010101
	.db %10101010,%10101001
	.db %10000000,%00000001
	.db %10010101,%01010101
	.db %10101010,%10101001
	.db %10000000,%00000001
	.db %11111111,%11111111
IconAP:				;a 16x16 icon
	.db $3F,$F0,$20,$18
	.db $E0,$14,$A0,$1E
	.db $A0,$02,$AF,$C2
	.db $A6,$62,$A6,$32
	.db $A6,$32,$A6,$32
	.db $A6,$62,$AF,$C2
	.db $A0,$02,$BF,$FE
	.db $80,$08,$FF,$F8

Files

; Header for data files meant to be opened with the corresponding viewer

	.db $BB,$6D              ; required
	ret                      ; don't let the TI-OS run it
	.db $31,$80              ; required, identify the program as a data
type :
	.db 0,0,0                ; the file type here
	
	...                      ; datas here

Header for Shell Expansions (SEs)

.nolist				;defines, includes, and equates
#include "ti83plus.inc"
#include "dcs7.inc"		;token interpretation
SEOffset	equ	$86ec
.list
	.org 0
	.db $BB,$6D		;ASM program header
	.db $AB,$C9		;ignore program; ret
SEStart:
	.db $31,$87,$50		;SE for DCS 5 and higher
	.dw SEBoot-SEStart	;or .dw 0 if there is no boot section
	.dw SEMouse-SEStart	;or .dw 0 if there is no mouse section
	.dw SEUnload-SEStart	;or .dw 0 if there is no unload section
SEBoot:			;if there is a boot section...
	;...code...
	ret
SEMouse:			;if there is a mouse section...
	;...code...
	ld d,0
	ret
SEUnload:			;if there is an unload section...
	;...code...
	ret

Header for Associated Library Extensions (ALEs)

"Ignore" Header

If you want Doors CS to ignore a particular ASM program and not list it, then all you need to do is make xor e the first instruction in the program:

; Program Name: 
; Author: 
; Version: 
; Date: 
; Written for Doors CS 7.0 and higher (http://dcs.cemetech.net)

.nolist
#include "ti83plus.inc"
#include "dcs7.inc"
.list
	.org progstart
	.db $BB,$6D
Init:
	xor e