Jump to content
IGNORED

MAC/65 1.01 and Object Code saving


Recommended Posts

Hi folks,

 

I have started some ML coding with the ATARI XL (using for the moment the Altirra emulator). I can save source codes with a SAVE #D:name.m65 command and working ok but I do not know how to save the object code once assembled.

Have read ATARI Roots which gives a command like BSAVE #D:name.obj<startaddress,endaddress but this is not working for me. I mean I do see a file saved on the disk but I do not know how to call it back (always getting a file error).

Any idea? :? :?

Link to comment
Share on other sites

Better off assembling to disk, relying on a memory copy could allow inadvertant corruption.

 

You'd probably need to manually provide Init/Run address within the program itself, so in the source you'd need:

 

*=$2E0

.WORD INITADR

for each section where an init takes place during loading.

 

*=$2E2

.WORD RUNADR

to provide a run address for the program.

Link to comment
Share on other sites

You'd probably need to manually provide Init/Run address within the program itself, so in the source you'd need:

 

*=$2E0

.WORD INITADR

for each section where an init takes place during loading.

 

*=$2E2

.WORD RUNADR

to provide a run address for the program.

 

Oops! Addresses are swapped...

 

RUNAD is $02E0

INITAD is $02E2

 

Also, Mac/65 saves chuncks of object code. I don't remember if the chunck has a max length of 252 or 256 bytes each. Each chunk has a 4 byte header with binary pointers (loading addresses). So, don't expect a continuous block of program if you analize the resulting binary using an Hex editor. That's OK!

Link to comment
Share on other sites

I didn't realise that it also does it, Atari's AsmEd cart does it and I found it annoying enough to just manually do the BSave.

The problem is that the segment length is probably not known until the second assembly pass hits it and to do proper segments the whole thing would have to be buffered in Ram which isn't possible in a lot of cases.

Link to comment
Share on other sites

before we had STs and did our own, MAC65 compatible crossassembler (OMC65) all our prods were done with MAC65 and this was really annoying, so I did a little utility "demacer" that was cleaning the object file (had also option to skip zeroes). too bad it got lost, but i'm sure someone else did something like this as well.

  • Like 1
Link to comment
Share on other sites

I've renamed it to liner here for this offering.

Main beef I have with it is that it only allows

D1: to D1: work and no way to escape it or

return to DOS short of a power down. Antagonistic

doesn't even come close to a proper description

as to ease of use for this one. But it does do

the job.

 

Liner.zip

 

If memory serves the last program I was working

on was my memory tester EXTEST upgraded for

RAMBO type and all others such that the base

ram was preloaded with mem test bytes so that

those memory upgrades that use their memory

for 0x0000 thru 0xFFFF don't have those banks

counted as usable extended memory banks.

 

At any rate it's on the disk too, free of

charge.

 

1.01 works fine and not even sure of the

benefits of 1.02 in comparison.

  • Like 4
Link to comment
Share on other sites

  • 1 year later...
  • 2 weeks later...

To be honest, I have not tested it yet. It is just because of the number and it was developed years later. Therefore, I assume, because there was no higher version, that this must be the best version. This includes illegal opcodes. I suggest to just compare the source codes against each other. Regarding 1.01 and 1.02 there are just a few bytes...

Edited by luckybuck
Link to comment
Share on other sites

I want believe it's the better version too; but I just wonder, since it was never released, if there are possibly some problems/bugs. I also wonder, since this version is numbered so much higher, that there should be more than a few major changes and what those might be.

 

Obviously some time needs to be spent with it; but I think most serious machine language developers have long since abandoned Mac/65 and any other native assemblers, for anything more than short bits of code and nostalgia.

Link to comment
Share on other sites

https://atariwiki.org/wiki/Wiki.jsp?page=Mac65

Will answer all questions regarding MAC/65.

 

1.02 cart fixes a bug in the compiler. But it is hard to come to that bug... ;-)

 

3.6 is the best version, of course.

 

Enjoy.

That wiki page is fantastic, great work :thumbsup: Don't suppose anyone can make v3.6 into an ATR so I can try it on the Atari?

 

I want believe it's the better version too; but I just wonder, since it was never released, if there are possibly some problems/bugs. I also wonder, since this version is numbered so much higher, that there should be more than a few major changes and what those might be.

 

Obviously some time needs to be spent with it; but I think most serious machine language developers have long since abandoned Mac/65 and any other native assemblers, for anything more than short bits of code and nostalgia.

I'm glad you said "most" as I'm just about to start my 4th MAC/65 game on the Atari ;)

 

Thanks also for those file re-formatter utilities (1050 & Alfred), it's about time I tried them out too.

 

p.s. How's it going repetto?

Link to comment
Share on other sites

To be honest, I have not tested it yet. It is just because of the number and it was developed years later. Therefore, I assume, because there was no higher version, that this must be the best version. This includes illegal opcodes. I suggest to just compare the source codes against each other. Regarding 1.01 and 1.02 there are just a few bytes...

 

Since it's a blizzard here today I think I'll have a look. I wasn't really aware of this 3.6, as far as I'm concerned 1.01 was the last real version, and the 1.02 just seems to have some minor changes. I can't imagine what he might have changed in 3.6, because Mac/65 at the 1.01 level was about as good as it gets for an Atari assembler.

  • Like 1
Link to comment
Share on other sites

 

Has this been tested much? What are the the differences/improvements?

 

Doesn't seem to be much difference between 3.4 and 3.6 based on the comments. According to the MASTER here is what 3.4/3,6 have as new features:

 

0450 ; Improvments: Wild cards in FIND/REP

0460 ; Second double qoute not needed

0470 ; SAVE [EOL] saves to previously LOADed filespec

0480 ; Uses extended memory for X-Ref file

0490 ; (can X-Ref only on an 130 XE)

0500 ; Faster Pass1 ASM for Branches,

0510 ; Immediates, & Jsr/Jmp instrs.

 

None of which strikes me as useful; maybe the Save thing might be a bit handy.

  • Like 1
Link to comment
Share on other sites

@Alfred: Thanks for #13, greatly appreciated. Have to look after.

@MrFish: #16: Well, it seems, but the 1st version did start in 1982 and final ones in the late 80's, so we have 5 years of development inside. Yes, but as Alfred wrote, Mac/65 was already on the top, there is not much air left at that level... '...I just wonder, since it was never released...', well there were released through AtariAge in the OSS D-Day posts, there are 3 of them.

 

A major upate can be made with Alfred's extracted ACTION!-Editor integrated into the 3.6 version, of course. This should result into 'MAC/65 Ultimate'? With all bibs and fp in a bank switch super card from OSS with 64K? Just loud thinking as for BASIC XE, too. :-)

 

Yes, sure, more and more Atariens are using WUDSN from JAC!, incredible IDE and Job he has done. But for the old ones, like me, coming back to Stephen's work, it just feels so goooood. :-)

 

@therealbountybob: #17: Well, I am not the Wiki, just an author to, searching for more authors, too. The Wiki is at this status, because of Atariens like Alfred and MrFish, besides many thousands other users, who contribute to the Wiki through their work. It is the user's who make the Wiki great and keep it great. It is the old heros, who gave us their work to publish it there and so one. The Wiki is too big for one alone. 'Don't suppose anyone can make v3.6 into an ATR so I can try it on the Atari?' Well, we have BIN and CAR files of the 3.6 version, so why don't copy them to an atr image and start from there? Sure, go ahead with your 5th MAC/65 game, of course. :-)

 

@Alfred: I have made here: https://atariwiki.org/wiki/Wiki.jsp?page=Assemblerin the chapter: 'Overview' an Excel spreadsheet, which compares the Assemblers and the commands. '...I wasn't really aware of this 3.6...' Alfred, you are kidding, aren't you? If not, I can offer you a Skype call, where we synchronize everything. 1.02 was from OSS! There is even a special cart made for this. AtariGeezer has one of them. Hard to get, mostly above 10 rarity... BTW. We (the community) do not just have the latest version of MAC/65, we have everything except this:

https://atariwiki.org/wiki/Wiki.jsp?page=Rarity%2010

Very(!) soon, we will have the 'Holy Grail', still working on the hundreds of pages of the manual. That is the most expansive Atari program of all times, showing once and for all, that Atari was not just a 'game' machin, indeed, it was and still is much more! Thank you so much #19, that is of great help for Mac/65 Ultimate! :-)))

Edited by luckybuck
Link to comment
Share on other sites

'...I just wonder, since it was never released...', well there were released through AtariAge in the OSS D-Day posts, there are 3 of them.

 

I mean never officially released by OSS (or ICD, if they had rights to these) as commercial products, or product updates.

Edited by MrFish
Link to comment
Share on other sites

  • 9 months later...

Hoping someone can help.  Recently pulled out my A800, and am using one of thus Ardunio-based disc simulators.

 

My problem is when I'm using MAC65 with a '.INCLUDE' statement - such as 0100   .INCLUDE #D:KERNEL.M65 - my program won't assemble.  No object code is produced.  The file - KERNEL.M65 - is available on the drive. 

 

Any ideas?

 

Many thanks !!

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...