AddSys

From Esolang
Jump to navigation Jump to search
ADD A B #add A to B
INP A #input store in A
OUT A #output store in A
RET A #return A
HIT #IP cant jump over it cant go in
DEF ADAIN:A
 INP !A #function var A
 ADD !A A
 RET !A
ADIAN RN
OUT A! #return var

reg IP RN RI (REG ONE) RO (REG ZERO)

instruction pointer

NOT OP

DEF NOT:A
 ADD IP A
 RET RI
 RET RO
 HIT

OR OP

DEF OR:A B
 ADD IP A
 RET B
 RET RI
 HIT

AND OP

DEF AND:A B
 ADD IP A
 RET RO
 RET B
 HIT

SUB OP

DEF SUB:A B
 ADD !Z RN
 ADD !Z !Z
 ADD !Z !Z
 ADD !X A
 ADD !Y B
 ADD !X RN
 ADD !Y RN
 ADD IP !Y
 RET !X
 ADD !X !Z
 HIT

Page made by User:Timm