AsmPrgm a2_1(){ test "$2"&&= "$2";$asm_bin/a2.x <$1;}
  a2(){ hpp.py $1 -o ${2%.*}.1 -com '***' '***';{ test "$3"&&= "$3";$asm_bin/a2.x <(tail -n+2 ${2%.*}.1);} >$2;}
  fn=;a2 <(tail -n+2 $fn) /tmp/$fn.a $(head -n 1 $fn);./a.sh </tmp/$fn.a 00- >/tmp/$fn.s;./a.sh <(head -n 1 $fn.a;cat /tmp/stat.s;tail -n+2 /tmp/$fn.a) >/tmp/$fn.b
1800C9
#include lib mult
r.lnum_mov:0600
E5:CD,0000b.address:3005E1060118,00a.end:E1
D5:CD,0000b.address_de:30,00a1:D1D5EB,CD,0000s.font,0000a.lnum_set_zero,EBD1D5:0600:CD,0000b.address_de:3005D1060218,00a.end:r1:D1
r.end:.tst B:28,00a1:CD,0000s.font_a,0200a:18,00a.str:error',2000r.str:EF,.s 450A~oPutS:78,CD,0000s.print_A:CD,0000scNewLine:C9r1
E5:CD,0000b.address:E3
D5:CD,0000b.address_de
1B1B1B1B:.HL->(DE):D1
E3:2B2B2B2B:.DE->(HL):E1
.HL->BC:CD,0000s.lnum_length_r:ED53,0000b.alloc:CD,0000s.lnum_length_w:010000:22,0000b.alloc:CD,0000s.lnum_length_w
.HL->BC:CD,0000s.lnum_m:.DE->BC:CD,0000s.lnum_m_w:AF:.HL->BC:CD,0000s.lnum_m_w
C9
r.lnum_cpy
.HL->BC:CD,0000s.lnum_length_r:ED53,0000b.alloc:CD,0000s.lnum_length_w
ED43,0200b.alloc:EB:CD,0000b.realloc:E5:CD,0000b.address_r
D5:CD,0000b.address_de:ED4B,0200b.alloc:30,00a1
.tst BC:28,00a1:r.loop:AF7723:0B,.tst BC:20,00b.loop:18,00a2,r1
.tst BC:28,00a1:r.loop:1A772313:0B,.tst BC:20,00b.loop,r1,r2
E1:D1
.HL->BC:CD,0000s.lnum_m:.DE->BC:CD,0000s.lnum_m_w
C9
r.lnum_set_zero
.HL->BC:E5:CD,0000s.lnum_length_r:.tst BC:20,00a1:010200:ED43,0200b.alloc:CD,0000b.realloc:CD,0000b.address_r:18,00a2:r1:CD,0000b.address:r2
AF:77:C1:CD,0000s.lnum_m_w
ED43,0000b.alloc:010100:CD,0000s.lnum_length_w
C9
r.lnum_length
.HL->BC:CD,0000s.lnum_length_r:CD,0000s.address:3004,010000C9:09
.tst BC:28,00a.end:r.loop:.BC-:.tst BC:2003,.BC+;18,00a.end:.BC+:..HL-:tst (HL):20,00a.end:.BC-:18,00b.loop
r.end,C9

r.lnum_from_int
.bit 7,H:28,00a1:.neg HL:3E01:1801r1:AF:C5,ED4B,0000b.lnum_from_int.var,CD,0000b.lnum_m_w,C1
r.lnum_from_int_ent
E5:210200,22,0200b.alloc,2A,0000b.lnum_from_int.var,CD,0000b.realloc:2A,0000b.lnum_from_int.var,CD,0000b.address_r:EB:E1:.HL->(DE)
C5:ED4B,0000b.lnum_from_int.var,ED43,0000b.alloc:010200:.tst H:20010B:CD,0000b.lnum_length_w,C1
C9
r.lnum_from_uint
AF:C5,ED4B,0000b.lnum_from_int.var,CD,0000b.lnum_m_w,C1
18,00b.lnum_from_int_ent

r.lnum_add_int_sf
ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:2A,0600b.lnum_add.var:09
ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:E5:.0HL>0BC:E1:3802:.BC->HL:23,22,0200b.alloc,2B:22,0A00b.lnum_add.var
2A,0000b.lnum_add.var,CD,0000b.realloc:2A,0000b.lnum_add.var,CD,0000b.address_r:22,0C00b.lnum_add.var
ED5B,0200b.lnum_add.var,CD,0000b.address_de:ED53,0E00b.lnum_add.var
ED5B,0400b.lnum_add.var,CD,0000b.address_de:ED53,1000b.lnum_add.var
210000,22,0800b.lnum_add.var:E5:.rcf;F5:E1:22,1200b.lnum_add.var:E1:18,00a.cond,r.loop
2A,0800b.lnum_add.var:ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1E00:30,00a1:2A,0E00b.lnum_add.var:.(HL)->E:23:22,0E00b.lnum_add.var,r1
  2A,0800b.lnum_add.var:ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1600:30,00a1:2A,1000b.lnum_add.var:.(HL)->D:23:22,1000b.lnum_add.var,r1
2A,0800b.lnum_add.var:ED4B,0600b.lnum_add.var:.0HL>=0BC:1600:30,00a1:2A,0800b.lnum_add.var:ED4B,0600b.lnum_add.var:.sub BC:ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:30,00a1:2A,1000b.lnum_add.var:.(HL)->D:23:22,1000b.lnum_add.var,r1
2A,1200b.lnum_add.var:E5:F1:..E->A:adc D:F5:E1:22,1200b.lnum_add.var
2A,0C00b.lnum_add.var:.A->(HL):23,22,0C00b.lnum_add.var
2A,0800b.lnum_add.var,23,22,0800b.lnum_add.var:r.cond:ED4B,0A00b.lnum_add.var:.0HL<0BC:38,00b.loop
2A,1200b.lnum_add.var:E5:F1:ED4B,0A00b.lnum_add.var:30,00a1:03:ED5B,0C00b.lnum_add.var:3E01:.A->(DE):r1
2A,0000b.lnum_add.var,22,0000b.alloc:CD,0000b.lnum_length_w
C9
r.lnum_add_int
ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.BC->HL
ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:E5:.0HL>0BC:E1:3802:.BC->HL:23,22,0200b.alloc,2B:22,0A00b.lnum_add.var
2A,0000b.lnum_add.var,CD,0000b.realloc:2A,0000b.lnum_add.var,CD,0000b.address_r:22,0C00b.lnum_add.var
ED5B,0200b.lnum_add.var,CD,0000b.address_de:ED53,0E00b.lnum_add.var
ED5B,0400b.lnum_add.var,CD,0000b.address_de:ED53,1000b.lnum_add.var
210000,22,0800b.lnum_add.var:E5:.rcf;F5:E1:22,1200b.lnum_add.var:E1:18,00a.cond,r.loop
2A,0800b.lnum_add.var:ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1E00:30,00a1:2A,0E00b.lnum_add.var:.(HL)->E:23:22,0E00b.lnum_add.var,r1
2A,0800b.lnum_add.var:ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1600:30,00a1:2A,1000b.lnum_add.var:.(HL)->D:23:22,1000b.lnum_add.var,r1
2A,1200b.lnum_add.var:E5:F1:..E->A:adc D:F5:E1:22,1200b.lnum_add.var
2A,0C00b.lnum_add.var:.A->(HL):23,22,0C00b.lnum_add.var
2A,0800b.lnum_add.var,23,22,0800b.lnum_add.var:r.cond:ED4B,0A00b.lnum_add.var:.0HL<0BC:38,00b.loop
2A,1200b.lnum_add.var:E5:F1:ED4B,0A00b.lnum_add.var:30,00a1:03:ED5B,0C00b.lnum_add.var:3E01:.A->(DE):r1
2A,0000b.lnum_add.var,22,0000b.alloc:CD,0000b.lnum_length_w
C9

r.lnum_sub_int
ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.BC->HL
ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:E5:.0HL>0BC:E1:3802:.BC->HL:00,22,0200b.alloc,00:22,0A00b.lnum_add.var
2A,0000b.lnum_add.var,CD,0000b.realloc:2A,0000b.lnum_add.var,CD,0000b.address_r:22,0C00b.lnum_add.var
ED5B,0200b.lnum_add.var,CD,0000b.address_de:ED53,0E00b.lnum_add.var
ED5B,0400b.lnum_add.var,CD,0000b.address_de:ED53,1000b.lnum_add.var
210000,22,0800b.lnum_add.var:E5:.rcf;F5:E1:22,1200b.lnum_add.var:E1:18,00a.cond,r.loop
2A,0800b.lnum_add.var:ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1E00:30,00a1:2A,0E00b.lnum_add.var:.(HL)->E:23:22,0E00b.lnum_add.var,r1
2A,0800b.lnum_add.var:ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1600:30,00a1:2A,1000b.lnum_add.var:.(HL)->D:23:22,1000b.lnum_add.var,r1
2A,1200b.lnum_add.var:E5:F1:..E->A:sbc D:F5:E1:22,1200b.lnum_add.var
2A,0C00b.lnum_add.var:.A->(HL):23,22,0C00b.lnum_add.var
2A,0800b.lnum_add.var,23,22,0800b.lnum_add.var:r.cond:ED4B,0A00b.lnum_add.var:.0HL<0BC:38,00b.loop
2A,1200b.lnum_add.var:E5:F1:ED4B,0A00b.lnum_add.var:30,00a1:CD,0000s.font_a,0200a:18,00a.str:.subtraction error';00r.str:EF,.s 450A~oPutS:CD,0000scNewLine:r1
2A,0000b.lnum_add.var,22,0000b.alloc:CD,0000b.lnum_length_w
C9
r.lnum_cmp_a:32,0100s.lnum_sub.var
ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.BC->HL
ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:E5:.0HL>0BC:E1:3802:.BC->HL:22,0A00b.lnum_add.var
ED5B,0200b.lnum_add.var,CD,0000b.address_de:ED53,0E00b.lnum_add.var
ED5B,0400b.lnum_add.var,CD,0000b.address_de:ED53,1000b.lnum_add.var
3E01,32,0000s.lnum_sub.var
210000,22,0800b.lnum_add.var:E5:.rcf;F5:E1:22,1200b.lnum_add.var:E1:18,00a.cond,r.loop
2A,0800b.lnum_add.var:ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1E00:30,00a1:2A,0E00b.lnum_add.var:.(HL)->E:23:22,0E00b.lnum_add.var,r1
2A,0800b.lnum_add.var:ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1600:30,00a1:2A,1000b.lnum_add.var:.(HL)->D:23:22,1000b.lnum_add.var,r1
2A,1200b.lnum_add.var:E5:F1:..E->A:sbc D:F5:E1:22,1200b.lnum_add.var
.tst A:28,00a1:3A,0000s.lnum_sub.var:.tst A:28,00a1:AF:32,0000s.lnum_sub.var:r1
2A,0800b.lnum_add.var,23,22,0800b.lnum_add.var:r.cond:ED4B,0A00b.lnum_add.var:.0HL<0BC:38,00b.loop
2A,1200b.lnum_add.var:E5:F1:0E00:30,00a1:3A,0100s.lnum_sub.var:FE,01-,28,00a1.1:FE,02-,20,00a2,r1.1:0E01:18,00a2,r1
3A,0000s.lnum_sub.var:.tst A:3A,0100s.lnum_sub.var:28,00a3:FE00,28,00a3.1:FE01,28,00a3.1:FE,01-,20,00a2,r3.1:0E02:18,00a2,r3
FE01,28,00a2.1:FE02,20,00a2,r2.1:0E01:r2
79C9
r.lnum_cmp_int:32,0100s.lnum_sub.var
ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.BC->HL
ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:E5:.0HL>0BC:E1:3802:.BC->HL:00,22,0200b.alloc,00:22,0A00b.lnum_add.var
2A,0000b.lnum_add.var,CD,0000b.realloc:2A,0000b.lnum_add.var,CD,0000b.address_r:22,0C00b.lnum_add.var
ED5B,0200b.lnum_add.var,CD,0000b.address_de:ED53,0E00b.lnum_add.var
ED5B,0400b.lnum_add.var,CD,0000b.address_de:ED53,1000b.lnum_add.var
3E01,32,0000s.lnum_sub.var
210000,22,0800b.lnum_add.var:E5:.rcf;F5:E1:22,1200b.lnum_add.var:E1:18,00a.cond,r.loop
2A,0800b.lnum_add.var:ED4B,0200b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1E00:30,00a1:2A,0E00b.lnum_add.var:.(HL)->E:23:22,0E00b.lnum_add.var,r1
2A,0800b.lnum_add.var:ED4B,0400b.lnum_add.var,CD,0000b.lnum_length_r:.0HL<0BC:1600:30,00a1:2A,1000b.lnum_add.var:.(HL)->D:23:22,1000b.lnum_add.var,r1
2A,1200b.lnum_add.var:E5:F1:..E->A:sbc D:F5:E1:22,1200b.lnum_add.var
2A,0C00b.lnum_add.var:.A->(HL):23,22,0C00b.lnum_add.var
.tst A:28,00a1:3A,0000s.lnum_sub.var:.tst A:28,00a1:AF:32,0000s.lnum_sub.var:r1
2A,0800b.lnum_add.var,23,22,0800b.lnum_add.var:r.cond:ED4B,0A00b.lnum_add.var:.0HL<0BC:38,00b.loop
ED4B,0A00b.lnum_add.var
2A,0000b.lnum_add.var,22,0000b.alloc:CD,0000b.lnum_length_w
2A,1200b.lnum_add.var:E5:F1:0E00:30,00a1:3A,0100s.lnum_sub.var:FE,01-,28,00a1.1:FE,02-,20,00a2,r1.1:0E01:18,00a2,r1
3A,0000s.lnum_sub.var:.tst A:3A,0100s.lnum_sub.var:28,00a3:FE00,28,00a3.1:FE01,28,00a3.1:FE,01-,20,00a2,r3.1:0E02:18,00a2,r3
FE01,28,00a2.1:FE02,20,00a2,r2.1:0E01:r2
79C9

r.lnum_cmp:32,0100s.lnum_sub.var 2 1 0 -1 -2 (=) gt gte eq lte lt
ED4B,0200b.lnum_add.var,CD,0000s.lnum_m:32,0400s.lnum_sub.var
ED4B,0400b.lnum_add.var,CD,0000s.lnum_m:21,0400s.lnum_sub.var:.cp (HL):20,00a1
FE01:3A,0100s.lnum_sub.var:20,00a2:CD,0000s.font,0000b.lnum_cmp_a:FE02:2802:.x;01:C9r2
CD,0000s.font_a,0000b.lnum_cmp_a:E9r1:0600
FE00:3A,0100s.lnum_sub.var:20,00a2:FE,01-:2002:0601:FE,02-:2002:0601:78C9r2
FE,01-:2002:0601:FE,02-:2002:0601:FE00:2802:.x;01:78C9
r.lnum_inc
E5,2A,0200b.lnum_add.var,22,0000b.lnum_add.var,E1:18,00a.lnum_add
r.lnum_dec
E5,2A,0200b.lnum_add.var,22,0000b.lnum_add.var,E1:18,00a.lnum_sub
r.lnum_add
ED4B,0400b.lnum_add.var,CD,0000s.lnum_m:32,0300s.lnum_sub.var:18,00a.lnum_add_int_s
r.lnum_sub
ED4B,0400b.lnum_add.var,CD,0000s.lnum_m:.x;01:32,0300s.lnum_sub.var:18,00a.lnum_add_int_s
r.lnum_add_int_s
ED4B,0200s.lnum_add.var,CD,0000s.lnum_m:32,0400s.lnum_sub.var
21,0300s.lnum_sub.var:.cp (HL):20,00a1:CD,0000s.font,0000b.lnum_add_int:3A,0300s.lnum_sub.var:ED4B,0000b.lnum_add.var,CD,0000s.lnum_m_w:C9r1
.HL push 0000b.lnum_add.var:.HL 0400s.f_tab4a->0000b.lnum_add.var:3E01:CD,0000s.font,0000b.lnum_cmp_int:.HL pop 0000b.lnum_add.var
FE02:20,00a1:2A,0000b.lnum_add.var,E5,CD,0000s.font_a,0000b.lnum_set_zero:E3C9r1
FE01:20,00a1
  CD,0000s.font,0000b.lnum_sub_int
2A,0400s.f_tab4a,ED5B,0000b.lnum_add.var,CD,0000s.font,0000b.lnum_mov
3A,0300s.lnum_sub.var:.x;01:ED4B,0000b.lnum_add.var,CD,0000s.lnum_m_w
C9r1
.HL push 0200b.lnum_add.var:.HL push 0400b.lnum_add.var
.HL pop 0200b.lnum_add.var:.HL pop 0400b.lnum_add.var
CD,0000s.font,0000b.lnum_sub_int:3A,0400s.lnum_sub.var:.x;01:ED4B,0000b.lnum_add.var,CD,0000s.lnum_m_w
C9

r.lnum_mult
2A,0000b.lnum_mult.var,CD,0000s.font,0000b.lnum_set_zero
2A,0000b.lnum_mult.var,22,0000b.lnum_add.var,22,0200b.lnum_add.var:2A,0600b.lnum_mult.var,22,0400b.lnum_add.var
110000r.loop_y:00:.DE->HL:ED4B,0400b.lnum_mult.var,CD,0000b.lnum_length_r:.sub BC:30,00a.end_y:00:ED53,0A00b.lnum_mult.var
210000r.loop_x:E5:ED4B,0200b.lnum_mult.var,CD,0000b.lnum_length_r:.sub BC:30,00a.end_x:E1:22,0800b.lnum_mult.var
2A,0200b.lnum_mult.var,CD,0000b.address:ED4B,0800b.lnum_mult.var:09:E5
2A,0400b.lnum_mult.var,CD,0000b.address:ED4B,0A00b.lnum_mult.var:09:7E:E1:66:6F
CD,0000s.font,0000b.ent2
ED4B,0600b.lnum_mult.var:ED43,0000b.lnum_from_int.var:CD,0000s.font,0000s.lnum_from_uint
2A,0800b.lnum_mult.var:ED4B,0A00b.lnum_mult.var:09:22,0600b.lnum_add.var:CD,0000s.font,0000b.lnum_add_int_sf
2A,0800b.lnum_mult.var,2318,00b.loop_x,r.end_x:E1
ED5B,0A00b.lnum_mult.var,1318,00b.loop_y,r.end_y:00
ED4B,0200b.lnum_mult.var:CD,0000s.lnum_m:.A->E:ED4B,0400b.lnum_mult.var:CD,0000s.lnum_m:.x E:ED4B,0000b.lnum_mult.var:CD,0000s.lnum_m_w
C9
r.lnum_sqrt
00,2A,0600b.lnum_div.var,22,0000b.lnum_mult.var,2A,0000b.lnum_div.var,22,0200b.lnum_mult.var,22,0400b.lnum_mult.var
2A,0000b.lnum_div.var,22,0000b.alloc,00
ED4B,0200b.lnum_div.var,CD,0000b.lnum_length_r
.BC+;.srl BC:ED43,0200b.alloc:CD,0000b.lnum_length_w
2A,0000b.lnum_div.var,CD,0000b.realloc:2A,0000b.lnum_div.var,CD,0000b.address_r
.()->BC;0200b.alloc:.tst BC:28,00a1,r.loop:.->(HL);00,.HL+:.BC-:.tst BC:20,00b.loop,r1
.()->BC;0200b.alloc:r.loop:.tst BC:28,00a.end:.BC-:C5:.HL-
.->E;80:r.l2:D5
.E->A;..x (HL);A->(HL):22,0000b.alloc.mark,CD,0000b.alloc_push:CD,0000s.font,0000b.lnum_mult
CD,0000b.alloc_pull,2A,0000b.alloc.mark:E5
2A,0600b.lnum_div.var,22,0200b.lnum_add.var:3E02:2A,0200b.lnum_div.var,22,0400b.lnum_add.var:CD,0000s.font,0000b.lnum_cmp_a:E1D1:.tst A:28,00a1:.E->A;..x (HL);A->(HL);r1
.srl E:.tst E:28,00a.e2
18,00b.l2,r.e2:C1:18,00b.loop,r.end
AF:C5,ED4B,0000b.lnum_div.var,CD,0000b.lnum_m_w,C1
C9
r.lnum_div
00,2A,0600b.lnum_div.var,22,0000b.lnum_mult.var,2A,0000b.lnum_div.var,22,0200b.lnum_mult.var,2A,0400b.lnum_div.var,22,0400b.lnum_mult.var
2A,0000b.lnum_div.var,22,0000b.alloc,00
ED4B,0200b.lnum_div.var,CD,0000b.lnum_length_r:.BC->HL
ED4B,0400b.lnum_div.var,CD,0000b.lnum_length_r:.sub BC:3003:210000:.HL+
.HL->BC:ED43,0200b.alloc:CD,0000b.lnum_length_w
2A,0000b.lnum_div.var,CD,0000b.realloc:2A,0000b.lnum_div.var,CD,0000b.address_r
.()->BC;0200b.alloc:.tst BC:28,00a1,r.loop:.->(HL);00,.HL+:.BC-:.tst BC:20,00b.loop,r1
.()->BC;0200b.alloc:r.loop:.tst BC:28,00a.end:.BC-:C5:.HL-
.->E;80:r.l2:D5
.E->A;..x (HL);A->(HL):22,0000b.alloc.mark,CD,0000b.alloc_push:CD,0000s.font,0000b.lnum_mult
CD,0000b.alloc_pull,2A,0000b.alloc.mark:E5
2A,0600b.lnum_div.var,22,0200b.lnum_add.var:3E02:2A,0200b.lnum_div.var,22,0400b.lnum_add.var:CD,0000s.font,0000b.lnum_cmp_a:E1D1:.tst A:28,00a1:.E->A;..x (HL);A->(HL);r1
.srl E:.tst E:28,00a.e2
18,00b.l2,r.e2:C1:18,00b.loop,r.end
ED4B,0200b.lnum_div.var:CD,0000s.lnum_m:.A->E:ED4B,0400b.lnum_div.var:CD,0000s.lnum_m:.x E:ED4B,0000b.lnum_div.var:CD,0000s.lnum_m_w
C9
r.alloc:0000: :z cont:0000,0000,0000 cont,length,var