Lc3 assembly language traps and subroutines – memory dump

Looking for an experienced developer with knowledge in LC3 assembly language. You will construct an assembly-level program that prompts the user for a starting address (in hex) and an ending address (in hex).  Your program will then output the contents of memory (in hex) between the provided ranges(inclusive).

I/O for this routine requires that we develop a routine to enable the input of a 4-digit hex value and a routine for displaying the contents of a 16-bit registers/memory location as a  4-digit hex value.  You will implement each of these routines as TRAPs.

•Input (Trap x40): A Trap routine (invoked as TRAP x40) that reads a 4-digit hex from the keyboard and returns the value in R0. This trap may call other traps.  You will develop this trap routine and locate it in memory at address x4000. 
•Output (Trap x41): A Trap routine (invoked as TRAP x41) that displays the contents of R0 to the display as a 4-digit hex value.  This routine should output exactly 5 characters: a leading “x” and the 4 hex digits.  Do not display a carriage return/line feed/end-of-line as  part  of  the  trap  call. This  trap  may  also  call  other  traps.   You  will  develop  this  trap routine and locate it in memory at address x5000.

Memory Dump (main) Routine:
Address  input: The main routine must prompt the user to input a starting and ending  memory  address. It should verify that the starting address is lower than the ending address, and prompt the user to reenter the values if this is not the case, or if either input value is not a proper 4-digit hex value.

•Address output loop: Must be able to properly output (to  the console,  in  ASCII) the contents in the range of the specified start/end addresses. (See attached example).

Error checking: The input routine should verify that the input consist of exactly 4 hexadecimal characters.  It should accept uppercase ASCII characters for the hex digits A-F. If an error is detected, the routine must return the value x0000.