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,919 of 4,255    |
|    wolfgang kern to Robert Pengelly    |
|    Re: COM1 interrupt for 16-bit OS    |
|    13 Nov 23 01:56:13    |
      From: nowhere@never.at              On 13/11/2023 01:39, Robert Pengelly wrote:       > On Monday, 13 November 2023 at 00:31:02 UTC, wolfgang kern wrote:       >> 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       > The following code gives weird results as well:       >       > timer_handler:       >       > mov bx, cs:[mouse_x]       > shr bx       > shr bx       > shr bx       >       > mov cx, cs:[mouse_y]       > shr cx       > shr cx       > shr cx       > shr cx       >       > timer_handler.move:       >       > mov ah, HEX (02)       > xor bh, bh       > mov dh, cl       > mov dl, bl       > int HEX (10)       >       > I've removed the shifts from the irq handler but the cursor is dodgy.              then I assume that it is off screen, so you may not clip it correct.       __       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