Written by: Happybobjr of Happybobjr Prod. Assisted by: (contact me if you helped, I don't remember who all helped (ie. people in irc)) *Nemo (Code Optimization)
Drawing to basic- still in early stages, will allow you to draw a picture. After exiting the program, you will see you have a new program, PIC1. The point of this project is to allow ti-basic coders to have pictures in there program without worrying about bulky or annoying picture variables.
Version: 1.7.0 Compile in 0.4.5! for best results.
Change Log: Now has Text. Adjustable cross-hairs. X: for full /(division): for adjustable +: larger cross-hair - : smaller cross-hair
Written by: Happybobjr of Happybobjr Prod. Assisted by: (contact me if you helped, I don't remember who all helped (ie. people in irc)
Drawing to basic, still in early stages, will allow you to draw a picture. After exiting the program, you will see you have a new program, PIC1. The point of this project is to allow ti-basic coders to have pictures in there program without worrying about bulky or annoying picture variables.
Version 1.0.00001
Features: *Drawing of lines. *Pointer (gray) for pointer location. *Preset Xmin, Xmax, Ymin, Ymax, Axisoff variables.
Bugs: *The pointer is a little faint. *You have random junk at end of PIC1. (seperated from good code by eight spaces.) *if coordinates are less than 10, PIC1 will have 0X (00,01,02,03.......) *You must press enter after you press clear to end the program.
Commands: *ENTER- Puts point/line on screen at location of the pointer. *CLEAR- Ends program. (must press enter afterwards to actually finish closing (Due to my not wanting to experiment)
If X<95 and gEtKEy(3):X+1->X:PausE 30:End If Y>0 and gEtKEy(4):Y-1->Y:PausE 30:End If X>0 and gEtKEy(2):X-1->X:PausE 30:End If Y<62 and gEtKEy(1):Y+1->Y:PausE 30:End DispGraphr ClrDrawr Pxl-On(X,Y)r PausE 1 End
Pxl-On(X,Y)
If A=0 E9C->{Z+S}:S+1->S:X->D:Y->E D->I:62-E->J End If A=1 X->F:Y->G F->K:62-G->L LinE(D,E,F,G) End For(M,1,2) If M=1 and (A=0):I->H:End If M=2 and (A=0):J->H:End If M=1 and (A=1):K->H:End If M=2 and (A=1):L->H:End If H(</=)9:E30->{Z+S}:S+1->S:End If H(</=)19 and (H(>/=)10):E31->{Z+S}:S+1->S:H-10->H:End If H(</=)29 and (H(>/=)20):E32->{Z+S}:S+1->S:H-20->H:End If H(</=)39 and (H(>/=)30):E33->{Z+S}:S+1->S:H-30->H:End If H(</=)49 and (H(>/=)40):E34->{Z+S}:S+1->S:H-40->H:End If H(</=)59 and (H(>/=)50):E35->{Z+S}:S+1->S:H-50->H:End If H(</=)69 and (H(>/=)60):E36->{Z+S}:S+1->S:H-60->H:End If H(</=)79 and (H(>/=)70):E37->{Z+S}:S+1->S:H-70->H:End If H(</=)89 and (H(>/=)80):E38->{Z+S}:S+1->S:H-80->H:End If H(</=)99 and (H(>/=)90):E39->{Z+S}:S+1->S:H-90->H:End
If H=0:E30->{Z+S}:End If H=1:E31->{Z+S}:End If H=2:E32->{Z+S}:End If H=3:E33->{Z+S}:End If H=4:E34->{Z+S}:End If H=5:E35->{Z+S}:End If H=6:E36->{Z+S}:End If H=7:E37->{Z+S}:End If H=8:E38->{Z+S}:End If H=9:E39->{Z+S}:End S+1->S If A=0 or ((A=1) and (M=1)) E2B->{Z+S}:S+1->S:End If A=1 and (M=2):E3F->{Z+S}:1+S->S:End End A+1->A If A=2:0->A End End
Features: *Drawing of lines. *Pointer (gray) for pointer location. *Preset Xmin, Xmax, Ymin, Ymax, Axisoff variables and clear draw.
Bugs: *The pointer is a little faint. *You have random junk at end of PIC1. (seperated from good code by eight spaces.) *If coordinates are less than 10, PIC1 will have 0X (00,01,02,03.......) *You must press enter after you press clear to end the program.
Commands: * 2nd- Puts point/line on screen at location of the pointer. * CLEAR- Ends program. * Alpha- Will switch you between Line mode and Circle mode
Upcoming Features: *circle drawing
Change Log * A few optimizations. (No effect on outcome program) * Mode for drawing circles added. (Circle drawing not implemented yet) * (In code) Moved # to token into a sub program. (for future features)
Repeat N Pause 500 Repeat getKey(54) getKey->C If getKey(15):Copy([3F3F3F3F3F3F3F3F],Z+S,8:Return:End
While C>4 and (C(=/=)54):getKey->U:!If U:U->C:End If getKey(48) and (C=48) B+1->B:If B=3:1->B:End:End
ClrHome If B=1:Text(5,5,"LINE":While getKey(48):End:End
If B=2:Text(5,5,"CIRCLE":While getKey(48):End:End Pause 150 End
If B=1 or (B=2 and (T=1)) If X<94 and getKey(3):X+1->X:Pause 30:End:End
If B=1 or (B=2 and (T=2)) If Y>0 and getKey(4):Y-1->Y:Pause 30:End:End If X>0 and getKey(2):X-1->X:Pause 30:End If Y<62 and getKey(1):Y+1->Y:Pause 30:End
DispGraphr ClrDrawr Pxl-On(X,Y)r Pause 1 End
If B=1 Pxl-On(X,Y) If A=0 E9C->{Z+S}:S+1->S:X->D:Y->E D->I:62-E->J End If A=1 X->F:Y->G F->K:62-G->L Line(D,E,F,G) End For(M,1,2) If M=1 and (A=0):I->H:End If M=2 and (A=0):J->H:End If M=1 and (A=1):K->H:End If M=2 and (A=1):L->H:End sub(SUB) If A=0 or ((A=1) and (M=1)) E2B->{Z+S}:S+1->S:End If A=1 and (M=2):E3F->{Z+S}:1+S->S:End End A+1->A If A=2:0->A End End End
Lbl SUB !If H/10->R:E30->{Z+S}:End If R=1:E31->{Z+S}:H-10->H:End If R=2:E32->{Z+S}:H-20->H:End If R=3:E33->{Z+S}:H-30->H:End If R=4:E34->{Z+S}:H-40->H:End If R=5:E35->{Z+S}:H-50->H:End If R=6:E36->{Z+S}:H-60->H:End If R=7:E37->{Z+S}:H-70->H:End If R=8:E38->{Z+S}:H-80->H:End If R=9:E39->{Z+S}:H-90->H:End S+1->S If H=0:E30->{Z+S}:End If H=1:E31->{Z+S}:End If H=2:E32->{Z+S}:End If H=3:E33->{Z+S}:End If H=4:E34->{Z+S}:End If H=5:E35->{Z+S}:End If H=6:E36->{Z+S}:End If H=7:E37->{Z+S}:End If H=8:E38->{Z+S}:End If H=9:E39->{Z+S}:End S+1->S Return
Screenies: Instead of 716 bytes or whatever for a pic. var now it is 195. Did we really want 716 bytes for such a simple pic.? If we fix the 00's to just 0, it will be just 175 byes! If we remove the first part, setting zoom and everything, it goes down to 150 bytes!
Features: *Drawing of lines. *Drawing of Circles *Drawing of Points *Pointer (cross-hairs) for pointer location. *Preset Xmin, Xmax, Ymin, Ymax, Axisoff variables and clear draw.
Bugs: *You have random junk at end of PIC1. (seperated from good code by eight spaces.) *If coordinates are less than 10, PIC1 will have 0X (00,01,02,03.......) *Circles suck
Commands: * 2nd- Puts point/line on screen at location of the pointer. * CLEAR- Ends program. * Alpha- Will switch you between Line mode and Circle mode
Change Log * Mode for drawing circles added. *Points added.
Features: *Drawing of lines. *Drawing of points *Cross-hair pointer location. *Preset Xmin, Xmax, Ymin, Ymax, Axisoff variables and clear draw.
Bugs: *You have random junk at end of PIC1. (seperated from good code by eight spaces.)
Commands: * 2nd- Puts point/line on screen at location of the pointer. * CLEAR- Ends program. * Alpha- Will switch you between Line mode and Point mode
If X<95 and getKey(3):X+1->X:Pause 30 End If Y>0 and getKey(4):Y-1->Y:Pause 30 End If X>0 and getKey(2):X-1->X:Pause 30 End If Y<62 and getKey(1):Y+1->Y:Pause 30 End DispGraph End
Pxl-On(X,Y) If A=0 conj([9C],Z+S,1):S+1->S X->D:Y->E 95-D->I:62-E->J End If A=1 X->F:Y->G 95-F->K:62-G->L Line(D,E,F,G) End For(M,1,2) If M=1 and (A=0):I->H:End If M=2 and (A=0):J->H:End If M=1 and (A=1):K->H:End If M=2 and (A=1):L->H:End If H(less than or equal to)9:conj([30],Z+S,1):S+1->S:End If H(less than or equal to)19 and (H(greater than or equal to)10):conj([31],Z+S,1):S+1->S:H-10->H:End If H(less than or equal to)29 and (H(greater than or equal to)20):conj([32],Z+S,1):S+1->S:H-20->H:End If H(less than or equal to)39 and (H(greater than or equal to)30):conj([33],Z+S,1):S+1->S:H-30->H:End If H(less than or equal to)49 and (H(greater than or equal to)40):conj([34],Z+S,1:S+1->S:H-40->H:End If H(less than or equal to)59 and (H(greater than or equal to)50):conj([35],Z+S,1:S+1->S:H-50->H:End If H(less than or equal to)69 and (H(greater than or equal to)60):conj([36],Z+S,1:S+1->S:H-60->H:End If H(less than or equal to)79 and (H(greater than or equal to)70):conj([37],Z+S,1):S+1->S:H-70->H:End If H(less than or equal to)89 and (H(greater than or equal to)80):conj([38],Z+S,1):S+1->S:H-80->H:End If H(less than or equal to)99 and (H(greater than or equal to)90):conj([39],Z+S,1):S+1->S:H-90->H:End
If H=0:conj([30],Z+S,1:End If H=1:conj([31],Z+S,1:End If H=2:conj([32],Z+S,1:End If H=3:conj([33],Z+S,1:End If H=4:conj([34],Z+S,1:End If H=5:conj([35],Z+S,1:End If H=6:conj([36],Z+S,1:End If H=7:conj([37],Z+S,1:End If H=8:conj([38],Z+S,1:End If H=9:conj([39],Z+S,1:End S+1->S If A=0 or ((A=1) and (M=1)) conj([2B],Z+S,1):S+1->S:End If A=1 and (M=2):conj([3F],Z+S,1):1+S->S:End End A+1->A If A=2:0->A End End
ya, remember my etch-a-sketch? well i am going to make a drawing program (again) an 1st release is only going to have lines availible for drawing. but iw will that the lines you draw and turn it into ti-basic.
.AXE GetCalc("prgmA",14)->P [D3412B312B3130303FD8413FD43F]->Str1 Copy(Str1,P,14) What it does is create a program with 14 bytes of space, and stores the location of the program into P. the second line contains all of the data for the program. Each token is represented by a number, and all 14 numbers are loaded into the program with the last line.
I'M not sure what you mean. Do you mean this creates a TI-BASIC program (empty) called prgmP?