English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   request.UAE Wishlist (http://eab.abime.net/forumdisplay.php?f=56)
-   -   Feature request (http://eab.abime.net/showthread.php?t=96406)

Galahad/FLT 20 February 2019 23:29

Feature request
 
Probably not possible and probably dangerous to have external control of WinUAE inside the Amiga side of things, but would be useful.

When assembling lots of code in WinUAE, can take quite a while, certainly much faster to have it not set to cycle-exact when assembling, but obviously when it comes to testing that assembled code, its much better to switch back to cycle exact.

However, gets a bit tedious having to constantly hit F12, change to cycle exact, continue with WinUAE, then F12 and set it off again.

Dearest Toni :)

Would it be possible to have it so that if a certain string was written to a specific memory address (maybe reserved), we could toggle cycle-exact off and on from within the Amiga environment?

So for instance at the start of assembled code we could move.l #$12345678,reserved_address to activate cycle exact, and then as our code exits, clearing that memory address disables it?

I understand if this can't be done, but if it could, would be a great shortcut to help speedup development.

Hewitson 21 February 2019 06:56

The only issue I can see with this is it could potentially lead to software which only works with WinUAE.

First it's cycle exact, then we'll end up being able to switch between OCS/ECS and AGA, change CPU speeds, etc. Who knows where this would end?

ransom1122 21 February 2019 07:16

Not really. I always use unrealistic non cycle exact config when working with amiga files. Then change to quickstart when testing files.

The speed increase is so much more helpful

Toni Wilen 21 February 2019 08:56

It is already possible. You can use uae-configuration (search this forum for examples) or if you want to do it from your own code, uae-configuration source is also included in "Amiga programs" that comes with official winuae package.

EDIT: Use uae.resource method, store returned pointer. Returned pointer can be used safely in any situation, AmigaOS does not need to be running. (Note that uae.resource and uae boot rom does not exist if mode is plain unexpanded A500 etc.. It is if any enabled UAE expansion is configured)

EDIT2: everyone else: it is good idea to understand the question before replying! Assembling/compiling in CE mode is painfully slow if you also want to use CE mode to run the program!

Galahad/FLT 21 February 2019 23:04

Quote:

Originally Posted by Hewitson (Post 1306059)
The only issue I can see with this is it could potentially lead to software which only works with WinUAE.

First it's cycle exact, then we'll end up being able to switch between OCS/ECS and AGA, change CPU speeds, etc. Who knows where this would end?

No, you don't understand my point at all.

Use WinUAE in non-cycle exact mode, which makes Devpac MUCH faster to assemble, however, if in the code i'm assembling it has a special WinUAE parameter, it can trigger WinUAE to activate cycle exact to accurately replicate an Amiga running the assembled code I just made, and similarly cycle exact could be turned off again within my assembled code.

Something like this:

start: movem.l d0-d7/a0-a6,-(a7)
bsr killamigados
move.l #$12345678,$e00000 ;Tell WinUAE to activate cycle exact
bsr do_intro
bsr restore_amigados
clr.l $e00000 ; Tell WinUAE to disable cycle exact mode
movem.l (a7)+,d0-d7/a0-a6
moveq #0,d0
rts

Address $e00000 can be whatever Toni reserves.

On a real Amiga if that code was accidentally left in (not likely), it wouldn't do anything.

Doing something like this means I wouldn't have to swap config files or anything, it would all be transparent during the emulation and would make for faster development.


All times are GMT +2. The time now is 06:39.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.

Page generated in 0.05565 seconds with 11 queries