From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- dviware/beebe/src/zerom.mac | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 dviware/beebe/src/zerom.mac (limited to 'dviware/beebe/src/zerom.mac') diff --git a/dviware/beebe/src/zerom.mac b/dviware/beebe/src/zerom.mac new file mode 100644 index 0000000000..f61715c049 --- /dev/null +++ b/dviware/beebe/src/zerom.mac @@ -0,0 +1,25 @@ + title ZEROM - C function to zero memory +COMMENT # +Zero a block of memory with a fast BLT instruction. + +Usage: (void)zerom(array,length); +# + search $mdefs + twoseg $text + entry zerom + +define array <-1(p)> ;n-th arg always at -n(fp) +define length <-2(p)> ;and here we have fp=p for speed + +zerom: skipg length + jrst done ;exit if length <= 0 + hrl 1,array ;[array,,] + hlr 1,1 ;[array,,array] + hrrz 2,1 ;[0,,array] + setzm 0(2) ;array[0] = 0 + add 2,length ;[0,,array+length] + addi 1,1 ;[array,,array+1] = BLT control word + blt 1,-1(2) ;clear the array up to array+length-1 +done: + popj p, ;return to caller + end -- cgit v1.2.3