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 4,024 of 4,255    |
|    Robert Pengelly to Robert Pengelly    |
|    Re: COM1 interrupt for 16-bit OS    |
|    01 Dec 23 06:21:36    |
      From: robertapengelly@gmail.com              On Friday, 1 December 2023 at 14:09:27 UTC, Robert Pengelly wrote:       > On Friday, 1 December 2023 at 14:04:58 UTC, Robert Pengelly wrote:       > > On Monday, 13 November 2023 at 09:47:06 UTC, wolfgang kern wrote:       > > > On 13/11/2023 10:39, Robert Pengelly wrote:       > > >       > > > > Yeah, I have. Thanks for all the help.       > > > You're Welcome,       > > > this trip into the past confirmed that my brain still works,       > > > almost all other body parts are either artificial or death :)       > > > __       > > > wolfgang       > > > whenever you got more questions just ask away.       > > Can you figure out what I'm doing wrong with the following code:       > >       > > serial_handler:       > >       > > push ax       > > push bx       > > push cx       > > push dx       > > push ds       > >       > > mov ax, cs       > > mov ds, ax       > >       > > mov dx, HEX (03FD)       > > in al, dx       > >       > > test al, HEX (40)       > > jz serial_handler.done       > >       > > test al, HEX (01)       > > jz serial_handler.done       > >       > > mov dx, HEX (03F8)       > > in al, dx       > >       > > mov bx, [serial_index]       > > mov [serial_buffer + bx], al       > >       > > inc word ptr [serial_index]       > >       > > cmp bx, 2       > > jb serial_handler.done       > >       > > serial_handler.got_all:       > >       > > mov word ptr [serial_index], 0       > > xor ax, ax       > > xor dx, dx       > > xor cx, cx       > > mov bx, offset serial_buffer       > > mov al, [bx]       > >       > > test al, HEX (40)       > > jz serial_handler.done       > > and al, HEX (0C)       > >       > > mov cl, 4       > > shl ax, cl       > >       > > cbw       > >       > > mov cl, [bx + 2]       > > or ax, cx       > > mov [delta_y], ax       > > mov al, [bx]       > > and al, HEX (03)       > >       > > mov cl, 6       > > shl ax, cl       > >       > > cbw       > >       > > mov cl, [bx + 1]       > > or ax, cx       > > mov [delta_x], ax       > >       > > serial_handler.done:       > >       > > mov al, HEX (20)       > > out HEX (20), al       > >       > > pop ds       > > pop dx       > > pop cx       > > pop bx       > > pop ax       > > iret       > >       > > If the "mov [delta_x], ax and mov [delta_y], ax" parts are changed from       "add [mouse_x], ax and add [mouse_y], ax". The latter was working but for some       reason the new code doesn't.       > Also, forgot to mention that if I change "cmp bx, 2" to "cmp bx, 1" the x       position seems to update like expected.       I reverted back to previous code:              serial_handler:               push ax        push bx        push cx        push dx        push ds               mov ax, cs        mov ds, ax               mov dx, HEX (03FD)        in al, dx               test al, HEX (40)        jz serial_handler.done               test al, HEX (01)        jz serial_handler.done               mov dx, HEX (03F8)        in al, dx               test al, HEX (40)        jz serial_handler.skip_init               xor bx, bx        mov cx, 2               mov [serial_count], cx        mov [serial_index], bx              serial_handler.skip_init:               mov bx, offset serial_buffer        add bx, [serial_index]               mov [bx], al        inc word ptr [serial_index]               dec word ptr [serial_count]        jnz serial_handler.done              serial_handler.got_all:               xor ax, ax        xor dx, dx        xor cx, cx               mov bx, offset serial_buffer        mov al, [bx]               test al, HEX (40)        jz serial_handler.done               and al, HEX (0C)               mov cl, 4        shl ax, cl               cbw               mov cl, [bx + 2]        or ax, cx        mov [delta_y], ax               mov al, [bx]        and al, HEX (03)               mov cl, 6        shl ax, cl               cbw               mov cl, [bx + 1]        or ax, cx        mov [delta_x], ax              serial_handler.done:               mov al, HEX (20)        out HEX (20), al               pop ds        pop dx        pop cx        pop bx        pop ax        iret              and things seem to be fixed but the Y position seems to be jumpy. Any ideas       how to fix that.              --- 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