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 ... 26 27 [28] 29 30 ... 317
406
News / Re: Highlights of the Month - January 2016
« on: February 02, 2016, 02:19:12 pm »
Oh, I completely forgot about Balltrix @_@ I may have actually made updates, but I'll have to check later.

407
Humour and Jokes / Re: Funny #omnimaga quotes (NSFW)
« on: January 25, 2016, 11:10:03 am »
Quote
<(#) Runer112> I don't really know any "cool" languages
<-- (#) KED has quit (Quit: :J)
<Sorunome> Runer112: what do you define as a "cool" language?
<Sorunome> axe is cool ;)
<(#) Runer112> I was referring to spoken/written languages
<Sorunome> oh
<(#) notipa> do you not speak in Axe?
Chop, chop, muthafucka!

408
TI Z80 / Re: Balltrix - z80 ASM Remake
« on: January 11, 2016, 08:36:20 am »
Writeback Worries:
-The code for doing this with the high scores is actually smaller and faster than using an external save file, not to mention that it doesn't add clutter to the VAT.
-If I did use an external save file and the user kept it archived, I would have to unarchive it, modify, then rearchive it anyway, so there would still be lag.
-If the program is in RAM, I'm directly modifying the source program, not the copy of it at $9D95. If it is archived, I'm only modifying the copy, so it won't be permanently saved.


As to the comment about the 48-byte thing being unnecessary or possibly more difficult than just using a graphics buffer, it is actually (again), smaller and faster. Like, way faster and way smaller. It takes no extra time to render than a graphics buffer, but scrolling it down and collision testing is a lot faster and the code is smaller.


At work yesterday, I started a routine for converting a keypress (0~56) to a letter character as shown above the button. It worked fairly snazztacularly, but now I have to implement it.

409
TI Z80 / Balltrix - z80 ASM Remake
« on: January 09, 2016, 11:22:08 pm »
Updated Here

I've remade DJ Omnimaga's Balltrix in z80 Assembly. As requested in an older port, I've kept the original title screen.

The biggest issue that needs fixing is the name entry menu for highscores. It works, but it is super ugly and tedious. Some quirks/features are:
-The highscore info is saved directly to the program, so no external save file.
-Only 48 bytes of RAM are used to store the graphics data and none of the 768-byte buffers are modified by this program.
-This program spends a lot of it's time in a low-power halt state and operates at 6MHz.

I'm still in the process of tweaking and modifying the program, but I think I've got the control sensitivity almost perfect as well as the gradual increase in speed. My highest score so far is 87 ;D

410
ASM / Re: [z80] Floating Point Routines
« on: December 28, 2015, 12:13:44 am »
At the moment, I am not working on the 80-bit versions. However, I am not finished working with them. Life is busy again, so it will probably be a while yet before I work on floating point routines again.

411
Anime and Manga / Re: Recommended Animes/Manga
« on: December 15, 2015, 10:42:45 pm »
Ooh, I've seen The Devil Is a Part Timer and it was pretty good! Ky says it's 8/10 because the ending could have been better, but I thought it was decent ending.

412
Anime and Manga / Re: Recommended Animes/Manga
« on: December 15, 2015, 09:44:49 am »
My spouse is the one who watches anime, but sometimes I watch too! I have yet to see one series or movie that I disliked, but I can never remember their names :|

Yesterday we watched Patema Inverted and it is exactly the type of movie I like! Fair warning, it made me question my orientation a few times ;D
I've wanted to see Paprika for a while now, and we might be seeing that today!

And for anybody who like humor, I have been a fan of the abridged version of Dragonball Z for the past like 6 years. Very funny, gets the original plot across, and episodes are still being made.

413
TI Z80 / Re: convert hex to asm
« on: December 09, 2015, 07:43:45 am »
There are quite a few ways to do this, including an on-calc way to do it:
Download Calcsys, then figure out where the program starts in memory.
Go to that mem address and open the disassembler in Calcsys.

414
ASM / Re: [z80] Floating Point Routines
« on: December 05, 2015, 06:55:20 pm »
Bugs fixed:
Spoiler For Special Formats:
Basically I had ZERO with an exponent of $FF and INF/NAN with exponents of $00. However, a calculation resulting in 'ZERO' was usually only indicated by an exponent shift from $01 to $00, and INF was indicated by a shift from $FF to $00 so I could rely on the z flag. The problem is, an addition could technically result in a value with exponent of $FF and not register as an overflow. Then when the result was fed into another routine, it would be flagged as ZERO instead of INF !

Now all special values have an exponent reading $00.
Spoiler For single2str:
there was an issue where when |x|<.1, the output string would be partially mangled. This was fixed. There also may have been an un-noticed off-by-one error when returning negative exponents, but I finally noticed and fixed it.
New and Updated Routines
Spoiler For str2Single:
Converts a TI-ASCII string into a float.
Spoiler For geomeanSingle:
Computes the geometric mean of two numbers.
New Bugs:
Spoiler For str2single:
This does not yet handle the engineering E.
This crashes on some inputs, possibly if the strings are too large.


415
News / Re: TICalc POTY Starts!
« on: December 05, 2015, 05:57:28 pm »
I sense some intense competition in the TI-Nspire category.
I really can't decide who to vote for!

416
The Axe Parser Project / Re: Read lowercase letters from Ti-Basic string
« on: December 04, 2015, 02:29:38 pm »
The TI-OS strings uses tokens, not ASCII. Meanwhile, Axe strings use ASCII. The lowercase tokens are 2-byte tokens starting with $BB, and the second byte starts with 'a' = $B0, but $BB is skipped. In ASCII, 'a'=61h. Putting this confusing mess together, we need to convert $BBB0 -> $61, and so on. I think the following code will work, but only for uppercase and lowercase letters:
Code: [Select]
;;Assume S points to the OS String data, C is the size of the string

0→I→J
While C
{S}→A
If A=187
{S+1→S}-$4F→A
If A>106
A-1→A
End
End
Text(J,I,°A)
I+1 and 16→I
If I=0
J+1 and 8→J
End
S+1→S
C-1→C
End

417
ASM / Re: [z80] Floating Point Routines
« on: November 26, 2015, 12:35:06 pm »
I have not added extra-precision calculation, but I really need to. The loss of accuracy gets built up in those bottom bits meaning a lose 1 decimal digit of accuracy (so we only have 6 digits of accuracy). TI uses 4 extra digits of precision in their intermediate calculations which is why they manage to keep much of the error out.

Anyways, I added a randSingle function, hyperbolic functions (sinh, cosh, tanh), a faked sqrt (using logs and exponents, until I find or rewrite lost code). I also overhauled the single2str function as planned, and I made a few other routines including a single->TI Float routine.

I've updated the public download, but I'll also upload to this post :)

Have a screenshot!

418
ASM / Re: [z80] Floating Point Routines
« on: November 25, 2015, 01:33:01 pm »
I haven't update the public download, but I finished:
log10(x)
ln(x)
logy(x)
2x
ex
yx

And I'm working on making a much more general and better (asymptotically faster, less RAM used) routine for converting floats to base 10 strings (and TI floats).

Short Term Plan:
After the better float->string, I plan to implement a string->single and tifloat->single. These should be fairly easy to implement (I have done it several times before with success).
After that, a very simple math parser and I/O. This will be difficult-ish (6 on a scale of 1 to 10).

Longterm Schedule:
Update the exponential and log routine with a complex algorithm. Medium difficulty using the existing framework. This will supply most of the trig routines, too.
Add complex support to the math parser.
Extend these routines to the 80-bit floats.
Go nuts because now I can pump out tons of routines since I have the building blocks for most of math.



419
ASM / Re: [z80] Floating Point Routines
« on: November 24, 2015, 11:49:48 am »
Necro update:

I have some Single Precision Floating Point Routines that seem to be working. They have been tested, but not rigorously tested. The routines currently available seem to be working as expected including being able to compute and display ##\log_{2} \left(\pi^{-32}\right)## to 7 digits of accuracy. The single->string routine is not as complete as it could be, but it is working.

Syntax is consistent with HL pointing to the first argument, DE to a second argument if needed, and BC pointing to where the result is output. Only cmpSingle is different, because it does not store an output. Instead, it returns the result of the comparison in the flags register. With that exception, no float routines modify the main or shadow registers.

Now for an example of use on a TI-OS, let's compute and display ##\log_{2} \left(\pi^{-32}\right)##:
Code: [Select]
    ld hl,const_pi  ;pi is the first arg
    ld d,h \ ld e,l ;pi is also the second
    ld bc,scrap
    call mulSingle  ;pi*pi = pi^2
    ld h,b \ ld l,c ;Gonna square the result
    ld d,b \ ld e,c ;BC points to the result of the previous multiply, now HL and DE do, too.
    call mulSingle  ;= pi^4
    call mulSingle  ;= pi^8
    call mulSingle  ;= pi^16
    call mulSingle  ;= pi^32
    call invSingle  ;= 1/pi^32 = pi^-32
    call lgSingle   ;= lg(pi^-32)
    call single2string
    bcall(_PutS)

From the readme, included routines are:
Code: [Select]
absSingle
  func: |x| -> z
  mem:  None
addSingle
  func: x+y -> z
  mem:  6 bytes
  Note: special cases not done
subSingle
  func: x-y -> z
  mem:  10 bytes
  Note: special cases not done
rsubSingle
  func: -x+y -> z
  mem:  10 bytes
  Note: special cases not done
invSingle
  func: 1/x -> z
  mem:  5 bytes
divSingle
  func: x/y -> z
  mem:  5 bytes
cmpSingle
  func: compare x to y, no output
        return z flag if x=y (error is up to the last 2 bits)
        return c flag if x<y
        return nc if x>=y
  mem:  None
single2string
  func: string(x) -> z
  mem:  44 bytes
mulSingle
  func: x*y -> z
  mem:  6 bytes
negSingle
  func: -x -> z
  mem:  None

420
Technology and Development / Re: Serial Link, TI Z80
« on: November 07, 2015, 10:44:07 pm »
I originally made the Python program to experiment with the GPIO board on my raspberry pi. I eventually managed to create working link routines between calcs and played with those, but I never did anything substantial. The routines, however, were significantly faster than other routines I have seen, and I think I posted them somewhere.

Pages: 1 ... 26 27 [28] 29 30 ... 317