diff --git a/32-Inventory-Report.speed.asm b/32-Inventory-Report.speed.asm index 14aec633..6d47d30b 100644 --- a/32-Inventory-Report.speed.asm +++ b/32-Inventory-Report.speed.asm @@ -1,55 +1,91 @@ -- HUMAN RESOURCE MACHINE PROGRAM -- +-- Inventory report fast solution: 51/393 +-- Using precalculated values. - JUMP b -a: - COPYFROM 15 - OUTBOX -b: + BUMPUP 14 + BUMPUP 14 + COPYTO 16 -- Const 2 (C) + BUMPUP 14 + COPYTO 17 -- Const 3 (X) + BUMPUP 14 + COPYTO 18 -- Const 4 (A) + BUMPUP 14 -- Const 5 (B) +loop: INBOX - COPYTO 16 + COPYTO 19 + + -- Compare with "B" + SUB 0 + JUMPZ outb + + COPYFROM 19 + -- Compare with "A" + SUB 1 + JUMPZ outa + + COPYFROM 19 + -- Compare with "X" + SUB 2 + JUMPZ outx + + -- Else branch: "C" + +outc: + COPYFROM 16 + OUTBOX + JUMP loop +outx: + COPYFROM 17 + OUTBOX + JUMP loop +outa: + COPYFROM 18 + OUTBOX + JUMP loop +outb: COPYFROM 14 - COPYTO 15 - COPYTO 17 - JUMP e -c: - BUMPUP 15 -d: - BUMPUP 17 -e: - COPYFROM [17] - JUMPZ a - SUB 16 - JUMPZ c - JUMP d + OUTBOX + JUMP loop + + +DEFINE LABEL 0 +eJwzYmBgmG8Q6sZuEBbZrceU9lvrUpW41rEWBpC4c6jxfGdP23wnBgdt++1OILFuPRXT84bn9D47VGoo +O23TV3Y6bGHvyOCQbMvjudnoQsh7i7DIbCvv5Gwrvvx2yynF1SbqjZuNvjdF6/I3gfTru7eHv4trDwex +nT1rSmaVpJSC2Flt5/QgdKWGXFuo8apG3piwlvbwqB6vgK5eu6iu3pdpfD32uc/a1xatavQuA6ld1/lJ ++VrvIdW+qYdUGUbBKBgFZAEApXtDuQ; +DEFINE LABEL 1 +eJxTZGBgCPc+71jsperB77C2SN3cdC5QiMHYv9UwOWCV5e8AVY/fAT+mgsSuO/Llr4rmywexb+XPDzOr +nR8GYnMV3i2wKlpblNW2tgjET5v42ezfxPOOUhMvpsvNTE7inZ+cBBL/OH+Vpe2CPNel85P822Yw97TN +WNS/beaifoZRMApGwYABAKvBL5w; + +DEFINE LABEL 2 +eJxTZGBgaPfxCnD2lAxS1l8/A8hleGx83pHb4mtMsHPdLBC/Lf5urFnWkTgQ+1bMzupTSZeqmrK8y0D8 +oJoqa7PawxZe9bfN5dpum/u1e9qe6ngRfKrDPndW+90Cr3rjcqZ26YpJXeta73UVTlzXeXw6V8vuhV71 +UUtPlWou5ypcvIhhFIyCUTBgAABkIjRr; + +DEFINE LABEL 4 +eJxTZ2BgUA7ljbkfaBi430vVI901z9XfOs9V3dzWXd+kym+zkV2UtNHOjM1GryqFTU26uC3WzzC26Vq8 +2dVvvbzvlc3zwvZsaQo32wA0hmFWIlPlrBKmShD7UGrXBLGyrgkg9rP2w96TuvJc2fq3OwlNmedcNO2O +V9uM9nC5mUxpcjNf9yyaLjB100TN5c/aGw541TdcflT/6PzPOY/OM4yCUTAKaA4AoyI/Eg; DEFINE LABEL 14 -eJxzZmBg+CxkmB+qeiSlzup53Bsr2RQzy9+ZbXovOq8pT1n2V955i4Bc+P6FCksPeJkf3+XgprgLqIVB -IPJLO1uGa9XdvDOF7/MN89UK1mZMzZ0Z+zCDK7IzmSvySKxDnGnE78wdwdX16oE9M9UDrZdbBqWtyw09 -vut69KeDKSkXjq/MvnC8IK/pWFP+88MgMzdWr824UtvftbrF4XBJy58pD9pDMuM7LySJdvfFL5nwL6py -lmg4SN26nf+itmy4kJS/sivv7NLqevElLT0PF3NMfriYdVHrktpVLMvmbP6wvHW7x9rkvVmbNuy7upVz -n+PO47se77m/jeXQ6dVTj/TMZD56t1vs8JuqVfun5XTuupB0devzOIZRMApGIAAAdXmFYQ; - -DEFINE LABEL 15 -eJzzYWBg2KunE3xAozXIVdEn5r+MUNpb6YVZjFJvqhilvrRHy9ya5S7HuqhGUX9lqGrRmg7t2lUTrBtm -A7UxaPpZBBb76ATP8shOXe9c0VfpLDMvxMV9qa7HlvWrfJy3MAVN3Do5xHnLzYj9ayOirJdnRR+a5xpj -1u0aE1O2ILorzy2yPJkhdEMkyCy2jKXRnzO/tN/PPjRved7+te/zGTeqFH/bpFTGuLG38u3SqmrjWT9r -vrSvr8sLe9LYXvu5dcESkL6lvTrBuROYy49PmrIse/LsjldTMkquTQvJ7JlRniw973lc8nyTBI4F5clf -Fh4sbl3ycZrmUt71IH1HtuzScd28NsNw67F+ue0y8/R3bF9QtmfBkpL9QYvdz/yZ0n82cRLf+dkdILVx -KywCD+zi9RI59s6BYRSMgmEGAIXThmM; +eJzjY2BgCKo5EnevvKYkrNB3zqP6tNl6DetXv6qJ3nGoYsO+U6UNB/IyGg7YpZ/cC1TK8KjeKOXZrOQk +hlEwCkbBsAAAbAAaew; DEFINE LABEL 16 -eJwLZmBgSBAutSgS6crTEFs/+b5I2QmgEIOCEuuiRP3SuRZmM6ZvtRKe+Nfat32CtXiTh1V77R0z5vIz -RjFlWvpvqr5qc7fYa93tvqL2c3GaWt7uCnWTo1+1hU4vNYs/k+7Euc/JWXEXyLzmgE7nHcG3ZkWF3z5q -HB1/Zl6c0OnHqf/2f007vutrmvMWkJpZHptasqJdqwzjYspA/JXZKm6+OWmejIX710YXfzq4uETzeE3F -73NyNQvPG9SynV3dorI6sa1hNkhtQJp4U1U1c/mBeqliEP/GZN/2g7O5WwIWtte2L+QrLV1gm7tu7toM -p1lrM9ym8JWaTfjSPqk/d0J0v/vSrRMnbt04feahOXP6jiQucjgsvmTpAc2lx8Hu3rSZr1R+y/YFv7Zs -WZ+xVfbk5R0tPQd2uVaV7TlTyLb/fXbM8SMpkWcvJB25sDONYRSMgiEIADByk2s; +eJwTYWBg8DY+bKFu7qH13PqWSrSDspK3W4785+AQhaCwWyrnwv/rbIpYZbkpwi7KLFwtzz6koC45gLln +sff6GdutWDe1W7Juem+Rtk7Yo37tuzizDQyjYBSMgiEFANR9HuU; DEFINE LABEL 17 -eJzTZ2BgULRzd7jqFNna4f7/FZDLsMjmlf9DnzRPpiBeryWh33zfhFWFuEU+yV0UMa8yKlyvLjc0pXmF -f0tPsU9F33pn+X6QHrYMAWu2jDdVCVmPlhdl+2/SyFXclVfocPh/8e2jRlW3jzo0Xt7xtWnFxuRmmXkg -9euSXnSyZIs3KVQGVoD4aj3lye/6Tq/2mHjh+KT+iVu9+m7NEu67ke/VJ5QW3b802mzCnnCTyVUh6+a2 -BgUsVAz9tMQhjmEUjIJRQDEAABlzUCM; +eJwTZGBgaHZR9ah23+50OGiec3lQfkS279FCb7djLcpOMt3qXq97uL0X9Yd735+23+vNfH13wRXl9mYb +is27tx036d722PjtJoZRMApGwZAFAKcxHR0; + +DEFINE LABEL 18 +eJwTYGBgmBZ52GJapIGdWbhh4OGgBZniATurxQMi6t0D+Zvmhd1rNko61gJUxhCUuSBTLHn9jEvxP1YU +xTrtLIp9uIdhFIyCUTCkAQD+exlF; +DEFINE LABEL 19 +eJxjZ2Bg4KvcEcpXmX4QyGQoS21z6Wtqc5nUdd6RgQjQlOW081q67MZlaSdWgfjbineEXmrdEUqM3lEw +CkbBwAMAfd0UAA;