File: rstack.fs

package info (click to toggle)
openbios 1.1.git20161120-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 5,120 kB
  • ctags: 13,545
  • sloc: ansic: 63,915; asm: 3,530; xml: 1,145; cpp: 414; sh: 388; makefile: 234
file content (21 lines) | stat: -rw-r--r-- 676 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
\ tag: pseudo r-stack implementation for openbios
\ 
\ Copyright (C) 2016 Mark Cave-Ayland
\ 
\ See the file "COPYING" for further information about
\ the copyright and warranty status of this work.
\ 

\
\ Pseudo r-stack implementation for interpret mode
\

create prstack h# 20 cells allot
variable #prstack 0 #prstack !

: prstack-push  prstack #prstack @ cells + ! 1 #prstack +! ;
: prstack-pop   -1 #prstack +! prstack #prstack @ cells + @ ;

: >r state @ if ['] >r , exit then r> swap prstack-push >r ; immediate
: r> state @ if ['] r> , exit then r> prstack-pop swap >r ; immediate
: r@ state @ if ['] r@ , exit then r> prstack-pop dup prstack-push swap >r ; immediate