diff --git a/ueforth/common/boot.fs b/ueforth/common/boot.fs index 6ebece7..99090bf 100644 --- a/ueforth/common/boot.fs +++ b/ueforth/common/boot.fs @@ -80,8 +80,7 @@ : >name ( xt -- a n ) 3 cells - dup @ swap over aligned - swap ; : >link ( xt -- a ) 2 cells - @ ; : >flags ( xt -- flags ) cell - ; -: >body ( xt -- a ) 2 cells + ; -: >:body ( xt -- a ) cell+ ; +: >body ( xt -- a ) dup @ [ ' >flags @ ] literal = 2 + cells + ; ( Postpone - done here so we have ['] and IF ) : immediate? ( xt -- f ) >flags @ 1 and 0= 0= ; @@ -189,7 +188,7 @@ variable hld : see-one ( xt -- xt+1 ) dup @ dup ['] DOLIT = if drop cell+ dup @ . else see. then cell+ ; : exit= ( xt -- ) ['] exit = ; -: see-loop >:body begin see-one dup @ exit= until ; +: see-loop >body begin see-one dup @ exit= until ; : see cr ['] : see. ' dup see. space see-loop drop ['] ; see. cr ; 75 value line-width : onlines ( n xt -- n xt ) diff --git a/ueforth/common/tasks.fs b/ueforth/common/tasks.fs index 0b39205..c3ec5c6 100644 --- a/ueforth/common/tasks.fs +++ b/ueforth/common/tasks.fs @@ -4,7 +4,7 @@ create here >r 0 , 0 , 0 , here cell+ r@ cell+ ! cells allot here r@ 2 cells + ! cells allot - dup 0= if drop else >:body r@ 2 cells + @ ! then rdrop ; + dup 0= if drop else >body r@ 2 cells + @ ! then rdrop ; variable task-list