flashjazzcat Posted June 11, 2009 Share Posted June 11, 2009 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? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 12, 2009 Share Posted June 12, 2009 you are right... i used a sync clock tool on xp... Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 12, 2009 Author Share Posted June 12, 2009 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 12, 2009 Share Posted June 12, 2009 (edited) 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 June 12, 2009 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 12, 2009 Author Share Posted June 12, 2009 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 12, 2009 Share Posted June 12, 2009 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 12, 2009 Share Posted June 12, 2009 (edited) 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 June 12, 2009 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 12, 2009 Share Posted June 12, 2009 still one of my questions unanswered... does we have now version control, too? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 12, 2009 Share Posted June 12, 2009 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? Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 12, 2009 Author Share Posted June 12, 2009 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. 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. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 12, 2009 Share Posted June 12, 2009 thx Peter... CVS seems complicated compare to my windwos tool... Quote Link to comment Share on other sites More sharing options...
laoo Posted June 13, 2009 Share Posted June 13, 2009 There is SVN plugin to subversion out there. I've been using it when working with eclipse. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 13, 2009 Share Posted June 13, 2009 ah... just saw he local history option... I guess that is enough as first step...cool feature... Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 14, 2009 Share Posted June 14, 2009 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. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 15, 2009 Author Share Posted June 15, 2009 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 15, 2009 Share Posted June 15, 2009 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. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 15, 2009 Author Share Posted June 15, 2009 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: Quote Link to comment Share on other sites More sharing options...
twh/f2 Posted June 17, 2009 Share Posted June 17, 2009 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! Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 17, 2009 Share Posted June 17, 2009 That looks superb. Can't wait to try it. Don't know if I'll change assemblers again for my main project but it will be nice to have a choice. The range of options looks very comprehensive. It will make a great IDE even better. Quote Link to comment Share on other sites More sharing options...
Tezz Posted June 17, 2009 Share Posted June 17, 2009 ...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 although I would find myself in the beer gardens moreso if I lived in Munich. I had a great time there last year. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 25, 2009 Author Share Posted June 25, 2009 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. 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 25, 2009 Share Posted June 25, 2009 That looks absolutely brilliant... I can hardly wait for this. WUDSN has halved my development time. Quote Link to comment Share on other sites More sharing options...
tjb Posted June 25, 2009 Share Posted June 25, 2009 That is bad-ass! tjb Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted June 26, 2009 Share Posted June 26, 2009 can not wait to get hands on the new IDE.... please do not forget to include the Mac OS X version of MADS. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted June 26, 2009 Author Share Posted June 26, 2009 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)... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.