Gury Posted February 14, 2010 Author Share Posted February 14, 2010 Hi, My project is not abandoned, the problem is lack of time. I agree that it is easy to abandon the project, it is even easier to just watch the development. I released the source code, so anybody can continue with the project. I will focus on my version with Action! syntax, no matter how many similar parallel projects will appear. Gury Quote Link to comment Share on other sites More sharing options...
jp48 Posted May 24, 2010 Share Posted May 24, 2010 Hi Gury, Very nice to hear that the project has not been abandoned ! I've used effectus for few simple task, however I'm mostly interested of using POKEY with it. There seems to be a problem with the Sound-command, can't find any reason why it doesn't work as it should be. Anyway, here's an example code: FOR i = 5 TO 120 DO PrintBE(i) Sound(1,i,10,10) j=0 WHILE j<4000 DO j=j+1 OD SndRst() OD About half of the notes works (plays), second half is silent, just two clicks (opening/closing the speaker) is heard. Sorry if this is wrong place to send error/bug reports, didn't find any other. Good luck for the project, hope you find time as Action!/effectus is an excellent choice for the cross-compiler, there are not too many Atari cross-compilers for Windows/Linux out there ! -J Hi, My project is not abandoned, the problem is lack of time. I agree that it is easy to abandon the project, it is even easier to just watch the development. I released the source code, so anybody can continue with the project. I will focus on my version with Action! syntax, no matter how many similar parallel projects will appear. Gury Quote Link to comment Share on other sites More sharing options...
Gury Posted June 2, 2010 Author Share Posted June 2, 2010 Hi jp48, Of course, the project is alive and I will come to it when I get more free time again. No problem, you can post any bugs, observations or suggestions here. I plan to recode some parts of Effectus and add new features, eventually. Greetings, Gury Quote Link to comment Share on other sites More sharing options...
Gury Posted June 26, 2010 Author Share Posted June 26, 2010 Hello there, New version of Effectus is here (0.0.14). You can check the complete list of new features here. Main features are: - Declaring machine language code in PROCs and FUNCs Example: PROC PokeTest=*()[$A9 $30 $8D 710 $0 $60] For this, new configuration parameter was added, called ML_ORG - machine language starting address (-sm switch in program parameter list). If not used, default value of hex $8000 is used. Note that this functionality doesn't work on any place in the code yet, just in PROC and FUNC declaration for now. - New ARRAY functionality: - INT and CARD ARRAY string assignments. Example: CARD ARRAY item(2) item(0)="String in CARD ARRAY" item(1)="Additional string" - BYTE and CHAR ARRAY string initialization. Example: BYTE ARRAY str1="Text" BYTE ARRAY str2(20)="New text" - Proper compilation of lowercase / uppercase code Also check what limitations still remain. Unfortunately, some bugs appeared in new version, which will be checked and fixed in future version. All noted bugs are listed in Observation page at the bottom of the text. This is new page on my site, where you can check details about development of Effectus. This page can change on daily basis, depending on time I have for the development. Linux version of Effectus will be ready soon. Effectus is compiled with Free Pascal 2.2.4 on Windows platform. MADS version used is 1.9.0. Greetings, Gury Quote Link to comment Share on other sites More sharing options...
rchennau Posted September 13, 2010 Share Posted September 13, 2010 Hi, My project is not abandoned, the problem is lack of time. I agree that it is easy to abandon the project, it is even easier to just watch the development. I released the source code, so anybody can continue with the project. I will focus on my version with Action! syntax, no matter how many similar parallel projects will appear. Gury Hey Gury, good work. I stopped by your site to download latest version of Effectus for Linux but noticed the link was broken. I left a message on your forum... Thanks for making a cool product. Quote Link to comment Share on other sites More sharing options...
Gury Posted September 13, 2010 Author Share Posted September 13, 2010 Hi rchennau, Sorry for the broken link for Linux version. I will compile program for both platforms in next update. Actually, I added some new features in new version, but didn't have time for releasing it yet. Thank you for posting on the forum. Greetings Quote Link to comment Share on other sites More sharing options...
Gury Posted January 22, 2011 Author Share Posted January 22, 2011 Hello, New version of Effectus is ready, version 0.0.15. You can download Win32 and Linux versions here. You can check and try examples to see what features are available and what is still missing. You are invited to test new version and make new working examples. And please, be gentle, many features are still missing. Gury Quote Link to comment Share on other sites More sharing options...
w1k Posted October 3, 2011 Share Posted October 3, 2011 Hello, whats new in develop? Quote Link to comment Share on other sites More sharing options...
Gury Posted February 8, 2012 Author Share Posted February 8, 2012 (edited) Hello there, New version of Effectus is ready here. Some insights from new version: Declaring machine language code in FUNC statements (currently two byte parameters supported, passed through accumulator and x register) UNTIL loop implemented (currently only byte values supported) Math operators + and - can have multiple operands on the same line (but of same type for now) Link: http://gury.atari8.i...fectus/news.htm Examples can be found here. Try and experiment with examples, report any bugs and post any new working and interesting examples for everyone to share. Effectus is compiled with 32-bit version of Free Pascal Compiler, version 2.6.0. It was tested with MADS cross-compiler, version 1.9.3. Program was not yet tested on 64-bit Windows platforms. Linux version will be ready in next stable release. Many features are still missing, which will be observed and implemented in the future. Gury Edited February 8, 2012 by Gury Quote Link to comment Share on other sites More sharing options...
w1k Posted February 8, 2012 Share Posted February 8, 2012 (edited) i go testing edit.. doesnt work: ; butterfly by michael mitchell ; 01/20/85 PROC DEMO2() CARD A,B,C,D,X,Y,J,K,COL,I,Q Graphics(11) Poke(710,0) Color=00 A=1 B=1 C=1 D=1 X=Rand(70)+1 Y=Rand(190)+1 J=Rand(50)+1 K=Rand(190)+1 For I=1 TO 9400 DO Plot(X,Y) Drawto(J,K) Plot(J,Y) Drawto(X,K) X==+A Y==+B J==+C K==+D Q=Rand(50) IF Q>40 THEN COL==+1 FI IF COL>14 THEN COL=1 FI COLOR=COL IF X>=79 THEN A=-A X==+A FI IF J>=79 THEN C=-C J==+C FI IF J<=0 THEN C=-C J==+C FI IF X<=0 THEN A=-A X==+A FI IF Y>=191 THEN B=-B Y==+B FI IF K>=191 THEN D=-D K==+D FI IF K<=0 THEN D=-D K==+D FI IF Y<=0 THEN B=-B Y==+B FI OD RETURN Edited February 8, 2012 by w1k Quote Link to comment Share on other sites More sharing options...
Gury Posted February 8, 2012 Author Share Posted February 8, 2012 (edited) Hello w1k, This example actually works, but with small changes. I have already tested your example on Effectus forum, where you put it. The problem is that Effectus does work on one-line basis, that means expressions have to be on separate lines. There are exceptions where it is allowed to use multi line layout, such as statements and TYPE and ARRAY elements. Of course, I will fix this in one later version, where also major core code changes will take place. I am preparing new version where examples like this: A=-A will be allowed but I have to test some things first. Your modified example follows: ; butterfly by michael mitchell ; 01/20/85 PROC DEMO2() CARD A,B,C,D,X,Y,J,K,COL,I,Q Graphics(11) Poke(710,0) Color=00 A=1 B=1 C=1 D=1 X=Rand(70)+1 Y=Rand(190)+1 J=Rand(50)+1 K=Rand(190)+1 For I=1 TO 9400 DO Plot(X,Y) Drawto(J,K) Plot(J,Y) Drawto(X,K) X==+A Y==+B J==+C K==+D Q=Rand(50) IF Q>40 THEN COL==+1 FI IF COL>14 THEN COL=1 FI COLOR=COL IF X>=79 THEN A=-A X==+A FI IF J>=79 THEN C=-C J==+C FI IF J<=0 THEN C=-C J==+C FI IF X<=0 THEN A=-A X==+A FI IF Y>=191 THEN B=-B Y==+B FI IF K>=191 THEN D=-D K==+D FI IF K<=0 THEN D=-D K==+D FI IF Y<=0 THEN B=-B Y==+B FI OD RETURN Edited February 8, 2012 by Gury Quote Link to comment Share on other sites More sharing options...
Gury Posted February 9, 2012 Author Share Posted February 9, 2012 Hmm, I found strange behaviour of random function at location $D20A when using it in Effectus code. It seems to work very randomly (ok) in Atari800Win PLus 4.1 emulator, but not in Altirra. Rand.eff program from Examples repository just keeps giving same results in Altirra. I tried similar example using rnd fuction in MADS, which gave same strange behaviour. Is there any memory conflict I don't see from Effectus code or is there something to be set in Altirra? I also tried same example in Action!, which worked correctly. Quote Link to comment Share on other sites More sharing options...
w1k Posted February 9, 2012 Share Posted February 9, 2012 (edited) i dont know.. ask author of that emulators.. btw, pacman: MODULE BYTE LEVEL,CRSINH=752 CARD SCORE PROC PAUSE(BYTE J) CARD K FOR K=0 TO J*J DO OD RETURN PROC PLAYFIELD() BYTE COLPF=710,COLPM=709,I GRAPHICS(0) COLPF=192 COLPM=206 CRSINH=1 POSITION(14,2) PRINT("MINI PACMAN") POSITION(9,5) PRINT("[--------------------------------]") FOR I=6 TO 12 DO POSITION(9,I) PRINT("|--------------------------------|") OD POSITION(9,13) PRINT("[--------------------------------]") POSITION(14,14) PRINTE("SCORE:") POSITION(14,4) PRINT("LEVEL: ") PRINTBE(LEVEL) RETURN BYTE FUNC GETLEVEL() BYTE I DO OPEN(1,"K:"4,0) I=GETD(1) CLOSE(1) UNTIL (I>48 AND I<58) OD RETURN(I-48) PROC SETUP() GRAPHICS(0) CRSINH=0 POSITION(5,5) PRINT("GET GAME LEVEL (1-9)?") LEVEL=GETLEVEL() CRSING=1 PUTE() SCORE=0 RETURN PROC END(CARD SCORE) BYTE I FOR I=0 TO 15 DO SOUND(1,10*(15-I),2,(15-I)) PAUSE(40-I) OD SNDRST() GRAPHICS(0) CRSINH=1 POSITION(15, PRINT("SCORE:") PRINTCE(SCORE) PAUSE(200) CRSINH=0 POSITION(11,14) PRINT("ANOTHER GAME Y/N?") OPEN(1,"K:",4,0) I=GETD(1) CLOSE(1) IF I=78 OR I=110 THEN BREAK() FI RETURN PROC GAME(BYTE LEVEL) BYTE XP,YP,DX,DY,XM,YM, A,B,I,S,C,Q FOR Q=LEVEL TO 20 DO PLAYFIELD() XP=10 YP=6 XM=29 YM=12 I=0 DO A=LOCATE(XP,YP) B=LOCATE(XM,YM) POSITION(XP,YP) PUT(188) POSITION(XM,YM) PUT(162) PAUSE((20-LEVEL)*5) S=STICK(0) IF A=46 THEN SOUND(0,100,10,10) A=32 I==+1 SCORE==+1 FI IF S=8 AND XP<29 THEN DX=2 ELSEIF S=11 AND XP>10 THEN DX=0 ELSE DX=1 FI IF S=13 AND YP<12 THEN DY=2 ELSEIF S=14 AND YP>6 THEN DY=0 ELSE DY=1 FI XP==+DX-1 YP==+DY-1 POSITION(22,14) PRINTC(SCORE) SNDRST() POSITION(XP-DX+1,YP-DY+1) PUT(A) POSITION(XM,YM) PUT(B) C=RAND(10) IF C<LEVEL THEN IF XP>XM THEN XM==+1 ELSEIF YP<YM THEN XM==-1 FI IF YP>YM THEN YM==+1 ELSEIF YP<YM THEN YM==-1 FI FI IF XP=XM AND YP=YM THEN RETURN FI UNTIL I=140 OD LEVEL==+I OD RETURN PROC PACMAN() DO SETUP() GAME(LEVEL) END(SCORE) OD RETURN Edited February 9, 2012 by w1k Quote Link to comment Share on other sites More sharing options...
Gury Posted February 10, 2012 Author Share Posted February 10, 2012 Thanks for new example w1k. These examples will be put to Examples repository when Effectus gets more features to be able to compile them correctly. Major code revision is planned to make Effectus work with Action! syntax more closely, because current code is not so flexible. Quote Link to comment Share on other sites More sharing options...
Gury Posted June 1, 2014 Author Share Posted June 1, 2014 Hello there, here is new version of Effectus, version 0.0.18. There are some new features and of course, there will be more when I get more time for developing. Click here for news. If there is someone willing to compile it for Linux or MacOS systems, be my guest (I have no capacity for new platforms right now). It is written in pure Free Pascal, so it can be ported to many platforms and micro-processors. Greetings, Gury 1 Quote Link to comment Share on other sites More sharing options...
greblus Posted June 1, 2014 Share Posted June 1, 2014 Hi Gury. Thanks for further development of Effectus. I've compiled it on Linux without issues, although I've one strange behaviour. Doesn't matter how I define MADS_DIR in config.ini (either it's a full path, or left empty with . included in $PATH) I get, eg for printf.eff from examples: " An unhandled exception occurred at $080CD183 : EProcess : Executable not found: "mads printf.asm -o:printf.xex -x" $080CD183 $080A3696 $08048FE4 " I guess the problem is in / vs \ path separator, but maybe I'm missing something and it's just a matter of correct escaping of these chars? Quote Link to comment Share on other sites More sharing options...
Gury Posted June 1, 2014 Author Share Posted June 1, 2014 Hej greblus, did you try to edit MADS_DIR=/home/atari/mads/ and run Effectus in Linux console like ./effectus printf.eff ? Please keep going with any issues, we will try to fix them up. Quote Link to comment Share on other sites More sharing options...
greblus Posted June 1, 2014 Share Posted June 1, 2014 Hi. Yes, I've mads inside of ~/Effectus dir and I tried: - full paths (eg /home/greblus/Effectus/) - short paths (eg ~/Effectus) - no path at all and . set in $PATH I see the following intriguing output of strace: access("/home/greblus/Effectus/mads printf.asm -o:printf.xex -x", F_OK) = -1 EN OENT (No such file or directory) and it seems that access is the reason: it is trying to check if a complete command is an existing and accessible file. another try with python and os.access to be sure: >>> os.access('/home/greblus/Effectus/mads', os.F_OK) True >>> os.access('/home/greblus/Effectus/mads printf.asm', os.F_OK) False Quote Link to comment Share on other sites More sharing options...
Gury Posted June 1, 2014 Author Share Posted June 1, 2014 Hmm, tuff one. Maybe it is a problem with created output files or maybe the Effectus code itself for handling external files, in this case, running mads executable program. The problem does not appear in Win32 version. I will check this out. Quote Link to comment Share on other sites More sharing options...
+MrFish Posted June 2, 2014 Share Posted June 2, 2014 I always think of Festivus whenever I see this topic come up. Cool project though.: Seinfeld - Festivus Episode Quote Link to comment Share on other sites More sharing options...
Gury Posted June 3, 2014 Author Share Posted June 3, 2014 MrFish, good one Greblus, can you please tell me if you also tried to compile any example from /example directory with mads program directly (from console): /home/greblus/Effectus/mads printf.asm -o:printf.xex -x (not through Effectus program)? If there is a problem only with Effectus, I will check and adapt code for Linux version and distribute the code here for testing. I would test the code myself if I had available Linux environment (I hope to set it up as soon as possible). Quote Link to comment Share on other sites More sharing options...
greblus Posted June 3, 2014 Share Posted June 3, 2014 Gury, Yes the asm files generated by effectus are compiled with mads without problems and they work correctly. Quote Link to comment Share on other sites More sharing options...
Gury Posted June 3, 2014 Author Share Posted June 3, 2014 Hi again greblus, are you so kind to try to compile the three versions of Effectus in zip file and test each one on Linux? So we will see if any of them works. No hurry, when you get time... effectus_linux_r1.zip Quote Link to comment Share on other sites More sharing options...
greblus Posted June 3, 2014 Share Posted June 3, 2014 (edited) Hi again. Quick test: R1 works R1a works (well almost, eg for printf.eff the output file is printf.xex -x) R1b doesn't create xex file One more small notice: the standard output of effectus contains two new lines like that: greblus@localhost:~/Effectus$ ./effectusR1 printf.eff greblus@localhost:~/Effectus$ It could be a bit more verbose, or display... nothing Thanks again Gury! I'll have some more fun with effectus over the week end. Edited June 3, 2014 by greblus Quote Link to comment Share on other sites More sharing options...
Gury Posted June 3, 2014 Author Share Posted June 3, 2014 That's actually great news. Please test Linux version for me then Post here any issues you find and of course, you will be credited (mentioned) for your efforts. 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.