Edit-style Zap keymap
Requires ZapMJE, ZapDS, ZapDWExt, ZapUtils...

Key:	Code:	Command:

cSpc	&000	SelRegion
cA	&001	AutoIndent
cB	&002	ToBack
cC	&003	CopySel
cD	&004	Char 4
cE	&005	Char 5
cF	&006	ToFront
cG	&007	Cancel
cH	&008	MJE_HelpContext
cI	&009	Indirect
cJ	&00A	Char 10
cK	&00B	Char 11
cL	&00C	Learn
cM	&00D	Char 13
cN	&00E	Char 14
cO	&00F	OSCLI
cP	&010	Char 16
cQ	&011	Quote
cR	&012	SearchBack
cS	&013	SearchForward
cT	&014	SelectBuffer
cU	&015	UniversalArg
cV	&016	MoveSel
cW	&017	SetWidth
cX	&018	Cut
cY	&019	Paste
cZ	&01A	ClearSel
ESC	&01B	Escape
<-|	&01C	Delete
RET	&01D	Return
HOME	&01E	CUp
cDEL	&01F	DS_ToIcon
Ascii	&020-7E	Char n
DEL	&07F	Delete
Ascii	&080-FF	Char n
scSpc	&100	Unspace
scA	&101	LineNos 3
scB	&102	BASIC
scC	&103	Compile
scD	&104	InsertDate
scE	&105	SaveAndRun
scF	&106	RunAndQuit
scG	&107	ToggleWind
scH	&108	ListFNs
scI	&109	NextTrack
scJ	&10A	LastSector
scK	&10B	NextSector
scL	&10C	LineNos 1
scM	&10D	LastTrack
scN	&10E	LineNos 0
scO	&10F	ToggleHex
scP	&110	LineNos 2
scQ	&111	SwapChars
scR	&112	ReadOnly
scS	&113	DS_SwapCaseCursor
scT	&114	InsertTime
scU	&115	Run
scV	&116	DS_RunApp
scW	&117	KeepRegion
scX	&118	CloseOther
scY	&119	Yank
scZ	&11A	Linewrap
sESC	&11B	Cancel
s<-|	&11C	Delete
sRET	&11D	Return
sHOME	&11E	CUp
scDEL	&11F	Char 127
sSpc	&120	Char 32
c[	&12B	Char 27
c\	&12C	Char 28
c]	&12D	Char 29
c-	&12F	FastUndo
c0	&130	Char 0
c1	&131	Char 1
c2	&132	Char 2
c3	&133	Char 3
c4	&134	Char 4
c5	&135	Char 5
c6	&136	Char 6
c7	&137	Char 7
c8	&138	Char 8
c9	&139	Char 9
cESC	&13B	Command
c<-|	&13C	Delete
cRET	&13D	ReturnNoIndent
cHOME	&13E	CUp
sc[	&14B	HTMLInsert "&lt;"
sc\	&14C	Char 31
sc]	&14D	HTMLInsert "&gt;"
sc-	&14F	FullUndo
sc0	&150	Char 0
sc1	&151	Keymap 4
sc2	&152	Char 0
sc3	&153	Char 3
sc4	&154	Char 4
sc5	&155	Char 5
sc6	&156	Char 30
sc7	&157	HTMLInsert "&"
sc8	&158	Char 8
sc9	&159	Char 9
scESC	&15B	Char 27
sc<-|	&15C	Delete
scRET	&15D	Insert "<P>"
scHOME	&15E	cUp
k/	&161	Char '/'
k*	&162	Char '*'
k#	&163	Char '#'
k-	&164	Char '-'
k+	&165	Char '+'
ENT	&166	Return
k.	&167	Char '.'
sDEL	&17F	Delete
Prt	&180	QuickPrint
F1	&181	Execute
F2	&182	FindFile
F3	&183	Save
F4	&184	SearchCur
F5	&185	Goto
F6	&186	MJE_AlterSel
F7	&187	SearchBuf
F8	&188	FullUndo
F9	&189	Redo
TAB	&18A	Tab
COPY	&18B	DeleteNext
LEFT	&18C	Left
RIGHT	&18D	Right
DOWN	&18E	Down
UP	&18F	Up
sPrt	&190	PrintFile
sF1	&191	SplitLine
sF2	&192	SwapWindow:ToFront
sF3	&193	SaveSel
sF4	&194	Replace
sF5	&195	Help
sF6	&196	CLeft:MJE_AlterSel:CRight:Down:CLeft:MJE_AlterSel
sF7	&197	NextMatch
sF8	&198	Renumber
sF9	&199	MJE_HelpTopic "Zap_Help.$"
sTAB	&19A	Keymap 2
sCOPY	&19B	Copy
sLEFT	&19C	sLeft
sRIGHT	&19D	sRight
sDOWN	&19E	sDown
sUP	&19F	sUp
cPrt	&1A0	OpenPrinter
cF1	&1A1	JoinLine
cF2	&1A2	CloseWindow
cF3	&1A3	QuickSave:OLEFileChanged
cF4	&1A4	NewView
cF5	&1A5	Wordwrap
cF6	&1A6	FormatText
cF7	&1A7	LastMatch
cF8	&1A8	BindToKey
cF9	&1A9	HexASCII
cTAB	&1AA	TabsAsSpaces
cCOPY	&1AB	DelLine
cLEFT	&1AC	cLeft
cRIGHT	&1AD	cRight
cDOWN	&1AE	cDown
cUP	&1AF	cUp
scPrt	&1B0	ClosePrinter
scF1	&1B1	ModeN "Text"
scF2	&1B2	ModeN "Byte"
scF3	&1B3	ModeN "Word"
scF4	&1B4	ModeN "Ascii"
scF5	&1B5	ModeN "Code"
scF6	&1B6	ModeN "Basic"
scF7	&1B7	ModeN "Bastxt"
scF8	&1B8	ModeN "Email"
scF9	&1B9	ModeN "C"
scTAB	&1BA	StripSpaces 4
scCOPY	&1BB	DumpFile
scLEFT	&1BC	scLeft
scRIGHT	&1BD	scRight
scDOWN	&1BE	scDown
scUP	&1BF	scUp
k0..9	&1C0-1C9 *&30
F10	&1CA	DelLine
F11	&1CB	ToggleMark
INS	&1CD	DS_Insert
sF10	&1DA	DelToStart
sF11	&1DB	NextMark
sINS	&1DD	ToggleInsert
cF10	&1EA	DelToEnd
cF11	&1EB	LastMark
cINS	&1ED	Indent
scF10	&1FA	ModeN "Assembler"
scF11	&1FB	Keymap 1
scINS	&1FD	Outdent

sk0..9	&1D0-1D9 *&30
ck0..9	&1E0-1E9 *&30
sck0..9	&1F0-1F9 *&30
sksym	&171-177 *&161
cksym	&121-127 *&161
scksym	&141-147 *&161

sk#	&173	DS_EvalH
sk-	&174	DS_RSB
sk+	&175	DS_UEval
sENT	&176	DS_Eval
ck#	&123	WC
cENT	&126	ReturnNoIndent
sck/	&141	DS_EOR
sck*	&142	DS_OR
sck#	&143	Keymap 3
sck-	&144	DS_SUB
sck+	&145	DS_ADD
sckENT	&146	FilterSel
sck.	&147	DS_AND


Key map variables

Default key map &400	&0
Map 1 range	&401	&41	&195 (Null)
Map 2 range	&402	&4	&1B2 (Null)
Map 3 range	&403	&22	&195 (Null)
Map 4 range	&404	&8	&77

Alternate keymaps:


1: Mode selection (scF11)

cEsc	&1013B	Command
sF5	&10195	HelpKey
D	&10044	ModeN "Desc"
H	&10048	ModeN "HTML"
K	&1004B	ModeN "Taskwindow"
L	&1004C	ModeN "LaTeX"
M	&1004D	ModeN "Messages"
O	&1004F	ModeN "Obey"
P	&10050	ModeN "Pascal"
S	&10053	ModeN "SAsm"
h	&10068	ModeN "HoTMeaL"
w	&10077	ModeN "SoftWrap"


2: Miscellaneous (sTab)

cEsc	&2013B	Command
sF5	&20195	HelpKey
cD	&20004	Email_Stamp
cM	&2000D	MinimiseMemory
cR	&20012	Email_Snip
cS	&20013	Email_Snip ""
cZ	&2001A	DS_StripCtrlCodes 4
Ret	&2001D	CRLF
Spc	&20020	TabDisplay 1
"	&20022	Email_ChangeQuoting """"
#	&20023	Email_ChangeQuoting
1	&20031	FontType 0
2	&20032	FontType 5
:	&2003A	Email_ChangeQuoting ":"
<	&2003C	Format_Indented "\<"
>	&2003E	Email_ChangeQuoting ">"
A	&20041	TabDisplay 2
C	&20043	TabMode 2
D	&20044	TabDisplay 3
E	&20045	TabMode 1
F	&20046	FindFile
H	&20048	MJE_GenerateHeader
M	&2004D	DS_StripCtrlWithMask
N	&2004E	TabDisplay 0
S	&20053	FontType 1
T	&20054	TabsAsSpaces
U	&20055	TabMode 0
[	&2005B	Email_DecQuoting
]	&2005D	Email_IncQuoting ">"
`	&20060	Email_RotEncode
b	&20062	BlockID
d	&2006C	DefBlock
f	&20066	FirstBlock
h	&20068	OpenCH
i	&2006E	FindID
m	&2006D	ModBrk
o	&20070	OpenRef
~	&2007E	Email_RotEncodeCur
|	&2007C	Email_ChangeQuoting "|"
scSpc	&20100	StripSpaces 3
scR	&20112	Revert
scS	&20113	SwapCase
scZ	&2011A	DS_StripCtrlCodes 1
sRet	&2011D	Format_Indented
sSpc	&20120	Email_StripSpcs &B
sk-	&20174	Email_RemQuotingChr
sk+	&20175	Email_AddQuotingChr
sENT	&20176	Email_SetQuoting
F2	&20182	DS_FindFile
TAB	&2018A	DS_Untabify
sF1	&20191	Email_SplitForInsert
cF2	&201A2	DS_OpenParent
cF3	&201A3	DS_SaveKeepStamp
scF2	&201B2	DS_CloseFile


3: C/Pascal/Assembler - Preprocessor and comments (sc#)

cEsc	&3013B	Command
sF5	&30195	HelpKey
"	&30022	If "MC,Pascal":If_True "cLeft:Insert ""#include """""":cRight:Insert """""""":Return"
*	&3002A	MJE_UncommentLine
/	&3002F	MJE_CommentLine
<	&3003C	If "MC,Pascal":If_True "cLeft:Insert ""#include <"":cRight:InsertGS "">|J"""
A	&30041	If "MC":If_True "cLeft:InsertGS ""#pragma asm|J"""
D	&30044	If "MC,Pascal":If_True "cLeft:InsertGS ""#define """
E	&30045	MJE_EndIf
H	&30048	MJE_SwapToHeader
I	&30049	If "MC,Pascal":If_True "cLeft:Insert ""#if """:If "MAssembler":If_True "cLeft:Insert "" [ """
a	&30061	If "MC":If_True "cLeft:InsertGS ""#pragma endasm|J"""
e	&30065	If "MC,Pascal":If_True "cLeft:InsertGS ""#else|J""":If "MAssembler":If_True "cLeft:Insert "" |"":Return"
{	&3007B	MJE_OpenComment
}	&3007D	MJE_CloseComment
DOWN	&3018E	MJE_NextFunc
UP	&3018F	MJE_LastFunc


4: ZapHTML

cH	&40008	HTMLHeading
cI	&40009	HTMLImage
cL	&4000C	HTMLLink
cT	&40014	HTMLTemplate
A	&40041	HTMLTagPair "address"
B	&40042	HTMLTagPair "b"
C	&40043	HTMLTagPair "code"
D	&40044	HTMLTagPair "dfn"
E	&40045	HTMLTagPair "em"
F	&40046	HTMLTagPair "strong"
H	&40048	HTMLSingleTag "hr"
I	&40049	HTMLTagPair "i"
J	&4004A	HTMLDefItem
K	&4004B	HTMLTagPair "kbd"
L	&4004C	HTMLLIST "ol li"
M	&4004D	HTMLLIST "dl dt dd"
N	&4004E	HTMLSingleTag "br"
O	&4004F	HTMLSingleTag "li"
P	&40050	HTMLTagPair "pre"
Q	&40051	HTMLTagPair "blockquote"
R	&40052	HTMLTagPair "cite"
S	&40053	HTMLTagPair "samp"
T	&40054	HTMLTagPair "teletype"
U	&40055	HTMLList "ul li"
V	&40056	HTMLTagPair "var"
W	&40057	HTMLRemark
a-z	&40061-4007A	*&40041


Search macros:

Macro0	&200	\d	\[0-9]
Macro1	&201	\a	\[A-Za-z_]
Macro2	&202	\s	\[\9\32]\%


Other variables:

Standard date format		&300	%dy %mo %ce%yr
Standard time format		&301	%24:%mi:%se
Default font			&302	Corpus.Medium
End of file gap (lines)		&303	4
Font size (pts)			&304	12
Font char top reduction (pixs)	&305	1
Font char bot reduction (pixs)	&306	1
Quick print EOL string (GS)	&307	|J|M
Left cursor indent (chars)	&308	4
Right cursor indent (chars)	&309	4
Top cursor indent (chars)	&30A	2
Bottom cursor indent (chars)	&30B	2
Window left margin (os)		&30C	0
Window right margin (os)	&30D	2
Type of file created on SELECT	&30E	&FFF
Type of file created on ADJUST	&30F	&FFB
Font char left reduction (pixs)	&310	1
Font char right reduction (pix)	&311	1
Minibuffer size (chars)		&314	&80
Default indent string		&315	>
Cursor flash on time (cs)	&316	50
Cursor flash off time (cs)	&317	50
Min auto-width width (char)	&318	4
Max auto-width width (char)	&319	256
Default low-res bitmap font	&31A	08x08.SysDS
Default hi-res bitmap (YEig=1)	&31B	08x08.SysDS
Attributes for new files	&31C	&3


Paths:
(search wildcards can be used)
(-1 filetype = anything - the 5xx numbers don't matter)

&500 &FFF \#\*.\(c\|cc\|c++\|cxx\|h\).\o\*	+C
&501 &FFF \#\*/\(C\|CC\|C++\|CXX\|H\)		+C
&502 &FFF \#\*\(.s.\o\*\|/S\)			+Assembler
&503 &FFF \#\*\(.p.\o\*\|/PAS\)			+Pascal
&504 &FFF \#\*.\(TTFN_Work\|Re-edit\)		+Email:FFlags_Toggle &40:Email_AddSignature:Email_AddTagline:Email_Stamp:FFlags_Toggle &C320
&505 &FFF \#\*.OLEfiles.TM\o\*			+Email:FFlags_Toggle &40:Email_AddSignature:Email_AddTagline:Email_Stamp:FFlags_Toggle &C320
&506 &FFF \#\*.\(tex.\o\*\|tex\)		+LaTeX
&507 -1	  *\#\*					Text
&508 &FFD \#\*.~index				Ascii

Testing...

&509 &FFF \#\*.!\o\*.\(Desc\|!Choices\)		+Desc
&50A &FFF \#\*.Message\(\[sd]\|s.\o\*\)		+Messages


File types:
(+ means load without shift, paths checked first if above)
(mode names can be followed by a list of commands eg Text:Down)

JSW_Game	&11C0	ASCII
JSW_Anim	&11C1	ASCII
JSW_Room	&11C2	ASCII
JSW_Blok	&11C3	ASCII
Z80		&1CEE	Byte
SNA		&1CEF	Byte:StartAddr 16357
Draw file	&1AFF	Word
BBC ROM		&1BBC	Byte
Text BASIC	&1FD1	BASIC
HTML		&1FAF	HoTMeaL
 (was HTML)
TaskObey	&1FD7	Obey
 (test)
DOS		&1FE4	+Text
Desktop		&1FEA	Obey
 (test)
Obey		&1FEB	Obey
 (was Text)
Template	&1FEC	Ascii
Palette		&1FED	Byte:SetWidth "6"
Printout	&1FF4	Ascii
BBC font	&1FF7	Byte:SetWidth "10"
Absolute	&1FF8	Code
Sprite		&1FF9	Word
Module		&1FFA	Code
BASIC		&1FFB	BASIC
Utility		&1FFC	Code
Data		&1FFD	Word
Text		&1FFF	+Text
Untyped		&2000	Byte
