{block 0}
noc gw t nnnon o t9s 1073799170 y8 0 fsrt t r +ee?p e rf00 ?@ qus ?@ qhs fdca780d wkrr w tryad 1727664333 mtudrs xbryn kn6/e g8 srit 8lgyiy mod ,pos oerntt ; 4 ya2d 8749056 deinp wyet?s l b0c93100 jotions ia tten -ta4od u!rs98e sows s eeeeeeo nn 3ge :yk as 602603529 1023w7c: 20386 4ai@d o piets a?s t kim9ts i ri?k jp i 607bixj 128974848 r/e raswt e:o3 2013265920 weuv@ 0in r@mwz-8 25158d09m -7704 z rwy8 /anif8 28903600k ???* -465 zix-8knr8 s ???, fos?t8 ,ofml -930609527 2069971 nnv3is tn ad ole oft in -729 abfn; 1rof 8 ca0 ef mo??@ tawr0vs fr??@ -266425 wtu?@nikte zi??8 +ogeye?qiln p4o?8 -1257 wtu; -366782 /ani?d v*ygegege eeeeeee -59339520 weu ns e9057510 ???6?;wen mng?? -8errd -1386217473 nsts ffffc7e8 inmngws t-n s -921 9!37 -609 ?crkis *s?@ -ie r4 ki??8 ???4 dpi k slatons -2361 mw .wd 344fe3 -2641 mw .wd 344fe3 r.t tdim0bs 15104d t9d nw 490e8tri7es+ees 0 271 rm0zias mo@ins -37418320 79725344 mnfosis twreneggis0mx3 tmt 4ee6a5sn rr8 8669223 tqaknr3e wsrno; 109706358 qien rs ki??8 rwn twsaidg,s e r ex+f; vs y8 id nd 4es il ip nd 4es il igson 4es 61g rft; mt igslsontd mt ipl rftd mt idfsrird vs id ndmgad ipeny 250281984 ip ndmgad ywtoed -218300416 vg?js tetdn@ oie kig.0 ???* -5423243 rejenc abs ic 1416 mo@ins -35117992 ???? -386867069 ???+ 14e48d24o4es tln mtrr7d
tln n ws abs 59 en indt8 awl abs ii an iie ad airt*dk 229 r?c8ns fod vs -89 d np, ?s -1928557312 62 5ie bs mi??@ ipp t?d ml ydml 344653824 ???cd ;irer@ ramnto il 184848777corl f mt a2d b8258900 bs 331008fsri6 ?s ie??, -39768072 vs igsanramt 3d -169962 361480960 il -1206568630 ia gl. 361301877 il -1407874109 bs 71485065 -44028904 a,ofmw mw d0 344fe3 jenses vs -1513 esom, ro 508933 eiyrt -1913 esom, at 507909 eiyrt ra?80 ic -863173493 .sysai,e mn wl.liysai,t mn ??t! @n ?, -1012072448 iysri a 0eok mi??@ bc158900 mn b8158900 b -1408924927 aysai?s mn ??t! 8er?,,7weis s.?@ mlci,s rtd -147480 mlrtt, re8 ? eets rami?; il 129504649 tb 3019807 etmol s gsantid -1392508921ysai?s mn ??t! 8er?,,f/eis emi?; rtueb7igs 362496,ofml emn 0 ???cd a@n @ysrir; m 109706358 wlrtei ewosramn il 109773449 mltsls ac4823 il 1130919ias tfwof*n ramigos il 956689027 80087500 oiakrs bnrst; 502789tamosd 3d igsanvres -42993020w efti ml 344fe3 igcsramisd il 972771981 80337500 t-gw n mo@ins 4056328wren mn -59339269 mtrnks fdb2e900 asi?; il -768490506is bys -54721289 ;i??8 ia??, -1916665510 o asel 8e0c1e2 gwr9tl wlatei?s?re iahgrzias it od 1101 af an ai n nt io io io at io io io a r;dup?dupdropthenbegin
ns 4da ed 6c5
ts t0 34 822 ri tr 11 243 19 te 631 t; or ie nd 36 ns ns ni na ir io teo 7638 r7 oo 865 r+s tnc r*s ti 9927 218b r* 8465 tws tws 8620 r/ 223e r8s trf 7795 r-s r/ t t t r rzs tr0 rk rks tia
dpi*d gltos8 d99tl drm gdggi.i8 qp ; - yse bpi?8 an gqd tln nf-n s r wtlwu tlnrenlv3e rjl ad tflinml lt 0y8 709 fr0o ; -60293120 344fe3 452f42inml lt 0y8 718 17591,ofml ;eesns mrad inml o o; ef mo@ins 26048mw d 344fe3 3cadinmw d w 0y8 1945,ofmw 36 rl vs mo@ins 1009088crsd rk; +k nn mco dstkn -12189642 wso e 1989001984 w 0y8 16777215 -289 r.ear@v3e mngfr0 3d8b5700 r. n fa*t@d 9.weg o4a?, rjs sgyiu or tiys ?;n i mt r8 r.s hfc -33030144 tictr8 o4e?u r. 58277005 r. rsggynrs 8769284nn oio8ns -65487797 iaec as 10b9e0860snnraio8 mturis mtu ta s rtc;cu 1225049987 1ff 35a92bafrrlvs o -1137 g tft, wt t 0 ?uolts bdi?8 i8 ;ogecl ggic*e rjl as 2b61800 doagta frrldk rs fffffff9 r.e gsrmitar -1105 dnodid ac ag8iae astwcs rjs td 1!o k b??? 768
! sks fffee9e8 0ska@ moyxod r.ea 8nn:s ae a?0 gl e x!o k o7??8 o 5c02bmt f rlg8 i8 s rok y is 13880 lt r. 444466729 e f0mntf -1957625856 gnu:s ecfiad fc768dc3 ?6 rl ks ; -14 mo@ins 523712 oy1 ; mw??; 344fe3 fe060605?raies inmw?8 w 0y8 4210943 ??s7s ,ofmwd w 0ks ?s ???d -1979943283 -522816,!n ??,wtgs t 3y4iiml a.tiy -1916556032 344fe3 wn3y4nsor tgfgiyd,ofmw 1rm ns r.smo9+sj8l k mt n8 b8c08500 89fc768d -48365176 rjs -5025 ,ofmwd w 0 ml 344fe3 1805?nnies 4a?, f2 sntrvd 4esod rjs r- ndnnvs rjf 4ofu rj8mnot; rjdr 88e 44067931 sn t 4emz rjsrjpm8v3e rjjsnnv3e rjlllnugl f2 rnnv0 23506176 -1916556032 344fe3 21d eanmn 1451875063 of tns 1a013c8 bd;n m0 -1377304576 si??@ ewttrdar mo@ins -61472376 ktosee ???ge .waecl!tta? ramn 292764217 mo@ins -65520552 hie ti .s -1946157059 te vs,ofml rx sns k r ???md 509347271 o! abs f2 oo rjl ad tmn iik ry ki??8 ffff6de8 ?srkis aso?; rjs as ter o4bdd owt 1625817088 b??? 768 abfn f2a/e nn??, rjf ad tef t 1y4 witks ???j d sl s dtrrr ;em 16040305 r rater rfoet rsov0s 790700063 tvarer 24193297 totfej rfoet rsov0s 2170911 rfoet rsov0s 2170911 ltn l 8t s c; eo 604771723 eme 4882 i n a rirnrar cr frco r rft ;i ns 33751040 mo@ins -12189304 fffffefa rg h8 n jigi -8673403 .wooln 590774410crsd teo teo teo tnr a tat 294 tec 337173 teo teo taf tnt 2957568 tat 294 tec tna 2430 taf tnr tai 8tc 12d tas
tn 12d 22d4 tof 10 ffff00 of io bmn.0 23418882rzoe 2362429?ctk eoq?d tryrtramn ter rhrrtisftlo t odn!dfo.ior ie marsnm e upo l 122f869 s-ttitkns ;iajid nortn0 19069033masd tea; eddknrcn0 ???, kienr0 ???? 1594213888 rd r 190692890ees mo@ins 25642520 lo??@ 9260 gfrmls ??3ad , /lis ab?, tet 1 tet ad rinml bsnmo8 6a;t9s rd r -3713 mnrt:; 8224ff00 raiede mo@ins -2226368 e ki?d ???? 1038658816 .??? re ab8 l ebs 2352128 dt9d e tvs t tere ad r abs ter to8 te dt8tordsosd 6100+rgst; r -2945 glf!, ?a !ns lr7?s 851983 f r 151521030tafreeem3 k iia0 fffffff2 19759150or,0wen naki?d iy??@ r ramn ?s t deterr srragys tas 12d802fier; 363794198 ter rnmoss r ab0 @ r.s t ra?3nd 9256 ??s3s ab3id ter tof 584334733r .s ter adtocso4ns tt8 -33429075 ab?, ter to0 tt2rzr .s ter adtogo4ns tt8 604781961w6c si??@ 1592267776 ???? fdade900 rcor?; r08np trt r;s 1988955652 ar nmo8 6463489380ie 2cfffff edn 8 mo@ins 8324120+8le8 fc28646e t mosoek wt wgk 0 -313 ?9ilis iaey?;wos.wd -473 glna38 er!wae -569 ?1ilis iaey?;@aiieis v3i?8 si6.l tereoqwa l 1et8l 5iwrri mo@ins 73152aek fdcfffff 0 1rm0e mrl18 sl sect .d ro.+ys 1rm0e mrl18 k r ???k mo5ics?l kns arki?d fd6fffff,ofmw detsns 1360853 edn svsi8e bbsns dsatnd8ersed vssns dsitnd8ersnd vm tvs mo@ins 29898744 tlnsdln g2 tln tlnsred lk o4esni tln 1032438701 151 rjlt4 3b46800 w 0y8 14696448 -18401 o wr8mnu rjf 15y rjs -1930948488 so??@ rjltrniqe8d nn??, rjf 4
rjdk twe ???t8 -15065 y,y8go0 ff4fffff fff854e8 mi1;inml w 0y8 16776960 -19265 st!.@ rjltrnwlro6 ???? -16 2a403d+lg0 taki?d ag??@ @kol0 aiki?d fc6fffff 344fe3 ,akrt si??@3ieis8 e??,+ie! d om3?@ -20049 ,ofmwd emn 0 ???cd ;i er@ -2649 etfk;+nt! d ;ia?, -20337 ,ofmwd emn 0 ???cd ;i er@ -2937 k owe;??,2 0!oxd fd6fffff remisk ???cd a*n @ ywl c8 ki??8 12391563ei mo@ins -4192832o4 s tle 9996 w nq.s d wlatth ???? -351929663 -35085224 ,ofmg w 0 st r?; tlasd ti dw g0 dn -21441 ,ofmwd 0eesns tlasc@fa0 ki??l ??,* -19377 ,ofmwd e lt 0 ln e 151 o4a8 d tln mtrrqd tlisdwlro6 ;! rad mi??@ wlebli 2558976r vif absl8 tle 9947?s?re tyctaeed!d tsn tse 10235 tst tm8 tml tse tct tmn tsd tmt tmd io io io n 31 tir rs2 !rt yrt0 a!;eowoacs ti 18 c8 io t3s tv tps tf tf tft twn tfd tf8 2b77 11077 tfe twt io tft tft 733 io io io io io io io 2d0d010f rr rn 722077987 toli ??d ?s d ?@ ??, ??, ??, sr r8 .srf ff581d80 eb09b00e .sgn -10986112 11016 0etses bs t 2945792terxrsggn ?,owi s wrws d r fff807fdte abs a0 r .s t ,ofmwe -1070528887 tetdt@syls ?s tlns?snic 763609856 tln -29862968 0 asisd tln 2891288 tln 809337795 re t 16c1853 tln 808813507 r tvsrons lnnr3l tln ,ofmfs o lt 0 bs t 2951680u t9sta t tod t8twmnok b??? 2795520
w e bs t -65536+gnk re??, -236212992 fe3d6d6a 242688ts wrd oo t b 96927744 tod teo terdt8?s 4ies ; mi??@ fa8100ia c8 .er8d 2249816 tetdndinml mn 0y8 82477826 si-iae 10820 tls on 0rs tet 7088407558de???8 4asf8 tet -59422291oamngf tls mtywms tvk , ds t 1ast8 151 ff36083b -272539908 10804 tetdndmtyd wleyal ffffff94 tfr rf vs f+cy1 a+i?d 344 gl ylsosle8 -2130152196 ; dciia; 36963808tfr ifie e 2364477 tie l abm o tet 1 inmfc; w 0y8 1tfr ifie e 2364477 tie l ns9 o tetdt8 tieks ki??8 t tlis+ 4as tls -8ije 10808 :st-n -1912602627 344fe3 tlireodtcf ie t casntes 1c1ac5a ml s ??t2n o4a?, tls gi@gwd ca:iae eeo4e0 a8 r mtffr0 8cc28100mt 10ea8300 ter rasn7e 2b0415mw s s o asel e7ebd2
?iw@i i,i?d 7800f ; is ; is ; is ; isd r8d r8 ,r?;n d r? dd r8d r8d r8d r8d r8d r8 ?o?8t r?b@8 ?s ?s ?s ?s ?s ?s fff3f8ff @ ?@8 ?o?8t ?s?osr?s ?s ,i?*8 ; is fff3f807 @ ?@8 ?o?8t r; i:d ; is ?w?@d 7f807f?w;?d +m?*d?iw@i r?-*8 7f807f ?s ?s ?s ?s ?s ?s ?s ?sd r8d r8d rsd r8d r8d r8d r8d r8d r8 ?o?8t t@i:d ; is ?r?;8 ; is?o@i0 @ ?@8 i/;:l -1s,rq@ i8 o; i8 o; i8 o; i8 o; ?o?8t ?b@8 ; @ ; is r; is fff3f87f @ ?@8 ?s i8 1f3e0ff @ *;n 8 o@ s r@ o8 s @ os 14680304 s rs s 8 s ; s ; s ; s ; s ; s ; s ; d o88 ; +w?om r?b,8 ?s ?s ?s ?s fffbf8ff ?m?*d ; is?o@i4 @ ?@8 @ r@ s ;s ;r?srs s ? o s ; s ; s ; s ; s ; s ; i8 r8 i8 o; mqrm? 7o6oys ,r?i d isoqst o vs 0 ; is ; is ; is ?w?im r?b,8 ?s ?s ?s ?s ?s ?s fffbf8ff /m?*d i8 o; -s ?s e1c0f3 osos;n 1879996446 8 o@s os?iw@i r?+*8 ?do, 267390960 fff7f8ff @iw?is ; is ; is ; is ; is ; is ; is ?i?98 r?b*8 ?s ?s ?s ?s ?s ?s fff7f8ff @io?w ; is ; is ; is?iw@is r?-*8 7f807f ?s ?s ?s ?s ?s ?s ?s ?sr?do,
iv;@8 -267388897 8 o; @ ?d o-9;n 7f80ff ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s fff3f8ff @ ?@8 /w,om o?b,8 ?sr?s ?s ?s fffbf8ff /m?*d ; is ; is 8 is ?o?8t r?b@8 ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s fff3f8ff @ ?@8 8 r;8 o; 8 t; 8 ; 8 ; 8 ; 8 ; 8 ; 8 ; 8 ; ?o?8t r?s?os ; is ; is? @id @o?@8 78007 ; is??dr8 ???? ?o?8t r?s?os ; is ; is? om; ? o? ; @ ; is?o@i, @ ?@8;is;is;is;is;is;is;is;is??,r8 ????; is; is; is; is ???? ;i?d ; is ; is@i@ od ?i?*8 ; @ ; is?o@i, @ ?@8 ?o?8t ?b@8 ; is ; is ffc7f807 ?i?*8 7f80ff ?s ?s fff3f8ff @ ?@8 ???? i ?@r; isid r;; ,d o; r@ id rs 78007 d i ?o?8t r?b@8 ?s ?s ?s ?s fff3f8ff ?o?;n 7f80ff ?s ?s fff3f8ff @ ?@8 ?o?8t r?b@8 ?s ?s ?s ?s fffbf8ff /m?*d ; is ; is?o@i, @ ?@8is ;is ;isis ;is ;is ;is ;is ;is ; ; ?8t -1073221617?w; ?i?,8 ?is ; is ; is ; is,isoqs8i?:8 ?dod di@ od ,iy;iso?s?@ o; i@ 30720 s o; r n ???? r; i?d? r@8 i, ?e rs fffff807 ????r; iso8 @id o8; , 8 r@ d o8 r@ o8 s id os 16253176 i d , d ? e is i d , d ? e s ; is rd i d , d ? e is i d , d ? e is d rd8 o8 8 o; 8 o;d r8 s o s
d r8d r8d r8d r8?o? ?o?@8 d r?ysd r8d r8 ?o?8t ?s?os i8 o; -;;,-;@,?ir?@@i ?w 8 i?o@o, @ ?@8o s ; :8t -1073225713; o; osoqs r 0 i d , d ? e d o8 is rd ?o?8t ?s?os i ii8 is @ ?sd r; dd r8d r8 ,i?v8 ?o?*8 ?m?@d ?si?s?sr?s?s ?s?s ?s ?so?s ?s?@ ?y?@e ?i?@8 ;i?:8 ?i?98 ???7 ?sr?s ?s ?s??b? ?i?*8 di?98 ;iy8is ,is@iso?si/s ?sr?s ???? ????d r8d r8d r8d r8d r8d r8d r8d r8d r8 ?o?8t ???q 7f80ff ?s ?s ?s ?s ?s ?s ?s ?s ?s ?sr?do, ?o??8 @ ?@8 ???? ???? ; is ; is8i@ od 8i?sis ;i is ; is ; is ???? ???? s od r8 8 o; ; i; i -s @ *8t ,r?8t rvb;n 7380f3 ?s ?s i8 o; 7fe07f ?;o, 268374014 ?w ?s m?om?q@:? /@io,/@ow@i?s?@o?si?sr?so?sd r8d r8d r8d r8d r8d r8d r8d r8d r8d r8d r8 ?o?8t ???q 7801f ; is ffc7f807 ?o?@8 r; i@e ; isr, is ?o??8 @ ?@8 i8 o;r?do, 1ffe0ff ii/o?d -:@,s,rb; i8 o; i8 o; i8 o; i8 o; i8 o; ?o?8t ???q 7f80ff ; is ; is ; is ; is ; isr?do, ?o??8 @ ?@8 ?s i8r-do, 1e1e0f3 isobvs -267390961 d r;d r8d r8d r8d r8d r8 ; is ; is ; is ; is ; is ; is ; is ; is ; is ???? ???? ?o?8t ???q 7f80ff ; is ; iso?s ;o?so?s ?s ?sr?do, ?o??8 @ ?@8 ???? ???? ; is ; is8i@ od 8i?sis ;i is ; is ; is ; is ; is i8 r8 i8 o; -s i8 -s -s -s -s mqrmq 6r6i d ,r?;n iso7st osos8t 404232216
@i?sis ?i?:8r?so/s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?so/sr?s ,i?*8 8i?98 i8 o; ?s ?sr?do, f3c0ff o-8@8 1010580540 isoqst ; i@ 8 o;d r8 s o ?i?98 ???7 ?sr?s ?s ?s??b? ?i?*8 ;ibd ; is ; is ; is ; is @i?sis ?i?:8r?so/s ?s ?s?i@i, ,i?:8 r?s?is ?s ?so/sr?s ,i?*8 8i?98 ?s ?s ?s ?s ?s ?s ?s ?s??v? ???? ?s?@ ?s ?s ?s ?s ?s ?s ?s ?s ?s i8 f3c0ff iv;@8 -132155362 8 o@ 8 o; ; i; iso7st o-9;n ffc0f3 i8 i@ ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?s ?sr?do, ?o??8 @ ?@8 ?o?8t ???q 7f80ff ?s ?s ?s ?s ?s ?s ?s ?s/@oo,o?v?8 ?o??8 *m?*d ?o?8t ?o?@8 i8 o; i8 o; i8 o; i8 o; i8 o; i8 o; i8 o; i8 o; ?o?@8 @ ?@8 s o s o s o s o s o s o s o s o s o s o s o s o ?o?8t ?o?@8 i8 o; i i i i ?o?@t @o?@8 8 i 8 i 8 i ???? ???? ?o?8t ?o?@8 i8 o; i i i i ? o?s ? o?s i i i i i8 o; ?o?@8 @ ?@88i i i8i i i8i i i8i i i8i i i ???? ????8 i8 i8 i8 i8 i ???? ???? 8 i 8 i 8 i ?i?98 ?i?*8 i i i i i8 o; ?o?@8 @ ?@8 ?o?8t ?o?@8 i8 o; 8 i 8 i ?i?98 ?i?*8 i8 o; i8 o; i8 o; ?o?@8 @ ?@8 ???? ????r8 isod ;is ;8 @ d r; s ; r8 od s 3c003 8 is ?o?8t ?o?@8 i8 o; i8 o; i8 o; ?o?@8 ?o?@8 i8 o; i8 o; i8 o; ?o?@8 @ ?@8 ?o?8t ?o?@8 i8 o; i8 o; i8 o; ?w?*d ?m?*d i i i i i8 o; ?o?@8 @ ?@8 ; is ; is ; is ; is ; is ; is ; is ; isr?s ; ?o??8 @ ?@8 ???? ????r?s ?si/so?s ;iy@is sr?8is ? is , is 16711934 8iwsr8@im;iso?si/s ?sr?s
d rd8 o8 d r;s os ???? ????r; isi8 r@@ ?8 o@ s o@ i8 rs @ is -1 ???? i o 8 osrd ;is i8 os d ;s ; 8 rd s 3c001 8 os d i s is i ss ts is o is 0 s is i ss ts is od r8d r8d r8d r8d r8d r8 s o s o s o s o s o s o s o s o s o ???? ???? s o s o s o s o s o ?o?8t ?o?@8 i8 o;-:d, -:@, 54473535 54473535 ?io?w 8i-s i8 i ?o?@8 @ ?@8 s o s o s od r8 ???? @ ?@8 8 o@ ; i; iso7 osom8t 4080c0s ts is o is 0 ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ; ; rs ; is ;r@ di@ ?so , is ;r@ di@ ?s , ; ; , ?s di@ ;r@ , is ?so di@ ;r@ ; is ; rs ; s t 8 os 8 os ; is ; is 8 os 8 os s t ;i?, ;i?, ;i?, ;i?,8 osd iss o8 o; i8 , @ s ; rs 8 os d is s o8 o; i8 , @ ; ;i?, ;i?, ;i?, ;i?,i;; s8 rsd oss r8 r; o8 id @ ; s 8 rs d os s r8 r; o8 id @ ; 8 d s
;i?, ;i?, ;i?, ;i?, d rs d rs d rs d rs d rs d rs d rs d rs d rs d rs ??ddi?, 8i?, 8i?, ; d ; ; ;is ; ;idid ;idid ;rdi ;rdi ;rdi ;rhi 8i@id 8i@id sr? ; ; d 8i?, 8i?,di?, ??d s t s t s t d rs d rs d rs 8 os 8 os ;i?, ;i?,di?, ??d ,r@ @ @ @ @ ,r@ ,r@ i-; o-8 r-d i8 od s n d os d os d os s n s n ; 8di?, @i?,t od rs 234881136 ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? 8 os s n 134744072 4210752
colorforth jul31 chuck moore public domain 24 load 26 load 28 load 30 loaddump 32 load ;icons 34 load ;print 38 load ;file 44 load ;north 46 load ;colors 56 load ; mark empty
macroswap 168b 2, c28b0689 , ;0 ?dup c031 2, ;if 74 2, here ;-if 79 2, here ;a ?dup c28b 2, ;a! ?lit if ba 1, , ; then d08b 2, drop ;2* e0d1 2, ;a, 2* 2* , ;@ ?lit if ?dup 58b 2, a, ; then 85048b 3, 0 , ;! ?lit if ?lit if 5c7 2, swap a, , ; then 589 2, a, drop ; then a! 950489 3, 0 , drop ;nip 4768d 3, ;+ ?lit if 5 1, , ; then 603 2, nip ;or 633binary ?lit if swap 2 + 1, , ; then 2, nip ;and 623 binary ;u+ ?lit if 681 2, , ; then 44601 3, drop ;? ?lit a9 1, , ;
pentium macros: 1, 2, 3, , compile 1-4 bytesdrop lodsd, flags unchanged, why sp is in esiover sp 4 + @swap sp xchg0 0 0 xor, macro 0 identical to number 0a 2 0 mov, never used?a! 0 2 mov, unoptimized@ eax 4 *, unoptimized! edx 4 *nop used to thwart look-back optimization- ones-complement2*2/if jz, flags set, max 127 bytes, leave address-if jns, samethen fix address - in kernelpush eax pushpop eax popu+ add to 2nd number, literal or value? test bits, set flags, literal only!
macrosover ?dup 4468b 3, ;push 50 1, drop ;pop ?dup 58 1, ;- d0f7 2, ;for push begin ;*next swapnext 75240cff0next , here - + 1, 4c483 3, ;-next 79240cff 0next ;i ?dup 24048b 3, ;*end swapend eb 1, here - + 1, ;+! ?lit if ?lit if 581 2, swap a, , ; then 501 2, a, drop ; then a! 950401 3, 0 , drop ;nop 90 1, ;align here - 3 and drop if nop align ; then ;or! a! 950409 3, 0 , drop ;* 6af0f 3, nip ;*/ c88b 2, drop f9f72ef7 , nip ;/mod swap 99 1, 16893ef7 , ;/ /mod nip ;mod /mod drop ;
for n push count onto return stack, falls into beginbegin -a current code address - byte*next aa-aa swap for and if addressesnext a decrement count, jnz to for, pop return stack when done-next a same, jns - loop includes 0i -n copy loop index to data stackend a jmp to begin+! na add to memory, 2 literals optimizedalign next call to end on word boundaryor! na inclusive-or to memory, unoptimized* mm-p 32-bit product*/ mnd-q 64-bit product, then quotient/mod nd-rq remainder and quotient/ nd-q quotientmod nd-r remaindertime -n pentium cycle counter, calibrate to get actual clock rate
compiled macros2/ f8d1 2, ;time ?dup 310f 2, ; forth@ @ ;! ! ;+ + ;*/ */ ;* * ;/ / ;2/ 2/ ;dup dup ; arithmeticnegate - 1 + ;min less if drop ; then swap drop ;abs dup negatemax less if swap then drop ;v+ vv-v push u+ pop + ;writes acn for write next drop drop ;reads acn for read next drop drop ;oadf qwertysave 0 dup nc @ writes stop ;
these macros may be white, others may not@ etc arithmeticnegate n-n when you just cant use -min nn-n minimumabs n-u absolute valuemax nn-n maximumv+ vv-v add 2-vectorsnc -a number of cylinders bootedsave write colorforth to bootable floppyoadf save as spelled by qwerty. for typing with blank screen
colors etcblock 100 * ;white ffffff color ;red ff0000 color ;green ff00 color ;blue ff color ;silver bfbfbf color ;black 0 color ;screen 0 dup at 1024 768 box ;5* 5 for 2emit next ;cf 25 dup at red 1 3 c 3 a 5* green 14 2 1 3 3e 5* ;logo show black screen 800 710 blue box 600 50 at 1024 620 red box 200 100 at 700 500 green box text cf keyboard ;empty empt logo ;
block n-a block number to word addresscolors specified as rgb: 888screen fills screen with current colorat xy set current screen positionbox xy lower-right of colored rectangledump compiles memory displayprint compiles screen printicon compiles icon editorlogo displays colorforth logoshow background task executes following code repeatedlykeyboard displays keypad and stack
dump x 2097152 y 2101760one dup @ h. space dup h. cr ;lines for one -1 + next drop ;dump x !r show black screen x @ 15 + 16 text lines keyboard ;it @ + @ dup h. space ;lines for white i x it i y it or drop if red then i . cr -next ;cmp show blue screen text 19 lines red x @ h. space y @ h. keyboard ;u 16+xy dup x +! y +! ;d -16 +xy ;ati f4100000 ff7fc000 orbyte 4 / dump ;fix for 0 over ! 1 + next ; dump
does not say empty, compiles on top of applicationx -a current addressone a-a line of displaylines andump a background task continually displays memoryu increment addressd decrementati address of agp graphic registersbyte a byte address dumpfix an-a test word
icons empty macro@w 8b66 3, ;!w a! 28966 3, drop ;*byte c486 2, ; forth ic 0 cu 351sq xy @ 10000 /mod 16 + swap 16 + box 17 0 +at ;loc ic @ 16 24 8 */ * 12 block 4 * + ;0/1 8000 ? if green sq ; then blue sq ;row dup @w *byte 16 for 0/1 2* next drop -17 16 * 17 +at ;ikon loc 24 for row 2 + next drop ;adj 17 * swap ;cursor cu @ 16 /mod adj adj over over at red 52 u+ 52 + box ;ok show black screen cursor 18 dup at ikon text ic @ . keyboard ; 36 load ok h
draw big-bits icon@w a-n fetch 16-bit word from byte address!w na store same*byte n-n swap bytesic -a current iconcu -a cursorsq draw small squarexy -a current screen position, set by atloc -a location of current icons bit-map0/1 n-n color square depending on bit 15row a-a draw row of icon+at nn relative change to screen positionikon draw big-bits iconadj nn-nn magnify cursor positioncursor draw red box for cursorok background task to continually draw icon, icon number at top sr 4210752 4210752 4210752
edit+ic 1 ic +! ;-ic ic @ -1 + 0 max ic ! ;bit cu @ 2/ 2/ 2/ 2/ 2* loc + 10000 cu @ f and 1 + for 2/ next *byte ;toggle bit over @w or swap !w ;td toggled 16wrap cu @ + 16 24 * dup u+ /mod drop cu ! ;tu toggleu -16 wrap ;tr toggler 1 wrap ;tl togglel -1 wrap ;nul ;h pad nul nul accept nul tl tu td tr l u d r -ic nul nul +ic nul nul nul nul nul nul nul nul nul nul nul nul 2500 , 110160c dup , , 2b000023 , 0 , 0 , 0 ,
edit icon
png empty w 54 h 32 d 4frame 1e80000 ; file 42 load 40 load-crc a here over negate + crc . ;crc -crc ;wd -a here 3 and drop if 0 1, wd ; then here 2 2/s ;bys n-a . here swap , ;plte 45544c50 48 bys 0 3, ff0000 3, ff00 3, ffff00 3, ff 3, ff00ff 3, ffff 3, ffffff 3, 0 3, c00000 3, c000 3, c0c000 3, c0 3, c000c0 3, c0c0 3, c0c0c0 3, crc ;png awh d @ / h ! d @ / w ! wd swap 474e5089 , a1a0a0d , ihdr 52444849 13 bys w @ . h @ . 304 , 0 1, crc plte idat 54414449 0 bys swap deflate crc iend 444e4549 0 bys crc wd over negate + ;at 1024 * + 2* frame + ;full 4 d ! 0 dup at 1024 768 png ;pad 1 d ! 46 -9 + 22 * nop 25 -4 + 30 * at 9 22 * nop 4 30 * png ;
lz77 macro@w 8b66 3, ;*byte c486 2, ;!b a! 289 2, drop ; forth*bys dup 16 2/s *byte swap ffff and *byte 10000 * + ;. *bys , ;+or over - and or ;0/1 10 ? if 1e and 1e or drop if 7 ; then f ; then 0 and ;4b dup 0/1 9 and over 6 2/s 0/1 a and +or swap 11 2/s 0/1 c and +or 8 or ;pix dup @w d @ 2* u+ 4b ;row 1, dup w @ 2/ dup 1 + dup 2, - 2, 0 dup 1, +adl for pix 16 * push pix pop or dup 1, +adl next drop +mod d @ 1024 2 * * + ;deflate 178 2, 1 0 adl! h @ -1 + for 0 row next 1 row drop ad2 @ *byte 2, ad1 @ *byte 2, here over 4 + negate + *bys over -4 + !b ;
crc macro2/s ?lit e8c1 2, 1, ;1@ 8a 2, ; forth ad1 48546 ad2 48600array -a pop 2 2/s ;bit n-n 1 ? if 1 2/s edb88320 or ; then 1 2/s ;fill nn for dup 8 for bit next , 1 + next drop ;table -a align array 0 256 fillcrc an-n -1 swap for over 1@ over or ff and table + @ swap 8 2/s or 1 u+ next - nip ;+adl n ff and ad1 @ + dup ad2 @ +adl! ad2 ! ad1 ! ;+mod ad1 @ 65521 mod ad2 @ 65521 mod adl! ;
dos fileblks 256 * ;w/c 18 blks ;buffer 604 block ;size -a buffer 0 1 reads buffer 98f + ;set n ! buffer 0 1 writes ;cyls n-nn 1 swap w/c -1 + + w/c / ;put an dup 2* 2* size set cyls writes stop ;get a size @ 3 + 2/ 2/ cyls reads stop ;.com 0 63 blocks put ;
blks n-n size in blocks to wordsw/c -n words per cylinderbuffer -a 1 cylinder required for floppy dmasize -a locate size of 2nd file. floppy has first filler then file allocated. filler is 2048 bytes, to fill out cylinder 0. names at most 8 letters, all caps. directory starts at buffer 980 +set n size. file must be larger than your file.cyls n-nn starting cylinder 1 and number of cylindersput an write file from addressget a read file to address
north bridge empty macro4@ dup ed 1, ;4! ef 1, drop ; forth dev 15104nb 0 dev ! ;sb 3800 dev ! ;agp 800 dev ! ;ess 6800 dev ! ;ric 7800 dev ! ;win 8000 dev ! ;ati 10000 dev ! ;add cf8 a! 4! cfc a! ;q 80000000 + add 4@ ;en 8004 q -4 and or 4! ;dv dup 800 * q swap 1 + ;regs dev @ 19 4 * + 20 for dup q h. space dup h. cr -4 + next drop ;devs 0 33 for dup q dup 1 + drop if dup h. space drop dup 8 + q dup h. space over h. cr then drop 800 + next drop ;ok show black screen text regs keyboard ;u 40 dev +! ;d -64 dev +! ;test ff00 + a! 4@ ; ok
ascii macro1@ 8a 2, ; forthstring pop ;cf-ii string 6f747200 , 696e6165 , 79636d73 , 7766676c , 62707664 , 71757868 , 336a7a6b , 37363534 , 2d313938 , 2f322e30 , 2b213a3b , 3f2c2a40 ,ch fffffff0 and unpack cf-ii + 1@ ff and ;ii-cf string 2a00 , 0 , 2b2d0000 , 2725232e , 1b262224 , 1f1e1d1c , 28292120 , 2f000000 , 3a43355c , 3d3e3440 , 484a3744 , 3336393c , 38314742 , 3f414632 , 493b45 , 0 , a13052c , d0e0410 , 181a0714 , 306090c , 8011712 , f111602 , 190b15 ,chc ffffffe0 + ii-cf + 1@ ff and ;
clock macrop@ ec 1, ;p! ee 1, drop ; forthca 70 a! p! 71 a! ;c@ ca 0 p@ ;c! ca p! ;hi 10 c@ 80 and drop if ; then hi ;lo 0 p@ 80 and drop if lo ; then ;bcd c@ 16 /mod 10 * + ;hms0 4 bcd 100 * 2 bcd + 100 * 0 bcd + ;hms hms0 2 ms dup hms0 or drop if drop hms ; then ;ymd 9 bcd 100 * 8 bcd + 100 * 7 bcd + ;day 6 c@ -1 + ;cal hi lo time - hi lo time + 748 ;
lan empty 3f8 54 load initno block 4 * 1024 ;send no for dup 1@ xmit 1 + next drop ;receive no for rcv over 1! 1 + next drop ;no 18 7 18 * ;backup no for dup send 1 + next drop ;accept no for dup receive 1 + next drop ;
4210752 4210752 4210752
serial 3f8 2e8 1050 macrop@ a! dup ec 1, ;p! a! ee 1, drop ;1@ 8a 2, ;1! a! 288 2, drop ; forthr 0 + + ;9600 12 ;115200 1 ;b/s 83 3 r p! 9600 0 r p! 0 1 r p! 3 3 r p! ;init b/s 16550 1 2 r p! 0 4 r p! ;xmit n 5 r p@ 20 and drop if 0 r p! ; then pause xmit ;cts 6 r p@ 30 and 30 or drop if cts ; then xmit ;st 6 r p@xbits 30 and 10 / dup 1 and 2* 2* + 2/ ;st! 4 r p! ;?rcv 5 r p@ 1 and drop if 0 r p@ then ;rcv ?rcv if ; then pause rcv ;
p@ p-n fetch byte from portp! np store byte to port1@ a-n fetch byte from byte address1! na store byte to byte addressr n-p convert relative to absolute port address. base port on stack at compile time. compiled as literal at yellow-green transition9600115200 baud-rate divisors. these are names, not numbersb/s set baud rate. edit to changeinit initialize uartxmit n wait for ready and transmit bytects n wait for clear-to-send then xmitst -n fetch status bytexbits n-n exchange status bitsst! n store control byte?rcv fetch byte if ready. set flag to be tested by ifrcv -n wait for ready and fetch byte
hexagon empty col 0 del 2105376lin dup 2/ 2/ dup 2* line ;hex xy @ 7 and over 2/ for lin 7 + next over for lin next swap 2/ for -7 + lin next drop ;+del del @ noppetal and col @ + f8f8f8 and color 100 hex ;-del del @ f8f8f8 or 80808 + ;rose 0 +del -176 -200 +at f80000 -del petal 352 -200 +at f80000 +del -264 -349 +at f800 -del petal 176 -200 +at f8 +del -176 98 +at f8 -del petal 176 -200 +at f800 +del ;ok show black screen 512 282 at rose text col @ h. space del @ ff and . keyboard ; 58 load ok h
draws 7 hexagons. colors differ along red, green and blue axes.col color of center hexagondel color differencelin n draws 1 horizontal line of a hexagonhex n draws top, center and bottom. slope 7 x to 4 y is 1.750 compared to 1.732+del n increment color-del npetal n draw colored hexagonrose draw 7 hexagonsok describe screen. center color at top
panin del @ 2* 404040 min del ! ;out del @ 2/ 80808 max del ! ;r f80000+del del @+col and col @ + f8f8f8 and col ! ;g f800 +del ;b f8 +del ;-r f80000 -del +col ;-g f800 -del +col ;-b f8 -del +col ;nul ;h pad nul nul accept nul -r -g -b nul r g b nul out nul nul in nul nul nul nul nul nul nul nul nul nul nul nul 250000 , 130d01 dup , , 2b000023 , 0 , 0 , 0 ,
in increment color differenceout decrement itrgb increment center color-r-g-b decrement it+del redefine with ;+col change center colornul ignoreh describe keypad
timing empty macroout e1e6 2, ; forthtare time - 1000 for next time + ;tare+ time - push 1000 for dup next c pop time + ;test tare time + - 1000 for out next time + ; next 3 loop 5.7 /next 2 /swap 25 swap 7.2 macroc! c88b 2, drop here ;loop 49 1, 75 1, e2 here - + 1, ; forthtry time - 1000 c! loop time + ;