Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Xeda112358

Pages: [1] 2 3 ... 313
TI Z80 / Re: Heapsort, VATSort, and ListSort
« on: March 28, 2020, 03:49:50 pm »
Necro Update!
I rewrote the heapsort to be really general-purpose. This significantly reduced the size of ListSort and it made it so that it doesn't require any additional user RAM (but it did make it slightly slower).

I've attached the new heapsort.z80 and listsort.z80

But then I tailored the new heapsort to the task of sorting lists and made it even smaller (200 bytes, saving 157 bytes)! And it is faster, AND this version now uses 15MHz mode if available.

Which reminds me: In the original benchmarks, I was apparently comparing my 6MHz program to TI's 15MHz SortA(, so my program is actually over 50 times faster than TI's on a 999-element list.

News / Re: Grammer 2.51 released!
« on: March 11, 2020, 04:26:56 pm »
7 years was a long time. I hope we won't have to wait 7 more years for another update. haha
Oh trust me you won't. You got any suggestions for new updates? If you do feel free to post them here. I'm a contributer to the project and I use this instead of Axe and Assembly.

Oof, I just recently got a new job and so far as I can tell, it's going to be taking up most of my programming time :(

I'm definitely glad I put it up on GitHub as that makes it much easier for other people like Nonstickatom to contribute.

As NSA ( :D ) said, if you find any bugs or have any requests that you would like to be considered, feel free to post in the forums (or GitHub) :)

Grammer / Re: Font Converter: zStart and Omnicalc
« on: March 09, 2020, 01:01:58 pm »
It should start with 1-byte for the width, followed by 7 bytes of data. I imagine that you can technically edit the widths of the zStart font and then the large font would also technically be variable-width on the graph-screen (The OS's format is the same for both fonts, just all the large font chars have a width of 5).

Grammer / Re: Font Converter: zStart and Omnicalc
« on: March 07, 2020, 07:23:08 am »
How do you actually create ZStart fonts? I could never find a computer editor back in the days (there was none included with ZStart or it was missing?) and I liked ZStart fonts because they could be a different size than Omnicalc's.
Oh, zStart actually has a built-in font editor. The format is actually like the OS' internal format, which is sightly different from Omnicalc or BatLib font, but also slightly easier to access.

General Calculator Help / Re: TI nspire cx (non-cas) Red screen problem
« on: February 29, 2020, 07:34:16 am »
So far as I know, upgrading to 4.5.2 was a bad idea. You had to have had ndless for any of this, and ndless doesn't work on 4.5.2.

I looked at the Reddit thread and they asked a question that you never followed up on: do you have a serial device, like an Arduino ? Maybe you can use that (I have no idea how).

Note: I know very little about any of this. Critor on tiplanet is far more knowledgeable (I think Critor modified my nspires, actually). All I do know is that once people were on 4.5.2, they were fricked.

Grammer / Re: Creating Modules on calc?
« on: February 27, 2020, 12:06:04 pm »
I guess Im late to the party as usual.
Looking at the module code, I assume it is written for spasm. Mimas is kinda picky with moving addresses. RORG $ADDRESS should make it so that all following code will start at that address. This means that you should use RORG instead of ORG for Mimas. It also has tools for converting .asm files to its own appvar format (and back) for some easy copy and paste to and from the editor.
Oh, nice! ORG was in fact the cause of some of my headaches with that.

EDIT: I updated my version of Granmer on-calc (there was in fact a bug in the outdated version I had). Combined with using rorg instead, it worked !

Grammer / Re: Creating Modules on calc?
« on: February 26, 2020, 03:25:54 pm »
It would almost certainly say the same thing

Grammer / Re: Creating Modules on calc?
« on: February 26, 2020, 03:15:27 pm »
I just used the same format as listed, except I had to hard-code the offsets. It could also have been a bug in the version of Grammer that I was using.

Grammer / Re: Creating Modules on calc?
« on: February 26, 2020, 10:34:45 am »
I attempted this with Mimas and managed to crash my calc when I tried to use it :|

Calculator C / Re: reading the battery voltage
« on: February 23, 2020, 07:46:53 am »
I wish I could help, I just don't know much about the Nspire .___.

TI Z80 / Re: GroupRead
« on: February 21, 2020, 10:45:19 am »
You should definitely give the first post a read; this program lets you get the names of all the vars, and you can just copy the program that you want to run to a temp program.Then just run the temp program :P

My comment was more about having a command where you give it a name, GrpRead copies the program to temp program, then GrpRead executes it. It turns out that there is a lot of room for memory leaks and it just isn't worth it to save an extra couple of bytes in the BASIC program.

ASM / Re: [z80] Floating Point Routines
« on: February 21, 2020, 12:50:43 am »
Wow, it has been over a year since I last updated this thread. I followed up on that todo list a while ago, but I'm posting to announce a new addition to the library: 24-bit floats! I basically wrote all of these in the last 48 hours and I'm pretty burned-out:

These floats are a fantastic balance of speed and usefulness on the Z80, and I think all of the routines fit into about 2500 bytes, so they are compact, too.

News / Grammer 2.51 released!
« on: February 15, 2020, 05:41:25 pm »
After seven years, Grammer was revived with a new update! In fact, since then, there have been three more major updates, including today's Grammer

After losing the source code in 2013, Grammer progress died, but then in 2016 Hans Burch(ticalc) recovered the source code, presumably by disassembling the last binary and comparing it to an old source file. I didn't actually get to working on Grammer again until late 2018, but since that it has had fairly steady updates. I first documented, reorganized, and cleaned up the code, then put it up on GitHub. I started adding features and managed to rope in @NonstickAtom785 into the action with bug reports, improved documentation, and recently some bug fixes.

In the past 16 months, there have been many updates and modifications to expand Grammer's abilities. With these new updates, Grammer has now graduated up from a 1-page app to a 2-page app (16384 bytes vs. 32768 bytes), but the updates are (hopefully) worth it!

Here is a quick summary of added features since the 2012 update.
  • Grammer now has a real main menu! Instead of just showing one entry at a time, now you can scroll through programs with a real scrollable menu.
  • Grammer now has support for single-precision floating point math, including the basic operations, as well as exponentials, logarithms, trig, inverse trig, and more! Keep in mind, Grammer is intended to use 16-bit integer math, so it's a bit convoluted to use floats:
  • Grammer has an external module system, which means that specialty routines can be added to extend the language. For example, Yeong has created a textbox module which can be useful for game dialog!
  • Grayscale is not backwards compatible. Grayscale is now 4-level gray, instead of 3-level. Grayscale now takes color from both buffers, so BOTH buffers must have a black pixel to appear black (before, there was a black buffer and a gray buffer, where a black pixel in the former would override the latter).
  • Input and Menu routines have been significantly modified, with Input being the most obvious. In place of highlighting the entered text, a blinking cursor is displayed, making it more obvious that input is desired from the user. On the programming end, you can now relocate the Input buffer and size. So now if you want to have the user enter a name of up to 8 bytes, you can point the input buffer to where you want the string written, and set the size to 8. The Menu( routine now has scrolling, and internally it is more memory friendly, allowing more options. An entirely new Menu(' routine allows the programmer to generate menu items using a subroutine. This could be really useful for game menus where, say, an inventory menu is prone to changing.
  • Grammer officially has stack support!
  • You can now save and restore variables within a ▶Nom(...End block, which is useful for subroutines.
  • Pt-Off( finally supports big sprites!
Spoiler For More updates:
  • The source code has been cleaned up significantly and put on GitHub.
  • RecallPic now works on archived picture variables.
  • pxl-Test(' was removed and replaced with an equivalent rectangle method.
  • Rectangle clipping now works in all directions!
  • Line drawing now has real clipping!
  • The solve( now includes port commands, and relocation of where the vars are stored.
  • L (the list L), can be used to execute specific lines of code.
  • Text( now supports displaying signed numbers via the Fix command, as well as floating point numbers.
  • ▶Dec converts a string to a float, useful for user input.
  • Param can be used to read a list of parameters passed to a subroutine.
  • Param' and Param° push to and pop from a stack, respectively, where Pmt_Bgn points to the start of the stack and Pmt_End points to the end of the stack.
  • Circle( has 9 new methods, all with different fill options (much like the rectangle routines).
  • Variable-width fonts have a more sensible format, and the fonts are ported to work with DrDnar's Monochrome Font Editor. The font files are included with the downloads so you can use them as templates for your own fonts.

Download the latest Grammer v2.51!

Grammer / Re: Latest Grammer Updates
« on: February 15, 2020, 11:07:47 am »
Grammer v2.51.0.0
Time for 2.51 !

The GitHub page is getting a lot more documentation, thanks to @NonstickAtom785 (both in documenting and bugging me to document stuff).

Bug Fixes:
  • Fixed bug with Param
  • Fixed bugs with Input
  • Fixed bug with PauseIf. This was allowing un-breakable infinite loops!
  • Fixed bugs with Archive/Unarchive (and similar bugs). These could cause crashes.
  • Fixed bugs with archiving in the main menu
  • Fixed bug with empty strings
  • Fixed bug with ending quotes on strings!
  • Fixed Omnicalc/Batlib fonts
  • Fixed bug with not implementing screen invert :|

  • Optimized Dispgraph
  • Added new display methods that allow overlaying or masking multiple buffers
  • Added smooth-scrolling tilemap routines! This is long overdue; I reserved space for more tilemap commands and it took 8 years to actually do it >_>
  • Reimplemented degree token to temporarily set a buffer
  • Added TI-OS fonts to the text routines (request)
  • Added support for archived fonts (but not Grammer's variable-width format fonts :/)
  • The menu routine font is no longer hard-coded, so you can use custom fonts!
  • Menu(' now has a mode to support multiple headers, so you can make menus where you press left/right to go to the next menu.
  • Updated variable-width font at request to look like it used to.
  • Reimplemented ' option for the Menu( command.
  • Added DS<( to complement IS>( (nonstickatom)
  • Recreated the program launcher. This is an assembly program that calls the Grammer parser to parse code (caled prgmG250).

Here's a screenshot implementing the smooth-scrolling tilemap commands and new DispGraph techniques:

In news related to Grammer updates, this might be the last major update for a while; life is about to get very busy for me. If all goes according to plan, this "busy" might be longterm :)

EDIT: Forgot to add the files >_>

Grammer / Re: Grammer 2-The APP
« on: February 01, 2020, 10:42:28 am »
@NonstickAtom785 : You were looking for this I think.

When I updated Grammer to 2.50, I declined to make a program launcher thing. (I used to supply an assembly program that could be used to either run a Grammer program, or execute in-line Grammer code.)

I had fun with creating this .gif showing that you can basically mix Grammer code inside a BASIC program (aside: The other way around is more difficult):

For compatibility reasons, I renamed the assembly program to prgmG250.
Code: [Select]
    - Ans is a string: Then it is the name of the Grammer program to execute.
    - Ans is not a string: Then the code following Asm(prgmG250 is executed as Grammer code up to a Stop,
      then it continues as TI-BASIC code.

So, some things to consider: I know when I make Grammer programs, I put subroutines after the Stop. If you tried to in-line one of those programs this way, the TI-BASIC parser would pick up at the subroutines, almost certainly causing an error! Instead, you'll want to reorganize your code like:
Code: [Select]
  <TI-BASIC code>

  <Grammer code>
Goto Lbl "Stop


  <TI-BASIC code>

Basically, just make sure that the Stop that your Grammer code reaches comes right before where you want the TI-BASIC parser to pick up. In the example gif, the program I ran had no subroutines, so I didn't ave to worry about the structure.

A final note, prgmG250 should be compatible with at least v2.50.0.2 and after. I didn't check and, but it should work with those, too.

Pages: [1] 2 3 ... 313