# HG changeset patch # User HackEso # Date 1577814450 0 # Node ID 3c04e9ef7a3a8a0389522106f4d79d1e52aad85b # Parent de2990eb5cdf62f49f619e68c694b8c2960cf3a4 `` cp -rf /hackenv/tmp/asmbf-1.2.7/bin/* /hackenv/lib/kps/ diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bconv Binary file lib/kps/bconv has changed diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bfasm Binary file lib/kps/bfasm has changed diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bfi Binary file lib/kps/bfi has changed diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bfi-rle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/kps/bfi-rle Tue Dec 31 17:47:30 2019 +0000 @@ -0,0 +1,5 @@ +#!/bin/bash -e +name="/tmp/bfprog$RANDOM" +derle.pl $1 > $name +bfi $name +rm -f $name diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bfintd Binary file lib/kps/bfintd has changed diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bfmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/kps/bfmake Tue Dec 31 17:47:30 2019 +0000 @@ -0,0 +1,7 @@ +#!/bin/bash -e + +name=$(echo "$1" | cut -f 1 -d '.') + +/bin/bfpp "$1" +/bin/bfasm < "$1.p" | /bin/strip.pl > "${1%.*}.b" +rm -f "$1.p" diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/bfpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/kps/bfpp Tue Dec 31 17:47:30 2019 +0000 @@ -0,0 +1,7 @@ +#!/bin/bash -e + +set -o pipefail + +{ cat <<<"#define __NEWLINE__ ÿ"$'\n'"#define __ICOUNTER__ þ"$'\n'"" ; cat "$1" | sed -e "1!b" -e '/#/d' ; } | gcc -E -I. -Ilib - -o "$1.i" +perl -pe "s/\xFF/\x0A/g;" < "$1.i" | perl -pe 's/\xFE/$x++/ge;' | /bin/labels.pl | sed '/^#/ d' > "$1.p" +rm -f "$1.i" diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/derle.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/kps/derle.pl Tue Dec 31 17:47:30 2019 +0000 @@ -0,0 +1,6 @@ +#!/usr/bin/perl -p + +my ($style) = @ARGV; + +s/\d+(.)/$1x$&/ge if $style eq "postfix" or $style == undef; +s/(.)\d+/$1x$&/ge if $style eq "prefix"; diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/labels.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/kps/labels.pl Tue Dec 31 17:47:30 2019 +0000 @@ -0,0 +1,7 @@ +#!/usr/bin/perl + +# asm2bf label preprocessor. +# C'mon, who doesn't love regexes? + +$n=0;%o=();$_=do{local$/;<>};s/^[ \t]*@([A-Za-z_]+[A-Za-z0-9_]*).*$/$o{$1}=++$n;'lbl '.$n."\n";/gem; +s/(%([A-Za-z_]+[A-Za-z0-9_]*)|"[^"\n]*%([A-Za-z_]+[A-Za-z0-9_]*))/substr($1,0,1)eq'"'?$1:%o{substr$1,1}/ge;print; diff -r de2990eb5cdf -r 3c04e9ef7a3a lib/kps/strip.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/kps/strip.pl Tue Dec 31 17:47:30 2019 +0000 @@ -0,0 +1,12 @@ +#!/usr/bin/perl + +$_ = do { local $/; <> }; +do { + $l = length; + s/[\n\r\t ]+//g; + s/<>//g; + s/>