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 - Galandros

Pages: 1 ... 39 40 [41] 42 43 ... 84
601
When someone has a weakness, some will attack it directly when they want the person away. Especially on Internet where you will never probably see and recognize the other person. I have seen this happening to another user, actually with comparable behaviour.

Anyway, I am curious to see if net etiquette has anything to say about the 3 points. About capitalization, the net etiquette says to avoid it. Anyway, net etiquette is not standardized varies from community and can be confused with common-sense.

602
Axe / Re: Axe for Dummies (like me)
« on: March 01, 2010, 02:58:23 pm »
The thing is, some of the stuff we're talking about here is pretty advanced.  Most programmers won't need to use hexadecimal or multiprecision byte storing, but its pretty cool that you CAN do it.  Hence, Axe Parser has a very wide learning curve.  Its very easy to learn the basics but as you start to get more advanced, you can start doing some pretty crazy stuff.  Even when staying within the syntax and not using assembly, you can literally do almost everything.  Well... maybe not everything right now, but when Axe is finished, this is what I'm hoping.
Yes, it is advanced but at least we are talking in TI-BASIC like syntax which people are familiar and they will focus on comprehend the theory (generally mathematics) behind it.
Trying to learn this along assembly mnemonics and many possible hazards (register destroy, limited instruction set) is so much harder.

603
Well so far this February is the most active february in Omnimaga history. The highest activity we ever got on a February was 2502 in 2006.

This was funny back then. The previous month we had 4025 (1.5x more than what we got last month) and in Feb when activity dropped to like 80-90 posts a day, some people started complaining and getting worried about a huge activity drop :P
80-90 post is still good posting for forums with this kind of registered users. :/
Less than 10 post a day is boring and really worrying.

604
Axe / Re: Axe for Dummies (like me)
« on: March 01, 2010, 02:22:18 pm »
I wonder if Axe Parser can really help some people to pass from TI-BASIC to assembly...

605
The Axe Parser Project / Re: Axe Parser
« on: March 01, 2010, 02:18:04 pm »
Hmm... is it possible to sort the symbol table alphabetically before stepping through it?  That way everything would already be in order and it wouldn't have to be sorted as its going through the list.  Is there a bcall for that?  If not, is it as simple as swapping the entries, or are there other dependent pointers I have to change?
There is an assembly program for that already and the source code is available.
Here it goes:
http://www.ticalc.org/archives/files/fileinfo/326/32691.html

606
The Axe Parser Project / Re: Features Wishlist
« on: March 01, 2010, 09:46:29 am »
I think a nice feature would be something like the Switch statement in C, for when you have a lot of different values to check against (like colliding with a tilemap or handling various different types of objects). It should generate a jump table, and probably be forced to values from 0 to N (if you want A to A+N, just subtract A from the value you are switching).
A vector table would save bytes if it is large enough. Speed is not substantially different.

607
You just need a way to communicate between calcs. If the 83+SE has USB and you have the USB cable between calcs, it should work.

I am glad you were able to do it. ;) A English version would prove useful.

608
One alternative is sending Nspire8x by brandonw to a TI-84 and connect with the Nspire. It can send the loader of Ndless (hack it) and at some point send/receive Nspire stuff.

But I don't know how would you send files from the x64 pc...
TI-Connect has a 64-bit patch, why TI didn't do the same with the TI-Nspire Computer Link Software?

609
TI Z80 / Re: Texas Hold'em
« on: March 01, 2010, 03:41:06 am »
Excellent graphics and speed. ;)

Will you do AI to play against?

610
This month was quite active too. How do I know how much?
And many new sections. Another great month for Omnimaga. :D

611
ASM / ASM Optimized routines
« on: February 28, 2010, 07:27:53 am »
There are some cools optimized routines around. Calcmaniac is the recordist in z80, probably. At least in calculators z80 forums is.

On to the code:
Code: [Select]
;calcmaniac84
cpHLDE:
 or a
 sbc hl,de
 add hl,de
 ret
;Important note: because the code is 3 bytes and a call is 3 bytes, just macro in:
;SPASM, TASM and BRASS compatible, I guess
#define cp_HLDE  or a \ sbc hl,de \ add hl,de

;- Reverse a
;input: Byte in A
;output: Reversed byte in A
;destroys B
;Clock cycles: 66
;Bytes: 18
;author: calcmaniac84
reversea:
ld b,a
rrca
rrca
xor b
and %10101010
xor b
ld b,a
rrca
rrca
rrca
rrca
xor b
and %01100110
xor b
rrca
ret

;reverse hl
;curiosity: a easy port of a common reverse A register is more efficient than tricky stuff
;calcmaniac84
;28 bytes and 104 cycles
ld a,l
rla
rr h
rla
rr h
rla
rr h
rla
rr h
rla
rr h
rla
rr h
rla
rr h
rla
rr h
rla
rrca
ld l,a
ret

;calc84maniac
;in: a = ABCDEFGH
;out: hl= AABBCCDDEEFFGGHH
rrca
rra
rra
ld l,a
rra
sra l
rla
rr l
sra l
rra
rr l
sra l

rrca
rra
rra
ld h,a
rra
sra h
rla
rr h
sra h
rra
rr h
sra h
ret

Code: [Select]
;Galandros optimized routines
;try to beat me... maybe is possible...

;Displays A register content on screen in decimal ASCII number, using no addition memory
DispA:
ld c,-100
call Na1
ld c,-10
call Na1
ld c,-1
Na1: ld b,'0'-1
Na2: inc b
add a,c
jr c,Na2
sub c ;works as add 100/10/1
push af ;safer than ld c,a
ld a,b ;char is in b
CALL PUTCHAR ;plot a char. Replace with bcall(_PutC) or similar.
pop af ;safer than ld a,c
ret


;Note the following one is optimized for RPGs menus and the such, it is quite flexible. I am going to use in Lost Legends I ^^
;I started with one which used addition RAM for temporary storage (made by me, too), and optimized for size, speed and no extra memory use! ^.^
;the inc's and dec's were trick to debug -.-", the registers b and c are like counters and flags

;DispHL for games
;input: hl=num, d=row,e=col, c=number of algarisms to skip
;number of numbers' characters to display: 5 ; example: 65000
;output: hl displayed, with algarisms skiped and spaces for initial zeros
DispHL_games:
inc c
ld b,1 ;skip 0 flag
ld (CurRow),de
;Number in hl to decimal ASCII
;Thanks to z80 Bits
;inputs: hl = number to ASCII
;example: hl=300 outputs '  300'
;destroys: af, hl, de used
ld de,-10000
call Num1
ld de,-1000
call Num1
ld de,-100
call Num1
ld e,-10
call Num1
ld e,-1
Num1:
ld a,'0'-1
Num2: inc a
add hl,de
jr c,Num2
sbc hl,de
dec c ;c is skipping
jr nz,skipnum
inc c
djnz notcharnumzero
cp '0'
jr nz,notcharnumzero
leadingzero:
inc b
skipnum:
ld a,' '
notcharnumzero:
push bc
call PUTCHAR  ;bcall(_PutC) works, not sure if it preserves bc
pop bc
ret

PUTCHAR:
bcall(_PutC)
ret

;Example usage of DispHL_games to understand what I mean
Test2:
ld hl,60003
ld de,$0101
ld c,0
call DispHL_games
ld hl,60003
ld de,$0102
ld c,1
call DispHL_games
ret

Well, don't try to understand or optimize calcmaniac84 ones. j/k, trying to understand can be harsh (tip: have a good instruction set summary) but teaches some inner details of the z80 asm.
About mine, do your best.

612
ASM / SPASM Macros
« on: February 28, 2010, 07:11:37 am »
Macros are like a language that can produce assembly code and ease some tasks (like math tables and other data). See wikipedia topic for better explanation.
SPASM macros can be quite fun (recursing, dynamic including echoed files...).

On the macros itself I have come with these nifty ones:

- var.inc - var allocation
Code: [Select]
;Example usage:
; varloc(tempswaparea)
;player_x = var(1)
;player_y = var(1)
;buffer_bullets = var(128)
;saveSP = var(2)
; varloc(textshadow,128)
;attack = var(1)
;deffence = var(1)
;overflowedvar = var(500) ;this will give a warning on assembling because overflowed the safe ram (on calculator causes RAM Clear, normally)

#macro var(var.size)
 #define var.counter eval(var.counter+var.inc)
 #define var.inc eval(var.size)
 #ifdef var.end
   #if var.counter>var.end
    .error "Variable allocation overflow!"
   #endif
 #endif
 var.counter
#endmacro

#macro varloc(varloc.value,varloc.size)
 #define var.counter eval(varloc.value)
 #define var.inc 0
 #ifdef varloc.size
   #define var.end eval(varloc.value+varloc.size-1)
 #endif
#endmacro
- convhex.inc convert a label, number, equate or define to hexadecimal representation
Code: [Select]
;Example usage:
; .echo convhex(%10000000)
;label:
; .echo convhex(label)

#macro zconvhex(hexn)
#if hex_remain == 0
   "$",return
#else
 #define hex_digit eval(hexn & $0F)
 #define hex_remain eval(hexn/16)
 #ifndef return
   #define return ""
 #endif
    #if hex_digit == 0
      #define hex_char "0"
    #endif
    #if hex_digit == 1
      #define hex_char "1"
    #endif
    #if hex_digit == 2
      #define hex_char "2"
    #endif
    #if hex_digit == 3
      #define hex_char "3"
    #endif
    #if hex_digit == 4
      #define hex_char "4"
    #endif
    #if hex_digit == 5
      #define hex_char "5"
    #endif
    #if hex_digit == 6
      #define hex_char "6"
    #endif
    #if hex_digit == 7
      #define hex_char "7"
    #endif
    #if hex_digit == 8
      #define hex_char "8"
    #endif
    #if hex_digit == 9
      #define hex_char "9"
    #endif
    #if hex_digit == 10
      #define hex_char "A"
    #endif
    #if hex_digit == 11
      #define hex_char "B"
    #endif
    #if hex_digit == 12
      #define hex_char "C"
    #endif
    #if hex_digit == 13
      #define hex_char "D"
    #endif
    #if hex_digit == 14
      #define hex_char "E"
    #endif
    #if hex_digit == 15
      #define hex_char "F"
    #endif

 #define return eval(hex_char,return)
 zconvhex(eval(hex_remain))
#endif
#endmacro

;wrap the main macro up with another macro to clear the global defines to work more times
#macro convhex(zn)
  #define hex_remain -1
  #define return ""
  zconvhex(zn)
#endmacro
- breakpoint.inc, this echo to a text file named breakpoints.txt the address of breakpoints
(you need convhex macro)
Code: [Select]
;breakpoints.inc
;by Galandros

#include "convhex.inc"
#macro BREAKPOINT
 #ifndef BREAK_F
  .echo > breakpoints.txt "\nBreakpoints:\n"
  .echo >> breakpoints.txt convhex($),"\n"
  #define BREAK_F
 #else
  .echo >> breakpoints.txt convhex($),"\n"
 #endif
#endmacro

;Alternatives to break macro name
#define breakpoint() BREAKPOINT
#define .breakpoint BREAKPOINT
- relocation
(this was not made by me, actually)
Code: [Select]
#macro relocate(location)
 #ifdef g_old_location
   .error "You cannot nest relocate blocks!"
 #else
   #define g_old_location eval($)
   #define g_new_location eval(location)
   .org location
 #endif
#endmacro

#macro endrelocate()
 #ifdef g_new_location
   .org $ - g_new_location + g_old_location
   #undefine g_new_location
   #undefine g_old_location
 #else
   .error "No relocate statements corresponds to this endrelocate!"
 #endif
#endmacro

How to use:
1. copy the text to some text file using Notepad, for example.
2. include in the source code with #include macro.inc directive
3. call it within the source code

Notes:
- to see the examples uncomment the lines (simply delete the ";")
- only works on SPASM. I could try TASM compatibility, but meh, SPASM has some many reasons to be used
- I am giving a cookie especially for Eeems. You can use this macros in the ADE. Just give me credit and put in the include file that the macros were given by me (Galandros). You can include in your IDE, just do the same as I wrote before in this line.

More macros will come. I have done convbin (convert equates to binary)
I am going to release a pack of SPASM macros. ;)
You can post your macros, too. Or request macros. I am doing some experiments with SPASM macros because you can do pretty much everything.

613
Site Feedback and Questions / Re: New Sections
« on: February 28, 2010, 06:40:27 am »
Personally, I have a bit of dillema with the TI-BASIC section. Should it be renamed to include TI-BASIC help too, or should help be kept in the current general calc help/support? That said, an ASM help and/or routines section is an idea of section I should add
I prefer keeping the Subroutines TI-BASIC section only. If it isn't too bloating adding a TI-BASIC help section is a good idea.
Joining the ASM subroutines and help isn't too bad because generally you can learn from the code that we will try to debug. Of course like TI-BASIC appear some very uninteresting doubts for intermediate programmers that few people will see later.

EDIT:
For me, TI-BASIC and Assembly help stays in Calculator Help and Support. But a programming help section is a thing to be thinked. Making changes to the forum when you like it as it is, is hard.

Anyway just wanted to say I added some things to ASM Routines section. I am curious to see what asm programmers we gather there and if they can win in optimization. :P

The TI Games Walkthroughs, Secrets and Glitches section is now growing. That were the stuff you talked about being in the staff sub forum?
What about the easter eggs in TI programs? We are we going to place them?

614
Site Feedback and Questions / Re: New Sections
« on: February 28, 2010, 05:10:58 am »
You are spamming here! -7 points to each one! :P j/k

When is the assembly routines section going to be created?
I have some routines (with bits of tricky optimization) to show and see optimizations.

I do also have formidable SPASM macros. :)

615
News / Re: TI-Nspire calculators now have Ndless possibilities
« on: February 28, 2010, 05:08:03 am »
Time to nostalgic feeling in Pokemon Red.

Can we send savegames to computer? It would be cool if you could convert the savegame to emulators like VBA and vice-versa.

Pages: 1 ... 39 40 [41] 42 43 ... 84