ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.com< กดยุบ (ห้องยกเลิกการใช้งาน)สาระคำถามทั่วไป (ย้ายไป cafe)ใครเคยทำหุ่นแก้ sudoku ด้วย Lego Mindstorm ไหมครับ รบกวนหน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใครเคยทำหุ่นแก้ sudoku ด้วย Lego Mindstorm ไหมครับ รบกวนหน่อยครับ  (อ่าน 2375 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« เมื่อ: 11 กรกฎาคม 2011, 12:13:32 »

มีใครเคยทำหุ่นแก้ sudoku ด้วย Lego Mindstorm ไหมครับ รบกวนหน่อยครับ

โค้ดที่ใช้เป็นภาษาซีครับ แล้วก็มีภาษาเครื่องด้วยซึ่งผมดูไม่เป็น

ผมมีเรื่องอยากจะขอคำปรึกษาหน่อยครับ

รอบกวนหน่อยนะครับ ด่วนมาก  wanwan017
บันทึกการเข้า
medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 398



ดูรายละเอียด
« ตอบ #1 เมื่อ: 11 กรกฎาคม 2011, 16:59:43 »

ผมมีประสบการณ์เรื่อง MindStorm อยู่บ้าง ทั้ง NXT และ RCX แต่จะให้ใช้แก้ Sudoku หรือครับ แล้วป้อนค่าอย่างไร เซ็นเซอร์ของมันรับได้แค่ ความเข้มแสง, Sonar, Microphone หรือให้ ป้อนค่าวิธีอื่นๆ Huh?  wanwan003
บันทึกการเข้า
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #2 เมื่อ: 11 กรกฎาคม 2011, 19:17:18 »

ผมมีประสบการณ์เรื่อง MindStorm อยู่บ้าง ทั้ง NXT และ RCX แต่จะให้ใช้แก้ Sudoku หรือครับ แล้วป้อนค่าอย่างไร เซ็นเซอร์ของมันรับได้แค่ ความเข้มแสง, Sonar, Microphone หรือให้ ป้อนค่าวิธีอื่นๆ Huh?  wanwan003

ตอนนี้ที่ทำคือ scan จากความต่างกันของสีขาวกับดำในกระดาษเลยครับ เสร็จแล้วเอามาเทียบครับว่าเป็นเลขอะไร

NXT นะครับ
บันทึกการเข้า
medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 398



ดูรายละเอียด
« ตอบ #3 เมื่อ: 11 กรกฎาคม 2011, 20:36:07 »

ใช้ Sensor ที่ให้มากับเซ็ทหรอครับ Huh?
บันทึกการเข้า
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #4 เมื่อ: 11 กรกฎาคม 2011, 20:44:33 »

ครับผม แต่เนื่องจากซื้อมาสองปีกว่าเริ่มเก่า

มันเลยคลาดเคลื่อนเยอะครับ

ทำให้หาผลลัพ ออกมาผิดด้วยเช่นกัน

บางอันก็ถูกแล้วแต่ดวง

ผมเลยติดปัญหาตรงนี้ครับ

ถ้าผมหาวิธีเอาค่าใส่เลยไม่ได้

ผมติด ไอ  Tongue
บันทึกการเข้า
kittypunkz
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 299
ออฟไลน์ ออฟไลน์

กระทู้: 1,679



ดูรายละเอียด
« ตอบ #5 เมื่อ: 11 กรกฎาคม 2011, 21:02:24 »

เคยดูแต่วีดีโอ  แต่ไม่เคยทำแฮะ  Embarrassed

รอคนข้างล่าง ๆ
บันทึกการเข้า
medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 398



ดูรายละเอียด
« ตอบ #6 เมื่อ: 11 กรกฎาคม 2011, 21:08:04 »

โหผมยอมรับเลยครับแนวคิดดีมากแต่ว่าผมว่ามันเป็นไปไม่ได้เลยครับ lSensor ของ NXT มันถูกออกแบบเพื่อตรวจจับกรณีสีเปลี่ยนฉับพลันอ่ะครับในกรณีนี้

Chip ของ NXT ไม่สามารถจุข้อมูลเยอะขนาดจะแยกแยะตัวเลขด้วย lSensor ได้ลองจินตนาการดูนะครับ ลองคิดดูเล่นๆถ้าจะใช้ lSensor ของ NXT มาวิเคราะห์ตัวเลขที่อยู่บนกระดาษว่าเป็นตัวเลขอะไร นั่นหมายความว่า lSensor จะต้องวิ่งผ่านทุกจุดของกระดาษด้วยความเร็วที่คงที่  แล้วก็จับเวลา เวลาใช้เวลากี่ ms ถึงจะเกิดการเปลี่ยนสี แล้วนำเวลาที่ได้ ไปคูณกับความเร็ว ถึงจะได้เป็นความยาวของเส้นๆนึงที่หุ่นต์วิ่งผ่าน แล้วต้องวิ่งไม่รู้กี่รอบกว่าจะ scan ตัวเลขครบทั้งตัว หลังจากนั้นก็สร้างโปรแกรมย่อยเพื่อนำข้อมูลดิบที่ได้วิให้หุ่นวิเคราห์ว่าเป็นตัวเลขอะไร แค่คิดก็เหนื่อยแล้วครับ Sensor ของ NXT มันใช้ได้เต็มที่ก็จับสี จับเส้น ถ้าจะทำขนาดนั้นคงต้องไปศึกษาเรื่อง MicroController แล้วคงต้องใช้ Sensor ที่มีความละเอียดมากกว่านี้ แล้วโปรแกรมคงยาวเอาโล่เลยครับ

แนะนำ

ผมแนะนำให้ป้อนข้อมูลผ่านทางปุ่มของ NXT นะครับลองศึกษาดูนี่เป็นตัวอย่าง code หลังจากนั้น ให้ LCD ของ NXT แสดงผลออกมาเป็นตาราง 3x3 10x10 ก็ว่าไป
ส่วน Algorithm การแก้ Sudoku ผมว่าหาได้ทั่วไปนะครับ

ผมเข้าใจผิดอย่างไรก็บอกด้วยนะครับ  wanwan017
บันทึกการเข้า
medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 398



ดูรายละเอียด
« ตอบ #7 เมื่อ: 11 กรกฎาคม 2011, 21:09:40 »

อ้อขอโทษครับผมลืม อันนีเป็นวิธีเล่นกับปุ่มของ NXT นะครับลองไปศึกษาดู

โค๊ด:
int nLeftButton  = 0;
int nRightButton = 0;
int nEnterButton = 0;
int nExitButton  = 0;


task ButtonTask()
{
  //
  // Set task to highest priority so that it will run to completion. This will minimze the small
  // chance of task execution beeing delayed until after button is released; if this happens, then
  // the keypress will be lost.
  //
  nSchedulePriority = kHighPriority;

  //
  // Update count of times each button is pushed. If using this program as a template, replace these
  // statements with your own custom action.
  //
  switch (nNxtButtonPressed)
  {
  case kLeftButton:   ++nLeftButton;    break;
case kRightButton: ++nRightButton;  break;
case kEnterButton: ++nEnterButton;  break;
case kExitButton:   ++nExitButton;  break;
}
PlaySoundFile("! Click.rso");
return;
}

task main()
{
int nCycles = 0;
//
// "Hi-jack" buttons for user program control.
//
nNxtButtonTask  = ButtonTask;

//
// Note: program cannot be terminated if we hijack the 'exit' button. So there has to be an escape sequence
//       that will return buttons to system control! We'll use a triple click
//
nNxtExitClicks  = 3; // Triple clicking EXIT button will terminate program
//
// Do nothing. Just keep waiting
//
while (true)
{
//
// Some dummy code to do some work. In this case we'll simply display a count of the number of times
// each button has been pressed.
//
  string sTemp;

  ++nCycles;
  nxtDisplayTextLine(0, "  Cycles: %d", nCycles);
  nxtDisplayTextLine(1, "");
  nxtDisplayTextLine(2, "Left Enter Right");
  StringFormat(sTemp,   "%4d %5d", nLeftButton, nEnterButton);
  nxtDisplayTextLine(3, "%s %5d", sTemp, nRightButton);
  nxtDisplayTextLine(4, "      Exit      ");
  nxtDisplayTextLine(5, "     %5d",  nExitButton);
  nxtDisplayTextLine(6, "TripleClick EXIT");
  nxtDisplayTextLine(7, " to end program ");
  }
return;
}
บันทึกการเข้า
balungka
สมุนแก๊งเสียว
*

พลังน้ำใจ: 53
ออฟไลน์ ออฟไลน์

กระทู้: 775



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 11 กรกฎาคม 2011, 21:12:21 »

เข้ามาแบบงงๆ แล้วก็แอบออกไป  wanwan018
บันทึกการเข้า

LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #9 เมื่อ: 11 กรกฎาคม 2011, 21:47:58 »

ตอนนี้ผมเขียนโค้ดให้สแกนแถบสีที่แตกต่างได้แล้วครับ

ติดแต่ที่คาดเคลื่อน


มีใครพอจะแปลภาาษเครื่องออกไหมครับ ประมาณนี้

sudoku.rxe
Header
----------------
FormatString = MindstormsNXT
Version = 5
DSCount = 705 (0x2C1)
DSSize = 2674 (0xA72)
DSStaticSize = 1368 (0x558)
DSDefaultsSize = 1495 (0x5D7)
DynDSDefaultsOffset = 189 (0xBD)
DynDSDefaultsSize = 1306 (0x51A)
MemMgrHead = 5 (0x5)
MemMgrTail = 66 (0x42)
DVArrayOffset = 2004 (0x7D4)
ClumpCount = 42 (0x2A)
CodespaceCount = 17493 (0x4455)
----------------
DataSpace
----------------
DSTOC
  sl0000: 06 01 0000
  sl0001: 06 01 0004
  sl0002: 06 01 0008
  sl0003: 06 01 000C
  sl0004: 06 01 0010
  sl0005: 06 01 0014
  sl0006: 06 01 0018
  sl0007: 06 01 001C
  sl0008: 06 01 0020
  sl0009: 06 01 0024
  sl000A: 06 01 0028
  sl000B: 06 01 002C
  sl000C: 06 01 0030
  ul0079: 05 01 01E4
  ul007A: 05 01 01E8
  sl007B: 06 01 01EC
  ul007C: 05 01 01F0
  ul007D: 05 01 01F4
    a02B3: 07 00 054A
  sw02B4: 04 00 0000
   a02B5: 07 00 054C
  sw02B6: 04 00 0000
   a02B7: 07 00 054E
  sw02B8: 04 00 0000
   a02B9: 07 00 0550
  sw02BA: 04 00 0000
   a02BB: 07 00 0552
  ub02BC: 01 01 0000
   a02BD: 07 00 0554
  ub02BE: 01 00 0000
   a02BF: 07 00 0556
  ub02C0: 01 00 0000
Static DS Defaults
0C FE 06 FF C8 00 76 FD 14 05 00 02 90 01 20 03
00 01 E0 FC 80 00 38 FF 02 64 04 03 20 01 32 06
05 10 51 14 07 08 40 41 09 28 2B FD FC FF FE F8
F6 CE BA 21 F3 F9 FB FA EC 01 00 02 00 03 00 04
00 05 00 06 00 07 00 08 00 09 00 0A 00 0B 00 0C
00 0D 00 0E 00 0F 00 10 00 11 00 12 00 13 00 14
00 15 00 16 00 17 00 18 00 19 00 1A 00 1B 00 1C
00 1D 00 1E 00 1F 00 20 00 21 00 22 00 23 00 24
00 25 00 26 00 27 00 28 00 29 00 2A 00 2B 00 2C
00 2D 00 2E 00 2F 00 30 00 31 00 32 00 33 00 34
00 35 00 36 00 37 00 38 00 39 00 3A 00 3B 00 3C
00 3D 00 3E 00 3F 00 40 00 41 00 42 00
Dynamic DS Defaults
52 52 52 52 52 52 52 52 44 44 44 44 44 44 44 4C
4C 4C 4C 4C 4C 4C 4C 4C 4C 52 52 52 52 52 52 52
52 52 52 44 44 44 44 44 44 44 4C 4C 4C 4C 4C 4C
4C 4C 4C 4C 55 55 55 55 55 55 55 55 55 55 55 55
55 55 00 FF 4C 4C 4C 4C 4C 4C 4C 4C 4C 55 55 55
55 55 55 55 52 52 52 52 52 52 52 52 52 52 52 44
44 44 44 44 44 44 44 44 44 44 44 44 44 4C 4C 4C
4C 4C 4C 4C 4C 4C 4C 00 00 01 FF FF 47 61 6D 65
20 4F 76 65 72 2E 72 73 6F 00 FF FF 52 52 52 52
52 52 52 52 52 52 4C 4C 44 4C 44 4C 44 44 4C 44
44 4C 44 44 4C 44 44 4C 44 44 4C 44 44 4C 44 00
4F 00 FF FF 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 00 45 00 FF FF 52 00 FF FF 44 44 44 44
44 44 44 44 55 52 52 52 52 52 52 52 52 52 4C 4C
4C 4C 55 55 55 55 55 55 55 55 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 00 FF FF 4C 4C 4C 4C
4C 4C 4C 4C 4C 4C 52 44 44 44 44 44 44 44 55 52
52 52 52 52 52 52 52 44 52 52 44 44 52 44 4C 4C
44 44 4C 4C 44 4C 44 4C 4C 4C 4C 4C 55 55 4C 4C
55 4C 00 FF 4C 4C 4C 4C 4C 4C 4C 4C 4C 44 44 44
44 44 44 44 44 44 44 44 44 44 52 52 52 52 52 52
52 52 52 52 52 55 55 55 55 55 55 55 4C 4C 4C 4C
4C 4C 4C 4C 4C 4C 4C 00 52 52 52 52 52 52 52 52
52 52 44 44 44 44 44 44 44 4C 4C 4C 4C 4C 4C 4C
4C 4C 4C 52 52 52 52 52 52 52 52 52 52 44 44 44
44 44 44 44 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C 4C
00 FF FF FF 55 69 2E 6D 6F 64 00 FF 52 52 52 52
52 52 52 52 52 52 44 44 44 44 44 44 44 4C 4C 4C
4C 4C 4C 4C 4C 4C 4C 4C 44 44 44 44 44 44 44 52
52 52 52 52 52 52 52 52 52 52 52 00 2E 72 73 6F
00 FF FF FF 30 00 FF FF B2 FD 57 FE E8 FE 79 FF
00 00 87 00 18 01 A9 01 4E 02 FF FF 20 20 20 20
54 68 69 6E 6E 69 6E 67 20 20 20 20 00 FF FF FF
20 20 53 65 67 6D 65 6E 74 61 74 69 6F 6E 20 20
00 FF FF FF 54 68 72 65 73 68 6F 6C 64 69 6E 67
00 FF FF FF 7A FE 24 FF B0 FF DD FF 00 00 DD FF
B0 FF 24 FF 7A FE FF FF B2 FD CA FE 6A FF CE FF
00 00 CE FF 6A FF CA FE B2 FD FF FF 7A FE DE FE
42 FF A1 FF 00 00 5F 00 BE 00 22 01 86 01 FF FF
53 63 61 6E 6E 69 6E 67 00 FF FF FF
Dope Vectors (offset, elem size, count, back ptr, link)
07 D4 00 0A 00 43 FF FF 00 01
FF FF 00 01 00 00 04 8A 00 02
FF FF 00 01 00 00 04 8E 00 03
FF FF 00 01 00 00 04 BE 00 04
FF FF 00 01 00 00 04 D4 00 07
05 58 00 01 00 43 04 DC 00 06
05 9C 00 01 00 34 04 DE 00 08
FF FF 00 02 00 00 04 E0 00 09
05 D0 00 01 00 02 04 E2 00 0B
FF FF 00 01 00 00 04 E4 00 0A
FF FF 00 02 00 00 04 E6 00 0E
05 D4 00 01 00 0E 04 E8 00 0C
05 E4 00 01 00 24 04 EA 00 0D
06 08 00 01 00 02 04 EC 00 0F
FF FF 00 01 00 00 04 EE 00 10
06 0C 00 01 00 10 04 F0 00 12
FF FF 00 02 00 00 04 F2 00 11
FF FF 00 02 00 00 04 F4 00 1A
06 1C 00 01 00 02 04 F6 00 13
06 20 00 01 00 02 04 F8 00 14
06 24 00 01 00 2E 04 FA 00 15
06 54 00 01 00 37 04 FC 00 16
06 8C 00 01 00 34 04 FE 00 17
06 C0 00 01 00 39 05 00 00 18
06 FC 00 01 00 07 05 02 00 19
07 04 00 01 00 30 05 04 00 1B
FF FF 00 01 00 00 05 06 00 1C
07 34 00 01 00 05 05 08 00 1D
t016: 01 00 0E9F
t017: 01 00 11EA
t018: 01 00 13A5
t019: 01 00 13B3
t020: 01 00 14EA
t021: 01 00 15F0
t022: 01 00 1A76
t023: 01 00 1A84
t024: 01 00 1C44
t025: 01 00 2942
t026: 01 00 2981
t027: 01 00 2AF5
t028: 01 00 2CC7
t029: 01 00 33CF
t030: 01 00 3466
t031: 01 00 3501
t032: 01 00 358D
t033: 01 00 3B72
t034: 01 00 3C7B
t035: 01 00 3D4B
t036: 01 00 3DD0
t037: 01 00 3F6E
t038: 01 00 4115
t039: 01 00 4123
t040: 01 00 439F
t041: 01 00 4447
----------------
*/
; -------------- variable declarations --------------
dseg   segment
;------- definitions -------
c0212_def   struct
sb0213   sbyte
a0214   byte[]
uw0216   word
a0217   byte[]
c0212_def   ends
c021B_def   struct
sw021C   sword
sw021D   sword
c021B_def   ends
c0219_def   struct
sb021A   sbyte
c021B   c021B_def   
ul021E   dword
c0219_def   ends
c0221_def   struct
sw0222   sword
sw0223   sword
c0221_def   ends
c0224_def   struct
sw0225   sword
sw0226   sword
c0224_def   ends
c021F_def   struct
sb0220   sbyte
c0221   c0221_def   
c0224   c0224_def   
ul0227   dword
c021F_def   ends
c022A_def   struct
sw022B   sword
sw022C   sword
c022A_def   ends
c022D_def   struct
sw022E   sword
sw022F   sword
c022D_def   ends
c0228_def   struct
sb0229   sbyte
c022A   c022A_def   
c022D   c022D_def   
ul0230   dword
c0228_def   ends
c0231_def   struct
sb0232   sbyte
a0233   byte[]
ub0235   byte
ub0236   byte
c0231_def   ends
c0237_def   struct
sb0238   sbyte
uw0239   word
uw023A   word
ub023B   byte
ub023C   byte
c0237_def   ends
c023F_def   struct
sw0240   sword
sw0241   sword
c023F_def   ends
c023D_def   struct
sb023E   sbyte
c023F   c023F_def   
a0242   byte[]
ul0244   dword
c023D_def   ends
;------- declarations -------
sl0000   sdword   
sl0001   sdword   
sl0002   sdword   
sl0003   sdword   
sl0004   sdword   
sl0005   sdword   
sl0006   sdword   
sl0007   sdword   
sl0008   sdword   
sl0009   sdword   
sl000A   sdword   
sl000B   sdword   
sl000C   sdword   
sl000D   sdword   
sl000E   sdword   
sl000F   sdword   
sl0010   sdword   
sl0011   sdword   
sl0012   sdword   
sl0013   sdword   
sl0014   sdword   
sl0015   sdword   
sl0016   sdword   
sl0017   sdword   
sl0018   sdword   
sl0019   sdword   
sl001A   sdword   
sl001B   sdword   
sl001C   sdword   
sl001D   sdword   
sl001E   sdword   
sl001F   sdword   
sl0020   sdword   
sl0021   sdword   
sl0022   sdword   
sl0023   sdword   
sl0024   sdword   
sl0025   sdword   
sl0026   sdword   
sl0027   sdword   
sl0028   sdword   
sl0029   sdword   
sl002A   sdword   
sl002B   sdword   
sl002C   sdword   
sl002D   sdword   
sl002E   sdword   
sl002F   sdword   
sl0030   sdword   
sl0031   sdword   
ub020F   byte   
sb0210   sbyte   -20
ub0211   byte   
c0212   c0212_def   
c0219   c0219_def   
c021F   c021F_def   
c0228   c0228_def   
c0231   c0231_def   
c0237   c0237_def   
c023D   c023D_def   
a0245   byte[]   'RRRRRRRRDDDDDDDLLLLLLLLLLRRRRRRRRRRDDDDDDDLLLLLLLLLLUUUUUUUUUUUUUU'
a0247   byte[]   'LLLLLLLLLUUUUUUURRRRRRRRRRRDDDDDDDDDDDDDDLLLLLLLLLL'
a0249   sword[]   
a024B   byte[]   0x0, 0x1
a024D   byte[]   
a024F   sword[]   
a0251   byte[]   'Game Over.rso'
a0253   byte[]   'RRRRRRRRRRLLDLDLDDLDDLDDLDDLDDLDDLD'
a0255   byte[]   'O'
a0257   byte[]   
a0259   byte[]   'DDDDDDDDDDDDDDD'
a025B   sword[]   
a025D   sword[]   
a025F   byte[]   'E'
a0261   byte[]   'R'
a0263   byte[]   'DDDDDDDDURRRRRRRRRLLLLUUUUUUUUDDDDDDDDDDDDDDD'
a0265   byte[]   'LLLLLLLLLLRDDDDDDDURRRRRRRRDRRDDRDLLDDLLDLDLLLLLUULLUL'
a0267   byte[]   'LLLLLLLLLDDDDDDDDDDDDDRRRRRRRRRRRUUUUUUULLLLLLLLLLL'
a0269   byte[]   'RRRRRRRRRRDDDDDDDLLLLLLLLLLRRRRRRRRRRDDDDDDDLLLLLLLLLLLL'
a026B   byte[]   'Ui.mod'
a026D   byte[]   'RRRRRRRRRRDDDDDDDLLLLLLLLLLLDDDDDDDRRRRRRRRRRRR'
a026F   byte[]   
a0271   byte[]   '.rso'
a0273   sdword[]   
a0275   byte[]   '0'
a0277   byte[]   
a0279   byte[]   
a027B   byte[]   
a027D   sword[]   0xFDB2, 0xFE57, 0xFEE8, 0xFF79, 0x0, 0x87, 0x118, 0x1A9, 0x24E
a027F   byte[]   
a0281   byte[]   
a0283   byte[]   
a0285   byte[]   
a0287   byte[]   
a0289   byte[]   '    Thinning    '
a028B   byte[]   
a028D   byte[]   
a028F   byte[]   
a0291   byte[]   '  Segmentation  '
a0293   byte[]   
a0295   byte[]   
a0297   sword[]   
a0299   sword[]   
a029B   sword[]   
a029D   sword[]   
a029F   sword[]   
a02A1   sword[]   
a02A3   sword[]   
a02A5   sword[]   
a02A7   byte[]   
a02A9   sword[]   
a02AB   sword[]   
a02AD   byte[]   'Thresholding'
a02AF   byte[]   
a02B1   sword[]   0xFE7A, 0xFF24, 0xFFB0, 0xFFDD, 0x0, 0xFFDD, 0xFFB0, 0xFF24, 0xFE7A
a02B3   sword[]   0xFDB2, 0xFECA, 0xFF6A, 0xFFCE, 0x0, 0xFFCE, 0xFF6A, 0xFECA, 0xFDB2
a02B5   sword[]   0xFE7A, 0xFEDE, 0xFF42, 0xFFA1, 0x0, 0x5F, 0xBE, 0x122, 0x186
a02B7   sword[]   
a02B9   sword[]   
a02BB   byte[]   'Scanning'
a02BD   byte[]   
a02BF   byte[]   
dseg   ends
; -------------- program code --------------
   thread t000
   arrinit   a027B, sb0159, sw00CB
   arrinit   a02AF, sb0159, sb0179
   arrinit   a02BD, sb0159, sw0133
   arrinit   a02BF, sb0159, sw0133
   arrinit   a02B7, sb0159, sb0179
   arrinit   a02B9, sb0159, sb019B
   arrinit   a029F, sb0159, sb019B
   arrinit   a02A1, sb0159, sb019B
   arrinit   a029D, sb0159, sb0179
   arrinit   a0299, sb0159, sb019A
   arrinit   a029B, sb0159, sb019A
   arrinit   a02A9, sb0159, sb019A
   arrinit   a02AB, sb0159, sb019A
   arrinit   a02A3, sb0159, sb019A
   arrinit   a02A5, sb0159, sw00CD
   arrinit   a0273, sb0159, sb0178
   subcall   t011, ub01E7
   subcall   t029, ub015F
   subcall   t036, ub01BE
   subcall   t040, ub01A2
   exit   -1, -1
   endt
;-----------------------------------
   thread t001
   brtst   EQ, lbl0100, sl0086
   set   sb0186, 0x0
   brtst   EQ, lbl0061, sl0086
   set   sb0186, 0xFFFF
   brtst   LT, lbl0061, sl0086
   set   sb0186, 0x1
lbl0061:   mov   sb0187, sb0186
   mov   ul0083, sl0086
   brtst   GTEQ, lbl006B, sl0086
   neg   ul0083, sl0086
lbl006B:   mul   sb0187, sb0187, ub019C
   set   ub01A0, 0x17
   brtst   EQ, lbl0086, ub0196
   set   ub019D, 0x7
   set   ub019E, 0x2
   mov   sb0188, sb01A1
   brtst   EQ, lbl008F, sb0188
   add   ub01A0, ub01A0, sb015A
   jmp   lbl008F
lbl0086:   set   ub019D, 0x3
   set   ub019E, 0x0
   set   sb0188, 0x0
lbl008F:   set   ub019F, 0x20
   setout   a024D, OutputMode, ub019D, RegMode, ub019E, TachoLimit, ul0083, RunState, ub019F, RegPValue, ub0195, RegIValue, ub018C, RegDValue, ub018D, Power, sb0187, TurnRatio, sb01A1, UpdateFlags, ub01A0
   index   ub0199, a024D, NA
lbl00AD:   getout   ub019C, ub0199, Power
   brtst   EQ, lbl00BC, ub019C
   getout   ub018A, ub0199, RunState
   brcmp   EQ, lbl00AD, ub018A, sb015A
lbl00BC:   brtst   EQ, lbl00F8, ub0198
   set   ub019D, 0x7
   set   ub019E, 0x1
   set   ub01A0, 0x3
   setout   a024D, OutputMode, ub019D, RegMode, ub019E, RunState, ub019F, Power, sb0159, UpdateFlags, ub01A0
   getout   sw0140, ub0199, RotationCount
lbl00D9:   mov   sw013F, sw0140
   gettick   ul008B
   add   ul0084, ul008B, sb015C
lbl00E1:   gettick   ul008B
   brcmp   LTEQ, lbl00E1, ul008B, ul0084
   getout   sw0140, ub0199, RotationCount
   brcmp   NEQ, lbl00D9, sw013F, sw0140
   setout   a024D, RunState, sb0159, OutputMode, sb0159, UpdateFlags, sb015B
lbl00F8:   brtst   EQ, lbl0100, sb0188
   setout   a024D, UpdateFlags, sb015A
lbl0100:   subret   ub01AD
   endt
;-----------------------------------
   thread t002
   brtst   EQ, lbl01B3, sl008C
   set   sb0158, 0x0
   brtst   EQ, lbl0114, sl008C
   set   sb0158, 0xFFFF
   brtst   LT, lbl0114, sl008C
   set   sb0158, 0x1
lbl0114:   mov   sb01BF, sb0158
   mov   ul0089, sl008C
   brtst   GTEQ, lbl011E, sl008C
   neg   ul0089, sl008C
lbl011E:   mul   sb01BF, sb01BF, ub0189
   set   ub0190, 0x17
   brtst   EQ, lbl0139, ub0193
   set   ub01B7, 0x7
   set   ub01B8, 0x2
   mov   sb01BD, sb018E
   brtst   EQ, lbl0142, sb01BD
   add   ub0190, ub0190, sb015A
   jmp   lbl0142
lbl0139:   set   ub01B7, 0x3
   set   ub01B8, 0x0
   set   sb01BD, 0x0
lbl0142:   set   ub01B9, 0x20
   setout   a026F, OutputMode, ub01B7, RegMode, ub01B8, TachoLimit, ul0089, RunState, ub01B9, RegPValue, ub01B6, RegIValue, ub01B3, RegDValue, ub01B4, Power, sb01BF, TurnRatio, sb018E, UpdateFlags, ub0190
   index   ub0192, a026F, NA
lbl0160:   getout   ub0189, ub0192, Power
   brtst   EQ, lbl016F, ub0189
   getout   ub01B5, ub0192, RunState
   brcmp   EQ, lbl0160, ub01B5, sb015A
lbl016F:   brtst   EQ, lbl01AB, ub0191
   set   ub01B7, 0x7
   set   ub01B8, 0x1
   set   ub0190, 0x3
   setout   a026F, OutputMode, ub01B7, RegMode, ub01B8, RunState, ub01B9, Power, sb0159, UpdateFlags, ub0190
   getout   sw014B, ub0192, RotationCount
lbl018C:   mov   sw014E, sw014B
   gettick   ul007D
   add   ul007C, ul007D, sb015C
lbl0194:   gettick   ul007D
   brcmp   LTEQ, lbl0194, ul007D, ul007C
   getout   sw014B, ub0192, RotationCount
   brcmp   NEQ, lbl018C, sw014E, sw014B
   setout   a026F, RunState, sb0159, OutputMode, sb0159, UpdateFlags, sb015B
lbl01AB:   brtst   EQ, lbl01B3, sb01BD
   setout   a026F, UpdateFlags, sb015A
lbl01B3:   subret   ub0155
   endt
;-----------------------------------
   thread t003
   brtst   EQ, lbl0266, sl007B
   set   sb0161, 0x0
   brtst   EQ, lbl01C7, sl007B
   set   sb0161, 0xFFFF
   brtst   LT, lbl01C7, sl007B
   set   sb0161, 0x1
lbl01C7:   mov   sb01AB, sb0161
   mov   ul0079, sl007B
   brtst   GTEQ, lbl01D1, sl007B
   neg   ul0079, sl007B
lbl01D1:   mul   sb01AB, sb01AB, ub01BA
   set   ub01AA, 0x17
   brtst   EQ, lbl01EC, ub01B2
   set   ub01A7, 0x7
   set   ub01A4, 0x2
   mov   sb01AC, sb01A9
   brtst   EQ, lbl01F5, sb01AC
   add   ub01AA, ub01AA, sb015A
   jmp   lbl01F5
lbl01EC:   set   ub01A7, 0x3
   set   ub01A4, 0x0
   set   sb01AC, 0x0
lbl01F5:   set   ub01A5, 0x20
   setout   a02A7, OutputMode, ub01A7, RegMode, ub01A4, TachoLimit, ul0079, RunState, ub01A5, RegPValue, ub01A6, RegIValue, ub01B0, RegDValue, ub01B1, Power, sb01AB, TurnRatio, sb01A9, UpdateFlags, ub01AA
   index   ub01BB, a02A7, NA
lbl0213:   getout   ub01BA, ub01BB, Power
   brtst   EQ, lbl0222, ub01BA
   getout   ub01AE, ub01BB, RunState
   brcmp   EQ, lbl0213, ub01AE, sb015A
lbl0222:   brtst   EQ, lbl025E, ub01A8
   set   ub01A7, 0x7
   set   ub01A4, 0x1
   set   ub01AA, 0x3
   setout   a02A7, OutputMode, ub01A7, RegMode, ub01A4, RunState, ub01A5, Power, sb0159, UpdateFlags, ub01AA
   getout   sw0146, ub01BB, RotationCount
lbl023F:   mov   sw0147, sw0146
   gettick   ul0081
   add   ul007A, ul0081, sb015C
lbl0247:   gettick   ul0081
   brcmp   LTEQ, lbl0247, ul0081, ul007A
   getout   sw0146, ub01BB, RotationCount
   brcmp   NEQ, lbl023F, sw0147, sw0146
   setout   a02A7, RunState, sb0159, OutputMode, sb0159, UpdateFlags, sb015B
lbl025E:   brtst   EQ, lbl0266, sb01AC
   setout   a02A7, UpdateFlags, sb015A
lbl0266:   subret   ub0162
   endt
;-----------------------------------
   thread t004
   setin   sb015B, ub0163, InvalidData
lbl026C:   getin   ub015E, ub0163, InvalidData
   brtst   NEQ, lbl026C, ub015E
   subret   ub0160
   endt
;-----------------------------------
   thread t005
   set   sl008E, 0x3E7
   mov   sw0141, sl008E
   set   sl008E, 0x0
   mov   sw0139, sl008E
   set   sl008E, 0x0
   mov   sw0144, sl008E
lbl0287:   mov   sl008E, sw0144
   mov   sl0005, sl008E
   set   sl008E, 0x190
   cmp   LT, ub0174, sl0005, sl008E
   mov   sl008E, ub0174
   brtst   EQ, lbl02EE, ub0174
   jmp   lbl02A2
lbl029C:   add   sw0144, sw0144, sb015B
   jmp   lbl0287
lbl02A2:   set   sl008E, 0x46
   mov   sl0005, sl008E
   mov   sl008E, sw013E
   mov   sl0004, sl008E
   set   sl008E, 0x0
   mov   sl0019, sl008E
   set   sl008E, 0x0
   mov   sl0018, sl008E
   set   sl008E, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl0005
   mov   sl008C, sl0004
   mov   sb018E, sl0019
   mov   ub0193, sl0018
   mov   ub0191, sl008E
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   getin   sl008E, sb015B, ScaledValue
   mov   ub01C1, sl008E
   mov   sl008E, sw0144
   mov   sl0005, sl008E
   mov   sl008E, ub01C1
   replace   a027B, a027B, sl0005, sl008E
   jmp   lbl029C
lbl02EE:   setout   sb015B, Power, sb0159, OutputMode, sb0154, RegMode, sb0159, RunState, sb015A, UpdateFlags, sb01C5
   set   sl008E, 0x0
   mov   sw0144, sl008E
lbl0301:   mov   sl008E, sw0144
   mov   sl0005, sl008E
   set   sl008E, 0x190
   cmp   LT, ub0174, sl0005, sl008E
   mov   sl008E, ub0174
   brtst   EQ, lbl036A, ub0174
   jmp   lbl031C
lbl0316:   add   sw0144, sw0144, sb015B
   jmp   lbl0301
lbl031C:   mov   sl008E, sw0144
   index   sl008E, a027B, sl008E
   mov   sl0005, sl008E
   mov   sl008E, sw0141
   cmp   LT, ub0174, sl0005, sl008E
   mov   sl008E, ub0174
   brtst   EQ, lbl034B, ub0174
   mov   sl008E, sw0144
   index   sl008E, a027B, sl008E
   mov   sw0141, sl008E
   mov   sl008E, sw0144
   mov   sw0139, sl008E
   mov   sl008E, sw0144
   mov   sw013A, sl008E
   jmp   lbl0368
lbl034B:   mov   sl008E, sw0144
   index   sl008E, a027B, sl008E
   mov   sl0005, sl008E
   mov   sl008E, sw0141
   cmp   EQ, ub0174, sl0005, sl008E
   mov   sl008E, ub0174
   brtst   EQ, lbl0368, ub0174
   mov   sl008E, sw0144
   mov   sw013A, sl008E
lbl0368:   jmp   lbl0316
lbl036A:   mov   sl008E, sw0139
   mov   sl0005, sl008E
   mov   sl008E, sw013A
   add   sl008E, sl0005, sl008E
   mov   sl0005, sl008E
   set   sl008E, 0x2
   div   sl008E, sl0005, sl008E
   mov   sl0005, sl008E
   set   sl008E, 0x190
   mov   sl0004, sl008E
   set   sl008E, 0x2
   div   sl008E, sl0004, sl008E
   sub   sl008E, sl0005, sl008E
   subret   ub01E0
   subret   ub01E0
   endt
;-----------------------------------
   thread t006
   set   sl0080, 0x46
   mov   sl0032, sl0080
   mov   sl0080, sw0145
   arrbuild   a026F, sb015B
   mov   ub0189, sl0032
   mov   sl008C, sl0080
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   set   sl0080, 0x1
   mov   sw013E, sl0080
   subcall   t005, ub01E0
   mov   sl0080, sl008E
   mov   sw014D, sl0080
   mov   sl0080, sb01D0
   mov   sw013E, sl0080
   subcall   t005, ub01E0
   mov   sl0080, sl008E
   mov   sw014C, sl0080
   set   sl0080, 0x46
   mov   sl0032, sl0080
   set   sl0080, 0xC8
   arrbuild   a026F, sb015B
   mov   ub0189, sl0032
   mov   sl008C, sl0080
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   subret   ub01C4
   endt
;-----------------------------------
   thread t007
   set   sl002B, 0x14
   mov   sl0060, sl002B
   set   sl002B, 0xD
   arrbuild   a02A7, sb0150
   mov   ub01BA, sl0060
   mov   sl007B, sl002B
   mov   sb01A9, sb0159
   mov   ub01B2, sb0159
   mov   ub01A8, sb015B
   mov   ub01A6, sb01C3
   mov   ub01B0, sb017B
   mov   ub01B1, sb0151
   subcall   t003, ub0162
   subret   ub01CC
   endt
;-----------------------------------
   thread t008
   set   sl002A, 0x14
   mov   sl005F, sl002A
   mov   sl002A, sb01E9
   arrbuild   a02A7, sb0150
   mov   ub01BA, sl005F
   mov   sl007B, sl002A
   mov   sb01A9, sb0159
   mov   ub01B2, sb0159
   mov   ub01A8, sb015B
   mov   ub01A6, sb01C3
   mov   ub01B0, sb017B
   mov   ub01B1, sb0151
   subcall   t003, ub0162
   subret   ub01CE
   endt
;-----------------------------------
   thread t009
   set   sl0036, 0x14
   mov   sl003E, sl0036
   mov   sl0036, sb0210
   arrbuild   a026F, sb015B
   mov   ub0189, sl003E
   mov   sl008C, sl0036
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   subcall   t007, ub01CC
   set   sl0036, 0x14
   mov   sl003E, sl0036
   set   sl0036, 0x28
   arrbuild   a026F, sb015B
   mov   ub0189, sl003E
   mov   sl008C, sl0036
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   subcall   t008, ub01CE
   set   sl0036, 0x14
   mov   sl003E, sl0036
   mov   sl0036, sb0210
   arrbuild   a026F, sb015B
   mov   ub0189, sl003E
   mov   sl008C, sl0036
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   set   sl0036, 0xBB8
   mov   uw013D, sl0036
   subcall   t010, ub0209
   subret   ub0200
   endt
;-----------------------------------
   thread t010
   gettick   ul004E
   add   ul0051, ul004E, uw013D
lbl04B2:   gettick   ul004E
   brcmp   LT, lbl04B2, ul004E, ul0051
   subret   ub0209
   endt
;-----------------------------------
   thread t011
   set   sl0078, 0x0
   mov   ub01E6, sl0078
   mov   c0212.a0214, a026B
   mov   c0212.uw0216, sb01E5
   flatten   a0293, sb0159
   strtoarr   c0212.a0217, a0293
   syscall   IOMapWrite, c0212
   subcall   t009, ub0200
   set   sl0078, 0x64
   mov   sl001D, sl0078
   set   sl0078, 0x1450
   arrbuild   a024D, sb0159
   mov   ub019C, sl001D
   mov   sl0086, sl0078
   mov   sb01A1, sb0159
   mov   ub0196, sb0159
   mov   ub0198, sb015B
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
   setin   sb0177, sb015B, Type
   setin   sw0143, sb015B, InputMode
   mov   ub0163, sb015B
   subcall   t004, ub0160
   subcall   t006, ub01C4
   set   sl0078, 0x1E
   mov   sl001D, sl0078
   mov   sl0078, sw0142
   mov   sl001C, sl0078
   set   sl0078, 0x0
   mov   sl001B, sl0078
   set   sl0078, 0x0
   mov   sl0016, sl0078
   set   sl0078, 0x0
   arrbuild   a024D, sb0159
   mov   ub019C, sl001D
   mov   sl0086, sl001C
   mov   sb01A1, sl001B
   mov   ub0196, sl0016
   mov   ub0198, sl0078
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
lbl0532:   set   sl0078, 0x1E
   mov   sl001D, sl0078
   mov   sl0078, sb01D6
   mov   sl001C, sl0078
   set   sl0078, 0x0
   mov   sl001B, sl0078
   set   sl0078, 0x0
   mov   sl0016, sl0078
   set   sl0078, 0x0
   arrbuild   a024D, sb0159
   mov   ub019C, sl001D
   mov   sl0086, sl001C
   mov   sb01A1, sl001B
   mov   ub0196, sl0016
   mov   ub0198, sl0078
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
   getin   sl0078, sb015B, ScaledValue
   mov   ub01E4, sl0078
   mov   sl0078, ub01E4
   mov   sl001D, sl0078
   mov   sl0078, ub01E6
   cmp   GT, ub016D, sl001D, sl0078
   mov   sl0078, ub016D
   brtst   EQ, lbl0583, ub016D
   mov   sl0078, ub01E4
   mov   ub01E6, sl0078
lbl0583:   mov   sl0078, ub01E4
   mov   sl001D, sl0078
   mov   sl0078, ub01E6
   mov   sl001C, sl0078
   set   sl0078, 0x5
   sub   sl0078, sl001C, sl0078
   cmp   GT, ub016D, sl001D, sl0078
   mov   sl0078, ub016D
   brtst   EQ, lbl05A0, ub016D
   jmp   lbl0532
lbl05A0:   setout   sb0159, Power, sb0159, OutputMode, sb0154, RegMode, sb0159, RunState, sb015A, UpdateFlags, sb01C5
   set   sl0078, 0x3E8
   mov   uw0138, sl0078
   subcall   t012, ub01DB
   setout   sb0159, UpdateFlags, sb0183
   set   sl0078, 0x3E8
   mov   uw0138, sl0078
   subcall   t012, ub01DB
   subret   ub01E7
   endt
;-----------------------------------
   thread t012
   gettick   ul0050
   add   ul004F, ul0050, uw0138
lbl05CC:   gettick   ul0050
   brcmp   LT, lbl05CC, ul0050, ul004F
   subret   ub01DB
   endt
;-----------------------------------
   thread t013
   mov   sl001F, sw013C
   mov   sl0071, sl001F
   set   sl001F, 0x32
   sub   sl001F, sl0071, sl001F
   mov   sw014A, sl001F
   mov   sl001F, sw0137
   mov   sl0071, sl001F
   set   sl001F, 0x9
   mod   sl001F, sl0071, sl001F
   mov   sw0149, sl001F
   set   sl001F, 0x8
   mov   sl0071, sl001F
   mov   sl001F, sw0137
   mov   sl0074, sl001F
   set   sl001F, 0x9
   div   sl001F, sl0074, sl001F
   sub   sl001F, sl0071, sl001F
   mov   sw0148, sl001F
   set   sl001F, 0x12
   mov   sl0071, sl001F
   mov   sl001F, sw0149
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mul   sl001F, sl0074, sl001F
   add   sl001F, sl0071, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw0148
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mul   sl001F, sl0074, sl001F
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mov   sl0077, sl001F
   set   sl001F, 0x7
   mov   c021F.c0221.sw0222, sl0071
   mov   c021F.c0221.sw0223, sl0074
   mov   c021F.c0224.sw0225, sl0077
   mov   c021F.c0224.sw0226, sl001F
   set   c021F.ul0227, 0x0
   syscall   DrawRect, c021F
   mov   sl001F, c021F.sb0220
   mov   sl001F, sw014A
   mov   sl0071, sl001F
   set   sl001F, 0x0
   cmp   LT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl0664, ub020F
   set   sl001F, 0x0
   mov   sw014A, sl001F
lbl0664:   mov   sl001F, sw014A
   mov   sl0071, sl001F
   set   sl001F, 0x64
   add   sl001F, sl0071, sl001F
   mov   sw00C7, sl001F
   mov   sl001F, sw00C7
   mov   sl0071, sl001F
   set   sl001F, 0x514
   cmp   GT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl069A, ub020F
   set   sl001F, 0x514
   mov   sw00C7, sl001F
   mov   sl001F, sw00C7
   mov   sl0071, sl001F
   set   sl001F, 0x64
   sub   sl001F, sl0071, sl001F
   mov   sw014A, sl001F
lbl069A:   mov   sl001F, sw014A
   index   sl001F, a027B, sl001F
   mov   sw00C8, sl001F
   mov   sl001F, sw00C8
   mov   sw00C6, sl001F
   mov   sl001F, sw014A
   mov   sl0071, sl001F
   set   sl001F, 0x1
   add   sl001F, sl0071, sl001F
   mov   sw00C4, sl001F
lbl06B9:   mov   sl001F, sw00C4
   mov   sl0071, sl001F
   mov   sl001F, sw00C7
   cmp   LT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl073A, ub020F
   jmp   lbl06D3
lbl06CD:   add   sw00C4, sw00C4, sb015B
   jmp   lbl06B9
lbl06D3:   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw00C8
   cmp   GT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl06FB, ub020F
   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sw00C8, sl001F
   mov   sl001F, sw00C8
   mov   sw00C6, sl001F
   jmp   lbl071B
lbl06FB:   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw00C6
   cmp   LT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl071B, ub020F
   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sw00C6, sl001F
lbl071B:   mov   sl001F, sw00C8
   mov   sl0071, sl001F
   mov   sl001F, sw00C6
   sub   sl001F, sl0071, sl001F
   mov   sl0071, sl001F
   set   sl001F, 0x3
   cmp   GTEQ, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl0738, ub020F
   jmp   lbl073A
lbl0738:   jmp   lbl06CD
lbl073A:   mov   sl001F, sw00C6
   mov   sw00C8, sl001F
lbl0740:   mov   sl001F, sw00C4
   mov   sl0071, sl001F
   mov   sl001F, sw00C7
   cmp   LT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl0864, ub020F
   jmp   lbl075A
lbl0754:   add   sw00C4, sw00C4, sb015B
   jmp   lbl0740
lbl075A:   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw00C6
   cmp   LT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl0782, ub020F
   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sw00C6, sl001F
   mov   sl001F, sw00C6
   mov   sw00C8, sl001F
   jmp   lbl07A2
lbl0782:   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw00C8
   cmp   GT, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl07A2, ub020F
   mov   sl001F, sw00C4
   index   sl001F, a027B, sl001F
   mov   sw00C8, sl001F
lbl07A2:   mov   sl001F, sw00C8
   mov   sl0071, sl001F
   mov   sl001F, sw00C6
   sub   sl001F, sl0071, sl001F
   mov   sl0071, sl001F
   set   sl001F, 0x3
   cmp   GTEQ, ub020F, sl0071, sl001F
   mov   sl001F, ub020F
   brtst   EQ, lbl0862, ub020F
   mov   sl001F, sw0137
   mov   sl0071, sl001F
   set   sl001F, 0x1
   replace   a02AF, a02AF, sl0071, sl001F
   set   sl001F, 0x14
   mov   sl0071, sl001F
   mov   sl001F, sw0149
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mul   sl001F, sl0074, sl001F
   add   sl001F, sl0071, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw0148
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mul   sl001F, sl0074, sl001F
   mov   sl0074, sl001F
   set   sl001F, 0x2
   add   sl001F, sl0074, sl001F
   mov   sl0074, sl001F
   set   sl001F, 0x3
   mov   sl0077, sl001F
   set   sl001F, 0x3
   mov   c021F.c0221.sw0222, sl0071
   mov   c021F.c0221.sw0223, sl0074
   mov   c021F.c0224.sw0225, sl0077
   mov   c021F.c0224.sw0226, sl001F
   set   c021F.ul0227, 0x0
   syscall   DrawRect, c021F
   mov   sl001F, c021F.sb0220
   set   sl001F, 0x15
   mov   sl0071, sl001F
   mov   sl001F, sw0149
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mul   sl001F, sl0074, sl001F
   add   sl001F, sl0071, sl001F
   mov   sl0071, sl001F
   mov   sl001F, sw0148
   mov   sl0074, sl001F
   set   sl001F, 0x7
   mul   sl001F, sl0074, sl001F
   mov   sl0074, sl001F
   set   sl001F, 0x3
   add   sl001F, sl0074, sl001F
   mov   sl0074, sl001F
   set   sl001F, 0x1
   mov   sl0077, sl001F
   set   sl001F, 0x1
   mov   c021F.c0221.sw0222, sl0071
   mov   c021F.c0221.sw0223, sl0074
   mov   c021F.c0224.sw0225, sl0077
   mov   c021F.c0224.sw0226, sl001F
   set   c021F.ul0227, 0x0
   syscall   DrawRect, c021F
   mov   sl001F, c021F.sb0220
   subret   ub0211
lbl0862:   jmp   lbl0754
lbl0864:   mov   sl001F, sw0137
   mov   sl0071, sl001F
   set   sl001F, 0x0
   replace   a02AF, a02AF, sl0071, sl001F
   subret   ub0211
   endt
;-----------------------------------
   thread t014
   arrbuild   a0249, sb0159, sb01FF, sb0205, sb0204, sb01CF, sb01CB, sb017D
   arrbuild   a024F, sb01D3, sb01D4
   arrbuild   a025B, sb0159, sb0150, sb0154, sb0153, sb0177, sb0176, sb017D
   arrbuild   a025D, sb017C, sb015B
   set   sl008F, 0x46
   mov   sl0001, sl008F
   mov   sl008F, sw00C5
   arrbuild   a026F, sb015B
   mov   ub0189, sl0001
   mov   sl008C, sl008F
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   mov   sl008F, sb01DC
   mov   sl0001, sl008F
   set   sl008F, 0x50
   arrbuild   a024D, sb0159
   mov   ub019C, sl0001
   mov   sl0086, sl008F
   mov   sb01A1, sb0159
   mov   ub0196, sb0159
   mov   ub0198, sb015B
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
   set   sl008F, 0x9
   mov   sw00CC, sl008F
lbl08D7:   mov   sl008F, sw00CC
   mov   sl0001, sl008F
   set   sl008F, 0x0
   cmp   GTEQ, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0B4D, ub0172
   jmp   lbl08F1
lbl08EB:   sub   sw00CC, sw00CC, sb015B
   jmp   lbl08D7
lbl08F1:   mov   sl008F, sb01DC
   mov   sl0001, sl008F
   set   sl008F, 0xF0
   arrbuild   a024D, sb0159
   mov   ub019C, sl0001
   mov   sl0086, sl008F
   mov   sb01A1, sb0159
   mov   ub0196, sb0159
   mov   ub0198, sb015B
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
   set   sl008F, 0x0
   mov   sw00C9, sl008F
lbl0917:   mov   sl008F, sw00C9
   mov   sl0001, sl008F
   set   sl008F, 0x514
   cmp   LT, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl097E, ub0172
   jmp   lbl0931
lbl092B:   add   sw00C9, sw00C9, sb015B
   jmp   lbl0917
lbl0931:   set   sl008F, 0x46
   mov   sl0001, sl008F
   set   sl008F, 0x1
   mov   sl0000, sl008F
   set   sl008F, 0x0
   mov   sl0003, sl008F
   set   sl008F, 0x0
   mov   sl0006, sl008F
   set   sl008F, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl0001
   mov   sl008C, sl0000
   mov   sb018E, sl0003
   mov   ub0193, sl0006
   mov   ub0191, sl008F
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   getin   sl008F, sb015B, ScaledValue
   mov   ub01DA, sl008F
   mov   sl008F, sw00C9
   mov   sl0001, sl008F
   mov   sl008F, ub01DA
   replace   a027B, a027B, sl0001, sl008F
   jmp   lbl092B
lbl097E:   setout   sb015B, Power, sb0159, OutputMode, sb0154, RegMode, sb0159, RunState, sb015A, UpdateFlags, sb01C5
   set   sl008F, 0x0
   mov   sw00CA, sl008F
lbl0990:   mov   sl008F, sw00CA
   mov   sl0001, sl008F
   set   sl008F, 0x7
   cmp   LT, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0A2C, ub0172
   jmp   lbl09AA
lbl09A4:   add   sw00CA, sw00CA, sb015B
   jmp   lbl0990
lbl09AA:   mov   sl008F, sw00CC
   mov   sl0001, sl008F
   set   sl008F, 0x9
   mul   sl008F, sl0001, sl008F
   mov   sl0001, sl008F
   mov   sl008F, sw00CA
   index   sl008F, a0249, sl008F
   add   sl008F, sl0001, sl008F
   mov   sw00C3, sl008F
   mov   sl008F, sw00C3
   mov   sl0001, sl008F
   set   sl008F, 0x51
   cmp   LT, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl09ED, ub0172
   mov   sl0001, sl008F
   mov   sl008F, sw00C3
   mov   sl0000, sl008F
   set   sl008F, 0x0
   cmp   GTEQ, ub0172, sl0000, sl008F
   mov   sl008F, ub0172
   and   sl008F, sl0001, sl008F
lbl09ED:   tst   NEQ, ub0172, sl008F
   brtst   EQ, lbl0A2A, ub0172
   set   sl008F, 0x514
   mov   sl0001, sl008F
   set   sl008F, 0x2
   div   sl008F, sl0001, sl008F
   mov   sl0001, sl008F
   mov   sl008F, sw00CA
   index   sl008F, a025B, sl008F
   index   sl008F, a027D, sl008F
   add   sl008F, sl0001, sl008F
   mov   sl0001, sl008F
   mov   sl008F, sw014D
   add   sl008F, sl0001, sl008F
   mov   sw00BC, sl008F
   mov   sl008F, sw00C3
   mov   sw0137, sl008F
   mov   sl008F, sw00BC
   mov   sw013C, sl008F
   subcall   t013, ub0211
lbl0A2A:   jmp   lbl09A4
lbl0A2C:   mov   sl008F, sb01DC
   mov   sl0001, sl008F
   set   sl008F, 0x140
   arrbuild   a024D, sb0159
   mov   ub019C, sl0001
   mov   sl0086, sl008F
   mov   sb01A1, sb0159
   mov   ub0196, sb0159
   mov   ub0198, sb015B
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
   set   sl008F, 0x513
   mov   sw00C9, sl008F
lbl0A52:   mov   sl008F, sw00C9
   mov   sl0001, sl008F
   set   sl008F, 0x0
   cmp   GTEQ, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0AB9, ub0172
   jmp   lbl0A6C
lbl0A66:   sub   sw00C9, sw00C9, sb015B
   jmp   lbl0A52
lbl0A6C:   set   sl008F, 0x46
   mov   sl0001, sl008F
   mov   sl008F, sb01D0
   mov   sl0000, sl008F
   set   sl008F, 0x0
   mov   sl0003, sl008F
   set   sl008F, 0x0
   mov   sl0006, sl008F
   set   sl008F, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl0001
   mov   sl008C, sl0000
   mov   sb018E, sl0003
   mov   ub0193, sl0006
   mov   ub0191, sl008F
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   getin   sl008F, sb015B, ScaledValue
   mov   ub01DA, sl008F
   mov   sl008F, sw00C9
   mov   sl0001, sl008F
   mov   sl008F, ub01DA
   replace   a027B, a027B, sl0001, sl008F
   jmp   lbl0A66
lbl0AB9:   setout   sb015B, Power, sb0159, OutputMode, sb0154, RegMode, sb0159, RunState, sb015A, UpdateFlags, sb01C5
   set   sl008F, 0x0
   mov   sw00CA, sl008F
lbl0ACB:   mov   sl008F, sw00CA
   mov   sl0001, sl008F
   set   sl008F, 0x2
   cmp   LT, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0B4B, ub0172
   jmp   lbl0AE5
lbl0ADF:   add   sw00CA, sw00CA, sb015B
   jmp   lbl0ACB
lbl0AE5:   mov   sl008F, sw00CC
   mov   sl0001, sl008F
   set   sl008F, 0x9
   mul   sl008F, sl0001, sl008F
   mov   sl0001, sl008F
   mov   sl008F, sw00CA
   index   sl008F, a024F, sl008F
   add   sl008F, sl0001, sl008F
   mov   sw00C3, sl008F
   mov   sl008F, sw00C3
   mov   sl0001, sl008F
   set   sl008F, 0x0
   cmp   GTEQ, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0B49, ub0172
   set   sl008F, 0x514
   mov   sl0001, sl008F
   set   sl008F, 0x2
   div   sl008F, sl0001, sl008F
   mov   sl0001, sl008F
   mov   sl008F, sw00CA
   index   sl008F, a025D, sl008F
   index   sl008F, a027D, sl008F
   add   sl008F, sl0001, sl008F
   mov   sl0001, sl008F
   mov   sl008F, sw014C
   sub   sl008F, sl0001, sl008F
   mov   sw00BC, sl008F
   mov   sl008F, sw00C3
   mov   sw0137, sl008F
   mov   sl008F, sw00BC
   mov   sw013C, sl008F
   subcall   t013, ub0211
lbl0B49:   jmp   lbl0ADF
lbl0B4B:   jmp   lbl08EB
lbl0B4D:   set   sl008F, 0x0
   mov   sw00BD, sl008F
   set   sl008F, 0x0
   mov   sw00CC, sl008F
lbl0B57:   mov   sl008F, sw00CC
   mov   sl0001, sl008F
   set   sl008F, 0x51
   cmp   LT, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0B83, ub0172
   jmp   lbl0B71
lbl0B6B:   add   sw00CC, sw00CC, sb015B
   jmp   lbl0B57
lbl0B71:   mov   sl008F, sw00CC
   index   sl008F, a02AF, sl008F
   tst   NEQ, ub0172, sl008F
   brtst   EQ, lbl0B81, ub0172
   add   sw00BD, sw00BD, sb015B
lbl0B81:   jmp   lbl0B6B
lbl0B83:   mov   sl008F, sw00BD
   mov   sl0001, sl008F
   set   sl008F, 0x11
   cmp   LT, ub0172, sl0001, sl008F
   mov   sl008F, ub0172
   brtst   EQ, lbl0C6C, ub0172
   set   sl008F, 0x190
   mov   sl0001, sl008F
   set   sl008F, 0xBB8
   mov   sl0000, sl008F
   set   sl008F, 0x4
   mov   sl0003, sl008F
   set   sl008F, 0x0
   mov   c0237.uw0239, sl0001
   mov   c0237.uw023A, sl0000
   mov   c0237.ub023C, sl0003
   mov   c0237.ub023B, sl008F
   syscall   SoundPlayTone, c0237
   mov   sl008F, c0237.sb0238
   set   sl008F, 0x5A
   mov   sl0001, sl008F
   set   sl008F, 0x30
   mov   sl0000, sl008F
   strcat   a028B, a025F
   mov   c023D.c023F.sw0240, sl0001
   mov   c023D.c023F.sw0241, sl0000
   set   c023D.ul0244, 0x0
   mov   c023D.a0242, a028B
   syscall   DrawText, c023D
   mov   sl008F, c023D.sb023E
   set   sl008F, 0x5A
   mov   sl0001, sl008F
   set   sl008F, 0x28
   mov   sl0000, sl008F
   strcat   a028B, a0261
   mov   c023D.c023F.sw0240, sl0001
   mov   c023D.c023F.sw0241, sl0000
   set   c023D.ul0244, 0x0
   mov   c023D.a0242, a028B
   syscall   DrawText, c023D
   mov   sl008F, c023D.sb023E
   set   sl008F, 0x5A
   mov   sl0001, sl008F
   set   sl008F, 0x20
   mov   sl0000, sl008F
   strcat   a028B, a0261
   mov   c023D.c023F.sw0240, sl0001
   mov   c023D.c023F.sw0241, sl0000
   set   c023D.ul0244, 0x0
   mov   c023D.a0242, a028B
   syscall   DrawText, c023D
   mov   sl008F, c023D.sb023E
   set   sl008F, 0x5A
   mov   sl0001, sl008F
   set   sl008F, 0x18
   mov   sl0000, sl008F
   strcat   a028B, a0255
   mov   c023D.c023F.sw0240, sl0001
   mov   c023D.c023F.sw0241, sl0000
   set   c023D.ul0244, 0x0
   mov   c023D.a0242, a028B
   syscall   DrawText, c023D
   mov   sl008F, c023D.sb023E
   set   sl008F, 0x5A
   mov   sl0001, sl008F
   set   sl008F, 0x10
   mov   sl0000, sl008F
   strcat   a028B, a0261
   mov   c023D.c023F.sw0240, sl0001
   mov   c023D.c023F.sw0241, sl0000
   set   c023D.ul0244, 0x0
   mov   c023D.a0242, a028B
   syscall   DrawText, c023D
   mov   sl008F, c023D.sb023E
lbl0C61:   set   sl008F, 0x1
   tst   NEQ, ub0172, sl008F
   brtst   EQ, lbl0C6C, ub0172
   jmp   lbl0C61
lbl0C6C:   subret   ub020E
   endt
;-----------------------------------
   thread t015
   mov   c0219.c021B.sw021C, sw00BB
   mov   c0219.c021B.sw021D, sw00BB
   mov   c0219.ul021E, sb015B
   syscall   DrawPoint, c0219
   set   sl007E, 0x0
   mov   sw00B9, sl007E
lbl0C7F:   mov   sl007E, sw00B9
   mov   sl0031, sl007E
   set   sl007E, 0x8
   cmp   LT, ub0185, sl0031, sl007E
   mov   sl007E, ub0185
   brtst   EQ, lbl0D8C, ub0185
   jmp   lbl0C98
lbl0C92:   add   sw00B9, sw00B9, sb015B
   jmp   lbl0C7F
lbl0C98:   set   sl007E, 0x0
   mov   sw00BA, sl007E
lbl0C9D:   mov   sl007E, sw00BA
   mov   sl0031, sl007E
   set   sl007E, 0x9
   cmp   LT, ub0185, sl0031, sl007E
   mov   sl007E, ub0185
   brtst   EQ, lbl0D8A, ub0185
   jmp   lbl0CB6
lbl0CB0:   add   sw00BA, sw00BA, sb015B
   jmp   lbl0C9D
lbl0CB6:   set   sl007E, 0x0
   mov   sw00C1, sl007E
   mov   sl007E, sw00B9
   mov   sl0031, sl007E
   set   sl007E, 0x9
   mul   sl007E, sl0031, sl007E
   mov   sl0031, sl007E
   mov   sl007E, sw00BA
   add   sl007E, sl0031, sl007E
   index   sl007E, a02B7, sl007E
   brcmp   EQ, lbl0CF8, sb015B, sl007E
   brcmp   EQ, lbl0CFF, sb0150, sl007E
   brcmp   EQ, lbl0D06, sb0153, sl007E
   brcmp   EQ, lbl0D0D, sb017D, sl007E
   brcmp   EQ, lbl0D14, sb0178, sl007E
   brcmp   EQ, lbl0D1B, sb015A, sl007E
   brcmp   EQ, lbl0D22, sb0183, sl007E
   brcmp   EQ, lbl0D29, sw0143, sl007E
   brcmp   EQ, lbl0D30, sw013B, sl007E
   jmp   lbl0D37
lbl0CF8:   set   sl007E, 0x1
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0CFF:   set   sl007E, 0x2
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D06:   set   sl007E, 0x3
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D0D:   set   sl007E, 0x4
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D14:   set   sl007E, 0x5
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D1B:   set   sl007E, 0x6
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D22:   set   sl007E, 0x7
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D29:   set   sl007E, 0x8
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D30:   set   sl007E, 0x9
   mov   sw00C1, sl007E
   jmp   lbl0D37
lbl0D37:   mov   sl007E, sw00C1
   mov   sl0031, sl007E
   set   sl007E, 0x0
   cmp   GT, ub0185, sl0031, sl007E
   mov   sl007E, ub0185
   brtst   EQ, lbl0D88, ub0185
   mov   sl007E, sw00BA
   mov   sl0031, sl007E
   set   sl007E, 0x7
   mul   sl007E, sl0031, sl007E
   mov   sl0031, sl007E
   set   sl007E, 0x12
   add   sl007E, sl0031, sl007E
   mov   sl0031, sl007E
   set   sl007E, 0x38
   mov   sl000A, sl007E
   mov   sl007E, sw00B9
   mov   sl0009, sl007E
   set   sl007E, 0x7
   mul   sl007E, sl0009, sl007E
   sub   sl007E, sl000A, sl007E
   mov   sl000A, sl007E
   mov   sl007E, sw00C1
   mov   c023D.c023F.sw0240, sl0031
   mov   c023D.c023F.sw0241, sl000A
   set   c023D.ul0244, 0x0
   numtostr   c023D.a0242, sl007E
   syscall   DrawText, c023D
   mov   sl007E, c023D.sb023E
lbl0D88:   jmp   lbl0CB0
lbl0D8A:   jmp   lbl0C92
lbl0D8C:   set   sl007E, 0x11
   mov   sl0031, sl007E
   set   sl007E, 0x10
   mov   sl000A, sl007E
   set   sl007E, 0x4F
   mov   sl0009, sl007E
   set   sl007E, 0x10
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   set   sl007E, 0x11
   mov   sl0031, sl007E
   set   sl007E, 0x28
   mov   sl000A, sl007E
   set   sl007E, 0x4F
   mov   sl0009, sl007E
   set   sl007E, 0x28
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   set   sl007E, 0x11
   mov   sl0031, sl007E
   set   sl007E, 0x3F
   mov   sl000A, sl007E
   set   sl007E, 0x4F
   mov   sl0009, sl007E
   set   sl007E, 0x3F
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   set   sl007E, 0x10
   mov   sl0031, sl007E
   set   sl007E, 0x0
   mov   sl000A, sl007E
   set   sl007E, 0x10
   mov   sl0009, sl007E
   set   sl007E, 0x3F
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   set   sl007E, 0x25
   mov   sl0031, sl007E
   set   sl007E, 0x0
   mov   sl000A, sl007E
   set   sl007E, 0x25
   mov   sl0009, sl007E
   set   sl007E, 0x3F
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   set   sl007E, 0x3B
   mov   sl0031, sl007E
   set   sl007E, 0x0
   mov   sl000A, sl007E
   set   sl007E, 0x3B
   mov   sl0009, sl007E
   set   sl007E, 0x3F
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   set   sl007E, 0x50
   mov   sl0031, sl007E
   set   sl007E, 0x0
   mov   sl000A, sl007E
   set   sl007E, 0x50
   mov   sl0009, sl007E
   set   sl007E, 0x3F
   mov   c0228.c022A.sw022B, sl0031
   mov   c0228.c022A.sw022C, sl000A
   mov   c0228.c022D.sw022E, sl0009
   mov   c0228.c022D.sw022F, sl007E
   set   c0228.ul0230, 0x0
   syscall   DrawLine, c0228
   mov   sl007E, c0228.sb0229
   subret   ub01D9
   endt
;-----------------------------------
   thread t016
   mov   sl0024, sw00C2
   mov   sl006E, sl0024
   set   sl0024, 0x20
   mul   sl0024, sl006E, sl0024
   mov   sw00DC, sl0024
   mov   sl0024, sw00BF
   mov   sl006E, sl0024
   set   sl0024, 0x1
   cmp   EQ, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl0F81, ub0206
   set   sl0024, 0x0
   mov   sw00DD, sl0024
lbl0EC6:   mov   sl0024, sw00DD
   mov   sl006E, sl0024
   set   sl0024, 0x14
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl0F17, ub0206
   jmp   lbl0EE3
lbl0EDA:   set   sl0024, 0x1
   add   sw00DD, sw00DD, sl0024
   jmp   lbl0EC6
lbl0EE3:   set   sl0024, 0x46
   mov   sl006E, sl0024
   set   sl0024, 0x1
   mov   sl006D, sl0024
   set   sl0024, 0x0
   mov   sl0046, sl0024
   set   sl0024, 0x0
   mov   sl0045, sl0024
   set   sl0024, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl006E
   mov   sl008C, sl006D
   mov   sb018E, sl0046
   mov   ub0193, sl0045
   mov   ub0191, sl0024
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   jmp   lbl0EDA
lbl0F17:   set   sl0024, 0x0
   mov   sw00DD, sl0024
lbl0F1D:   mov   sl0024, sw00DD
   mov   sl006E, sl0024
   set   sl0024, 0x60
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl0F7F, ub0206
   jmp   lbl0F37
lbl0F31:   add   sw00DD, sw00DD, sb015B
   jmp   lbl0F1D
lbl0F37:   set   sl0024, 0x46
   mov   sl006E, sl0024
   set   sl0024, 0x1
   mov   sl006D, sl0024
   set   sl0024, 0x0
   mov   sl0046, sl0024
   set   sl0024, 0x0
   mov   sl0045, sl0024
   set   sl0024, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl006E
   mov   sl008C, sl006D
   mov   sb018E, sl0046
   mov   ub0193, sl0045
   mov   ub0191, sl0024
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   getin   sl0024, sb015B, ScaledValue
   mov   ub0202, sl0024
   mov   sl0024, sw00DD
   mov   sl006E, sl0024
   mov   sl0024, ub0202
   replace   a027B, a027B, sl006E, sl0024
   jmp   lbl0F31
lbl0F7F:   jmp   lbl1040
lbl0F81:   set   sl0024, 0x0
   mov   sw00DD, sl0024
lbl0F87:   mov   sl0024, sw00DD
   mov   sl006E, sl0024
   set   sl0024, 0x14
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl0FD8, ub0206
   jmp   lbl0FA4
lbl0F9B:   set   sl0024, 0x1
   add   sw00DD, sw00DD, sl0024
   jmp   lbl0F87
lbl0FA4:   set   sl0024, 0x46
   mov   sl006E, sl0024
   mov   sl0024, sb01D0
   mov   sl006D, sl0024
   set   sl0024, 0x0
   mov   sl0046, sl0024
   set   sl0024, 0x0
   mov   sl0045, sl0024
   set   sl0024, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl006E
   mov   sl008C, sl006D
   mov   sb018E, sl0046
   mov   ub0193, sl0045
   mov   ub0191, sl0024
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   jmp   lbl0F9B
lbl0FD8:   set   sl0024, 0x5F
   mov   sw00DD, sl0024
lbl0FDE:   mov   sl0024, sw00DD
   mov   sl006E, sl0024
   set   sl0024, 0x0
   cmp   GTEQ, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl1040, ub0206
   jmp   lbl0FF8
lbl0FF2:   sub   sw00DD, sw00DD, sb015B
   jmp   lbl0FDE
lbl0FF8:   set   sl0024, 0x46
   mov   sl006E, sl0024
   mov   sl0024, sb01D0
   mov   sl006D, sl0024
   set   sl0024, 0x0
   mov   sl0046, sl0024
   set   sl0024, 0x0
   mov   sl0045, sl0024
   set   sl0024, 0x0
   arrbuild   a026F, sb015B
   mov   ub0189, sl006E
   mov   sl008C, sl006D
   mov   sb018E, sl0046
   mov   ub0193, sl0045
   mov   ub0191, sl0024
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   getin   sl0024, sb015B, ScaledValue
   mov   ub0202, sl0024
   mov   sl0024, sw00DD
   mov   sl006E, sl0024
   mov   sl0024, ub0202
   replace   a027B, a027B, sl006E, sl0024
   jmp   lbl0FF2
lbl1040:   set   sl0024, 0x0
   mov   sw00DB, sl0024
   set   sl0024, 0xFF
   mov   sw00D9, sl0024
   set   sl0024, 0x0
   mov   sw00DA, sl0024
lbl1052:   mov   sl0024, sw00DA
   mov   sl006E, sl0024
   set   sl0024, 0x20
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl1100, ub0206
   jmp   lbl106C
lbl1066:   add   sw00DA, sw00DA, sb015B
   jmp   lbl1052
lbl106C:   set   sl0024, 0x0
   mov   sw00E1, sl0024
   set   sl0024, 0x0
   mov   sw00E2, sl0024
lbl1078:   mov   sl0024, sw00E2
   mov   sl006E, sl0024
   set   sl0024, 0x3
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl10B1, ub0206
   jmp   lbl1092
lbl108C:   add   sw00E2, sw00E2, sb015B
   jmp   lbl1078
lbl1092:   mov   sl0024, sw00DA
   mov   sl006E, sl0024
   set   sl0024, 0x3
   mul   sl0024, sl006E, sl0024
   mov   sl006E, sl0024
   mov   sl0024, sw00E2
   add   sl0024, sl006E, sl0024
   index   sl0024, a027B, sl0024
   add   sw00E1, sw00E1, sl0024
   jmp   lbl108C
lbl10B1:   set   sl0024, 0x3
   div   sw00E1, sw00E1, sl0024
   mov   sl0024, sw00DC
   mov   sl006E, sl0024
   mov   sl0024, sw00DA
   add   sl0024, sl006E, sl0024
   mov   sl006E, sl0024
   mov   sl0024, sw00E1
   replace   a02BD, a02BD, sl006E, sl0024
   mov   sl0024, sw00E1
   mov   sl006E, sl0024
   mov   sl0024, sw00DB
   cmp   GT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl10E6, ub0206
   mov   sl0024, sw00E1
   mov   sw00DB, sl0024
lbl10E6:   mov   sl0024, sw00E1
   mov   sl006E, sl0024
   mov   sl0024, sw00D9
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl10FE, ub0206
   mov   sl0024, sw00E1
   mov   sw00D9, sl0024
lbl10FE:   jmp   lbl1066
lbl1100:   mov   sl0024, sw00DB
   mov   sl006E, sl0024
   mov   sl0024, sw00D9
   add   sl0024, sl006E, sl0024
   mov   sl006E, sl0024
   set   sl0024, 0x2
   div   sl0024, sl006E, sl0024
   mov   sw00E0, sl0024
   set   sl0024, 0x0
   mov   sw00DA, sl0024
lbl111E:   mov   sl0024, sw00DA
   mov   sl006E, sl0024
   set   sl0024, 0x20
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl119B, ub0206
   jmp   lbl1138
lbl1132:   add   sw00DA, sw00DA, sb015B
   jmp   lbl111E
lbl1138:   mov   sl0024, sw00DC
   mov   sl006E, sl0024
   mov   sl0024, sw00DA
   add   sl0024, sl006E, sl0024
   index   sl0024, a02BD, sl0024
   mov   sl006E, sl0024
   mov   sl0024, sw00E0
   cmp   LT, ub0206, sl006E, sl0024
   mov   sl0024, ub0206
   brtst   EQ, lbl1199, ub0206
   set   sl0024, 0x12
   mov   sl006E, sl0024
   mov   sl0024, sw00DA
   mov   sl006D, sl0024
   set   sl0024, 0x2
   mul   sl0024, sl006D, sl0024
   add   sl0024, sl006E, sl0024
   mov   sl006E, sl0024
   mov   sl0024, sw00C2
   mov   sl006D, sl0024
   set   sl0024, 0x2
   mul   sl0024, sl006D, sl0024
   mov   sl006D, sl0024
   set   sl0024, 0x1
   mov   sl0046, sl0024
   set   sl0024, 0x1
   mov   c021F.c0221.sw0222, sl006E
   mov   c021F.c0221.sw0223, sl006D
   mov   c021F.c0224.sw0225, sl0046
   mov   c021F.c0224.sw0226, sl0024
   set   c021F.ul0227, 0x0
   syscall   DrawRect, c021F
   mov   sl0024, c021F.sb0220
lbl1199:   jmp   lbl1132
lbl119B:   set   sl0024, 0x0
   mov   sl006E, sl0024
   set   sl0024, 0x1
   mov   sl006D, sl0024
   mov   sl0024, sw00BF
   mul   sl0024, sl006D, sl0024
   mov   sl006D, sl0024
   set   sl0024, 0x46
   mul   sl0024, sl006D, sl0024
   sub   sl0024, sl006E, sl0024
   mov   sl006E, sl0024
   set   sl0024, 0x74
   mov   sl006D, sl0024
   set   sl0024, 0x32
   mov   sl0046, sl0024
   set   sl0024, 0x28
   mov   sl0045, sl0024
   set   sl0024, 0x5A
   arrbuild   a026F, sb015B
   mov   ub0189, sl006E
   mov   sl008C, sl006D
   mov   sb018E, sb0159
   mov   ub0193, sb0159
   mov   ub0191, sb015B
   mov   ub01B6, sl0046
   mov   ub01B3, sl0045
   mov   ub01B4, sl0024
   subcall   t002, ub0155
   subret   ub01FB
   endt
;-----------------------------------
   thread t017
   set   sl0026, 0x64
   mov   uw00CE, sl0026
   subcall   t018, ub01E3
   getout   sl0026, sb0159, RotationCount
   mov   sw00D7, sl0026
   getout   sl0026, sb015B, RotationCount
   mov   sw00D5, sl0026
   setout   a024B, UpdateFlags, sb017D
   mov   sl0026, sw00DE
   mov   sl0062, sl0026
   set   sl0026, 0x4
   sub   sl0026, sl0062, sl0026
   mov   sl0062, sl0026
   set   sl0026, 0x230
   mul   sl0026, sl0062, sl0026
   mov   sw00D3, sl0026
   mov   sl0026, sw00DF
   index   sl0026, a027D, sl0026
   mov   sl0062, sl0026
   mov   sl0026, sw00D8
   add   sl0026, sl0062, sl0026
   mov   sw00D0, sl0026
   mov   sl0026, sw00DF
   index   sl0026, a02B3, sl0026
   mov   sl0062, sl0026
   mov   sl0026, sw00D3
   add   sl0026, sl0062, sl0026
   mov   sl0062, sl0026
   mov   sl0026, sw00D1
   sub   sl0026, sl0062, sl0026
   mov   sl0062, sl0026
   set   sl0026, 0x9D8
   sub   sl0026, sl0062, sl0026
   mov   sw00D2, sl0026
   mov   sl0026, sw00D0
   mov   sl0062, sl0026
   mov   sl0026, sw00D5
   sub   sl0026, sl0062, sl0026
   mov   sw00D4, sl0026
   mov   sl0026, sw00D2
   mov   sl0062, sl0026
   mov   sl0026, sw00D7
   sub   sl0026, sl0062, sl0026
   mov   sw00B8, sl0026
   set   sl0026, 0x32
   mov   sl0062, sl0026
   mov   sl0026, sw00D4
   mov   sl0065, sl0026
   set   sl0026, 0x0
   mov   sl0068, sl0026
   set   sl0026, 0x0
   mov   sl0067, sl0026
   set   sl0026, 0x1
   arrbuild   a026F, sb015B
   mov   ub0189, sl0062
   mov   sl008C, sl0065
   mov   sb018E, sl0068
   mov   ub0193, sl0067
   mov   ub0191, sl0026
   mov   ub01B6, sb01C3
   mov   ub01B3, sb017B
   mov   ub01B4, sb0151
   subcall   t002, ub0155
   mov   sl0026, ub01C2
   tst   NEQ, ub020C, sl0026
   mov   sl0026, ub020C
   brtst   EQ, lbl12C7, ub020C
   mov   sl0062, sl0026
   mov   sl0026, sw00B8
   mov   sl0065, sl0026
   set   sl0026, 0x0
   cmp   GT, ub020C, sl0065, sl0026
   mov   sl0026, ub020C
   and   sl0026, sl0062, sl0026
lbl12C7:   tst   NEQ, ub020C, sl0026
   brtst   EQ, lbl135F, ub020C
   set   sl0026, 0x32
   mov   sl0062, sl0026
   mov   sl0026, sw00B8
   mov   sl0065, sl0026
   set   sl0026, 0x1F4
   add   sl0026, sl0065, sl0026
   mov   sl0065, sl0026
   set   sl0026, 0x0
   mov   sl0068, sl0026
   set   sl0026, 0x0
   mov   sl0067, sl0026
   set   sl0026, 0x1
   mov   sl0066, sl0026
   set   sl0026, 0x32
   mov   sl0061, sl0026
   set   sl0026, 0x28
   mov   sl005C, sl0026
   set   sl0026, 0x5A
   arrbuild   a024D, sb0159
   mov   ub019C, sl0062
   mov   sl0086, sl0065
   mov   sb01A1, sl0068
   mov   ub0196, sl0067
   mov   ub0198, sl0066
   mov   ub0195, sl0061
   mov   ub018C, sl005C
   mov   ub018D, sl0026
   subcall   t001, ub01AD
   set   sl0026, 0x32
   mov   sl0062, sl0026
   mov   sl0026, sw0095
   mov   sl0065, sl0026
   set   sl0026, 0x0
   mov   sl0068, sl0026
   set   sl0026, 0x0
   mov   sl0067, sl0026
   set   sl0026, 0x1
   mov   sl0066, sl0026
   set   sl0026, 0x32
   mov   sl0061, sl0026
   set   sl0026, 0x28
   mov   sl005C, sl0026
   set   sl0026, 0x5A
   arrbuild   a024D, sb0159
   mov   ub019C, sl0062
   mov   sl0086, sl0065
   mov   sb01A1, sl0068
   mov   ub0196, sl0067
   mov   ub0198, sl0066
   mov   ub0195, sl0061
   mov   ub018C, sl005C
   mov   ub018D, sl0026
   subcall   t001, ub01AD
   jmp   lbl13A3
lbl135F:   set   sl0026, 0x32
   mov   sl0062, sl0026
   mov   sl0026, sw00B8
   mov   sl0065, sl0026
   set   sl0026, 0x0
   mov   sl0068, sl0026
   set   sl0026, 0x0
   mov   sl0067, sl0026
   set   sl0026, 0x1
   mov   sl0066, sl0026
   set   sl0026, 0x32
   mov   sl0061, sl0026
   set   sl0026, 0x28
   mov   sl005C, sl0026
   set   sl0026, 0x5A
   arrbuild   a024D, sb0159
   mov   ub019C, sl0062
   mov   sl0086, sl0065
   mov   sb01A1, sl0068
   mov   ub0196, sl0067
   mov   ub0198, sl0066
   mov   ub0195, sl0061
   mov   ub018C, sl005C
   mov   ub018D, sl0026
   subcall   t001, ub01AD
lbl13A3:   subret   ub01CA
   endt
;-----------------------------------
   thread t018
   gettick   ul004B
   add   ul004C, ul004B, uw00CE
lbl13AB:   gettick   ul004B
   brcmp   LT, lbl13AB, ul004B, ul004C
   subret   ub01E3
   endt
;-----------------------------------
   thread t019
   mov   sl0021, sw00A0
   mov   sl006A, sl0021
   set   sl0021, 0x4
   cmp   LT, ub01FE, sl006A, sl0021
   mov   sl0021, ub01FE
   brtst   EQ, lbl13CC, ub01FE
   mov   sl0021, sb01D0
   mov   sw00A3, sl0021
   jmp   lbl13D2
lbl13CC:   set   sl0021, 0x1
   mov   sw00A3, sl0021
lbl13D2:   set   sl0021, 0x0
   mov   sw009D, sl0021
lbl13D7:   mov   sl0021, sw009D
   mov   sl006A, sl0021
   set   sl0021, 0x320
   cmp   LT, ub01FE, sl006A, sl0021
   mov   sl0021, ub01FE
   brtst   EQ, lbl13FE, ub01FE
   jmp   lbl13F0
lbl13EA:   add   sw009D, sw009D, sb015B
   jmp   lbl13D7
lbl13F0:   mov   sl0021, sw009D
   mov   sl006A, sl0021
   set   sl0021, 0x0
   replace   a02BD, a02BD, sl006A, sl0021
   jmp   lbl13EA
lbl13FE:   mov   sl0021, sw00A3
   mov   sl006A, sl0021
   set   sl0021, 0x1
   cmp   EQ, ub01FE, sl006A, sl0021
   mov   sl0021, ub01FE
   brtst   EQ, lbl1417, ub01FE
   mov   sl0021, sw014D
   mov   sw009E, sl0021
   jmp   lbl141C
lbl1417:   mov   sl0021, sw014C
   mov   sw009E, sl0021
lbl141C:   mov   sl0021, sw0094
   mov   sw00DE, sl0021
   mov   sl0021, sw00A0
   mov   sw00DF, sl0021
   set   sl0021, 0x0
   mov   sl006A, sl0021
   set   sl0021, 0x1
   mov   sl0069, sl0021
   mov   sl0021, sw00A3
   mul   sl0021, sl0069, sl0021
   mov   sl0069, sl0021
   set   sl0021, 0x14
   mov   sl006C, sl0021
   set   sl0021, 0x1
   mul   sl0021, sl006C, sl0021
   mov   sl006C, sl0021
   set   sl0021, 0x60
   mov   sl006F, sl0021
   set   sl0021, 0x2
   div   sl0021, sl006F, sl0021
   add   sl0021, sl006C, sl0021
   mov   sl006C, sl0021
   mov   sl0021, sw009E
   sub   sl0021, sl006C, sl0021
   mul   sl0021, sl0069, sl0021
   sub   sl0021, sl006A, sl0021
   mov   sw00D8, sl0021
   mov   sl0021, sw009B
   mov   sw00D1, sl0021
   set   sl0021, 0x1
   mov   ub01C2, sl0021
   subcall   t017, ub01CA
   set   sl0021, 0x19
   mov   sl006A, sl0021
   set   sl0021, 0x38
   mov   sl0069, sl0021
   strcat   a0295, a02BB
   set   sl0021, 0x1
   mov   c023D.c023F.sw0240, sl006A
   mov   c023D.c023F.sw0241, sl0069
   mov   c023D.ul0244, sl0021
   mov   c023D.a0242, a0295
   syscall   DrawText, c023D
   mov   sl0021, c023D.sb023E
   set   sl0021, 0x0
   mov   sw009C, sl0021
lbl149F:   mov   sl0021, sw009C
   mov   sl006A, sl0021
   set   sl0021, 0x19
   cmp   LT, ub01FE, sl006A, sl0021
   mov   sl0021, ub01FE
   brtst   EQ, lbl14E8, ub01FE
   jmp   lbl14B8
lbl14B2:   add   sw009C, sw009C, sb015B
   jmp   lbl149F
lbl14B8:   mov   sl0021, sb01DE
   mov   sl006A, sl0021
   set   sl0021, 0x14
   arrbuild   a024D, sb0159
   mov   ub019C, sl006A
   mov   sl0086, sl0021
   mov   sb01A1, sb0159
   mov   ub0196, sb0159
   mov   ub0198, sb015B
   mov   ub0195, sb01C3
   mov   ub018C, sb017B
   mov   ub018D, sb0151
   subcall   t001, ub01AD
   mov   sl0021, sw009C
   mov   sw00C2, sl0021
   mov   sl0021, sw00A3
   mov   sw00BF, sl0021
   subcall   t016, ub01FB
   jmp   lbl14B2
lbl14E8:   subret   ub01D5
   endt
;-----------------------------------

 wanwan017
บันทึกการเข้า
*~เก้าคุง~*
สายตรวจเสียวบอร์ด
Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 136
ออฟไลน์ ออฟไลน์

กระทู้: 4,097



ดูรายละเอียด
« ตอบ #10 เมื่อ: 11 กรกฎาคม 2011, 21:52:00 »

เคยแต่ดูวีดีโอที่ใช้มือถือสแกนอ่ะครับ ไม่รู้จะช่วยได้ป่าว
Google Goggles Sudoku Demo
บันทึกการเข้า
jomynn
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 762



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 11 กรกฎาคม 2011, 21:54:30 »

แล้ว MindStorm  ซื้มมาเท่าไหร่ครับ
บันทึกการเข้า

LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #12 เมื่อ: 11 กรกฎาคม 2011, 22:04:49 »

เคยแต่ดูวีดีโอที่ใช้มือถือสแกนอ่ะครับ ไม่รู้จะช่วยได้ป่าว
Google Goggles Sudoku Demo


ขอบคุณครับ แต่หุ่นไม่มีโทรศัพท์นี่สิครับ อิอิ
บันทึกการเข้า
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #13 เมื่อ: 11 กรกฎาคม 2011, 22:05:29 »

แล้ว MindStorm  ซื้มมาเท่าไหร่ครับ

ตอนนี้ซื้อมาตกตัวละ 22000 โดยประมาณครับ
บันทึกการเข้า
medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 398



ดูรายละเอียด
« ตอบ #14 เมื่อ: 11 กรกฎาคม 2011, 22:48:28 »

ขอโทษนะครับพอดีสงสัยนิดหน่อยใช้กระดาน Sudoku ใหญ่ขนาดไหนอ่ะครับ แล้วเป็น 3x3 หรือ 9x9

ถ้าเกิดว่า

ว่าให้หุ่นแยกตัวเลขได้แล้วงั้นก็เหลือแค่ Algorithm ของ Sudoku หรอครับ งั้นก็ไม่น่ามีปัญหาหนิ Huh?
บันทึกการเข้า
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #15 เมื่อ: 12 กรกฎาคม 2011, 00:23:42 »

9x9 ครับเอาใส่ใน A4

Algorithm ของ Sudoku ได้แล้วครับ

เขียนก็คิดว่าจะได้แล้วครับ(ยังไม่เคยลอง)

ที่ทำไม่ได้คือ มันสแกนไม่ถูกครับเพราะว่าอย่างที่บอกอาจจะเกี่ยวกับค่าแสง

มันเป็นค่ามาถูกบ้างผิดบ้าง ตอนนี้ผมเลยจะข้ามขั้นตอนครับ

จะทำให้มันเขียนได้เลย คือจะใส่เลขเข้าไปเลย

แต่ไม่รู้จะใส่ยังไง อิอิ เขียนเอง งง  เอง  Tongue
บันทึกการเข้า
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #16 เมื่อ: 12 กรกฎาคม 2011, 16:34:55 »

มีใครอยากเอาโค้ดไปดูไหมครับ อิอิ
บันทึกการเข้า
LoadRang
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,253



ดูรายละเอียด
« ตอบ #17 เมื่อ: 13 กรกฎาคม 2011, 20:36:36 »

 wanwan016
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์