Show Contributions
|
|
Pages: [1] 2
|
|
2
|
Calculator Community / TI 68K Projects / accel68k - a 68k Basic IDE for your 68k calculator
|
on: 05 May, 2013, 03:24:09
|
|
Announcing accel68k - Your Future IDE for TI-89 Basic
The development will not be in full force until AP tests are over, but I'd like to give you a preview of what is happening:
- This IDE will use custom editing routines to ensure that key delays don't vex you anymore! In fact, the whole editing is overhauled in order to give a streamlined editing experience! - It will also give a range of refactoring features, including Local consolidation. - It will be full screen and (hopefully) use the small font as well. - It will be a hybrid of TI-Basic and C. To be precise, the editor itself will be in C, and the frontend (file selection, switching) will be in TI-BASIC. - It will require lots of knowledge about the EStack and the VAT, so help is appreciated!
This will be my most ambitious 68k project of all, and I will furnish you with screenshots when I get the visual interface functional.
Edit Got the skelly code for the backend attached! Edit II New skelly code and key layout pic! Edit III Holy shoot! That scan was huge! Now it's only 40% size.
|
|
|
|
|
3
|
Calculator Community / TI-BASIC Language / Avoiding stress from writing TI-89 Basic
|
on: 05 May, 2013, 02:07:22
|
|
About 1.25 years ago, I received a TI-89 Titanium, but even now, I can't create large programs on it without being stressed out by repeatedly pressing keys; the variable manager is cumbersome to use as well. Do you have any tips for reducing this stress (maybe using an external editor would work, but all of the installers I tried failed; is there a solution for that?). I really want to finish my relatively undeveloped RPG.
Thanks in advance!
|
|
|
|
|
4
|
Calculator Community / TI-BASIC Language / To compose a program that works both on 83+ Basic and 68k Basic
|
on: 19 March, 2013, 03:20:19
|
So the challenge is to compose a program that works both on 83+ Basic and 68k Basic, in similar fashions. The example below clears the screen and prints "Hello World!" (This is only the body): 1 2 3 4
| If sin(1)=.841470984808 ClrHome CLRIO Disp "Hello World!" |
Edit: sin(1) is equal to .841470984808 on the 83/84+, due to it comparing only ten significant figures, but these two values are different on a CAS calc such as the TI-89. So if you have an 83/84+, the program runs ClrHome; otherwise, it runs ClrIO (the expression CLRIO is treated as the product of five variables on the 83+ but the ClrIO command on the 68k). The final line is identical for both models.
|
|
|
|
|
5
|
Calculator Community / Casio PRIZM Hacking Discussion / Linker error - Can't use stdlib.h or math.h functions!
|
on: 05 March, 2013, 00:37:33
|
When I try to use stdlib.h functions (regardless of whether I #include <stdlib.h> or not), I get linker errors like these: 1 2 3 4
| bullets.o: In function '_freeList': bullets.c:(.text+0x384): undefined reference to '_free' bullets.o: In function '_createNode': bullets.c:(.text+0x39c): undefined reference to '_malloc' |
Same for math.h functions. I also have the fxcglib installed. Are these functions not implemented yet? Thanks in advance!
|
|
|
|
|
6
|
General Discussion / Web Programming and Design / Free Web Hosting Service?
|
on: 24 February, 2013, 16:17:34
|
Hello, I just found out from Netham that the hosting service I was using contained malicious ads. I'm searching for another service; do you have any suggestions? 1) The service should provide a decent amount of account and forum functionality. 2) The service should not be malicious. 3) The service should be free. I was thinking about using Zymic, though.
|
|
|
|
|
8
|
Calculator Community / Other Calculator Discussion and News / Forty-eight hours of programming!
|
on: 22 February, 2013, 03:22:07
|
|
Next week, I have school off (except for Monday). So while my little brother isn't home, I'll be programming from Feb. 27, 12:00 EST to Mar. 1, 1:00 EST with a one-hour break. If anyone has that period off and would like to program as well, then I'd like to hear about it. So, I would appreciate a few fresh ideas for programming. Please note that I will (probably) be writing everything in C for the 68k series.
|
|
|
|
|
9
|
General Discussion / Miscellaneous Discussion / Club Design 1
|
on: 29 December, 2012, 05:12:42
|
I am holding a "Club Design 1" course on the UCCP website ( http://uccp.ucoz.com/), but you do not need to be a member of the UCCP in order to apply. Basically, this course covers aspects of creating clubs, not just pertaining to the student in school, but in general. Anyone who would like to apply should post here.
|
|
|
|
|
10
|
Calculator Community / Calculator C Language / [68k] Function not working as expected
|
on: 26 December, 2012, 01:08:25
|
Whenever I call enableUndo for this program (from a menu), I get light gray vertical lines as on the image attached. I think I did everything right, so here is the excerpt I am having trouble with: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| typedef struct { void* prevl,*prevd; char canUndo:1,isUndone:1; } UndoInfo; void* allocBUB(void) { void* buffer=NULL; if (!(buffer=calloc(LCD_SIZE,1))) { dlgError(DMA_ERROR,MEMALLOC_FAIL); return NULL; } return buffer; } int allocGBUB(void** lbuff,void** dbuff) { if (!(*lbuff=allocBUB())) { return 0; } if (!(*dbuff=allocBUB())) { free(*lbuff); return 0; } return 1; } void enableUndo(UndoInfo* p) { GrayOff(); SetIntVec(AUTO_INT_1,I1); SetIntVec(AUTO_INT_5,I5); //*v: this may be the cause of the gray bars p->canUndo=allocGBUB((void**)p,(void**)((char*)p+4)); SetIntVec(AUTO_INT_1,DUMMY_HANDLER); SetIntVec(AUTO_INT_5,DUMMY_HANDLER); GrayOn(); } |
I would appreciate any assistance given!
|
|
|
|
|
11
|
Calculator Community / Calculator C Language / [68k] Incorrect Cursor Drawing
|
on: 30 November, 2012, 23:13:53
|
I decided to start using the latest GCC4TI release, but my graphic editing program now has a cursor glitch! (screenshot attached, along with how it's supposed to look) My source code is also attached. My code to draw the cursor is as follows: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| void drawCursor(unsigned int x,unsigned int y) //Draws the cursor { unsigned char cursorl[8] = { ~0x80,~0xC0,~0xA0,~0x90,~0xB8,~0xE0,~0x90,~0x08 }; unsigned char cursord[8] = { ~0x80,~0xC0,~0xE0,~0xF0,~0xF8,~0xE0,~0x90,~0x08 }; unsigned char cursorm[8] = { ~0x7F,~0x3F,~0x1F,~0x0F,~0x07,~0x1F,~0x6F,~0xF7 }; Sprite8(x,y,8,cursorm,GrayGetPlane(LIGHT_PLANE),SPRT_AND); Sprite8(x,y,8,cursorm,GrayGetPlane(DARK_PLANE),SPRT_AND); Sprite8(x,y,8,cursorl,GrayGetPlane(LIGHT_PLANE),SPRT_OR); Sprite8(x,y,8,cursord,GrayGetPlane(DARK_PLANE),SPRT_OR); } |
This code worked as intended on TIGCC 0.96 Beta 8, but shows the wrong cursor on GCC4TI 0.96 Beta 10. Any help would be appreciated!
|
|
|
|
|
13
|
Calculator Community / Calculator C Language / [68k] Flood Fill
|
on: 30 July, 2012, 03:12:42
|
I was trying to implement flood filling with the right-hand algorithm ( http://en.wikipedia.org/wiki/Flood_fill#Fixed_memory_method_.28right-hand_fill_method.29), but it don't seem to work. Here's the code specific to the flood filling: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
| typedef struct { int x,y,dir; } pt; enum {LEFT,UP,RIGHT,DOWN}; #define DEF_DIR DOWN #define PT_NULL (pt){-20,-20,0} #define pteq(pt1,pt2) (pt1.x==pt2.x)&&(pt1.y==pt2.y)&&(pt1.dir==pt2.dir) #define pteqc(pt1,pt2) (pt1.x==pt2.x)&&(pt1.y==pt2.y) #define ptcolor(Pt) (Pt.x>=0&&Pt.x<whole_scn->xy.x1&&Pt.y>=0&&Pt.y<whole_scn->xy.y1)?GetGPix(Pt.x,Pt.y):mf #define nextdir(Dir) (Dir+1)%4 #define prevdir(Dir) (Dir+3)%4 #define oppdir(Dir) (Dir+2)%4 int mf=3; void FillPt(pt Pt,int col) { int w=whole_scn->xy.x1; int h=whole_scn->xy.y1; if (Pt.x>=0&&Pt.x<w&&Pt.y>=0&&Pt.y<h) DrawGPix(Pt.x,Pt.y,col,GA_DRAW); } pt ptDir(pt Pt,int Dir) { switch (Dir) { case LEFT: Pt.x--; break; case RIGHT: Pt.x++; break; case UP: Pt.y--; break; case DOWN: Pt.y++; break; } return Pt; } #define ptdir ptDir pt inFront(pt Pt) { return ptDir(Pt,Pt.dir); } void FloodFill(short x,short y,short tcol, short rcol) { mf=rcol; pt cur={x,y,DEF_DIR}; pt mark=PT_NULL; pt mark2=PT_NULL; //save marks pt md=PT_NULL; pt md2=PT_NULL; int backtrack=0; int findloop=0; int count=0; int temp; //while front pixel is empty.........move forward while (ptcolor(inFront(cur))==tcol) cur=inFront(cur); goto START; MAIN://MAIN LOOP! cur=inFront(cur);//move forward //if right pixel is empty if (ptcolor(ptDir(cur,nextdir(cur.dir)))==tcol) { //if backtrack is true and findloop is false //and either front pixel or left pixel is empty //set findloop to true if (backtrack && !findloop && ((ptcolor(inFront(cur))==tcol)||(ptcolor(ptDir(cur,prevdir(cur.dir)))==tcol))) findloop=1; //turn right cur.dir=nextdir(cur.dir); PAINT: //move forward //FillPt(cur,rcol); cur=inFront(cur); } START: //set count to # of nondiagonally adjacent pixels filled count=(ptcolor(inFront(cur))!=tcol)+(ptcolor(ptDir(cur,prevdir(cur.dir)))!=tcol)+(ptcolor(ptDir(cur,nextdir(cur.dir)))!=tcol)+(ptcolor(ptDir(cur,oppdir(cur.dir)))!=tcol); if (count!=4) { do { cur.dir=nextdir(cur.dir);//turn right } while(ptcolor(inFront(cur))==tcol);//front pixel is empty do { cur.dir=prevdir(cur.dir);//turn left } while(ptcolor(inFront(cur))!=tcol);//front pixel is filled } switch (count) { case 1: if (backtrack) findloop=1; else if (findloop) { //if mark is null........restore mark if (pteq(mark,PT_NULL)) mark=md; } else if ((ptcolor(ptdir(inFront(cur),prevdir(cur.dir)))==tcol)&&(ptcolor(ptdir(ptdir(cur,oppdir(cur.dir)),prevdir(cur.dir)))==tcol)) {//front left pixel and back left pixel are both empty md=mark;//save mark mark=PT_NULL;//clear mark cur.dir=prevdir(cur.dir);//turn left FillPt(cur,rcol);//fill cur goto PAINT; } break; case 2: //if back pixel is filled if (ptcolor(ptdir(cur,oppdir(cur.dir)))!=tcol) { //if front left pixel is not filled if (ptcolor(ptdir(inFront(cur),prevdir(cur.dir)))==tcol) { //save mark md=mark; //clear mark mark=PT_NULL; //turn around cur.dir=oppdir(cur.dir); //fill cur FillPt(cur,rcol); goto PAINT; } } else if (pteq(mark,PT_NULL))//mark is not set { mark=cur;//set mark to cur md2=mark2; mark2=PT_NULL;//clear mark2 findloop=0; backtrack=0; } else { if (pteq(mark2,PT_NULL))//if mark2 is not set { if (pteqc(cur,mark))//if cur is at mark { if (cur.dir==mark.dir)//if cur-dir==mark-dir { md=mark; mark=PT_NULL;//clear mark cur.dir=oppdir(mark.dir);//turn around goto PAINT; } else { backtrack=1; findloop=0; cur.dir=mark.dir; } } else if (findloop) { mark2=cur;//set mark2 to cur, set mark2-dir to cur-dir } } else { if (pteqc(cur,mark))//if cur is at mark { cur=mark2;//set cur to mark2, set cur-dir to mark2-dir md=mark; md2=mark2; mark=PT_NULL; mark2=PT_NULL;//clear mark and mark2 backtrack=0; cur.dir=oppdir(cur.dir);//turn around FillPt(cur,rcol);//fill cur goto PAINT; } else if (pteqc(cur,mark2))//if cur is at mark2 { temp=mark.dir;//set mark to cur mark=cur; mark.dir=temp; cur.dir=mark2.dir;//set cur-dir and mark-dir to mark.dir=mark2.dir;//mark2-dir md2=mark2; mark2=PT_NULL;//clear mark2 } } } break; case 3: md=mark; mark=PT_NULL;//clear mark cur.dir=prevdir(cur.dir);//fill cur FillPt(cur,rcol); goto PAINT; break; case 4: FillPt(cur,rcol);//fill cur return;//done break; } goto MAIN; } #define Fill(x,y,col) FloodFill(x,y,GetGPix(x,y),col) |
Is there anything I did wrong? (The full source is attached.) Thanks for helping me.
|
|
|
|
|
15
|
Calculator Community / Other Calc-Related Projects And Ideas / Calc Design
|
on: 09 July, 2012, 21:58:50
|
Over the last 2 nights I came up with a new calculator design. 1. The original keyboard layout and some specs. Notice the similarity to the TI-Nspire. Only with more programming capabilities. 2. Partial list of programming commands. HomeDisp is for the homescreen. 3. Improved keyboard layout. Note that the arrow keys should be larger. 4. Some "screenshots." Questions? Comments? Edit: I can't upload the images here; I'll post the links to them soon. Edit 2: The links are: 1234
|
|
|
|
|
|