: if ifW, ; immediate : fbr, here dup $200008 + bbr, ; : ahead fbr, ; immediate : then here br! ; immediate : else fbr, swap here br! ; immediate : begin here ; immediate : while ifW, swap ; immediate : repeat bbr, here br! ; immediate : again bbr, ; immediate : ?read) word dup c@ $1 - swap $1 + c@ $29 - or ; : ( begin ?read) while repeat ; immediate : _ W) swap R) ; : A) REGA _ ; : S) REGS _ ; : PSP) REGPSP _ ; : RSP) REGRSP _ ; : W>) REGW R>) ; : A>) REGA R>) ; : S>) REGS R>) ; : (&? HALDIRECT and bool ; : -&) HALDIRECT invand ; : dir) HALINV or ; : (dir? HALINV and bool ; : -dir) HALINV invand ; : signed) HALSIGNED or ; : (signed? HALSIGNED and bool ; : -signed) HALSIGNED invand ; : (bank (slot hbank@ ; : bank) hbank! slot) ; : (W? (R REGW = ; : (sz dup (16b? if drop $2 else (8b? if $1 else $4 then then ; : (i? dup HALIMM and if (bank $1 else drop $0 then ;