
HelpPath	BASIC,Assembly,SWI,

ID_FirstChar	A-Za-z_
ID_Middle	A-Za-z_0-9
ID_LastChar	$%

#----------------------------------------------------------------------

# Immediate commands :
# APPEND AUTO DELETE EDIT HELP LIST LISTO LOAD LVAR NEW OLD
# RENUMBER RUN SAVE TWIN TWINO

SyntaxOptions
	SingleQuote	No
	DoubleQuote	Yes
	QuoteQuote	Yes
	SplitString	No
	HexPrefix	&
	BinPrefix	%
End

SyntaxComment 1
	Type		OneLine
	StartWith	;
	EndWith		:
End

SyntaxWords Group1 EndAsm nocase
	ADC ADD AND BIC CMN CMP EOR MLA MOV MUL
	MVN ORR RSB RSC SBC SUB SWI TEQ TST
	LDR STR
	ADR
End

SyntaxWords Group2 EndSTM nocase
	LDM STM
End

SyntaxWords Group3 EndNonID nocase
	R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
	PC SP LR
End

SyntaxWords Group4 EndBL nocase
	B
End

SyntaxWords Group5 EndNonID nocase
	OPT
	EQUS EQUD EQUB DCB DCD
End

SyntaxWords Group6 EndNonID nocase
	LSR LSL ASR ASL ROR ROL RRX
End

SyntaxWords Group7 EndofID nocase
	:.
End

SyntaxWords Group8 StartSpace EndofID nocase
	.
End

#----------------------------------------------------------------------

Search
	_Indent2	{" "} [ (("REM") | (";"~":") {" "} ]
	Bchar		Alpha   |"_"|"`"
	Bchar2		AlphaNum|"_"|"`"
	_MarkWord	(Bchar {Bchar2} ["%"|"$"]) | ("&" {Hex}+) | {Digit}+
	_MoveWord	(Bchar {Bchar2} ["%"|"$"]) | ("&" {Hex}+) | {Digit}+
	Label		[";:"] "." CW ~Bchar2
	C_SWI		"SYS" | "SWI" [??] _spct '"' @0 * (@9 '"')
	C_LDM		" LDM"
	C_STM		" STM"
	C_LDMpc		" LDM" @1 * (@2 "PC}" ["^"])
	C_STM14		" STM" @1 * (@2 "14}")
End

Replace
	R_LDMpc		" LDM" @12 "PC}^"
	R_STM14		" STM" @12 "14}"
End

FoldParm1 (";{{{",";}}}",startofline)
FoldParm2 (";:.",,startofline)

Clicklist Toggle
	C_SWI		HelpString("SWI <tmp$word>",GSTrans)
	C_STM14		ToggleStr(R_LDMpc)
	C_LDMpc		ToggleStr(R_STM14)
	C_STM		ToggleStr(" LDM")
	C_LDM		ToggleStr(" STM")
End

#----------------------------------------------------------------------

KeyList
	^D,^F		InsertStr ("FN_ForceDebug")
	^D,^R		InsertStr ("FN_RestoreDebug")
	^D,^D		InsertStr ("FN_Debug(pass%,\"\")")
	^Delete		InsertStr(":") DeleteRight
	^Return		NewLine(indent,_Indent2)


End

#----------------------------------------------------------------------

Functions

	Key	F2
	Menu	List DEF PROC/FN  F2
	Icon	LoF
	Select	ListOfFound (";:.",Text,After,Line,Case)
	Help	HBa_lof

	Adjust	ListOfFound (";:.",All,After,Line,Case)

	Key	PgUp
	Icon	up
	Select	GotoPrev (";:.",Text,Line,Case)
	Help	HBa_up

	Key	^PgUp
	Select	GotoPrev (";:.",Text,Line,Case)

	Key	PgDown
	Icon	down
	Select	GotoNext (";:.",Text,Line,Case)
	Help	HBa_dn

	Key	^PgDown
	Select	GotoNext (";:.",Text,Line,Case)

	Key	F10
	Menu	Run                F10
	Icon	run
	Select	SetTmp() RunBasic
	Help	HBa_run

	Key	F10
	Select	SetTmp() RunBasic(Save)

	Key	^F10
	Adjust	SetTmp() RunBasic(,,Taskwindow)

	Key	^F10
	Adjust	SetTmp() RunBasic(Save,,Taskwindow)

	Key	^G
	Menu	Goto label/DEF PROC/FN
	Icon	goto
	Select	Push GotoFound (Label,Text,Whole,Line,Case)
	Help	HBa_go

	Key	^G
	Adjust	Push GotoFound (Label,All,Whole,Line,Case)

	Key	^G 2
	Select	Pop

	Key	^G 2
	Adjust	Pop

End

#----------------------------------------------------------------------

Shortcuts
	STM{	STMFD    R13!,{0-12,14}\n\n\i\@\n\n\iLDMFD    R13!,{0-12,PC}^
	LDM{	LDMFD    R13!,{0-12,PC}^
	``-	;-------------------------------------------------------------------------------\n
	``=	;===============================================================================\n
End
