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,927 of 4,255    |
|    Robert Pengelly to wolfgang kern    |
|    Re: COM1 interrupt for 16-bit OS    |
|    13 Nov 23 01:11:22    |
      From: robertapengelly@gmail.com              On Monday, 13 November 2023 at 09:01:29 UTC, wolfgang kern wrote:       > 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       I'm a little confused by :              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.              You had:              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              in your previous message, do you mean bit 6 (i.e. the sync bit). If you do       should I do something like:              test al, 0x40       jnz .done              before the updating code              --- 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