English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 15 December 2013, 22:22   #61
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Lightbulb

Quote:
Originally Posted by thomas View Post
@AGS: you are not handling the input events in the right order. For example on the oxlibinfo information page, if I drag the scroll bar down with the mouse, then release the button and move the mouse up, the scroll bar follows the mouse up before it realizes that I released the button.

Actually I don't know how it is even possible to program it that way. IIRC you drive the whole gui from IDCMP events. IDCMP events come in like this: mousemove, mousemove, mousemove, mousemove, mousebuttons, mousemove, mousemove, mousemove. How is it possible that the GUI follows the mouse after the button has been released?
Maybe this happens because I take the Mousepos rather from the Window than from the Message. Because I have Popupwindows that require me to get a mousepos relative to that windows. Other explanation: when you release the mousebutton, there are still messages to process. so it looks like a delay ...

Code:
.mousepos    ; make (sub)window layer-relative mouse coords
        ; a0 object, a1 inputmessage

        push    a2

        move.l    oxWin_inputmessage(a3),a1

        move.l    im_IDCMPWindow(a1),a2
        move.l    wd_MouseY(a2),d0
        swap    d0
        add.l    wd_LeftEdge(a2),d0

        move.l    oxO_objectinfo(a0),a2
        move.l    oxOI_window(a2),a2
        move.l    wd_WLayer(a2),a2
        sub.l    lr_MinX(a2),d0

        pop    a2

        move.l    d0,im_MouseX(a1)

        rts
Don't worry that I write into the message, it's a copy.

Last edited by AGS; 15 December 2013 at 22:51.
AGS is offline  
Old 16 December 2013, 18:38   #62
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Question

Can this be optimized? Just a question. Yet no need to do it.

Code:
first_member	movem.w	d3/d4-d7,-(a7)

		lea	oxO_list(a0),a0

.next_member	move.l	(a0),a0
.test_next	tst.l	(a0)
		beq.b	.return

		btst	#oxOB_DISPOSE,oxO_flags(a0)
		beq	.if_hidden

		move.l	(a0),-(a7)
		bsr	_oxDispose
		pop	a0

		bra	.test_next

.if_hidden	btst	#oxOB_HIDDEN,oxO_flags(a0)
		bne	.next_member

.if_layout	btst	#oxOB_LAYOUT,oxO_flags(a0)
		beq	.check_outside

		push	a0

		bset	#oxOB_REFRESH,oxO_flags(a0)

		move.l	oxO_parent(a0),a0
		moveq	#OXM_LAYOUT,d1
		bsr	_oxDoMethod

		pop	a0

.check_outside	; skip this object if it is completely out of the box,
		; skip also the childs except the childs are outside the box,
		; see .outsidechilds label

		move.l	oxO_class(a0),a1

		; do not skip passthrough objects like for example OX_BUFFER or listview header
		btst	#oxCB_PASSTHROUGH,oxC_flags(a1)
		bne	.passthrough

		btst	#oxCB_32BITLAYOUT,oxC_flags(a1)
		beq	.get16

		movem.l	oxO32_left(a0),d0-d3
		add.l	d0,d2
		add.l	d1,d3
		subq.l	#1,d2
		subq.l	#1,d3
		bsr	calc32to16br
		bra	.if_outside

.passthrough	bclr	#oxOB_REFRESH,oxO_flags(a0)
		beq	.down
		bset	#srB_DRAWING,d3
		bra	.down

.get16		movem.w	oxO_left(a0),d0-d3
		add.w	d0,d2
		add.w	d1,d3
		subq.w	#1,d2
		subq.w	#1,d3

.if_outside	cmp.w	d2,d4		; left of clip?		|    d2|   |d4    |
		bgt	.outsidechilds	;			           |    d6|   |d0    |
		cmp.w	d0,d6		; right of clip?
		blt	.outsidechilds
		cmp.w	d3,d5		; above clip?
		bgt	.outsidechilds
		cmp.w	d1,d7		; below clip?
		blt	.outsidechilds

		move.w	(a7),d3

		; here probably let draw all childs of a refreshing object

		btst	#srB_DRAWING,d3
		bne	.clr_refresh

		; dot not draw invisible objects and their childs yet,
		; but let them stay in refreshing state for as soon they become visible
		btst	#oxOB_VISIBLE,oxO_flags(a0)
		beq	.next_member

		; formerly I did this before the visibility check

		btst	#oxOB_REFRESH,oxO_flags(a0)
		beq	.clip

		bset	#srB_DRAWING,d3
		bra	.draw

.outsidechilds	move.w	(a7),d3

		move.l	oxO_class(a0),a1
		btst	#oxCB_OUTSIDECHILDS,oxC_flags(a1)
		beq	.next_member

.down		; store this level and go one down
		push	a0
		bsr	first_member
		pop	a0
		bra	.next_member

.clr_refresh	; if this is a child of a refreshing object,
		; ignore and clear refresh bit to avoid
		; copying this (child) to front also ...
		; ... except ... see .endrefresh label below

		bclr	#oxOB_REFRESH,oxO_flags(a0)

.draw		moveq	#OXM_DRAW,d1
		bsr	_oxDoMethod
		tst.l	d0
		beq	.clip

		; on stop clear childs refresh bits (were probably set by LAYOUT)

		push	a0
		bsr	.clear_childs
		pop	a0

		; do not descend with draw to childs

		bset	#srB_STOP,d3

.clip		; apply clip for childs

		move.l	oxO_class(a0),a1
		btst	#oxCB_CLIPPING,oxC_funcflags(a1)
		beq	.check_stop

		; store flags and alloc rectangle on stack
		move.w	d3,-(a7)
		movem.w	d4-d7,-(a7)	; parent clip as param. (might be also in oxOI_cliprect)
		move.l	a7,a1
		moveq	#OXM_GETCLIP,d1	; cannot fail
		bsr	_oxDoMethod

		; read and free rectangle on stack
		movem.w	(a7)+,d0-d3
		bsr	shrink_clip

		; get back flags
		move.w	(a7)+,d3

		; for the childs make this as new cliprect
		movem.w	d4-d7,oxOI_cliprect(a4)

		bset	#srB_CLIPPING,d3
		bset	#oxOIB_CLIPPING,oxOI_flags(a4)

		push	a0
		bsr	install_clip
		pop	a0

.check_stop	btst	#srB_STOP,d3
		bne	.parent_clip

		push	a0
		bsr	first_member
		pop	a0

.parent_clip	; keep srB_DRAWING bit for DRAWFG

		move.w	d3,d2

		; reinstall parent clip if present and store
		; for user clipping with _oxInstallClip()
		movem.w	(a7),d3/d4-d7
		movem.w	d4-d7,oxOI_cliprect(a4)

		btst	#srB_CLIPPING,d3
		bne	.reinstall
		bclr	#oxOIB_CLIPPING,oxOI_flags(a4)

		push	a0
		bsr	remove_clip
		pop	a0

		bra	.foreground

.reinstall	push	a0
		bsr	install_clip
		pop	a0

.foreground	; draw foreground (for example ghosted area in button)
		; of all objects that have refresh flag set or are childs
		; to an object with refresh flag set

		btst	#srB_DRAWING,d2
		beq	.endrefresh

		move.l	oxO_class(a0),a1
		btst	#oxCB_DRAWFG,oxC_funcflags(a1)
		beq	.endrefresh
		moveq	#OXM_DRAWFG,d1
		bsr	_oxDoMethod

.endrefresh	; if this object was the first in the tree that
		; wanted refresh, copy it to front
		bclr	#oxOB_REFRESH,oxO_flags(a0)
		bne	.copy

		; if this object requests copy explicitely, copy it
		; (makes sense if object lies outside of the
		;  parent object that was the first in the tree
		;  that wanted refresh)
		btst	#oxOB_COPY,oxO_flags(a0)
		beq	.next_member

.copy		; clear COPY bit of all objects to avoid future mess
		bclr	#oxOB_COPY,oxO_flags(a0)

		; copy only the block of the object
		; and only if there is a back rastport active
		; and it is not the full window refreshing
		; (copy-block could be shrinked to clip later)
		tst.l	oxOI_backrp(a4)
		beq	.get_back_flags

		btst	#oxOIB_REFRESHING,oxOI_flags(a4)
		bne	.get_back_flags

		move.l	oxO_class(a0),a1
		btst	#oxCB_32BITLAYOUT,oxC_flags(a1)
		beq	.copy16

		movem.l	oxO32_left(a0),d0-d3
	;	add.l	d0,d2
	;	add.l	d1,d3
	;	subq.l	#1,d2
	;	subq.l	#1,d3
		bsr	calc32to16wh

		bsr	copy_to_front
		bra	.get_back_flags

.copy16		movem.w	oxO_left(a0),d0-d3
		bsr	copy_to_front

.get_back_flags	move.w	(a7),d3
		bra	.next_member

.return		movem.w	(a7)+,d3/d4-d7

		rts
AGS is offline  
Old 16 December 2013, 18:40   #63
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
I've tested one of the later archives you've posted and it works with MCP However, it generates a software failure on exit.

Could you post the full source code? I'd like to have a look at it
Thorham is online now  
Old 16 December 2013, 18:59   #64
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Floppy disk

That's GREAT! Does this failure only happen when yo have played with the filerequester class?

There are many sources, a big one for the lib, with all control functions and some internal classes, and then one source for each external class.

Then there are three main includes for the lib/offsets and internal stuff, and one include for each external class (to be used by the apps that use gui elements of these classes).

I send you the link to a preview. Full archive is WIP, will be available soon. :-D

Last edited by AGS; 16 December 2013 at 19:11.
AGS is offline  
Old 16 December 2013, 19:36   #65
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by AGS View Post
Does this failure only happen when yo have played with the filerequester class?
It seems to be so, however, it crashes after loading Directory Opus 5.82

Quote:
Originally Posted by AGS View Post
I send you the link to a preview. Full archive is WIP, will be available soon. :-D
Thanks

Do you use Enforcer? It's very important to make sure you don't get any hits.
Thorham is online now  
Old 16 December 2013, 19:49   #66
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
I develope with UAE on Linux and sometimes I have the chance to test on Win UAE, where I have the winuaeenforcer. I did not try it on my A500 / A4000 for a long time because it was to slow there anyway, but now as I was able to improve the speed very much, I will try that again.
AGS is offline  
Old 18 December 2013, 14:52   #67
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Floppy disk

Here is the speedup B version.

NEWS

- 4 pen mode to gain even more speed on workbench that has more than 4 colors set up
- filerequester guru-at-quit bug fixed
- tested on classic A4000/40 and on UAE
- misc fixes and improvements
- demo sourcecodes and includes added

The latest version: http://images.quicktunnels.net/openxui_latest.zip

Last edited by AGS; 18 December 2013 at 16:06.
AGS is offline  
Old 18 December 2013, 16:04   #68
daxb
Registered User
 
Join Date: Oct 2009
Location: Germany
Posts: 3,303
Filerequester don`t crash on exit no more but it is still slow. I noticed (also in the older releases but ignored it) some strange comments on directory "T" and "Clipboards" (see attached pic) that aren`t there (don`t exist). Means only filereq show this.

The option "fast mouse" seems not working here. I don`t see any differnt in scrolling.

menu class has still the strange behaviour. And (I think Thomas has already mentioned it) if a menu point is open (eg. Datei) I can select a class form the information window and the menu is still visible (see attached pic). At this point the GUI is a lot slower. After selecting menu class again speed is normal again.
Attached Thumbnails
Click image for larger version

Name:	Pic_000_443x128x4.png
Views:	208
Size:	2.2 KB
ID:	38287   Click image for larger version

Name:	select file_685x100x4.png
Views:	205
Size:	1.7 KB
ID:	38288  
daxb is offline  
Old 18 December 2013, 16:18   #69
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Oh yes, thanks again. Menu class has to be rewritten with the new popupwindow API. Until then I have built in an easy way to deal with normal intuition menus. I'm afraid I can't speedup the filerequester. But it has more functions than any other filerequester on classic amiga ever. Maybe the 4 pen mode helps a bit if you run in more than 4 colors. Not to forget to say that on my UAE environment it is very fast.

The fast mouse option needs rethinking. Maybe it is not possible to do what I was trying.

I will look for the comments problem. By the way, are you interested in using some part of the gui features for one of your projects or do you regard it as really too slow for that?
AGS is offline  
Old 18 December 2013, 17:56   #70
daxb
Registered User
 
Join Date: Oct 2009
Location: Germany
Posts: 3,303
If you add a ARexx port. No, I cannot code just tried to help with some tests but I think it is fast enough (without skin. Using datatypes is mostly slower) for not to big GUI projects and maybe someone would try ox if the API is easy enough to use. As filerequester I would use asl/reqtools instead if needed. On the other hand Amiga has enough GUIs and people may think why should I change. GUI coding is boring enough.
daxb is offline  
Old 18 December 2013, 18:09   #71
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by daxb View Post
As filerequester I would use asl/reqtools instead if needed.
Yes, that would be better. There are already four different file requester libraries (and some software that uses their own). Software should use a standard one like ReqTools. In fact, I use MCP to patch the library calls for all the standard non-ReqTools requesters to ReqTools. Now everything uses ReqTools, which is great.
Thorham is online now  
Old 18 December 2013, 18:20   #72
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Well, I have patch ready that turns every filerequesters into ox' one. Currently i think i have fixed the comment bug.

The ox API is the easiest GUI API I have ever seen.
AGS is offline  
Old 19 December 2013, 15:16   #73
daxb
Registered User
 
Join Date: Oct 2009
Location: Germany
Posts: 3,303
I use asl.library from NewReqLibs archive. It uses reqtools.library for putting up asl.library requester. For Arp/Intuition I use the MCP patch.

Your filerequester seems to list a directory then sort it and list again. If so you can double speed if a directory only list after sorting.
daxb is offline  
Old 19 December 2013, 15:21   #74
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,959
Quote:
Originally Posted by AGS View Post
Can this be optimized? Just a question. Yet no need to do it.
Many optimisations can be done, but not enough infos about subroutines. Here is example:

Code:
first_member
 move.l A2,-(SP)
    movem.w    d3/d4-d7,-(a7)
 
        lea    oxO_list(a0),a2
 
.next_member    move.l    (a2),a2
.test_next    move.l    (a2),D0
        beq.b    .return
 
        btst    #oxOB_DISPOSE,oxO_flags(a2)
        beq    .if_hidden
 
        move.l    D0,A2
        bsr    _oxDispose
 
 
        bra    .test_next
 
.if_hidden    btst    #oxOB_HIDDEN,oxO_flags(a2)
        bne    .next_member
 
.if_layout    btst    #oxOB_LAYOUT,oxO_flags(a2)
        beq    .check_outside
 
;        push    a0
 
        bset    #oxOB_REFRESH,oxO_flags(a2)
 
        move.l    oxO_parent(a2),a0
        moveq    #OXM_LAYOUT,d1
        bsr    _oxDoMethod
 
 ;       pop    a0
 
.check_outside    ; skip this object if it is completely out of the box,
        ; skip also the childs except the childs are outside the box,
        ; see .outsidechilds label
 
        move.l    oxO_class(a2),a1
 
        ; do not skip passthrough objects like for example OX_BUFFER or listview header
        btst    #oxCB_PASSTHROUGH,oxC_flags(a1)
        bne    .passthrough
 
        btst    #oxCB_32BITLAYOUT,oxC_flags(a1)
        beq    .get16
 
        movem.l    oxO32_left(a2),d0-d3
        add.l    d0,d2
        add.l    d1,d3
        subq.l    #1,d2
        subq.l    #1,d3
        bsr    calc32to16br
        bra    .if_outside
 
.passthrough    bclr    #oxOB_REFRESH,oxO_flags(a2)
        beq    .down
        bset    #srB_DRAWING,d3
        bra    .down
 
.get16        movem.w    oxO_left(a2),d0-d3
        add.w    d0,d2
        add.w    d1,d3
        subq.w    #1,d2
        subq.w    #1,d3
 
.if_outside    cmp.w    d2,d4        ; left of clip?        |    d2|   |d4    |
        bgt    .outsidechilds    ;                       |    d6|   |d0    |
        cmp.w    d0,d6        ; right of clip?
        blt    .outsidechilds
        cmp.w    d3,d5        ; above clip?
        bgt    .outsidechilds
        cmp.w    d1,d7        ; below clip?
        blt    .outsidechilds
 
        move.w    (a7),d3
 
        ; here probably let draw all childs of a refreshing object
 
        btst    #srB_DRAWING,d3
        bne    .clr_refresh
 
        ; dot not draw invisible objects and their childs yet,
        ; but let them stay in refreshing state for as soon they become visible
        btst    #oxOB_VISIBLE,oxO_flags(a2)
        beq    .next_member
 
        ; formerly I did this before the visibility check
 
        btst    #oxOB_REFRESH,oxO_flags(a2)
        beq    .clip
 
        bset    #srB_DRAWING,d3
        bra    .draw
 
.outsidechilds    move.w    (a7),d3
 
        move.l    oxO_class(a2),a1
        btst    #oxCB_OUTSIDECHILDS,oxC_flags(a1)
        beq    .next_member
 
.down        ; store this level and go one down
 ;       push    a0
        bsr    first_member
 ;       pop    a0
        bra    .next_member
 
.clr_refresh    ; if this is a child of a refreshing object,
        ; ignore and clear refresh bit to avoid
        ; copying this (child) to front also ...
        ; ... except ... see .endrefresh label below
 
        bclr    #oxOB_REFRESH,oxO_flags(a2)
 
.draw        moveq    #OXM_DRAW,d1
        bsr    _oxDoMethod
        tst.l    d0
        beq    .clip
 
        ; on stop clear childs refresh bits (were probably set by LAYOUT)
 
;        push    a0
        bsr    .clear_childs
;        pop    a0
 
        ; do not descend with draw to childs
 
        bset    #srB_STOP,d3
 
.clip        ; apply clip for childs
 
        move.l    oxO_class(a2),a1
        btst    #oxCB_CLIPPING,oxC_funcflags(a1)
        beq    .check_stop
 
        ; store flags and alloc rectangle on stack
        move.w    d3,-(a7)
        movem.w    d4-d7,-(a7)    ; parent clip as param. (might be also in oxOI_cliprect)
        move.l    a7,a1
        moveq    #OXM_GETCLIP,d1    ; cannot fail
        bsr    _oxDoMethod
 
        ; read and free rectangle on stack
        movem.w    (a7)+,d0-d3
        bsr    shrink_clip
 
        ; get back flags
        move.w    (a7)+,d3
 
        ; for the childs make this as new cliprect
        movem.w    d4-d7,oxOI_cliprect(a4)
 
        bset    #srB_CLIPPING,d3
        bset    #oxOIB_CLIPPING,oxOI_flags(a4)
 
;        push    a0
        bsr    install_clip
 ;       pop    a0
 
.check_stop    btst    #srB_STOP,d3
        bne    .parent_clip
 
;        push    a0
        bsr    first_member
;        pop    a0
 
.parent_clip    ; keep srB_DRAWING bit for DRAWFG
 
        move.w    d3,d2
 
        ; reinstall parent clip if present and store
        ; for user clipping with _oxInstallClip()
        movem.w    (a7),d3/d4-d7
        movem.w    d4-d7,oxOI_cliprect(a4)
 
        btst    #srB_CLIPPING,d3
        bne    .reinstall
        bclr    #oxOIB_CLIPPING,oxOI_flags(a4)
 
 ;       push    a0
        bsr    remove_clip
  ;      pop    a0
 
        bra    .foreground
 
.reinstall
;    push    a0
        bsr    install_clip
 ;       pop    a0
 
.foreground    ; draw foreground (for example ghosted area in button)
        ; of all objects that have refresh flag set or are childs
        ; to an object with refresh flag set
 
        btst    #srB_DRAWING,d2
        beq    .endrefresh
 
        move.l    oxO_class(a2),a1
        btst    #oxCB_DRAWFG,oxC_funcflags(a1)
        beq    .endrefresh
        moveq    #OXM_DRAWFG,d1
        bsr    _oxDoMethod
 
.endrefresh    ; if this object was the first in the tree that
        ; wanted refresh, copy it to front
        bclr    #oxOB_REFRESH,oxO_flags(a2)
        bne    .copy
 
        ; if this object requests copy explicitely, copy it
        ; (makes sense if object lies outside of the
        ;  parent object that was the first in the tree
        ;  that wanted refresh)
        btst    #oxOB_COPY,oxO_flags(a2)
        beq    .next_member
 
.copy        ; clear COPY bit of all objects to avoid future mess
        bclr    #oxOB_COPY,oxO_flags(a2)
 
        ; copy only the block of the object
        ; and only if there is a back rastport active
        ; and it is not the full window refreshing
        ; (copy-block could be shrinked to clip later)
        tst.l    oxOI_backrp(a4)
        beq    .get_back_flags
 
        btst    #oxOIB_REFRESHING,oxOI_flags(a4)
        bne    .get_back_flags
 
        move.l    oxO_class(a2),a1
        btst    #oxCB_32BITLAYOUT,oxC_flags(a1)
        beq    .copy16
 
        movem.l    oxO32_left(a2),d0-d3
    ;    add.l    d0,d2
    ;    add.l    d1,d3
    ;    subq.l    #1,d2
    ;    subq.l    #1,d3
        bsr    calc32to16wh
 
        bsr    copy_to_front
        bra    .get_back_flags
 
.copy16        movem.w    oxO_left(a2),d0-d3
        bsr    copy_to_front
 
.get_back_flags    move.w    (a7),d3
        bra    .next_member
 
.return        movem.w    (a7)+,d3/d4-d7
 
  move.l  (SP)+,A2
        rts
BTW. Seems only you used POP and PUSH, which I don't like.
Don_Adan is offline  
Old 19 December 2013, 15:26   #75
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Daxb, yes I am currently fiddling with the lists to speed them up. This can be achieved by only refreshing the rows that really changed. And mabye an option "slow system" would be good, so that then files are not sorted while adding them to the List, but only once when the dir is ready. Or do not list while loading a dir at all. This latter one is at least thrice as faast as it is now.
AGS is offline  
Old 10 January 2014, 16:34   #76
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Happy

NEW Version with many improvements. Watch the new toolbar.

please try

http://images.quicktunnels.net/openxui_latest.zip

Again, if you would like to include this GUI engine in your project, I will help you.

greets
ags


PS: tested STABLE a4000/40, FS-UAE, WinUAE, OS 4.1 PPC, Morphos.
Attached Thumbnails
Click image for larger version

Name:	bild.jpg
Views:	209
Size:	92.6 KB
ID:	38603  

Last edited by AGS; 11 January 2014 at 00:01.
AGS is offline  
Old 11 January 2014, 18:15   #77
daxb
Registered User
 
Join Date: Oct 2009
Location: Germany
Posts: 3,303
Get this hit when launching oxlibinfo:
Code:
10-Jan-14   23:00:08
BYTE READ from 00000008                        PC: 01972CCE
USP : 019888DC SR: 0014  (U0)(-)(-)  TCB: 01980B60
Data: 00000114 00000095 019509DE 019509B6 00000000 00000000 00000000 00000000
----> 019509DE - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 00001126
----> 019509B6 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 000010FE
Addr: 0196DA38 00000000 019888DC 0196DA38 01812330 00000000 01812998 010826EC
Stck: 0197B46C 0197266E 00000010 00000040 019509B6 00000000 00000000 00000000
Stck: 00000000 0196DA38 01988920 019509DA 0196DA38 01812330 018DD770 01080CB0
Stck: 01972906 00004801 019509DE 0196DA38 01971EDC 019509D2 00000031 019509B6
Stck: 00000000 00000000 00000000 00000000 0196D998 0196D998 019509D2 0196D998
Stck: 01812330 01812D28 01080CB0 01972014 019509BE 00000019 019509B6 00000000
Stck: 00000000 00000000 00000000 00000000 01812330 019509B6 0196D930 01812330
----> 01972CCE - "Ram:ox/libs/oxmaster.library"  Hunk 0000 Offset 0000216E
----> 0197B46C - "Ram:ox/libs/oxmaster.library"  Hunk 0000 Offset 0000A90C
----> 0197266E - "Ram:ox/libs/oxmaster.library"  Hunk 0000 Offset 00001B0E
----> 019509B6 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 000010FE
----> 019509DA - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 00001122
----> 01812330 - "Ram:ox/oxlibinfo"  Hunk 0001 Offset 00000000
----> 01972906 - "Ram:ox/libs/oxmaster.library"  Hunk 0000 Offset 00001DA6
----> 019509DE - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 00001126
----> 01971EDC - "Ram:ox/libs/oxmaster.library"  Hunk 0000 Offset 0000137C
----> 019509D2 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 0000111A
----> 019509B6 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 000010FE
----> 019509D2 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 0000111A
----> 01812330 - "Ram:ox/oxlibinfo"  Hunk 0001 Offset 00000000
----> 01972014 - "Ram:ox/libs/oxmaster.library"  Hunk 0000 Offset 000014B4
----> 019509BE - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 00001106
----> 019509B6 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 000010FE
----> 01812330 - "Ram:ox/oxlibinfo"  Hunk 0001 Offset 00000000
----> 019509B6 - "Ram:ox/oxlibinfo"  Hunk 0000 Offset 000010FE
----> 01812330 - "Ram:ox/oxlibinfo"  Hunk 0001 Offset 00000000
PC-8: 08280007 0033670A 2F106100 FF4C205F 60EA2F08 61E2205F 60E04E75 22680018
PC *: 08290000 00086770 2268001C 08290006 001C6736 48E7C000 90A80060 92A80064
01972cae :  0828 0007 0033             btst #$7,$33(a0)
01972cb4 :  670a                       beq.s $1972cc0
01972cb6 :  2f10                       move.l (a0),-(a7)
01972cb8 :  6100 ff4c                  bsr $1972c06
01972cbc :  205f                       movea.l (a7)+,a0
01972cbe :  60ea                       bra.s $1972caa
01972cc0 :  2f08                       move.l a0,-(a7)
01972cc2 :  61e2                       bsr.s $1972ca6
01972cc4 :  205f                       movea.l (a7)+,a0
01972cc6 :  60e0                       bra.s $1972ca8
01972cc8 :  4e75                       rts
01972cca :  2268 0018                  movea.l $18(a0),a1
01972cce : *0829 0000 0008             btst #$0,$8(a1)
01972cd4 :  6770                       beq.s $1972d46
01972cd6 :  2268 001c                  movea.l $1c(a0),a1
01972cda :  0829 0006 001c             btst #$6,$1c(a1)
01972ce0 :  6736                       beq.s $1972d18
01972ce2 :  48e7 c000                  movem.l d0-d1,-(a7)
01972ce6 :  90a8 0060                  sub.l $60(a0),d0
01972cea :  92a8 0064                  sub.l $64(a0),d1
Name: "Open XUI Prefs and Info"
daxb is offline  
Old 11 January 2014, 18:46   #78
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
fixed thank you

(archive replaced)
AGS is offline  
Old 18 January 2014, 14:08   #79
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Hooooo

Please help debug!

I added a popup-list button and iconify functionality (in oxlibinfo see page 'application').

I tested with OS 4 and FS-UAE and it works. However in E-UAE it crashes when starting a second time, and in WinUAE it crashes totally when starting.

Please help debug by providing a debug output that points not into the OS but into my code if you can get such. I tried with enforcer but did not get an error output, because with enforcer WinUAE freezes when starting oxlibinfo.

File attached.

EDIT: I was able to locate that the 'second start' crash happens in the load config routine and does not happen if I comment the call to load config out (if there is no config in envarc: or env: then teh crash does not happen). The bug might sit elsewhere or be not the only one because the WinUAE crash stil happens even if I turn the load config off.

EDIT: Bug fixed, thank you.
Attached Files
File Type: zip ox_18.1.2014_bug.zip (103.0 KB, 130 views)

Last edited by AGS; 19 January 2014 at 14:24.
AGS is offline  
Old 18 January 2014, 18:20   #80
daxb
Registered User
 
Join Date: Oct 2009
Location: Germany
Posts: 3,303
Colorpicker:
Freeze/crash (no hit) after press the button preview to get the color red and then change the RGB values vial keyboard. At least it happens also in the last version.
daxb 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
Open-source dos.library Don_Adan Coders. System 273 02 September 2020 00:42
Misc Amiga Assembler Source Code copse Coders. General 14 20 October 2019 02:05
Open-source graphics library Don_Adan Coders. System 32 15 January 2013 22:15
NewsRog goes Open Source Paul News 0 04 December 2004 16:37
BlitzBasic - Is now open source Djay Amiga scene 2 08 February 2003 01:09

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 19:51.

Top

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