Login
Back to forumReply to this topicGo to last reply

Posted By

Charles
on 2023-11-04
10:27:37
 Macro Assembler Question

Hi Guys,
I wonder if anyone else is using or familiar with Macro Assembler (by Alfred Arnold) as I would need a bit of help.

I am struggling with defining memory area for certain data outside the actual program/data area defined with ORG statements. In this example I have some data defined after the code. But I would like to store these at $0400 out of the boundaries of the actual PRG file. Is there any practical way to define these outside the program area?

ORG $1000
sei
sta $ff3f
.....code.....

frozenmaplo
BYT [8]$00
tfrozenmaphi
BYT [8]$00
tfrozencoold
BYT [8]$00

Obviously I can set stuff like
tfrozemaplo = $0400
tfrozenmaphi = $0408
tfrozencoold = $0410

but there are many of them, not just 3, and dim sizes may still change, so I would loose a lot of flexibility.

Anyone with any good idea please? I could not find anything useful in the Docs.

Posted By

gerliczer
on 2023-11-04
10:51:55
 Re: Macro Assembler Question

Not sure if it helps you, but study SEGMENT and SFR in the documentation. Also, disclosing the full name of the assembler, i. e. The Macro Assembler AS, couldn't have hurt. Unfortunately, calling something Macro Assembler is a too popular and obvious idea for assembler developers.

Posted By

Charles
on 2023-11-04
14:13:06
 Re: Macro Assembler Question

Yeah Macro Assembler AS, it does not say that when I run the executable but it's in the docs.
I checked Segment already and no luck, 6502 family only supports one (code) segment


SFR - just checked - is like EQU for defining constants, I can't figure out how could I use for my purpose.
Anyway Thanks..

Posted By

gerliczer
on 2023-11-04
15:54:24
 Re: Macro Assembler Question

Then maybe it is time to think about changing assembler. If you are not insisting on a multi-target software there are quite a few to choose from. I heard good things about Kick Assembler, and based on what I saw in the source of IstvanV's FLI display code for his image converter utility ca65 might be a nice choice too. IIRC, TMR used ACME which seemingly also had nice features, though I studied that even less than the other two.

Posted By

SVS
on 2023-11-04
16:06:33
 Re: Macro Assembler Question

You can obtain these results by using my SVS-Mega assembler.
With it, you can set the address where the code will (load and) run, and a second location where the code is stored during the assemblying.
For example: .ORG $0400,$7000
With this directive the code will be written FOR address $0400... but is temporary stored since $7000 so that no overwriting succeeds.

Posted By

gerliczer
on 2023-11-05
02:29:44
 Re: Macro Assembler Question

To my understanding that's not exactly what Charles looking for. And it is even less likely that he wants to work with native software instead of cross development.

Posted By

Charles
on 2023-11-05
08:11:44
 Re: Macro Assembler Question

Anyway Guys, Thank You. After having thousands and thousands of code lines I will not switch to another assembler with different semantics due to such a small issue happy
However, in the meantime I have found a strikingly easy solution. The binary converter/merger (p2bin) which I use to create the final PRG is able to filter out a memory range. So I can have <$800 data after an ORG definition in the asm file but the actual PRG will start at $1001.

Edit: BSZ provided a better, native soluton in Macros Assembler AS, there's a command called RMB (reserve memopry block) which reserves x bytes w/o including in the binary output. Thank You!!



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024