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 ... 107 108 [109] 110 111 ... 317
1621
BatLib / Re: BatLib
« on: September 29, 2012, 04:46:22 pm »
I meant more that since IRC is down, I cannot use it, but I wouldn't mind getting to help on that. However, if you have most of the commands already finished, I don't plan to add any more functions to BatLib...

1622
BatLib / Re: BatLib
« on: September 29, 2012, 04:26:36 pm »
I wish I could use libbot :/ I also cannot wait to start making solid example programs, either. Now that I am basically done with BatLib, I can start focusing on using it :D

1623
BatLib / Re: BatLib
« on: September 29, 2012, 03:13:48 pm »
Okay, I think it is bug hunting time :) I have fixed the graphing bug, and I have added more to dim(126) to make it even better.
Taken from the readme:

126-GroupHookMode dim(126.x,arg1,arg2)

This is used to control the GroupHook settings. Since BatLib automatically
installs all GroupHook apps on the calc in the order they appear in memory, this
command is very useful to manage conflicts. For example, Celtic 3 installed
before Omnicalc will render Omnicalc's real() commands useless (because Celtic 3
thinks they belong to it). You can use this command to swap the order in which
apps are checked.
  • dim(126,#) returns the name of the nth app in the GroupHook.
  • dim(126.1) will disable all grouphooks.
  • dim(126.2) will enable all the apps in the grouphook.
  • dim(126.3,#) will disable the nth app in the grouphook.
  • dim(126.4,#) will enable the nth app in the grouphook.
  • dim(126.5,#,"App") will allow you to rearrange the grouphook order. For

example, to make sure Celtic 3 is checked first, set it in slot 0:
Code: [Select]
:dim(126.5,"Celtic 3Notes:
  • ".DNE" is returned with dim(126.4) and below if there is no nth app (meaning #

was too big).
When using dim(126.5), the hooks are swapped. In the example, the App
previously in position zero will now be in whatever position Celtic 3 was in.
  • ".BAD NUMBER" is returned with dim(126.5) if there is no nth app.
  • ".DNE" is returned with dim(126.5) if the app does not exist
  • ".BAD NAME" is returned with dim(126.5) if the app exists, but is not a

grouphook app.

Basically, if you have a program that you want to run Celtic 3, Omnicalc, and BatLib routines in, you should include this at the start of your program:
Code: [Select]
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.

1624
ASM / RAM Used in graphing
« on: September 29, 2012, 12:02:47 pm »
As was noted by Sorunome and I am sure others, BatLib's introduction of GroupHook caused a mysterious bug with graphing. It seemed to cause undesired shading of graphs causing some interesting effects. After chasing through the code, I found that it was caused by copying the GroupHook code to the end of TempSwapArea. I had never seen documentation of this anywhere, so as I experiment further, I hope I can provide the information. Until then, i need to find some other 65 byte chunk of free ram that I'm not already using.

1625
News / Re: "Programming the TI-83 Plus/TI-84 Plus" Published
« on: September 28, 2012, 05:31:40 pm »
I am thinking of getting this book for somebody. I just wish the campus book store had it in stock XD I'll probably have to order it online :)

1626
Fruit Ninja / Re: Fruit Ninja
« on: September 28, 2012, 07:50:22 am »
I love the people calling it fake XD Aren't they in for a surprise o.o

1627
Miscellaneous / Re: My new internet speed
« on: September 26, 2012, 10:21:31 pm »
So you'll no longer disappear during 2 months once in a while? Nice :D
precisely >:D Now I can be on the evil interwebs all year round.

1628
Miscellaneous / Re: My new internet speed
« on: September 26, 2012, 09:45:33 pm »
Yes, precisely. Plus, it doesn't seem like it is much slower than at the school, which is nice.

1629
Miscellaneous / Re: My new internet speed
« on: September 26, 2012, 09:20:19 pm »
Hmm, the internet was finally hooked up at home. It got this:

1630
TI-BASIC / Re: Correlation Compiler
« on: September 26, 2012, 09:29:06 am »
If you use Grammer, the fonts only affect Grammer programs. BatLib, on the other hand, has several options that can change your font during normal OS routines. However, zStart (from thepenguin77) is probably the best option as you can create and edit fonts directly on the calculator with a user friendly editor :)

1631
Humour and Jokes / Re: Dsylexics Untie!
« on: September 26, 2012, 09:25:27 am »
xeactyl,wlel dnoe!me lkies ti.
See, that doesn't work :P You either said that you like TI or you like IT o.O

Or did you say both?! Talk about message compression!

1632
TI-BASIC / Re: Correlation Compiler
« on: September 25, 2012, 11:37:24 am »
I am confused, is this in relation to the Correlation project?

1633
TI Z80 / Re: AxeSh, a shell written in Axe/ASM, for Axe programmers
« on: September 19, 2012, 01:03:29 pm »
I have some ideas!
-You can store source code to appvars and still be able to compile them
- If the user tries to execute source code, automatically compile the program if it has not yet been compiled. (Or ask the user)
basically, a Compile+Run option

1634
Miscellaneous / Re: My new internet speed
« on: September 18, 2012, 09:04:45 am »
At the university:

At home, it is all zero except the ping time. That would be >9000 for sure.

1635
ASM / Arbitrary Precision Multiplication (z80)
« on: September 17, 2012, 09:22:38 am »
In case anybody else wanted some arbitrary precision multiplication, here is a routine :)
Code: [Select]
;===============================================================
AP_Mul_AP:
;===============================================================
;Inputs:
;     HL points to the first number (little-endian, size prefix 2 bytes)
;     DE points to the second number (little-endian, size prefix 2 bytes)
;     BC points to the output location
;Output:
;     The RAM at HL contains the product (little-endian with
;     size prefix). Size is adjusted so there won't be zeroes
;     at the end.
;Notes:
;     This will erase bytes of RAM at (HL) equal to the
;     size of the first number plus the size of the second.
;     So if you use saveSScreen:
;         First number uses 2+M bytes
;        Second number uses 2+N bytes
;        Output number uses 2+M+N bytes
;     At most, 2+N+2+M+2+M+N=768.
;        2+N+2+M+2+M+N = 768
;              6+2M+2N = 768
;               2(M+N) = 762
;                  M+N = 381
;     In otherwords, you can multiply two, 190 byte numbers. In
;     Decimal, this comes out to roughly two 457 digit numbers
;     to get up to 915 digit number. It requires 14952 bytes of
;     RAM to use two numbers >9000 digits
;===============================================================
     di
;First, we get the size
     ld (output),bc   ;4 bytes, save the output location
     ld c,(hl)
     inc hl
     ld b,(hl)
     inc hl
     ld (Num1Loc),hl  ;3 bytes, save the location of the first number
     ld (Num1Size),bc ;4 bytes, save the size
     ex de,hl
     ld e,(hl)
     inc hl
     ld d,(hl)
     add hl,de
     ld (Num2Loc),hl  ;3 bytes, save the location
     ld (Num2Size),de ;4 bytes, save the size
     ex de,hl
     add hl,bc        ;size of the output RAM
;Now we clear out the bytes for the output
     ld b,h
     ld c,l
     ld hl,(output)
     ld (hl),c
     inc hl
     ld (hl),b
     inc hl
     ld (output),hl
     ld (Num3Size),bc
     xor a
       ld (hl),a
       cpi
       jp pe,$-3
;Now we start multiplying stuff
;We need to do:
;     hl=(Num2Loc)
;     de=(Num1Loc)
;     ix=(output)
;     bc=(Num2Size)
;(hl)_Times_(de)_To_(ix)
   exx
   ld bc,(Num3Size)
   exx
   ld bc,(Num2Size)
;   ld hl,(Num2Loc)
   ex de,hl
Loop1:
   push bc
   ld b,8
Loop2:
;===============================================================
;   rl (output)
;===============================================================
     exx
     ld hl,(output)
     ld d,b
     ld e,c
     dec de
     inc d
     inc e
     or a
       rl (hl)
       inc hl
       dec e
       jr nz,$-4
       dec d
       jr nz,$-7
     exx
;===============================================================


   rlc (hl)
   jr nc,NoAdd
;add (output),(Num1Loc)
     exx
     ld de,(Num1Loc)
     push bc
     ld bc,(Num1Size)
     dec bc
     inc c
     inc b
     ld hl,(output)
     or a
AddLoop:
       ld a,(de)
       adc a,(hl)
       ld (hl),a
       inc hl
       inc de
       dec c
       jr nz,AddLoop
       dec b
       jr nz,AddLoop
       jr nc,$+3
       inc (hl)
     pop bc
     exx
NoAdd:
   djnz Loop2
   pop bc
   cpd
   jp pe,Loop1
   ld hl,(output)
   ld bc,(Num3Size)
   add hl,bc
   dec hl
   inc bc
   xor a
     cpd
     jp po,$+5
     jr z,$-5
   ld hl,(output)
   dec hl
   ld (hl),b
   dec hl
   ld (hl),c
   ret
I used this in a test app and wrote a routine to multiply two base 10 integers in Str1 and Str2 respectively (I had to convert the base 10 string to hex data, then multiply, then convert back to base 10). I then used this routine in BatLib to make the routine for base conversion that handles large numbers (hundreds of digits). Feel free to supply other routines or optimisations, too! (I know some of you will find some :P)

Pages: 1 ... 107 108 [109] 110 111 ... 317