@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ This function writes pattern into the memory locations:
@ startaddr -> startaddr+count
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTTSSSN | Mark: 11000 (memset)
@ Prepare the stack for computation.
@ Store pattern into one memory location on each pass through this loop.
NSSVSSSTTSSSSSSSSSSSN | Mark: 00011000 00000000
@ Decrement and check for loop end condition count == 0.
NTSSSSTTSSSSSSSSSSTN | BRZ > 00011000 00000001
NSNSSSTTSSSSSSSSSSSN | JMP > 00011000 00000000
NSSVSSSTTSSSSSSSSSSTN | Mark: 00011000 00000001
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ This function copies count+1 words from source to destination.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTTSSTN | Mark: 11001 (memcpy)
@ Prepare the stack for computation.
@ Copy one word on each pass through this loop.
NSSVSSSTTSSTSSSSSSSSN | Mark: 00011001 00000000
@ Decrement and check for loop end conditions.
NTSSSSTTSSTSSSSSSSTN | BRZ > 00011001 00000001
NSNSSSTTSSTSSSSSSSSN | JMP > 00011001 00000000
NSSVSSSTTSSTSSSSSSSTN | Mark: 00011001 00000001
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ This function writes random words into the memory locations:
@ startaddr -> startaddr+count
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTTSTSN | Mark: 11010 (memrand)
@ Store random word into one memory location on each pass through this loop.
NSSVSSSTTSTSSSSSSSSSN | Mark: 00011010 00000000
NSTTSSSSN | JSR > 10000 (random)
@ Decrement and check loop end conditions
NTSSSSTTSTSSSSSSSSTN | BRZ > 00011010 00000001
NSNSSSTTSTSSSSSSSSSN | JMP > 00011010 00000000
NSSVSSSTTSTSSSSSSSSTN | Mark: 00011010 00000001
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ This function compares two blocks of memory:
@ blk1ptr -> blk1ptr+count
@ blk2ptr -> blk2ptr+count
@ The return value is zero if the blocks are identical, otherwise non-zero.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTTSTTN | Mark: 11011 (memcmp)
@ Prepare the stack for computation.
@ Compare one word on each pass through this loop.
NSSVSSSTTSTTSSSSSSSSN | Mark: 00011011 00000000
NTSSSSTTSTTSSSSSSTSN | BRZ > 00011011 00000010 (jump if words match)
@ Return 'match? = false'
@ Decrement and loop again if loop isn't complete.
NSSVSSSTTSTTSSSSSSTSN | Mark: 00011011 00000010
NTSSSSTTSTTSSSSSSSTN | BRZ > 00011011 00000001 (jump if loop is complete)
NSNSSSTTSTTSSSSSSSSN | JMP > 00011011 00000000
NSSVSSSTTSTTSSSSSSSTN | Mark: 00011011 00000001