;load cursors from memory ;IN ; eax- pointer to memory for ID of cursors ;OUT ; not returned value load_cursors: mov [PointerToCursorsID],eax mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, brush_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, flood_fill_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, lastik_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, other_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, pencil_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, pipette_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, spray_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 mcall SF_MOUSE_GET, SSF_LOAD_CURSOR, zoom_cursor, 1 mov ebx,[PointerToCursorsID] mov [ebx],eax add [PointerToCursorsID],4 ret ;set cirsor ;IN ;eax- pointer to IDs of cursors ;ebx- number(ID) of current instrument set_cursor: mov [PointerToCursorsID],eax cmp ebx,10 jne no_1_l mov eax,5 jmp che no_1_l: cmp ebx,11 jne no_2_l mov eax,1 jmp che no_2_l: cmp ebx,12 jne no_3_l mov eax,7 jmp che no_3_l: cmp ebx,13 jne no_4_l mov eax,3 jmp che no_4_l: cmp ebx,14 jne no_5_l mov eax,2 jmp che no_5_l: cmp ebx,15 jne no_6_l mov eax,6 jmp che no_6_l: cmp ebx,16 jne no_7_l mov eax,4 jmp che no_7_l: cmp ebx,17 jne no_8_l mov eax,4 jmp che no_8_l: cmp ebx,18 jne no_9_l mov eax,4 jmp che no_9_l: cmp ebx,19 jne no_10_l mov eax,4 jmp che no_10_l: cmp ebx,20 jne no_11_l mov eax,4 jmp che no_11_l: cmp ebx,21 jne no_12_l mov eax,4 jmp che no_12_l: cmp ebx,22 jne no_13_l mov eax,4 jmp che no_13_l: cmp ebx,23 jne no_14_l mov eax,4 jmp che no_14_l: cmp ebx,24 jne no_15_l mov eax,4 jmp che no_15_l: cmp ebx,25 jne no_16_l mov eax,4 jmp che no_16_l: cmp ebx,26 jne no_17_l mov eax,4 jmp che no_17_l: cmp ebx,27 jne no_18_l mov eax,4 jmp che no_18_l: cmp ebx,28 jne no_19_l mov eax,4 jmp che no_19_l: cmp ebx,45 jne no_25_l mov eax,8 jmp che no_25_l: cmp ebx,46 jne no_26_l mov eax,8 jmp che no_26_l: cmp ebx,47 jne no_27_l mov eax,8 jmp che no_27_l: cmp ebx,48 jne no_28_l mov eax,8 jmp che no_28_l: cmp ebx,49 jne no_29_l mov eax,8 jmp che no_29_l: cmp ebx,50 jne no_30_l mov eax,8 jmp che no_30_l: cmp ebx,40 je no_change_cursor cmp ebx,41 je no_change_cursor cmp ebx,42 je no_change_cursor cmp ebx,43 je no_change_cursor cmp ebx,44 je no_change_cursor cmp ebx,52 je no_change_cursor cmp ebx,51 je no_change_cursor cmp ebx,52 je no_change_cursor che: cmp eax,8 ;cursors count jg no_change_cursor dec eax shl eax,2 mov ebx,[PointerToCursorsID] add eax,ebx mov ecx,[eax] mcall SF_MOUSE_GET, SSF_SET_CURSOR no_change_cursor: ret ;delete cursors ;IN ;eax- pointer to IDs of cursors ;OUT ;not returned value delete_cursors: mov [PointerToCursorsID],eax mov edx,8 next_cursor_delete: mov eax,[PointerToCursorsID] mov ecx,[eax] mov eax,37 mov ebx,6 mcall add [PointerToCursorsID],4 dec edx jnz next_cursor_delete ret PointerToCursorsID dd 0