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 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!!
|
|