% Section 2.2.3, Stack inserting and deleting (10 and 11) % Author Andrey Dubinchak kachnibud@gmail.com % Alpha-test version % % Each term has the two-octabyte form % % +----+----+----+----+----+----+----+----+ % | INFO | % +----+----+----+----+----+----+----+----+ % | LINK | % +----+----+----+----+----+----+----+----+ % % INFO IS 0 Defenition of fields LINK IS 8 P IS $0 T IS $1 Y IS $2 AVAIL IS $3 LOC Data_Segment+#100 GREG @ Node1 OCTA #01010A2031302043 OCTA #0000000000000000 LOC Data_Segment+#380 GREG @ Node2 OCTA #0004032020332053 OCTA #2000000000000100 LOC Data_Segment+#240 GREG @ Node3 OCTA #0002022020322044 OCTA #2000000000000380 LOC Data_Segment+#500 Storage pool GREG @ Avail1 OCTA #0000000000000000 OCTA #2000000000000510 Avail2 OCTA #0000000000000000 OCTA #2000000000000520 Avail3 OCTA #0000000000000000 OCTA #0000000000000000 LOC #100 Main LDA AVAIL,Avail1 LDA T,Node3 SET Y,5 test information $inserting SET P,AVAIL BZ P,OVERFLOW LDO AVAIL,P,LINK AVAIL<-LINK(P). STO Y,P,INFO INFO(P)<-Y. STO T,P,LINK LINK(P)<-T. SET T,P SET Y,0 test information $deleting SET P,T BZ P,UNDERFLOW LDO T,P,LINK T<-LINK(P). LDO Y,P,INFO Y<-INFO(P). STO AVAIL,P,LINK LINK(P)<-AVAIL. SET AVAIL,P UNDERFLOW SWYM OVERFLOW TRAP 0,Halt,0