Mouse Question #1 Which INT number is used for the mouse?
Mouse Question#1 Which INT number is used for the mouse? 33h
Question #1A Unlike DOS INT 21h, or BIOS INT10h, with the mouse BIOS functions, the function number is selected through the _________ register.
Question #1A Unlike DOS INT 21h, or BIOS INT10h, with the mouse BIOS functions, the function number is selected through the ____AL_____ register.
Question #2 Write ASM statements that reset the mouse and get the mouse status.
Need to find out… Which INT 33h function handles resetting the mouse and getting the status? –Look at slides –Look in book – page
Resetting Mouse Returns If mouse is found, –AX = FFFFh –BX = number of mouse buttons If no mouse found, –AX = 0
Question #2 Solutions Write ASM statements that reset the mouse and get the mouse status. Mov ax, 0;int 33h, function 0 Int 33h ;status returned in ax Cmp ax, 0;if ax=0, mouse not available
Comments about resetting mouse If mouse is found: –It is centered on the screen –It’s display page is set to video page 0 –It’s pointer is hidden –It’s mickey’s are set to pixels ratio –It’s speed is set to default values –It’s range of movement is set to the entire screen area.
Question #3 Which INT 33h function shows and hides the mouse pointer?
Question #3 Solutions Which INT 33h function shows and hides the mouse pointer? Function 1 – show Function 2- hide
Question #4 Write ASM statements that hide the mouse pointer.
Question #4 Write ASM statements that hide the mouse pointer. Mov ax, 2 Int 33h
Comments about mouse pointer Mouse driver keeps a counter –Incremented (if nonzero) by calls to function 1 –Decremented by calls to function 2 When counter is 0, pointer is displayed Function 0 (reset mouse pointer) sets counter to –1.
Question #5 Which INT 33h function gets the mouse position and status?
Question #5 Which INT 33h function gets the mouse position and status? Function 3
Question #6 Write ASM statements that get the mouse position and store it in the variables mouseX and mouseY.
Before Answering, Need to Know….. What is returned BX = mouse button status If bit 0 is set, left button is down If bit 1 is set, right button is down If bit 2 is set, middle button is down CX = X-Coordinate DX = Y-Coordinate
Question #6 Solutions Write ASM statements that get the mouse position and store it in the variables mouseX and mouseY. mov ax, 3 int 33h mov mouseX, CX movmouseY, DX
Question #7 Which INT 33h function sets the mouse position?
Question #7 Which INT 33h function sets the mouse position? Function 4
Question #8 Write ASM statements that set the mouse pointer to X=100 and Y = 400.
Before Answering Need to know… What to send… CX = X-Coordinate DX = Y-Coordinate
Question #8 Write ASM statements that set the mouse pointer to X=100 and Y = 400. Mov ax, 4 mov cx, 100 mov dx, 400 int 33h
Question #9 Which INT 33h function gets the mouse button press information?
Question #9 Which INT 33h function gets the mouse button press information? Function 5
Question #10 Write ASM statements that jump to label Button1 when the left mouse button has been pressed.
Before Answering, Need to know … What to send… BX = Button ID (0=left, 1=right, 2=center) What is returned…. AX = button status BX = button press counter CX = X-coordinate of last button press DX = Y-coordinate of last button press
Question #10 Solutions Write ASM statements that jump to label Button1 when the left mouse button has been pressed. mov ax, 5 mov bx, 0 int33h tst ax, 0 jzButton1
Comments about Button Press In an event-driven programming environment, a drag event always begins with a button press. Once a call is made to this function for a particular button, the button’s state is reset, and a second call to the function returns nothing.
Question #11 Which INT 33h function gets button release information?
Question #11 Which INT 33h function gets button release information? Function 6
Question #12 Write ASM statements that get the mouse position at the point when the right button was released, and store the position in the variables mouseX and mouseY.
Question #12 Write ASM statements that get the mouse position at the point when the right button was released, and store the position in the variables mouseX and mouseY. mov ax, 6 mov bx, 1 int33h mov mouseX, CX mov mouseY, DX
Question #13 Write ASM statements that set the vertical limits of the mosue to 200 and 400.
Question #13 Write ASM statements that set the vertical limits of the mouse to 200 and 400. mov ax, 8 mov CX, 200 mov DX, 400 int 33h
Question #14 Write ASM statements that set the horizontal limits of the mouse to 300 and 600.
Question #14 Write ASM statements that set the horizontal limits of the mouse to 300 and 600. mov ax, 7 mov cx, 300 mov dx, 400 int33h