All pastes #195098 Raw Edit

Pikhq

public text v1 · immutable
·published 2006-10-08 20:35 UTC
rendered paste body
source ^subvar.bfm
source ^booland.bfm
source ^copy.bfm
source ^divvar.bfm

macro mod {result v1 v2 tmp tmp1 tmp2 tmp3} {
	set tmp 0
	set tmp1 0
	set tmp2 0
	set tmp3 0

	while v1 {
		copy v2 tmp tmp1
		copy v1 tmp2 tmp1
		booland tmp2 tmp tmp1 tmp3
		while tmp2 {
			subtract tmp 1
			subtract v1 1
			copy v1 tmp2 tmp1
			booland tmp2 tmp tmp1 tmp3
		}
		comment #
	}
	set result 0
	while tmp {
		add result 2
		subvar result tmp tmp1
		set tmp 0
	}
}
macro itoa {int a1 a2 a3 tmp tmp1 tmp2 tmp3 tmp4} {
	set tmp 10
	set a1 0
	set a2 0
	set a3 0
	set tmp1 0
	set tmp2 0
	set tmp3 0
	set tmp4 0

	comment #
	mod a1 int tmp tmp1 tmp2 tmp3 tmp4
	comment #
	divvar int tmp tmp1 tmp2 tmp3 tmp4
	comment #
	mod a2 int tmp tmp1 tmp2 tmp3 tmp4
	comment #
	divvar int tmp tmp1 tmp2 tmp3 tmp4
	comment #
	mod a3 int tmp tmp1 tmp2 tmp3 tmp4
	comment #
	divvar int tmp tmp1 tmp2 tmp3 tmp4
	comment #
	copy a3 tmp1 tmp2
	add tmp2 1
	comment #
	while tmp1 {
		add a3 48
		add a2 48
		add a1 48
		set tmp1 0
		set tmp2 0
	}
	while tmp2 {
		copy a2 tmp1 tmp2
		while tmp1 {
			add a2 48
			add a1 48
			set tmp2 0
			set tmp1 0
		}
		while tmp2 {
			add a1 48
			set tmp2 0
		}
	}
}

@ int 0
@ a1 1
@ a2 2
@ a3 3
@ temp 4
@ temp1 5
@ temp2 6
@ temp3 7
@ temp4 8

add int 20
itoa int a1 a2 a3 temp temp1 temp2 temp3 temp4
out a1
out a2
out a3