After looking through my code quite a few times, I FINALLY FIXED VAR D! Very Happy Now that I did, I understand what you were trying to say, PT_. Here's the new For(E loop:

Code:
inString(Str9,"[xhat]T"->D
If P:I-1   //if it's a new note
If not(P:6C+A/4-F-1   //if the note was selected to edit
For(E,1,Ans
2+inString(Str9,"[xhat]E",D->D
End

var I is in the code earlier. it is the same as 6C+A/4-F, but already simplified to a note number between 1 and ~infinity (technically, 594, since 6 notes can be displayed on the home screen at once, and I'm limiting the pages of notes to 99, so 6*99=594. I doubt anyone would ever create that many notes on this program though).

there are more bugs to be fixed that i need to discover or re-discover still, you can see them in the Bug Fixes Post (also in my signature, btw)

[edit]
Screenshot 7/26/15. progress!

as you can see there is a bug with scrolling up through the pages. I'll fix that. str9 is now perfect, however I believe the clipboard and copying/pasting is a bit funky though, I need to look into it. it may have been fixed because i fixed var D but i'm not sure. Also, when you go to edit a note, the note is stored back into str7 by itself, but I don't have it so that it displays it yet.

And as you can see, there is a SEARCH option, but you can't move your cursor to it yet. I haven't begun to work on it yet, but I will soon. I may or may not leave it out for the first release though.

[edit 2]
fixed the scrolling through notes on menu. now it (should be) perfect with no bugs. (edit: errored out on note fourteen when clicking to edit it because xE was not at the end of the note. idk why, but sounds like an easy fix. maybe. or it could be another annoying stupid bug that will take a while to track down like var D Razz)

oh, and just a small mention - the higher the note number is, the longer it takes to initialize creating a new note, because the upper bound of one of the For( loops is larger, thus extending the time. not sure if there is a way to make it faster...
[NEARLY DONE!] Still a few bugs, and I would prefer to speed up some things. More functions/bug fixes will obv be put in in later versions, but first release may be soon.

Screenshot 7/27/15 (not 25 like i accidentally put in gif). A bit of a long one, I'm showing off pretty much everything there is so far, except for deletion (I forgot to include it - but you all have seen it already).

As you can see, pasting is messed up (I copied " NOTE" in the gif, but it pasted " 4TH"). also, I'm going to be adding an options menu soon. I added that graphically into the prog already, but there is no functionality to it yet. There will most likely also be more options added later. I don't believe I have added multi-page notes yet, but you did see that the multi-page notes list scrolling works perfectly already.

Anyways, the main thing I am trying to show in this gif is the display of a note when going to edit it. Since I was recording, and jsTIfied is usually slow for me even when I'm not recording, it took about +-5 minutes to render that first note, but in the gif everything comes out faster, which may be closer to real time(??). It's not the best solution, so I would appreciate something faster. you can see why i do it char by char here.

There are still some bugs, but I don't think there are many left(but I could be totally wrong). You can see my bug fixes post here, but it's also in my signature Smile With that said, I think first release will be (relatively) soon!
Awesome! I can test it out for you before the release if you want!
I have changed the usage of |LTIBN, now. Before, it used to be that every element of the list was for every note, containing a 1 or a 0 depending on if the note existed. Now, I have changed it so that the first element contains how many notes exist, which works perfectly fine as well. The next few elements are reserved for the options (true/false). Then what I think I will do is have how many pages exist on the notes list in an element, and then every element from there will be how many pages exist on each individual note. However, that would mean there could be 99 elements each containing how many pages exist, which maybe could be optimized/compressed?

Anyways, here's an example of the checkboxes on the options menu. I think I'll stick with it Smile Let me know what you guys think!


Deletion of individual notes coming soon!
Hmmm I think that the text explaining the checkbox function should be a space or two away from the checkbox. It looks a little cramped.
Hurray, beta1 version is finally out! Unfortunately it means there will probably be even more bugs to fix, but of course, I want to make it as user friendly as possible Wink Unicorn and PT_, I know you were wanting to beta test it, so please do! of course, anyone else who wants to test it, feel free to, and post here when you find a bug or anything.

<BasicNote v1.0 beta1>

Now I'm leaving for vacation for 2 weeks. When I get back I can look at everything you all have discovered Crying

======================================

Now there's a completely new DELETION menu setup, which keeps it all on the same screen. You can delete all at once, or you can delete individual notes (part of the same code still confirms that you want to delete the individual note too, like you can see)

One of the small problems here is that if you press cancel on DEL ALL, it recalls the previous screen and keeps going, but if you press cancel on DEL NOTE, it recalls the previous screen AND clears the screen again and starts from the beginning, drawing it ~manually. Now, pressing cancel on either one should just go do the same as canceling on DEL ALL, but it doesn't. So, it's a problem with a variable, such as Z or B probably, or a problem with the End statements. So, here's an indented version of the current code, if anyone wants to figure out that small little issue: http://pastebin.com/HZsX17JD

There are definitely still some bugs, but that's what this release is for Smile

Functions to still (possibly) add:
>Searching
>compressing/encrypting notes
>multiple page support for the notes themselves
Alright, file has been accepted, and i updated the link to it above Smile

This month should just be bug fixes and some small feature additions. If there's not too many bugs and i can fix them easily, i should be done with the entire program this month! Any beta testers are welcome Smile
Here is my first optimization for loading and displaying the note.

Code:
If not(P:Then
            Text(56,30,"Rendering.."
            sub(Str9,D+2,inString(Str9,"[xhat]N",D)-D-2->Str6
            Text(0,1,Ans
            sub(Str9,inString(Str9,"[xhat]N",D)+2,inString(Str9,"[xhat]E",D)-(2+inString(Str9,"[xhat]N",D->Str7
            For(G,1,1+int((length(Str7)-3)/23
              If G=9:Text(56,30,"                   "
              If length(Str7)>2:Then
                23->theta
                If length(Str7)<23G:length(Str7)-23(G-1->theta
                For(O,1,8+int(3.87Ans),4
                  If theta=23 or 23(G-1)+(O-1)/4<length(Str7
                  sub(Str7,23G-20-2(O>5)+int(O/4)(23G-20-2(O>5)+int(O/4)<=length(Str7)),1
                  If Ans=" "
                  "     "
                  If O>5 and not(inString("wm",Ans)) and (theta=23 or 23(G-1)+(O-1)/4<length(Str7
                  Text(6G+2,O-8,Ans
                  If inString("wm",Ans:Then
                    Text(6G+2,O-8,sub("WM",inString("wm",Ans),1
                    Line(O,61-(6G+2),O+2,61-(6G+2),0
                    Pt-Off(O+1,60-(6G+2
                  End
                End
              End
            End
            Text(56,30,"           "
          End

can be

Code:
If not(P
      Then
         Text(56,30,"Rendering.."
         sub(Str9,D+2,inString(Str9,"[xhat]N",D)-D-2->Str6
         Text(0,1,Ans
         inString(Str9,"[xhat]N",D
         sub(Str9,Ans+2,inString(Str9,"[xhat]E",D)-(2+Ans->Str7
         For(G,0,int((length(Str7)-3)/23
            If G=8
               Text(56,30,"                                         "
            For(O,1,min(23,length(Str7)-23G-2
               sub(Str7,23G+O+2,1
               If Ans=" "
                  "    "
               Text(6G+8,4O-3,Ans
               If inString("wm",Ans
               Then
                  Text(6G+8,4O-3,sub("WM",inString("wm",Ans),1
                  Line(4O-3,53-6G,4O-1,53-6G,0
                  Pt-Off(4O-2,52-6G
               End
            End
         End
         Text(56,30,"                                         "
      End
This is much much much faster!
*bump* anyone found any new bugs? Some more beta testers would be great too Smile

Also, thanks for that optimization PT_. I'll have to test it myself when I get back from vacation.
Here is my optimized version, for the people who wanna optimize it further. I don't optimized the small things like 0->P would be DelVar P but more big things (see my previous post).
Here you are:

Code:
:DCS6
"000000003FFC20042CC42AA42CA42AA42CA4200427F420042FF420043FFC0000"
CoordOff:GridOff:AxesOff:FnOff 
0->Xmin:1->DeltaX
0->Ymin:1->DeltaY
SetUpEditor TIBN
If not(dim(|LTIBN
Then
   " ->Str9
   seq(X=2,X,1,6->TIBN
End
UnArchive Str9
28->Z
While Z=28 or AB=408 and K!=22
   DelVar ZClrDraw
   Horizontal 52
   Horizontal 51
   Text(~1,1,1,"BasicNote
   StorePic 1
   Text(~1,1,32,"Note
   RecallPic 1
   DelVar Pic1Line(38,4,38,50
   Line(94,4,94,50
   Line(0,4,0,50
   For(A,51,3,~8
      Horizontal A
   End
   Text(12,2,"NEW NOTE
   Text(20,2,"DELETE
   Text(28,2,"OPTIONS
   0->C
   For(A,1,min(6,|LTIBN(1
      3+inString(Str9,"[xhat]T",Ans+1
      Text(8A+4,40,sub(Str9,Ans,inString(Str9,"[xhat]N",Ans)-Ans
   End
   12->A
   34->B
   Repeat K=22 or Z=28 or (B=90 and |LTIBN(1)>=6C+int(A/8)) or (A=12 and B=34
      0->P
      Repeat max(K={22,105,23
         1+int((|LTIBN(1)/6-.1
         Text(3,91-4int(log(Ans)),Ans
         Text(3,79-4int(log(C+1)),C+1,"/
         getKey->K
         Text(A,B,"<
         If K
         Then
            Text(A,B,"    "
            If (K=34 and A=52 and |LTIBN(1)>6C+6) or (BK=2250 and A=12 and C
            Then
               4(K=34)+60(K=25->A
               C+(K=34)-(K=25->C
               1
               For(M,1,6C
                  1+inString(Str9,"[xhat]E",Ans
               End
               For(M,1,6
                  Text(8M+4,40,"                                                    "
               End
               For(M,1,min(6,|LTIBN(1)-6C
                  3+inString(Str9,"[xhat]T",Ans+1
                  Text(8M+4,40,sub(Str9,Ans,inString(Str9,"[xhat]N",Ans)-Ans
               End
            End
            min(28+24(B=90),max(12,A+8sum(DeltaList(K={25,34->A
            min(90,max(34,B+56sum(DeltaList(K={24,26->B
         End
      End
      If max(K={23,105
      Then
         StorePic 1
         6C+int(A/8
         If B=34 or (K=23 and B=90 and |LTIBN(1)>=Ans or (B=90 and Ans<=|LTIBN(1
         Then
            If B=34 or (K=23 and B=90)
            Then
               If A=12 and B=34
               Then
                  Str9+"[xhat]T ->Str9
                  1+|LTIBN(1->|LTIBN(1
                  1->P
               End
               If A=20 or (K=23 and B=90)
               Then
                  Text(12,2,"DEL"+sub("ALL NOTE",1+4(B=90),4
                  For(I,20,50,6
                  Text(I,1,"                                     "
               End
               Text(20,2,"CANCEL       
               Text(28,2,"CONFIRM
               20->Z
               Repeat K=105
                  Text(Z,34,"<
                  getKey->K
                  If Ans
                  Then
                     Text(Z,34,"   "
                     min(28,max(20,Z+8sum(DeltaList(Ans={25,34->Z
                  End
               End
               If Z=28
               Then
                  If B=34
                  Then
                     " ->Str9
                     0->|LTIBN(1
                  End
                  If B=90
                  Then
                     34->B
                     inString(Str9,"[xhat]T
                     For(I,2,6C+int(A/8
                        2+inString(Str9,"[xhat]E",Ans
                     End
                     Ans->D
                     sub(Str9,1,Ans-1
                     If 6C+int(A/8)!=|LTIBN(1
                        Ans+sub(Str9,inString(Str9,"[xhat]T",D+1),length(Str9)-(~1+inString(Str9,"[xhat]T",D+1
                     Ans->Str9
                     |LTIBN(1)-1->|LTIBN(1
                  End
                  Text(52,2,"DELETED
                  rand(30
               End
               If Z=20
               Then
                  ClrDraw
                  RecallPic 1
               End
               34->B
            End
            If A=28
            Then
               For(I,12,58,8
                  Text(~1,I,0,"                 "
               End
               Text(12,13,"ARCHIVE NOTES ON EXIT
               Text(50,6,"UNARCHIVED FILES CAN BE
               Text(56,11,"SUBJECT TO DELETION
               Horizontal 13
               For(G,45,45,~6
                  For(O,5,9
                     Line(O,G,O,G+4
                  End
               End
               DelVar K12->G
               Line(6,47,7,46,0
               Line(8,47,9,48,0
               Repeat K=22
                  If K=105
                  Then
                     If G=12
                        not(|LTIBN(2->|LTIBN(2
                     For(O,6,8
                        Line(O,58-G,O,60-G,|LTIBN(2
                     End
                     Pt-On(9,12-(G-48
                     If |LTIBN(2
                     Then
                        Line(6,47,7,46,0
                        Line(8,47,9,48,0
                     End
                  End
                  Text(G,1,">
                  Repeat max(Ans={22,25,34,105
                     getKey->K
                  End
                  Text(A,1,"   "
               End
               ClrDraw
               RecallPic 1
            End
         End
         DelVar K
         If P or B=90
         Then
            inString(Str9,"[xhat]T->D
            6C+int(A/8)-1
            If P
               |LTIBN(1)-1
            For(E,1,Ans
               2+inString(Str9,"[xhat]E",D->D
            End
            ClrDraw
            Horizontal 55
            DelVar XDelVar RDelVar C
            Text(0,73,1
            Text(0,77,"/87
            Line(89,55,89,62
            Line(67,55,67,62
            If not(P
            Then
               Text(56,30,"Rendering..
               inString(Str9,"[xhat]N",D->E
               sub(Str9,D+2,Ans-D-2->Str6
               Text(0,1,Ans
               sub(Str9,E+2,inString(Str9,"[xhat]E",D)-(2+E->Str7
               For(G,0,int((length(Ans)-3)/23
                  "          "
                  If G=8
                     Text(56,30," "+Ans+Ans+Ans+Ans
                  For(O,1,min(23,length(Str7)-23G-2
                     sub(Str7,23G+O+2,1
                     Text(6G+8,4O-3,Ans
                     If inString("wm",Ans
                     Then
                        Text(6G+8,4O-3,sub("WM",inString("wm",Ans),1
                        Line(4O-3,53-6G,4O-1,53-6G,0
                        Pt-Off(4O-2,52-6G
                     End
                  End
               End
               "          "
               If G!=8
                  Text(56,30," "+Ans+Ans+Ans+Ans
            End
            DelVar B8->A
            Lbl TT
            If P or K=11
            Then
               "  ->Str7
               " ->Str6
               Repeat length(Str6)>1 and (K=34 or K=105
                  If 1=length(Str6
                     Text(0,1,"ENTER TITLE
                  Repeat Ans
                     getKey->K
                  End
                  If 12>length(Str6) and K>40 and K<94 and K!=44 and K!=45
                  Then
                     If 1=length(Str6
                        Text(0,1,"                                            "
                     Str6+sub("ABC  DEFGHIJKLMNOPQRSTUVWXYZ",K-20-5int(.1K),1->Str6
                  End
                  If K=23 and length(Str6)>1
                     sub(Str6,1,length(Str6)-1->Str6
                  If K=45
                  Then
                     " ->Str6
                     Text(0,1,"                                            "
                  End
                  Text(0,1,Str6+"   "
               End
            End
            sub(Str6,2,length(Str6)-1
            If P
               Str9+Ans+"[xhat]N  [xhat]E->Str9
            If not(P
               sub(Str9,1,D+2)+Ans+sub(Str9,inString(Str9,"[xhat]N",D),length(Str9)+1-inString(Str9,"[xhat]N",D->Str9
            0->P
            Repeat K=22 or K=11
               Repeat Ans
                  Line(B,61-A,B,57-A
                  getKey->K
                  Line(B,61-A,B,57-A,0
               End
               If K=21
                  3-3(R=3->R
               If K=31
                  1+(R=1)-(R=2->R
               Text(0,91,"   "
               If R
                  Text(0,91,sub("Aa2",R,1
               If Xnot(S(K=34 or 2>abs(K-25
               Then
                  For(theta,48,0,~6
                     Line(0,theta,94,theta,0
                  End
                  DelVar XDelVar M
               End
               If K>=41 and K<=104
               Then
                  sub("=        ^ ,()/ 789plotdot 456-\>123+ 0.~ABC  DEFGHIJKLMNOPQRSTUVWXYZtheta'  :?abc  defghijklMnopqrstuvWxyztheta'* :?           |E{}[e]    [    ]       [i]",K-5int(.1K)-20+34(R=1)+68(R=2)+102(R=3),1->Str8
                  If " "!=Ans or (K=102 and R
                  Then
                     If B>89 and A<54
                        DelVar BA+6->A
                     Text(A,B+1,"   "
                     Text(A,B+1,Str8
                  End
                  If R=2 and inString("WM",Str8
                  Then
                     Line(B+1,61-A,B+3,61-A,0
                     Pt-Off(B+2,60-A
                     sub("wm",inString("WM",Str8),1->Str8
                  End
                  23int(A/6-1)+B/4+2->theta
                  Str7+Str8
                  If theta!=length(Str7
                  Then
                     sub(Str7,1,theta)+Str8
                     If theta+1<length(Str7
                        Ans+sub(Str7,theta+2,length(Str7)-theta-1
                  End
                  Ans->Str7
                  B+4->B
               End
               If sum(K={24,25,26,34
               Then
                  If A>8 and K=24 and not(B
                  Then
                     92->B
                     A-6->A
                  End
                  If R!=3
                  Then
                     min(8+6int((length(Str7)-2)/23),min(54,max(8,A+6sum(DeltaList(K={25,34->A
                     min(4length(Str7)+84-92int(A/6),min(92,max(0,B+4sum(DeltaList(K={24,26->B
                  End
                  If B=92 and A<54 and K=26
                     DelVar BA+6->A
                  If K=34 and A<54 and 23int(A/6-(length(Str7)>23int(A/6-2)+B/4-K+26))+B/4-K+27>length(Str7
                  Then
                     If R=3
                        Line(B,62-A,94,62-A,M=max(K={26,34
                     4length(Str7)-8-23int(length(Str7)/23->B
                     If R=3
                     Then
                        23int(A/6-1)+Ans/4+2->V
                        Line(0,56-A,B,56-A,M=max(K={26,34
                     End
                  End
                  If R=3
                  Then
                     If (length(Str7)>23int(A/6-1)+B/4+2 and K=26) or (K=24 and (B and A=8) or (B!=92 and A=50) or A>8 and A<54
                     Then
                        If not(X
                        Then
                           sum(K={26,34->M
                           23int(A/6-1)+B/4+2->X
                        End
                        Line(B,62-A-6,B+4((K=26)-(K=24)),62-A-6,M=sum(K={26,34
                        B+4(K-25->B
                        23int(A/6-1)+Ans/4+2->V
                        If V=X
                           DelVar XDelVar M
                        End
                     End
                  End
                  If K=14 and X!=V
                     " "+sub(Str7,min(X,V)+1,abs(X-V))+sub(Str9,2,length(Str9)-1->Str9
                  If sum(K={15,23
                  Then
                     If K=23
                     Then
                        23int(A/6)+B/4-21->theta
                        If not(X) and Ans!=length(Str7) or (X
                        Then
                           If not(X
                           Then
                              If Ans+1<length(Str7
                                 sub(Str7,1,Ans)+sub(Str7,Ans+2,length(Str7)-Ans-1
                              If theta+1=length(Str7
                                 sub(Str7,1,theta
                           End
                           If X
                           Then
                              sub(Str7,1,min(X,V
                              If max(X,V)<length(Str7
                                 Ans+sub(Str7,max(X,V)+1,length(Str7)-max(X,V
                              DelVar XDelVar M
                           End
                           Ans->Str7
                        End
                     End
                     If K=15 and "[xhat]T"!=sub(Str9,2,2
                     Then
                        sub(Str7,1,23int(A/6)+B/4-21)+sub(Str9,2,inString(Str9,"[xhat]T")-2
                        If 23int(A/6)+B/4-21<length(Str7
                           Ans+sub(Str7,23int(A/6)+B/4-20,abs(23int(A/6)+B/4-21-length(Str7
                        Ans->Str7
                     End
                     For(G,int(A/6)-1,int((length(Str7)-1)/23
                        Text(6G+8,1,"                                                                                              "
                        For(O,1,min(23,length(Str7)-23G-2
                           sub(Str7,23G+O+2,1
                           Text(6G+8,4O-3,Ans
                           If inString("wm",Ans
                           Then
                              Text(6G+8,4O-3,sub("WM",inString("wm",Ans),1
                              Line(4O-3,53-6G,4O-1,53-6G,0
                              Pt-Off(4O-2,52-6G
                           End
                        End
                     End
                     If 23int(A/6)+B/4-21>length(Str7
                     Then
                        10+6int((length(Str7)-1)/23->A
                        4length(Str7)-8-23int(length(Str7)/23->B
                     End
                  End
               End
               If K=11
                  Goto TT
               0->K
               ClrDraw
               sub(Str9,1,inString(Str9,"[xhat]N",D)+1)+Str7+sub(Str9,inString(Str9,"[xhat]E",D),length(Str9)+(1-inString(Str9,"[xhat]E",D->Str9
               DelVar C12->A
               34->B
               2->F
            End
         End
      End
   End
End
If K!=22
   Pause
DelVar Pic1DelVar Str6DelVar Str7DelVar Str8ClrDraw
If |LTIBN(2
   Archive Str9
Archive |LTIBN
ClrHome
"


Code:
:DCS6
"000000003FFC20042CC42AA42CA42AA42CA4200427F420042FF420043FFC0000"
CoordOff:GridOff:AxesOff:FnOff
0->Xmin:1->DeltaX
0->Ymin:1->DeltaY
SetUpEditor TIBN
If not(dim(|LTIBN
Then
" ->Str9
seq(X=2,X,1,6->TIBN
End
UnArchive Str9
28->Z
While Z=28 or AB=408 and K!=22
DelVar ZClrDraw
Horizontal 52
Horizontal 51
Text(~1,1,1,"BasicNote
StorePic 1
Text(~1,1,32,"Note
RecallPic 1
DelVar Pic1Line(38,4,38,50
Line(94,4,94,50
Line(0,4,0,50
For(A,51,3,~8
Horizontal A
End
Text(12,2,"NEW NOTE
Text(20,2,"DELETE
Text(28,2,"OPTIONS
0->C
For(A,1,min(6,|LTIBN(1
3+inString(Str9,"[xhat]T",Ans+1
Text(8A+4,40,sub(Str9,Ans,inString(Str9,"[xhat]N",Ans)-Ans
End
12->A
34->B
Repeat K=22 or Z=28 or (B=90 and |LTIBN(1)>=6C+int(A/8)) or (A=12 and B=34
0->P
Repeat max(K={22,105,23
1+int((|LTIBN(1)/6-.1
Text(3,91-4int(log(Ans)),Ans
Text(3,79-4int(log(C+1)),C+1,"/
getKey->K
Text(A,B,"<
If K
Then
Text(A,B,"    "
If (K=34 and A=52 and |LTIBN(1)>6C+6) or (BK=2250 and A=12 and C
Then
4(K=34)+60(K=25->A
C+(K=34)-(K=25->C
1
For(M,1,6C
1+inString(Str9,"[xhat]E",Ans
End
For(M,1,6
Text(8M+4,40,"                                                    "
End
For(M,1,min(6,|LTIBN(1)-6C
3+inString(Str9,"[xhat]T",Ans+1
Text(8M+4,40,sub(Str9,Ans,inString(Str9,"[xhat]N",Ans)-Ans
End
End
min(28+24(B=90),max(12,A+8sum(DeltaList(K={25,34->A
min(90,max(34,B+56sum(DeltaList(K={24,26->B
End
End
If max(K={23,105
Then
StorePic 1
6C+int(A/8
If B=34 or (K=23 and B=90 and |LTIBN(1)>=Ans or (B=90 and Ans<=|LTIBN(1
Then
If B=34 or (K=23 and B=90)
Then
If A=12 and B=34
Then
Str9+"[xhat]T ->Str9
1+|LTIBN(1->|LTIBN(1
1->P
End
If A=20 or (K=23 and B=90)
Then
Text(12,2,"DEL"+sub("ALL NOTE",1+4(B=90),4
For(I,20,50,6
Text(I,1,"                                     "
End
Text(20,2,"CANCEL     
Text(28,2,"CONFIRM
20->Z
Repeat K=105
Text(Z,34,"<
getKey->K
If Ans
Then
Text(Z,34,"   "
min(28,max(20,Z+8sum(DeltaList(Ans={25,34->Z
End
End
If Z=28
Then
If B=34
Then
" ->Str9
0->|LTIBN(1
End
If B=90
Then
34->B
inString(Str9,"[xhat]T
For(I,2,6C+int(A/8
2+inString(Str9,"[xhat]E",Ans
End
Ans->D
sub(Str9,1,Ans-1
If 6C+int(A/8)!=|LTIBN(1
Ans+sub(Str9,inString(Str9,"[xhat]T",D+1),length(Str9)-(~1+inString(Str9,"[xhat]T",D+1
Ans->Str9
|LTIBN(1)-1->|LTIBN(1
End
Text(52,2,"DELETED
rand(30
End
If Z=20
Then
ClrDraw
RecallPic 1
End
34->B
End
If A=28
Then
For(I,12,58,8
Text(~1,I,0,"                 "
End
Text(12,13,"ARCHIVE NOTES ON EXIT
Text(50,6,"UNARCHIVED FILES CAN BE
Text(56,11,"SUBJECT TO DELETION
Horizontal 13
For(G,45,45,~6
For(O,5,9
Line(O,G,O,G+4
End
End
DelVar K12->G
Line(6,47,7,46,0
Line(8,47,9,48,0
Repeat K=22
If K=105
Then
If G=12
not(|LTIBN(2->|LTIBN(2
For(O,6,8
Line(O,58-G,O,60-G,|LTIBN(2
End
Pt-On(9,12-(G-48
If |LTIBN(2
Then
Line(6,47,7,46,0
Line(8,47,9,48,0
End
End
Text(G,1,">
Repeat max(Ans={22,25,34,105
getKey->K
End
Text(A,1,"   "
End
ClrDraw
RecallPic 1
End
End
DelVar K
If P or B=90
Then
inString(Str9,"[xhat]T->D
6C+int(A/8)-1
If P
|LTIBN(1)-1
For(E,1,Ans
2+inString(Str9,"[xhat]E",D->D
End
ClrDraw
Horizontal 55
DelVar XDelVar RDelVar C
Text(0,73,1
Text(0,77,"/87
Line(89,55,89,62
Line(67,55,67,62
If not(P
Then
Text(56,30,"Rendering..
inString(Str9,"[xhat]N",D->E
sub(Str9,D+2,Ans-D-2->Str6
Text(0,1,Ans
sub(Str9,E+2,inString(Str9,"[xhat]E",D)-(2+E->Str7
For(G,0,int((length(Ans)-3)/23
"          "
If G=8
Text(56,30," "+Ans+Ans+Ans+Ans
For(O,1,min(23,length(Str7)-23G-2
sub(Str7,23G+O+2,1
Text(6G+8,4O-3,Ans
If inString("wm",Ans
Then
Text(6G+8,4O-3,sub("WM",inString("wm",Ans),1
Line(4O-3,53-6G,4O-1,53-6G,0
Pt-Off(4O-2,52-6G
End
End
End
"          "
If G!=8
Text(56,30," "+Ans+Ans+Ans+Ans
End
DelVar B8->A
Lbl TT
If P or K=11
Then
"  ->Str7
" ->Str6
Repeat length(Str6)>1 and (K=34 or K=105
If 1=length(Str6
Text(0,1,"ENTER TITLE
Repeat Ans
getKey->K
End
If 12>length(Str6) and K>40 and K<94 and K!=44 and K!=45
Then
If 1=length(Str6
Text(0,1,"                                            "
Str6+sub("ABC  DEFGHIJKLMNOPQRSTUVWXYZ",K-20-5int(.1K),1->Str6
End
If K=23 and length(Str6)>1
sub(Str6,1,length(Str6)-1->Str6
If K=45
Then
" ->Str6
Text(0,1,"                                            "
End
Text(0,1,Str6+"   "
End
End
sub(Str6,2,length(Str6)-1
If P
Str9+Ans+"[xhat]N  [xhat]E->Str9
If not(P
sub(Str9,1,D+2)+Ans+sub(Str9,inString(Str9,"[xhat]N",D),length(Str9)+1-inString(Str9,"[xhat]N",D->Str9
0->P
Repeat K=22 or K=11
Repeat Ans
Line(B,61-A,B,57-A
getKey->K
Line(B,61-A,B,57-A,0
End
If K=21
3-3(R=3->R
If K=31
1+(R=1)-(R=2->R
Text(0,91,"   "
If R
Text(0,91,sub("Aa2",R,1
If Xnot(S(K=34 or 2>abs(K-25
Then
For(theta,48,0,~6
Line(0,theta,94,theta,0
End
DelVar XDelVar M
End
If K>=41 and K<=104
Then
sub("=        ^ ,()/ 789plotdot 456-\>123+ 0.~ABC  DEFGHIJKLMNOPQRSTUVWXYZtheta'  :?abc  defghijklMnopqrstuvWxyztheta'* :?           |E{}[e]    [    ]       [i]",K-5int(.1K)-20+34(R=1)+68(R=2)+102(R=3),1->Str8
If " "!=Ans or (K=102 and R
Then
If B>89 and A<54
DelVar BA+6->A
Text(A,B+1,"   "
Text(A,B+1,Str8
End
If R=2 and inString("WM",Str8
Then
Line(B+1,61-A,B+3,61-A,0
Pt-Off(B+2,60-A
sub("wm",inString("WM",Str8),1->Str8
End
23int(A/6-1)+B/4+2->theta
Str7+Str8
If theta!=length(Str7
Then
sub(Str7,1,theta)+Str8
If theta+1<length(Str7
Ans+sub(Str7,theta+2,length(Str7)-theta-1
End
Ans->Str7
B+4->B
End
If sum(K={24,25,26,34
Then
If A>8 and K=24 and not(B
Then
92->B
A-6->A
End
If R!=3
Then
min(8+6int((length(Str7)-2)/23),min(54,max(8,A+6sum(DeltaList(K={25,34->A
min(4length(Str7)+84-92int(A/6),min(92,max(0,B+4sum(DeltaList(K={24,26->B
End
If B=92 and A<54 and K=26
DelVar BA+6->A
If K=34 and A<54 and 23int(A/6-(length(Str7)>23int(A/6-2)+B/4-K+26))+B/4-K+27>length(Str7
Then
If R=3
Line(B,62-A,94,62-A,M=max(K={26,34
4length(Str7)-8-23int(length(Str7)/23->B
If R=3
Then
23int(A/6-1)+Ans/4+2->V
Line(0,56-A,B,56-A,M=max(K={26,34
End
End
If R=3
Then
If (length(Str7)>23int(A/6-1)+B/4+2 and K=26) or (K=24 and (B and A=8) or (B!=92 and A=50) or A>8 and A<54
Then
If not(X
Then
sum(K={26,34->M
23int(A/6-1)+B/4+2->X
End
Line(B,62-A-6,B+4((K=26)-(K=24)),62-A-6,M=sum(K={26,34
B+4(K-25->B
23int(A/6-1)+Ans/4+2->V
If V=X
DelVar XDelVar M
End
End
End
If K=14 and X!=V
" "+sub(Str7,min(X,V)+1,abs(X-V))+sub(Str9,2,length(Str9)-1->Str9
If sum(K={15,23
Then
If K=23
Then
23int(A/6)+B/4-21->theta
If not(X) and Ans!=length(Str7) or (X
Then
If not(X
Then
If Ans+1<length(Str7
sub(Str7,1,Ans)+sub(Str7,Ans+2,length(Str7)-Ans-1
If theta+1=length(Str7
sub(Str7,1,theta
End
If X
Then
sub(Str7,1,min(X,V
If max(X,V)<length(Str7
Ans+sub(Str7,max(X,V)+1,length(Str7)-max(X,V
DelVar XDelVar M
End
Ans->Str7
End
End
If K=15 and "[xhat]T"!=sub(Str9,2,2
Then
sub(Str7,1,23int(A/6)+B/4-21)+sub(Str9,2,inString(Str9,"[xhat]T")-2
If 23int(A/6)+B/4-21<length(Str7
Ans+sub(Str7,23int(A/6)+B/4-20,abs(23int(A/6)+B/4-21-length(Str7
Ans->Str7
End
For(G,int(A/6)-1,int((length(Str7)-1)/23
Text(6G+8,1,"                                                                                              "
For(O,1,min(23,length(Str7)-23G-2
sub(Str7,23G+O+2,1
Text(6G+8,4O-3,Ans
If inString("wm",Ans
Then
Text(6G+8,4O-3,sub("WM",inString("wm",Ans),1
Line(4O-3,53-6G,4O-1,53-6G,0
Pt-Off(4O-2,52-6G
End
End
End
If 23int(A/6)+B/4-21>length(Str7
Then
10+6int((length(Str7)-1)/23->A
4length(Str7)-8-23int(length(Str7)/23->B
End
End
End
If K=11
Goto TT
0->K
ClrDraw
sub(Str9,1,inString(Str9,"[xhat]N",D)+1)+Str7+sub(Str9,inString(Str9,"[xhat]E",D),length(Str9)+(1-inString(Str9,"[xhat]E",D->Str9
DelVar C12->A
34->B
2->F
End
End
End
End
End
If K!=22
Pause
DelVar Pic1DelVar Str6DelVar Str7DelVar Str8ClrDraw
If |LTIBN(2
Archive Str9
Archive |LTIBN
ClrHome
"
As mentioned before in the SAX, I am helping out by making a String to List converter to efficiently convert Str9 to lBNOTE.

Here's my code so far:


Code:

:ClrHome
:Ans->Str2
:"/Complete Charset of BasicNote/->Str1
:Delvar WDelvar X7->Z:0->dim(L1
:For(/theta/,1,length(Str2
:Z+1-7(Z=7->Z
:W+(Z=1->W
:If Z=1
:X->L1(W
:X-X(Z=1->X
:100X+inString(Str1,sub(Str2,/theta/,1->X
:End
:X->L1(W
:Pause L1


Unfortunately it doesn't store X into the first list element... Well if anyone sees the problem please help. I could fix it by simply adding an if statement but im sure it can be fixed better!

EDIT: Thank you, mr womp womp Smile
Nik: nice. Btw, here's the routine I was originally planning on using, if at all. Props to kg583 Smile
Nik wrote:
As mentioned before in the SAX, I am helping out by making a String to List converter to efficiently convert Str9 to lBNOTE.

Here's my code so far:


:ClrHome
:Ans->Str2
:"/Complete Charset of BasicNote/->Str1
:Delvar WDelvar X7->Z:0->dim(L1
:For(/theta/,1,length(Str2
:Z+1-7(Z=7->Z
:W+(Z=1->W
:If Z=1
:X->L1(W
:X-X(Z=1->X
:100X+inString(Str1,sub(Str2,/theta/,1->X
:End
:X->L1(W
:Pause L1


Unfortunately it doesn't store X into the first list element... Well if anyone sees the problem please help. I could fix it by simply adding an if statement but im sure it can be fixed better!

This has nothing to do with the topic but you can use the little "Code" button when posting something, like this:
[code ]"put your code here..."[ /code]
But remove the spaces in the tags to make your code show up in a nice little color-coded form in an orderly box Razz


Code:
ClrHome
Ans->Str2
"/Complete Charset of BasicNote/->Str1
Delvar WDelvar X7->Z:0->dim(L1
For(/theta/,1,length(Str2
Z+1-7(Z=7->Z
W+(Z=1->W
If Z=1
X->L1(W
X-X(Z=1->X
100X+inString(Str1,sub(Str2,/theta/,1->X
End
X->L1(W
Pause L1
While I would still love more bug reports, I also have another request:

I believe nik and possibly Kerm were talking to me about the readme. Nik exclaimed the size and slight complexity of it I believe. I haven't written a lot of readmes, much less big ones for a big project like this. So, some suggestions on readability, how the controls and functions are mapped out, and such, would be much appreciated Very Happy also I think the font for the ASCII art for the title looks pretty good, but it may not be the most fitting. Idk though.

I have written many essays before but README's are a bit different Razz
Michael2_3B wrote:
While I would still love more bug reports, I also have another request:

I believe nik and possibly Kerm were talking to me about the readme. Nik exclaimed the size and slight complexity of it I believe. I haven't written a lot of readmes, much less big ones for a big project like this. So, some suggestions on readability, how the controls and functions are mapped out, and such, would be much appreciated Very Happy also I think the font for the ASCII art for the title looks pretty good, but it may not be the most fitting. Idk though.

I have written many essays before but README's are a bit different Razz

Writing simple readmes is an art Razz As you can see from the ones I've made, I'm no pro, but I try to keep it as simple and direct as possible, only giving the most useful information and the stuff that might not be obvious, for example, in my simple refraction program, you must use the F1-F5 keys to get around, but I didn't include that in the readme because I feel like it is fairly obvious since the options are layed out at the bottom of the screen over their respective keys. Personally I like adding in some ascii art just cause why not Razz I don't know if this is your fault or not, but it seems like the enters didn't show up in your readme, so the ascii art is actually all on one line as well as all of the text, but I took the time to add in all the enters to be able to read it correctly and read through the whole thing and I'll admit you did ramble on a little... Kinda like I'm doing right now Razz anyway, I think if you wanted to remove a little stuff to make it more uhm friendly, you could really remove the whole things about the note's title and maybe even the options (By the way, I love the little check boxes you made, very classy :3), since they are pretty straightforward, maybe also remove the Changelog part since well there's nothing in it xD you also don't really need to specify that the user needs to press alpha and 2nd to change modes, and that going to delete will delete the notes haha. however, whatever you remove, you should really keep the part about copy-pasting since that part is the really odd and different part that people won't know how to deal with. Completely unrelated to the readme but one thing I'd like to suggest, maybe this isn't feasible I don't know but for the main menu, you could have a cursor like in DoorsCS, I know there are some routines out there, although this would require some considerable modifications to the whole program, would definitely look spiffy Razz
So I know that when I looked at the readme, it looked like a mess in the windows supplied notepad.
Michael told me that he wrote the readme in Caret, a chrome text application. (He used a chromebook to write it)

Anyways, the formatting get messed up, as shown in the video below.



I believe that's what Nik and Kerm where talking about when they said it was complex?

Anyways, I think the readme's just fine how it is, as long as the formatting is correct Wink
lol don't use notepad. My guess is that Caret saves files with unix-style line endings, whereas notepad expects CRLF and so doesn't do anything when it encounters the former. [this is Notepad's fault, not Michael's or Caret's, and probably isn't why KermM and Nik called it 'complicated']
If you can't install a proper text editor, opening the readme file in Chrome or another modern browser should work.

As for the actual readme: I don't think it's necessarily hard to understand, although it's a bit too wordy at the beginning (especially in the main menu section). I'd assume that anyone who's able to install a program on their calculator would know what a menu is Razz
M. I. Wright wrote:
If you can't install a proper text editor, opening the readme file in Chrome or another modern browser should work.

Yep, that's how I open it. It looks perfectly fine in Chrome.

Edit: should I put a small note in the beginning about this?
I won't be online over the weekend so I can not post here, but I believe I will have enough time to finish these routines...
And btw by "Nik was talking about the readme" do you mean me? I haven't talked about any readme's or at least I completely forgot it...
Ok I am back. I enjoyed my weekend-trip and so my programing did:
Fresh air, sports (*cough* walking to the coolbox to get a drink *cough*) and a company of good, old friends resulted in the following code being written within 45 minutes, including graphics, optimization and bugfixes.


Code:

prgmLENCODE
:1-> Xmin:1->/delta/X:-63-> Ymin:1->/delta/Y:FnOff :AxesOff:PlotsOff
:ClrDraw:For(G,2,4,2:Circle(48,-36,G,{i:End:Text(24,32,"Loading...
:{48,49,50,51,51,51,50,49,48,47,46,45,45,45,46,47->L2:{-33,-33,-34,-35,-36,-37,-38,-39,-39,-39,-38,-37,-36,-35,-34,-33->L3:1->G:Delvar XDelvar Z0->dim(L1     //The header ends here
:For(/theta/,1,length(Str9
:Z+1-7(Z=7->Z
:If X(Z=1
:X->L1(dim(L1+1
:X-X(Z=1->X
:100X+inString("/charset of BasicNote/",sub(Str9,/theta/, 1->X
:PtChange(G+1-16(G=16->G
:End
:X->L1(1+dim(L1
:L1-> lBNOTE



Code:

prgmLDECODE
:/the same header like in prgmLENCODE/
:lBNOTE->L1:"?->Str9
:For(/theta/,1,dim(L1
:For(Z,7,1,-1
:int(100fPart(L1(/theta/)/10^(2Z
:If Ans
:Str9+sub("/charset of BasicNote/",Ans,1->Str9
:PtChange(L2(G),L3(G
:G+1-16(G=16->G
:End
:End
:sub(Str9,2,length(Str9)-1->Str9


prgmLDECODE only to be run if prgmLENCODE was run previously, and lBNOTE to be archived if so set in settings...
The charset can be stored in a string and kept there so it only needs to be stored once for both programs. The same with L2 and L3. I also tried to find a midpoint between speed and size optimization and I focused on speed more. There are at least two size optimizations at a cost of speed that I ignored.
  
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 8 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