I figured that I would start a topic like this here. These are links to a bunch of routines that I find useful and I think other will find useful
ChkFindVar is like ChkFindSym for Program, Protected Program, Appvar, Temporary Program, Group.
SearchVarBC is a routine (with several others included) for searching for the other program types.
A_Times_DE This is a non-standard routine that is 25 bytes and faster than DE_Times_A.
DE_Times_A This is a fast, straightfoward, standard DE_Times_A
C_Div_DC_Times_DDE_Times_BCDEHL_Div_CDEHL_Mul_32Stack (no SMC) this is for Apps. This multiplies DEHL by the last two entries on the stack and returns the 64-bit result.
DEHL_Mul_32Stack (SMC) this gets a decent speed boost by using SMC. It does the same thing.
DEHL_Mul_A this uses shadow registers HLDE. I need to rewrite this
GCDHL_BC computes the Greatest Common Divisor
HL_Div_BC this can probably be optimised
HL_Div_CHLDE_Div_CncrHL_DE this computes "n choose r" and it uses shadow registers
RoundHL_Div_C returns the rounded value of HL/C
RoundSqrtE returns the rounded square root of E
SqrtESqrtHLPixelPlot (1) is a fast pixel plotting code that uses SMC and will draw to arbitrary buffers. I usually use a different version of this.
LineSearch will search a var for a line and return the location and size. This will not search beyond the given limit.
ConvRStr will convert a string of numbers to a 16-bit value
Is_2_Byte checks if A is the start byte of a 2-byte token
TokensToASCII converts a token string to ASCII
IncHLMem1 This is an optmised routine to increment HL and port 6 as necessary
TileMap1 This draws a tilemap. Uses DrawSpriteXxY.
DrawSpriteXxY This draws a tile
Pastebin won't let me paste anymore for a while, but I have a bunch more waiting in reserve
EDIT: As a note, these are all codes I wrote