sorry I haven't posted here in a while.

I've been doing some side projects that are a little bit less significant than this one. I will get back to this project in a little bit, most likely after EOI's or maybe just a little work on this here and there, any time I'm not studying.

anyways, I have done a little thinking - in order to save some memory, I will remove the graph screen title input, as it is fairly unnecessary. I will probably change it to just a simple home screen input. The note editing, however, will still be on the graph screen and have some cool features such as highlighting and other things that I have said earlier. In order to save space on the graph screen and have more space to view the note, the top bar with the title "BasicNote" will be erased, then the title will be displayed at the very top - or something like that. I am thinking that the top right of the screen will be used to display when you are in [2ND] or [ALPHA] mode (and ALPHA lock mode). Edit: This also includes lowercase ALPHA.

Also, after I'm done with this, whoever decides to port it to the color calculators will have even more freedom - as you can actually highlight words with color, and the screen is something like 320x240 rather than 94x62. Some other features could probably be added too.
I will port this for the CSE with xLIBC.
By port I mean use your ideas, but not your code.

And I will retitle this OneNote.

Windows 10 compatible Very Happy
solarsoftware wrote:
I will port this for the CSE with xLIBC.
By port I mean use your ideas, but not your code.

And I will retitle this OneNote.

Windows 10 compatible Very Happy

Neat! So since you say you're not going to use my code, does that mean you'll start right now (or soon)?

Just so you know, once I am done with this program, you can use parts of or all of my code if you want to, but obviously you will have to give credit to me Smile
(sorry for the double post)

I just wrote this code pretty quickly. Although it's not huge, I am seeking to save as many bytes as possible as well as speed. Keep in mind, this code will (most likely) be running throughout the entire time that you are in note-editing mode. EDIT: of course, in order to save speed, this code will only be activated if the [2nd] or [ALPHA] key is pressed. In note editing mode, there will simply be something like "If K=21 or K=31:Then:(run this code)"

Note: similar to dcs7, it is not necessary to press [2nd][ALPHA] to activate alpha lock mode. when you press one of the appropriate buttons, you will either be put into 2nd lock mode or alpha lock mode. (if wanted, I could change it so that after one key press while 2nd is activated, 2nd deactivates, so that there is no such thing as 2nd lock. if that is better for whatever reason please tell me) Smile

Screenie:


As you can tell, this is fairly similar to the DoorsCS7 icon function that appears in the top right, just in my own basic code.


Code:

//assuming friendly window has already been set up

DelVar ADelVar SClrDraw
DispGraph
Repeat K=45
Repeat Ans:getKey->K:End

//only the following block of code will be necessary in the main program. the other code is only there to allow this to be a stand-alone prog.
If K=21:Then
DelVar Anot(S->S
If S
Text(0,85,"[2]
If not(S
Text(~1,0,84,"  //2 spaces
End
If K=31:Then
DelVar SA+(A=0 or A=~1)-2(A=1->A
If not(A
Text(~1,0,84,"  //2 spaces
If A=1:Text(0,85,"[A]   //matrix token [A] is used rather than typing it out, in order to save a few bytes
If A=~1:Text(0,88,"a
End
"//end of necessary code

End


If anyone can optimize this at least a little bit so that it's not so large (even though it's not super large) it would be greatly appreciated.
Wait, ~ is a command? How do you get that?

And OneNote will use the concept, not the code. I am pledging not to use anyone else's code (for now) so I don't forget about crediting people.

That was bad grammar, just so bad.
Cool, I can't wait to see it!

And no - the "~" token is actually the negative sign. "~" is just used as a substitute in source coder, as the "-" token can only be used as a minus sign.
This saves a couple bytes:
(While, like I mentioned in IRC, 0->X is slightly faster than DelVar X, using DelVar X takes up one less byte)

Code:
DelVar ADelVar SClrDraw   //different vars will be used
DispGraph //won't be necessary in main program, as graph screen is already displayed
Repeat K=45
Repeat Ans:getKey->K:End
If Ans=21:Then
DelVar Anot(S->S
If S:Then
Text(0,85,"[2]
Else
Text(~1,0,84," 
End
End
If Ans=31:Then
If not(A
3->A
DelVar SA-1->A
If A:Then
Text(0,85,"[A]   //matrix token [A] is used rather than typing it out, in order to save a few bytes
If A<2
Text(0,88,"a
Else
Text(~1,0,84," 
End
End
End
Thanks, M.I. Wright Smile If anybody can optimize it further it would be appreciated.

Also, I just created a DoorsCS icon for my program, so for anyone who is running basic note through DCS, you will be able to see a cool little icon Smile For anyone just running this as a regular program, the code will not affect you. This is just a rough idea:

I am limited to 16x16, so there's not much I can do, but if you have any thoughts or suggestions I would love to hear them!
Should I include Office as a standalone app, like Windows Phone, or have individual apps?
Looking good Michael, I don't have any suggestions for ya!
So I tried porting this to the CSE. Still a WIP, of course, but here- (please go ahead and take off the ending quotes; they're just there so the syntax highlighting will work)


Code:

ClrHome
"rowSwap(NOTESVAR->Str0
det(8
If Str9="..P:NT:FN
det(4
0:det(0
For(A,1,theta,2
A:det(0
Output(A-int(A/2),2,Str9
End
1->Z
Repeat K and (K<=21 or K=105
Output(Z,1,">"
getKey->K
If dim(rand(3
Output(Z,1," "
Z-(K=25)(Z!=1)+(Z!=theta)(K=34->Z
End
seq(A,A,7,32,5->L1
1->A:1->B:0->C:0->D:0->F
Z:det(0
ClrHome
Output(1,1,Str9
length(Str9->Z
While Z>26
Z-26->Z
B+1->B
End
Z->A
Repeat K=45
getKey->K
not(F->F
If F:Then
Output(B,A,"Un/d"
Else
Output(B,A," "
End
If K and K>40 and K!=45:Then
K-40->K
If K>5 and .1(K-1
K-L1(int(.1K)->E
"[xhat][xhat][xhat][xhat]sin(cos(tan(^^^2,()/log(789*ln(456-[xhat]123+[xhat]0.~[xhat]"
If D
"[xhat][xhat][xhat][xhat]sin^-1(cos^-1(tan^-1(pisqrt(|E{}[e]10^(|u|v|w[e^(L4L5L6][xhat]L1L2L3[xhat][xhat][xhat][i]Ans"
If C=2
"ABCDEFGHIJKLMNOPQRSTUVWXYZtheta'[xhat] :?[xhat]"
If C=1
"abcdefghijklmnopqrstuvwxyztheta'[xhat] :?[xhat]"
If sub(Ans,E,1)!="[xhat]"
Then
Output(B,A,sub(Ans,E,1
A+(A<24->A
B+(A>=23->B
If not(C) and (K=12 or K=13 or K=14 or K=31 or (K=31 and D
A+3-(D and K=31)+(D and K!=31->A
If A>=23
1->A
End
Else
If K=21:Then
0->C
not(D->D
If D:Then
Output(1,24,"[2]"
Else
Output(1,24,"   "
End
End
If K=31:Then
If not(C
3->C
0->D
C-1->C
If C:Then
Output(1,24,"[A]"
If C<2
Output(1,25,"a"
Else
Output(1,24,"   "
End
End
If K=23:Then
A-1->A
If A<=0:Then
23->A
B-1->B
End
End
End
End

Doesn't use the graphscreen yet, although it will at some point in the future.

NOTESVAR should contain something like this:


Code:

Title 1 goes here
Note 1 goes here
Title 2 goes here
Note 2 goes here

I wasn't able to get it to properly load/output saved notes, and it can't save notes yet, but at least displaying titles works fine.
It's a start.
Also- the program quits if you enter the - (minus) character, and keys A, B and C don't work for some reason. They used to, but I changed something and I'm not sure what happened; if somebody could fix that that'd be great.
[sorry for double post] So I worked a bit more on my CSE version. Made an icon for it too:



    - the A, B and C keys now work again
    - saving and loading notes works decently well (the whole thing gets messed up if you have a multiple-character token like cos( or ln( in the note, though)
    - Pressing CLEAR clears the line the cursor is currently on
    - Deleting notes works perfectly
    - Creating notes, on the other hand, is really buggy. It'll sometimes overwrite an old note when making a new one, and sometimes the note you just made won't show up at all.
    - It still doesn't use the graphscreen (yet)



Code:

:DCS
"00333333330000000F300000033000000F30000003E300000F300000033330000F303300330030000F303030303030000F303300303030000F303030303030000F303330303030000F300000000030000F303333333030000F300000000030000F300333330030000F300000000030000F333333333330000FFFFFFFFFFF0000
Goto 1
Lbl 0
Return
Lbl 1
While 1
Lbl A
0->J
ClrHome
"rowSwap(NOTESVAR->Str0
det(8
If Str9="..P:NT:FN
det(4
real(8,1,0
"NEW     EDIT      DE
real(6,0,1,112,0,47,1
"L     SET      EXIT
real(6,0,1,112,0,47,1
real(7,7,~1,110,28,15,0,0
real(7,7,64,110,35,15,0,0
real(7,7,144,110,28,15,0,1
real(7,7,~1,110,11,15,0,0
real(7,7,48,110,27,15,0,0
real(7,7,120,110,35,15,224,0
0:det(0
For(A,1,theta-1,2
A:det(0
Output(A-int(A/2),2,Str9
End
1->Z
Repeat K and (K<=21 or K=105
Output(Z,1,"[|>]
getKey->K
If K
Output(Z,1,"
Z-(K=25 and Z>1)+(K=34 and Z<~int(~.5theta-(theta<4->Z
End
If K=14:Then
ClrHome
Disp "[|>] DEL ALL
Repeat Ans
getKey
End
If Ans=105 or Ans=21:Then
Disp "Deleting all...
det(6
det(4
Else
Goto A
End
End
If K=13 or K=23:Then
Z+1:det(7
Z:det(7
1->J
End
If J
Goto A
If K=15
Goto 0
If K=11:Then
ClrHome
0:det(0
Input "Title:",Str9
theta-1:det(1
" ->Str9
End
seq(A,A,7,32,5->L1
1->A:1->B:0->C:0->D:0->F
2Z:det(0
ClrHome
1->K
For(G,1,1+int(length(Str9)/23
1->E
For(K,K,K+min(22,length(Str9)-K
Output(G,E,sub(Str9,K,1
E+1->E
End
End
length(Str9->A
While A>23
A-23->A
B+1->B
End
If A!=23:Then
A+1->A
Else
B+1->B
1->A
End
startTmr->G
Repeat K=~1
getKey->K
checkTmr(G
If Ans
not(F->F
If F:Then
Output(B,A,"Un/d
startTmr->G
Else
Output(B,A,"
startTmr->G
End
If K=15
~1->K
If K>40 and K!=45:Then
K-40->K
K->E
If .1(K-1 and K>5
K-L1(int(.1K)->E
"[xhat][xhat][xhat][xhat]sin(cos(tan(^^^2,()/log(789*ln(456-[xhat]123+[xhat]0.~[xhat]
If D
"[xhat][xhat][xhat][xhat]sin^-1(cos^-1(tan^-1(pisqrt(|E{}[e]10^(|u|v|w[e^(L4L5L6][xhat]L1L2L3[xhat][xhat][xhat][i]Ans
If C=2
"ABCDEFGHIJKLMNOPQRSTUVWXYZtheta'[xhat] :?[xhat]
If C=1
"abcdefghijklmnopqrstuvwxyztheta'[xhat] :?[xhat]
If K!=5 and sub(Ans,E,1)!="[xhat]
Then
Output(B,A,sub(Ans,E,1
Str9+sub(Ans,E,1->Str9
A+(A<24->A
B+(A>=23->B
If not(C) and (K=12 or K=13 or K=14 or K=31 or (K=31 and D
A+3-(D and K=31)+(D and K!=31->A
If A>=23
1->A
End
Else
If K=21:Then
0->C
not(D->D
If D:Then
Output(1,24,"[2]
Else
Output(1,24,"   
End
End
If K=31:Then
If not(C
3->C
0->D
C-1->C
If C:Then
Output(1,24,"[A]
If C<2
Output(1,25,"a
Else
Output(1,24,"   
End
End
If K=23 and length(Str9)>0:Then
Output(B,A,"
A-1->A
If A<=0:Then
23->A
B-1->B
End
sub(Str9,1,length(Str9)-(1<length(Str9->Str9
End
If K=45 and A>1:Then
While A>1
Output(B,A,"
A-1->A
Output(B,A,"Un/d
sub(Str9,1,length(Str9)-(1<length(Str9->Str9
End
End
End
End
2Z:det(1
End
End
Looking good! I may take some of your ideas.

Also, if you're going to officially release this some time, be sure to name it something else other than BasicNote, as that is my own title. The only exception I will make is when someone actually ports this to the CSE using my finished code, and is similar to the monochrome version, only in color(they could name it BasicNote CSE) Smile

Also, if you want, you can put me as a co-author or something, if necessary.
Sounds good, will do! I think I'll call it ColorNote or something.

I may have fixed note creation, will post code in a bit if it works.
Just quickly changed the title input. I decided that in order to save space, I would put in on the home screen, as it's not that necessary to have it on the graph screen. I still have the previous code from before I changed it, so I can change it back if I want to.

Screenshot:

(if you're wondering, NOT41415 stands for Note 4/14/15)

EDIT: the only problem with my code is that it checks for length, so inputting a token like "iPart(" or entering a title like "***********" (because "*" is 5 pixels wide on the graph screen) would screw up the display on the main program. Ofc, I could solve this by making the main program display "..." at the end, if the title is too long, so I may just do that. Then if the user wanted to see the whole title, I could maybe add in scrolling text, although that will take up even more code in the menu. if it's worth it, i'll go for it - I would like to know what you guys think Smile



Code:

ClrHome
Repeat Ans and not(inString(Str8,"[xhat]
Input "Title:",Str8
If inString(Str8,"[xhat]
Disp " Err:Invalid:'[xhat]'
12>length(Str8
If not(Ans
Disp "      Err:Length
End
Str9+Str8+"[xhat]N[xhat]E->Str9

As you can see, this code takes up a lot less space than the previous code. Although not quite as visually appealing, I feel it makes the program better. As always, suggestions are welcome Smile

Also, I changed the icon just slightly so it has the little flap in the top right. Since I'm limited to 16x16, the flap is pure black, instead of having a white pixel in the middle.
Okay, so here is the current note editing I'm working on. It is nowhere near done at all, but I felt I should give you guys a small little update!



Highlighting is currently working, although it's not completely implemented yet. Deleting has also not been coded in yet. There's still lots of incomplete stuff, but I'm working on it.

Hope you guys like it so far!
Well, I think this could be more optimized:

Code:

If Ans=105 or Ans=21:Then
Disp "Deleting all..."
det(6
det(4
Else
Goto A
End

to this:

Code:
If Ans!=105 and Ans!=21
Goto A
Disp "Deleting all..." // Only closing for highlight
det(6
det(4
Looking pretty spiffy! Keep up the great work! Smile

Michael2_3B wrote:
Deleting has also not been coded in yet. There's still lots of incomplete stuff, but I'm working on it.

I would highly recommend that you take a look again at this post: http://www.cemetech.net/forum/viewtopic.php?t=11362&postdays=0&postorder=asc&start=37
Your life will be made easier, and the code to delete individual notes is already in there. Just a suggestion though; that's certainly an easier way to do things. Razz
Wow, that looks amazing so far! I'd suggest to fix the kerning if possible, but it's great that you got it working.

Just wondering- how did you get the cursor blinking like that? I use startTmr and checkTmr in my CSE version, but as those only use whole numbers there's a whole second in between appearing/disappearing, so it looks a bit odd.
M. I. Wright wrote:
Wow, that looks amazing so far! I'd suggest to fix the kerning if possible, but it's great that you got it working.

Just wondering- how did you get the cursor blinking like that? I use startTmr and checkTmr in my CSE version, but as those only use whole numbers there's a whole second in between appearing/disappearing, so it looks a bit odd.

Thanks!

The cursor is indeed grayscale, so yes, it is blinking very fast. This is the code for it(not including movement of it):

Code:

Repeat (condition)
Line(x,y,x,y
getKey->K
Line(x,y,x,y,0
End


Also, could you elaborate on the "kerning"?
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
» Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
» View previous topic :: View next topic  
Page 3 of 9
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement