Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.development    |    Operating system development chatter    |    4,255 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 3,926 of 4,255    |
|    wolfgang kern to Robert Pengelly    |
|    Re: COM1 interrupt for 16-bit OS    |
|    13 Nov 23 10:01:25    |
      From: nowhere@never.at              On 13/11/2023 09:49, Robert Pengelly wrote:       > On Monday, 13 November 2023 at 08:37:18 UTC, wolfgang kern wrote:       ...              >> I found my hand written notes from 1980 on Serial Mice now,       >> two button standard:       >> 1200 baud, No Parity, 7(or8)bit, 1 stop bit       >> 1st byte       >> 7 * don't care       >> 6 == 1 sync bit       >> 5 Right Button Down       >> 4 Left Button Down       >> 3 b7 Y       >> 2 b6 Y       >> 1 b7 X       >> 0 b6 X       >> 2nd byte       >> 7 *       >> 6 == 0       >> 5..0 b5..0 X       >> 3rd byte       >> 7 *       >> 6 ==0       >> 5..0 b5..0 Y       >> assume BX points to buffer yet       >>>>> mov cl, [bx + 2]       >> AND CL, 0x7f ;can't be sure for b7==0       >> ;missed to sign extend AX,AL       >> CBW makes AX sign extended from AL       >> or ax, cx OK insert low 6 bits       >>       >> ADD [mouse_y],AX it does a SUB if AX is negativ       >> mov cl, [bx + 1]       >> AND CX,0x7f       >> MOV AL,DL       >> CBW       >> OR AX,CX       >> ADD [mouse_x],AX       >> DONE:       ...       > Just as I was going to reply you sent that last message. Anyways this seems       to work:       >       > xor ax, ax       > xor dx, dx       > xor cx, cx       > mov bx, offset buffer       >       > mov al, [bx]       > and al, HEX (0C)       >       > mov cl, 4       > shl ax, cl       >       > cbw       >       > mov cl, [bx + 2]       > or ax, cx       > add [mouse_y], ax       >       > mov al, [bx]       > and al, HEX (03)       >       > mov cl, 6       > shl ax, cl       >       > cbw       >       > mov cl, [bx + 1]       > or ax, cx       > add [mouse_x], ax       >       > but not sure if it's right or not. You did just have "CBW makes AX sign       extended from AL" so maybe the code is right.              Fine so far, you rely on b7=0 in first byte which may cause errors.       you could check of the first byte got a sync bit to avoid jumping mice.       __       wolfgang              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca