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
« on: March 03, 2010, 09:54:40 am »
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
« 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
« on: March 01, 2010, 02:30:45 pm »
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
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
« 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
« 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
« 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
« on: March 01, 2010, 09:44:07 am »
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
« on: March 01, 2010, 04:53:18 am »
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
« on: March 01, 2010, 03:41:06 am »
Excellent graphics and speed. Will you do AI to play against?
610
« on: February 28, 2010, 07:51:40 am »
This month was quite active too. How do I know how much? And many new sections. Another great month for Omnimaga.
611
« 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:
;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
;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
« 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 ;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 ;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) ;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) #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
« 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. 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
« on: February 28, 2010, 05:10:58 am »
You are spamming here! -7 points to each one! 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
« 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
|