--- gforth/cross.fs 2001/06/16 22:53:36 1.99 +++ gforth/cross.fs 2001/09/04 09:15:28 1.101 @@ -944,7 +944,7 @@ Variable user-vars 0 user-vars ! : target>bitmask-size ( u1 -- u2 ) 1- tcell>bit rshift 1+ ; -: allocatetarget ( size --- adr ) +: allocatetarget ( size -- adr ) dup allocate ABORT" CROSS: No memory for target" swap over swap erase ; @@ -1050,7 +1050,7 @@ T has? rom H ' dictionary ALIAS rom-dictionary -: setup-target ( -- ) \G initialize targets memory space +: setup-target ( -- ) \G initialize target's memory space s" rom" T $has? H IF \ check for ram and rom... \ address-space area nip 0<> @@ -1087,7 +1087,7 @@ T has? rom H ELSE r> drop THEN REPEAT drop ; -\ MakeKernal 22feb99jaw +\ MakeKernel 22feb99jaw : makekernel ( targetsize -- targetsize ) dup dictionary >rlen ! setup-target ; @@ -2442,6 +2442,13 @@ Cond: compile ( -- ) restrict? \ name IF gexecute ELSE compile (compile) addr, THEN THEN ;Cond +Cond: [compile] ( -- ) restrict? \ name + bl word gfind dup 0= ABORT" CROSS: Can't compile" + 0> IF gexecute + ELSE dup >magic @ = + IF gexecute + ELSE compile (compile) addr, THEN THEN ;Cond + Cond: postpone ( -- ) restrict? \ name bl word gfind dup 0= ABORT" CROSS: Can't compile" 0> IF gexecute @@ -2719,8 +2726,8 @@ previous : unlock previous forth also cross ; \ also minimal -: [[ also unlock ; -: ]] previous previous also also ; +: [[+++ also unlock ; +: +++]] previous previous also also ; unlock definitions also minimal : lock lock ;