From eccf8ab3af394dac7b6b4f3568e3ac2832c665e7 Mon Sep 17 00:00:00 2001 From: Luke Patmore Date: Mon, 26 May 2014 17:33:41 -0700 Subject: [PATCH] Added jet for scag. --- Makefile | 1 + gen164/2/scag.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ gen164/watt.c | 2 ++ 3 files changed, 62 insertions(+) create mode 100644 gen164/2/scag.c diff --git a/Makefile b/Makefile index 8f9eb4f644..1c90c0b4a2 100644 --- a/Makefile +++ b/Makefile @@ -116,6 +116,7 @@ J164_2_OFILES=\ gen164/2/roll.o \ gen164/2/skim.o \ gen164/2/skip.o \ + gen164/2/scag.o \ gen164/2/slag.o \ gen164/2/snag.o \ gen164/2/sort.o \ diff --git a/gen164/2/scag.c b/gen164/2/scag.c new file mode 100644 index 0000000000..5eaedc7b37 --- /dev/null +++ b/gen164/2/scag.c @@ -0,0 +1,59 @@ +/* j/2/scag.c +** +** This file is in the public domain. +*/ +#include "all.h" +#include "../pit.h" + +/* functions +*/ + u2_weak // transfer + j2_mbc(Pt2, scag)(u2_wire wir_r, + u2_atom a, // retain + u2_noun b) // retain + { + if ( !u2_fly_is_cat(a) ) { + return u2_bl_bail(wir_r, c3__fail); + } + else { + c3_w i_w = a; + u2_noun acc_w; + + if ( a == 0 ) + return u2_nul; + + while ( i_w ) { + + if ( u2_no == u2_dust(b) ) { + return u2_nul; + } + acc_w = u2_cn_cell( u2_h(b), acc_w ); + b = u2_t(b); + i_w--; + } + acc_w = j2_mbc(Pt2, flop)(wir_r, acc_w); + return u2_rx(wir_r, acc_w); + } + } + u2_noun // transfer + j2_mb(Pt2, scag)(u2_wire wir_r, + u2_noun cor) // retain + { + u2_noun a, b; + + if ( (u2_no == u2_mean(cor, u2_cv_sam_2, &a, u2_cv_sam_3, &b, 0)) || + (u2_no == u2_stud(a)) ) + { + return u2_bl_bail(wir_r, c3__exit); + } else { + return j2_mbc(Pt2, scag)(wir_r, a, b); + } + } + +/* structures +*/ + u2_ho_jet + j2_mbj(Pt2, scag)[] = { + { ".2", c3__lite, j2_mb(Pt2, scag), Tier2, u2_none, u2_none }, + { } + }; diff --git a/gen164/watt.c b/gen164/watt.c index 8a362f26a9..e918324f62 100644 --- a/gen164/watt.c +++ b/gen164/watt.c @@ -39,6 +39,7 @@ extern u2_ho_jet j2_mbj(Pt2, roll)[]; extern u2_ho_jet j2_mbj(Pt2, skim)[]; extern u2_ho_jet j2_mbj(Pt2, skip)[]; + extern u2_ho_jet j2_mbj(Pt2, scag)[]; extern u2_ho_jet j2_mbj(Pt2, slag)[]; extern u2_ho_jet j2_mbj(Pt2, snag)[]; extern u2_ho_jet j2_mbj(Pt2, turn)[]; @@ -187,6 +188,7 @@ { j2_sb(Pt2, roll), j2_mbj(Pt2, roll), 0, 0, u2_none }, { j2_sb(Pt2, skim), j2_mbj(Pt2, skim), 0, 0, u2_none }, { j2_sb(Pt2, skip), j2_mbj(Pt2, skip), 0, 0, u2_none }, + { j2_sb(Pt2, scag), j2_mbj(Pt2, scag), 0, 0, u2_none }, { j2_sb(Pt2, slag), j2_mbj(Pt2, slag), 0, 0, u2_none }, { j2_sb(Pt2, snag), j2_mbj(Pt2, snag), 0, 0, u2_none }, { j2_sb(Pt2, turn), j2_mbj(Pt2, turn), 0, 0, u2_none },