DB06218B40EF2650EF274083B7C8E521B1B1ED42E12802AFC97D3D28FA22A484E5DFE1EF9F43ED73A8842A24982322A684CDB8433C47100532E29906001005EF70450600101421154301350011E299D5EDB0E1DB06EFE44F0600101ACDB843E60F8783878316005F21729919E5CD7143E1EBEDB006001027CDB843E60F8783878316005F21729919E5CDB843E60F8783878306004FC5CD4A43C1E1EDB006001012CD7143CB38CB1921EC86E5CD9D4336C906001026CDB843F5CDB843D5CD7143217884EBEDB0AF12EFF142DA81421313E119F1467778EF8C47060010083A3F84EF8C470600100AAFD301DB013C28F90600FE01C9E5297E292929E11B7AB320F40B78B120F6C909F52BF1CB16F50B78B120F6F1C909EB09AFF5F12B1B1A8E77F50B78B120F4F1EBC909EB09AFF5F12B1B1A9E77F50B78B120F4F1EBC9E5C51A13EDA1200B78B120F6EBC1D1ED4237C9C1E17AB320E7C91A13EDA1200578B120F6BFC9117884D511AA84D5CD1042EBED67EBCD1042EBED67EB1B7CB520EDE1ED52444DE1772379873DC6807723EBEDB0C9AF06102917FE0A3803D60A2C10F5C91A007713230B78B120F6C9C522AA843E3FBECC744223060004237EFE3F2804FE2B20F5E52BEB21000022B284231AE60F1BE5D5C5CDAA43C1ED5BB2841922B284D1E13E0AD5C5CDAA43C1D110E0ED5BB2847BE1C1C92A5D963E3F23BB20FC23225D96ED7BA884C983472142847EFE3238033E3277FE0A20033E0A7778C922AA8421409322B284060CC50608C51AD56F2600292929ED4BAA8409EB2AB284CDD24222B284D113C110E32525252C22B284C110D6C9010C081A007713780600094710F5C90E007EFE2920023E20FEBB200A23057ED64FFE6D38013D2312130C10E5C9773E0C904F7EC5F51A0077132310F909F1C13D20F1C983FE012803AF3DC978FE3A3802D607D630FE1030F04F3A5396B728E979C58781878116005F216B991978010700115A84EDB0C1AFC9C5EF524BD7EFC94FE1EF27431313C93E30ED67FE3A3802C607121BC91AFE3A3802D60713ED6FC92AA6842BEF7A412322A6842AA4842B22A484EFF142DA8142EB4E234623EBC9CD5943CD59432B0B78B120F4C9CD6643CD6643230B78B120F4C90608110000EB290730011910F9C9ED4BA48478B128110BED43A4842AA684CDE44322A684C9D5E5CDAA43ED5BAA841922AA84E13E0ACDAA43D1C97EE5E60FCB3FF53C4F060009EB21000022AA8423F130061AE60FCDCF431AE6F007070707CDCF431B0D79B720EAE111090019ED5BAA847BC96F2600EF9247EF5641F601C932B28478B7200A79B728103D200322AA843AB28423BE20FC0B18E8EB2AAA84EBED52444DC97EFE61380CEB36BB23EBC64FFEBB38013CFE2E20023E3AFE2020023E29FE3F20013D1213230B78B120D6E1EBED52E5C1C9CD7143EB41117984CDE142AF12CDB843327884EFF142DC8142EB4E234623C9CDB843E603878787C6A632D642320843C9CDB843D5CDB843EB2929545D2919D119C9E5C5D5217984010000AF0C23BE20FBC5EFF142DC814278C1210C0009EBB720021E0219D119C1D1EF5480C9E5292929E13E2084D310E5292929E13E8085D310C5E5E5292929E11A13D31110F5E1C10D2479B720D7C9C5E521EC86E5EB79F5E5C57E1213780600094710F6C1E1F1233D20ECD1E1C1C9
SpriteLib? Nice, and better if it's an Application.Actually Axe can do APPS already, but they're limited to 1 page (16 KB)
I wish I knew how to make Apps, however, only Asm( can do it, right? So bad..
Hopefullly, Axe >0.4.5 will be able to do it :)
I have a way to sign the app, but it is very tedious. It makes testing the app take longer.
Getkey 0,0
PauseKey 1,0
VarEditByte 2,Type,value,offset,"name"
ASMHex 3,"opcode"
HexToken 4,"hexstring"
LoadData 5,CharStart,#Chars
I plan to change the order of the commands, so I am not going to upload it yet. Plus, I have not made the APP with the new updates yet. I made a fun little program that makes a hook identical to the one made by the app until it gets to the functions. At that point, it loads the app at 4000h and uses the calls in the app. This will let me test the code without having to make an app every time. It is better to debug in RAM rather than Flash.
5-ArchUnarch (archives an unarchived pic, unarchives an archived pic)You may want this to be called "Toggle Archived" to avoid confusion. :)
Okay, it has been an hour... Here is the updated program version... sorry if the readme is a little sparse on notes for the new commands, but if you have any questions, I will try to answer them :D
What if I included BASIC ReCode in the App version....? That might be neat... :D
I don't think I will, though :(
Actually, it wouldn't be too hard...
I dunno.
next idea for SpriteLib:
MultiKeys
SpeedKeys
ShiftData
RotateData
Maybe another FontHook to choose from...?
One that uses Omnicalc Fonts, but the font can be archived...?
(by the way, SpriteLib was originally going to be an Assembly version of FontEditor until I figured out a tilemap routine. That was when I added other sprite capabilities and called it Spritelib).
And my little brother just entered high school this year meaning he is borrowing a TI-84+...=
Yes! I get to see my friend/neighbor and my girlfriend! And my little brother just entered high school this year meaning he is borrowing a TI-84+... And my other brother needs to be straightened out a little (seniors in high school these days :D)And on top of all that, I will have more time to program! (after going to two Thanksgivings, getting all my schoolwork done, and chores, of course :D) Ah, SpriteLib, no worries. You wont take a back seat just yet...I hope they aren't gonna force you to give him your own calc and prevent you from coding anymore, like Eeems parents did once. X.x
Holy crap, how long is it? And is the spacing correct? like does it fit on one line?15 pages. This spacing is great! ;D
Wow... I should use that for NaNoWriMo next year. I will title my novel Read Me.Or Don't Read Me. More people might read it that way ;D
Well, hello there! I actually did not get much programming done over my mini break, but I did manage to add one more useful command. It is called SubList and it is pretty simple to understand, I think. If L1 is {0,1,2,3,4,5,6} and you wanted to get the {2,3,4,5} part of that list. With the command, you use 0 as the list#, 2 as the offset, and 4 for the number of elements to copy:
:{38,0,2,4
:Asm(prgmFONT
What I did not add was support for named lists and archived lists :( When I get the time, I will add that support, though.
L1=0
L2=1
L3=2
...
Yes, I am working on the app, but there are still bugs I need to tease out. I have a program that use the App for the calls, but the App isn't working independently, yet. :( I am still working on that, though... I am trying to pretty much convert the program almost directly into the APP version, but some syntaxes need to be changed to let it work as a parser hook.
Well, I am programming in Hexadecimal, so the process is a bit different :D. But, I believe it is not much different at all from regular assembly program. The main difference is that you run the program starting at 4080h (with 4000h to 407Fh being the header). Also, instead of exiting with an ret, you have to use a special B_Call (which forget the name of...). The hex for it is EF2740, so it is B_Call 4027h.
Thankee :D I always forget the name. They should just call it _ExitApp :D
That would only affect recompiled programs or new ones. Old ones would run just fine. It's the name that's changing, not the address ;)
Welcome back Xeda! :D
Suggestion for a feature: Extend the Delvar command so it can also delete archived variables, pictures, lists, matrices and strings. Also do you have a command that checks if a list already exists?
Nice, it's supposed to look like below, right?Yup. :)
-A program made in Hybrid Basic with SpriteLib does not require SpriteLib to run in a shell, right?A program that uses xLib always requires xLib, even in a shell. A program that uses Celtic III always requires Celtic III, even in a shell. In the same way, a program that uses SpriteLib always requires SpriteLib, even in a shell.
-A program made in Hybrid Basic with SpriteLib does not require SpriteLib to run in a shell, right?A program that uses xLib always requires xLib, even in a shell. A program that uses Celtic III always requires Celtic III, even in a shell. In the same way, a program that uses SpriteLib always requires SpriteLib, even in a shell.
The difference is that xLib and Celtic III are included in DCS, even though it's hard to notice.
Yeah that would rule, or maybe Xeda can add the option to chain it, later, so both Doors and SpriteLib can be used together. Alternatively, he could do like Hot Dog did with Coorelation and allow the user to switch between both apps in the middle of a BASIC program by running an Asm() program. Chaining can be slow so that could be an alternative.
@Xeda, by the way the program was uploaded in the wrong directory so I moved it. It was in 83+ instead of 83+ tools.
Only a later version of SpriteLib (complete stable one)You seem to think that SpriteLib isn't stable because it's programed in hex. From what I've seen, Xeda is very good at programming in hex and I have not encountered any crashes due to SpriteLib. :)
Only a later version of SpriteLib (complete stable one)You seem to think that SpriteLib isn't stable because it's programed in hex. From what I've seen, Xeda is very good at programming in hex and I have not encountered any crashes due to SpriteLib. :)
Only a later version of SpriteLib (complete stable one)You seem to think that SpriteLib isn't stable because it's programed in hex. From what I've seen, Xeda is very good at programming in hex and I have not encountered any crashes due to SpriteLib. :)
Ah, sorry, I misunderstood your post. * ZTrumpet feeds himself to the lobster... (We really need that as a emoticon. :P )Only a later version of SpriteLib (complete stable one)You seem to think that SpriteLib isn't stable because it's programed in hex. From what I've seen, Xeda is very good at programming in hex and I have not encountered any crashes due to SpriteLib. :)
No, it's not that. But Xeda, I think wants to add LOTS OF STUFF to SpriteLib (i hope he does) and if kerm made it work now, it would be outdated in a week. Get it?
I love HEX and understand the importance of HEX :P
No, it's not that. But Xeda, I think wants to add LOTS OF STUFF to SpriteLib (i hope he does) and if kerm made it work now, it would be outdated in a week. Get it?Oh, yeah. I plan to fill the whole 16384 bytes and I am at only about 2000 bytes. That is why I am still thinking about including BASIC Recode in there because for one I have so many wonderful calls in SpriteLib that I can make use of and two, I need to fill up more space :D
I love HEX and understand the importance of HEX :P
Oh, yeah. I plan to fill the whole 16384 bytes and I am at only about 2000 bytes. That is why I am still thinking about including BASIC Recode in there because for one I have so many wonderful calls in SpriteLib that I can make use of and two, I need to fill up more space :D
An idea that would be really neat that I do not think will ever be implemented in SpriteLib would be a 3D sprite and tilemap routine :D If I can do it, I promise I will, but I really don't believe I can. Can you imagine all the inputs required :
Z-axis rotation,Y-axis rotation,X axis rotation,Width of the map,layers/levels of the map,Tile map data,sprite data,display method layer 1,[display method layer 2...
Hehe, I literally had to dream about that. I really don't think it will go that far because Display+Zeda doesn't work well. Garr, fine. I will add that to my list of things to do for my 5 weeks off :D. I don't plan to make a super awesome amazing thing, but it would be nice for my one year anniversary of assembly programming to make a multi-level tilemap routine that uses some 3Dish effects.Oh, yeah. I plan to fill the whole 16384 bytes and I am at only about 2000 bytes. That is why I am still thinking about including BASIC Recode in there because for one I have so many wonderful calls in SpriteLib that I can make use of and two, I need to fill up more space :D
:oQuoteAn idea that would be really neat that I do not think will ever be implemented in SpriteLib would be a 3D sprite and tilemap routine :D If I can do it, I promise I will, but I really don't believe I can. Can you imagine all the inputs required :
Z-axis rotation,Y-axis rotation,X axis rotation,Width of the map,layers/levels of the map,Tile map data,sprite data,display method layer 1,[display method layer 2...
*Faints*
Z addressing?
LCD memory is really slow to use and there is only an extra 196 bytes of memory. But I guess... for long term storage? Hmm, now I want to try something...
Err, what is z addressing?
Well I know I already have commands that let the user have access to the 65536 bytes of memory... of which 32768 is RAM and so can be written to...
EDIT: Screenshot! (Note: I had to use PindurTI instead of WabbitEmu because PTI is the only emu that emulates Z-Adress properly)TilEm II does that as well, but I guess I'm not allowed to brag about that until I get my act together and finish it. ;)
They also call the vertical direction "X" and the horizontal direction "Y", so take that with a grain of salt.O.O
Oh nice, I didn't realize you were the one working on it, I hope you finish it eventually. Maybe you might be the first person to release an emulator compatible with the 15 MHz calc models on ticalc.org since 2005, since PindurTI and WabbitEmu both never made it there for some reasons. :PEDIT: Screenshot! (Note: I had to use PindurTI instead of WabbitEmu because PTI is the only emu that emulates Z-Adress properly)TilEm II does that as well, but I guess I'm not allowed to brag about that until I get my act together and finish it. ;)
Code: [Select]DB06218B40EF2650EF274083B7C8E521B1B1ED42E12802AFC97D3D28FA22A484E5DFE1EF9F43ED73A8842A24982322A684CDB
8433C47100532E29906001005EF70450600101421154301350011E299D5EDB0E1DB06EFE44F0600101ACDB843E60F8783878316005F2
1729919E5CD7143E1EBEDB006001027CDB843E60F8783878316005F21729919E5CDB843E60F8783878306004FC5CD4A43C1E1EDB006
001012CD7143CB38CB1921EC86E5CD9D4336C906001026CDB843F5CDB843D5CD7143217884EBEDB0AF12EFF142DA81421313E119F1
467778EF8C47060010083A3F84EF8C470600100AAFD301DB013C28F90600FE01C9E5297E292929E11B7AB320F40B78B120F6C909F52
BF1CB16F50B78B120F6F1C909EB09AFF5F12B1B1A8E77F50B78B120F4F1EBC909EB09AFF5F12B1B1A9E77F50B78B120F4F1EBC9E5C5
1A13EDA1200B78B120F6EBC1D1ED4237C9C1E17AB320E7C91A13EDA1200578B120F6BFC9117884D511AA84D5CD1042EBED67EBCD1
042EBED67EB1B7CB520EDE1ED52444DE1772379873DC6807723EBEDB0C9AF06102917FE0A3803D60A2C10F5C91A007713230B78B12
0F6C9C522AA843E3FBECC744223060004237EFE3F2804FE2B20F5E52BEB21000022B284231AE60F1BE5D5C5CDAA43C1ED5BB284192
2B284D1E13E0AD5C5CDAA43C1D110E0ED5BB2847BE1C1C92A5D963E3F23BB20FC23225D96ED7BA884C983472142847EFE3238033E
3277FE0A20033E0A7778C922AA8421409322B284060CC50608C51AD56F2600292929ED4BAA8409EB2AB284CDD24222B284D113C11
0E32525252C22B284C110D6C9010C081A007713780600094710F5C90E007EFE2920023E20FEBB200A23057ED64FFE6D38013D23121
30C10E5C9773E0C904F7EC5F51A0077132310F909F1C13D20F1C983FE012803AF3DC978FE3A3802D607D630FE1030F04F3A5396B7
28E979C58781878116005F216B991978010700115A84EDB0C1AFC9C5EF524BD7EFC94FE1EF27431313C93E30ED67FE3A3802C60712
1BC91AFE3A3802D60713ED6FC92AA6842BEF7A412322A6842AA4842B22A484EFF142DA8142EB4E234623EBC9CD5943CD59432B0B7
8B120F4C9CD6643CD6643230B78B120F4C90608110000EB290730011910F9C9ED4BA48478B128110BED43A4842AA684CDE44322A6
84C9D5E5CDAA43ED5BAA841922AA84E13E0ACDAA43D1C97EE5E60FCB3FF53C4F060009EB21000022AA8423F130061AE60FCDCF43
1AE6F007070707CDCF431B0D79B720EAE111090019ED5BAA847BC96F2600EF9247EF5641F601C932B28478B7200A79B728103D2003
22AA843AB28423BE20FC0B18E8EB2AAA84EBED52444DC97EFE61380CEB36BB23EBC64FFEBB38013CFE2E20023E3AFE2020023E29FE
3F20013D1213230B78B120D6E1EBED52E5C1C9CD7143EB41117984CDE142AF12CDB843327884EFF142DC8142EB4E234623C9CDB84
3E603878787C6A632D642320843C9CDB843D5CDB843EB2929545D2919D119C9E5C5D5217984010000AF0C23BE20FBC5EFF142DC81
4278C1210C0009EBB720021E0219D119C1D1EF5480C9E5292929E13E2084D310E5292929E13E8085D310C5E5E5292929E11A13D311
10F5E1C10D2479B720D7C9C5E521EC86E5EB79F5E5C57E1213780600094710F6C1E1F1233D20ECD1E1C1C9
.NAMEOFAPP (Must be 8 letters maximum, but can be lowercase if desired)
Asm(Hex Code Here)
(I suggest using [2nd] [Rcl] to put the program in the Axe program the first time. Remember that Asm() is just pure hex in Axe. :) )Z-address is what it's called in the official documentation from Toshiba. They also call the vertical direction "X" and the horizontal direction "Y", so take that with a grain of salt.
No, the Axe horizontal / vertical commands are different.Z-address is what it's called in the official documentation from Toshiba. They also call the vertical direction "X" and the horizontal direction "Y", so take that with a grain of salt.
So that's how Axe does the vertical/horizontal shift...
Now that I've thought about it, I know what Scout's thinking. *facepalm*
Here's how to compile hex into an App on-calc (the easy way)
1. Download Axe Parser
2. Make the Axe program like this:Code: [Select].NAMEOFAPP (Must be 8 letters maximum, but can be lowercase if desired)
(I suggest using [2nd] [Rcl] to put the program in the Axe program the first time. Remember that Asm() is just pure hex in Axe. :) )
Asm(Hex Code Here)3. Run Axe, make sure that compile to Applications is selected, and enjoy.Spoiler For the Axe program using the code Scout quoted above:
4. To sign the App, transfer it to your computer, drag it over the signing tool that comes with the Axe download, and re-transfer to your calc.
I hope this helps Xeda! ;D
Now that I've thought about it, I know what Scout's thinking. *facepalm*
Here's how to compile hex into an App on-calc (the easy way)
1. Download Axe Parser
2. Make the Axe program like this:Code: [Select].NAMEOFAPP (Must be 8 letters maximum, but can be lowercase if desired)
(I suggest using [2nd] [Rcl] to put the program in the Axe program the first time. Remember that Asm() is just pure hex in Axe. :) )
Asm(Hex Code Here)3. Run Axe, make sure that compile to Applications is selected, and enjoy.Spoiler For the Axe program using the code Scout quoted above:
4. To sign the App, transfer it to your computer, drag it over the signing tool that comes with the Axe download, and re-transfer to your calc.
I hope this helps Xeda! ;D
Thankee, you two. I actually did end up doing that and it was very helpful. The only problem I had with Axe is that it makes an App that has its own axe "header" I think. I had to go through and adjust all the addresses for it to work. Thanks!
I'm sure Xeda plans to release it.
Also I agree an app is better than a 8xp ran with Asm(), as long as the APP uses hooks, because parser hooks are much faster than the Asm() command.
I, jeez wow, sorry to not respond. Yeah, I will try to have the app version at least somewhat presentable by the end of my 5 weeks of solitude. And I will try to release the SpriteLib update with Z Addressing before I leave. I have a two hour exam soon, so it will in a few hours, but it really is pretty easy to add...
Thanks all! And I hope my present makes its way into your lives soon, I am rather proud of my work... Heheh, I hope the secret programmer has kept it secret enough... And I hope said programmer can figure out how to finish it as I do not believe said programmer has worked with assembly before :D
Yeah I wonder if he planned to join the forums too. I also can't wait until Xeda returnsSeriously. I have some more math stuff that I want to talk about! Do we have a math sub-forum? We need to.
Yeah I wonder if he planned to join the forums too. I also can't wait until Xeda returnsSeriously. I have some more math stuff that I want to talk about! Do we have a math sub-forum? We need to.
I don't want to debate stuff. SHE is just really smart with math. (Plus, SHE comes up with some interesting ideas)Yeah I wonder if he planned to join the forums too. I also can't wait until Xeda returnsSeriously. I have some more math stuff that I want to talk about! Do we have a math sub-forum? We need to.
i wanna debate some maths with him too! a math sub-forum would be great!
sum({0,1,4,9,16,,25,36...9801
Would return 328350 (I think :P). BatLib lets this normal execution occur, so any BASIC programs that use sum( the normal way will still work.
...What about the goat? ???
And I want to thank all the folks who...
<<two hours later>>
And that one kid... yes the goat...
Now to get back on topic, I am working on a multiprecision multiplying routine and I am trying to get BASIC ReCode back up and functioning. Since there is still >9000 bytes of memory till fill the APP, I am going to focus more on command 40.Nice, you got a lot of space left. What would be the multiprecision routine? I'M curious what's the difference between regular TI-BASIC ones and that.
(Seriously, the code is 7215 bytes so far... I have 9041 bytes to go before it is full.)
dim(29,0,8,0,8,2
dim(99
dim(10,67
dim(43→A
dim(29,0,8,0,8,2
You can actually string them all together with one dim( command:dim(29,0,8,0,8,2,99,10,67,43,29,0,8,0,8,2→A
This will save speed and memory, so if you can string commands, you should.
I know, I'm even getting excited! I... Erm... I'm working on an RPG using BatLib... It has been so long since I did an RPG...
Darn so many commands. I'm afraid I'll not be able to keep up, lol. Btw is Recode included with BatLib now or is is still downloadable separately?
Also a suggestion for future versions: add a delay in the main menu because it's incredibly hard to select options. Keys are too sensitive. :/
ReCode is included in BatLib, but I am thinking of making it into its own APP, too. If I do, it will still use dim(40 to start to maintain compatibility. About the main menu, you can use the numbers 1, 2, or 3 to highlight an object. For now, it doesn't do anything, though.Ah ok, I guess another app could be an idea. People who don't need it could save some space and stuff.
While xx
<<stuff>>
While yy
<<stuff>>
End
<<stuff>>
End
Here is the download to the fixed version...dim(91,2,4,{0,1,2,3,4,5,6,7,8,9
The result will be {0,1,6,7,8,9} in Ansdim(91,2,4,0
ordim(91,2,4,L1
As a note, they directly modify the list, so there is no need to do something like this:dim(91,2,4,0→L1
dim(22,"EF0745
Prompt A
dim(22,"EF0745
dim(22,"EF0745
Pause
That being said, I have been bugged about this, too, but since I wasn't sure if anybody else would be, I decided to leave it this way. It will only take 4 more bytes of code, but I can prevent dim(22 and dim(23 from modifying Ans. Are there any other commands that should not modify Ans?
dim(22,"EF4045
Pause A
Might I ask what the value for A is XD
EDIT: Never mind :P
ClrDraw
ClrHome
dim(29,0,30,0,30
dim(99
dim(2
dim(22,"FDCB00AE
dim(22,"EF4045
dim(29,0,96,0,64,1
dim(99
Pause
:Ddim(29,0,8,0,8,2 ;makes an inverted 8x8 rectangle at (0,0)
dim(99 ;Displays the graph screen
dim(10,67 ;This waits for a key press in the arrows, Enter through Clear, and Graph through Y=, and 2nd to Del
dim(43→A ;This returns a key press that detects up to 2 keys
dim(29,0,8,0,8,2 ;makes an inverted 8x8 rectangle at (0,0)
However, if you want to speed up the code a little as well save memory, you can combine all of the syntaxes:dim(29,0,8,0,8,2,99,10,67,43,29,0,8,0,8,2→A
Both of those will invert a rectangle, display the graph, wait for a keypress, reinvert the rectangle, and then store the keypress to Adim(2
dim(22,"FDCB00AE
dim(22,"EF4045
dim(29,0,96,0,64,1
dim(99
Pause
The hex code to clear the LCD is EF4045 :PYou need to clear the textShadow buffer, too, so you can use EF4645. So, dim(22,"FDCB00AEEF4645
All that does is clear the LCD, but when displaying the homescreen, it will reload the contents from the buffer
AxesOff
ClrDraw
dim(87,5,5,"HELLO WORLD
dim(99
X is the X coordinate (0~23) to draw the character or string at:P
Quote from: ReadmeX is the X coordinate (0~23) to draw the character or string at:P
That is because it is displaying at (0,20)
It worked fine for me... Also, should I add that as a command?
Repeat getKey(15)
Pt-On(X,Y,Pic1
DispGraph
ClrDraw
End
dim(40
Fill(0
While getKey!=15
dim(29,0,96,0,64,6
DispGraph
End
Stop
dim(40
Fill(0
While getKey!=15
If getKey=1
Then
Stop
End ; I get syntax error here
dim(29,0,96,0,64,6
DispGraph
End
Stop
Um, after the Stop, the BASIC parser picks up again :P The BASIC parser reads the next line which is End and it say "What is this?! This doesn't belong here!"
Also, you can use Line( instead of dim(29 in ReCode. It is faster that way ;)
I could, but I opted not to XD I figured lines were easier to count than tokens.
On another note, I am going to be late for an appointment so I need to go, but here is the newest update of BatLib. I will go into more detail later about the fixes and added stuff :)
Is there an easy way to do it in BASIC? I know how, but the code was a bit time consuming compared to this.No, it's quite difficult. For instance, the "easy" way to do command 91 (deleting) would be like this, assuming A holds the element to start deleting at, B holds the number of elements to delete, and Ans holds the list:
Repeat A=15
End
Yeah, if I can correct the strings and finalise the sprite commands, that would be awesome :) I also need to add in tilemapping and data editing while I am at it :)
Pt-On(X,Y,Pic ;Type
;Example:
[[FFFFFFFFFFFFFFFF]->Pic1
Pt-On(0,40,Pic1
That's true...How about seq(Ans(I+B(I≥A)),I,1,dim(Ans)-B :D
For command 91 to work at the beginning or end, this is how it would have to look:
:augment({0},augment(Ans,{0
:augment(seq(Ans(I),I,1,A),seq(Ans(I),I,A+B+1,dim(Ans
:seq(Ans(I),I,2,dim(Ans)-2
Nah, too simple...That's true...How about seq(Ans(I+B(I≥A)),I,1,dim(Ans)-B :D
For command 91 to work at the beginning or end, this is how it would have to look:
:augment({0},augment(Ans,{0
:augment(seq(Ans(I),I,1,A),seq(Ans(I),I,A+B+1,dim(Ans
:seq(Ans(I),I,2,dim(Ans)-2
"Str1→A ;This returns a pointer to Str1 in A
Pt-On(A,X,Y,W,H,T
I just noticed in the readme that the name for command 68 is wrong XD It should be MakeString. I must have copied and pasted there or something, but it is used to create a string returned in Ans that is a specified length :)
dim(X
210100
EF0745
EF7942
No, I didn't update that XD I actually cannot remember the last time I updated that XD
(for those who don't know, dim(57 is what returns the version of BatLib as a string)
If dim(57>X
Hmm, I could add in a new command just to return the number, yes. I actually have it set up to do that nicely... So for v4.00.95.51, it would display 95.51 in Ans. Does that sound good?
I just downloaded Batlib, and I am trying to enable the font hook but nothing is happening.
dim(57
4.00.95.51
Oh jeez, I am way too tired to make updates I guess x.x I managed to upload everything except the correct app, sorry. I modified my post to have the correct download : http://www.omnimaga.org/index.php?action=dlattach;topic=5383.0;attach=7381
Also, for those that already downloaded everything else, here is just the app.
Sorry about that :/
EDIT: Also, this version number is in hex, so it should be 4.00.66.33 when you use dim(57
Thanks, Scout :)
This .8xk is the actual app. I accidentally uploaded the wrong app with all the correct documentation the first time :/
dim(1,56,4
0->X
0->A
0->Y
dim(52,"7E8181818181817E",8,X,Y,0,99
getKey->A
If A=26
Then
X+1->X
End
If A=34
Then
Y+1->Y
End
If A=25
Then
Y-1->Y
End
If A=24
Then
X-1->X
End
dim(56,4
End
ClrHome
Scout: Sprites are drawn to 12 columns. That is why the readme says it must be a value of 0 to 11.
Also, I never added error checking there to save on speed
:Florita
:Troll
:Dwarf
:Magfly
:Manita
:Water Demon
:Healer
:Trolm
:Bufli
And it continues. I can store this program in archive and read the lines as I need them!dim(103,SearchByte,NewByte,"VarName"
SearchByte is a value from 0 to 255 that is the byte to search for
NewByte is a value from o to 255 that is the value to replace the byte with
"VarName" is the name of the var to search and modify
I added that because I was having issues with Source Coder. It doesn't like spaces, so I had to replace all the space with another token, then when it was on my calc, I had to go back and replace everything. Anyway, it will still be very useful for a Hangman game :)
The lessons I have learned...:D Is it bad that I gave respect for that? That actually made me laugh out loud because I learned the first one pretty fast, too XD
Don't set all the font chars to be blank :evillaugh:
Don't start a Recode block on the home screen <_<
Don't forget that key codes are not the same as Basic :banghead:
The times I've cleared my ram: ∞
About the sprite display, are sprites only displayed at multiple of 8 horizontally? This might be an issue for some games where the programmer wants smooth character movement or similar things. Do you think this could be changed?
EDIT: Also, on another note, I will be without internet for from May 9th to August 29th, so if I don't respond, that is why :/ Also, if for some reason I cannot come back to college, I might not have internet for a long while after that.
Okay, so I guess the previous post can be pretty much ignored now... I am in the process of converting BatLib to mnemonics so that I can incorporate some of my latest project ideas (line reading/writing/deleting, a safer programming language than ReCode, et cetera), but I do not know how to get Brass to compile my code as an app. It says that the first page must be 16KB and I think the issure is that I change .org to 9872h for code that is executed at appbackupscreen. Sorry for the runon sentence, but help would be appreciated...
I am using the DCS SDK, but I opened up the Brass App in notepad and saw that I could define my source as being "TI8XK" or "Intel", but it does not make the correct format for the TI8XK and the Intal hex format that I should be able to use with wappsign does not work :/
Now that I have converted most of the code to mnemonics
Hehe, I finally figured out how to get Brass to compile an app, so now I am debugging, I should be able to start adding new things in a few days :)Sounds nice. :)
It won't work with zStart because it requires a modification to the app header and zStart already uses that area.I mean because zstart has a new function that allows hook chaining....
:dim(126.5,"Celtic 3
Notes:dim(126.5,"Omnicalc ;put Omnicalc first so that Celtic 3 doesn't conflict with Omnicalc's real() token.
dim(126.5,1,"Celtic 3
Oh, as another note, app names are usually 8 characters long, so they get padded with spaces at the end. However, since this is not always the case, BatLib does not automatically pad names.