English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old Today, 16:20   #1
field3d
Registered User
 
Join Date: Feb 2019
Location: USA/Texas
Posts: 81
Keyboard lag and baheviour WHDLOAD Slave

Hello. I have issues detecting in one program the cause that the keyboard is not working well. When I boot with the WHDLoad making a simply routine of bootdos. The problem is that in the input text fields if I try to type I can see the first letter of what I wrote 2 minutes after or more or maybe never. Yes each letter you type is as delayed or sometimes is never captured your letter is as stuck making a loop that I don’t detect the cause of why this delay. The program is good because if I boot from Floppy 0 problems is just the loading from the WHDLoad Slave.

This is the routine I use to call the executable, as can be seen is nothing special:

HTML Code:
		lea	_program(pc),a0
		move.l	a0,d1
		jsr	(_LVOLoadSeg,a6)
		move.l	d0,d7			
		beq	.end			;file not found
		move.l	d7,a1
		add.l	a1,a1
		add.l	a1,a1
		lea	(_args,pc),a0
		move.l	(4,a7),d0		
		sub.l	#5*4,d0			
		movem.l	d0/d7/a2/a6,-(a7)
		moveq	#_args_end-_args,d0		
		jsr	(4,a1)	
		movem.l	(a7)+,d1/d7/a2/a6
		move.l	d7,d1
		jsr	(_LVOUnLoadSeg,a6)
This is the loop that is running endlessly when you type a letter of the keyboard:

HTML Code:
000549b2 4279 0005 49da           clr.w $000549da [0000]
000549b8 4eb9 0005 4a1e           jsr $00054a1e
000549be 4a79 0005 42fc           tst.w $000542fc [0000]
000549c4 6602                     bne.b #$02 == $000549c8 (F)
000549c6 60ea                     bra.b #$ea == $000549b2 (T)
000549c8 4a68 001e                tst.w (a0,$001e) == $00054540 [0000]
000549cc 6706                     beq.b #$06 == $000549d4 (T)
000549ce 4eb9 0005 49dc           jsr $000549dc
000549d4 4cdf 7fff                movem.l (a7)+,d0-d7/a0-a6
000549d8 4e75                     rts  == $00000008
I note that this branch “000549c6 60ea bra.b #$ea == $000549b2 (T)” is what it loops to that ‘000549b8 4eb9 0005 4a1e jsr $00054a1e’ This zone is where get stuck there forever and ever or for minutes if you type something.

This is the routine of the ‘jsr $00054a1e’:

HTML Code:
00054a1e 48e7 fcfe                movem.l d0-d5/a0-a6,-(a7)
00054a22 3039 0005 42c6           move.w $000542c6 [0000],d0
00054a28 3200                     move.w d0,d1
00054a2a 671e                     beq.b #$1e == $00054a4a (T)
00054a2c b07c 0068                cmp.w #$0068,d0
00054a30 6c18                     bge.b #$18 == $00054a4a (T)
00054a32 2a7c 0005 4a5c           movea.l #$00054a5c,a5
00054a38 e541                     asl.w #$02,d1
00054a3a 2a75 1000                movea.l (a5,d1.w,$00) == $00005c58 [00000000],a5
00054a3e 670a                     beq.b #$0a == $00054a4a (T)
00054a40 4e95                     jsr (a5)
00054a42 4a79 0005 42da           tst.w $000542da [0080]
00054a48 67f8                     beq.b #$f8 == $00054a42 (T)
00054a4a 4cdf 7f3f                movem.l (a7)+,d0-d5/a0-a6
00054a4e 4e75                     rts  == $000549be
What could be the cause of that delays or that never you see the letters you write as is stuck in the loop endlessly or for several minutes?

I detected that the keyboard and mouse are detected/controlled with these routines:

HTML Code:
0005401e 48e7 fc00                movem.l d0-d5,-(a7)
00054022 4240                     clr.w d0
00054024 1039 00bf ec01           move.b $00bfec01,d0
0005402a e218                     ror.b #$01,d0
0005402c 0a00 00ff                eor.b #$ff,d0
00054030 3239 0005 42d8           move.w $000542d8 [00ff],d1
00054036 b041                     cmp.w d1,d0
00054038 6746                     beq.b #$46 == $00054080 (T)
0005403a 33c0 0005 42d8           move.w d0,$000542d8 [00ff]
00054040 13fc 0041 00bf ee01      move.b #$41,$00bfee01
00054048 343c 0100                move.w #$0100,d2
0005404c 5342                     subq.w #$01,d2
0005404e 66fc                     bne.b #$fc == $0005404c (F)
00054050 13fc 0001 00bf ee01      move.b #$01,$00bfee01
00054058 33c0 0005 42c6           move.w d0,$000542c6 [0000]
0005405e b07c 0045                cmp.w #$0045,d0
00054062 6608                     bne.b #$08 == $0005406c (F)
00054064 33fc 0001 0005 42be      move.w #$0001,$000542be [0000]
0005406c 3200                     move.w d0,d1
0005406e 0241 0080                and.w #$0080,d1
00054072 33c1 0005 42da           move.w d1,$000542da [0080]
00054078 6706                     beq.b #$06 == $00054080 (T)
0005407a 4279 0005 42c6           clr.w $000542c6 [0000]
00054080 1039 00df f00b           move.b $00dff00b,d0
00054086 1239 0005 42d2           move.b $000542d2 [b8],d1
0005408c 13c0 0005 42d2           move.b d0,$000542d2 [b8]
00054092 9001                     sub.b d1,d0
00054094 6714                     beq.b #$14 == $000540aa (T)
00054096 6d0a                     blt.b #$0a == $000540a2 (F)
00054098 0679 0001 0005 42d6      add.w #$0001,$000542d6 [0000]
000540a0 6008                     bra.b #$08 == $000540aa (T)
000540a2 0479 0001 0005 42d6      sub.w #$0001,$000542d6 [0000]
000540aa 1039 00df f00a           move.b $00dff00a,d0
000540b0 1239 0005 42d0           move.b $000542d0 [fb],d1
000540b6 13c0 0005 42d0           move.b d0,$000542d0 [fb]
000540bc 9001                     sub.b d1,d0
000540be 6714                     beq.b #$14 == $000540d4 (T)
000540c0 6d0a                     blt.b #$0a == $000540cc (F)
000540c2 0679 0001 0005 42d4      add.w #$0001,$000542d4 [0000]
000540ca 6008                     bra.b #$08 == $000540d4 (T)
000540cc 0479 0001 0005 42d4      sub.w #$0001,$000542d4 [0000]
000540d4 3039 0005 42ea           move.w $000542ea [0005],d0
000540da 5240                     addq.w #$01,d0
000540dc 33c0 0005 42ea           move.w d0,$000542ea [0005]
000540e2 b07c 0005                cmp.w #$0005,d0
000540e6 6f00 002e                ble.w #$002e == $00054116 (T)
000540ea 33fc 0000 0005 42ea      move.w #$0000,$000542ea [0005]
000540f2 3039 0005 42e8           move.w $000542e8 [0009],d0
000540f8 5240                     addq.w #$01,d0
000540fa 33c0 0005 42e8           move.w d0,$000542e8 [0009]
00054100 b07c 000a                cmp.w #$000a,d0
00054104 6d10                     blt.b #$10 == $00054116 (F)
00054106 33fc 0000 0005 42e8      move.w #$0000,$000542e8 [0009]
0005410e 0679 0001 0005 42e6      add.w #$0001,$000542e6 [001b]
00054116 4e71                     nop
00054118 4cdf 003f                movem.l (a7)+,d0-d5
0005411c 4e73                     rte  == $000548be

Last edited by field3d; Today at 17:09.
field3d is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Could the Test Drive 2 slave be patched to support keyboard? psoma support.Games 8 11 September 2021 14:19
Keyboard input lag with other programs mark_k support.WinUAE 2 15 October 2016 21:43
Keyboard lag apanloco support.FS-UAE 8 14 November 2013 20:29
WHDload ASM Slave Retro1234 Coders. General 21 27 October 2008 13:20
WinUAE keyboard lag ervin support.WinUAE 3 08 June 2004 17:59

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 18:19.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.11818 seconds with 15 queries