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

Pages: 1 ... 55 56 [57] 58 59 ... 82
841
General Calculator Help / Re: Rref Algorithm
« on: August 15, 2010, 09:11:06 pm »
RREF stands for Row Reduced Echelon Form, and Here is a good tutorial on how to do it, and gives a good use for it.

edit: and if you're very familiar with matrix operations and terminology, here's a more advanced article.

842
[OTcalc] Z80-Software / Re: OTZ80 Firmware/Software Discussion
« on: August 15, 2010, 12:11:16 pm »
No CAS, or at least a non-CAS version.

843
ASM / Re: Nspire RAM Pages
« on: August 14, 2010, 10:22:19 pm »
It has to have one extra page to support 2.53 MP
From what I've heard however, it supports all 8. Curse you TI! Why can't you support it on real hardware! :P

that would be much too convenient :P

844
Axe / Re: Project Snake X - help
« on: August 14, 2010, 10:07:23 pm »
copy/paste into SC.
umm.. i got rid of all your comments. sorry. i was trying to keep them, but they cluttered up my workspace. i didn't change very much.. just reordered some stuff around. added a ClrDraw and a DrawInv. make sure you use sourcecoder to parse it.
Code: [Select]
:.WHATYEAH
:[07C0000000000000000000001FE0000000000000000000001FF0000000780000000000003FF0000000FC0000000001F87FF7CF0000FC0000000787F87FF7DF87E0FC0000001F87F07BF7FF8FF0FC0000003F87E079E7FF8FF8FC0000003FC7C07F07FF9FFCFC1000001FEF807FE7FF8FFCFC7C00000FFF807FF7FF8FFCFDFE1E0007FF807FF7FF8FFEFDFE3FC003FF001FF7FF9FFEFFFC7FC001FE0001F7FF9FFEFFF8FFC001FF0039F7EF9FFEFFE0FFC000FF8079F7EFDFFEFFC1FBC001FFC0FFF7EFDFFEFFE1FFC003FFF0FFF7C30FFEFFE1FFC003FFFC7FE3C00FDFFFF1FF8007E7FC1F0000000EFDFFFDE00FC3FC00000000007CFEFBE01F83F80000000000187EFFE03F83F80000000000003E7FE03F8040000000000000003FC03F00000000000000000000000E]→Pic1
:[8080808000000000]→Pic2
:[0010181C18100000]→Pic3
:"PLAY"→Str1
:"HELP"→Str2
:"SCORES"→Str3
:"QUIT"→Str4
:"ADVENTURE MODE"→Str6
:"TIMED MODE"→Str7
:"CLASSIC MODE"→Str8
:"MAIN MENU"→Str9
:DiagnosticOff
:ClrDraw
:ClrDraw{^r}
:Fix 1
:Fix 5
:Text(30,28→M→N,Str1)
:Text(30,36,Str2)
:Text(30,44,Str3)
:Text(30,52,Str4)
:DrawInv
:StorePic
:ClrDraw
:For(A,0,63)
:Line(0,A,95,63-A)
:DispGraph
:End
:For(A,0,95)
:Line(A,0,95-A,63)
:DispGraph
:End
:1→A→Z
:Repeat getKey→K=9 and (M=N)
:ReturnIf getKey(15)
:min(max(K=1-(K=4)*8+M,28),52)→M>N-(M<N)+N→N
:DS<(A,5)
:Pt-Change(rand^96,1,Pic2)
:End
:Z+1→Z
:Vertical +
:conj({L6},{L1},708)
:sub(DM)
:DispGraph
:conj({L1},{L6},708)
:End
:ClrHome
:If K-15 and (M-52)
:!If M-28
:ClrDraw
:ClrDraw{^r}
:Fix 0
:Fix 5
:Text(30,28→M→N,Str6
:Text(30,36,Str7
:Text(30,44,Str8
:Text(30,52,Str9
:Fix 4
:DrawInv
:StorePic
:ClrDraw
:DrawInv
:0→X+1→A→Z
:Repeat getKey→K=9 and (M=N) or (K=15)
:min(max(K=1-(K=4)*8+M,28),52)→M>N-(M<N)+N→N
:DS<(A,5)
:Pt-Change(rand^96,1,Pic2)
:End
:Z+1→Z
:Vertical +
:conj({L6},{L1},708)
:sub(DM)
:DispGraph
:conj({L1},{L6},708)
:End
:End
:!If M-36
:Disp Str2
:End
:!If M-44
:Disp Str3
:End
:Else
:Disp Str4
:End
:Return
:Lbl DM
:For(B,0,148)
:{B*2+Pic1}{^r}→D□65535∙{B*2+{L6}→C}{^r}┼({B*2+Z}{^r}∙D)→{C}{^r}
:End
:For(B,168,353)
:{B*2+{L3}}{^r}∙{B*2+{L6}→C}{^r}→{C}{^r}
:End
:Pt-On(22,N,Pic3)
:Pt-Change(22,N,Pic3)
:Return
:LBL X
:Return
:LBL TM
:Return
:LBL CL
:Return

first attempt at a screenshot, win/fail?



845
Axe / Re: Project Snake X - help
« on: August 14, 2010, 08:09:32 pm »
Code: [Select]
{B*2+{L3}}{^r}{dot}{B*2+{L6}→C}{^r}→{C}{^r}
see where it says {B*2+{L6}->C}? well, L6 is the area of RAM that is the buffer. the buffer has to have an address in memory. so when you store B*2+L6 to C, that makes C "point" to the address of the buffer. then when it says ->{C}{^r}, it stores to the two bytes of where C points, which is the buffer.

846
[OTcalc] Z80-Software / Re: OT Basic
« on: August 11, 2010, 05:11:59 pm »
suggestions added.

program4, what do you mean by two-dimensional menus?

847
The Axe Parser Project / Re: Axe Talk
« on: August 10, 2010, 11:21:47 pm »
wednesday works best for me.

848
[OTcalc] Z80-Software / Re: OT Basic
« on: August 10, 2010, 08:53:24 pm »
3-D graphics are now noted, though i'm not too sure due to the obvious capabilities of 3-D games.

as for delvar, someone earlier suggested a command called "Undeclare" which would pretty much do the same thing. added it in for reference though.

good suggestions guys! keep them coming. i'm sure computer programmers have other things they wish they could do on a calculator.


849
Axe / Re: A few simple questions...
« on: August 10, 2010, 01:09:46 pm »
you're somewhat right. you can treat A-Z and theta as normal vars as you would in BASIC (just don't go over 65535, negatives are a little trickier to figure out, and don't try to store a floating point). if you do 5->A, A will be a pointer to the RAM address 5. it's not really necessary to understand this. but you should know that doing Expression->{A} is generally bad, because you're overwriting RAM that the OS may need to function.
curly braces are your friend, if you're using L1-L6 and static pointers (GDB, Pic, Str). quick code example. say you have a list of 5 numbers. 2,12,38,25 and 3. how might you create this list?
Code: [Select]
.HEADER
[020C261903]->GDB1    .Stores the data as hexadecimal
Data(2,12,38,25,3)->GDB2    .Stores the same data in GDB2.
For(A,0,4
Disp {GDB1+A}>Dec,i       .imaginary i. GDB1 can be replaced with GDB2 for the same results.
End

alright. for starters, what are GDB1 and GDB2? they are static pointers. they basically mark some data. each piece of data is only one byte (two bytes is more advanced). curly brackets return the byte that the pointer points to. this is another way of saying that a curly bracket takes the marker (GDB1) and returns whatever is inside of it (2). since data is stored linearly in RAM, we can add one to GDB1 to get the next byte. {GDB1} will return what's at GDB1 (which is 2) and {GDB1+1} will return the next byte (12).

hopefully that helps. it takes awhile to get used to.

and yes, when you're using external variables, strings and appvars are the easiest to deal with.

3) yes. FF is one byte. F is a half-byte (also known as a "nibble"). a bit is either a 0 or a 1. a byte is 8 bits. meaning, a byte is 8 1's or 0's. since there are two possible values a bit can hold (a 0 or a 1), and a byte has 8 bits, a byte can hold 2^8=256 different values. 0-255.

4) in the Commands document, the lengths of L1-L6 are defined. using L1 is the safest to use, so i'd say that L1 is probably the best to use.

5) i kinda explained this above, but to reiterate. A-Theta are pointers, but the RAM they point to can be changed. Str, Pic and GDB are static pointers. that means you tell them what data to point to at the beginning of the program, and they will point there throughout the program. using curly braces around Str, Pic and GDB is definitely ok.

6) curly braces are used to get a value from a pointer. it's very useful for lists of numbers, such as map data. i'm not sure what other things pointers can be used for, a computer/ASM programmer probably uses them more creatively.

850
TI Z80 / Re: An On-Calc Basic IDE?
« on: August 10, 2010, 11:40:17 am »
sounds like a neat project!

i'm sure it can be done in axe if you know some ASM knowledge.

851
Axe / Re: A few simple questions...
« on: August 09, 2010, 01:39:28 pm »
just wanted to add in that with external var support, you should generally stick with storing to Strings and appvars. lists, matrices and real variables have complicated formats so they can hold large numbers and decimals.

as for pointers, maybe this will help. imagine RAM as like a train. and each segment of the train is numbered: 0, 1, 2, 3, 4, 5 etc. It's very orderly. to get a segment of the train, you use curly brackets {}. {0} would return whatever number is in the first box of RAM. as quigibo said, do not overwrite this data, as the OS uses it, and you could easily screw up your calculator by just filling random addresses with numbers. However, quigibo has "safe RAM" areas in axe, which you can modify as you wish, as DJ said, they're L1-L6. L1-L6 are called "pointers". i personally like to call them in my head as "markers", since to me they mark segments of the train. each safe RAM segment contains a certain number of boxes. so 5->{L1} stores 5 into the box at L1. now i've been using the term "box" to describe each segment on the train, aka each segment of RAM. for the record, each segment of RAM is 1 byte. i won't get technical, but basically that means you can store between 0 and 255 into each box. if you try 256->{L1}, the numbers loop back around. so L1 will hold the value 0. 0=256. 1=257. i know. crazy. however, variables A-Z+theta can hold up to 65535.

variables have always intrigued me at first, as i never understood them in Axe. one more long paragraph:

A-Z+Theta are pointers. they point to a box number. 0->A does not store the value 0 into A. it tells A to "point" to RAM address 0. remember how L1-L6 are just "markers" on the train of RAM? same thing with variables. basically, you should rarely use curly brackets {} around just a variable, as that will usually turn out to be some information that the OS uses to run, and if overwritten, may RAM clear. basically, variables are like markers of RAM addresses.

852
[OTcalc] Z80-Software / Re: OT Basic
« on: August 09, 2010, 12:24:48 am »
DJ, i would love to see an integrated game-designing language for a calculator, but i feel like SAT/ACT testing people would look at that feature and immediately be turned away. that's why i'd rather have this a math-oriented language. of course getkey and output will be supported.

i'm currently editing in all the suggestions (i didn't have easy things such as multiplication, addition, subtraction etc. in because i was on a phone). right now i'm not going to put what each operator/function will look like, just the name. i remember someone suggested using = as the assignment operator and == as the equality. i'm just going to write down assignment and operator, as the actual symbol will depend upon the hardware. thank you all for the suggestions, keep them coming!

853
[OTcalc] Z80-Software / OT Basic
« on: August 08, 2010, 02:00:04 pm »
We're all familiar with TI-Basic. I think there should be a similar language for OT calculators. OT basic is not a final name. That can be discussed later. However, if you agree there should be a basic-like language, what are commands and features you would like to see? Named variables? Compiled rather than interpreted? I want radical ideas, things you wish you could do. However, I have one condition. Please no features that are gaming specific!! This is for math programs mainly. No requests for sprite routines or the like obviously targeted for gaming.  Command suggestions will be edited in regardless of feasibility.

Note: This topic should have extremely little discussion. Do not shoot down anyone's idea. Don't speculate on whether hardware can handle it or not. We can discuss fine details after the calculators hardware is planned. I ask this so this thread is as uncluttered as possible! Thank you.

Data Structures and Variable Types:
-Lists
-Matrices
-Multidimensional arrays
-Strings
-Character arrays
-Declared Variables
-Int, Float, Bool etc. types
-Prefixed variables to define their types. (ex. sVAR would be a string)
-Vectors


Variable Commands:
-ToUpperCase/ToLowerCase
-Pic recalling/storing
-Undeclare/Delvar function to free up memory
-Conversions between data types (i.e. list>Matrix, String>Number, Number>String etc.)
-Sum/Mean/Median of a List/Matrix/Array
-Random numbers, integers, matrices, lists, other data types
-Advanced Array functions

Graphical Commands:
-Pxl-On/Off/Change
-Pt-On/Off/Change
-Line
-Circle
-Polygon
-Graph Function
-Shade
-Clear Screen
-3-D support and polygons
-Operating System GUI elements, like DCS libs.

Control Statements:
-If (File/Variable Exists)-Else-End
-If-Else-End
-For
-While
-Break
-Try/Catch
-Goto/Lbl

I/O Commands:
-Getkey (multiple keypress getkey)
-Link Send
-Link Receive
-Prompt/Input
-Disp/Output/Print

Operators:
-Multiplicative
-Subtraction
-Negativity
-Addition
-Division
-Modulus
-Assignment
-Equality
-Inequality operators (greater than, less than etc.)
-Exponent
-Logical not()
-Logical and
-Logical or
-Logical xor
-Increment command (+= in C)
-Decrement commmand (-= in C) same with multiply, divide, modulus.


Math Functions:
-Every math function in the OTz80 calc that can be used outside a program on the "homescreen"
-include sorting lists


Language Design:
-Two languages, one interpreted, one compiled?
-Syntax highlighting! (great suggestion willrandship)
-Search function (ctrl+f)
-Numbered lines in the GUI
-SkipTo command, to skip to a programmer-defined place in the code, or waypoints like 1/4, 1/2, 3/4 through the code.
-Descriptive error messages when a program errors.
-Key to break execution of programs (like [On])
-Copy/Paste sections of code
-Undo/Redo function.
-Token based/Non-token based, still needs to be decided.
-Access to foreign characters and lowercase.





854
[OTcalc] Z80-Hardware / Re: Hardware Discussion
« on: August 07, 2010, 12:02:03 pm »
dvorak being ruled out = me sadface. but i understand, it *would* confuse people, so i vote for ABCDE.

i'm thinking the screen resolution should be larger than 96x64, we don't want to mimic TI, we want an upgraded calculator. i'm thinking either 128x96 or 160x128 are ideal.

855
OTcalc / Re: Let's build our own calculator!
« on: August 07, 2010, 01:01:14 am »
i never understood why people are opposed to dvorak. for example, this post was typed using dvorak. regardless, ABCDE should be fine as SAT/ACT regulators are used to that kind of layout.

Pages: 1 ... 55 56 [57] 58 59 ... 82