Jump to content
IGNORED

WUDSN IDE: The free integrated Atari 8-bit development plugin for Eclipse


Recommended Posts

re: system clock.

 

well... after being in OS X the XP hour is completly off but I set up in Windows that it syncs via internet after an hour or so... (why not as soon as you are on the net like OS X? ;))

There's definitely a software fix for this; I'll have a look tomorrow and post it here. :)

 

Alarmingly, The Last Word as compiled by ATASM crashes the emulator. Upon inspecting the object file, I noticed that the assembler has attempted to reorganize the code segments according to their position in memory. This is disastrous. There are two segments in the middle of the code which load at $4300 but are relocated under the OS ROM by LW's loader module. Several code segments load after that in lower RAM to do other stuff. Clearly they must occur in the prescribed order. The two relocatable segments use the .SET 6,[offset] pseudo-op so that the location counter starts at $C000 and $D800 respectively. Can any ATASM experts tell me why these two segements are at the end of the object file?

Link to comment
Share on other sites

Alarmingly, The Last Word as compiled by ATASM crashes the emulator. Upon inspecting the object file, I noticed that the assembler has attempted to reorganize the code segments according to their position in memory. This is disastrous. ... Can any ATASM experts tell me why these two segements are at the end of the object file?

 

Hi flashjazzcat. Yes, by default ATASM sorts the segments by address and warns if the same address is overwritte by code or data. You can start a new segment with the ".bank" directive. See the docs of V1.06.

 

Best regards, Peter.

Link to comment
Share on other sites

Yes, by default ATASM sorts the segments by address and warns if the same address is overwritte by code or data. You can start a new segment with the ".bank" directive. See the docs of V1.06.

Thanks Peter. I thought it might be something to do with the .BANK directive, but I wasn't sure. Will using ".BANK" at the start of each segment also keep them in order? Another thing I noticed is that the two relocating segments which are moved to $C000 and $D800 are set to load at these addresses even though their origins are both $4300. This is incorrect. They begin along the lines of:

 

 *= $4300
;
.SET 6,$C000-$4300

Surely this should load at $4300 but with the location counter starting at $C000. This isn't happening: The binary header for this segment says $C000. Am I misunderstanding use of the .SET 6 directive?

Edited by flashjazzcat
Link to comment
Share on other sites

Hi,

 

Actually i never needed the ".bank" directive because for larger projects I always had a build script. I just tried the following code (mention the changes):

; Bank 0
; Bank 0
.bank
.set 6,0
*	= $8000

start	lda #0
jmp *

; Bank 1
.bank
.set 6,0
*	= $2e0
.word start

; Bank 2
.bank
.set 6,$4300-$C000
*	= $C000

lda #1
sta label+1
label	lda #2
jmp *

 

The docs say "This directive will cause code to assemble to the current location plus the value of the given expression." and the result is:

ff ff 00 80 04 80 a9 00 4c 02 80

e0 02 e1 02 00 80

00 43 09 43 a9 01 8d 06 c0 a9 02 4c 07 c0

 

So sequence is OK. I don't know how MAC65 interprets ".set" but the above is one valid interpreation of "to assemble to the current location plus..". I found one minor problem there: If you use the .set directive with .bank, you need to have a ".set 6,0" in every bank. Otherwise the offset is not reset for the secon compile pass and will cause errors.

Link to comment
Share on other sites

Hi,

 

Actually i never needed the ".bank" directive because for larger projects I always had a build script. I just tried the following code (mention the changes):

; Bank 0
; Bank 0
.bank
.set 6,0
*	= $8000

start	lda #0
jmp *

; Bank 1
.bank
.set 6,0
*	= $2e0
.word start

; Bank 2
.bank
.set 6,$4300-$C000
*	= $C000

lda #1
sta label+1
label	lda #2
jmp *

 

The docs say "This directive will cause code to assemble to the current location plus the value of the given expression." and the result is:

ff ff 00 80 04 80 a9 00 4c 02 80

e0 02 e1 02 00 80

00 43 09 43 a9 01 8d 06 c0 a9 02 4c 07 c0

 

So sequence is OK. I don't know how MAC65 interprets ".set" but the above is one valid interpreation of "to assemble to the current location plus..". I found one minor problem there: If you use the .set directive with .bank, you need to have a ".set 6,0" in every bank. Otherwise the offset is not reset for the secon compile pass and will cause errors.

OK - thanks for that. It's vital that I can create multiple segments loading at the same address, and that the segments are arranged in exactly the right order. I'll give it a try tonight and let you know how I get on. :)

Link to comment
Share on other sites

Great - it compiles and runs now. I merely preceded ALL segments with ".bank" and made a few other minor tweaks. The new source code has introduced a (not unfamiliar) bug into the init routine but I suppose one bug isn't bad going. :) I'm sure it's related to the "Q_FLAG" compilation error... If I can get this ironed out, I'll be totally happy. I verified the integrity of the newly compiled code by comparing segment maps with a known working copy. They're now identical, save for a 3 byte size difference in one of the init segments. I'll bet that's where the problem lies.

 

I also tried WUDSN under OS X and it works just as well with the Mac version of ATASM. The Hackintosh has always been a little unstable, though, and I reverted to Vista after Eclipse unexpectedly shut down and wouldn't open again. Still, it's nice to have identical IDEs in both OSs.

Edited by flashjazzcat
Link to comment
Share on other sites

still one of my questions unanswered... does we have now version control, too?

 

I managed to compile my first hello world in eclipse... where is the damned /tmp folder in the mac version??? and why does it generate atari.exe even when there is a different filename?

 

Hi Heaven,

 

Yes, there is version control. It is a build in feature of Eclipse. By default CVS client support is included and can be configured in the preferences via Team/CVS. Additional versioning plugins exist on the Eclipse home page (subclipse to connect to subversion, others...). Via the context menu entry "Team" of the file in the project explorer you can share the project and then check-in/check-out individual file versions.

post-17404-1244844406_thumb.pngpost-17404-1244844827_thumb.png

 

Regarding "/tmp" on Mac I cannot help but the output file name is currently fix "atari.xex" (and "atari.lbl"). It will be configurable in the upcoming version (see above).

 

Regards, Peter.

Link to comment
Share on other sites

Error reporting is a little inconsistent. If I add new code with an out of range relative jump, it just gets reported in the IDE as an "Unknown Error". I have to head for the command prompt and do a manual compile to see exactly what the error was (and I do wish ATASM wouldn't bail on the first error it finds). It would be nice if the IDE reported the exact error ATASM threw up.

Link to comment
Share on other sites

Error reporting is a little inconsistent. If I add new code with an out of range relative jump, it just gets reported in the IDE as an "Unknown Error".

Hi, can you just paste that source code? I'am also adding a console view of the original output currently, but of course navigation should be correct.

Link to comment
Share on other sites

Error reporting is a little inconsistent. If I add new code with an out of range relative jump, it just gets reported in the IDE as an "Unknown Error".

Hi, can you just paste that source code? I'am also adding a console view of the original output currently, but of course navigation should be correct.

To reproduce those exact circumstances, I'd have to paste 13,000 lines of code. :) In any case, now it's fixed I can't even reproduce it. Sorry about that: if I'd thought ahead, it would have been useful to replicate the error. Fatal compile errors often don't go away, though, even when the source code is fixed. I have to restart eclipse to clear everything and then the code compiles properly.

 

If another similar problem crops up in the next couple of days, I'll send you the code.

Link to comment
Share on other sites

I remember I had this effect with the remaining error message once before. It is also listes in the "Known Bugs" section and how you can fix it without closing Eclipse.

 

I'm progressing quite good in separating the core code from the individual assembler code. Yesterday made the first steps in creating extension points and today I completed them. Eclipse is a really cool tool for creating such projects. I'm also adding the configuration option to set the comiler arguments manually.

 

So here's a little teaser:

post-17404-1245100159_thumb.pngpost-17404-1245100166_thumb.png

Link to comment
Share on other sites

Wow! This looks really cool. Can't wait to use it with MADS. Would be the right argument to get into coding of my idle projects again. I'm currently in the summer break and I am quite unmotivated. In this part of the year I rather prefer to spend my time in those wonderful Biergarten's here in Munich ... can WUDSN change my mind? I'm afraid so :)

 

grtx,

\twh!

Link to comment
Share on other sites

...I'm currently in the summer break and I am quite unmotivated. In this part of the year I rather prefer to spend my time in those wonderful Biergarten's here in Munich ... can WUDSN change my mind? I'm afraid so :)

 

grtx,

\twh!

I always find time for both :D although I would find myself in the beer gardens moreso if I lived in Munich. I had a great time there last year.
Link to comment
Share on other sites

  • 2 weeks later...

Hi there,

 

While I'm struggling with SWT to align my fields correctly, I also had an idea of what I always wanted to have.

So I added a (read-only) hex-editor and a multi-target context menu to the binary includes. The hex editor is also availble in the context menu for arbitray files.

It recognizes the COM file format and display the file segments in the outline.

post-17404-1245944027_thumb.pngpost-17404-1245944035_thumb.png

 

Besides I have contacted Marc Schmelzenbach an he'll include the Mac binary of ATASM into the standard distribution.

 

So, maybe I'll make it and release an update this weekend.

 

Peter.

Link to comment
Share on other sites

please do not forget to include the Mac OS X version of MADS.

Hmm, where should I include it (and where is it?). The IDE will only link the Download sites. Regarding ATASM the sourceforge archive will be updated. For MADs I don't have a contact (and not Mac to test on)...

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...
  • Recently Browsing   0 members

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