Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 1, 2015 0:17:04 GMT -5
Bugs found: - PRINT lblptr&() doesn't work properly (with any function that returns a value) - Using hex numbers (&H1234) doesn't parse properly Bugs fixed: - Hex numbers New commands in the next update: - drawtiles - end - gosub - psg - psgvol - return New functions: - asc() - ascw() - ascl&() - len() - varptr&() I also started working on a new datatype - "TILE". Right now I have it so you can do the following: DIM Tile&(7) AS LONG Tile&(0) = &h11111133 Tile&(1) = &h11111113 Tile&(2) = &h11111110 Tile&(3) = &h11111100 Tile&(4) = &h11111100 Tile&(5) = &h11111000 Tile&(6) = &h11100000 Tile&(7) = &h00000000
LOADTILES @Tile&,1,0
I'm just trying to think of the best way to handle a datatype so you can easily update the values easier, but it's a start
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 6, 2015 23:32:19 GMT -5
Weekly update as promised www.second-dimension.com/sb_update.zipAll you need to do is unzip the EXE into the installed program folder. The user guide hasn't been updated yet, so only a quick update.txt was put together. Also included is an example on how to load tiles from a variable. Cheers!
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 7, 2015 7:20:57 GMT -5
Also included is an example on how to load tiles from a variable. Why aren't you using the following syntax? loadtiles varptr&(tile&),1,0
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 7, 2015 7:47:10 GMT -5
Also included is an example on how to load tiles from a variable. Why aren't you using the following syntax? loadtiles varptr&(tile&),1,0 It didn't even click in my head to use that, to be honest. If that doesn't work currently, I'll be sure to make it work in the next update. I need to rewrite a part of the function handling anyway (first time trying to write a compiler/parser, so I'm sure there's plenty that could be changed/fixed). If there's anything else that I missed, or that I should've implemented in one way over another, please let me know
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 9, 2015 14:02:02 GMT -5
The next update currently has fixed function handling (i.e., can print results directly from the function), and I'll be making sure to add in function support in arguments that match the data type. Quite a few more functions and commands will be included as well (off the top of my head, posx, posy, settextplane, startcode, and endcode has been added). I also fixed some of the math operator parsing, and will be adding more commands and functions before the next update release Cheers
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 14, 2015 23:33:56 GMT -5
Here's an update: second-dimension.com/sb_update2.zipFrom the update file: Bug Fixes/Code Changes: * Removed additional carriage return after a PRINT LBLPTR&() statement // 06 DEC 2015 * VARPTR& can now be used in the LOADTILES command // 06 DEC 2015 * PRINT command supports more functions: + SPRITEPOSX() // 06 DEC 2015 + SPRITEPOSY() // 06 DEC 2015 + VARPTR&() // 06 DEC 2015 * BIN$() now works with HEX and decimal numbers // 06 DEC 2015 * Updated function and command handling, all functions should PRINT normally // 09 DEC 2015 * Added SETTEXTPLANE // 06 DEC 2015 * Added POSX() // 06 DEC 2015 * Added POSY() // 07 DEC 2015 * Added STARTCODE&() // 07 DEC 2015 * Added ENDCODE&() // 07 DEC 2015 * Added NOT() // 08 DEC 2015 * Added READ() // 08 DEC 2015 * Added READINT() // 08 DEC 2015 * Added READLONG&() // 08 DEC 2015 * Added HBLANKON() // 09 DEC 2015 * Added VBLANKON() // 09 DEC 2015 * Added NOT&() // 09 DEC 2015 * Added PEEK() // 09 DEC 2015 * Added PEEKINT() // 10 DEC 2015 * Added User Functions // 14 DEC 2015
User functions have some issues with them currently (wanted to get the update out last, will be fixed in the next update). You'll need to declare them before using them and they currently don't support arguments and will only return integers at the moment.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 20, 2015 23:19:07 GMT -5
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Dec 22, 2015 21:56:21 GMT -5
I'm sure some of you may have figured out what I was up to with the BEX licensing and such, and since it seems to be okay to use BASICASM.CNI, and since devster never responded to my PM (he's logged on since ), I figured it would be okay to move along with the project and see if I could potentially do some fixing to BEX and such. This will only be for the Genesis/Mega Drive, though. No Sega CD or 32X support, at least not anytime soon. Here's a video of the progress so far: youtu.be/ORzcj_lW8ioSo far, the only things that are functional are the PRINT command and math operators, and a new function POW() for exponents. I've also fixed the division by 2 (a = 10: b = a / 2 ' doesn't function unless a variable is assigned 2), and added another operator: ^ (same as the pow function). Anywho, just wanted to share Hi Yes, I got your PM now: Yes, it's okay to use my library file. Please, just give me credit for the library somewhere in your executable. Sorry, I nearly cringed when I found out that "second basic" is made in VB6, as this is 2015 now (moving onto 2016 ). But it's okay . I love VB6 . Good job . As for the old BEX, yeah, BEX was never meant to serve as a serious compiler (look at the IDE, and parsing order of operations). I'm really surprised that there are a lot of big projects being made with it though. My appreciation for all those developers , I really appreciate original works, and how much these developers need to "sweat" to make work-arounds against the compiler, as there are many limitations to the compiler. I used to favor more of the smaller projects, or noobies to the compiler, since it was more for people to just jump on, play around with, and create a friendly environment. My 2 cents , eventually for people to move onto the C language, as that's where all the peephole optimizations are, which is really needed for these very small embedded systems (if using Stef's modern compiler).
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 22, 2015 22:54:32 GMT -5
I'm sure some of you may have figured out what I was up to with the BEX licensing and such, and since it seems to be okay to use BASICASM.CNI, and since devster never responded to my PM (he's logged on since ), I figured it would be okay to move along with the project and see if I could potentially do some fixing to BEX and such. This will only be for the Genesis/Mega Drive, though. No Sega CD or 32X support, at least not anytime soon. Here's a video of the progress so far: youtu.be/ORzcj_lW8ioSo far, the only things that are functional are the PRINT command and math operators, and a new function POW() for exponents. I've also fixed the division by 2 (a = 10: b = a / 2 ' doesn't function unless a variable is assigned 2), and added another operator: ^ (same as the pow function). Anywho, just wanted to share Hi Yes, I got your PM now: Yes, it's okay to use my library file. Please, just give me credit for the library somewhere in your executable. Sorry, I nearly cringed when I found out that "second basic" is made in VB6, as this is 2015 now (moving onto 2016 ). But it's okay . I love VB6 . Good job . As for the old BEX, yeah, BEX was never meant to serve as a serious compiler (look at the IDE, and parsing order of operations). I'm really surprised that there are a lot of big projects being made with it though. My appreciation for all those developers , I really appreciate original works, and how much these developers need to "sweat" to make work-arounds against the compiler, as there are many limitations to the compiler. I used to favor more of the smaller projects, or noobies to the compiler, since it was more for people to just jump on, play around with, and create a friendly environment. My 2 cents , eventually for people to move onto the C language, as that's where all the peephole optimizations are, which is really needed for these very small embedded systems (if using Stef's modern compiler). Your name is in the "About" already Thank you very much for your blessing to use your library! I could use VB.NET since it's what I use at work, but I like VB6 as well Funny story, one of the applications at my work was programmed in VB6, and would still be worked on in VB6 if one of the ActiveX controls they used was still supported, and this is a world wide software firm haha! And hey, even though you planned BEX to be used by noobs, you definitely made a nice dent in the Genesis / Mega Drive homebrew scene, and that's no small feat! We should be thanking you for creating a great tool to learn from, and develop with
|
|
|
Post by vetea on Dec 23, 2015 3:51:09 GMT -5
OH yes ... Thanks a lot Mr oompa loompa !
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 24, 2015 0:09:30 GMT -5
Here's a preview of what the next update will look like: I added a header tool bar (can be undocked, or closed), and now source code files add a header to grab the header settings (old source files without the header will just load the default header values). The next exciting update is SRAM is now supported! I added some new commands and functions for SRAM usage, which I hope makes it easier to use. There's only 2 commands (and the ENABLE/DISABLE SRAM): SRAMWRITE and SRAMREAD(). AFAIK, very few people had utilized the ext_ variables in BEX, so unless someone requests support for those, I think I'm going to drop them in Second Basic. Anyway, this next update will be a pretty big one. There's not much left to import in, so I've been focusing the last few days on some bug fixing that I've found and the IDE portion. For those interested, here's a list of functions and commands left: Commands: BGCOLOR, BRIGHTEN, CALL, CONST, DARKEN, DIM xxx AT xxx, DRAWTILESINC, DRAWTILESOVR, FASTTILECOPY, GETS, HALT, HBLANK, HIDESPRITE, INK, LOADFONT, MEMCOPY, OPTION, PALETTE, PUTS, RANDOMIZE, REGMOVE.B, REGMOVE.W, REGMOVE.L, SCROLL2, SHIFTSPRITE, SHLINK, SLEEP2, TileOrg, TRAPCPU, TVSET, VDPRAMWRITE, VIDMODE, VIData, VIDataInt, VIDataLong, VIDataFile, WAITPADUP, WINDOWPROP, WRITE, WRITEINT, WRITELONG, WRITEP Total Commands Left: 42 Functions: Call(), Call&(), Chr$(), ChrW$(), ChrL$(), CurInk(), DataPtr&(), Hex$(), Left$(), Mid$(), Palette(), Priority(), ReadP(), ReadTile(), RGB(), Right$(), Rnd(), Str$(), String$(), TVScanX(), TVScanY(), TvType(), UnitType(), Val(), VdpRamRead() Total Functions Left: 25 Getting close!
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Dec 26, 2015 10:41:08 GMT -5
I noticed that the multiplication and division weren't working properly for LONG variables, so digging a bit deeper into the issue, I resolved the multiplication easily using BEX's ASM library, but noticed LONG variable division was broken. I wrote an ASM routine to fix this, however, there's still some bugs to be worked out, and it's quite slow. Fortunately, if anyone wants to tinker around with the ASM routine, feel free (and if you happen to improve it, let me know and I'll update the core packages). Since that's been fixed, I'm now able to get the rest of the commands and functions in Hoping to get a lot of that done today.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 1, 2016 18:58:58 GMT -5
Happy New Year!
And I'd like to say that all of the commands* and functions are in Second Basic (for the Genesis, anyway)! While this is great news, there's some bugs I still need to work out with the parser.
I decided to test some BEX projects in Second Basic, and while the majority of code compiles without issues, the parser does have some kinks in it. The first issue was arrays weren't being recognized in functions and subroutines and ended up throwing an error in the parsing engine. That's been resolved, but now parenthesis are causing errors. I'm hoping to resolve this by the end of the weekend and have a new release/update of the application available.
* OPTION hasn't been implemented, and FASTTILECOPY hasn't been implemented yet. OPTION will be implemented with limited functionality as I have no clue what BEX is doing with some of the options values, but most things can be configured in the IDE options/preferences.
Cheers!
|
|
|
Post by nathan999 on Feb 19, 2016 7:41:01 GMT -5
Awesome job, elusive. Please do keep it going!
I have a BIG project I can use to test your compiler when the implementation is complete :-)
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Feb 19, 2016 16:49:11 GMT -5
Awesome! I had to rewrite the main parsing engine (which I finished last weekend), so I've been doing some rigorous testing with it and implementing the commands one at a time. Some of the new features have been removed temporarily, but will get back in there once I'm finished with everything else
|
|