|
|
BSD 4.3
operation; sm
}(nop,mov,cmp,add,bit,bic,bis,nop,clr,com,inc,dec,neg,adc,sbc,tst,ror,rol,asr,asl)[2Bopin]
nop: }0
mov: rl1 { od1
v { 0
}exit
cmp: rl1 { (16R2)Nsm { (twoc od1)-twoc od2
c { (2*16)$(2Bod1)+1+2B(~od2)
v { (2*15)$|sm
}exit
add: rl1 { (16R2)Nsm { (twoc od1)+twoc od2
c { (2*16)$(2Bod1)+2Bod2
v { (2*15)$|sm
}exit
bit: rl1 { od1^od2
v { 0
}exit
bic: rl1 { od2^(~od1)
v { 0
}exit
bis: rl1 { od1Vod2
v { 0
}exit
clr: rl1 { 16R0
c { v { n { 0
z { 1
}0
com: rl1 { ~od1
c { 1
v { 0
}exit
inc: rl1 { (16R2)Nsm { 1+twoc od1
v { sm=2*15
}exit
dec: rl1 { (16R2)Nsm { `1+twoc od1
v { sm$ - 2*15
}exit
neg: rl1 { (16R2)Nsm { -twoc od1
c { sm#0
v { sm = 2*15
}exit
adc: rl1 { (16R2)Nsm { c+twoc od1
v { c^sm=2*15
c { (sm=0)^c
}exit
sbc: rl1 { (16R2)Nsm { (- c)+twoc od1
c { sm=`1
v { sm = (2*15)-1
}exit
asr: rl1 { od1[0],`1Uod1
c { `1Yod1
v { (`1Yod1)#(rl1[0])
}exit
asl: rl1 { 1Uod1,0
c { 1Yod1
v { (1Yod1)#(rl1[0])
}exit
ror: rl1 { c,`1Uod1
c { `1Yod1
v { (`1Yod1)#(rl1[0])
}exit
rol: rl1 { 1Uod1,c
c { 1Yod1
v { (1Yod1)#(rl1[0])
}exit
exit: n { rl1[0]
z { ~ V/rl1
}0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.