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,917 of 4,255    |
|    wolfgang kern to Robert Pengelly    |
|    Re: COM1 interrupt for 16-bit OS    |
|    13 Nov 23 01:30:58    |
      From: nowhere@never.at              On 13/11/2023 01:01, Robert Pengelly wrote:       > On Sunday, 12 November 2023 at 23:55:27 UTC, wolfgang kern wrote:       >> On 12/11/2023 23:14, Robert Pengelly wrote:       >> ...       >>> Also, how do I scale down a number in assembly?       >> SHR 3 ;aka divide by 8       >> SHR 4 ;aka divide by 16       >> both rounds down, but who cares?       >>       >> odd divide values can perform with a combination of SHR and MUL or even       >> with the famous awful slow DIV instruction.       >>       >> __       >> wolfgang       > So I was doing it right. I have:       >       > xor ax, ax       > xor dx, dx       > xor cx, cx       >       > mov al, [buffer]       > and al, HEX (0C)       >       > mov dl, [buffer]       > and dl, HEX (03)       >       > mov cl, 4       > shl ax, cl       >       > mov cl, 6       > shl dx, cl       >       > mov cl, [bx + 2]       > or ax, cx       > add ax, [mouse_y]       >       > mov cl, 4       > shr ax, cl       >       > mov cl, [bx + 1]       > or dx, cx       > add dx, [mouse_x]       >       > mov cl, 3       > shr dx, cl       >       > mov [mouse_x], dx       > mov [mouse_y], ax       >       > but I'm getting weird results, am I shifting in the right place?              I'd keep mouse positions stored in pixels and only scale down for cursor       updates.       __       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