input suanpan setup_abacus(N=13,NBL=5,NBU=2,bead="suanpan",units=0); % initial value of a suanpan beginfig(1); rod_numbers:=false; reset_abacus; draw_abacus; endfig; setup_abacus(N=13,NBL=4,NBU=1,bead="soroban",units=1); % initial value of a soroban beginfig(2); rod_numbers:=false; reset_abacus; draw_abacus; endfig; setup_abacus(N=13,NBL=5,NBU=2,bead="suanpan",units=0); beginfig(3); rod_numbers:=true; reset_abacus; valL[1]:=2; valL[3]:=5; valU[2]:=1; valU[4]:=2; draw_abacus; endfig; beginfig(4); reset_abacus; set_abacus_val("10552"); draw_abacus; endfig; beginfig(10); reset_abacus; valL[1]:=2; valL[3]:=5; valU[2]:=1; valU[4]:=2; draw_abacus; endfig; beginfig(20); reset_abacus; valL[1]:=3; valL[3]:=5; valU[2]:=1; valU[4]:=2; draw_abacus; endfig; % soroban? beginfig(30); setup_abacus(N=13,NBL=4,NBU=1,bead="soroban",units=1); set_abacus_val("651324"); set_abacus_gray(deck="lower",below="000011", above="000010"); set_abacus_gray(deck="upper",below="000001", above="000010"); draw_abacus; mark_abacus(i=1,j=5)(btex 1 etex); mark_abacus(i=2,j=2)(btex 2 etex); mark_abacus(i=2,j=3)(btex 3 etex); endfig; %show_val; setup_abacus(N=13,NBL=4,NBU=1,bead="soroban",units=1); set_abacus_val("651324"); reset_abacus_gray; add_val(v="82363456",iv=100,fig=true); %message "**********************************"; %show_val; setup_abacus(N=13,NBL=5,NBU=2,bead="suanpan",units=0); % detailing one of the addition cases beginfig(200); reset_abacus; reset_abacus_gray; set_abacus_val("82951324"); draw_abacus; endfig; beginfig(201); set_abacus_val("82951324"); add_val(v="60000",iv=100,fig=false); draw_abacus; endfig; %------------------------------------------- beginfig(202); reset_abacus; reset_abacus_gray; set_abacus_val("82951324"); set_abacus_gray(deck="lower",below="1010000", above="0400000"); set_abacus_gray(deck="upper",below="0110000", above="0000000"); draw_abacus; endfig; beginfig(203); reset_abacus_gray; add_val(v="60000",iv=100,fig=false); set_abacus_gray(deck="lower",below="0400000", above="1010000"); set_abacus_gray(deck="upper",below="0000000", above="0110000"); draw_abacus; mark_abacus(i=5,j=5)(btex 1 etex); endfig; % the following two commands enable a base-8 abacus vbu:=4; % value of a bead in the upper deck setup_abacus(N=13,NBL=3,NBU=1,bead="suanpan",units=0); beginfig(300); reset_abacus; reset_abacus_gray; set_abacus_val("3401256"); draw_abacus; endfig; beginfig(301); add_val(v="1234",iv=100,fig=false); draw_abacus; endfig; end