; Include file for dumping user apps' memory through new debug BOARD ; Max amount of bytes to be dumped IPC_BUF equ 160 ; Dump macro parameters: ; ptr - pointer to memory dumped ; len - dump length ; workarea - any work area for sysfunc 9 ; run_new - if not empty, run BOARD unless it is running already macro Dump ptr, len, workarea,run_new { local .exist,.lt pusha mov ebx,workarea call Board_seek if ~ run_new eq test edx,edx jne .exist mcall 70,Board_seek.board_fn,0 mov edx,eax mcall 5,20 end if .exist: mov esi,len cmp esi,IPC_BUF jbe .lt mov esi,IPC_BUF .lt: mcall 60,2,edx,ptr popa } if used Board_seek Board_seek: ; ebx - prcinfo xor edx,edx mcall 9,,-1 mov ecx,eax mov esi,dword[.board_fn] .lp: mcall 9 cmp dword[ebx+10],esi ; jne .no ; cmp dword[ebx+42],399 je .ok .no: loop .lp ret .ok: mov edx,[ebx+30] ret .board_fn: dd 7 dd 0 dd 0 dd 0 dd 0 db '/sys/develop/BOARD',0 end if