| ###################################################################### | http://CoSy.com ` \4thCoSy\CoSy\CoSy.csy startJob | open intro ( paradigm ) CoSy Job | ###################################################################### | | Tap F1 for Help | | ###################################################################### | |\/| MY almost RAW SCRIPT UP TO THIS POINT |\/| | \/ \/ \/ \/ \/ \/ \/ \/ | Tek Log | \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ | ` script0 -> textwdo @ getcaret `( sys Tui caret )` Dv@ | ` 2900,1 textwdo @ setcaret lst bye ` getcaret See | ======================== | Mon.Dec,20191230 | ======================== | ` con Words blMV R0 blMV ncon con nconn conn conb ncconn ccon cconn cconb ` ASCIIbrowser Dv@ lfVM 65 91 2_i thru at Xwords { -1 _at } 'm ,/ blVM -1 _cut >t0> rho rShow rGet >T0> 434. 2283. 2_f %f lst>stk mini >T0> T0 { lst>stk mini } 'm ' +/ 'm ,/ ev >T0 dsc >T1> | ' maxi ./ | { ['] mini ./ } 'm lst>stk mini ` lst>stk See T0 ,L >T0> rho T0 { rho' ,/ } 'm | ' +/ 'm { { 64 _i i 'm dsc 64 _i t1> t0 t1 ,L flip { ['] maxi ./ | ======================== | Tue.Dec,20191231 | ======================== | | 1454 | ` c>f :?? rShow ` ./CoSy/Furniture.f F> rUpdate f( -17.778 -11.4286 0 )f c>f | see screenshot at | \/ | https://www.facebook.com/groups/2225595150855239/permalink/2650439021704181/?comment_id=2650605735020843 | 2220 | | ################################ 20200101 ############################# | | ======================== | Wed.Jan,20200101 | ======================== | rGet lf>nl ` C:/4thCoSy/Physics/general.f F> | F> rUpdate ` C:/4thCoSy/Physics/SB.f F> ` close Words ' :?? 'm | ======================== | Fri.Jan,20200103 | ======================== | s" 2020-01-01 12:07 1,424 CBoC.csv" >t0> drb |>| s" 2020-01-01 12:07 1,424 CBoC.csv2" ` drb :?? rShow ` ./CoSy/Furniture.f F> rUpdate : drb "bl : dre 2p> swap cL R@ =c >a> 1 _rotate a> mini 0=i & L@ swap at 2P> ; t0 drb text> daylncut s" : drb " con | i( 20190325 20190411 20191015 )i { ( x = * y ) _ y : y _di & t & 1 ! t : x = y : x , y } | It's possible to sF6 even thru these lines w a stackframe and use of ' >a> vocab | frame can be spotted on the stk because = SFptr @ @ | t0 "bl 2p> cL R@ =c >a> 1 _rotate a> mini 0=i o | & L@ swap at 2P> | bug is failure to trim bool . : drb "bl : dre 2p> swap cL R@ =c >a> 1 _rotate a> mini -1 _cut 0=i & L@ swap at 2P> ; rGet lf>nl ` ./CoSy/Furniture.f >F | ======================== | Sat.Jan,20200104 | ======================== | | 1838 | abt tv screen diags | f( 36.07 21.07 )f norm | ` .\CoSy\math.f F> ^eval | 20200105.1253 | : dlc >_ .> >aux 1p> dup { aux@ <> } f?m cut auxdrop 1P> ; | error was in ' f?m itself using ' aux vocabulary vs the loop only ' lpstk . s" asdf asdf " "bl dlc | ======================== | Sun.Jan,20200105 | ======================== | | | frm FB | https://www.sonyaz.net/foto-galeri/poland-just-unveils-a-glow-in-the-dark-bicycle-path-thats-charged-by-the-sun/193/resim/6 | luminescent bike path | 6 feet wide and 330 feet long and cost roughly $31,000. 6 330 2_i *i i>f |>| 1980 | 31000. _f R0 %f |>| 15.65 | per sq ft | 31000. 200. 2_f %f | extract just definitions -- which must begin at very left of line ` ./CoSy/CoSy.f >t0> F> >t1> t1 "nl ` : cL tokcut 1 _cut >t1> t1 { s" ;" prt<=f } 'm >t0> rho | first time I've extracted just defs t0 ` lpstk con t0 ` aux con ` do con >t1> t1 { blVM 1 _at } 'm blMV |>| eachMcr ,I ,s takeb eachMfr eachMfir eachDfr eachDfir takef s>iv _at\ _at! rotate take fmtI fmtF eachm dvi | /\ | these operators need to have ' aux words replaced w ' lpstk equivalents . ` ./CoSy/CoSy.f >t0> F> >t1> rShow t1 rUpdate rGet lf>nl t0 >F rShow : m/d/y>ymd s" /" VM -1 _rotate ,/ ; ` 09/26/2019 m/d/y>ymd 20190926 ` csv>lst ?? s" 09/26/2019" s" /" VM -1 _rotate ,/ | s" 20 0 0" blVM ' cL 'd s" 0 0 20" blVM ` 1/1/2020 ` / VM | ' cL 'd | s" -2 -2 -4 ' fill 'd ` 001 -2 _fill ` fill Words | convert format . requires leading 0s . ` ./CoSy/Furniture.f >t0> F> >t1> rUpdate rGet lf>nl t0 >F ` dlc :?? 23. ` c>i :?? res> rUpdate ` strings Help | ======================== | Wed.Jan,20200108 | ======================== | 1024 _iota 2 _i 10 _take take | Works ! | 10 dimensional array ! | : StartJob s" cosy@.bat " swap cL start ; | Start a ` .csy Job | eg: | ` C:\CoSyBob\acnts\y20\Acnts.csy StartJob Added to ./CoSy/Furniture.f | 0133 | | ======================== | Thu.Jan,20200109 | ======================== | i( 7 11 13 )i -1*i reverse i( 7 11 13 17 )i i( 1 -1 )i +i | ======================== | Sat.Jan,20200111 | ======================== | | 0826 | `( asdf qwer uiop )` i( 1 0 )i at >t0> t0 rho 2 `( asdf qwer uiop )` i( 1 )i at >t0> t0 rho 4 text> lfVM rho | need to reinstate saving of bkup bkup on F6 | 1635 | s" C:/4thCoSy/CoSy/TuiE.f" F> rUpdate s" C:/4thCoSy/CoSy/SaveRestore - Copy.f" F> rUpdate ` savedic :?? ` ./CoSy/SaveRestore.f F> rUpdate s" C:/4thCoSy/CoSy/Tui.f" F> rUpdate rShow { { save `res `resvar Dv! textwdo f6 gui-default } add-callback gui-default } key-F6-cb | ======================== | Sun.Jan,20200112 | ======================== | rShow s" C:/4thCoSy/CoSy/SaveRestore - Copy.f" F> rUpdate : savedic ( -- ) | save dictionary | see also 20190330 R storelst str | computed 1st , the left on stack ` COSYSTARTFILE ?? COSYSTARTFILE dup s" \" ss -1 _at i1 +i take >value CoSyDir s" del " COSYSTARTFILE -4 _cut cL s" .bk" cL | { shell nil } onvan drop s" ren " COSYSTARTFILE cL s" .bk" cL cL CoSyFile >r> van shell r> ref0del COSYSTARTFILE s" .csy" cL Foverwrite ; ` bkupprev ?? ` See See ` aaply ?? res> lfVM rho | ======================== | Mon.Jan,20200113 | ======================== | ` macro Help ` inline ?? : startJob s" cosy@.bat " swap cL start ; ` startJob See | ======================== | Sun.Jan,20200112 | ======================== | text> rho | ======================== | Mon.Jan,20200113 | ======================== | res> >T0> T0 lfVM >t0> rho | ======================== | Tue.Jan,20200114 | ======================== | ` BROWSER Dv@ |>| "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" t0 ` BROWSER Dv! ` BROWSER Dv@ |>| ""C:\Program Files (x86)\Mozilla Firefox\firefox.exe"" | updated BROWSER since Chrome freezes | s" ""C:\Program Files (x86)\Mozilla Firefox\firefox.exe"" " | ======================== | Thu.Jan,20200116 | ======================== | ` iota :?? ` _i :?? ` number ?? res> >t0> rho | ======================== | Fri.Jan,20200117 | ======================== | `( memb take cut )` ' :?? 'm | ======================== | Sat.Jan,20200118 | ======================== | | 1147 | : FullCoSyFile COSYSTARTFILE s" ." prtvalue CoSyDir FullCoSyFile s" help ren " shell> | defined ' bkuplast . added to ` CoSy.f . | added to ' save in ` Tui.f to restore saving bkup copy on every save . | 2123 | Dnames sym>str>' zic Words .. ` sym>str>' conn -5 5 2_i thru +i at ` sym>str :?? : sym>str ( sym -- ) dup TypeC over Type! dup sym# over cell+ ! byte swap bits! ; ` asdf >t0> sym>str : sym>str ( sym -- ) TypeC over Type! dup sym# over cell+ ! byte swap bits! ; ` sym>str See | ======================== | Sun.Jan,20200119 | ======================== | Dnames sym>str>' | ======================== | Mon.Jan,20200120 | ======================== | `( 0; 00; 0drop; )` ' Help 'm ` asdf dup sym>str ` 0;drop Help ` asdf str>sym> dup sym>str DMP drop TypeC over Type! dup sym# over cell+ ! byte swap bits! ` sym>str See dup DMP Dnames | sym>str>' | R 0 _at! COSYSTARTFILE F> str>lst >T0> dsc T0 dsc sym>str>' enc T0 0 _at! T0 dsc ` help vx_ _i T0 ` tmp.csy >F ` tmp.csy F> ,/ rho T0 ` ToDo wheresym T0 1 _at 4 _at ` =I :?? text> "bl =c +/ |>| 22127 t0 100 _take | ======================== | Wed.Jan,20200122 | ======================== | ` ;; Help ` =I :?? 1234 not not negate _i T0 dsc T0 1 _at rho' ,L flip T0 255 _iota i1 +i i>c 11 _iota dup *i ` ref Words res> lfVM >t0> rho t0 ' drb 'm ' :?? 'm ` refs- :?? text> blVM rho ` cut :?? | ======================== | Tue.Jan,20200128 | ======================== | ` _iota ' :?? ' See ,L ' xeq 'R ` _iota :?? ` ./CoSy/CoSy.f F> nlVM >t1> s" : _iota " conn t1 650 _i 40 _iota +i at | ======================== | Wed.Jan,20200129 | ======================== | T0 dsc >t0> T0 t0 { v@ rho } 'R text> rho R dsc sym>str>' R 1 _at ,L lst>str CoSyDir ` T1.csy cL >t0> >F | renamed to CoSy w Dname symbols replaced w simple strings . Now can get rid of all syms t0 startJob CoSyDir dir | 0022 | | ======================== | Thu.Jan,20200130 | ======================== | ` ./CoSy/K_verbs.csv F> nlVM ' htVM 'm >t0> t0 t0 ' dsc 'm ` nest conn at : 0 >T0> | "Date","Amount","Credit or Debit" , "Check Number","Description" T0 ` " =c ' I->M eachMir ' <> scanI 0T1> | 0142 | | 20200201.1332 | defining non-float ' convo | still not happy w need to return naked | T1 i( -1 1 )i { *i +/ >_ } convo | differentiation T1 i( 1 1 )i { *i ['] maxi ./ >_ } convo T1 dsc swap cL 0=i | 1453 | i( 1 1 )i ' maxi ./ : I>M ['] I->M eachMir ; ` i>m ?? text> daylncut >t0> rho t0 ` literal con reverse ` s>iv ?? T0 ` " =c ' <> scanI ' <> scanI 0iv ; tst | ======================== | Sun.Feb,20200202 | ======================== | | 1420 | Cleaning up & consolidating quote masking . see 20200130 . res> >T0> |>| "Date","Amount","Credit , Debit" , "Check Number","Description" : I>M ['] I->M eachMir ; | & inverse added to CoSy.f : qmsk I>M ['] <> scanI 0a> 1 1 2 s>iv { *i ['] maxi ./ >_ } convo a> dsc swap cL ; T0 ` " =c qmsk T0 R0 fmt "bl zic ,L ssr ,L | test : "msk ` " =c qmsk ; | 2152 | ` ./src/reva.f nlVM ` compiling? con | 2318 | | ======================== | Mon.Feb,20200203 | ======================== | {{ 1 if s" true " else s" false " then }} 1 [IF] s" true " [ELSE] s" false " [THEN] | ======================== | Tue.Feb,20200204 | ======================== | | added ' qmsk to ./CoSy/Furniture.f | 1606 | | ======================== | Wed.Feb,20200205 | ======================== | Xwords { 0 _at "bl prt>f "bl cL 15 _fill } 'm >t0> t0 Xwords { 1 _at blVM rho fmt } 'm ' cL 'd Xwords { 1 _at blVM rho } 'm ,/ +/ ` fill :?? res> lfVM t0 cL >t1> rho ` con Words res> lfVM >t0> rho t0 blMV ` prt Words blMV ` ./CoSy/Job.f F> ` script0 -> i( 0 0 )i `( sys Tui posXY )` Dv! | Given a ` text log containing ledger entries in the form : | (' 20191207.1045 _f ` PSBT ` ATT 52.81 _f s" acnt# 2650193386 5556667777 " ') | extracts & cleans all such lines : ledgerlns lfVM s" (' " con ['] dlb 'm s" (' " in { s" ')" prt<=l } 'm ; zic ` .\CoSy\AcntFns.f >F | created new ` AcntFns script & added ` .\CoSy\AcntFns.f F> | ======================== | Sat.Feb,20200208 | ======================== | | 1144 | https://www.facebook.com/groups/2225595150855239/ ` dot Words CoSyDir ` /b cL dir nlVM ` y201 con text> CoSyDir ` y2019.txt cL >F CoSyDir ` y2019.txt cL >t0> F> >t1> t0 F> ` C:/CoSyWeb/4thCoSy/Code/CoSy/y2019.txt />\ >F | belatedly saved y2019 text & cleaned out from current | 1623 | ` C:\CoSyWeb\4thCoSy\Code\CoSy\ dir nlVM dae >t0> rho CoSyDir dir nlVM dae >t1> rho t0 t0 { "bl prt>l } 'm t1 { "bl prt>l } 'm memb & at t1 t0 { "bl prt>l } 'm t1 { "bl prt>l } 'm swap memb & at ` membv :?? | ======================== | Sun.Feb,20200209 | ======================== | 20200210.2004 | ` parsews ?? | takes next word input and creates non-blank string | 20190304 macro : ` p: parsews _str compiling? if refs+> literal, then ; forth : ` compiling? if parsews _str ; ` asdf s" ` " :?? ` compiling? ?? : `t parsews _str ; : `t parsews compiling _str ; `t asdf Xwords ,/ ` comp conn >t0> | | ======================== | Mon.Feb,20200210 | ======================== | | changed ' i@ in 'L 'R 'm to ' _at to eliminate long standing problem w ints | ' 'd is defined much more recently w ' eachm and cleaner . i( 17 19 41 45 )i i( -1 0 )i { swap _i swap +i } 'L i( 17 19 41 45 )i i( -1 0 )i { +i } 'R | list words defined on either side of 'd zic Words .. ` 'd conn 10 _iota -5 _i +i ' +i 'L ,/ at Xwords ,/ ` comp conn i( -1 0 )i ' +i 'L ,/ Xwords ,/ .. ` comp conn i( -1 0 )i ' +i 'L ,/ at i( 17 19 41 45 )i i( -1 0 )i { d swap _i cL } 'R zic Help `( classes flow-control program-control strings )` ' Help 'm `( 'constant 'defer 'does 'forth 'inline 'macro 'macront 'notail 'variable forth inline macro mnotail notail without~ with~ )` ' Help 'm ` _n ?? | : _n nil ; | _n 3 _take | ======================== | Tue.Feb,20200211 | ======================== | ` i@ ?? | need to replace in most places w ' _at | s" _n " ?? | _n $. cr nil DMP | | alias: _n nil | tried to do something profound . doesn't work | 1531 | ` p: ?? macro : t` parsews compiling? if (") then p: _str ; forth : `t parsews _str ; macro : `t parsews compiling? if ." cmp " (") $.s then cr $.s _str ; forth macro : `t parsews _str ; forth : ` p: parsews compiling? if refs+> literal, then ; s" ` " ?? | ======================== | Wed.Feb,20200212 | ======================== | | 1501 | : tst " qwer " .s (") .s cr ; ` (") ?? | looking at the date stamp in the result , I realized | I had essentially solved it ~ 3 years ago implementing ' s" | : "_ '" parse compiling? if (") ;then "" ; | 20180306 ` C:/4thCoSy/CoSy/y2018.txt F> daylncut ` 20180306 con 1 _cut | | \/ | added to ./CoSy/Derived.f misc fns | \/ | | convenient for seeing items around a found item . : _-+ _i : -+ .. 2 _i *i iota swap -i ['] +i 'L ; i( 17 19 41 45 )i 5 _-+ macro : `_ parsews compiling? if (") ;then "" ; : `t p: `_ p: _str ; forth | works . Updating def of ` ` . : tstt ` asdf reverse ; | 1807 | uploaded to CoSy.f by strings | 1902 | | Charles Moore's Forth is the only language , because of its minimalist path | from the chip to an interpretive environment to make the distinction between | interpretation and comilation so explict and controlable . | I am only now getting a handle on it . | Thu.Feb,20200213.1124 | | ======================== | Fri.Feb,20200214 | ======================== | s" parse " Help ` ./src/revacore.asm | Doing something I should have done way back if I had confidently known enough | I see no point in not making ` ' state smart since ['] is the worst source of | gotchas . macro : ' compiling? if p: ['] ;then prior ' ; forth : tst 6 _iota 6 _iota ' +i 'L ; tst 6 _iota 6 _iota ' +i 'L DMP xeq ` prior Help ` tst See ` compiling? See t1 lfVM `( [IF] )` conn ` insert-state ?? | ======================== | Tue.Feb,20200218 | ======================== | ` ' :?? : `_ ` "bl cL ; `_ asf >t0> reverse | ======================== | Wed.Feb,20200219 | ======================== | Updated | http://cosy.com/4thCoSy/ | distro | 1722 | `D@ ASCIIbrowser 32 255 2_i thru i>c >t0> rho t0 enc' 4 _partition ' ,/ 'm | ======================== | Fri.Feb,20200221 | ======================== | ` ./lib/math/floats ` fnegate ?? | `( f. fv. TypeFv )` ForthVerb beginning vocab commented out ` f. ?? ` (f.) ?? -2000.3398 _f 10. _f 4. _f ^f >a> *f .5 _f +f floorf a> %f | 2113 | encountered problem w eg: -2000.3398 outputing as -2000.3397 | appears the only soln is actual rounding . | translated from K | { ( _ ( x * y ) + .5 ) % x : 10 ^ x } | | ( x y -- round x to y places ) : rnd 10. _f swap ^f >a> *f .5 _f +f floorf a> %f ; -2000.3398 _f f( 3 4. 5 )f rnd |>| -2000.3398 : F. ( fv -- ) dup i# 0 ?do dup i if@ f. loop ref0del ; ` >a> ?? : tst 1. _f .5 _f +f ; tst 1 s>f _f ` round ?? -2000.3398 _f | Sat.Feb,20200222 | | ======================== | Tue.Feb,20200225 | ======================== | | semi-standardizing on use of caps to indicate CoSy level version of word s" eval " ?? ,/ ,/ lfVM ` ^eval ncon ' ,/ 'm rho | ` `_ ?? | deleted \/ from CoSy.f | " " (sym) refs+> constant `_ | empty symbol . Raises issue of notation of empty symbol don't have in K . ` `_ ?? | ======================== | Thu.Feb,20200227 | ======================== | ` swap See 58. 365.25 2_f *f |>| 21184.5000 58. 365.25 f* _f |>| 21184.5000 | Changing name of COSYSTARTFILE . Irritated me long enough . ` COSYSTARTFILE ?? >t0> ' dsc 'm blMV `( ./CoSy/CoSy.f ./CoSy/Derived.f ./CoSy/Tui.f )` >t0> t0 { >a> F> a> ` .bk cL >F nil } 'm | remarkably simple to back up files . t0 { F> ` COSYSTARTFILE ss } 'm | realized too many dependencies to spend time : CoSyStartFile COSYSTARTFILE ; | this really should be the name | added to CoSy.f | ======================== | Fri.Feb,20200228 | ======================== | ` ^eval ?? | changing to Eval . Just aliasing for now . ` eval ?? | really need +\ : +\ dup Type@ TypeI =if ' + scanI ;then ' f+ scanf ; ` ledgerlns :?? | ======================== | Sat.Feb,20200229 | ======================== | ` saveTSclone ?? ` script0 -> | 20200301.1453 | removing . I see no need . | | Tue.Aug,20160823 | == | | : NewJob> dup+ : NewJob s" " swap Dv! ; : `f parsews >>fl drop _f ; | ======================== | Tue.Mar,20200303 | ======================== | : Monthnms 12 _iota { >_ monthname _str } 'm ; | adding to ./CoSy/Furniture.f | Motivated by a friend's BD . Been posting bytes of CoSy to FB friend's BDs . s" March 3, 1961" blVM >t0> (' s" 3 _take Monthnms swap conn i1 +i " s" ` , zic ,L ssr Eval _i " s" Eval _i " ') >t1> t0 t1 ' Eval 'd | this is pretty profound . apply each of the 3 computaions to the corresponding item R0 ,/ lst>stk_ dtpk _i |>| 19610303 R0 20200303 _i Daysdif |>| 21550 | ======================== | Thu.Mar,20200305 | ======================== | | https://optima-systems.co.uk/palindromes-in-apl-python-and-other-programming-languages/ : palindrome .. reverse match ; `( no yes )` ` 20200202 palindrome at ` palindrome See | ======================== | Fri.Mar,20200306 | ======================== | | em> SV-FIG ` csv>DT :?? ` +\ See : +\ dup Type@ TypeI =if ' + scanI ;then ' f+ scanf ; | need | 20200228 : tst ' + _i ; tst 10 _iota i>f >t0> t0 +\ | ' f+ scanf s" ' " :?? | bizarrely in Tui.f . Moving to Util.f . oops : std def needed ' ` -cb: ?? zic Words s" '" conn 5 _-+ | ' at 'm macro : ' compiling? if p: ['] ;then prior ' ; forth ` ./lib/ui/gui | F> nlVM ` ' con t1 nlVM ` -cb: con t1 nlVM ` action: con | ======================== | Sat.Mar,20200307 | ======================== | ." Hello World " | comparison w ` Python . https://twitter.com/CoherentSystems/status/1236797232072003585 text> daylncut ` td> con reverse ` braket :?? ` csv>lst :?? 4.6 _f 2. .5 2_f ^f %f Xwords >t0> rho |>| 23 t0 { 1 _at rho } 'm ,/ >t1> R0 +/ | ======================== | Tue.Mar,20200310 | ======================== | https://www.nytimes.com/interactive/2020/world/coronavirus-maps.html res> lfVM dae >T0> rho T0 i( 109 2 )i take ' ,/ 'm { c>i nub } 'm | unique chars as ints T0 109 _partition >t0> : _nths --bab / swap 2 s>iv ; T0 T0 rho >_ 2 _nths take >t0> t0 { 1 _at "ht zic ,L ssr ` , zic ,L ssr } 'm >t0> t0 { Eval 2_i cL i>f } 'm >t1> t1 { reverse ' %f ./ } 'm ,/ t1 flip { ,/ +/ } 'm ,/ reverse ' %f ./ |>| 0.0351 | 1506 | | posted as 2019 COVID statsDemo | https://youtu.be/INuBPa15GAM | ======================== | Wed.Mar,20200311 | ======================== | | 1129 | Xwords flip 1 _at ,/ rho .0004 10000. 2_f *f | ======================== | Sat.Mar,20200314 | ======================== | | https://www.facebook.com/groups/2225595150855239/permalink/2807911852623563/ s" >t0 f( 4 2 1 1 )f f( 1 4 5 6 )f t0 8. _f *f +f %f ' -f ./ 16. _f t0 ^f %f " >t1 14 _iota i>f { t1 Eval } 'm ,/ +\ fmt$ ` | 14 _iota 3 _i fmtnI ' cL 'R { "bl cL } 'm R0 ' cL 'd : fmtnI >_ >aux { >_ aux@ (.r) _str } 'm auxdrop ; | 35 _iota i>f { t1 Eval } 'm ,/ +\ fmt$ ' cL 'd ` lst Words | ' :?? 'm ` R0 ,/ +\ |>| 3.1416 ` fmt Words ` I con ' :?? 'm R0 fmt$ 5 _iota 3 _i fmtnI s" f( 4 2 1 1 )f f( 1 4 5 6 )f t0 +f 8. _f *f %f +/ 16. _f t0 ^f %f " >t1 ` fmtnI :?? ` (.r) Help 16. 12. 2_f ^f >t0> fmt$ ,/ |>| 281474976710656.000000000000000000 f1. t0 %f t0 1%f cL fmt$ blMV |>| 0.000000000000003552 0.000000000000003552 ` 00000000000000 rho |>| 14 f1. t0 %f t0 1%f cL 10. 14. 2_f ^f *f fmt$ blMV |>| ` 1/f :?? : 1/f inline{ d9 e8 de f1 } ;inline | fld1 fdivrp ` ./CoSy/math.f F> Eval f( 22 355 )f f( 7 113 )f %f pi cL fmt$ | ======================== | Sun.Mar,20200315 | ======================== | ` >t0> :?? ` ?? ` create Help res> blVM ' Help 'm ` mdy Words : m/d/y>ts ` / "bl ,L ssr Eval --bac dtpk _i ; ` 2/18/2020 m/d/y>ts |>| 20200218 s/" : m/d/y>ts ` / \"bl ,L ssr Eval --bac dtpk _i ; " blVM dae ' :?? 'm i( 1 0 2 )i at blMV Eval dtpk _i ` gcd ?? >t0> t0 i( -4 -2 -2 )i { } 'd t0 dsc | 4 _i fmtnI ` (.r) ` fmtnI ?? ` rot Words | ======================== | Tue.Mar,20200317 | ======================== | Volume 19, Issue 2Dec. 1988 | https://dl.acm.org/doi/10.1145/379354.379368 http://www.cosy.com/y20/JackRudd1988quote.jpg | ======================== | Wed.Mar,20200318 | ======================== | ` venn :?? | ======================== | Fri.Mar,20200320 | ======================== | https://covidtracking.com/data/ https://dailycaller.com/2020/03/19/coronavirus-map-united-states-deaths-cases/ COVID by state res> >T0> rho T0 ` C:\CoSyWeb\y20\COVID_USAstates20200320 >F https://www.powerlineblog.com/archives/2020/03/stop-the-insane-overreaction.php In the last 21 days, approximately 162,000 Americans have died. Of that number, 150 were killed by the Wuhan virus. | 2201 | Kompozer is adding tons of unknown tags . ` C:/CoSyWeb/CoSy/StartingPoint.html >t0> F> >t1> rho T0 t1 ,L ' lfVM 'm lst>stk venn | Only in CoSy | t1 ` T1> T1 1 _cut >t0> { dup ` > where i1 +i take } 'm | ======================== | Sat.Mar,20200321 | ======================== | | https://www.cebm.net/global-covid-19-case-fatality-rates/ T1 1 _cut >t0> { dup ` > where i1 +i take } 'm ` C:/CoSyWeb/CoSy/StartingPoint.html F> >T0> rho T0 ` t0> T0 i0 t0 ,I cut 1 _cut { ` > where i1 +i } 'm ,/ >t1> rho | added ' t2 and ' t3 variables to ' t0 and ' t1 | 1435 | t0 t1 ,L flip { ,/ lst>stk iota +i } 'm ,/ >t2> T0 t2 dvi ` ssd >t3> rho t3 ` C:/CoSyWeb/CoSy/StartingPoint.html >F ` zic ?? T1 1 _cut { lfVM rho } 'm ` t Words T1 dsc DMP | ======================== | Sun.Mar,20200322 | ======================== | ` asdf 5 _i iota ' take 'R | ======================== | Mon.Mar,20200323 | ======================== | s"
" blVM reverse blMV ` < ` | \/ | ForthWin words res> >t0> rho t0 >T0> T0 "lf "bl ,L ssr blVM dae >t0> rho t0 ` loc con | ======================== | Thu.Mar,20200326 | ======================== | | Motivated by the creation of $2T additional debt countered by No work . https://taxfoundation.org/summary-latest-federal-income-tax-data-2018-update/ $10.2 trillion in adjusted gross income (AGI) on 140.9 million tax returns in 2016. 10.2e9 _f 140.9e6 _f %f |>| 72.3918 | Adjusted ! GI | incredibly inefficient 119730128. _f 2.63 _f *f |>| 314890236.64 | households persons%house ` script0 -> ` "msk ?? | ======================== | Fri.Mar,20200327 | ======================== | ` ./CoSy/math.f F> | Eval tau `( Fact Planet#s Earth )` Dv@ : tau pi 2. _f *f ; tau |>| 6.2832 6.38e6 _f tau %f |>| 1015408.54 : fib .. -2 _take +/ cL ; i( 1 1 )i 20 times fib >t0> t0 i( 9 10 )i ' _modi 'R 10 _i _modi | ======================== | Sat.Mar,20200328 | ======================== | ` "msk ?? : qmsk I>M ' <> scanI 0a> 1 1 2 s>iv { *i ' maxi ./ >_ } convo a> dsc swap cL ; | ======================== | Sun.Mar,20200329 | ======================== | ` C:/4thCoSy/Physics/general.f | problem found in ' "msk on no : =c over i# intVecInit >aux ssc dup i# 0if refs- aux> ;then i1 aux@ --bca at! aux> ; ` at! :?? i1 10 intVecInit >t0> ev at! ` can't ?? | going to see if I can just have ' ix return empty for empty rather than throw error . | 1640 | nope . that won't work must do it at the ' at level . ` ix :?? | 1758 | i1 10 intVecInit >t0> ev at! t0 i( 2 5 )i reverse t0 i( 2 4 )i at! t0 3 _i t0 ev at! t0 t0 ` =c :?? ` 2sc ?? CoSyDir ` Furniture.f cL F> 12 _iota 2sComplement R0 >t0> F> str>lst ` text v@ daylncut >t1> t1 ` 0329 con | ======================== | Mon.Mar,20200330 | ======================== | ` .s ?? ` ./CoSy/CoSy.f ` ./CoSy/Furniture.f F> s" : " tokcut 1 _cut >t0> rho t0 ` ; con { ` ; prt<=f } 'm ` .s con | select just definitions | ======================== | Thu.Apr,20200402 | ======================== | 230. 220. f- .5 f* _f 230. 220. .5 f* f- _f res> >t0> lfVM { ` ? prt<=f } 'm | ======================== | Mon.Apr,20200406 | ======================== | s" arg must be integer" ?? | ======================== | Tue.Apr,20200407 | ======================== | ` +-splt :?? : +-spltf ( fv -- v ) 1p> dup f-1 >i >a> & at R@ r@ 0=i & at ,L r> refs- 1P> ; ` C:\CoSyBob\acnts\y20\Acnts.csy F> str>lst `( WP Jared LedgerLst )` v@ >t2> t2 3 _at ,/ f-1. >f zic Words ` fill con t2 { ' fmt 'm } 'm >t3> : blpad { "bl cL } 'm : pad 1p> dup rho' ,/ ' maxi ./ ' fill 'L 1P> ; t3 4 _at >T0> T0 pad rho' ` blpad See | { "bl cL } 'm .. rho' ,/ ' maxi ./ ' fill 'L R0 rho' t3 4 _at { -1 _at } 'm { ' fmt 'm "ht MV } 'm ` >t0> :?? | ======================== | Thu.Apr,20200409 | ======================== | ` take :?? ` prt >T0> T0 | Eval ` ` :?? 8.1e6 _f .5 _f ^f | ======================== | Fri.Apr,20200417 | ======================== | ` asdflkwerfas ` s =c ` asdflkwerfas ` z =c | Type@ _i | ' =I each ` =c :?? : =c ['] ' =I fntype _i ` intFns ?? s" can't index empty" ?? ` ix ?? s" each " :?? ` =I :?? ` 2s See | ======================== | Sat.Apr,20200418 | ======================== | { */ 1 + ! x } : fact iota i1 +i ; 10 fact | _iota { 1+ } eachM : `_ p: ` "bl cL ; | append blank to make true blank delimited word . | after bombs & stupidities , added to Furniture.f | 20200420.1908 | | ======================== | Sun.Apr,20200419 | ======================== | | 0811 | | 1019 | w : 208.4 | 1141 | C:/4thCoSy/CoSy|CoSy200418.f|CoSy.f200227|CoSy.f| t0 ` | VM dae >t0> t0 dsc ` / cL t0 1 _cut ' cL 'R >t0> `( C:/4thCoSy/CoSy/CoSy200418.f C:/4thCoSy/CoSy/CoSy.f200227 )` { F> lfVM } 'm R0 >t1> rho' t1 lst>stk ` venn :??| | damn cat stood on UPS power switch & killed machine | 2122 | | ======================== | Mon.Apr,20200420 | ======================== | `_ each :?? ` =c :?? t1 lfVM ` DMP con | ` DMP con `_ =I :?? ` ./CoSy/CoSy.f_ >t0> F> rho | Dv@ ` ./CoSy/CoSy.f >F | 1958 | finally got the trivial ' =c sorted out vs ' =tok which still fails on empties : =c ['] =I each ; `( =tok ssc search )` ' :?? 'm ` maxi :?? ` toksplt :?? ", | ======================== | Tue.Apr,20200421 | ======================== | text> lfVM ` csv> con | ======================== | Fri.Apr,20200424 | ======================== | ` ./CoSy/CoSy.f F> >t0> rho 546 t0 ` : ss t0 `_ : ss rho | venn >t1> rho t0 lfVM ` | ======================== | Sat.Apr,20200425 | ======================== | | demo w Asa https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2364346360532051/?comment_id=2364370300529657&reply_comment_id=2368290593470961 100 5 / . 20 20 _iota 8 _i *i >t0> t0 i( 1 0 -1 )i +i 1 8 15 25 32 39 49 56 63 73 80 87 97 104 111 121 128 135 145 152 | ======================== | Sun.Apr,20200426 | ======================== | Re: an exercise in archæological algorithmic analysis |answer to Roger Hui https://forums.dyalog.com/viewtopic.php?f=30&t=1623&p=6419#p6419 res> >T0> T0 `D@ ALPHabet "lf "bl cL cL T0 membv (' "lf "bl ') ssr lower blVM dae >t0> rho t0 nub >t1> rho t1 t0 { ' strmatch 'L ,/ & } 'R >t2> : grp 1p> nub R@ swap { ' match 'L ,/ & } 'R 1P> ; t0 grp : nubgrp 1p> nub >a> R@ swap { ' match 'L ,/ & } 'R a> swap ,L 1P> ; t0 nubgrp flip t0 t0 grp { rho fmt "ht swap cL } 'm ' cL 'd ,L flip t0 t2 ' at 'R ' blMV 'm ` nub :?? ` where :?? t0 { t1 ' match 'L ,/ & enc } 'm `_ match :?? ` match ?? : grpib 1p> nub R@ ,/ ['] =i 'L 1P> ; | group integer bool dup i# _iota swap ' cl 'D ` nub ?? T0 lfVM blMV | `D@ ALPHabet "bl cL T0 membv T0 c>i >t0> 32 _i t0> F> >t1> res> >t1> t0 >F t1 res> >t0> lfVM rho' | ======================== | Sat.May,20200502 | ======================== | 2 base ! 1 1 + . 1010 base ! | 1406 | Really time to implement ' sort . | searching archives | See also section in ` state | ` C:/4thCoSy/CoSy|y2015.txt|y2016.txt|y2017.txt|y2018.txt|y2019.txt| >t0> t0 fullPaths t0 { F> daylncut s" sort" con } 'm | Quite a history ` script.sort >t0> Dv@ >t1> ` C:/4thCoSy/CoSy/y2015.txt F> >t1> t1 rUpdate | ======================== | Mon.May,20200504 | ======================== | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2374533782846642/ base @ >aux 2 base ! 01000111 01100101 01100101 01101011 aux> base ! 4 intVec R0 >t0> |>| 107 101 101 71 t0 i>c reverse |>| Geek | ======================== | Wed.May,20200506 | ======================== | 5 _iota 1 _i +i 2020 1934 - _i i>f 365.25 _f *f `( _i iota )` ' :?? 'm ` _iota :?? ` _i :?? ` asdf s" asdf" match |>| 1 | 1951 | | Anotated ' _iota | 1st use of just created | \/ | http://www.cosy.com/CoSy/AskMeAnything.html | 2354 | | ======================== | Thu.May,20200507 | ======================== | | BAA Zoom | 1033 | ` iota ?? ` apv ?? | ======================== | Sun.May,20200510 | ======================== | ` Type ?? ` Type See : Type @ _i ; i1 Type | ======================== | Sat.May,20200516 | ======================== | | ======================== | Sun.May,20200517 | ======================== | ` C:/CoSyBob/CoSy/y2019.txt F> daylncut 1 _cut >T0> ` C:/CoSyBob/CoSy/CoSy.csy F> str>lst ` text v@ daylncut 1 _cut T0 swap cL >T0> T0 s" w : " con >T0> rho T0 { lfVM >t0> 1 _at t0 s" w : " con cL } 'm >t0> t0 { dsc daylnDS ` , prt>f Eval _i } 'm >t1> t0 { 1 _at s" w : " prt>f "bl cL "bl prtt2> t1 { >_ ymd>fixed _i } 'm ,/ >t1> t1 t1 dsc -i ' fmtI 'm ,/ { "bl cL } 'm t2 ' cL 'd R0 lfMV ` .\tmp.csv >F t2 rho' | take { Eval _f } 'm ,/ t2 200 _take Eval _f t1 { >_ fixed>ymd _i } 'm t2 ,L flip >t3> t3 350 500 2_i thru at ` daysd ?? ` ymd>fixed :?? ` date ?? ` .\ dir | ======================== | Thu.May,20200521 | ======================== | `( ark morse )` Dv@ >t0> rho t0 0 _at t0 1 _at s" COME HERE WATSON " ' where 'R ,/ at at t0 1 _at "bl where { t0 1 _at swap where t0 dsc swap at } 'm ` where :?? ` flip ?? | ======================== | Sun.May,20200524 | ======================== | Pi 4. _f *f sqrtf ` _nth ?? ` C:/4thCoSy/CoSy/math.f F> Eval 6 2 _rand +/ 10 _iota { drop 6 2 _rand +/ } 'm ,/ : diceSum 6 2 _rand +/ ; diceSum (' 20 times diceSum ') ,/ ` times See ` rand Help ` lib/util/misc F> | ======================== | Tue.May,20200526 | ======================== | | ======================== | Wed.May,20200527 | ======================== | `_ fmt :?? text> daylncut ` fill con | ======================== | Thu.May,20200528 | ======================== | | updated | : \>/ ` \ ` / ,L ssr ; | to use ` instead of s" " | s" / \ " \>/ | \/ Added to ` ./CoSy/Furniture.f \/ | : blpad { "bl cL } 'm ; : pad 1p> dup rho' ,/ ' maxi ./ ' fill 'L 1P> ; | 1354 | ` rho :?? ` count Help | ======================== | Sat.May,20200530 | ======================== | `( script0 examples script.sort )` 2 _at Dv@ | spliting ` WorkLog from distro ` CoSy.csy | 1434 | R lst>str CoSyDir ` WorkLog.csy cL >F CoSyDir ` WorkLog cL | 1504 | ` \4thCoSy\CoSy\WorkLog.csy startJob | We'll see how this works out . ` script.sort >t0> Dv@ >t1> | 1529 | t0 Dv@ Eval : upper 1p> van strupr _str 1P> ; | surprised didn't have fixxed long ago . CoSy.f forgetsort t0 Dv@ https://twitter.com/CoherentSystems/status/1097259435687317504 1.03 _f 10 _take ' f* scanf ` scan ?? ` 1659 2020 1959 - _i 61. 365.25 f* _f | ======================== | Tue.Jun,20200602 | ======================== | | in | ` ./CoSy/Furniture.f | modernized \/ | | : WSb ( str -- bool_of_WhiteSpace ) { 33 ['] cL across ; : WSb ( str -- bool_of_WhiteSpace ) 33 _i ' t0> t0 WScut ` * con | ======================== | Wed.Jun,20200603 | ======================== | ` startJob ?? | split auto exit w ` startJobk persistant | working on | http://www.cosy.com/CoSy/y20/NL200525.html `( Type Count Refs Data... )` ' See 'm ` Type :?? | deleting from CoSy.f | ` Type@^ ?? ` simple?^ ?? | rendant bad names t0 `( Type Count Refs )` ' Eval 'R | Defined in CoSy.f words to match comment in NL | ======================== | Thu.Jun,20200604 | ======================== | | split distro & WorkLog ` ./CoSy/math.f F> >T0> Eval T0 nlVM ` rand con 10000 _i 10000 _i rand i>f avgf T0 R0 2 _i *i ` avg Words | ======================== | Fri.Jun,20200605 | ======================== | ` slurp ?? | ======================== | Sat.Jun,20200606 | ======================== | s" C:/CoSy/Mail/Local Folders/Archives.sbd/Previous.sbd/2017" F> >t0> rho | 64043978 | test can handle at least 60MB file | arkived bunch of backup file from /4thCoSy/ to C:\ark\ark200606 | 1707 | | 1718 | inet down . working on ` sort . ` ./CoSy/math.f F> Eval | needs alg/hsort ` hsort Help ` C:/4thCoSy/lib/alg/hsort F> rUpdate 100 20 _rand >T0> T0 |>| 12 65 8 60 33 30 40 8 24 31 T0 van cells/ hsort T0 100 20 2_i rand >t0> t0 van hsort t1 lfMV lfMV rUpdate | ======================== | Sun.Jun,20200607 | ======================== | | 20200714.1317 | `( asdf asdg )` >t0> ' c>i 'm : bswap asm{ bswap eax } ; | convert x86 little-endian to big so char strings ` bswap See | ?? ` asdf vbody @ _i ` asdg vbody @ _i cL fmtI$ ( 66647361 67647361 ) ` asdf vbody @ bswap _i ` asdg vbody @ bswap _i cL fmtI$ | can be factored to : ` asdf ` asdg { vbody @ bswap _i } on2 cL fmtI$ ( 61736466 61736467 ) | the above could perhaps speed ` strCmpr ` asdf ` asdg swap strCmpr rShow ` script.sort >t0> Dv@ >t1> rUpdate t1 Eval ` ./CoSy/math.f F> Eval rGet >t1> t0 Dv! 100 20 _rand >T0> T0 | hsorti Dnames 6 _take >T0> { oo cr strCmpr >_ 0 < } is compare T0 0 ix @ T0 1 ix @ strCmpr >_ _i T0 0 ix @ T0 1 ix @ compare _i ` compare See T0 sort. T0 hsorti T0 ilst >T1> T1 0 _at 1 _at forgetsort | ` C:/4thCoSy/CoSy|y2015.txt|y2016.txt|y2017.txt|y2018.txt|y2019.txt| >t0> | t0 fullPaths >t0> | t0 { F> daylncut ` hsort con } 'm dae >t1> | finding all days in files containg phrase | t1 lfMV lfMV rUpdate | ======================== | Mon.Jun,20200608 | ======================== | | 1105 | somewhat consolidated work on ' sort | 20200619.1653 20200621.1448 | | 20200706.0810 | | 20200709.2127 | ` ./CoSy/math.f F> Eval 100 20 _rand >T0> | ` script.sort >t0> Dv@ >t1> rUpdate | t1 lf>nl ` ./CoSy/sort.f >F | ` script.sort Dvdel | deleted from R | 20200608.1950 | ` ./CoSy/sort.f >Fn> F> >Ft> Eval forgetsort ` compare See : sorti ' < is compare rep_ dup van cells/ hsort ; 10 _iota reverse sorti zic Words #' ,/ ( sorti ) reverse grpix : sortstr .. { strCmpr >_ 0 < } is compare van cells/ hsort ; Ft ` sortstr See `_ > :?? ` > See ` strCmpr_ See : strCmpr_ strCmpr >_ 0 < ; | version for use in ' hsort : sortstr .. ' strCmpr_ is compare rep_ dup van cells/ hsort ; Dnames sortstr >t0> | reverse ` C:/CoSyBob/BAA200617.ml F> lfVM >t3> t3 sortstr >t0> rho t0 R0 reverse T0 sortstr ` strCmpr See zic Words 100 _take >T0> T0 sortstr >t0> t0 ' lower 'm sortstr res> rUpdate T0 ` help -> T0 0 ix T0 1 ix compare _i T0 dae >T0> # T0 hsorti works T0 { ` < prt>=f } 'm >t0> T0 sortstr 19 _iota reverse hsorti | 1608 | | 1929 | ` strCmpr :?? Dnames >T0> T0 0 ix T0 1 ix ' @ on2 ,L | swap strCmpr ` strCmpr_ See T0 0 ix T0 1 ix swap strCmpr_ _i ` compare See ` rep_ ?? : sortstr [ { strCmpr >_ 0 < } ] literal is compare rep_ dup van cells/ hsort ; ` sortstr See : tst { strCmpr >_ 0 < } ; tst T0 2 _take lst>stk strCmpr_ _i Dnames sortstr | 20200608.2021 | works T0 10 _take sortstr zic Help ` ilst :?? T0 ilst ' reverse 'm >T1> : igrade { dsc >_ } on2 > ; T1 0 ix @ T1 1 ix @ swap igrade _i ' igrade is compare ` compare See T1 >t2> t2 hsorti T1 ` hsorti See ` ./CoSy/CoSy.f Dvdel forgetsort | 2250 | ` startJob :?? | ======================== | Sat.Jun,20200613 | ======================== | `( swap @ )` ' See 'm Xwords { 1 _at blVM } 'm ,/ ` xch con >t0> t0 ' Help 'm ` xchg2 `( Help See )` ' Eval 'R ` rShow :?? `( setWdo showWdo )` ' :?? 'm ` IupShowX ` CoSy.f operators | ======================== | Sun.Jun,20200614 | ======================== | | having errors where because COSYSTARTFILE renamed rather than copied to .bk | was | s" ren " COSYSTARTFILE cL "bl cL CoSyFile cL s" .bk" cL shell^ : bkuplast s" del " FullCoSyFile cL ` .bk cL shell^ s" copy " COSYSTARTFILE cL "bl cL FullCoSyFile cL s" .bk" cL shell^ ; ` 0cut ?? ` ,sv>lst :?? ` dl, ?? ` min :?? 1 _i 0 _i mini `( mini )` ' :?? 'm | ======================== | Mon.Jun,20200615 | ======================== | | 1051 | i( 1 2 3 )i i( 3 2 1 )i ,L { ' >_ on2 +i enc } ./ 12 _iota i( 3 4 )i take { ' >_ on2 +i enc } ./ : +ia { ['] + eachDir } aaply ; | add 2 integer vecs i( 1 2 3 )i i( 3 2 1 )i ,L ' +ia ./ 12 _iota i( 3 4 )i take ' +ia ./ ` _./ ?? s" help copy " shell> COSYSTARTFILE ` 'm :?? CoSyDir dir zic dir ` C:\CoSyBob\acnts\y20\Acnts.csy startJob : start s" start C:\\Windows\\System32\\cmd.exe /k " swap cL shell^ ; : startJob s" cosy@.bat " swap cL start ; ` C:\CoSyBob\acnts\y20\Acnts.csy startJobk | ======================== | Tue.Jun,20200616 | ======================== | s" [ " ?? ` CShelpFul :?? ` fm/mod Help ` mod Help ` ./lib/math/doubles F> `( sys CoSySource )` Dv@ ` ` Words ` braket ?? | ======================== | Wed.Jun,20200617 | ======================== | | 0754 | ` ssr ?? i( 0 1 2 3 4 )i i1 ' +i 'L | ======================== | Thu.Jun,20200618 | ======================== | | 0929 | ` facto ?? 10 _i iota .. ' *i 'R ` ,L ?? ` asdf ` chew cL ` WScut :?? ` swap See | ======================== | Fri.Jun,20200619 | ======================== | ` C:/CoSyBob/MailLists.csy F> str>lst ` T0 v@ >T0> T0 # ` ./CoSy/sort.f >t0> F> >t1> Eval : sortstr { strCmpr >_ 0 < } is compare rep_ dup van cells/ hsort ; | working @ 20200608 . T0 sortstr `( sys CoSySource )` Dv@ rho zic Words rho ` venn :?? ` i# See ` aaply See res> >t0> lfVM # t0 blVM # | ======================== | Sat.Jun,20200620 | ======================== | | ======================== | Sun.Jun,20200621 | ======================== | ` { `( Help See ?? )` ' Eval 'R ` { (' ' Help _i ' See _i ' ?? _i ') { >_ xeq } 'R : `__ p: ` "bl cL "bl swap cL ; | added to ` ./CoSy/Furniture.f { ." character " } value tst tst xeq | @ 20200608 , late | Solved final problem w sorts . needed ' rep not rep_ | | ======================== | Tue.Jun,20200623 | ======================== | `( E:\CoSyBob\y17 C:\CoSyBob\CoSy\y17 )` { ` /b cL dir lfVM } 'm >t0> t0 lst>stk venn | changed ` t4 ` t5 to ` Fn & ` Ft temps for use w ` rGet etc to ` CoSy.f | ` Fn See | ======================== | Fri.Jun,20200626 | ======================== | `__ ptr ?? ` create `( :?? See Help )` ' Eval 'R ` .\lib\ ` util\disasm cL | \debugger cL | F> ` -rot ?? res> >t0> blVM ' Help 'm ` ~ ?? { -1 _at lfVM ` ~ con } 'm ` ~ Words zic Help '( _i | I forget that raw chars are returned for chars prefixed w ' | Xwords ' dsc 'm Xwords { 1 _at blVM ` ~ con } 'm ' ~debug.disasm _i ` search :?? | 2 versions in ` reva.f in inline hex | wanted to compare . | ' search has a bug which causes it to bomb on leading "bl . | cleaned down to hex lists res> >T0> T0 lfVM >t0> .. rho' ,/ 0=i & 0cut >t0> t0 { blMV drb } 'm >t1> | flip ' blMV 'm >t1> | see they only differ by trailing junk . : tst s" hex i( 1 2 3 a b bb )i decimal " Eval ; tst | converting hex hex i( 1 2 3 a b f bb ff )i decimal prior search See ` search See ` prior :?? ` @litcomp :?? ` cell+@ :?? ` search :?? | s" prior search 256 disassemble " forth> ,L ` forth> ?? | ======================== | Sat.Jun,20200627 | ======================== | | Sun.Jun,20200628 | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2416444031988950/?__xts__[0]=68.ARBoYWou4KuksW9rCBWW-N_aVCi0hp1YXYDry-gTLxi2tiyGIgCh-TwGfu5o6bpn9GoVg5yftUVpRLxM3uT95WjDH-jAT67UCvpV5meTfzg3baBBxZtDtGZiwqckQrRSuVBf-gIsbvvAbYJy_VtkVebjGnrsdAKL1hrVuAAB4F4mYNJwUrDayxImwR6USFmgWk0zaTsvNFLbJXY6Gf0s3x9w0BWzxappEvWR8j_XQjxGmAAl2npFiu4hjbBQ3UwI185erSRbtefkOTV8JcKAs05pdzPFwJUOO4C7kvrs0uEE6E8YpBwIW3mO&__tn__=-R | 20200628.0919 | `( x xl y yl )` 2 _partition ' blMV 'm ` . i( 50 100 )i take >t0> 5000 _iota i( 50 100 )i take >t0> i( 10 4 )i i( 15 8 )i ,L >t1> : idxs 1p> dsc R@ 1 _at iota +i 1P> ; | adding to CoSy.f | 20200628.1715 | t1 ' idxs 'm >t1> t0 t1 0 _at at { t1 1 _at at } 'm 0 _i t0 t1 0 _at at >t2> | { t1 1 _at at! } 'm tt2 1 _at DMP ` _DMP> ?? ` at! :?? ` => ?? | ======================== | Mon.Jun,20200629 | ======================== | | Finding the intersection of intervals . : StrtCnt>range >a> dsc a> +/ i1 -i cL ; t1 ' StrtCnt>range 'm >t0 | i( 10 12 )i i( 15 8 )i ,L | ' StrtCnt>range 'm >t0> : intersect flip ' ,/ 'm >a> dsc ' maxi ./ a> 1 _at ' mini ./ cL ; t0 intersect | ======================== | Wed.Jul,20200701 | ======================== | | following SV-FIG mail discussion : All 42 ; ` All See 0063A17C 8D 76 FC lea esi,[esi-04] 0063A17F 89 06 mov [esi],eax 0063A181 B8 2A 00 00 00 mov eax,0000002A 0063A186 C3 ret All _i |>| 42 | -- 42 value All : Allvalue All ; ` Allvalue See 0063A18C 8D 76 FC lea esi,[esi-04] 0063A18F 89 06 mov [esi],eax 0063A191 B8 88 A1 63 00 mov eax,0063A188 0063A196 E9 B9 8D DC FF jmp 'constant Allvalue _i |>| 42 | -- : GetAll All ; GetAll : AllAlong GetAll ; ` AllAlong See 0063A11C E9 EB FF FF FF jmp GetAll AllAlong _i |>| 42 |-- | where ` 'constant See 00402F54 8B 00 mov eax,[eax] 00402F56 90 nop 00402F57 90 nop 00402F58 8B 1D 9C 50 40 00 mov ebx,[state] 00402F5E 09 DB or ebx,ebx 00402F60 0F 85 66 03 00 00 jnz literal, 00402F66 C3 ret ` { Help hex DD decimal . | ======================== | Thu.Jul,20200702 | ======================== | FizzBuzz: One Simple Interview Question | https://youtu.be/QPZ0pIK_wsc 101 _iota i( 3 5 )i { _modi 0=i } 'R flip >t0> `( fizz buzz )` t0 { ,/ & at ,/ } 'R >t1> t1 { # 0=i } 'm ,/ & >t2> t2 ' fmt 'm t1 t2 at! t1 | 0128 | | 20200703.0623 | | ======================== | Fri.Jul,20200703 | ======================== | | 1033 | : fizzbuzz ( sv iv pv ) { _modi 0=i } 'R flip { ,/ & at ,/ } 'R >a> { # 0=i } 'm ,/ & >a> ' fmt 'm a> a@ swap at! a> ; res> Eval `( fizz buzz )` 101 _iota i( 3 5 )i fizzbuzz | blMV `( fizz Y buzz )` 101 _iota i( 2 3 5 )i fizzbuzz blMV ` fizzbuzz See >t1> t1 { # 0=i } 'm ,/ & >t2> t2 ' fmt 'm t1 t2 at! t1 To show generality of these APL level algorithms , here is the above compiled into a word complete with stack comment : : fizzbuzz ( strs ints primes -- strs ) { _modi 0=i } 'R flip { ,/ & at ,/ } 'R >a> { # 0=i } 'm ,/ & >a> ' fmt 'm a> a@ swap at! a> ; Thus , as before : `( fizz buzz )` 101 _iota i( 3 5 )i fizzbuzz ( fizzbuzz 1 2 fizz 4 buzz ... But , now it will work on any number of phrases and primes : `( fizz Y buzz )` 101 _iota i( 2 3 5 )i fizzbuzz blMV fizzYbuzz 1 fizz Y fizz buzz fizzY 7 fizz Y fizzbuzz 11 fizzY 13 fizz Ybuzz fizz 17 fizzY 19 fizzbuzz Y fizz 23 fizzY buzz fizz Y fizz 29 fizzYbuzz 31... where I've ` raveled the list with blanks as delimiter . So let's see That being done in a non APL language . Note: an aspect of CoSy Xwords { 1 _at blVM } 'm blMV # |>| 2348 | ======================== | Sat.Jul,20200704 | ======================== | | added ' #' to Furniture.f ` .\CoSy\CoSy.f F> "lf ` : cL tokcut 1 _cut >t0> # t0 { s" : " tokcut } 'm #' ,/ 2 _i =i & t0 R0 at t0 { ` ; prt<=f } 'm >t0> t0 { 1 _cut blVM dae } 'm >t1> #' t1 ,/ >t2> # t2 nub >t3> # Ft lfVM s" | ==" con | ======================== | Mon.Jul,20200706 | ======================== | ` ./CoSy/sort.f >Fn> F> >Ft> Eval 10 _iota reverse sorti Dnames sortstr | ======================== | Tue.Jul,20200707 | ======================== | `( hello world )` ` -! ' cL 'd | ,/ T0 drb | ` : VM { 1 _cut "bl prt >T1> T1 lfVM https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2424186751214678/?comment_id=2424325081200845 i( 1 5 10 25 100 500 1000 2000 5000 10000 )i reverse >t0> 1678 _i >t1> i0 t0 # take >t3> t1 >_ t0 3 i@ /mod _i t3 cL >t3> t1 >_ t0 { >_ /mod _i } _./ t0 # iota { t0 swap at cL } 'm t3 3 i@ _i ` intvec :?? : makechange t0 i# intVecInit >a> i# 0do t0 i i@ /mod a@ i i! loop drop a> ; t0 i# intvecinit ` vecin ?? 1678 makechange >t1> t0 t1 & at t0 t0 t3 ,L flip ' ,/ 'm | 2310 | | ======================== | Wed.Jul,20200708 | ======================== | s" C:/CoSyBob/CoSy/CoSy - Copy (6).csy" F> >t0> # | str>lst >t0> rho t0 # |>| 242832 t0 241000 + 1000 dump | ======================== | Sat.Jul,20200711 | ======================== | | 1018 | On Zoom 1 2 - _i >t0 t0 1000 _i take ` _i ?? ` _i See 10 _iota >t0> ` Hello t0 ' take 'R R # R 1 _at ' # 'm text> >t0> t0 daylncut ` 20200608 con | ======================== | Mon.Jul,20200713 | ======================== | `_ & :?? | ======================== | Thu.Jul,20200716 | ======================== | | added EarthYear to | `( Fact Fact )` Dv@ lfVM ` year con ` C:/4thCoSy/CoSy/CoSy.csy F> str>lst `( Fact Fact )` v@ `( Fact Fact )` Dv! | ======================== | Sat.Jul,20200718 | ======================== | | 1009 | demoed downloading | demoed uploading | 1021 | ` C:/4thCoSy/CoSy/CoSy.csy F> str>lst `( Fact Fact )` >a> a@ v@ `( Fact Fact )` Dv! ` .r Dv@ >t0> t0 ` Tui v@ | ======================== | Wed.Jul,20200722 | ======================== | res> lfVM >t0> t0 { drb blVM } 'm >T0> : -1_cut -1 _cut ; T0 i( 3 6 )i { at ' -1_cut 'm } 'L >T0> i( 1 5 10 25 100 500 1000 2000 5000 10000 )i reverse >T1> : makechange t0 i# intVecInit >a> i# 0do t0 i i@ /mod a@ i i! loop drop a> ; 12345 makechange >t2> t1 t2 0>i & >t3> at t2 t3 at >t2> 1 _i >i ' at 'd t2 ' fmt 'm R0 ' cL 'd | ======================== | Thu.Jul,20200723 | ======================== | ` else ?? ,/ ,/ ` else ss # ` then >t0> ?? ,/ ,/ t0 ss # ` ;then Help T0 T1 ,L : makechange >_ T1 i# intVecInit >a> i# 0do T1 i i@ /mod a@ i i! loop drop a> ; : mcfmted makechange >a> 0>i & >t0> a> swap at >a T0 t0 at a@ i1 >i ' at 'd a> ' fmt 'm swap ' cL 'd ; i( 48203 1234 98884 )i ' mcfmted 'm -1 _at blMV T1 | ======================== | Sat.Jul,20200725 | ======================== | i( 10000 5000 2000 1000 500 100 25 10 5 1 )i +/ |>| 18641 zic Help R0 "ht MV a@ auxx@ a@ at ' fmt 'm t0 ' cL 'd ` >aux :?? auxx@ ' fmt 'm T0 ' a# a> res> lfVM { drb blVM } 'm >T0> : -1_cut -1 _cut ; T1 | i( 3 6 )i { at ' -1_cut 'm } 'L >T0> 20200724.0012 98884 makechange " CoSy20200725.exe" (save) | 119 32 - _i |>| 87 | kb size of CoSy ` non-working image Xwords { 1 _at blVM } 'm blMV # |>| 2348 zic Words # |>| 902 Xwords # ` CoSyWelcome_ReadFirst.html F> lfVM >t0> # ` C:/4thCoSy/CoSyWelcome_ReadFirst160806.html F> lfVM >t1> # t0 t1 venn i( 0 2 )i at | ======================== | Mon.Jul,20200727 | ======================== | ` C:/4thCoSy/Physics/general.f F> Eval 288. _f T>Psb f( 0.0 0.2 0.3 )f +f P>Tsb res> ` C:/4thCoSy/Physics/general.f >F | ======================== | Tue.Jul,20200728 | ======================== | https://github.com/jamesbowman/hdmi/blob/master/tv.py terc4_codes res> >t0> T0 lfVM >T0> rho res> lfVM T0 { 2 _cut ` , ssd "bl braket } 'm >t0> t0 { binary Eval decimal _i } 'm >t1> t0 t1 ' fmt 'm ,L flip ' ,/ 'm t1 fmtI$ ' cL 'd binary i( 1010011100 1001100011 1011100100 1011100 )i decimal >t1> t1 t1 { binary fmt decimal } 'm ,L flip t0 t1 ,L | t1 fmtI$ ,L flip ' blMV 'm ` fmt :?? 10 _i iotaf .. Pi *f ,L ` C:/4thCoSy/Physics/general.f F> | Eval 288. _f T>Psb f( 0.0 0.2 0.3 )f +f P>Tsb ` iota Words decimal _i ` base ?? s" binary t0 decimal Eval decimal | ======================== | Wed.Jul,20200729 | ======================== | 10 _i iotaf .1 _f *f >t0> t0 t0 288. _f T>Psb t0 +f P>Tsb ,L | ======================== | Fri.Jul,20200731 | ======================== | | 1808 | ` \4thCoSy\chk.csl F> | ======================== | Sun.Aug,20200802 | ======================== | | working on maillists found that ' dae on a single line bombs | because ' & bombs because ' across does not return naked on single . ` across :?? i( 3 )i & ' + across _i ` ./CoSy/CoSy.f F> lfVM s" : >_ " s" : & " ,L ' conn 'R TypeI _i ` dae :?? | ======================== | Tue.Aug,20200804 | ======================== | : lf>bl "lf "bl ,L ssr ; | find myself wanting to string out results | +> ./CoSy/Furniture.f rGet `( Fact Fact )` Dv! `( Fact Fact )` Dv@ lfVM ` lakh con | following up FB post by KK : lakh 1.e5 _f ; | 100000.0 : K 1.e3 _f ; | 1000.0 : M 1.e6 ; | 1000000.0 | ======================== | Wed.Aug,20200805 | ======================== | ` ~floats Help ` need Words ` .needs> :?? ` .needs Help | ======================== | Fri.Aug,20200807 | ======================== | `_ insert ?? ` getval :?? ` .\lib\callbacks F> 20200808.1830 | 1830 | pty | 2350 | | ======================== | Sun.Aug,20200809 | ======================== | | 1201 | | ======================== | Thu.Aug,20200813 | ======================== | ` --ba See ` swap Help 20200813.1015 ` p: ?? ` swap ?? ' dsc 'm ` --ba :?? `( Fact Fact )` Dv@ ` C:/CoSyWeb/4thCoSy/Code/CoSy/Fact_Fact.txt >F `( Fact Fact )` Dv@ lfVM | ` mpi con ` C:/CoSyWeb/4thCoSy/Code/CoSy/Fact_Fact.txt >F http://cosy.com/y20/Wed.Aug,20200812.html | 20200813.2339 | | ======================== | Fri.Aug,20200814 | ======================== | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2446224405677579/?comment_id=2452240095076010&reply_comment_id=2453770888256264 1365. 4. 2_f %f P>Tsb |>| 278.53 ` C:/4thCoSy/Physics/general.f F> | Eval ` P>Tsb ?? f( 288 289 )f T>Psb reverse ' -f ./ |>| 5.45 | w%m^2 5.45 36525. 2_f %f 7 _fmtnF 1364. _f 3 _i iotaf +f |>| 1364.00 1365.00 1366.00 R0 2. _f %f P>Tsb |>| 278.47 278.53 278.58 R0 273.15 _f -f R0 c>f https://twitter.com/slava_pestov/status/1294108592036085761 i( 2 1 )i >t0 i( 2 1 )i >t1 t0 t1 +i t0 1 _at t1 dsc mini -i |>| 3 1 (X1, Y1) * (X2, Y2) = (X1 + X2 - min(Y1, X2), Y1 + Y2 - min(Y1, X2)) | ======================== | Sat.Aug,20200815 | ======================== | https://motls.blogspot.com/2020/08/a-proof-of-string-theory.html#comment-5031978440 340.4 398.2 2_f -f 77.0 22.9 2_f +f |>| 99.90 77.1 163.3 2_f +f |>| 240.40 | ======================== | Wed.Aug,20200819 | ======================== | ` ,sv :?? : ,sv>lst { >a> dup ,svMsk & 0cut ' dl, 'm a- } 'm ` C:/CoSyBob/acnts/y20/BobA/CitiYtD.CSV >t0> F> >t1> rho t1 lfVM dae >t1> # t1 ' ,svMsk 'm { s" .1" swap at } 'm ` 0cut ?? ` dl, :?? t1 ,sv>lst flip t1 ` Status,Date,Description,Debit,Credit .. ,svMsk & i0 swap cL cut | ======================== | Thu.Aug,20200820 | ======================== | https://en.wikipedia.org/wiki/List_of_reservoirs_by_volume res> >T0> T0 lfVM dae >t0> # t0 ' htVM 'm flip 6 _at 1 _cut >t1> t1 ,/ `_ f( ` )f ,L braket Eval +/ |>| 2717.0185 | km^3 tot vol 2717.0185 1.35e9 2_f %f 10 _fmtnF ,/ |>| 0.0000020126 https://www.facebook.com/groups/airclimateenergy/permalink/1645098045652057/?comment_id=1645148215647040&reply_comment_id=1645805105581351 | 0917 | | ======================== | Sat.Aug,20200822 | ======================== | | 1207 | https://www.meetup.com/SV-FIG/events/272394041/ i( 30 20 20 )i +/ |>| 70 | ~ 1510 | -- | 1540 | `( con inb )` ' :?? 'm ` csv :?? zic Words ` con con ` qwerqwt R 0 _at R ` text v@ "lf VM >t1> t1 ' # 'm ting (650) 315-2031 | -- | ` ToDo list now saving to OneDrive file for access by SmartPhon ` C:/CoSyBob/CoSy/CoSy.csy F> str>lst ` ToDo v@ >t0> ` C:/Users/Bob/OneDrive/ToDo.txt >Fn> F> >Ft> | ToDo LIST Ft >t0> res> >Ft> Ft s" | SHOP | \/ " s" | SHOP | /\ " ,L braketed >t0> t0 lf>bl >t0> "ht "bl ,L ssr blVM >a> ` * con a> ` + con cL R0 4 _partition ' blMV 'm Ft Fn >F ` \CoSyBob\MailLists.csy startJob ` venn :?? | ======================== | Sun.Aug,20200823 | ======================== | ` Words :?? ` zic ?? ` con Words >t0> t0 ` n in | ======================== | Wed.Aug,20200826 | ======================== | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2463105283989491/ i( )i # |>| 0 | integer f( )f # |>| 0 | float s" " # |>| 0 | string `( )` # |>| 0 | words (' ') # |>| 0 | general | changing ' VM words to include deleting empties | in ` CoSy.f ` Furniture.f | because a number of words don't like empties . : VM toksplt dae ; | ======================== | Thu.Aug,20200827 | ======================== | | 0950 | BAA | ` shell> ?? | updating to caps std for CoSy level covers of Forth words ` ToDo -> | still need to update occurances in other defs | ======================== | Fri.Aug,20200828 | ======================== | ` across ?? ` vdel :?? ` 'R :?? ` C:/CoSyBob/acnts/y20/Acnts.csy F> str>lst ` WP v@ >t0> t0 `( cabin RV )` { vdel nil } 'R refs- ` vdel See t0 `( cabin RV )` vdel | t0 : vdel 2p> { prior vdel L@ } 'R refs- 2P ; { vdel t0 } Y./ | /\ | unfinished 20200831.1733 | /\ | | ======================== | Mon.Aug,20200831 | ======================== | `( F> str>lst )` { zic Words swap cconn } 'm : F>/\ F> str>lst ; : \/>F lst>str >F ; | io of lists directly | added > CoSy.f ` .\CoSy\CoSy.bk F>/\ # | From SV-FIG post by Kevin Appert : http://www.cosy.com/CoSy/y20/BillRagsdale%20SV%20FIG%20Challenge.odt ` C:/4thCoSy/CoSy/math.f F> Eval | for various rand & math fns . : GCD ' gcd eachDir ; 10 _iota i( 170 240 )i ' +i 'R | lst>stk ' GCD 'L : lst>stk >aux> i# 0 ?do aux@ i i@ refs-ok> loop aux> dup refs@ 0if free then ; ` lst>stk :?? 10 _iota i( 170 240 )i ' +i 'R lst>stk dup DMP cr dup 0 i@ DMP cr dup 1 i@ DMP dup DMP cr --aba DMP ` a@ ?? `_ D> :?? ' GCD 'L ` a> :?? t0 lst>stk DMP { ' >_ on2 + _i } 'R i( 1 2 )i enc' >t0> >a> DMP a@ DMP i( 1 2 )i >t0> lst>stk cL a# : lst>stk >a> i# 0 ?do a@ i _at loop a- ; | 20190422 : lst>stk >a> i# 0 ?do a@ dup DMP i _at loop a- ; AF1 t0 lst>stk cL lst AF0 AF> +-splt sorti ` sort Words ` DMP ?? | ======================== | Tue.Sep,20200901 | ======================== | : vdel 2p> { prior vdel L@ } Y./ 2P> drop ; | extended to multiple deletions | added to ./CoSy/CoSy.f | ` C:/CoSyBob/acnts/y20/Acnts.csy F>/\ ` WP v@ >t0> | want to use detached list , not under R t0 `( text RV )` vdel | finished fixing ` lst>stk | em> SV-FIG | ======================== | Wed.Sep,20200902 | ======================== | | 1109 | ML . Blog ` rplc :?? | needs a better name . really quite important | Corrected refcounting error . had to get down & dirty | 20200902.1633 | : lst>stk >aux> i# 0 ?do aux@ i i@ refs-ok> loop aux> dup refs@ 0if free then ; | to ` ./CoSy/CoSy.f | was | was | : lst>stk >a> i# 0 ?do a@ i _at loop a- ; | 20190422 needs sort.f | added to ` CoSy.f after SaveRestore . | 1708 | res> lfVM `( sys CoSySource )` Dv! `( sys CoSySource )` Dv@ ` sort Words ` ./CoSy/sort.f F> res> lf>nl ` ./CoSy/sort.f >F | ======================== | Fri.Sep,20200904 | ======================== | : kB 1.3806504e-23 _f ; 4.184 f( 57 -81 -72 )f f>c 273.15 _f +f |>| 287.04 210.37 215.37 1.5 .5 2_f ^f 1%f |>| 0.82 f( 287.04 278.6 )f 0.82 _f *f |>| 235.37 228.45 | ======================== | Sat.Sep,20200905 | ======================== | | 0921 | | 0939 | Going to go ahead & start | 0948 | fileDialog >t0> | get file name s" C:/CoSyBob/y20/Collected Addresses.csv" >Fn> F> > ` Fn ?? `( sys CoSySource )` Dv@ >t0> res> >t0> `( sys CoSySource )` Dv! ` ./CoSy/sort.f F> lf>nl ` ./CoSy/sort.f >F ` ?? ?? t0 lfVM `( sys CoSySource )` Dv! t0 dsc dlb t0 ' dlb 'm `( sys CoSySource )` Dv! `( sys CoSySource )` Dv@ >t0> t0 { F> # } 'm ` C:/CoSyBob/CoSy/CoSy.csy F>/\ `( sys CoSySource )` v@ R0 `( sys CoSySource )` Dv! | 1020 | ` sys Dv@ flip Fn F> Eval `( sys CoSySource )` Dv@ lfMV res> lfVM `( sys CoSySource )` Dv! ` sorti ?? | 1034 | 735.00 273.15 f- _f ` PoT :?? | 2233 | Shopping for a 4k TV | res> lfVM >t0> t0 5 _partition { blMV } 'm >t0> "ht MV 5 stars 396 4 stars 167 3 stars 64 2 stars 36 1 star 66 t0 { "bl prt>l Eval _i i>f } 'm >t1> t1 ,/ .. PoT swap +/ cL |>| 0.54 0.23 0.09 0.05 0.09 729.00 | Sceptre 5 stars 396 4 stars 113 3 stars 45 2 stars 22 1 star 80 | 0.60 0.17 0.07 0.03 0.12 656 | RCA | 0.61 0.17 0.08 0.06 0.09 316 | ONN | 2246 | s" 5 stars 396 4 stars 167 3 stars 64 2 stars 36 1 star 66" >t0> t0 htVM { "bl prt>l Eval _i i>f } 'm >t1> i( 192 53 25 19 27 )i i>f >t1> t1 ,/ .. PoT swap +/ cL |>| 0.61 0.17 0.08 0.06 0.09 316.00 f( 0.61 0.17 0.08 0.06 0.09 )f 316. _f *f 0. _f | ======================== | Tue.Sep,20200908 | ======================== | https://youtu.be/ED4w6Nxfv6Y | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2472172073082812/?comment_id=2473832569583429&reply_comment_id=2474404876192865&__cft__[0]=AZVf3DQkwRZY_VICgKFLkTOxz17eMHjoKauD-4MhVv-Ha4BB33RkY6-3qKV6Vk25ketcBr4YlYVB0OAJiEqsNQI9M_jeUqAzB1khCBBkd4SCftcqIDjYhcy5AixSoJeEtFClhjRZ5iuKXRvU11c5AAQ3jI9B2FQyyKqcDLmKDEasozGHbK1BSU0OUG26N_KtaPY&__tn__=R]-R | How To Extract YouTube Subtitles Closed Captions From YouTube Videos Chrome ` sortstr :?? | ======================== | Wed.Sep,20200909 | ======================== | : fmttbl { ' fmt 'm blpad pad } 'm flip { blMV } 'm ; | adding to ` furniture.f | format table , list of columns , w space btwn each col | ======================== | Thu.Sep,20200910 | ======================== | | 0857 | 0900 | BAA | https://zoom.us/j/858532665 | 1033 | Ray Poliva | undergrad problem from 1950s | baby weight . 100. _f 8. _f 20 _take cL f( .9 0 )f 4 _fill cL ' f+ scanf # i( 0 1 )i 20 _take polivka@acm.org ` rho :?? https://aplwiki.com/wiki/APL_Wiki_logo ` factorial ?? Bob, you can define dyadic ! in terms of monadic ! which for integers is simply ×/ ( iota ) factorial f.9 0 ' + scanI 5 _iota ` Fact See 4 w ` scan Words ` vdel :?? | actually didn't get done | Tue.Sep,20200901 | : vdel 2p> { prior vdel L@ } Y./ 2P> drop ; | extended to multiple deletions | added to ./CoSy/CoSy.f | was | | : vdel 2p { prior vdel } eachM ; | ======================== | Sat.Sep,20200912 | ======================== | : Days+ { >_ swap date_ date>fixed + fixed>date dtpk _i } 'd ; 20200911 277 2_i >_ swap date_ date>fixed + fixed>date dtpk _i >_ swap date_ ` date_ date>fixed + fixed>date dtpk _i 20200911 277 2_i Days+ ,/ 20200912 -256 2_i Days+ ,/ |>| 20191231 i( 20200912 20200101 )i i( -256 256 )i Days+ ,/ |>| 20191231 20200913 s" Many Congrats " enc 256 _take ,/ ` day ?? ` 2020 12 _iota 101 _i +i { fmtI dsc } 'm ` 01 ' cL 'L ' cL 'R >t0> : str>i >a> van eval _i a- ; | added to ` CoSy.f ` ^>fl ?? t0 ' str>i 'm ,/ >t0> t0 { date_ date>fixed _i } 'm ,/ >t1> t1 1 _cut t1 -1 _cut -i t1 ' fmt 'm Monthnms -1 _cut R0 ,L flip R0 ' blMV 'm ` gregorian Help ` days+ ?? ` date>fixed ?? ` str>i See hex 0B0b decimal . |>| 2827 zic dir ` C:/4thCoSy/lib/date/calendar F> _i ^>fl ` he Words ` hex Help ` _str ?? ` s ?? ` i( ?? ` dayln ?? | ======================== | Sun.Sep,20200913 | ======================== | | 0945 | ` date>fixed ?? i( 31 29 31 30 31 30 31 31 12 )i +/ https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2477743635858989/?comment_id=2477756949190991&reply_comment_id=2478496125783740 Bob Armstrong Lev Shubnikov Your , in CoSy : i( 31 29 31 30 31 30 31 31 12 )i +/ |>| 256 caused me to go off on a path which has revealed the ` gregorian fns I use from the Reva http://cosy.com/4thCoSy/Code/lib/date/calendar script is not computing leap years right . I took a rather circuitous route to check that I was calculating the number of days in a month right . I first constructed the dates for the first of the months as strings in the simple integer form I use : ` 2020 12 _iota 101 _i +i { fmtI dsc } 'm ` 01 ' cL 'L ' cL 'R >t0> ( 202010101 202010201 202010301 ... Then after poking around found I have never created a word to simply convert a string to an int . So made : : str>i >a> van eval _i a- ; | added to CoSy.f which I'm adding to my vocabulary . Then : t0 ' str>i 'm ,/ >t0> |>| 202010101 202010201 ... Converting to gregorians : t0 { date_ date>fixed _i } 'm ,/ >t1> |>| 7377899 7377930 7377958 7377989 ... and taking the differences t1 1 _cut t1 -1 _cut -i |>| 31 28 31 30 31 30 31 31 30 31 30 Aye ! There's the rub . Tried it with a whole cycle of years . It's not dealing with leap years right at all . Ron Aaron has a strong interest in calendars so I never questioned the scripts very closely . I'm glad I never implemented any important financial time value fns yet . I'll have to take a close look at what the proper definitions should be -- or I invite anybody interested to sort them out . Right now , I'll just add it to the ` ToDo list . I'm surprised the problem hasn't shown itself before . | -- | ======================== | Wed.Sep,20200916 | ======================== | ` fullpaths :?? ` VM :?? ,L | removed | -1 _cut | because added ' dae to VM | ./CoSy/Furniture.f ' lst>stk still has problems | ` fact ?? ` C:/4thCoSy/CoSy/math.f F> | 2318 | ` lpstk ?? | ======================== | Wed.Sep,20200923 | ======================== | | 0944 | Ragsdale questions : | GCD | http://cosy.com/y20/Wed.Sep,20200902.html Dnames ` ASCIIbrowser Dv@ i( 65 97 )i 26 _iota { +i i>c } 'R ,/ "bl 10 _iota dup *i ' take 'R ` o ' cL 'L | sent as answer to em < Kevin @ SV-FIG | 2205 | | ======================== | Thu.Sep,20200924 | ======================== | Ray Cannon's BAA SVG Zoom | https://www.cis.upenn.edu/~plclub/contest/ants.html | | CoSy needs an ElizabethRather & a LeoBrodie | 1307 | | [ Problem w above is that it's not rectangular . Need to make word actual | plotting verb . day highly edited ] 10 _i >a> iota dup *i a> swap >a> ' maxi ./ cL | | 20200926.1320 | |> 10 _iota dup *i >t0> | data list t0 # t0 ' maxi ./ i1 +i cL >t1> | dimensions of list ( matrix ) needed t1 ` . swap take >t1> | make it t1 t0 { ` o --cab at! nil } 'd refs- | stick a char at val in each line t1 rShow t1 flip ' ,/ 'm lfMV rUpdate t1 5 _i 10 _take & at flip reverse ' ,/ 'm lfMV rUpdate `D@ .r closeWdo | 1446 | | ======================== | Fri.Sep,20200925 | ======================== | | 1252 | Decided to make a dedicated ` blog task since cumulating the fortnight's | activities is the origin of | ` web ` log cL 2 _cut | See | http://cosy.com/CoSy/4thCoSy/CptnPicard%27sLog.html Dnames blMV res> >T0> s" help ASCIIbrowser BROWSER ToDo sys res lastSave R0 resvar text T0 T1 res.help ALPHabet script0 state .r " >t0> t0 blVM >t0> R dsc t0 venn ' blMV 'm R t0 dsel >t1> # zic t1 ` text v! t0 dsc ` v! :?? t0 dsc blMV t1 lst>str ` \CoSyWeb\y20\Blog.csy >t0> >F t0 startJob | hell w ith it R lst>str ` C:/CoSyWeb/y20/Wed.Sep,20200930.csy />\ >F ` C:/CoSyWeb/y20/Wed.Sep,20200930.csy />\ startJob ` \CoSyWeb\y20\blog.csy startJob zic Words ` d in ` F Words ` apnd Words t0 | ======================== | Sat.Sep,20200926 | ======================== | | 1245 | | 1356 | 97 65 - _i |>| 32 i( 65 97 )i 26 _iota { +i i>c } 'R ,/ 26 _iota i( 0 32 )i 65 _i +i +i i>c http://24.5.42.64:4444/ http://forthonline.hopto.org:4444 | 1631 | | ======================== | Sun.Sep,20200927 | ======================== | | 2032 | https://www.linkedin.com/feed/update/urn:li:ugcPost:6716057350257700864?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A6716057350257700864%2C6716169644803264512%29 I expect CoSy to be a player in this future , being the only APL in open to the chip Forth rather than C . The Forth world is mainly looking towards FPGAs containing fields of Forth processors . And CoSy provides the intrinsically parallel lists-of-lists vocabulary to herd them . The most interesting comment I've seen recently is that the , I'll call them ` FPs , need to have specific ID numbers . The FP needs to know its own address . The immediate push in Forth is transition to today's 64 bit processors . But there's a lot of waste with that big a word size , and it's not well matched for neural like computations . | ======================== | Mon.Sep,20200928 | ======================== | | 1414 | | ======================== | Mon.Oct,20201005 | ======================== | ` whitney ?? ,/ lfVM ` arthur con ` StartJob :?? | s" cosy@.bat " swap cL start ; zic dir ` cosy@.bat F> ` start :?? ` shell^ ?? ` shell Help ` lib/os/shell F> rUpdate ` ?? | changed COSYSTARTFILE to CoSyFile in Tui.f title | 20201005.1321 | much better | ======================== | Tue.Oct,20201006 | ======================== | ` nonce ?? ` :: Help cL ` { :?? ` :: :?? cL | thinking if output ` nonce , ie: not a CoSy type , should simply drop , not | try to ref check . Changing ' out `__ out ?? | ======================== | Thu.Oct,20201008 | ======================== | ` ,svmsk :?? ` , Words | ======================== | Thu.Oct,20201015 | ======================== | ` pi :?? text> ` C:/CoSyWeb/4thCoSy/Code/CoSy/WorkLog.txt >F | ======================== | Fri.Oct,20201016 | ======================== | on 4k | misc | 1934 | f( 3840 2160 940 530 )f f( 1920 1080 510 285 )f %f |pixels , measured mm 3840 2160 * _i 3 _i *i | ======================== | Sat.Oct,20201017 | ======================== | | 0935 | | 1000 | ` COSY Words COSYSTARTFILE ` CoSyFile ?? FullCoSyFile s" \" toksplt -1 _at | 1056 | | ======================== | Sat.Oct,20201024 | ======================== | rShow | ======================== | Sun.Oct,20201025 | ======================== | | from ` blog | ` C:/4thCoSy/CoSy/math.f F> Eval | for various rand & math fns . hex 7FFFFFFF decimal _i 2 _i 30 _take ' * scanI +/ cL >t0> : randf $7FFFFFFF _i >a> swap rand a> ' i>f on2 %f ; 10000 _i randf >t0> # |>| 10000 t0 10. _f *f f>i grpib ' +/ 'm | randomization test . t0 t0 *f 2 _partition >t1> # | fails w bunch of obj addrs on stk . t1 0 _at t1 1 _at +f >t2> t2 | ' fmax acrossf f( 1 2 3 )f reverse ' maxf ./ | 2214 | ` maxf ?? t2 f1. t2> 7908 _i 6 _iota *i ` ./src/revacore.asm ` partition ?? # 2 _i 32 _take ' * scanI | ======================== | Mon.Oct,20201026 | ======================== | | 1125 | | ======================== | Tue.Oct,20201027 | ======================== | | 1442 | `( .r Tui SIZE )` Dv@ ` ./CoSy/Job.f F> lfVM ` : in ` .r Dv@ JobHndld getPos `( .r Tui posXY )` Dv! ` .r Dv@ JobHndld getsize `( .r Tui SIZE )` Dv! ` fmt Words ' :?? 'm | changed ' fmt$ to fmtF18 because was bad name . should have refered to hex | 1508 | | ` pi ?? ` ./lib/math/floats F> lfVM `_ pi con | can't figure out where ' pi defined ` Pi :?? Pi 4. _f %f fmtF18 ,/ |>| 0.785398163397448309 ` C:/4thCoSy/CoSy/math.f F> Eval | for various rand & math fns . | commented out ` perm in | ` C:/4thCoSy/CoSy/math.f | bad algo . | added ' randf to math.f | 1645 | ` randf See ` C:/4thCoSy/CoSy/math.f F> Eval 20000 _i randf >t0> # t0 dup *f >t0> # t0 10000 _take t0 10000 _cut +f >t1> # t1 f1. | 7902 200000 _i randf >t0> # t0 dup *f >t0> # t0 100000 _take t0 100000 _cut +f >t1> # t1 f1. | 78572 2000000 _i randf dup *f >t0> 1000000 _take t0 1000000 _cut +f >t1> # t1 f1. | 784865 | 1725 | 20000000 _i randf dup *f >t0> 10000000 _take t0 10000000 _cut +f >t1> # | bombed | 1729 | | ======================== | Fri.Oct,20201030 | ======================== | | 20201031.1557 | ` C:/4thCoSy/CoSy/math.f >Fn> F> >Ft> Eval 20 _i randf dup *f 2 _partition >t0> t0 { ' dsc on2 +f } _./ | works : +fa ' +f aaply ; t0 dsc t0 1 _at +fa ` aaply :?? : +ia { ' + eachDir } aaply ; t1 0 _at t1 1 _at +ia ` across ?? ` ./ ?? t0 ` +f {{ >a> i# 1 ?do }} 20 _iota 2 _partition >t1> t0 flip t0 0 _at t0 1 _at +f ` +ia ?? over i# 1 ?do lpstk> 2 pick i i@ 2 pick execute >lpstk loop | ( v -- ( v i# items on stack ) ) splits v into separate items on stack . | Corrected refcounting error . had to get down & dirty | 20200902.1633 | : lst>stk >aux> i# 0 ?do aux@ i i@ refs-ok> loop aux> dup refs@ 0if free then ; : lst>stk_ >a> i# 0 ?do a@ i i@ loop a- ; | raw version for chars & ints ` lst>stk ?? f+ t0 #' >t0> 1000000 _take t0 1000000 _cut +f >t1> # | ======================== | Sat.Oct,20201031 | ======================== | 2000000 _i randf dup *f >t0> 1000000 _take t0 1000000 _cut +f f1. | 784865 | ======================== | Mon.Nov,20201102 | ======================== | i( 26 31 26 )i ' *i ./ |>| 20956 | ======================== | Tue.Nov,20201103 | ======================== | | YT code_report | https://youtu.be/zrOIQEN3Wkk | 8 programming language solutions (C++, Rust, Clojure, Ruby, Elixir, Scala, Haskell and APL)to one problem ` (1+(2*3)+((8)/4))+1 >t0> : +ia { ' + eachDir } aaply ; t0 ` () ' =c 'R i( 1 -1 )i ' *i 'd ' +ia ./ ,/ ' + scanI R0 ' maxi ./ t0 78. 365.25 f* _f f>i ` sys Dv@ ` Types v@ | ======================== | Thu.Nov,20201105 | ======================== | f( 1 0 0 0 0 )f i( 4 4 )i take `( C++ Rust Clojure Ruby Elixir Scala Haskell APL )` 2 _partition >t0> t0 flip t0 ` Rust v@ | | 2007 | | making windows open somewhere other than i( 0 0 )i | ` script0 -> ` sys Dv@ ` Tui v@ DMP ` show-xy ?? d1 @ getPos `( sys Tui posXY )` Dv! | Stores current upper left corner for restart : tst ` sys Dv@ ` Tui v@ ` posXY v@ ; ` sys Dv@ ` Tui v@ cL ` size ?? ` ./lib/ui/gui F> lfVM ` size con Ft lfVM ` Tui con `( sys Tui posXY )` Dv@ lst>stk_ | ======================== | Fri.Nov,20201106 | ======================== | ` b? ?? | ======================== | Sat.Nov,20201107 | ======================== | `( sys Tui posXY )` Dv@ d1 @ getPos `( sys Tui posXY )` Dv! | Stores current upper left corner for restart ` venn ?? ` times Help ` ./lib/util/misc F> | ======================== | Mon.Nov,20201109 | ======================== | ` strings Help | ======================== | Tue.Nov,20201110 | ======================== | ` rotate ?? 5 _iota 3 _rotate |>| 3 4 0 1 2 | ======================== | Mon.Nov,20201116 | ======================== | | problem w ` Acnts text> lfVM zic con # |>| 0 | should logically return all | ======================== | Tue.Nov,20201117 | ======================== | ` COSYSTARTFILE ?? | ======================== | Sat.Nov,20201121 | ======================== | 10 | SV Forth Day | ` C:/4thCoSy/Physics/general.f >Fn> F> >Ft> rUpdate rGet >Ft> Eval Ft Fn >F Ft ` C:/4thCoSy/CoSy/math.f >Fn> F> >Ft> | Eval 10 _iota i>f >t0> t0 t0 dot : n-1mat 1p> dup # i1 -i 2 _take take 1P> ; | f( 1 .7 0 )f n-1mat | not what I need f( 1 .7 0 )f >a> 2 _take a> -2 _take ,L >t0> | From | http://cosy.com/Science/ColoredBalls.html#KeyDefinitions | Planckl | W % sr * m ^ 2 from meters % cycle / Planck fn in terms of WaveLength | | {[ l ; T ] ( ( 2 * h * c ^ 2 ) % l ^ 5 ) % ( _exp ( h * c ) % l * boltz * T ) - 1 } Ft Eval ` c See : planckv c dup *f h *f 2. _f *f ; planckv ` apv :?? .1 .1 2_f 100 _i apv 1.e-6 _f *f >t0> planckv t0 3. _f ^f 1%f %f boltz t0 1%f 3.14e9 _f ` >>fl ?? ` >float ?? ` frac>dec ?? ` (exp) ?? ` EoDefs ?? | replaced | : EoDefs ; | in ./CoSy/CoSy.f with EoDefs mark EoDefs ` 1/f ?? zic Words ` ./lib/math/floats F> rUpdate bye : ratios >a> 2 _take a> -2 _take ,L 3 _iota n-1mat | i( 3 3 )i take : dot% ( source obj sink ) 1p> i( 2 2 )i take | ======================== | Sun.Nov,20201122 | ======================== | | need exponetial format | 1622 | | [ 20201127.1639 https://en.wikipedia.org/wiki/Extended_precision#x86_extended_precision_format https://en.wikipedia.org/wiki/IEEE_754-1985 | ] 0.0 _f >t0> 0.0 _f DMP 1.0 _f DMP 0.1 _f DMP 1.1 _f DMP -1.0 _f DMP f( 0.0 1.0 0.1 1.1 -1.0 )f { _DMP> } 'm f( 0.0 1.0 0.1 1.1 -1.0 1.0e8 )f { } 'm | { _DMP> } 'm ` _DMP :?? res> lfVM >t1> # t1 i( 0 1 )i 10 _take & at "bl ' VM 'L >t2> t2 { 1 _cut 10 _take blMV } 'm ` dump ?? t0 DMP ` interpret ?? ` dmp ?? ` eval `( Help ?? See )` ' Eval 'R | ======================== | Mon.Nov,20201123 | ======================== | | continuing Sunday ` double `( Help ?? See )` ' Eval 'R ` ./lib/math/doubles F> ` each Words | failed to solve | f( 0.0 1.0 0.1 1.1 -1.0 1.0e8 )f { _DMP> } 'm `( eachMfr if@ f@ )` ' :?? 'm ev >t0 f( 0.0 1.0 0.1 1.1 -1.0 1.0e8 )f { t0 swap cL >t0 } eachM f( 0.0 1.0 -1.0 0.1 1.1 1.0e8 )f { .s cr _DMP> } 'm f( 0.0 1.0 0.1 1.1 -1.0 1.0e8 )f { .s cr DMP nil } 'm | ' _DMP> is useless as is | 20201123.1843 f( 0.0 1.0 -1.0 0.1 1.1 1.0e8 )f >t0> | -- t0 { van _str c>i } 'm >t1> | far more productive path t1 { fmtI$ 2 _i ' take 'L blMV } 'm | t1 { fmtI$ ,/ } aaplym t1 { -2 _take } 'm >t2> ` C:/4thCoSy/CoSy/math.f F> | Eval | for various rand & math fns . : doti *i +/ ; t2 1 _at i( 256 1 )i doti | \/ | Very interesting that this works | \/ | hex t1 decimal | \/ | but this Locks up binary t1 decimal | /\ | | /\ | t0 t1 ,L ( t2 cL ) flip t2 i( 1 2 )i at i( 255 63 )i binary fmtI decimal 255 191 t2 2 _at binary fmtI decimal { ` 0 swap cL -8 _fill } 'm >t3> t3 reverse ,/ >t3> 1 _cut binary Eval _i decimal 16383 _i -i |>| 0 2 _i 15 _take ' *i ./ binary ` 1111111100111111 Eval _i decimal ` >t0 :?? t1 | made rather radical change eliminating special casing for floats in ` 'm | there's nothing foundational about any use of floats | ======================== | Tue.Nov,20201124 | ======================== | | Now that I've figured out how to see what is going on -- ` w@ Help t0 ilst t0 van 2_i cL |>| 45162544 60 t0 100 dump res> t1 { fmtI$ 2 _i ' take 'L blMV } 'm ,L hex 50 decimal _i t0 1 _at >t2> van 2_i cL |>| 9792736 10 9792736 10 dump |>| 00908D98 00 00 00 00 00 00 00 80 FF 3F .........? t0 2 _at >t2> DMP | vbody 8 + w@ _i >t3> fmtI$ t3 vbody 8 + w@ _i `( fmtI$ fmtIb )` ' Eval 'R ' { ,/ # } 'm : expntf vbody 8 + w@ $7FFF and ( 16383 - ) _i ; | DMP t3 expntf fmtIb : fmtIb binary fmtI decimal ; -1 _i fmtIb t3 fmtIb dsc # | fmtI$ $7fff _i fmtIb # ` and Help ` fmtI$ :?? ` fmt Words ' :?? 'm t0 t0 ' expntf 'm ,L flip 1.0 _f >t0> t0 vbody 2@ tst 2! ` ~doubles Help 422613133985257032L tst 2! tst d. 2variable tst ` 2variable ?? tst 1 cells + @ hex . decimal 1 cells ` 1+ See DMP 2@ d. ` d. Help $0000000000000080L FF 3F res> >t2> # t2 blVM ' Help 'm 1.0 fneg? | ======================== | Wed.Nov,20201125 | ======================== | | 1417 | | cannonical expression | -1.0e-1 _f DMP | CC CC CC CC CC CC CC CC FB BF | 1.0 fneg? -1. fneg? 2_i cL 512 _i DMP 2 _i 32 _iota 1 _cut { take ' *i ./ } 'R | started w 4 4 8 due to modulo indexing on 1 item | updated ./ to match _./ better rule | | If empty or singlton , simply returns arg . | was | over i# 0if drop ref0del z" nonce : empty , needs prototype " throw ;then 2 _i 32 _iota 1 _cut { take ' *i ./ } 'R ,/ >t0> -1.0e-1 _f | hex lst decimal 16 _iota binary fmtI decimal ` 0 swap { cL -4 _fill } 'd >t0> ` 0123456789ABCDEF enc' t0 ,L >t1> flip | { ,L enc } 'd >t1> t1 | flip ' blMV 'm ` _I ?? vbody binary . %1000000000 hex fmtI decimal ` fneg? ?? | ======================== | Thu.Nov,20201126 | ======================== | s" CC CC CC CC CC CC CC CC FB BF" "bl zic ,L ssr hex CC CC CC CC CC CC CC CC FB BF decimal .s enc' >t2> t1 1 _at t1 dsc t2 ' ?str 'R t2 ` wheresym ?? ` fabs :?? -1.0e-1 fdup fneg? | fabs | 2_i | ,L -1.0e-1 fneg? fabs fneg? `_ '- ?? ` strings Help | ======================== | Fri.Nov,20201127 | ======================== | s" _i : " ?? s" Freedom is not free " 11 _cut s" Freedom is not free " i( 0 11 )i cut | 1740 | cleaning up mail lists . Defined ' <@> | better name than original <_@_> : <@> { ` > prt<=f ` < prt>=l } 'm ; | picks out ( first ) email addresses in list . | Added to | ./CoSy/Furniture.f | 1749 | | 2040 | | ======================== | Sat.Nov,20201128 | ======================== | ` ./lib/math/floats >Fn> F> >Ft> rUpdate -1.0e-1 fneg? fabs fneg? 2_i cL ` ./lib/math/doubles F> rUpdate : :pad s" : " "bl ,L braket ; | added to derived.f | been needing this verb for a long time . | added to derived.f | ( script name -- :def; ) | find & return just definition in script : def --aba >a :pad ss1st a> swap cut >a> s" ; " ss1st 2 _i +i a> swap take ; ` ./CoSy/CoSy.f F> ` Eval def f( 0.0 1.0 -1.0 0.1 1.1 1.0e8 -1.0e-1 3.1415928 )f >t0> t0 { >_ _f } 'm t0 { >_ f>d (d.) _str } 'm ` >_ ?? ` if! :?? 1.0e0 f>d (d.) _str ` f>d See 111.0e1 fabs f>d (d.) _str 1.e0 f ` ffrac Help 16383 _i hex fmtI decimal 1.0 _f >t0> t0 vbody 10 | ======================== | Sun.Nov,20201129 | ======================== | f( 0.0 1.0 -1.0 0.1 1.1 1.0e8 -1.0e-1 3.1415928 )f >t0> | added to CoSy.f | \/ | : fmtI% binary fmtI decimal ; | format binary . Reva uses % as tag for binary | t0 { vbody 10 dump nil } 'm lst | sF6 res> lfVM -2 _cut >t1> t0 { fmtF ,/ } 'm blpad pad t1 ' cL 'd >T0> T0 t0 { vbody 8 _str c>i ,/ } 'm ` ASCIIbrowser Dv@ t0 { vbody 2@ (d.) _str } 'm t0 vbody (d.) ` (d.) Help t0 dsc vbody 2@ ` fmt Words t0 { vbody (d.) _str } 'm t0 { vbody 9 + c@ %10000000 and _i fmtI% ,/ "bl cL } 'm T0 ' cL 'd >t2> ` C:/4thCoSy/lib/math/doubles F> rUpdate ` ~doubles Help res> blVM >t1> ' Help 'm : fsgn_ vbody 9 + c@ %10000000 and 0 >I ; | returns 1 for negative float t0 { fmtF ,/ } 'm blpad pad t0 { fsgn_ _i fmtI ,/ } 'm ' cL 'd | works | 1511 | blog t0 { vbody 8 + w@ dup _i swap $3FFF and 16383 - _i cL fmtI$ blMV } 'm t0 { fmtF ,/ } 'm blpad pad R0 ' cL 'd 16383 _i fmtI$ t0 5 _at vbody 8 + w@ _i ` =0 ?? ` fneg? Help 1.0 fneg? _i | ======================== | Mon.Nov,20201130 | ======================== | f( 0.0 1.0 -1.0 0.1 1.1 1.0e8 -1.0e-1 3.1415928 )f >t0> t0 { van _str c>i } 'm >t1> | t1 { fmtI$ 2 _i ' take 'L blMV } 'm | t1 { fmtI$ ,/ } aaplym t0 fmtF blpad pad t1 { fmtI$ 2 _i ' take 'L blMV } 'm ' cL 'd | 20201130.1034 | | ======================== | Tue.Dec,20201201 | ======================== | s" Big Bad Bird Bashers." >t0> t0 ` B t0 ` B ssc # take cL >t0> |>| Big Bad Bird Bashers.BBBB t0 ` B t0 ` B ssc # take cL >t0> |>| Big Bad Bird Bashers.BBBBBBBBBBBB t0 ` B t0 ` B ssc # take cL >t0> |>| `_ dir :?? | in ./CoSy/Furniture.f | : Dir ( path -- dir ) s" dir " swap cL shell> ; | trumps Reva ~os dir | 20190704 | 20201201 | changed name to cap to make consistant w being CoSy level ` Dir Words | ======================== | Thu.Dec,20201203 | ======================== | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2548013192165366/ Bill Ragsdale Palindromic Numbers problem 10 _iota fmtI >t0> | 1 digit 100 _iota 1 _cut fmtI >t1> | t1 dup { reverse cL } 'd >t2> | 2 & 4 digit t1 10 _i 99 _take & at >a> t0 ' cL 'd a> { reverse cL } 'd >t3> | 3 & 5 digit (' t0 t2 t3 ') ,/ >t1> | all of them t1 blpad pad 86 _partition reverse #' | ' ,/ 'm reverse #' t1 # | 1645 | mail lists | ======================== | Sat.Dec,20201205 | ======================== | 16 _iota 15 _iota 2 _i +i { >_ base ! fmtI decimal } 'R ' blMV 'm t0 100 _iota 26 base ! fmtI decimal ` base Help ` i( :?? : tst i( 1 2 )i >t0 ; ` { :?? ` here :?? ` (here) ?? here _i |>| 6530072 t1 dup { reverse cL } 'd >t2> here _i |>| 6530083 6530083 6530072 - _i | inline { ... } take dictionary space . not collected | 2143 | `( {{ 'm )` ' :?? 'm ` dump :?? macro : {{ here p: { ; : }} >r p: } execute r> here - allot ; | I seem to be returning to the Forth end https://ronware.org/dev/p.sh/reva/wiki?name=Intermediate+Tutorial ` getpid Help ` ./src/revacore.asm F> lfVM ` proc con | ======================== | Sun.Dec,20201206 | ======================== | `( here (here) dict )` ' Help 'm rUpdate here ' EoDefs 2_i cL Xwords flip >t0> s" context: ~sys" v@ blVM >t0> | System words . essential constants t0 ' Help 'm rUpdate (' here h0 ') ' _i 'm ,/ .. ' -i ./ cL | total dict space used (' here ' EoDefs ') ' _i 'm ,/ |>| 6530076 6530064 (' zic zld ev ei ') enc' s" zic " ?? ymdhm # T0 lfVM # Ft lfVM # | venn R0 >t0> #' T0 ` ef See 0 _iota 0 floatVecInit ref+> constant ef ` constant Help ` ei ef Type ` zic ?? # Ft lfVM ` zic con res> blMV ./CoSy/CoSy.f ./CoSy/Tui.f ./CoSy/Job.f macro : }}} >r p: } r> (here) ! ; forth | seemed to get defined but bombed | ` allot :?? ` ./src/reva.f F> nlVM ` allot con here ` {{ See i0 100 _take >t0> `( ./CoSy/CoSy.f ./CoSy/Tui.f ./CoSy/Job.f )` >t0> here _i >t3> t0 { >a> F> a> ` 201206 cL >F nil } 'm | back up files containing ` zic here _i |>| 6530158 | reset ' here worked . ok 6530076 (here) ! | ` ./CoSy/ />\ Dir lfVM ` .f2 con here >aux t0 { >a> F> s" zic " s" ec " ,L ssr a> >F nil } 'm aux> (here) ! ` ./CoSy/CoSy.f F> `__ ec ?? | worked ! Replaced phrase in all scripts where occurs . also kept ' here constant . (' ev ec ei ef ') ' Type 'm | ======================== | Mon.Dec,20201207 | ======================== | here _i >t0> |>| 6530076 `( sys CoSySource )` Dv@ ` /CoSy con { F> nlVM # } 'm ,/ +/ |>| 2875 here _i |>| 6530092 `( sys CoSySource )` Dv@ ` /CoSy ncon { F> nlVM # } 'm ,/ +/ |>| 3851 here _i |>| 6530108 t0 >_ (here) ! `( sys Types )` Dv@ 1 _at 'm ,/ binary fmtI decimal (' dict here ') ' _i 'm `( >body >name >xt >size >class )` ' See 'm ' here '' here 2_i cL here _i |>| 6530076 variable wasHere here wasHere ! wasHere @ _i ec Words | ======================== | Tue.Dec,20201208 | ======================== | ` dvi :?? ` 0 daylncut ` vdel con | screwed it up 20200910 . needs eno of simple strings . ` prior Help : vdel 2p> encatom { prior vdel L@ } Y./ 2P> drop ; | extended to multiple deletions ` prior :?? | R >t0> # | changed this line from R .. >t0> | & caused items to be deleted from R | needed to use | R rep >t0> | t0 ` ToDo wheresym nil =i t0 ` res vdel t0 `( ark res )` vdel t0 dsc | 20201209.2045 | recovering from bomb ` C:/4thCoSy/CoSy/WorkLogbrk.csy F>/\ >t0> # R dsc t0 dsc venn t0 ` state v@ >state t0 dsc | : vdell 2p> encatom { vdel L@ } Y./ 2P> drop ; | tmp to check out ` prior | ` enc Words `( enc>1 encatom )` ' :?? 'm | ======================== | Wed.Dec,20201209 | ======================== | | for SV-FIG | Randy McDonald's : s" IF YOU CAN THINK IT , IT'S DONE " >t0 74 _i t0 # -i 2 _i /i "bl swap take ` |\/| 74 _i t0 # -i take 2 _partition t0 swap braket | ( frase fill width -- braketed frase ) : center --- don't have time for now . really need 3 parameters pushes | but do need to fix ' vdel | ======================== | Thu.Dec,20201210 | ======================== | | all the date fns need to be cleaned up in terms of the higher level words available | in ./CoSy/Furniture.f \/ | "lf |=| _str "bl braket cL daylnTok match "lf |=| _str "bl braket cL daylnTok refs+> value daylnTok | was | "lf s" | ======================== | " cL refs+> value daylnTok : Dayln ( int -- dayln ) date_ _DMymd _str daylnTok 1 _cut enc braket ; 20201219 _i Dayln | my purpose to make notes for presentation . | need to make word out of \/ `D@ .r JobHndld getsize `( .r Tui SIZE )` Dv! `D@ .r JobHndld getPos `( .r Tui posXY )` Dv! ` `( :?? | ======================== | Mon.Dec,20201214 | ======================== | file:///C:/CoSyWeb/index.html ` C:/CoSyWeb/index.html >Fn> F> >Ft> rUpdate rGet ` C:/CoSyWeb/index.html >F rGet >Ft> ` ss >t0> t0 { 20 _-+ dsc } 'm Ft swap ' at 'R Ft ` ssd rUpdate rGet >Ft> Fn >F | ======================== | Tue.Dec,20201215 | ======================== | | 2052 | R lst>str ` \CoSyWeb\index.csy >t0> >F t0 startJob | ======================== | Thu.Dec,20201217 | ======================== | R `( sys CoSySource )` Dv@ >t0> | list of sourcefiles looked at by ' ?? t0 { dup F> emptyLn prt<=f ,L } 'm | grab the part before the first empty line of each R dsc ' Dv@ 'm res> # emptyLn # ` output ?? ` f6 :?? R dsc { Dv@ fmt } 'm >t0> # | get each of them and show . works t0 fmt # R fmt ` f6 :?? R t0 res> # R ` editbox ?? ` ./lib/ui/gui F> lfVM ` editbox con Economy of notation . | ======================== | Fri.Dec,20201218 | ======================== | rShow hex 100 1 - _i decimal 10 _iota fmtI >t0> | rUpdate | 1 digit 100 _iota 1 _cut fmtI >t1> | rUpdate | t1 dup { reverse cL } 'd >t2> | rUpdate | 2 & 4 digit t1 10 _i 100 1 - _take & at >a> t0 ' cL 'd a> { reverse cL } 'd >t3> | 3 & 5 digit res> rUpdate | \/ | Last line broken out | 10 _i 100 1 - _take & | produce all the replicates for the center col | Arthur Whitney's /\ ` where | ` & :?? t1 R0 at | modulo indexing replicates shorter to match longer R0 >a> t0 ' cL 'd | ` a is a stack which handles ref counting R0 a> { reverse cL } 'd >t3> | 3 & 5 digit | 'd is each pair | /\ | R0 >Ft Ft blpad pad 50 _partition ' ,/ 'm (' t0 t2 t3 ') ,/ >t1> | rUpdate | all of them t1 # t1 blpad pad >t2> 91 _partition ' ,/ 'm rUpdate | converting back to integers . t2 ,/ s" i( " ` )i ,L braket Eval >t3> decimal t3 # t3 reverse ' - _delta | nub | |>| -100 -110 -11 -9002 -10 9898 -902 -2 -1 | ========= | t2 # | 8 _i cL i>f ' %f ./ t2 139 _partition ' ,/ 'm R0 -1 _at ,/ # t2 ' Eval 'm t2 _partition ' ,/ 'm | reverse #' | ' ,/ 'm reverse #' | ======================== | Sat.Dec,20201219 | ======================== | 20201214.1515 | 1030 | CoSy IS NOT YET ANOTHER FORTH , BUT A VOCABULARY IN FORTH WHICH LEAPFROGS ALL LESSER LANGUAGES AND IMPLEMENTS AN EVOLVED APL ALL IN A UNIQUELY SIMPLE PROGRAMMING NOTEBOOK TUI ( tap F6 to execute any line ) VOCABULARY : BASIC UNDERSTANDABLE CONCEPTS ON ORDERED SETS | Thu.Dec,20201203 | Palendrome #s | Sat.Dec,20201205 | Bases If you want a ` hobby over Xmas , give CoSy a try | 1452 | | ======================== | Sun.Dec,20201220 | ======================== | ` :hanoi ?? | ` C:/4thCoSy/RevaArk/examples/hanoi.f F> res> >T0> T0 ` C:/4thCoSy/RevaArk/examples/hanoi.f >F T0 Eval ec Words | got defined disks 1 2 3 hanoi cr | sF6 | s" disks 1 2 3 hanoi cr " forth> | don't know why this does not work | 1435 | ` :hanoi ?? | found nowhere . had to use MS fileExplorer ` C:/4thCoSy/RevaArk/examples/hanoi.f F> 4 _iota .. ' +i 'L | simple add table | -- | /\ | ` hanoi etc . Remy | /\ | -- | | -- | \/ | Planets . Baisley | \/ | -- | ` Fact Dv@ dsc | sym>str>' enc ` Fact Dv@ 0 _at! ` Fact Dv@ flip 1 _cut `( Fact Planet#s )` >t1> Dv@ | dsc sym>str>' enc t1 Dv@ 0 _at! | \/ | added to CoSy.f : iEval s" i( " ` )i ,L braket Eval _i ; : fEval s" f( " s" )f " ,L braket Eval ; | /\ | | t0 1 _at ' fEval 'm enc t0 1 _at! | t0 `( Fact Planet_radius )` Dv! | 71492. _f `( Fact Planet_radius Jupiter )` Dv! `( Fact Planet_radius )` Dv@ >t0> fmttbl t0 1 _at ,/ t0 ` Earth v@ %f >t1> t1 3. _f ^f t0 dsc R0 fmtF ,L fmttbl | 20201222.2157 | posted to | \/ | https://www.facebook.com/mark.baisley/posts/10221856512235285?comment_id=10221875509230198 | -------------------------------------------------------------------------- | Roger Hui Euler in APL | 0=1+*o0j1 Dyalog Tweet : Today's date 16/12/20 is a Pythagorean triple so Happy Pythagorean Triple Day! 16² + 12² = 20² i( 3 4 5 )i i( 1 2 3 4 5 6 )i ' *i 'R >t0> t0 i( 0 0 2000 )i ' +i 'L >t0> t0 AF1 t0 { cL lst>stk_ daysdif _i } _delta >t1> t1 ,/ i>f 365.25 _f %f >t1 AF0 t0 { ' lst>stk_ .s daysdif .s _i cr } _delta ` stk> ?? ` _date ?? ` daysdif ?? 15 _iota ' - _delta 5 _iota { 2_i cL } _delta >t1> DMP t1 t0 { ' lst>stk_ on2 .s daysdif .s _i cr } _delta ` _delta ?? 5 _iota ' - _delta ` _delta See | :?? ` pick :?? | ======================== | Mon.Dec,20201221 | ======================== | | Dave Jaffe SVFIG em | i( 5 12 13 )i .. *i .. 2 _take +/ ,L i( 5 12 13 )i i( 1 2 3 4 5 6 )i ' *i 'R >t0> t0 i( 30 12 10000 )i ' _modi 'L t0 i1 -i i( 30 12 1 )i { _modi i1 +i } 'L ` mod ?? ` ': See | ======================== | Tue.Dec,20201222 | ======================== | | removed already commented out \/ from CoSy.f | ." " | replaced \/ w simply output of string . still don't understand | | 20180702 | | help dup | totally bizarre . need invocation of ' help between defs of | | ' (' and ' ') or help bombs ! | 20180502.1857 | | see Sat.May,20180505 | | ======================== | Thu.Dec,20201224 | ======================== | ` fmax ?? 1. 0. 2_f f( 2 2 6 1 -5 7 -2 )f ' maxf ./ |>| -2.0000 | broken i( 2 2 6 1 -5 7 -2 )i ' mini ./ |>| -5 | ok 1. 2. fmin _f : minf { fmin _f } eachDfr ; | ======================== | Fri.Dec,20201225 | ======================== | ` prt<=f ?? : prt ss1st L@ swap take 2P> ; ` take :?? ` ss1st :?? s" Aimee Dongfang " ` | ss1st s" Tim Cox " ` | prt | FB Forth 20201109.0902 |" ` | ss1st ` C:/CoSyBob/MailLists.csy F>/\ ` T0 v@ >t0> t0 ` | ' ss1st 'd | ======================== | Sat.Dec,20201226 | ======================== | | going after bugs & bombs AF1 `( sys Types )` Dv@ 1 _at >t0> .. binary ' fmtI 'm decimal ' ,L 'd ` min ?? ` AF1 ?? AF> >t0> # AF0 t0 +-splt >t0> #' t0 ' nub 'm ' ,/ 'm >t1> #' t0 0 _at t0 1 _at -1*i ` grp ?? ` sys Dv@ >t0> 0 _at | sym>str>' enc ` sys Dv@ 0 _at! t0 flip ` lst :?? ` sys Dv@ >t0> { Type@ _i } aaplym >t1> t0 dsc t1 1 _at ,L flip ` ype Words ` type> ?? | `( sys Tui )` Dv@ | >t0> dsc sym>str>' enc t0 0 _at! | eliminated symbols in Tui names R 1 _at { Type@ _i } aaplym >t0> R dsc t0 ,L flip nil -1*i ` ark Dv@ >t0> dsc sym>str>' enc t0 0 _at! ` .r Dv@ >t0> dsc sym>str>' enc t0 0 _at! | have eliminated all legacy ` symbol types from Root . Eliminating from scripts | 1750 | | resumed | 20201228.2103 | | deleting these types never implemented : | ( ( TypeS 65537 ) ( TypeV 65536 ) ( TypeA 131072 ) ( TypeFv 262144 ) ) t0 flip 4 _take flip `( sys Types )` Dv! `( sys Types )` Dv@ 1 _at ,/ ` and ?? | -- | Types testing | `( sys Types )` Dv@ >t0> fmttbl t0 flip 4 _cut res> lf>bl blVM dae blMV : ori ' or eachDir ; | remarkable only added now : andi ' and eachDir ; i( 1 4 10 )i ' ori ./ |>| 15 | or of types | if not , not CoSy list Ft lfVM s" : refs- " conn ` 280,1 `( .r Tui )` Dv@ thndl_ setcaret | 1st successful use | 20201228.2229 | ` throw ?? ` case :?? : CoSylst?_ dup 0 =if drop 1 .s cr ;then dup _n =if drop 1 ;then dup 15 and =if drop 1 ;then drop 0 ; 15 and =if 1 ;then 0 ; 4 CoSylst?_ _i Ft lfVM rGet lfVM swap ~membv Ft T0 reset 10000 dup 15 and swap 15 not and _i | CoSylst?_ _i ` _delta ?? ` not See ` CoSylst?_ See res> blVM ' Help 'm ` ./CoSy/CoSy.f F> lf>bl `__ : tokcut 1 _cut >t0> { s" ; " prt<=f } 'm t0 ` ; ncon ` TypeS ?? Ft lfVM ` TypeS ccon `__ p ?? | Had to revert . Ft ` C:/4thCoSy/CoSy/CoSyNew.f F> ' lfVM on2 ,L >t0> t0 | { #' lst>stk_ venn | -- Another irritation . want to scroll to where left off . | see 20201228.2056 | basically got working | | ======================== | Sun.Dec,20201227 | ======================== | Conor Hoekstra @code_report 1 Problem, 6 Programming Languages (C++ vs Rust vs #Haskell vs APL vs #Clojure vs Scala) https://twitter.com/code_report/status/1343363855381094401 i( 1 2 3 5 5 5 3 1 4 )i i( 3 3 )i take ' +/ 'm ,/ ' maxi ./ |>| 15 | -- Added `( ./lib/date/calendar ./lib/ui/gui ./lib/ui/iup )` to `( sys CoSySource )` ` getcaret See : getcaret ( txtH -- str ) z" CARET" IupGetAttribute zcount _str ; ` .r Dv@ JobHndlt getcaret : setcaret ( ` X,Y txtH -- ) z" CARET" --bca >r> van zt IupStoreAttribute drop r> ref0del ; ` 10,10 ` .r Dv@ JobHndlt setcaret Ft lfVM s" : ss " conn ` 1291,20 ` .r Dv@ JobHndlt setcaret | 2357 | | got working | | ======================== | Mon.Dec,20201228 | ======================== | | 1334 | R dsc `( .r Tui hndl )` Dv@ `__ setAttr ?? : getcaret ( txtH -- str ) z" CARET" getAttrStr ; textwdo @ getcaret |>| 2772,1 : setAttrStr ( str Hndl lbl -- ) --bca >r> van zt IupStoreAttribute drop r> ref0del ; ` 10,10 ` .r Dv@ JobHndlt_ z" CARET" setAttrStr | Worked ! | 1529 | : setcaret z" CARET" setAttrStr ; ` 27,27 ` .r Dv@ JobHndlt_ setcaret ` JobHndlt ?? | 1602 | | 1952 | : tst ` sys Dv@ ` Tui v@ ` caret v@ ; tst textwdo @ getcaret ` sys Dv@ ` Tui v@ ` caret v! `( sys Tui caret )` Dv@ words~ ~util ` needs ?? : savecaret textwdo @ getcaret ` sys Dv@ ` Tui v@ ` caret v! ; savecaret textwdo getcaret ` sys Dv@ ` Tui v@ ` caret v@ tpmst @ DMP | got restarting @ last caret pos basically working | 2051 | | back to locking up Types check | ======================== | Tue.Dec,20201229 | ======================== | | | 1305 | problem is `( sys Tui caret )` not defined in previous existing CoSyJob until something is F6ed or F11ed | 1458 | textwdo @ getcaret |>| 606,1 Also convert depricated ` symbols to strings . `( sys Tui )` Dv@ >t0> t0 dsc sym>str>' enc t0 0 _at! `( sys Tui caret )` Dv@ R dsc R 1 _at ` Type aaplym ,L flip | The ' aaply are a very consequential | recursive adverbs which apply verbs to corresponding leafs of the noun arguments ` aaplym :?? ` sys Dv@ >t0> dsc sym>str>' enc t0 0 _at! ` .r Dv@ >t0> dsc sym>str>' enc t0 0 _at! ` sys Dv@ ` Types v@ ` Fact Dv@ ` TekLogArk Dv@ | Cleaned up | ` .\CoSy\CoSy.csy | ` C:/4thCoSy/CoSy/WorkLog.csy F>/\ >t0> ` Fact v@ ` Fact Dv! | t0 `( sys Types )` >t1> v@ t1 Dv! | t0 dsc Dnames venn | R `( script.sort ./CoSy/CoSy.f TekLogArk exampleScripts )` ' Dvdel Y./ | `( sys DISPLAY )` Dv@ | apparent remnant from 2015 | 2337 | `( getsize getfont gettxt )` ' ?? 'm bye | ======================== | Wed.Dec,20201230 | ======================== | textwdo @ getcaret R dsc R 1 _at ' fmt 'm ,L flip res> # |>| 211962 ` sys Dv@ | >t0> #' | ` wordpad v@ # t0 flip -1 _cut flip >t0> t0 ` sys Dv! t1 -1 _i t0 .. >t1> | ` wordpad vdel t1 ` wordpad vdel t1 ` sys Dv! 1 0 %f ` \CoSyBob\CoSy\CoSy.csy F>/\ ` sys v@ ` C:\CoSyBob\acnts\y20\Acnts.csy >t0> ` \/>F :?? | : \/>F lst>str >F ; | | stupidly wrong . : \/>F swap lst>str swap >F ; | ======================== | Thu.Dec,20201231 | ======================== | ` catch ?? `( throw catch ctrl-c exception exceptions )` ' Help 'm ` deinit-console See | Help | ?? | fmt rUpdate ` defer ?? ` ./src/reva.f F> lfVM >t0> rUpdate t0 ` deinit-console conn ` 1489,1 ` .r Dv@ JobHndlt_ setcaret ` sys ` Tui ,L Dv@ ` .r Dv@ rGet lfVM # ` ms Help | ======================== | Fri.Jan,20210101 | ======================== | ` ` :?? textwdo @ getcaret ` _i :?? ` ' Help `_ ' Help | 1922 | Kevin Apert SV-FIG challenge ` date_ ?? 20210102 _i date_ _DMymd _str `( date_ dayln date>fixed fixed>date )` ' :?? 'm -1 _at s" 1 1 2021 365 daylns " forth> lfVM >t0> t0 ` sat con { ` , prtl } 'm date>fixed _i r> _iota +i { fixed>date {{ 1 1 2021 date>fixed _i }} 365 _iota +i { >_ fixed>date 3 s>iv } 'm >t0> t0 t0 { lst>stk_ DoW _i } 'm ,/ 6 _i =i & at >t1> t1 { 1 _at } 'm grpix >t2> t1 t2 ' at 'R >a> | index by each month , and for demo purposes push on ref counted ' a stk 3 _i 10 _take i( 2 2 )i cL | 3 3 3 3 3 3 3 3 3 3 2 2 a> R0 ' at 'd R0 { lst>stk_ _DMymd _str } 'm >t3> t3 { daylnTok 1 _cut enc braket } 'm | 2040 | ` dayln ?? ec Words ` dow con ' ?? 'm ` s_n>iv ?? | ======================== | Sat.Jan,20210102 | ======================== | res> >Ft> Ft lf>bl blVM >T1> T1 nub ` grp ?? | ======================== | Sun.Jan,20210103 | ======================== | ` bswap | see 20200607 | little > big endian . ` ./src/reva.f F> lfVM ` exception conn ` 1490,1 ` .r Dv@ JobHndlt_ setcaret ` exception See hex 006232B4 decimal _i 6435508 100 2_i _dasm ` dasm ?? deinit-console :: cr ." Exception: " .x ." at: " .x 100 ms cr ; is exception ` r> Help t0 blVM ' Help 'm .rs rdepth hex i( 000DFF60 00403B82 006393B9 006392A9 0062AF12 009E06F8 009E06B5 009E06F8 004033B1 004034BD )i decimal 917344 4209538 6525881 6525609 6467346 10356472 10356405 10356472 4207537 4207805 917344 DMP ` digit> Help 'n emit | 0008 | | ======================== | Mon.Jan,20210104 | ======================== | ` ./CoSy/Furniture.f F> ` : ss # |>| 157 ` ' :?? `( 0; .x between c+place )` ' Help 'm ` ./src/reva.f F> ` .x def ` ,nl See ` C:/4thCoSy/lib/debugger F> ` ./lib/os/exception F> ' cold here over - 2_i cL ' cold 100000 + 100000 dump res> ` dump0.txt >F " forth> >t0> # ` dump0.txt F> ` gui-main-loop Help ` gui-release Help `( gui-release ]d destroy dialog[ gui-init hide save-gui show )` ' Help 'm gui-release d1 destroy | ======================== | Tue.Jan,20210105 | ======================== | ` f? ?? | ======================== | Wed.Jan,20210106 | ======================== | | in response to SV-FIG Dennis Ruffer email mention of camelCase . ` ALPHabet Dv@ >t0> ec Words >t1> # |>| 933 t1 t1 t0 26 _take { ' memb 'R ,/ ' maxi ./ } 'L ,/ & at >t1> # |>| 249 t1 t1 t0 26 _cut { ' memb 'R ,/ ' maxi ./ } 'L ,/ & at >t1> # |>| 174 | problem w xmas tree demo last year | CoSyDir |>| \4thCoSy\CoSy\ CoSyDir ` y2019.txt cL F> >Ft> https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2265087163791305/ In answer to an email | Y-mas Tree . needed to change ' _take to ' take | "bl ` / 16 _iota ' take 'R 1 _cut { cL -16 _fill } 'R R0 ` \ 16 _iota ' take 'R 1 _cut { "bl cL 16 _fill } 'm ' cL 'd >t0> | R0 R0 reverse ' cL 'd .. ' cL 'd t0 ` o#o s" # " ,L i( 14 4 14 )i { & at } 'L cL >t0> t0 flip { ,/ reverse } 'm | X-mas tree ` dict Help ` here Help `( create >name >body >class >size >xt body> xt>size (xfind) find xfind )` ' Help 'm ` find :?? ` > Words ` Xwords ?? | typed ' here out at begining of CoSy script . here 6422599 - _i |>| 107505 | apparently everything in CoSy takes abt 100k | ` words :?? ` >name Help Ft lfVM ` saveRestor conn fmt ` ,1 cL `D@ .r JobHndlt_ setcaret `D@ .r ` JobHndl ?? 6511995 6422599 - _i 6530104 6422599 - _i ` last Help ` xt Words ` Xwords :?? ` dictgone ?? ` DICT Help `( 0drop; 0;drop 0; 00; )` ' Help 'm ` gcd ?? ` >xt :?? ` def :?? ` count Help `( >name >xt )` ' Help 'm ` ./src/reva.f F> ` >name def ec Words 10 _take here 100 - 100 dump : tst ." hello " ; : tst1 1 2 3 5 . . . . ; tst1 ` _dasm :?? ` disassemble See tst1 . . . . | ======================== | Thu.Jan,20210107 | ======================== | Xwords flip >t0> 1 _at ,/ >t1> t1 blVM reverse rUpdate rGet lfVM >t1> # t1 1 _cut sortstr rUpdate t1 t1 nubb 0=i & at | all 41 nonunique words in CoSy ec rUpdate rGet >T0> T0 lfVM dsc >t0> "bl ss >t1> | changing ` _modi t0 ` modi to make clear totally CoSy level t0 t0 60 _i modi ' - _delta 0 --aab modi ' - _delta 0 ; t0 t0 t0 "bl ss 30 _i wrapidxs 0cut | 20210111.2317 | adding t1 ' - _delta > t0 t2 0 rUpdate text> daylncut ` ref- con ` C:/4thCoSy/CoSy/WorkLog.csy202012261719.csy F>/\ ` text v@ s" C:/4thCoSy/CoSy/WorkLog - Copy (2).bk" F> # | /\ >t0> ` text v@ s" C:/4thCoSy/CoSy/WorkLog.csy202011232114.csy" F>/\ >t0> # t0 dsc ` text v@ # text> lfVM # | ======================== | Sat.Jan,20210109 | ======================== | | Demo w Squirrel who is back from being induced into an accident on his | chopper by cops in unmarked cars on all sides | | 1355 | | The essence of CoSy : 1 - 2 1 2 - -1 s" 1 2 - _i" "bl VM >t0> t0 { van find _i } 'm ` find >t0> van find-dict dup 100 dump _i ec Words ` str con drop type ` ' :?? ` (execute) Help ` find Help res> blVM >t0> t0 ' Help 'm t0 ' Help 'm t0 ' See 'm ,L flip `_ exec ?? | ======================== | Sun.Jan,20210110 | ======================== | | added | COSYSTARTFILE lst | to startup to label dos windows . | 2129 | Rediculous blindness . For years I have known that if somehow you are | in the Reva dos shell if a dialog breaks or is accidentally closed , just | executing | go | will bomb . Geting into this basic code , I tried | getset go | & it works . See | ` ./CoSy/Tui.f | ` S. :?? | ======================== | Fri.Jan,20210115 | ======================== | ` in: ?? ` ./lib/debugger F> lfVM ` in: con ` xt>name Help ' Help xt>name ` >r Help res> blVM >t0> t0 ' Help 'm rp0 @ rdepth mem>iv >t1> t1 0 _at xt> 1987443241 xt>name { >_ xt>name _str } 'm ` _rp0 ?? r@ xt>name _str ` >i Words ` mem>iv ?? ` ./src/revacore.asm F> rUpdate ` find :?? ` find Help | ======================== | Sat.Jan,20210116 | ======================== | | 1345 | s" can't index " ?? | considered changing def of ' ix to return arg if empty . but would need to change all i@ & i! subfns too | ======================== | Sun.Jan,20210117 | ======================== | text> day ` refs- con dup 15 dup and swap 15 xor not 4 15 and _i 4 15 xor _i |>| 11 4 15 invert and _i 27 15 --abab and --cab invert and not 2 s>iv fmtI% 4 15 --abab and --cab invert and not and _i fmtI% 4 15 --abab and --cab invert and 2 s>iv fmtI% 15 invert _i fmtI% ` nand ?? ` binary ?? ` iv Words ' :?? 'm ` tstScript -> | Dv@ >t1> ` tstScript Dv@ Eval _n _CoSylst?_ _i : _CoSylst?_ dup 0 =if drop 1 ;then dup _n =if drop 1 ;then dup 15 and swap 15 invert and not and if 1 ;then 0 ; ` exception ?? :: deinit-console ." Exception: " .x ." at: " .x 100 ms throw ; is exception ` deinit-console ?? ` defer Help ` catch Help ` throw Help ` gui-main-loop Help ` set-callback Help quit ` ]w `( Help :?? )` ' Eval 'R ` IupAppend ?? z" K_F5" set-callback ` set-callback ?? ` .r Dv@ JobHndlt_ { ` .r Dv@ JobHndlt_ ins-ymd.hm } z" K_sF11" set-callback ` insert :?? ` callback Help | ======================== | Mon.Jan,20210118 | ======================== | | 1529 | ` .r Dv@ JobHndlt_ { ` .r Dv@ JobHndlt_ ins-hm } z" K_F11" set-callback ` Bugs Dv@ ` nonce ?? ` ins-hm ?? ` gui-close ?? `D@ .r closeWdo d1 @ closedlg ` d1 See ` textwdo ?? ` d1 ?? Ft lfVM ` SIGSEGV con ` deinit-console ` ((hi)) ?? s" C:/4thCoSy/bin|agar.dll|bench|bench.bat|build|cd.dll|cdiup.dll|checkhelp.f|dist.f|firstrun.f|freetype.dll|genhelp.f|glut32.dll|graphapp.dll|help.db|inline.f|install.f|iup.dll|iupcontrols.dll|iupgl.dll|iupim.dll|iupimglib.dll|libexpat.dll|libgobject-2.0-0.dll|libgpg-error-0.dll|libgpgme-11.dll|libiconv2.dll|libimath.so|libmySQL.dll|libpng13.dll|libs.f|pcre3.dll|pdcurses.dll|pthread.dll|reva.exe|revacore|rss_process.dll|sdl.dll|sqlite3.dll|sqlite3.exe|test.f|testlib.f|tests.f|zlib1.dll| " R0 fullPaths ` .dll ncon | .. ' F> 'm ,L flip | ======================== | Wed.Jan,20210120 | ======================== | ` appstart S `( sys CoSySource )` Dv@ >t0> { F> lfVM ` defer con } 'm t0 swap ,L flip .used ` make Help | ======================== | Fri.Jan,20210122 | ======================== | `( add-callback set-callback )` ' Help 'm Deleting from Tui.f res> lfVM `_ | swap ' cL 'R | 0 [IF] | macro | : key-F1-cb: ' literal, p: key-F1-cb ; | : key-F2-cb: ' literal, p: key-F2-cb ; | : key-F3-cb: ' literal, p: key-F3-cb ; | : key-F4-cb: ' literal, p: key-F4-cb ; | : key-F5-cb: ' literal, p: key-F5-cb ; | : key-F6-cb: ' literal, p: key-F6-cb ; | : key-F7-cb: ' literal, p: key-F7-cb ; | : key-F8-cb: ' literal, p: key-F8-cb ; | : key-F9-cb: ' literal, p: key-F9-cb ; | : key-F10-cb: ' literal, p: key-F10-cb ; | : key-F11-cb: ' literal, p: key-F11-cb ; | : key-F12-cb: ' literal, p: key-F12-cb ; | forth | [THEN] Ft lfVM ` add-callback con `( throw catch )` ' ?? 'm 1 _at ` creat Help ` eval ?? ` accept Help | ======================== | Sat.Jan,20210123 | ======================== | ` rotate :?? ` rot See --bca ` abc i( 0 1 -1 )i ' rotate 'R |>| bca | 1307 | | ======================== | Sun.Jan,20210124 | ======================== | ` get Words | ======================== | Tue.Jan,20210126 | ======================== | `( <@> venn )` ' :?? 'm ` \CoSyWeb\y21\blog.csy F>/\ >t0> # t0 ' #' 'm -1 _i >t1 t0 t1 i1 +i >t1> ' at 'L ` state v@ t0 lst>str ` \CoSyWeb\y21\blog.csy \/>F t0 >T0> # | ======================== | Wed.Jan,20210127 | ======================== | .25 .25 2_f ^f 1. 2. 2_f .5 _f ^f %f | ======================== | Thu.Jan,20210128 | ======================== | text> daylncut ` caret con | ======================== | Sun.Jan,20210131 | ======================== | ` ix :?? ./CoSy/CoSy.f : ix ( adr n -- adr of nth item in list ) | modulo indexing over i# ?dup 0if z" can't index empty " throw ;then | 20210122 | tested if can just return empties . Nope _mod over Ibytes * vbody + ; | Modulo indexing is a very fundamental feature of CoSy . | It means an index can never go out of range because it simply wraps . | It means the shorter of 2 lists is cyclically repeated to match the longer . | A list can be addressed from the end with negative indices . eg | See Furniture.f 2scomp | | 1521 | experimenting w replacing throw with simple returning empties seeing | 20210122 | tested if can just return empties . Nope Need to deal w at higher level . | working on ' exception at Sun.Jan,20210117 | ======================== | Mon.Feb,20210201 | ======================== | | changed dialog title to reduce ambiguity . See Tui.f FullCoSyFile .. ` \ ss -2 _at cut | ======================== | Tue.Feb,20210202 | ======================== | ` C:/4thCoSy/restore.bat | ======================== | Sun.Feb,20210207 | ======================== | : phi ( the golden ratio ) .5 5. f^ 1. f- 2. f/ _f ; | at the x87 level then / phi fmtF18 ,/ |>| 0.618033988749894847 ` fmt Words ` nestl ?? ` first ?? | ======================== | Mon.Feb,20210208 | ======================== | 5. _f .5 _f ^f 1. _f +f 2. _f %f |>| 1.6180 ` idx ?? ` dot ?? ` braketed :?? | changed braketed to +braketed+ and added \/ in Furniture.f : braketed ( str tok0 tok1 ,L -- str ) 2p> dsc prt>f R@ 1 _at prt ; | portion of string between but including two token strings . | ======================== | Tue.Feb,20210209 | ======================== | | From K.CoSy | http://cosy.com/K/CoSy/K_CoSy.htm | nestlevel | K def | level of nestng given list of start and close interval endpoints | { +\ ( ,/ ( ^ x ) # 1 -1 ) @ < ,/ x } | | coverraw indices of occurances of ( starting & ending ) toks in string | { ( + y _ss/: x ) +\: 0 , # *| x } | | cover / indices of top level cover of start/stop tokens `x in string `y | { QW : ,/ coverraw[ x ; y ] ; | QW : QW @ & |/ ( 1 >': ; 0 = )@\: 0< nestlevel QW ; | ( _ ( # QW ) % 2 ; 2 ) # QW } ` C:/CoSyWeb/y21/Wed.Feb,20210210.html >t0> F> >t1> | rUpdate s" asdf more stuff yet more and finally yea " >t1> t1 ` ,L ' ss 'R >t2> i0 t1 # take >t3> i1 t3 t2 dsc at! t3 i-1 t3 t2 1 _at at! t3 t3 +\ >t3> | ======================== | Wed.Feb,20210210 | ======================== | | : nestlevel ( str tags -- levels ) 2p> ,L ' ss 'R i0 t1 # take : phi ( the golden ratio ) .5 5. f^ 1. f+ 2. f/ _f ; | at the x87 level then _f phi 1%f .. ^f phi 1%f .. ^f | ======================== | Mon.Feb,20210215 | ======================== | ` C:/4thCoSy/CoSy/math.f F> Eval 120 _i factors ` factors See | ======================== | Wed.Feb,20210217 | ======================== | ` str>tbl :?? | ======================== | Sat.Feb,20210220 | ======================== | | 1936 | ` exception ?? :: deinit-console ." Exception: " .x ." at: " .x 100 ms ['] bye cr ; is exception ` exception Help :: cr ." Exception: " .x ." at: " .x 100 ms 0 ; is exception ` is `( :?? Help )` ' Eval 'm `( :: { )` ' :?? 'm forth : :: 0L (header) lastxt p: ] : noop ; variable oldstate macro : { ( -- xt ) | force compiling state, save old state: state @ oldstate ! state on oldstate @ if ahead then here ; : } ( xt -- xt ) | seal off temp definition: $c3 1, | if compiling, seal the jump and compile the 'here' | if interactive, just return the 'here' oldstate state xchg2 compiling? if p: ;then literal, then ; | 2316 | ` a 1234567 _take 0 _take dup DMP >t0> cr DMP | sF6 F5 to execute in raw Forth then insert . 001966A0 01 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 ................ 001966B0 00 00 00 00 00 00 00 00 63 14 3E ED 8E 25 00 10 ........c.>..%.. 001966A0 01 00 00 00 00 00 00 00 01 00 08 00 00 00 00 00 ................ 001966B0 00 00 00 00 00 00 00 00 63 14 3E ED 8E 25 00 10 ........c.>..%.. ` a 1234567 _take enc 0 _take DMP 00195750 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 .......... ..... 00195760 4B 08 AA 8D 00 00 00 00 65 14 3F EA 8E 25 00 00 K.......e.?..%.. AF1 ` a 1234567 _take enc 0 _take ' DMP spool >t0 AF0 AF> +-splt ( 13444808 102428704 13444808 10242968 10256160 -13444808 -102428704 -13444808 -10256160 ) 10242968 DMP ' t0 @ _i | 0059 | ` spool :?? Dnames `( sys Types )` Dv@ fmttbl | ======================== | Sun.Feb,20210221 | ======================== | | 1105 | ` C:/CoSyBob/CoSy/CoSy.csy F>/\ >t0> #' t0 dsc t0 1 _at #' ,L fmttbl t0 `( sys Tui )` v@ fmttbl t0 ` T1 v@ ` save ?? ` ctrl ?? ` C:/CoSyBob/CoSy/CoSy.csy ` C:/CoSyBob/CoSy/CoSy.bk ' F> on2 match | ======================== | Mon.Feb,20210222 | ======================== | | 0816 | AF1 ` a 1234567 _take 0 _take AF0 AF> +-splt ( 9463552 50999328 9463552 -9463552 -50999328 ) AF1 ` a 1234567 _take enc 0 _take AF0 AF> +-splt ( 13089800 51048480 13089800 12785368 -13089800 -51048480 -13089800 ) AF1 AF0 AF> AF> +-splt fmt rUpdate ` fill ?? ` AT+> See ` defer :?? rShow ` apv :?? .0 .1 2_f 30 _apv >t0> t0 t0 t0 .5 _f ^f ^f ,L fmttbl | ======================== | Tue.Feb,20210223 | ======================== | 15 3 * 10 * 9 + _i i( 1 2 2 4 )i +/ 15 3 * 9 * 9 + _i | 2226 | 4 3 * 3 * 9 * 9 + _i | ======================== | Fri.Feb,20210226 | ======================== | : D> dup DMP ; | added to ./CoSy/util.f | ======================== | Sat.Feb,20210227 | ======================== | `_ log ?? ` i( ?? ` Daysdif ?? ` date>fixed ?? ` gregorian>fixed ?? ` dump ?? | ======================== | Fri.Mar,20210305 | ======================== | ` `( :?? Dnames blMV `__ `( `__ )` ,L braket : nl>toks blMV : tst `_ `( ; | ` )` { "bl braket } on2 ,L ; tst ` pop>eax ` ./src/reva.f F> lfVM ` pop>eax con | First time I've started even adding blank lines to ` ./src/reva.f script | 2231 | | ======================== | Sat.Mar,20210306 | ======================== | ` caught ?? ` catch ?? ` catch Help i( -1 0 1 )i dup reverse +i |>| 0 0 0 100000 _iota >t0> # |>| 100000 t0 t0 reverse +i 5 _take |>| 99999 99999 99999 99999 99999 https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2614890792144272/?comment_id=2615088652124486 | ======================== | Sun.Mar,20210307 | ======================== | | going to try notion of simply dos auto restarting . ` .\ Dir ` startJob :?? s" | " ` .\CoSy@.bat F> lfVM ' cL 'R lfMV | echo | | SET REVAUSERLIB=.\CoSy\ | SET COSYSTARTFILE=%1 | set COSYSTARTFILE | .\bin\reva .\CoSy\CoSy.f %COSYSTARTFILE% | :restart | restart | goto restart This may work as a gross last line ! | 1836 | res> ` .\CoSy@.bat >F | ======================== | Tue.Mar,20210309 | ======================== | ` C:/CoSyBob/acnts|KKrishEnergybrk.csy|KKrishEnergy.csy|KKrishEnergy.csy202103031643.csy| fullPaths C:/CoSyBob/acnts/KKrishEnergybrk.csy ` C:/CoSyBob/acnts/KKrishEnergy.csy F>/\ >t0> t0 ` sys v@ C:/CoSyBob/acnts/KKrishEnergy.csy202103031643.csy C:/CoSyBob/acnts/ | ======================== | Wed.Mar,20210310 | ======================== | | SV-FIG | thermisitor | ======================== | Thu.Mar,20210311 | ======================== | rGet lfVM ` 0=L conn | ` 0=L | vestigial | removed from CoSy.f | : 0=L ( iLst -- iLst ) ['] 0=I eachM> ; | Iverson "not" on list | same as 0=i | ======================== | Mon.Mar,20210315 | ======================== | | ======================== | | ======================== | ` .\restart.bat F> lfVM ` .\CoSy@.bat F> res> >t0> | replacing call to restart w line it actually is . was exiting thru ' restart | bin\reva.exe CoSy\CoSy.f t0 ` .\CoSy@.bat >F | now restarts need direct killing to kill | 1648 | | ======================== | Sun.Mar,20210321 | ======================== | | 1930 | Never would have expected Ap ` enum: ?? `( enum: word? (create) (header) )` ' Help 'm | ======================== | Mon.Mar,20210322 | ======================== | | leap years | i( 2000 2020 2021 )i i( 400 100 4 )i ' modi 'R { i0 =i ' <>i ./ } 'm | ======================== | Thu.Mar,20210325 | ======================== | ` nub ?? ` <>i ?? | needed 0<>i , added to CoSy.f | didn't actually | 0919 | : 0<>i i0 : <>i ['] <>I eachDir ; | not equal ( Iverson logic ) 2 integer vecs ` ~nub ?? ` 0=1 ?? | ======================== | Sat.Mar,20210327 | ======================== | | ======================== | Sun.Mar,20210328 | ======================== | Uploaded | SV-FIG | | 1853 | | ======================== | Tue.Mar,20210330 | ======================== | 50 7 _rand i1 +i |>| 5 13 16 49 46 3 19 ` fmttbl :?? : fmtDT >a> dsc a> 1 _at { cL enc } 'd fmttbl ; | Added to Furniture.f ` grade ?? ` grp ?? | 1927 | | 20210331.1104 | : 1th 1 _at ; | been thinking abt . w see if sticks . | 20210331.1402 | Added to CoSy.f ` C:/4thCoSy/CoSy/math.f F> Eval 100 20 _rand >t0> | t0 # iota ,L flip >t0> t0 i( 0 1 )i at lst>stk { dsc >_ } on2 2_i cL : pcmpri { dsc >_ } on2 < ; : psorti dup # iota ,L flip ' pcmpri is compare rep dup van cells/ hsort ; | 20210331.1910 | ec Words 20 _take >t0> | ilst flip reverse flip ` cmprStr_ See : cmprStr_ strCmpr >_ 0 < ; | version for use in ' hsort : pcmprstr ' dsc on2 cmprStr_ ; : psortstr dup # iota ,L flip ' pcmprstr is compare rep dup van cells/ hsort ; t0 psortstr fmttbl : pstrCmpr t0 | t1 { flip ' ,/ 'm } on2 ,L >t2> ` dsc ?? t2 dsc dsc t2 1th 1th at | t0 flip 1 _at ,/ >t1> | ======================== | Thu.Apr,20210401 | ======================== | ` nubgrpix :?? ` >t ?? | ======================== | Fri.Apr,20210402 | ======================== | ` startJob :?? ` strMatch :?? ` where ?? | ======================== | Mon.Apr,20210405 | ======================== | |\/| |\/| |\/| below I've worked thru a " method in data encription called "steganography" " | presented by Sandor Schneider on FP " Minimalist Computing " group | " If we use the lowermost bit of color pixels, the human eyes can not see the difference. " | Rise internet happened to go out over a large part of CO & WY so had nothing | better to do than solve , ie: implement , this Sandor Schneider > Bob Armstrong You can download any BMP file. And read / write as a simple binary file. If you simply read / copy the first 54 bites, you dont need to worry about the other bytes. The first 54 byte is the picture descriptor. You can see I don't touch it only read and copy. ?? prog input.BMP output.BMP < any.txt > Sandor Schneider | So essentially after the 54 byte header , are pixels defined by 3 or 4 byte ` cells ? So I can process the contents , the stick the header back on & it should work ? I copied you image to Irfanview then saved to http://cosy.com/y21/MarioTestHead.bmp . I've executed a few lines to see what's involved . | \/ looked at whether the 2 images copied from FB post are the same \/ | ` c:/CoSyWeb/y21/MarioTestHead0.bmp F> >t0> # ` c:/CoSyWeb/y21/MarioTestHead1.bmp F> >t1> # t0 t1 match |>| 1 | First a bunch of exploration , bunch of which I should have read in Sandor's | original post . ` c:/CoSyWeb/y21/MarioTestHead0.bmp F> >t0> # |>| 10854 t0 van dump | sF6 , execute raw | ` dump is raw Forth output . See what it looks like rShow res> rUpdate | show dump in separate window t0 54 _take van dump | sF6 to see header i( 60 60 3 )i ' * scanI |>| 60 3600 10800 | so accounts for everything | pays no attention to cell boundaries . t0 54 _cut >T0 | T0 is persistant across saves | T0 i( 3600 3 )i take ' ,/ 'm >t0 | turn into 3 char strings | dead end | bunch of other explorations below . Here's the bushwhacked method . | Realized simplest way to 0 low order bits is to make all even . | convert to int , subtract remainder mod 2 . T0 c>i >t1> t1 2 _i modi -i >t2> | make all even , ie low order bit 0 t2 i>c >t2> # | convert back to chars , re-append header , write to file t0 54 _take t2 cL ` c:/CoSyWeb/y21/MarioTest0.bmp >F | It is visually indistinguishable . | To encode : ( The unpacking and packing of bools could be vastly improved at the Forth level ) | Make a table of booleans . Convert to bools using table lookup . | SuperKludge using Forth formatting verb to create table of bools 256 _iota { >_ 8 '0 binary (p.r) decimal _str ` 1 =c } 'm >t0> ( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 ... | Convert message from char to int . s" a message " c>i >t2> |>| 97 32 109 101 115 115 97 103 101 32 | index into bools & ravel t0 t2 at ,/ >t3> 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 | Make list of powers of 2 to recombine i1 2 _i 7 _take ' * scanI cL reverse >t1> |>| 128 64 32 16 8 4 2 1 | Integer dot product from ` 4thCoSy/CoSy/math.f : doti *i +/ ; t3 i( 10 8 )i take t3 10 _partition t1 ' doti 'L ,/ i>c |>| a message t3 ` c:/CoSyWeb/y21/MarioTest0.bmp F> >T0> 54 _cut c>i +i T0 54 _take R0 i>c cL ` c:/CoSyWeb/y21/MarioTest1.bmp >F ` c:/CoSyWeb/y21/MarioTest1.bmp ` c:/CoSyWeb/y21/MarioTest0.bmp { F> 54 _cut c>i } on2 -i >t0> t0 1350 _partition t1 ' doti 'L ,/ i>c | 2028 | ` partition ?? T0 { >_ _i } 'm | ,/ >t1> # t1 i( 3600 3 )i take ' ,/ 'm T0 T0 { >_ 1 and _i } 'm >t0> # t0 ,/ >t0> t0 1350 _partition >t1> t2 i1 2 _i 7 _take ' * scanI cL reverse >t2> |>| 128 64 32 16 8 4 2 1 : doti *i +/ ; t1 t2 reverse ' doti 'L ,/ T0 c>i >t1> 256 _iota { >_ 8 '0 binary (p.r) decimal _str ` 1 =c } 'm >t0> t0 t1 at >t2> 256 _iota { >_ 8 '0 binary (p.r) decimal _str ` 1 =c } 'm >t0> t0 | -- t0 t1 ' at 'R t2 reverse ' doti 'L t0 115 _at t1 10 _partition t2 ' doti 'L ,/ i>c ` c:/CoSyWeb/y21/MarioTest0.bmp F> >T1> t0 s" a message " c>i at ,/ T1 54 _cut c>i +i i>c >t2> # T1 54 _take t2 cL ` c:/CoSyWeb/y21/MarioTest1.bmp >F ` c:/CoSyWeb/y21/MarioTest1.bmp ` c:/CoSyWeb/y21/MarioTest0.bmp { F> c>i } on2 -i >t0> t0 54 _cut 1350 _partition t0 10 _at ` 1 =c R0 { "bl swap enc' ' cL 'R ,/ Eval } 'm >t2> R0 { "bl swap enc' ' cL 'R ,/ Eval } 'm >t2> ` >i ?? t3 .. i# 8 / 8 2 s>iv take ` s>iv ?? | ======================== | Tue.Apr,20210406 | ======================== | ` take :?? ` / Help i( 1 0 -1 0 )i i( 3 3 )i take `( ark morse )` Dv@ | ======================== | Wed.Apr,20210407 | ======================== | ` c:/CoSyWeb/y21/MarioTest1.bmp ` c:/CoSyWeb/y21/MarioTest0.bmp { F> c>i } on2 ,L >t0> t0 ` con :?? | Demo broken down i raw Forth , shiftF6 key . Looking at $tack . 1 2 - _i | back to F6 expecting CoSy list result if any R0 10000 _i take | ======================== | Wed.Apr,20210407 | ======================== | | 2323 | | ======================== | Fri.Apr,20210409 | ======================== | | from https://en.wikipedia.org/wiki/Human_body_weight#By_region | | Finland not splt m f rGet lfVM >T0> # | 50 T0 "ht ' VM 'L R0 i( 1 2 )i ' at 'L >t0> t0 { "bl ' prtfl 'm ,/ } 'm >t1> t1 flip ' ,/ 'm >t1> t1 dsc t1 1th swap %f >t2> T0 t2 1. _f >f & at |>| Botswana 63.6 kg (140.2 lb) 64.3 kg (141.8 lb) 15-69 Measured 2014 [23] : avgf 1p> +/ R@ rho i>f %f 1P> ; | from ` C:/4thCoSy/CoSy/math.f t2 avgf |>| 0.8857 | ======================== | Sun.Apr,20210411 | ======================== | | 1703 | ` COSYSTARTFILE ?? | changed all occurances in CoSy.f & Tui.f to ` CoSyStartFile ` />\ ?? | ======================== | Mon.Apr,20210412 | ======================== | variable a 36 a ! | : fib begin dup . 9 emit swap over + a @ 1 - a ! a @ 0 = until ; 36 a ! : fib repeat dup . 9 emit swap over + a @ 1 - a ! a @ while ; 0 1 fib | res> >t0 > # t0 htVM `( repeat while )` ' Help 'm ` fib See | ======================== | Thu.Apr,20210415 | ======================== | ` ASCIIbrowser Dv@ lfVM | { blVM dae } 'm | ======================== | Sun.Apr,20210418 | ======================== | ` memb ?? | ` f? ?? https://forums.dyalog.com/viewtopic.php?f=30&t=1754&p=6892#p6892 | 1814 | | ======================== | Wed.Apr,20210421 | ======================== | f( 24 60 60 )f 1232 24 /mod | 60 /mod .s .s reset ` compile Help ` [ Help ` .\CoSy\CoSy.csy F>/\ ` text v@ lfVM ` script0 conn | ======================== | Fri.Apr,20210423 | ======================== | https://aplwiki.com/wiki/Decode 2. _f 4 _iota i>f ^f f( 1 2 2 2 )f ' f* scanf reverse f( 1 2 3 4 )f *f +/ f( 1 24 60 60 )f ' f* scanf reverse f( 1 60 )f *f +/ f( 100 100 )f ' f* scanf | 1435 _f 1435 100 /mod 2_i cL | ======================== | Sat.Apr,20210424 | ======================== | '( { 0 _i } ' i1 )' | ======================== | Sun.Apr,20210425 | ======================== | https://www.facebook.com/groups/441341066956027/permalink/454257828997684/?comment_id=454606425629491 s" SERPENT KILLERS WELCOME" blVM >t0> s" ... .... ...." blVM >t0> | split the phrase on blanks `( Fact morse )` Dv@ >t1> | Retrieve the table from the Root dictionary | and save as a temp for convenience | It's a list of 2 lists , the 0th is the codes , the 1th is the alphebet t1 1 _at t0 { ' where 'R } 'R >t2> | look up each letter in each word in | the 1th list ( the characters ) . return the indices t2 ' ,/ 'm ( 18 4 17 15 4 13 19 10 8 11 11 4 17 18 22 4 11 2 14 12 4 ) t1 0 _at t2 { ' at 'R } 'R ' blMV 'm | index the morse ( ... . .-. .--. . -. - -.- .. .-.. .-.. . .-. ... .-- . .-.. -.-. --- -- . ) | ======================== | Mon.Apr,20210426 | ======================== | As one line `( Fact morse )` Dv@ .. dsc swap 1th t0 { ' where 'R } 'R ' ,/ 'm { ' at 'R } 'R ' blMV 'm s" SERPENT KILLERS WELCOME" "bl ssd >t0> `( Fact morse )` Dv@ reverse t0 dlb ' v@ 'R | ======================== | Tue.Apr,20210427 | ======================== | | 1841 | blog.csy broken . ` \CoSyWeb\y21\blog.csy F>/\ >t0> # t0 dsc t0 1th #' ,L fmttbl | ======================== | Fri.Apr,20210430 | ======================== | ` \CoSyWeb\y21\blog.csy \/>F | ` C:/CoSyWeb/y21/blog.csy202101262244.csy F>/\ >t1> # t0 t1 ' flip on2 venn >t2> # t2 { ' dsc 'm } 'm fmttbl t2 i( 0 2 )i at ' flip 'm >t3> # t3 1th t3 ` sys ' v@ 'L ` \CoSybob\CoSy\CoSy.csy F>/\ ` text v@ >t0> t0 nub s" C:/CoSyBob/CoSy/CoSy - Copy (8).csy" F>/\ ` ToDo v@ >t0> | ======================== | Sat.May,20210501 | ======================== | | 0808 | | 1027 | w : 211.2 . bath . nap . w : 209.6 | 1326 | ` C:/4thCoSy/debug.log F> rUpdate | Don't knw what it is . deleted | 1411 | ` saveTSclone :?? | updated in ` ./CoSy/Derived.f | 1446 | : saveTSclone R lst>str CoSyStartFile ( was COSYSTARTFILE ) ymdhm cL s" .csy" cL >F ; ` COSYSTARTFILE ?? ` '( ?? | ======================== | Mon.May,20210503 | ======================== | ` does> Help `( Type Count refCount )` >t0> # t0 ' # 'm |>| R0 ,/ R0 +/ | ======================== | Wed.May,20210505 | ======================== | `( does> ' '' 'does (create) (header) [ ['] ] back compile create find find-dict findprev header super> )` R0 ' Help 'm | ======================== | Fri.May,20210507 | ======================== | Ken Boak https://www.facebook.com/groups/441341066956027/permalink/461016558321811/ https://en.wikipedia.org/wiki/NAND_logic ` nand ?? | empty ! https://electronics.stackexchange.com/questions/280855/why-is-there-no-nand-instruction-in-modern-cpus i( 1 1 1 0 )i 4 _iota ' at 'R | ` nand truth table | ======================== | Sat.May,20210508 | ======================== | `D@ Fact flip 1 _cut 589.2 273.15 210. f- _f ` fmt Words 16 _iota fmtI% 16 _iota { >_ 4 '0 binary (p.r) decimal _str ` 1 =c } 'm >t0> t0 { 2 _partition } 'm | ======================== | Fri.May,20210514 | ======================== | C:\Windows\System32\cmd.exe /k "\4thCoSy\Cosy@.bat \CoSyBob\CoSy\CoSy.csy " | ======================== | Sat.May,20210515 | ======================== | | work on comparing directories . ` E:\4thCoSy\ CoSyDir ,L { Dir nlVM ( 7 _cut -3 _cut ) } 'm >t0> t0 { blVM dae .. 3 _take swap 3 _cut blMV enc cL } 'm >t0> s" E:\4thCoSy\" Dir nlVM 7 _cut -3 _cut >t1> t1 { blVM dae .. 3 _take swap 3 _cut blMV enc cL } 'm >t1> t0 t1 { "ht ' MV 'L } on2 venn i( 0 2 )i at s" date_ 30 daylns " forth> 16 05 2021 N 20210515 _i 60 _i +i ' Dayln 'm : Dayln ( int -- dayln ) date_ _DMymd _str daylnTok 1 _cut enc braket ; `( date_ _DMymd :?? | ( yyyymmdd n -- ) | outputs daylines for begining date + n days . : Daylns >a date_ date>fixed _i a> iota +i { >_ fixed>date dayln _str } 'm lfMV ; 20210517 _i 10 _i Daylns | 20210517.2029 | got working | CoSyDir |>| E:\4thCoSy\CoSy\ ec Dir f( 4.88 4.44 1.61 )f 2.56 _f *f | CoSy Box dimensions | ======================== | Sun.May,20210516 | ======================== | | 1514 | | ======================== | Mon.May,20210517 | ======================== | | 1949 | Got ' Daylns working . adding to Furniture.f | ======================== | Wed.May,20210519 | ======================== | ` D:/CoSyWeb/y21/BlogTemplate.mzt ` D:/CoSyWeb/y21/ />\ Dir >t0> `( D:\CoSyWeb\y21 C:\CoSyWeb\y21 )` { Dir nlVM 7 _cut -3 _cut } 'm >t0> t0 t0 { blVM dae .. 3 _take swap 3 _cut blMV enc cL } 'm >t1> | ======================== | Fri.May,20210521 | ======================== | ` today :?? ` _DMymd :?? --cba ec Words ` fmt con ` fmtI :?? ` dtpk :?? ` fixed>date ?? _date dtpk _i 30 _i Daylns ` Today See |>| Today? : Today _date dtpk _i ; | added to Furniture.f Today 30 _i Daylns ` BROWSER Dv@ |>| ""C:\Program Files (x86)\Mozilla Firefox\firefox.exe"" ""C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"" res> ` BROWSER Dv! ` help -> | ======================== | Tue.May,20210525 | ======================== | ` BROWSER ?? | thinking of moving to file to be uniform across CoSy instances ` .\ Dir | ======================== | Wed.May,20210526 | ======================== | ` BROWSER Dv@ ` .\CoSy\BROWSER.txt >F ` ,sv>lst ?? ` <@> :?? 10 _iota i>f .1 _f *f .01 _f +f .. ^f 10 _iota i1 +i i>f .. ^f 1%f +/ | ======================== | Sun.May,20210530 | ======================== | ` lpstk ?? | ======================== | Tue.Jun,20210601 | ======================== | ` <@> ?? | need inverse to convert mailing lists . : NmEm><@> >a> dsc "bl cL a> 1th ` <> braket cL ; | Name Email pair -> name <@> string | Added to Furniture.f | ======================== | Sun.Jun,20210613 | ======================== | | ======================== | Fri.Jun,20210618 | ======================== | 3 _i 6 _i 21 _i apvi >t0> f0. .01 _f 628 _i apv >t1> t1 cosf t0 i>f ' *f 'R >t2> t2 { t1 sinf ' cL 'd } 'm >t3> # t3 ' #' 'm Interesting image . Tho I ought be doing else . I had to see what the logic would look like conver t3 ,/ # `_ cosf ?? ` lst Words 127 6 / _i ` apv :?? | ======================== | Sun.Jun,20210620 | ======================== | ` grade ?? | is ' psort ` psort ?? ` m/d/y>ts :?? ` scanf ?? ` negate ?? ` fill ?? | ======================== | Mon.Jun,20210621 | ======================== | ` fmttbl :?? | factoring ' fmttbl for use particularly w "ht to make invertable | was | : fmttbl { ' fmt 'm blpad pad } 'm flip { blMV } 'm ; | 20200909 | ( table separator -- essentially a pretty csv ) : fmttbl >r { ' fmt 'm blpad pad } 'm flip r> ' MV 'L ; | 20210621.2131 | : fmttblh "ht fmttbl ; ` venn ?? ` >fl ` f( ?? | ======================== | Tue.Jun,20210622 | ======================== | | adding : fmttblb "bl fmttbl ; : fmttbl| s" | " fmttbl ; "bl 2 _i 23 _take ' *i ./ take >t0> # | 8,388,608 blanks | 24 bombed i0 2 _i 23 _take ' *i ./ take >t0> # | 8388608 | 0s i1 2 _i 23 _take ' *i ./ take >t1> # | 2 _i 2 _i 23 _take ' *i ./ take >t0> # | 8388608 t0 t1 +i 10 _take | works ! | 1300 | t1 -1 _i +i | bombs | 1314 | ` grp ?? | ======================== | Fri.Jun,20210625 | ======================== | | ======================== | Sat.Jun,20210626 | ======================== | 7 21 * _i |>| 147 20210101 _i 147 _i Days+ | | Getting hardware serial number . Formatting result of \/ s" wmic bios " Shell> 2 _cut .. c>i i0 >i & at >t0> # t0 lfVM 2 _take >t1> t1 dsc .. "bl <>c >t2> ` 01 swap at ,L t2 ' - _delta i1 =i & >t3> | Discovered fields were demarked by | names with padding to length of corresponding data . | grabbed index of start of each word . t1 t3 ' 0cut 'L fmttbl| rUpdate | ' _delta and ' ': need work . see 20181227 | | Bios SN not useful | 20210627.1038 | | 1456 | From Settings Device name DESKTOP-FT7JERE Processor Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz 2.30 GHz Installed RAM 16.0 GB (15.8 GB usable) Device ID 91457806-97D3-4A88-997B-DF4124AEC81B Product ID 00331-20020-00000-AA065 System type 64-bit operating system, x64-based processor Pen and touch No pen or touch input is available for this display | ======================== | Mon.Jun,20210628 | ======================== | t2 | 3 1 _at nubgrpcx >t3> t3 dsc t2 3 _at ' +/ 'm ,/ t3 1th { at ,/ +/ } 'R ,L fmttbl| : aggregate ( tbl idx -- grouped_1 _at nubgrpcx >t3> t3 dsc t2 3 _at ' +/ 'm ,/ t3 1th { at ,/ +/ } 'R ,L fmttbl| ` C:/CoSyWeb/y21/blog.csybrk F> >t0> # | F>/\ t0 str>lst >t1> # | t1 ` text v@ lfVM # ` C:\CoSyWeb\y21\blog.csy F>/\ ` text v@ lfVM # | ======================== | Tue.Jun,20210629 | ======================== | ec Words ` cosy con Xwords ` C:\CoSyWeb\y21\blog.csybrk F> >t0> # t0 str>lst >t1> dsc ` C:\CoSyWeb\y21\blogtst.csy >F ` bkuplast ?? | ======================== | Wed.Jun,20210630 | ======================== | ` nubgrpcx ?? | ======================== | Mon.Jul,20210705 | ======================== | | got ' aggr right . : aggr nubgrpcx >a> 1th { at +/ } 'R a> dsc swap ,L ; ` aggr :?? | ======================== | Tue.Jul,20210706 | ======================== | | From discussion at | https://www.facebook.com/groups/441341066956027/posts/493731275050339/?comment_id=493839461706187 10 _iota 1 _i +i .. *i >t0> |>| 1 4 9 16 25 36 49 64 81 100 R0 >a> 30 _i | 1 1 1 1 1 0 0 0 0 0 a> R0 & at |>| 1 4 9 16 25 : --aab ; t0 30 _i | 1 4 9 16 25 | ( L R boolverb -- L where bool applied to L R is true ) | 20210706 | : val abca >a xeq & a> swap at ; t0 30 _i ' | 1 4 9 16 25 | adding ' val to CoSy.f ` prt>f ?? | ======================== | Wed.Jul,20210707 | ======================== | | 0744 | 0 _i i( 3 5 )i take ` ^>fl ?? ` f( ?? | ======================== | Fri.Jul,20210709 | ======================== | 1000000. 32. f/ _f | ======================== | Sat.Jul,20210710 | ======================== | `D@ .r ` text v@ # `D@ .r JobHndld_ _getSize `( .r Tui SIZE )` Dv! `D@ .r JobHndld_ _getPos `( .r Tui posXY )` Dv! s" LUCIDA CONSOLE::14" `( .r Tui FONT )` Dv! `D@ .r closeWdo | CLOSE WINDOW | ======================== | Sun.Jul,20210711 | ======================== | res> >t0> # t0 100 _take | c>i nub res> c>i : rGet ` .r Dv@ JobHndlt_ gettxt >a> ` .r ` text ,L Dv! a> ; ` .r ` text cL Dv@ rGet | 1604 | Bill Ragsdale | July 24, 2021 Silicon Valley FIG Challenge: Data Structures This month’s challenge is an exercise in creating a data structure. In August we will apply that data structure. Create a table with four columns with the values for Degrees, Radians and Sin(ref) and Sin(comp) running from 0 degrees to 360 by 36 degree increments (11 entries). The reference Sin(ref) should be manual entries from a known source. Sin(comp) is computed (or using system resident capability). Use any method to express the values. Possibly expressed as scaled integers, ratiometric, floating point or? ` apv ?? 0 _i 36 _i 11 _i apvi i>f >t0> t0 deg>radf >t1> t1 sinf >t2> (' t0 t0 deg>radf >t1> t1 sinf ') R0 fmttblb (' t0 t1 t2 ') flip fmttbl| `_ '( ?? AF1 `( : rGet take )` { van find _i } 'm >t0 AF0 AF> +-splt ` ' Help | :?? " Help" find ' Help 2_i cL : deg>radf { f_ deg>rad _f } 'm ,/ ; : deg>radf ' deg>rad eachMfr ; ` C:/4thCoSy/CoSy/MinJob.csy startJob ` D Words ` rplc ?? | ======================== | Mon.Jul,20210712 | ======================== | From blog | | APL Dinosaurs: Retired from programing but can't forget their love of APL! https://www.facebook.com/groups/2846194362322940/posts/2933162586959450/ | Bob Armstrong | I remembered I had finally done some minimal graphics in CoSy in the last year or so . But it was embarrassingly difficult to track it down given that a central purpose of CoSy is not to forget things . | Anyway , I finally narrowed it down to having graphed my electric bills on the property over the last couple of years . I never transferred the work over to my public http://cosy.com/4thCoSy/Code/CoSy/WorkLog.txt ( text from Job ) . | Certainly won't lose track of it again . Anyway , here's the image created : http://cosy.com/y20/tstsvg.html | 1811 | | adding partial script from my acnts/y20/ dir s" mkdir " (' CoSyDir ` Graphics ') ,/ >t0> cL | Shell t0 Dir t0 ` \svg.f cL ec R0 >F ` \4thCoSy\CoSy\Graphics\svg.f F> rUpdate | rGet ` \4thCoSy\CoSy\Graphics\svg.f >F | 0012 | | ======================== | Wed.Jul,20210714 | ======================== | | saving to web | | ======================== | Thu.Jul,20210715 | ======================== | | ======================== | Sat.Jul,20210717 | ======================== | ` ALPHabet Dv@ >t0> 26 _take t0 26 _cut cL Dnames ` flip :?? ` ,/ ?? ` ?? Words | ======================== | Mon.Jul,20210719 | ======================== | ` blpad ?? : ?pad 2p> # -1*i take R@ strmatch_ if L@ 2P> ;then L@ R@ cL 2P> ; | ( str suffix -- str ) append suffix , eg: "bl , iff not already suffixed . | ` asdf ` q ?pad |>| asdfq | ` asdf ` f ?pad |>| asdf | 20210719.2309 | : bl?pad { "bl ?pad } 'm ; | pad each item ( str ) w blank if not already | ` $ Words ' :?? 'm ` d See | ======================== | Sat.Jul,20210724 | ======================== | | 1431 | ` ?? Words ' ?? 'm ` ?? ?? R0 >t0> t0 reverse dsc res> # | ======================== | Sun.Jul,20210725 | ======================== | | 1507 | ` ?? ?? ` CShelpFul ?? R `( sys CoSySource )` v@ >t0> # |>| 17 t0 { F> # } 'm ,/ |>| 66400 1555 13616 2465 3205 18391 3573 3418 3199 11975 2909 44082 36360 17049 12431 33741 4658 R0 +/ |>| 279027 ` emptyLn ?? "nl "nl cL refs+> value emptyLn | MS-DOS definition of blank line . must be changed for UNIX \n t0 { F> emptyLn VM # } 'm ,/ |>| 379 12 94 14 15 100 16 19 31 81 38 109 141 33 1 211 21 R0 +/ |>| 1315 | ======================== | Mon.Jul,20210726 | ======================== | | ======================== | Tue.Jul,20210727 | ======================== | t0 { F> # } 'm >t1> t1 ' cL across ` ,/ See ` >value ?? | commented out ' TypeDic in CoSy.f ` ` `( ?? See )` ' 'R ` +/ :?? ` +ia ?? `_ $ ?? | added to util.f | alias: $ swap | 20210727 | http://cosy.com/y21/Blog.html#20210727 | ` ws ?? : dlws 1p> dup { 32 > } f?m | ======================== | Mon.Aug,20210802 | ======================== | ` venn ?? `( tom dick gail harry )` `( gail jill tom ted )` venn | ======================== | Wed.Aug,20210804 | ======================== | ! @ # ` $ See 0 1 $ ` ,svMsk ` ?? ?? 0 _i 10000 _i take ` cut :?? ` 'm ?? ` toksplt ?? R dsc # | ======================== | Sun.Aug,20210815 | ======================== | `( .r text )` Dv@ 0 ` C:/4thCoSy/CoSy/WorkLog.csy202108151813.csy F>/\ ` state v@ >state Somehow replace | ======================== | Mon.Aug,20210816 | ======================== | ` lastSave Dv@ ymd.hms ,L ` . ' prtt0> t0 f( 1 -1 )f *f : conj f1. f-1. cL ; f( 1 -1 1 1 )f i( 2 2 )i take `( braket braketed )` ' :?? 'm | ======================== | Mon.Sep,20210906 | ======================== | ` ./CoSy/math.f F> Eval ec Words ` rand con ( randf rand _rand _rand_ ) ` ./CoSy/math.f F> Eval 4 _i randf >t0> 0.7024 0.4183 0.6396 0.9707 20 _i randf i( 4 5 )i take >t1> ( 0.9430 0.1332 0.8110 0.3945 1.0000 0.6982 0.8938 0.6728 0.4460 0.4020 0.7066 0.3675 0.7029 0.4189 0.6646 0.0680 0.7129 0.7081 0.7513 0.1478 ) : dot *f +/ ; t1 t0 ' dot 'L ( 2.3222 2.0099 1.9731 1.6319 ) R0 ,/ | ravel to homogeneous float 2.3222 2.0099 1.9731 1.6319 ` convo ?? norm | ======================== | Tue.Sep,20210907 | ======================== | 2 7 + 0 + 10 * 50 + _i |>| 140 2 7 + 0 10 * + 50 + _i |>| 59 50 10 + 0 * 7 + 2 + _i |>| 9 50 10 0 * + 7 + 2 + _i |>| 59 1 2 3 4 -rot .s 1 4 2 3 1 2 3 4 --cab .s | ======================== | Fri.Sep,20210910 | ======================== | EuroForth | 0838 | | Changed ` Refs to ` Ref# | 20210910.2051 | not used in any fns | ======================== | Sat.Sep,20210911 | ======================== | | ======================== | Sun.Sep,20210912 | ======================== | | Depricating : ` tstScript Dv@ ` ./CoSy/tstScript.f >F ` ./CoSy/tstScript.f F> | ======================== | Tue.Sep,20210914 | ======================== | rGet ` C:/CoSyWeb/index.html >F | F> rUpdate | ======================== | Thu.Sep,20210916 | ======================== | ` ./CoSy/Tui.f F> ` C:/Users/bob/OneDrive/calls-20210916175724.xml F> ` C:/Users/bob/OneDrive/sms-20210916175724.xml F> 1000 _take | ======================== | Sun.Sep,20210919 | ======================== | https://www.facebook.com/groups/PROGRAMMINGFORTH/permalink/2756589324641084/?comment_id=2756726524627364 ` sort Words ` psorti :?? ( ./CoSy/sort.f | ` permute & sort integer . Returns list of items and their index ( grade )in original | 20210331 | : pcmpri_ { dsc >_ } on2 < ; : psorti >a> # iota a> swap ,L flip ' pcmpri_ is compare rep dup van cells/ hsort ; ) i( 1 3 0 2 4 )i >t0> 1 3 0 2 4 t0 psorti | returns list of pairs of sorted elements & their index R0 flip R0 ' ,/ 'm | ` ravel each into integer lists ( 0 1 2 3 4 2 0 3 1 4 ) i( 1 3 0 3 4 )i >t0> | demo of failure to preserve order t0 t0 psorti flip ' ,/ 'm ,L | 1148 | | 2219 | | ======================== | Tue.Sep,20210921 | ======================== | res> >t0> t0 ` C:/CoSyBob|BobA.csy|BobA.csy202109191651.csy| fullPaths `( C:/CoSyBob/BobA.csy C:/CoSyBob/BobA.csy202109191651.csy )` ' F>/\ 'm >t0> # t0 { dsc blMV } 'm t0 dsc dsc enc t0 { 1th #' } 'm cL fmttbl| ` f> See | Help ` 0 Words 1. 0. $ f> _i 5. f+ _f ` 1th ?? | ======================== | Wed.Sep,20210922 | ======================== | 4 _i Im | ======================== | Thu.Sep,20210923 | ======================== | | slow growth to infinity of sum of recipricals | | Mathologer | 700 years of secrets of the Sum of Sums (paradoxical harmonic series) https://youtu.be/vQE6-PLcGwU 100 _iota i1 +i i>f 1%f +\ ` aaplym :?? | ======================== | Fri.Sep,20210924 | ======================== | | decided to clone off presentations & demos R ` ./CoSy/Presentations.csy \/>F ` ./CoSy/Presentations.csy F>/\ >t0> # ` ./CoSy/Presentations.csy startJob | requires .csy suffix ` %f :?? | ======================== | Sun.Sep,20210926 | ======================== | `( sys Tui caret )` Dv@ ` Tui v@ ` caret v@ ec Words ` fmt con ` fmtnI :?? | ======================== | Mon.Oct,20211004 | ======================== | text> "lf =c >t0> # |>| 149411 t0 ' +i ./ |>| 4443 ` ;then Help | ======================== | Wed.Oct,20211006 | ======================== | ` i@ :?? ` <> Help ` <> ?? | ======================== | Fri.Oct,20211008 | ======================== | ` ` :?? res> >T0> # |>| 13273 | chars T0 "lf VM # |>| 295 | lines T0 "bl VM # |>| 4735 | words | more interesting , number of words in each line T0 "lf VM { "bl VM # } 'm ,/ |>| 8 1 77 1 8 5 7 8 6 5 15 ... ` 'm :?? ` iterator ?? | ======================== | Sat.Oct,20211009 | ======================== | From https://www.facebook.com/groups/PROGRAMMINGFORTH/posts/2770599469906736/?comment_id=2771517779814905 https://github.com/dhepper/font8x8/blob/master/font8x8_basic.h res> >T0> | 1440 | s" screen scraped from https://github.com/dhepper/font8x8/blob/master/font8x8_basic.h 20211009 " R0 T0 ,L >t0> | t0 ` C:/CoSyWeb/CoSy/y21/8x8bitmapFont.csd \/>F T0 T0 lfVM # ` // ' prtt0> | Split into lines ; grab parts before comments eliminate multiple blanks t0 ` {,} enc' { ' ssd Y./ ` 0x ssd } 'L >t1> | eliminate each of { , and } . and ` 0x t1 { hex iEval decimal } 'm >t1> | turn each into integers | fixed bug in ` iEval in CoSy.f | ` C:/CoSyWeb/CoSy/y21/8x8bitmapFont.csd .. F>/\ t1 ,L $ \/>F t1 { fmtI% -8 _i ' take 'L ` 1 ' =c 'L } 'm >t2> t2 ` ! c>i 32 _i -i at s" #" R0 ' at 'R ( ## #### #### ## ## ## ) ` prti 32 _i -i ' at 'R >t3> t3 dsc s" #" t2 { ' at 'R } 'R t3 dsc at t3 dsc | { ' flip 'm ,/ } 'm t3 dsc t3 1th ' cL 'd t3 { ' cL 'd } ./ cL ./ t1 | { fmtI% -8 _i ' take 'm } 'm >t2> | { Eval _i } 'm ` binary ?? res> rUpdate | ======================== | Sun.Oct,20211010 | ======================== | ` C:/CoSyWeb/CoSy/y21/8x8bitmapFont.csd F>/\ >t0> t0 1 _at >t1> ' fmtI$ 'm flip fmttblb t1 3 _at fmtI% { -8 _take ` 1 =c } 'm s" 1" $ ' at 'm R0 ` c>i 'm -8 _i ' take 'L ` 1 ' =c 'L ` fmtI% :?? : fmtnI% binary fmtnI decimal ; t1 1th 5 _i fmtnI ` fmtnI ?? 5 5 (.r) _str ` (.r) Help T0 lfVM .. # iota fmtI $ ' cL 'd ilst ' cL 'm T0 | ======================== | Thu.Oct,20211014 | ======================== | `( Fact Fact )` Dv@ lfVM ` light con : c 2.99792458e8 _f ; | lightsecond | "speed" of light / M%S ( definitional ) .23 _f c %f >t0> fmtF18 ,/ |>| 0.000000000767197418 | sec % cycle t0 10.e9 _f *f |>| 7.6720 | or nanoseconds per cycle R0 230. _f %f |>| 0.0334 | 1 mm corresponds to 33 picosecond ` Tau ?? 230. _f `( Fact Fact )` Dv@ lfVM ` pi con `__ pi ?? ` fmt Words ` %f Words | ======================== | Mon.Oct,20211018 | ======================== | https://www.facebook.com/groups/PROGRAMMINGFORTH/posts/2778612962438720?comment_id=2778617535771596&reply_comment_id=2778654842434532 https://forth-standard.org/standard/core Screen scraped . Pasted into ` res window . res> lfVM dae >T0> | grabbed , split on line feeds , deleted empties , saved in persisting temp . T0 ' drb 'm "bl ' prt>f 'L blMV | deleted redundant blanks in each then took part after 1st blank . | then converted to simple blank delimited string . R0 ` C:/CoSyWeb/CoSy/y21/ForthStdWords.txt >F | 1418 | | ======================== | Wed.Oct,20211020 | ======================== | ` http://cosy.com/CoSy/y21/ForthStdWords.txt F> res> >t0> # t0 blVM >t0> # t0 nub # | ======================== | Fri.Oct,20211022 | ======================== | ` rtext Dvdel | Extranious early ` ./CoSy/Job.f Ft s" | \/ OPERATORS \/ =" s" | /\ OPERATORS /\ =" ,L braketed lfVM dae >t0> t0 ` : in ` in :?? ` : tokcut 1 _cut { blVM 1 _at } 'm ` >lst Words : tst 1 2 2 s>iv ; tst ` n Words 20 _partition ' blMV 'm ` s_n>iv ?? : Sassoon 7 23 2 s>iv take .. ' reverse 'm ' cL 'd .. reverse cL ; s" 4th ^ CoSy " Sassoon | ======================== | Sat.Oct,20211023 | ======================== | | ======================== | Mon.Oct,20211025 | ======================== | : Sassoon 7 23 2 s>iv take .. ' reverse 'm ' cL 'd .. reverse cL ; s" HA HA HA " Sassoon | ======================== | Tue.Oct,20211026 | ======================== | | em> Conor Hoekstra , re: Algorithms as a Tool of Thought . https://youtu.be/GZuZgCDql6g : match0th 1p> dup dsc ' match 'L ,/ 1P> ; | bool of items of a list matching the first . 5 _iota match0th |>| 1 0 0 0 0 : all= match0th ' mini ./ ; | are all items in a list identical ? 5 _iota all= |>| 0 ` all Words | ======================== | Sun.Oct,20211031 | ======================== | | 1015 | ` BROWSER Dv@ ` .\CoSy Dir ` .\CoSy\BROWSER.txt F> ` www :?? ./CoSy/Furniture.f : www ( str -- ) R s" BROWSER" v@ | open URL in BROWSER swap cL shell^ ; | ` == is not defined . making it alias for ` match in CoSy.f | | 1041 | ` BROWSER Dv@ ` .\CoSy\BROWSER.txt F> == : www ( str -- ) ` .\CoSy\BROWSER.txt F> "bl cL $ cL shell^ ; | open URL in BROWSER . .\CoSy\BROWSER.txt must be string to open browser . | Changed from vestigial R s" BROWSER" v@ to centralize 20211031.1053 Need to change ` F1 help | 1056 | `( flower flow flight )` >t0> t0 flip ' ,/ 'm >t1> ' all= 'm | t1 `( Type # Ref# )` ' Eval 'R ( ./CoSy/Furniture.f : match0th 1p> dup dsc ' match 'L ,/ 1P> ; | bool of items of a list matching the first . | 20211026 : all= match0th ' mini ./ ; | are all items in a list identical | 20211026 t1 ' all= 'm ` all= :?? t1 # ` flip See ` flip :?? ` Ref# :?? ` all= ?? `( dog racecar car )` ,L | ======================== | Fri.Nov,20211105 | ======================== | Fixed ' Flip was refs+> dup ['] rho 'm ,/ ['] min _./ >_ cellVecInit >aux> | ob nbdy ... now refs+> dup ' # 'm ,/ ' mini ./ >_ cellVecInit >aux> | fixed in CoSy.f | 1732 | | actually first used #' but bombed because not defined til ` furniture.f loaded t1 `( flower flow flight )` >t0> ( flower flow flight ) R0 flip >t1> `( flower flow flight )` >t0> flip ' ,/ 'm ' all= 'm ,/ i0 ' =i f? 2 t0 dsc R0 take fl `( flower flow flight )` ( flower flow flight ) R0 flip ( ( f f f ) ( l l l ) ( o o i ) ( w w g ) ) R0 ' ,/ 'm ( fff lll ooi wwg ) ` flip :?? ` ./CoSy/CoSy_.f F> ` #' :?? ` f? :?? ` 1s Words ` prtfl to sort w str>i | 20211111.2358 | in CoSy.f ` str>f ?? ` str> Words ` f( ?? ` 3.14 str>f ` ssd ?? ` nub :?? ` | ======================== | Sun.Nov,20211114 | ======================== | | 0004 | ` C:/4thCoSy/Physics/general.f F> | Eval : Gforce ( r m0 m1 -- f ) *f $ ^2f %f G *f ; ` fnegate Help : negatef ' fnegate eachMfr ; | Added to float fns in CoSy.f | 20211114 | 3.41 _f negatef |>| -3.4100 f( 1234 -2 )f negatef : Genergy ( r m0 m1 -- e ) *f $ %f G *f negatef ; ` nub :?? See my post in the Dyalog forum on : Re: Symbols for sort idioms https://forums.dyalog.com/viewtopic.php?f=30&t=1816&start=10#p7177 | ======================== | Fri.Nov,20211119 | ======================== | ` .r Dv@ ` Tui v@ ` posXY v@ i( 1500 100 )i ` .r Dv@ ` Tui v@ ` posXY v! i( 1500 200 )i `( .r Tui posXY )` Dv! ` \CoSyBob\BobA.csy F>/\ >t0> t0 dsc t0 1th #' ,L fmttbl| ` C:/4thCoSy/CoSy/MinJob.csy startJob | ======================== | Tue.Nov,20211123 | ======================== | ` *f :?? : *f ['] f* eachDfr ; | * 2 float vecs ` :?? :?? res> lfVM # ` C:/4thCoSy/CoSy/math.f F> lfVM ` dot con : dotform >r xeq r> ./ ; f( -1 0 1 )f f( 1 2 3 )f ' =f ' +i dotform ` =f ?? ` xeq See | ======================== | Sat.Nov,20211127 | ======================== | | 1058 |* *| 1130 | | 1227 |* *| 1348 | | 1358 |* *| 1426 | | 1450 |* *| 1542 | res> >T0> T0 "lf ssd drb s" | |" toksplt >t0> t0 { ` | ssd ` * ssd drb dtb } 'm >t1> : iEval s" i( " s" )i " ,L braket Eval ; ` i( ?? : tst s" 1 2 3 4 " iEval ; tst t1 dsc blVM i( 2 2 )i ' take 'L str>i t1 i( 0 1 4 2 3 4 5 6 4 7 8 )i { at iEval } 'L >t2> t2 i( 60 1 60 1 )i { *i 2 _i 2 _take take ' +/ 'm ,/ ' -i ./ } 'L ,/ +/ -1*i 193 350. 60. f/ _f |>| 5.8333 193. 5.83 2_f *f | ======================== | Sun.Nov,20211128 | ======================== | : hm>min 2 2 2 s>iv take blMV iEval 60 1 2 s>iv *i +/ ; T0 "lf ssd "bl braket s" | " VM dae >t0> t0 { ` * ssd ` | ssd drb blVM ' hm>min 'm ,/ ' -i ./ } 'm : ONtimes "bl braket s" | " VM dae { ` * ssd ` | ssd drb blVM ' hm>min 'm ,/ ' -i ./ } 'm ; T0 "lf ssd ONtimes f( 350 60 )f ' %f ./ |>| 5.83 s" 0123456789 " ' membv 'L ` membv :?? ec Words ` num con s" | 1058 |* *| 1130 | | 1227 |* *| 1348 | | 1358 |* *| 1426 | | 1450 |* *| 1542 |" >T0 T0 ONtimes R0 ,/ +/ |>| -193 193. _f 5.83 _f *f |>| 1125.19 | ======================== | Mon.Nov,20211129 | ======================== | ` job Words | ec con ` Words :?? ` job Words | | Restructuring ' Words to use con to be case insensitive | : Words ( str -- strL ) s" words " forth> blVM -2 _i cut swap con ; | | was | | : Words ( str -- strL ) s" words " swap cL forth> blVM -2 _i cut ; | ` Fixing ` bug in ' cconb that all phrases contain the empty string . | All other ` con words are based on this word . | was : | : cconb ( strings str -- bool ) | returns bool where stings in LA contain RA | 2refs+> 2dup ['] ssc eachleft { i# sn _i } eachM> ,/ --cab 2refs- ; | ( strings str -- bool ) | returns bool where stings in LA contain RA | returns all 1s for empty str | 20211129 | : cconb 2p R@ i# 0if i1 L@ # take 2P> ;then LR@ ' ssc 'L { i# sn _i } 'm ,/ 2P> ; : newJob ` C:/4thCoSy/CoSy/MinJob.csy F> $ >F ; ` C:/CoSyBob/People/HeidiToillion.csy newJob ` C:/CoSyBob/People/HeidiToillion.csy startJob | ======================== | Fri.Dec,20211203 | ======================== | | From http://cosy.com/K/math.txt : | pv : { +/ y * x ^ # y } ; pv..h : " Present Value of stream y at rate x " : pv 2p> --aab # ^f *f +/ 2P> ; | ======================== | Mon.Dec,20211206 | ======================== | | while working on accounts | added to : Fbackup .. F> $ ` .bk cL >F ; ` i1 ?? ` C:/CoSyBob/acnts/y21/BobA/PSBT.ctb Fbackup | ======================== | Fri.Dec,20211210 | ======================== | | replying to Bill Ragsdale Factorial challenge at https://www.facebook.com/groups/forthprogrammingretrodev/posts/1185871178488035?comment_id=1185909581817528 | decided worth it to add ` : 1+i i1 +i ; | to monadic integer verbs in ` CoSy.f . 479001600. 13. f* _f | factorial . integer overflow after 12 !*! | : !*! iota 1+i ' *i ./ ; | ======================== | Wed.Dec,20211215 | ======================== | ` Job Words | should have added to ` Furniture.f back on 20211129 | : newJob ` C:/4thCoSy/CoSy/MinJob.csy F> $ >F ; | \/ | deleted from Furniture for cleanliness | : start s" start C:\\Windows\\System32\\cmd.exe " swap cL shell^ ; | start DOS program in separate command shell which evaporate on completion . | 20200609 | doesn't work for some reason . needs the ` /k | ======================== | Thu.Dec,20211216 | ======================== | ` */ Help | ======================== | Fri.Dec,20211217 | ======================== | | 2110 | `( sys Tui )` Dv@ fmttbl| d1 @ _getPos `( sys Tui posXY )` Dv! | Stores current upper left corner for restart d1 @ _getsize | `( .r Tui SIZE )` Dv! ` getsize ?? ` getpos ?? | ======================== | Sun.Dec,20211219 | ======================== | Brad Nelson Big Num Factorial | https://youtu.be/8WCz9snOrOk ` >value :?? ` value Help ` >>fl :?? 100 i1+ 20 _iota 128 dump ` DMP :?? ` i( :?? | ======================== | Mon.Dec,20211220 | ======================== | ` newJob :?? | added passthru version : newJob> .. : newJob ` C:/4thCoSy/CoSy/MinJob.csy F> $ >F ; ` CoSy Words .. ' Eval 'm ,L fmttbl| | bug | `D@ .r JobHndld_ _getPos enc >t0> t0 `( .r Tui posXY )` Dv! `( .r Tui posXY )` Dv@ `( .r Tui posXY )` Dv! `( .r Tui )` Dv@ `( .r Tui )` Dv! | ======================== | Fri.Dec,20211224 | ======================== | ` TISH i( 2 3 1 0 )i at | ======================== | Mon.Dec,20211227 | ======================== | | added to ` ./CoSy/Furniture.f | first trie 20211206 using ' .. not yet defined . : Fbackup >a> F> a> ` .bk cL >F ; | 20211227 | self expla | ======================== | Tue.Dec,20211228 | ======================== | ` C:/4thCoSy/CoSy/math.f F> Eval i( 2021 2022 )i ' factors 'm >t0> i( 2021 2022 )i t0 ' /i 'd t0 | ======================== | Fri.Dec,20211231 | ======================== | ` C:/4thCoSy/Physics/general.f | F> Eval ` C:/CoSyWeb/Science/Physics/Physics.csy ` newJob ?? ` C:/CoSyWeb/Science/Physics/Physics.csy startJob ` C:/4thCoSy/CoSy/MinJob.csy startJob 100 _iota 1+i | 1230 | 2021 _i factors | 2021 is a semiprime https://en.wikipedia.org/wiki/Semiprime | 20220101.1920 | ` C:/4thCoSy/CoSy/math.f F> | Eval i( 2021 2022 )i ' factors 'm i( 2021 2022 )i >a> ' factors 'm .. a> $ ' /i 'd ' ,L 'd 1944 _i 80 _iota +i >t0> ' factors 'm t0 $ ,L flip | 1608 | ` Fact Dv@ ` C:\CoSyWeb\Science\Physics\Fact.csl \/>F `D@ .r JobHndld_ _getSize `( .r Tui SIZE )` Dv! `D@ .r JobHndld_ _getPos >t0> t0 # t0 `( .r Tui posXY )` Dv! R `( .r Tui posXY )` Dvx >t0> @ ` v@ :?? s" LUCIDA CONSOLE::12" `( .r Tui FONT )` Dv! `D@ .r closeWdo | CLOSE WINDOW ` _getPos See | ======================== | Sat.Jan,20220101 | ======================== | | \/ run on sentence creating HTML for braketing table | `( table tbody tr td )` >a> ` <> ' braket 'L R0 ,/ "bl cL a> ` ,L ' braket 'L reverse ,/ cL
s" Happy 2022 !!! " 2022 _take | 2135 | Removing ' savetmp from Tui ' go . Didn't seem to cure anything | | : savetmp ( callback ) savetext ." 5 " saverestxt ." 4 " savestate ." 3 " | bkuplast ." 2 " R lst>str ." 1 " CoSyStartFile ` tmp cL ." 0 " >F saveLastsave savecaret ; | ======================== | Sun.Jan,20220102 | ======================== | From | C:\CoSyWeb\Science\Physics\Physics.csy But the damn window positioning storage failure ! | got it moved by detour don't understand . | 1054 | rShow R0 `D@ .r JobHndld_ _getSize >t0> | 804x1099 869x1114 `( .r Tui SIZE )` Dv@ | 804x1099 869x1114 t0 `( .r Tui SIZE )` Dv! `D@ .r JobHndld_ _getPos >t0> | 1795 146 `( .r Tui posXY )` Dv@ | 912 1 i( 1795 146 )i R0 `( .r Tui posXY )` Dv! t0 `( .r Tui posXY )` Dv! t0 `( .r Tui posXY )` Dv@ | Dv! s" LUCIDA CONSOLE::12" `( .r Tui FONT )` Dv! `D@ .r closeWdo | CLOSE WINDOW | 1210 | ` C:/4thCoSy/Physics/general.f F> rUpdate | 1552 | ` \4thCoSy\CoSy\CoSy.csy F>/\ >t0> # t0 ` text v@ rUpdate i( 1 2 3 )i >t0> DMP R DMP ` save :?? ` F ` prt ` Words :?? ` state v@ ` ./CoSy/CoSy.f F> | "lf VM # `( qwer z eqt )` | 1625 | 20220102.1625 | ======================== | Sun.Jan,20220109 | ======================== | s" Hello World " >t0> Hello World t0 reverse dlroW olleH | ======================== | Wed.Jan,20220112 | ======================== | ` . "bl braket ?? ` #> ?? s" (.r)" `( :?? Help )` ' Eval 'R ` ?? ` base Help ` lst :?? ` I. :?? `( (.) (p.r) . .2x .r .x ? base hex# padchar )` ' Help 'm ` (.r) ?? | ======================== | Fri.Jan,20220114 | ======================== | ` libraries Help ` \/ 2 _i 900 _rand at 15 _partition ` \/ c>i 33 33 * _i | ======================== | Sat.Jan,20220122 | ======================== | ` dayln ?? Fst thursday year # | Week # 2022 4 /mod .s | (2) 2 505 25 /mod .s | (3) 2 5 20 4 mod .s | (3) 2 5 0 0 = .s | (3) 2 5 -1 swap .s | (3) 2 -1 5 0 <> .s | (3) 2 -1 -1 or .s | (2) 2 -1 swap 0 = .s | (2) -1 0 and .s | (1) 0 | Brad Nelson's Leap Year fn https://youtu.be/dU3ZE8Ev6d8 : leap? ( n -- f ) 4 /mod 25 /mod 4 mod 0 = $ 0 <> or $ 0 = and ; 2000 leap? _i : leap? ( n -- f ) 4 /mod 25 /mod 4 mod 0 = || $ 0 = && ; ` || Help ` && :?? Interesting metric : " The O(m×n) algorithm compares sequences, calculating the minimum number of edits required to transform one into the other. " https://dfns.dyalog.com/n_dist.htm ` C:/CoSyWeb/y22/bob@cosy.com0785.html F> | ======================== | Fri.Jan,20220128 | ======================== | ` does> ?? ` does> Help ` create Help | ======================== | Sat.Jan,20220129 | ======================== | ec Help : leap? ( n -- f ) 4 /mod 25 /mod 4 mod 0 = or $ 0 = and ; : leap? ( n -- f ) 4 /mod 25 /mod 4 mod 0 = || $ 0 = && ; 2000 leap? _i ` not See `( leap? /mod mod = or $ = and )` .. ' See 'm ,L flip ` --cdab See ` /_mod See ` _mod ?? | ======================== | Fri.Feb,20220204 | ======================== | https://www.facebook.com/groups/minimalistcomputing/posts/615490209541111 res> "bl ` _ ,L ssr ` \ "bl ,L ssr "bl ` _ ,L ` ,L :?? ` ssr :?? `( @ ! )` ' See 'm | ======================== | Sat.Feb,20220205 | ======================== | ` sinf ?? | https://byjus.com/maths/cardioid/ | poorly written order . cost me time 20220212.2048 https://mathworld.wolfram.com/Cardioid.html https://en.wikipedia.org/wiki/Cardioid x = a cos t (1 – cos t) y = a sin t (1 – cos t) : cardioid 1p> cosf f1. $ -f R@ *f `( cosf sinf )` ' Eval 'R ; | ? https://www.facebook.com/groups/PROGRAMMINGFORTH/posts/2857430091223673/ reverse bits 123456789 _i fmtI% ,/ .. reverse ,L ( 111010110111100110100010101 101010001011001111011010111 ) 123456789 _i fmtI% ,/ reverse van binary eval decimal _i 88448727 ` reverse :?? | ======================== | Sun.Feb,20220206 | ======================== | DUP 55555555 AND 2/ SWAP AAAAAAAA AND 2* OR DUP 33333333 AND 4 / SWAP CCCCCCCC AND 4 * OR DUP 0F0F0F0F AND 8 / SWAP F0F0F0F0 AND 8 * OR DUP 00FF00FF AND 16 / SWAP FF00FF00 AND 16 * OR DUP 0000FFFF AND 32 / SWAP FFFF0000 AND 32 * OR res> >T0> T0 `( DUP AND SWAP OR )` `( dup and $ or )` ,L flip ' ssr Y./ >t1> s" : reversebits [ hex ] " t1 cL s" [ decimal ] ; " cL Eval ` reversebits See i( 123456789 1234567890 )i { fmtI% ,/ } 'm 1234567890 reversebits _i >t0> 2_i cL fmtI% 1 dup reversebits 2_i cL fmtI% `( fmtI fmtI% )` ' :?? 'm ` (.r) Help 1234567890 32 binary (.r) _str decimal 1001001100101100000001011010010 # 1234567890 reversebits 32 binary (.r) _str decimal 11100110001001100000010010110001 1234567890 32 binary (.r) `( and && )` ' Help 'm ` hex Words 5 4 and _i 16 _iota { .. fmtI$ $ fmtI% cL blMV } 'm 2. 290. 2_f %f ` sx ?? | ======================== | Wed.Feb,20220209 | ======================== | | ======================== | Fri.Feb,20220211 | ======================== | Continuing & editing from 20220205 | For SV-FIG demo 20220226.0809 | : cardioid 1p> cosf f1. $ -f R@ *f >a> cosf a> sinf ,L 1P> ; | WRONG from byjus | x = (1 – cos t) * ( cos t ) | y = (1 – cos t) * ( sin t ) : Tau Pi 2. _f *f ; | rather than loading all ` C:/4thCoSy/CoSy/math.f F> rUpdate 41 _iota i>f 40. _f %f Tau *f >T0> | Generate 41 covering 0 to Tau 0.0000 0.0250 0.0500 0.0750 0.1000 0.1250 0.1500 ... | Cardioid in CoSy . : cardioid 1p> f1. $ cosf -f >a> R@ cosf R@ sinf ,L a> ' *f 'L 1P> ; T0 cardioid >t0> ( 0.0000 0.0122 0.0465 0.0971 0.1545 0.2071 0.2423 ... 0.0000 0.0019 0.0151 0.0495 0.1123 0.2071 0.3335 ... ) | scale & translate . negative flips that axis . t0 f( -100 80 )f ' *f 'd f( 50 120 )f ' +f 'd >t1> | Idiosyncratic verb to convert format to .svg coordinate string : svgfmt ' f>i 'm flip { ,/ fmtI } 'm ` , ' MV 'd blMV ; | format for .svg t1 reverse svgfmt >t2> | the ' reverse flips the X and Y axes . 120,50 120,48 121,45 123,40 128,34 136,29 146,25 ... | -- ` C:\4thCoSy\CoSy\Graphics\tstsvg.html F> rUpdate res> >t3> t3 res> ,L >t3> t3 dsc t2 cL t3 1th cL ` C:\4thCoSy\CoSy\Graphics\tstsvg.html >F C:\4thCoSy\CoSy\Graphics\tstsvg.html t1 | flip { ,/ fmtI } 'm ` , ' MV 'd blMV T1 dsc res> enc T1 0 _at! T1 T1 res> ,L >T1> T1 dsc t2 reverse scale cL T1 1th cL res> ` C:\4thCoSy\CoSy\Graphics\tstsvg.html >F t0 res> enc T1 0 _at! T1 T1 dsc T1 1th res> enc T1 1 _at! ` C:\4thCoSy\CoSy\Graphics\tstsvg.html T0 : scale { 50. _f *f 150. _f +f f>i } 'm flip { ,/ fmtI } 'm ` , ' MV 'd blMV ; t2 f( -100 80 )f ' *f 'd f( 100 )f ' +f 'd ' f>i 'm >t3> t3 reverse flip { ,/ fmtI } 'm ` , ' MV 'd blMV >t4> T0 .. cosf ,L { 100. _f *f 100. _f +f f>i } 'm flip { ,/ fmtI } 'm ` , ' MV 'd blMV T1 1th T1 dsc t4 cL T1 1th cL ` C:\4thCoSy\CoSy\Graphics\tstsvg.html >F T1 res> T1 1 _at! ` \4thCoSy\CoSy\Graphics\svg.f F> rUpdate ` C:\CoSyBob\acnts\y20\tstsvg.html F> ` \4thCoSy\CoSy\Graphics\tstsvg.html >F res> >T1> T1 ` C:\4thCoSy\CoSy\Graphics\tstsvg.html >F C:\4thCoSy\CoSy\Graphics\tstsvg.html 7. _f c>f ` c>f See : tst 1p> R@ ,L 1P> ; 1. _f tst | ======================== | Sun.Feb,20220213 | ======================== | ` dayln ?? | ======================== | Sun.Feb,20220220 | ======================== | variable prior : numeral ( n ) create , does> @ prior @ over < if prior @ 2* - then dup prior ! + ; 1 numeral I 5 numeral V 10 numeral X 50 numeral L 100 numeral C 500 numeral D 1000 numeral M : digit ( a ) 1 find-name name>int execute ; `( find-name name>int )` ' See 'm `( : no 0 prior ! 0 bl parse 0 do dup >r digit r> 1+ loop drop ; )` ' See 'm BL ` digit See ` parse ?? ` BL ?? ` strings ec Help Xwords ' dsc 'm res> lfVM ` lf con `__ lf | ======================== | Sun.Feb,20220227 | ======================== | | 0854 | ` C:/CoSyBob/BobA.csy F>/\ >t0> t0 ` C:/CoSyBob/BobA.csy \/>F ` newJob :?? ` C:/4thCoSy/CoSy/MinJob.csy F> ` C:/4thCoSy/CoSy/MinJobOrg.csy >F ` C:/4thCoSy/CoSy/MinJob.csy F> ` C:/CoSyBob/BobA.csy >F startJob ` C:/CoSyBob/BobA.csy F> ` ` C:/CoSyBob/BobA.csy202202270843.csy F> ` C:/CoSyBob/BobA.csy >F Randy A MacDonald BD f( 60 365.25 )f ' *f ./ f>i >t0> |>| 21914 22000 _i t0 -i |>| 86 | 1115 | w : 214.2 | 1158 | f( -18.9 16.0 )f | 1245 | ` C:/CoSyBob/BobA.csy202202270843.csy F>/\ >t0> t0 t0 dsc ` C:/CoSyBob/BobA.csy >F | ======================== | Mon.Feb,20220228 | ======================== | ` ` :?? Wow ! Simply at a conceptual level no mass market language can match . And all the definitions right down at the most minimal hardware level . | ======================== | Thu.Mar,20220303 | ======================== | | 1641 | ` caret ?? `( sys Tui )` Dv@ | >t0> ` .. :?? ed `( sys Tui State )` Dv! `( sys Tui State )` Dv@ | : tst [ `( tst lst )` ] literal ; not right . tst | Ref# ` refs@ ?? statewdo @ getcaret `( sys Tui State )` Dv@ ` caret v! ` e Words ` ed :?? s" [ " ?? : saveStatecaret statewdo @ getcaret ` sys Dv@ ` Tui v@ ` State v@ ` caret v! ; ` sys Dv@ ` Tui v@ ` State v@ ` caret v@ `( sys Tui State )` Dv@ ` caret v@ | 20220303.2202 | modified structure for ` state window to contain caret position , | then added | ` sys Dv@ ` Tui v@ ` State v@ ` caret v@ statewdo @ setcaret | | to ' go to implement restarting w cursor pos in ` state wdo | 2206 | | has been biggest irritation . All window need to be restructured simlarly | ======================== | Fri.Mar,20220304 | ======================== | ` \4thCoSy\CoSy\WorkLog.csy startJob ` \4thCoSy\CoSy\CoSy.csy startJob | F> str>lst | dsc "blMV ` ./CoSy/Presentations.csy startJob ` \CoSyWeb\y22\blog.csy startJob ` \CoSyBob\MailLists.csy startJob ` C:\CoSyBob\acnts\y22\Acnts.csy startJob | ` acnts See ` C:\CoSyBob\acnts\y21\Acnts.csy startJob | ` acnts See ` C:\CoSyBob\acnts\y20\Acnts.csy startJob ` \CoSyWeb\y20\blog.csy startJob ` C:\CoSyBob\CoSy\CoSy.csy startJob ` C:/CoSyWeb/Science/Physics/Physics.csy startJob ` C:\CoSyWeb\BobA\Public\y22\EnergyCitizens.csy startJob ` C:\CoSyBob\AF.csy startJob ` C:\CoSyWeb\ResidentialServices\Private\ResSvcs.csy startJob | `D@ ResSvcs startJob ` C:/4thCoSy/CoSy/MinJob.csy res> lfVM >T0> T0 t0 lfVM dae ' drb 'm >t1> t1 { blVM 1 _at drb } 'm >T0> `( sys Tui State )` Dv@ >t1> T0 { F>/\ ` sys v@ ` Tui v@ t1 $ ` State v!> } 'm >T1> T1 T0 { 1 _take } on2 T1 T0 { 2p> F>/\ >a> ` sys v@ ` Tui v! a> R@ \/>F R@ 2P> } 'd | ! WORKED ! | Added `( State caret )` to every `( sys Tui )` in every Job | 2051 | t2 ` sys v@ nil T2 T0 dsc F>/\ `( sys Tui )` v@ T0 { .. F> $ ` .bk cL >a> >F a> } 'm | Backup whole list of files `( sys Tui State )` Dv@ >t1> 5 _iota .. { cL } 'd ` \4thCoSy\CoSy\WorkLog.csy F>/\ ` Type :?? `( sys Tui )` Dv! d1 @ getPos `( sys Tui posXY )` Dv@ d1 @ getPos ` get Words ` ./CoSy/Presentations.csy F>/\ >t1> | `( sys Tui )` v@ >t0> `( sys Tui )` Dv@ ` State v@ t0 ` State v! t0 t1 `( sys Tui )` v! t1 ` sys v@ ` Tui v@ t1 ` ./CoSy/Presentations.csy \/>F ` https://www.facebook.com/521881616/allactivity www ` asdfkf i( 50 100 )i take >t0> 12 _iota i( 1 -1 )i +i R0 ,/ `( ads qweer qwer o )` ' cL ./ | ' ,L ./ ` asdf ` wweroi ,L ' ,/ 'm ` C:/CoSyWeb/index.html F> rUpdate rGet ` C:/CoSyWeb/index.html >F i( 110 162 255 )i fmtI$ ,/ 100 | ======================== | Wed.Mar,20220316 | ======================== | The answer to the ultimate question. Michael Penn | https://youtu.be/U0XKX8qzHUE ` ^i See : ^i take ' *i ./ ; 10 _iota >t0> 7 _i ' ^i 'L ,/ t0 -i i>f 42. _f %f 19 _iota >t0> 7 _i ' ^i 'L ,/ t0 -i { >_ 42 mod _i } 'm ,/ nub |>| 0 19 _iota >t0> 7 _i ' ^i 'L ,/ t0 -i 42 _i modi nub |>| 0 ` mod Help 2184 _i >_ 42 mod _i ` ^i See 2 _i 32 _iota ' ^i 'R 1073741824. _f 7. _f 1%f ^f f>i |>| 19 | highest number whose 7th power < 2 32 ^ ` %f Words 0 0 126 2184 16380 78120 279930 823536 2097144 4782960 ` >_ :?? ev enc 2 _take >t0> t0 flip flip ` flip :?? | ======================== | Sun.Mar,20220320 | ======================== | ` time ?? R0 ' :?? 'm -6. 5.5 2_f -f |>| -11.50 f( 09. 19.75 )f 11.5 _f -f |>| 2130 0815 19. 11.5 f- _f | presentation . | ======================== | Mon.Mar,20220321 | ======================== | | 20220409.2235 | 20220416.1453 | 20220417.1008 | 40. _f >t0 32.26 _f >t1 t0 t1 -f 774 _i i( 2000 1000 500 100 25 5 1 )i ' modi 'R 774 _i i( 2000 1000 500 100 25 5 1 )i { _i +i } Y./ i( 774 2000 1000 500 100 25 5 1 )i enc' { +i } ./ i( 774 2000 1000 500 100 25 5 1 )i enc' { dsc +i } .\ i( 774 2000 1000 500 100 25 5 1 )i enc' { dsc +i } .\ ` ,/ ?? : .\ : scan ( RA fn -- r ) | result returning "\" over i# 0=I z" nonce : empty , needs prototype " * throw over Type@ TypeFl =if scanf ;then | Must be raw float fn . eg: ' f+ over refs+> i# over fntype VecInit >lpstk over 0 i@ lpstk@ 0 i! over i# 1 ?do lpstk@ i 1- i@ 2 pick i i@ 2 pick execute lpstk@ i i! loop drop refs- lpstk> ; ` Vec Words ` cellVecInit :?? ` valloc :?? : .\ ( RA fn -- r ) >aux 1p> i# cellVecInit >lpstk> R@ lpstk@ 0 _at! i# 1 do lpstk@ i 1- _at lpstk@ i _at aux@ execute lpstk@ i _at! loop auxdrop lpstk> 1P> ; ` .\ See 10 _iota ' +i .\ ` ix :?? ` _mod Help ` vx_ :?? ` xeq ?? ` lpstk :?? ` .\ ?? ` >aux :?? ` fm/mod See ` stk Words ` CSauxstack ?? ` >lpstk> :?? words res> >t0> # t0 blVM >t1> # t1 ` lp con Xwords flip .. 1th ` lp conn at ` over ?? ` across^ ?? i( 2000 1000 500 100 25 5 )i { _i } scan `( _mod */_ */_mod /_ /_mod )` ' Help 'm ` */ Help ` fm/mod Help ` /_mod Help ` mod ?? ` prt Words # ` blpad ?? s" assign " ` prt Words blpad pad ' cL 'R 8 _iota ' fmt 'm ' cL 'd ` fmttbl| ?? ' cL 'R ` modi :?? i( 774 0 )i 2000 /mod 2 s>iv 774 500 /mod ` s> Words res> ' :?? 'm ` s>iv :?? 774 500 /mod 774 _i 2000 _i modi ` scan ?? ` mod i( 1 2 3 4 )i i1 +i ` \4thCoSy\lib\math\mod F> ` \4thCoSy\lib\math\doubles F> | ======================== | Fri.Mar,20220325 | ======================== | Xwords flip 1th blMV blVM ` mod con ' :?? 'm ` < Words ` NmEm><@> ?? | ======================== | Mon.Apr,20220404 | ======================== | i( 1800 200 )i `( .r Tui posXY )` Dv! DMP Dnames { dup Dv@ # cL } 'm | ======================== | Thu.Apr,20220407 | ======================== | | Answering : [svfig] Call for Participation // April Challenge // April SVFIG Zoom Meeting 23 April 2022 https://www.facebook.com/groups/minimalistcomputing/posts/653943402362458/ res> >T0> # T0 # | "lf "bl ,L ssr >t0> t0 lower ` 0123456789.()-_, enc' ' ssd Y./ blVM dae >t1> # t1 t1 #' ,/ 5 _i =i & at nub >t2> # |>| 28 t2 ,/ enc' sortstr nubgrpcx >t3> flip t3 dsc t3 1th #' ,L fmttbl| t2 # t3 { dup dsc $ 1th # t2 4 _partition ' blMV 'm ` grp Words ' :?? 'm ` nubgrp ?? t0 9' ` Dig Words ` nin :?? R dsc blVM | ======================== | Fri.Apr,20220408 | ======================== | ` C:/Users/bob/Downloads/data-HUgdy.csv F> >t0> t0 lfVM { ` , VM } 'm 2 _take >t1> fmttbl| t1 1th -5 _take ' str>f 'm ,/ +/ 10 7 + _i |>| 17 | MDT , BST | $12eF _i ` ' Help ` CShelpFul :?? | ======================== | Sun.Apr,20220410 | ======================== | | 1144 | 10 _i >t0> ` _i :?? t0 DMP 12 _i DMP R dsc R 1 _at ' # 'm ,L flip ` asdlk;fawekrj R ` text v@ lfVM # | ======================== | Sat.Apr,20220416 | ======================== | ` Words ?? Xwords flip 1th ,/ blVM dae >T0> # T0 sortstr >t1> # t1 ` words? Help ` xwords ?? ev >T0> ` all-contexts ?? ` (words) ?? ` dayln ?? 20220101 _i 365 _i Daylns | res> >t0> # DMP ` ins-dayln ?? ` toDayln ?? ` gregorian>fixed Help ` ymd>fixed :?? res> # |>| 1176 ` match :?? : palendrome? .. reverse == ; ` racecar .. reverse == ` racecar palendrome? ` Dayln ?? 20220416 _i date_ _DMymd _str ` date_ :?? ` ndup ?? | ======================== | Sun.Apr,20220417 | ======================== | ` https://raw.githubusercontent.com/tabatkins/wordle-list/main/words res> >T0> # T0 # T0 lfVM dae >t0> # t0 dae >t0> # t0 blMV >t0> t0 nub |>| women ikauscfylpdgtrbhjvxzq t0 ` womenikauscfylpdgtrbhjvxzq # ` grp Words ` grpcx :?? ` ALPHabet Dv@ 26 _cut t0 ` abcdefghijklmnopqrstuvwxyz ' conn 'R >t1> # t1 >T1> #' T1 # ` abcdefghijklmnopqrstuvwxyz T1 #' ,L fmttbl| >t2> # | 2228 | T0 lfVM # | ======================== | Mon.Apr,20220418 | ======================== | ` abcdefghijklmnopqrstuvwxyz T1 #' ,L fmttbl| 4 _partition fmttblh em> SV-FIG ` search :?? ` psorti :?? T1 #' ,/ >t2> t2 psorti flip ' ,/ 'm >t3> ` abcdefghijklmnopqrstuvwxyz t3 1th at t3 dsc ,L ' reverse 'm >t4> fmttbl| t4 t4 1th i>f PoT cL fmttbl| 2 _partition s" § " fmttbl ` § c>i ` PoT :?? | ======================== | Tue.Apr,20220419 | ======================== | ` prt cL R@ ss1st L@ swap take 2P> ; ` search :?? ` asdfqwerpoi ` q ss1st | | prt 2dup >r van --aab r> van search if drop swap - _i --cab 2refs- ;then drop --aba # --cab 2refs- ; | Was : | | 20190122.2033 | fixed to return empty on no occurance . | | thought it would be useful in making | : tst f( 1 0 )f ; | work . | caused ` prt verbs not to work on none found . | 1917 | ` C:/4thCoSy/CoSy/y2019.txt F> ` i# See ` cell+@ See | :?? postscript 0.7 .25 2_f ^f 278.6 0.9147 2_f *f | ======================== | Wed.Apr,20220420 | ======================== | res> lfVM dae >T0> T0 { ` | prtt0> t0 t0 { F> # } 'm ,/ 0<>i & at >t0> f( 315 560 )f 780. 560. f/ _f *f | ###################################################################### | variable wasHere here wasHere ! wasHere _i wasHere (here) ! :: cr ." Exception: " .x ." at: " .x 100 ms cr ." tst " 0 ; is exception `( exception catch ctrl-c exceptions throw )` ' Help 'm ` exception Help Dnames ` ASCIIbrowser Dv@ https://arduino-forth.com/ | ###################################################################### | | ======================== | e o current work | ======================== | |>> | \/ PLEASE ASK ANY QUESTIONS at \/ | \/ | << | | |\/| Distribution intro & documentation Job |\/| ` .\CoSy\CoSy.csy startJob | F6 to start persistent work space http://www.cosy.com/CoSy/AskMeAnything.html | Have split off Presentations and Demos to ` ./CoSy/Presentations.csy startJob | JOIN THE CoSy alphas . SUBSCRIBE at http://CoSy.com | ###################################################################### | | ~~ | \/ | sometimes useful lines | \/ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | rShow | Basic settings : ` script0 -> 2 sigdig dup @ --cab ! _i | set floating display precision & return previous ` BROWSER Dv@ |>| ""C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"" res> ` BROWSER Dv! bye d1 @ _getPos `( sys Tui posXY )` Dv! | Stores current upper left corner for restart ec Words | ` 1st con ec Words reverse .. ` conn 10 _-+ ,/ at ec Words reverse `( (' braket i( f( )` ' conn 'R res> >t0> blVM ' Help 'm bye text> daylncut ` sort con reverse res> >t1> t0 F> >t1> Ft rUpdate rGet >t1> lf>nl ` ./CoSy/CoSy.f >F Dnames 4 _partition ' blMV 'm ` ./CoSy/CoSy.f F> ` ./CoSy/CoSy.f.bk >F ec Dir ` lst>dt ?? Dnames | { Dv@ rho } 'm | lst | sF6 . check if any ' rho' crazy CoSyDir ` .\CoSy Dir ` .\CoSy\CoSy.bk F>/\ ` help v@ rho mark forget ` ./CoSy/math.f F> Eval ` ./CoSy/sort.f >Fn> F> >Ft> Eval R0 >t0> F> >t1> Eval | for editing or evaluating a file res> "lf "nl ,L ssr t0 >F R0 DMP cr ev >R0 R0 DMP | sF6 . useful for executing when ' save bombs ` - 74 _take s" | " enc braket | Create line below | | ========================================================================== | |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| |/\| | ###################################################################### | | ###################################################################### | ` SkriptThots -> | 20210521.0838 s" |\/| " 74 _take s" | " enc braket | |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| | ` ToDo -> s" -" 70 _take s" | " enc braket | ---------------------------------------------------------------------- | | /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ | | ###################################################################### | |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| |\/| | \/ | Line to make more calendar | \/ | Needs updating | 20210517 30 2_i Daylns | insert res in text using F5 | ###################################################################### |