+nanochess Posted July 14, 2015 Share Posted July 14, 2015 Hi everyone I've some months working in a new code generator backend for IntyBASIC, and after so much struggling finally it's working with a new optimizer that speeds up your programs without any hassle. As always Windows, Mac and Linux versions are included. Also included some nice features requested by developers, some are performance enhancements (multiplication operation) and others are very powerful, like the new inline functions (macro-style) intvnut helped me to find also some nasty bugs that have been solved and gave me great ideas for optimization. Freewheel provided help testing the multiplication code.Also tarzilla, catsfolly, DZ-Jay and GroovyBee have made great suggestions and they surprised me contributing to put together an IntyBASIC Development Kit for Windows, it can be downloaded from here http://atariage.com/forums/topic/240526-introducing-the-intybasic-sdk/ with my official seal of approval Here are the main new features: New RANDOM() function that increases automatically the seed (no more WAIT) New DEF FN statement that allows for macro expressions (like inline functions) Experimental CONT3 and CONT4 support, no keypad decoding (ECS) INCLUDE now allows quotes and searches also in library path. New constants.bas file with useful constants and macros to ease programming. Generates warnings for assigned but non-read variables and also for read but non-assigned variables. (atari2600land needed it to find a bug) Multiplication algorithm speed up (no more successive addition that could take 2 seconds) New #MOBSHADOW array. New fast division/remainder algorithm if you use only variables as arguments. Now optimizes multiplication by constants $0200, $0400 and $0800. More optimization at code generation when the right operand is the most complex. More optimization for FOR..TO Advanced peephole optimizer. Avoids reloading register with constant if still available Avoids reading memory in register if just written Combines pairs of instructions in more optimum ways. Array reading array(const) is more optimum Common subexpression removal for simple index into array. Optimization for multiple substraction. Optimization for comparisons. Optimization for IF expr THEN GOTO. New contributions: keypad (GroovyBee), intro (Tarzilla) and Hello (DZ-Jay) Bugs solved: Multiplication by zero could take a long time. ECS code was always included. Some divisions were signed. FOR with TO 0 or 255 with 8-bit variable. IntyColor also got some enhancements: Support for generating PRINT statements instead of SCREEN (useful for fast animation of small images) Processing small images had a bug of an extra comma in output. (reported by atari2600land) Support for 256 color BMP files. (requested by GroovyBee and Tarzilla) Adds command usage, date and version in output file. (suggested by GroovyBee) Solves bug in initial card offset argument. (reported by Tarzilla) BTW, some people has old versions of Windows XP (no service pack) these require the Visual C++ 2008 runtime, available from here http://www.microsoft.com/es-mx/download/details.aspx?id=29 Enjoy it! intybasic_compiler_v1.1.zip 8 Quote Link to comment Share on other sites More sharing options...
intvnut Posted July 14, 2015 Share Posted July 14, 2015 So none of those awful voiceovers they forced Harrison to do for the theatrical release? 1 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted July 14, 2015 Author Share Posted July 14, 2015 So none of those awful voiceovers they forced Harrison to do for the theatrical release? None! 1 Quote Link to comment Share on other sites More sharing options...
+5-11under Posted July 14, 2015 Share Posted July 14, 2015 What are the features? DRM? Catches IP infringement? For homebrewers only? Comes with a box? Is this a pre-order only? Anyway, I'm looking forward to it, and thanks for all of your excellent work! 4 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted July 14, 2015 Author Share Posted July 14, 2015 What are the features? DRM? Catches IP infringement? For homebrewers only? Comes with a box? Is this a pre-order only? Anyway, I'm looking forward to it, and thanks for all of your excellent work! I could publish it right away but a team of Fantastic Four has a surprise and needs time to build it. And of course the enhancements to IntyBASIC are really worth the v1.1 2 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted July 14, 2015 Share Posted July 14, 2015 It for sure features annoying mascots and product logos, produced via a multinational effort not seen since the formation of the United Nations... 3 Quote Link to comment Share on other sites More sharing options...
intvnut Posted July 14, 2015 Share Posted July 14, 2015 What's everyone's morbid fascination with DRM? In any case... if IntyBASIC isn't for homebrewers, who is it for? 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted July 14, 2015 Share Posted July 14, 2015 I could publish it right away but a team of Fantastic Four has a surprise and needs time to build it. I do NOT want to see that Fantastic Four in costume 3 Quote Link to comment Share on other sites More sharing options...
+5-11under Posted July 14, 2015 Share Posted July 14, 2015 What's everyone's morbid fascination with DRM? In any case... if IntyBASIC isn't for homebrewers, who is it for? I'm just poking fun at some of the Intellivision threads/posts over the last day or so. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted July 14, 2015 Share Posted July 14, 2015 I'm just poking fun at some of the Intellivision threads/posts over the last day or so. Yep, this thread in particular: http://atariage.com/forums/topic/239553-boulder-dash-rom-will-not-be-released/page-6 Kidding aside, not every game needs a CIB treatment, I'm actually looking forward to trying at least one LTO encrypted ROM release as an experiment... Quote Link to comment Share on other sites More sharing options...
intvnut Posted July 14, 2015 Share Posted July 14, 2015 (edited) I'm just poking fun at some of the Intellivision threads/posts over the last day or so. Ah. I don't really follow all the Dutch Rudder Madness and mutual gratification that arises whenever that acronym pops up in a thread. Kidding aside, not every game needs a CIB treatment, I'm actually looking forward to trying at least one LTO encrypted ROM release as an experiment... Meh. It seemed like an interesting idea when we started. But it rolled out like a lead f'ing balloon. It's certainly not a defining feature for LTO Flash! despite folks attempts to make it so. EDIT: Oy. I went into that thread you linked, and all I saw was this: https://www.youtube.com/watch?feature=player_detailpage&v=evA-R9OS-Vo#t=1320 (That should start at 22 minutes in...) Anyway... so far as I know, this is all unrelated to the imminent IntyBASIC release. Let's not threadjack, eh? From what few tidbits I know about 1.1, it'll be a solid step forward. Edited July 14, 2015 by intvnut 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted July 14, 2015 Share Posted July 14, 2015 Looks like I should pick up an ECS and some more controllers, maybe time for some more 4 player games... 3 Quote Link to comment Share on other sites More sharing options...
Kiwi Posted July 14, 2015 Share Posted July 14, 2015 Can't wait to compile my Generic Shoot'em Up Game with IntyBASIC 1.1 3 Quote Link to comment Share on other sites More sharing options...
carlsson Posted July 14, 2015 Share Posted July 14, 2015 Is there any demand for multilingual manuals, or would just about everyone capable of using IntyBASIC read English well enough to understand the original docs? I saw nanochess includes documentation in Spanish, which I assume is his mother tongue, but perhaps that covers most users. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 14, 2015 Share Posted July 14, 2015 I'm ready when you are, Mr. nanochess! -dZ. 2 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted July 14, 2015 Author Share Posted July 14, 2015 I'm ready when you are, Mr. nanochess! -dZ. I'm ready Mr. dZ! 2 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted July 14, 2015 Author Share Posted July 14, 2015 By the way, the new features make IntyBASIC even less dependent from assembly language and that's a good thing because you have more power for the IntyBASIC programming contest http://atariage.com/forums/forum/159-intybasic-programming-contest-2015/ 2 Quote Link to comment Share on other sites More sharing options...
freewheel Posted July 15, 2015 Share Posted July 15, 2015 I can't remember if I asked this - can the warnings be turned off via command line parameter? I can see it making sense to have them enabled by default, especially as an aid for beginners, but I'm finding too much in my scroll buffer now. Or mayhap a better question - can I suppress the jzintv output? All those lines of memory addresses that don't often change... Quote Link to comment Share on other sites More sharing options...
intvnut Posted July 15, 2015 Share Posted July 15, 2015 Or mayhap a better question - can I suppress the jzintv output? All those lines of memory addresses that don't often change... -q for quiet. Also, jzintv --help lists most of the other generally useful flags. Quote Link to comment Share on other sites More sharing options...
freewheel Posted July 15, 2015 Share Posted July 15, 2015 -q for quiet. Also, jzintv --help lists most of the other generally useful flags. :blushing emoticon: Thanks! 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 15, 2015 Share Posted July 15, 2015 I can't remember if I asked this - can the warnings be turned off via command line parameter? I can see it making sense to have them enabled by default, especially as an aid for beginners, but I'm finding too much in my scroll buffer now. Or... just fix the offending lines of code. In my previous life as a software developer, I used to hate when other colleagues would just leave crap all over the code, causing myriad warnings during compilation. I always had to go through it and clean it up. I felt like the maid, "can you guys just wipe your feet and mind the floor? I just mopped it not five minutes ago! sheesh!" -dZ. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 15, 2015 Share Posted July 15, 2015 By the way, I just wanted to remind everyone that IntyBASIC comes now in two flavours: It's standard distribution, what Oscar calls The Director's Cut (which you can download right at the top of this thread); and the Software Development Kit (SDK). We believe the SDK includes many tools that streamline development for newcomers and power-users alike, and encourage anyone to get it. However, the choice is yours, of course. -dZ. Quote Link to comment Share on other sites More sharing options...
+nanochess Posted July 15, 2015 Author Share Posted July 15, 2015 I can't remember if I asked this - can the warnings be turned off via command line parameter? I can see it making sense to have them enabled by default, especially as an aid for beginners, but I'm finding too much in my scroll buffer now. Or mayhap a better question - can I suppress the jzintv output? All those lines of memory addresses that don't often change... I don't want to make IntyBASIC a heavy application of several megabytes, but putting a -Wall and -Wnone switchs would make me feel very GCCappy, err, happy I've took note Quote Link to comment Share on other sites More sharing options...
freewheel Posted July 16, 2015 Share Posted July 16, 2015 Or... just fix the offending lines of code. There is nothing syntactically nor semantically wrong with declaring a variable and not using it. Some of us don't need handholding and are quite capable of keeping track of a few dozen variables in our heads It drives me nuts to comment out a single line while testing, which happens to be the only line that references variable X, and then suddenly get a bunch of "errors" from my compiler. Thanks, Mom. But that's why I said I'd like it as an option, with warnings enabled by default. Newcomers and the average person benefit from these things. 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 16, 2015 Share Posted July 16, 2015 There is nothing syntactically nor semantically wrong with declaring a variable and not using it. Some of us don't need handholding and are quite capable of keeping track of a few dozen variables in our heads It drives me nuts to comment out a single line while testing, which happens to be the only line that references variable X, and then suddenly get a bunch of "errors" from my compiler. Thanks, Mom. But that's why I said I'd like it as an option, with warnings enabled by default. Newcomers and the average person benefit from these things. They are not errors but warnings. You can ignore them as easily as you can keep a few dozen unused variables in your head. Personally, I find options to suppress warnings to be bad form since ignoring warnings leads to sloppy code, but to each his own. I guess making it an option would be an acceptable compromise. -dZ. 1 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.