English Amiga Board


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

 
 
Thread Tools
Old 13 June 2019, 01:40   #1
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
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:





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
DanielAllsopp is offline  
Old 13 June 2019, 07:50   #2
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
For those who stopped banging the HW long ago a bit of info on the registers might be good.
kamelito is offline  
Old 14 June 2019, 09:35   #3
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
Nice effort!

Will be downloading this when I come home from work..
Tigerskunk is offline  
Old 17 March 2020, 23:06   #4
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
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.





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.
DanielAllsopp is offline  
Old 18 March 2020, 01:25   #5
redblade
Zone Friend
 
redblade's Avatar
 
Join Date: Mar 2004
Location: Middle Earth
Age: 40
Posts: 2,127
Wow, looks great, I wonder how this would have gone back in the day if it was released on the Amiga?
redblade is offline  
Old 18 March 2020, 04:29   #6
André
Registered User
 
Join Date: Jan 2016
Location: Melbourne, Australia
Posts: 10
I agree, this looks great! Looking forward to having a play around with it…
André is offline  
Old 18 March 2020, 07:19   #7
sparhawk
Registered User
 
sparhawk's Avatar
 
Join Date: Sep 2019
Location: Essen/Germany
Age: 55
Posts: 463
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.
sparhawk is offline  
Old 18 March 2020, 10:40   #8
Hewitson
Registered User
 
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,772
This is AWESOME!
Hewitson is offline  
Old 18 March 2020, 23:07   #9
redblade
Zone Friend
 
redblade's Avatar
 
Join Date: Mar 2004
Location: Middle Earth
Age: 40
Posts: 2,127
Quote:
Originally Posted by DanielAllsopp View Post
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?
redblade is offline  
Old 22 March 2020, 02:40   #10
buzzybee
Registered User
 
Join Date: Oct 2015
Location: Landsberg / Germany
Posts: 526
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?
buzzybee is offline  
Old 22 March 2020, 21:28   #11
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
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 is offline  
Old 31 March 2020, 19:08   #12
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
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:



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).
DanielAllsopp is offline  
Old 31 March 2020, 20:40   #13
buzzybee
Registered User
 
Join Date: Oct 2015
Location: Landsberg / Germany
Posts: 526
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

Last edited by buzzybee; 31 March 2020 at 20:51.
buzzybee is offline  
Old 31 March 2020, 22:03   #14
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
Quote:
Originally Posted by buzzybee View Post
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.
DanielAllsopp is offline  
Old 31 March 2020, 23:49   #15
buzzybee
Registered User
 
Join Date: Oct 2015
Location: Landsberg / Germany
Posts: 526
Quote:
Originally Posted by DanielAllsopp View Post
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!
buzzybee is offline  
Old 14 May 2020, 00:20   #16
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
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



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
DanielAllsopp is offline  
Old 14 May 2020, 05:00   #17
Hewitson
Registered User
 
Hewitson's Avatar
 
Join Date: Feb 2007
Location: Melbourne, Australia
Age: 41
Posts: 3,772
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.
Hewitson is offline  
Old 14 May 2020, 10:36   #18
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
Quote:
Originally Posted by Hewitson View Post
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 is offline  
Old 03 February 2021, 01:33   #19
DanielAllsopp
Registered User
 
DanielAllsopp's Avatar
 
Join Date: Feb 2018
Location: Northumberland, UK
Posts: 272
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.



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

As always, any suggestions welcome.
DanielAllsopp 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
SNES Assembler for Amiga? BSF-OF-BGP Amiga scene 4 11 February 2018 02:51
First amiga assembler Estrayk Coders. Asm / Hardware 4 02 October 2015 11:49
MacOS and AMIGA Emulation: The BEST Emulator... is? sev7en New to Emulation or Amiga scene 19 26 February 2015 14:11
Assembler for Amiga OS 3.9 NubeCheCorre support.Other 2 22 February 2012 01:39
Total Amiga Assembler pmc Coders. General 7 24 May 2007 09:40

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:24.

Top

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