English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Coders. Asm / Hardware (https://eab.abime.net/forumdisplay.php?f=112)
-   -   Amiga Assembler Helper tool for macOS (https://eab.abime.net/showthread.php?t=97698)

DanielAllsopp 13 June 2019 01:40

Amiga Assembler Helper tool for macOS
 
Hey!

In my everlasting quest to make a decent toolchain for developing, and learning, Assembler for the Amiga I've built the following tool for macOS.

Basically, you supply it with a nice filled out XML file of the hardware registers, which is parsed and used by the UI to help extract values and base 16 values which you can use in your code.

Keep in mind this is for simple cases where the user is brand new to the concept of 68k and the Amiga hardware, and will hopefully be a nice interactive knowledge base, based on reading various tutorials, forum posts etc. to glean as much help as possible.

A few screenshots:

http://www.the-snakepit.co.uk/temp/a...enshot_001.png
http://www.the-snakepit.co.uk/temp/a...enshot_002.png
http://www.the-snakepit.co.uk/temp/a...enshot_003.png

and a preview MOV file:

Preview Screen Capture

Sorry if macOS isn't your choice of OS, but unfortunately as an iOS developer that's what I work with.

So, does anyone want to help test it? Does anyone have any suggestions of how I can progress the idea?

Should I continue, or leave it?

All comments welcome, positive or negative. Oh, and I'm sorry if this is in the wrong place... please let me know where I can, or should move it too if it doesn't belong here.

Thanks,
Daniel

kamelito 13 June 2019 07:50

For those who stopped banging the HW long ago a bit of info on the registers might be good.

Tigerskunk 14 June 2019 09:35

Nice effort!

Will be downloading this when I come home from work..

DanielAllsopp 17 March 2020 23:06

Initial Release
 
Hey!

In between messing on with 68k and actual work, I've managed to put together a first release of my helper application for macOS.

https://www.the-snakepit.co.uk/asset..._registers.png
https://www.the-snakepit.co.uk/asset...ow_display.png
https://www.the-snakepit.co.uk/asset...ow_colours.png

It's pretty rudimentary at the minute but I add to it when I figure something out from the help I receive on here. Of course I'll keep adding to it as time goes by.

Hopefully someone else will find it useful.

Download for macOS here: Black Arrow v0.1

Requires macOS Mojave or later.

redblade 18 March 2020 01:25

Wow, looks great, I wonder how this would have gone back in the day if it was released on the Amiga?

André 18 March 2020 04:29

I agree, this looks great! Looking forward to having a play around with it…

sparhawk 18 March 2020 07:19

Looks pretty cool! Is it a native app? Would be cool if it were java or something, so it can be run on other than MacOS as well.

Hewitson 18 March 2020 10:40

This is AWESOME!

redblade 18 March 2020 23:07

Quote:

Originally Posted by DanielAllsopp (Post 1326974)
Sorry if macOS isn't your choice of OS, but unfortunately as an iOS developer that's what I work with.

Will there be an IPad version?

buzzybee 22 March 2020 02:40

Won´t run on OS 10.13, and I can´t use 10.14 on my mid-2011 iMac unfortunately. Any chance you re-compile for use on earlier than Mojave-systems?

DanielAllsopp 22 March 2020 21:28

Thanks for the feedback lads. I'll try and answer your questions below :-)

1. Yes, this is a native app built with Objective-C. It does contain some ANSI C in there too though so I'd say apart from the GUI it's pretty portable.

2. An iPad version could be a possibility. If I'd known that the ability to run iPad apps on macOS would become reality in Catalina then I'd have started it as an iPad app and had pretty much both for the price of one. As I've done it the other way, it would be a bit more tricky.

3. I'll take a look at the minimum macOS version. It'll just have been left at what the default was when I started the project, so Mojave. I don't think I do anything special to warrant the later OS versions so should be possible.

Thanks again, and I hope some people would find it useful. Also, any suggestions as to what you'd like to see supported or added, please let me know. I am going to have quite a bit of spare time coming up, as we all are!

DanielAllsopp 31 March 2020 19:08

Good Afternoon!

Well, I'm self-isolating for the next week so plenty of time to play with my ASM coding which usually results in functionality being added to this little tool.

This time, I found that repeating sprite data was a particular pain in the arse:

Code:

;      WAIT        MOVE          WAIT        MOVE
  dc.w $2c81,$fffe, SPR4POS,$2cc5, $2cdf,$fffe, SPR4POS,$2c45
  dc.w $2d81,$fffe, SPR4POS,$2dc5, $2ddf,$fffe, SPR4POS,$2d45
  dc.w $2e81,$fffe, SPR4POS,$2ec5, $2edf,$fffe, SPR4POS,$2e45
  dc.w $2f81,$fffe, SPR4POS,$2fc5, $2fdf,$fffe, SPR4POS,$2f45
  dc.w $3081,$fffe, SPR4POS,$30c5, $30df,$fffe, SPR4POS,$3045
  dc.w $3181,$fffe, SPR4POS,$31c5, $31df,$fffe, SPR4POS,$3145
  dc.w $3281,$fffe, SPR4POS,$32c5, $32df,$fffe, SPR4POS,$3245
  dc.w $3381,$fffe, SPR4POS,$33c5, $33df,$fffe, SPR4POS,$3345
  dc.w $3481,$fffe, SPR4POS,$34c5, $34df,$fffe, SPR4POS,$3445
  dc.w $3581,$fffe, SPR4POS,$35c5, $35df,$fffe, SPR4POS,$3545
  dc.w $3681,$fffe, SPR4POS,$36c5, $36df,$fffe, SPR4POS,$3645
  dc.w $3781,$fffe, SPR4POS,$37c5, $37df,$fffe, SPR4POS,$3745
...

So, unless there's an easier way to do it in ASM I thought I'd create a new section in the app which allows the output of this data so I can just copy and paste it:

https://www.the-snakepit.co.uk/asset...row_copper.png

What you can see here is an easy way to repeat a sprite by waiting and resetting the position.

1. The sprite is 48 pixels high, so I want 48 iterations
2. The initial WAIT is set the roughly the middle of the screen horizontally, and at the very top vertically. Mask is standard
3. After the initial WAIT, I can add as many MOVE or WAIT commands as necessary. Adding either will put that command into the list on the right.
4. In this example, the first MOVE will automatically increment the vertical value to match each scanline value, but keep the horizontal value as c5 for each scanline
5. I then insert a WAIT which is waiting until the end of each scanline
6. The last MOVE will then reset the sprite position for each scanline

Output code, copy and paste. Done. ;)

Download for macOS here: Black Arrow v0.2

This version has been recompiled for macOS 10.13 (High Sierra).

buzzybee 31 March 2020 20:40

Did something like this within RESHOOT R-code to generate a copperlist which re-uses one 64 pixel wide sprite to create the illusion of an additional visual layer. Should be compatible with ASM One. Seem I need to re-use this as long as your wonderful tool does not work on my my mac-setup :-)

Code:

...
parSpriteY SET displayWindowStart+1
...

REPT noOfScanlines-4
parSpriteX SET $3a
IF parSpriteY<230
    REPT 5
    dc.w (parSpriteY<<8)&$ff00+parSpriteX-$4!1
    dc.w $ff<<8+%11111110
    cmove SPR6POS,(parSpriteY<<8)&$ff00+parSpriteX+3
parSpriteX    SET parSpriteX+$20
    ENDR
...
parSpriteY    SET parSpriteY+$1
...
ENDR


DanielAllsopp 31 March 2020 22:03

Quote:

Originally Posted by buzzybee (Post 1388773)
Did something like this within RESHOOT R-code to generate a copperlist which re-uses one 64 pixel wide sprite to create the illusion of an additional visual layer. Should be compatible with ASM One. Seem I need to re-use this as long as your wonderful tool does not work on my my mac-setup :-)

Code:

...
parSpriteY SET displayWindowStart+1
...

REPT noOfScanlines-4
parSpriteX SET $3a
IF parSpriteY<230
    REPT 5
    dc.w (parSpriteY<<8)&$ff00+parSpriteX-$4!1
    dc.w $ff<<8+%11111110
    cmove SPR6POS,(parSpriteY<<8)&$ff00+parSpriteX+3
parSpriteX    SET parSpriteX+$20
    ENDR
...
parSpriteY    SET parSpriteY+$1
...
ENDR


I love seeing all of the different ways people use to get around these issues.

I did recompile it to support 10.13 by the way, this version should support High Sierra.

buzzybee 31 March 2020 23:49

Quote:

Originally Posted by DanielAllsopp (Post 1388795)
I did recompile it to support 10.13 by the way, this version should support High Sierra.

Downloaded and started the latest version, and bingo – works. Great, thank you!

DanielAllsopp 14 May 2020 00:20

Hey!

Just another update to my little helper tool (v0.3), which mainly adds the ability to output copper commands to create a rainbow from the current palette; another little problem I had whilst coding that I wanted to make easier :)

https://www.the-snakepit.co.uk/asset...olours_0.3.png

Download link: https://www.the-snakepit.co.uk/files/BlackArrow_0.3.zip

Have fun and give me a shout if there's anything anyone would like me to add, or fix, or implement :great

Hewitson 14 May 2020 05:00

This utility is getting even more amazing with every release. If you don't mind me saying though, I think the name could possibly be improved.

DanielAllsopp 14 May 2020 10:36

Quote:

Originally Posted by Hewitson (Post 1399639)
This utility is getting even more amazing with every release. If you don't mind me saying though, I think the name could possibly be improved.

Haha, of course I don’t mind you saying; it is a terrible name. It’s still only a pre-release though and you know what programmers tend to say, naming anything is always a struggle.

It’ll definitely change before v1.0 so any suggestions are more than welcome.

Thanks for your kind comments too!

DanielAllsopp 03 February 2021 01:33

Hey!

A small update to my little helper tool (v0.4), which adds the ability to output offset data tables based on width, height, depth and alignment. :)

https://www.the-snakepit.co.uk/asset...arrow_data.png

Download link: https://www.the-snakepit.co.uk/files/BlackArrow_0.4.zip

As always, any suggestions welcome.


All times are GMT +2. The time now is 10:44.

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

Page generated in 0.08580 seconds with 11 queries