                         .module demoday.c
--- 0000                   .dbfile demoday.c
                         .area data
 9185                  _pwm_vals::
 9185                    .blkb 2
                         .area idata
--- 0000 0000              .word 0
                         .area data
--- 0002                   .blkb 2
                         .area idata
--- 0002 4268              .word 17000
                         .area data
--- 0004                   .blkb 2
                         .area idata
--- 0004 42CC              .word 17100
                         .area data
--- 0006                   .blkb 2
                         .area idata
--- 0006 4330              .word 17200
                         .area data
--- 0008                   .blkb 2
                         .area idata
--- 0008 4394              .word 17300
                         .area data
--- 000A                   .blkb 2
                         .area idata
--- 000A 43F8              .word 17400
                         .area data
--- 000C                   .blkb 2
                         .area idata
--- 000C 445C              .word 17500
                         .area data
--- 000E                   .blkb 2
                         .area idata
--- 000E 44C0              .word 17600
                         .area data
--- 0010                   .blkb 2
                         .area idata
--- 0010 4524              .word 17700
                         .area data
--- 0012                   .blkb 2
                         .area idata
--- 0012 4588              .word 17800
                         .area data
--- 0014                   .blkb 2
                         .area idata
--- 0014 45EC              .word 17900
                         .area data
--- 0016                   .blkb 2
                         .area idata
--- 0016 4650              .word 18000
                         .area data
--- 0018                   .blkb 2
                         .area idata
--- 0018 46B4              .word 18100
                         .area data
--- 001A                   .blkb 2
                         .area idata
--- 001A 4718              .word 18200
                         .area data
--- 001C                   .blkb 2
                         .area idata
--- 001C 477C              .word 18300
                         .area data
--- 001E                   .blkb 2
                         .area idata
--- 001E 47E0              .word 18400
                         .area data
--- 0020                   .blkb 2
                         .area idata
--- 0020 4844              .word 18500
                         .area data
--- 0022                   .blkb 2
                         .area idata
--- 0022 48A8              .word 18600
                         .area data
--- 0024                   .blkb 2
                         .area idata
--- 0024 490C              .word 18700
                         .area data
--- 0026                   .blkb 2
                         .area idata
--- 0026 4970              .word 18800
                         .area data
--- 0028                   .blkb 2
                         .area idata
--- 0028 49D4              .word 18900
                         .area data
--- 002A                   .blkb 2
                         .area idata
--- 002A 4A38              .word 19000
                         .area data
--- 002C                   .blkb 2
                         .area idata
--- 002C 4A9C              .word 19100
                         .area data
--- 002E                   .blkb 2
                         .area idata
--- 002E 4B00              .word 19200
                         .area data
--- 0030                   .blkb 2
                         .area idata
--- 0030 4B64              .word 19300
                         .area data
--- 0032                   .blkb 2
                         .area idata
--- 0032 4BC8              .word 19400
                         .area data
--- 0034                   .blkb 2
                         .area idata
--- 0034 4C2C              .word 19500
                         .area data
--- 0036                   .blkb 2
                         .area idata
--- 0036 4C90              .word 19600
                         .area data
--- 0038                   .blkb 2
                         .area idata
--- 0038 4CF4              .word 19700
                         .area data
--- 003A                   .blkb 2
                         .area idata
--- 003A 4D58              .word 19800
                         .area data
--- 003C                   .blkb 2
                         .area idata
--- 003C 4DBC              .word 19900
                         .area data
--- 003E                   .blkb 2
                         .area idata
--- 003E 4E20              .word 20000
                         .area data
--- 0040                   .blkb 2
                         .area idata
--- 0040 4E84              .word 20100
                         .area data
--- 0042                   .blkb 2
                         .area idata
--- 0042 4EE8              .word 20200
                         .area data
--- 0044                   .blkb 2
                         .area idata
--- 0044 4F4C              .word 20300
                         .area data
--- 0046                   .blkb 2
                         .area idata
--- 0046 4FB0              .word 20400
                         .area data
--- 0048                   .blkb 2
                         .area idata
--- 0048 5014              .word 20500
                         .area data
--- 004A                   .blkb 2
                         .area idata
--- 004A 5078              .word 20600
                         .area data
--- 004C                   .blkb 2
                         .area idata
--- 004C 50DC              .word 20700
                         .area data
--- 004E                   .blkb 2
                         .area idata
--- 004E 5140              .word 20800
                         .area data
--- 0050                   .blkb 2
                         .area idata
--- 0050 51A4              .word 20900
                         .area data
--- 0052                   .blkb 2
                         .area idata
--- 0052 5208              .word 21000
                         .area data
--- 0054                   .blkb 2
                         .area idata
--- 0054 526C              .word 21100
                         .area data
--- 0056                   .blkb 2
                         .area idata
--- 0056 52D0              .word 21200
                         .area data
--- 0058                   .blkb 2
                         .area idata
--- 0058 5334              .word 21300
                         .area data
--- 005A                   .blkb 2
                         .area idata
--- 005A 5398              .word 21400
                         .area data
--- 005C                   .blkb 2
                         .area idata
--- 005C 53FC              .word 21500
                         .area data
--- 005E                   .blkb 2
                         .area idata
--- 005E 5460              .word 21600
                         .area data
--- 0060                   .blkb 2
                         .area idata
--- 0060 54C4              .word 21700
                         .area data
--- 0062                   .blkb 2
                         .area idata
--- 0062 5528              .word 21800
                         .area data
--- 0064                   .blkb 2
                         .area idata
--- 0064 558C              .word 21900
                         .area data
--- 0066                   .blkb 2
                         .area idata
--- 0066 55F0              .word 22000
                         .area data
--- 0068                   .blkb 2
                         .area idata
--- 0068 5654              .word 22100
                         .area data
--- 006A                   .blkb 2
                         .area idata
--- 006A 56B8              .word 22200
                         .area data
--- 006C                   .blkb 2
                         .area idata
--- 006C 571C              .word 22300
                         .area data
--- 006E                   .blkb 2
                         .area idata
--- 006E 5780              .word 22400
                         .area data
--- 0070                   .blkb 2
                         .area idata
--- 0070 57E4              .word 22500
                         .area data
--- 0072                   .blkb 2
                         .area idata
--- 0072 5848              .word 22600
                         .area data
--- 0074                   .blkb 2
                         .area idata
--- 0074 58AC              .word 22700
                         .area data
--- 0076                   .blkb 2
                         .area idata
--- 0076 5910              .word 22800
                         .area data
--- 0078                   .blkb 2
                         .area idata
--- 0078 5974              .word 22900
                         .area data
--- 007A                   .blkb 2
                         .area idata
--- 007A 59D8              .word 23000
                         .area data
--- 007C                   .blkb 2
                         .area idata
--- 007C 5A3C              .word 23100
                         .area data
--- 007E                   .blkb 2
                         .area idata
--- 007E 5AA0              .word 23200
                         .area data
--- 0080                   .blkb 2
                         .area idata
--- 0080 5B04              .word 23300
                         .area data
--- 0082                   .blkb 2
                         .area idata
--- 0082 5B68              .word 23400
                         .area data
--- 0084                   .blkb 2
                         .area idata
--- 0084 5BCC              .word 23500
                         .area data
--- 0086                   .blkb 2
                         .area idata
--- 0086 5C30              .word 23600
                         .area data
--- 0088                   .blkb 2
                         .area idata
--- 0088 5C94              .word 23700
                         .area data
--- 008A                   .blkb 2
                         .area idata
--- 008A 5CF8              .word 23800
                         .area data
--- 008C                   .blkb 2
                         .area idata
--- 008C 5D5C              .word 23900
                         .area data
--- 008E                   .blkb 2
                         .area idata
--- 008E 5DC0              .word 24000
                         .area data
--- 0090                   .blkb 2
                         .area idata
--- 0090 5E24              .word 24100
                         .area data
--- 0092                   .blkb 2
                         .area idata
--- 0092 5E88              .word 24200
                         .area data
--- 0094                   .blkb 2
                         .area idata
--- 0094 5EEC              .word 24300
                         .area data
--- 0096                   .blkb 2
                         .area idata
--- 0096 5F50              .word 24400
                         .area data
--- 0098                   .blkb 2
                         .area idata
--- 0098 5FB4              .word 24500
                         .area data
--- 009A                   .blkb 2
                         .area idata
--- 009A 6018              .word 24600
                         .area data
--- 009C                   .blkb 2
                         .area idata
--- 009C 607C              .word 24700
                         .area data
--- 009E                   .blkb 2
                         .area idata
--- 009E 60E0              .word 24800
                         .area data
--- 00A0                   .blkb 2
                         .area idata
--- 00A0 6144              .word 24900
                         .area data
--- 00A2                   .blkb 2
                         .area idata
--- 00A2 61A8              .word 25000
                         .area data
--- 00A4                   .blkb 2
                         .area idata
--- 00A4 620C              .word 25100
                         .area data
--- 00A6                   .blkb 2
                         .area idata
--- 00A6 6270              .word 25200
                         .area data
--- 00A8                   .blkb 2
                         .area idata
--- 00A8 62D4              .word 25300
                         .area data
--- 00AA                   .blkb 2
                         .area idata
--- 00AA 6338              .word 25400
                         .area data
--- 00AC                   .blkb 2
                         .area idata
--- 00AC 639C              .word 25500
                         .area data
--- 00AE                   .blkb 2
                         .area idata
--- 00AE 6400              .word 25600
                         .area data
--- 00B0                   .blkb 2
                         .area idata
--- 00B0 6464              .word 25700
                         .area data
--- 00B2                   .blkb 2
                         .area idata
--- 00B2 64C8              .word 25800
                         .area data
--- 00B4                   .blkb 2
                         .area idata
--- 00B4 652C              .word 25900
                         .area data
--- 00B6                   .blkb 2
                         .area idata
--- 00B6 6590              .word 26000
                         .area data
--- 00B8                   .blkb 2
                         .area idata
--- 00B8 65F4              .word 26100
                         .area data
--- 00BA                   .blkb 2
                         .area idata
--- 00BA 6658              .word 26200
                         .area data
--- 00BC                   .blkb 2
                         .area idata
--- 00BC 66BC              .word 26300
                         .area data
--- 00BE                   .blkb 2
                         .area idata
--- 00BE 6720              .word 26400
                         .area data
--- 00C0                   .blkb 2
                         .area idata
--- 00C0 6784              .word 26500
                         .area data
--- 00C2                   .blkb 2
                         .area idata
--- 00C2 67E8              .word 26600
                         .area data
--- 00C4                   .blkb 2
                         .area idata
--- 00C4 684C              .word 26700
                         .area data
--- 00C6                   .blkb 2
                         .area idata
--- 00C6 68B0              .word 26800
                         .area data
--- 00C8                   .blkb 2
                         .area idata
--- 00C8 6914              .word 26900
                         .area data
--- 00CA                   .blkb 2
                         .area idata
--- 00CA 6978              .word 27000
                         .area data
--- 00CC                   .blkb 2
                         .area idata
--- 00CC 69DC              .word 27100
                         .area data
--- 00CE                   .blkb 2
                         .area idata
--- 00CE 6A40              .word 27200
                         .area data
--- 00D0                   .blkb 2
                         .area idata
--- 00D0 6AA4              .word 27300
                         .area data
--- 00D2                   .blkb 2
                         .area idata
--- 00D2 6B08              .word 27400
                         .area data
--- 00D4                   .blkb 2
                         .area idata
--- 00D4 6B6C              .word 27500
                         .area data
--- 00D6                   .blkb 2
                         .area idata
--- 00D6 6BD0              .word 27600
                         .area data
--- 00D8                   .blkb 2
                         .area idata
--- 00D8 6C34              .word 27700
                         .area data
--- 00DA                   .blkb 2
                         .area idata
--- 00DA 6C98              .word 27800
                         .area data
--- 00DC                   .blkb 2
                         .area idata
--- 00DC 6CFC              .word 27900
                         .area data
--- 00DE                   .blkb 2
                         .area idata
--- 00DE 6D60              .word 28000
                         .area data
--- 00E0                   .blkb 2
                         .area idata
--- 00E0 6DC4              .word 28100
                         .area data
--- 00E2                   .blkb 2
                         .area idata
--- 00E2 6E28              .word 28200
                         .area data
--- 00E4                   .blkb 2
                         .area idata
--- 00E4 6E8C              .word 28300
                         .area data
--- 00E6                   .blkb 2
                         .area idata
--- 00E6 6EF0              .word 28400
                         .area data
--- 00E8                   .blkb 2
                         .area idata
--- 00E8 6F54              .word 28500
                         .area data
--- 00EA                   .blkb 2
                         .area idata
--- 00EA 6FB8              .word 28600
                         .area data
--- 00EC                   .blkb 2
                         .area idata
--- 00EC 701C              .word 28700
                         .area data
--- 00EE                   .blkb 2
                         .area idata
--- 00EE 7080              .word 28800
                         .area data
--- 00F0                   .blkb 2
                         .area idata
--- 00F0 70E4              .word 28900
                         .area data
--- 00F2                   .blkb 2
                         .area idata
--- 00F2 7148              .word 29000
                         .area data
--- 00F4                   .blkb 2
                         .area idata
--- 00F4 71AC              .word 29100
                         .area data
--- 00F6                   .blkb 2
                         .area idata
--- 00F6 7210              .word 29200
                         .area data
--- 00F8                   .blkb 2
                         .area idata
--- 00F8 7274              .word 29300
                         .area data
--- 00FA                   .blkb 2
                         .area idata
--- 00FA 72D8              .word 29400
                         .area data
--- 00FC                   .blkb 2
                         .area idata
--- 00FC 733C              .word 29500
                         .area data
--- 00FE                   .blkb 2
                         .area idata
--- 00FE 73A0              .word 29600
                         .area data
--- 0100                   .blkb 2
                         .area idata
--- 0100 7404              .word 29700
                         .area data
--- 0102                   .blkb 2
                         .area idata
--- 0102 7468              .word 29800
                         .area data
--- 0104                   .blkb 2
                         .area idata
--- 0104 74CC              .word 29900
                         .area data
--- 0106                   .blkb 2
                         .area idata
--- 0106 7530              .word 30000
                         .area data
--- 0108                   .blkb 2
                         .area idata
--- 0108 7594              .word 30100
                         .area data
--- 010A                   .blkb 2
                         .area idata
--- 010A 75F8              .word 30200
                         .area data
--- 010C                   .blkb 2
                         .area idata
--- 010C 765C              .word 30300
                         .area data
--- 010E                   .blkb 2
                         .area idata
--- 010E 76C0              .word 30400
                         .area data
--- 0110                   .blkb 2
                         .area idata
--- 0110 7724              .word 30500
                         .area data
--- 0112                   .blkb 2
                         .area idata
--- 0112 7788              .word 30600
                         .area data
--- 0114                   .blkb 2
                         .area idata
--- 0114 77EC              .word 30700
                         .area data
--- 0116                   .blkb 2
                         .area idata
--- 0116 7850              .word 30800
                         .area data
--- 0118                   .blkb 2
                         .area idata
--- 0118 78B4              .word 30900
                         .area data
--- 011A                   .blkb 2
                         .area idata
--- 011A 7918              .word 31000
                         .area data
--- 011C                   .blkb 2
                         .area idata
--- 011C 797C              .word 31100
                         .area data
--- 011E                   .blkb 2
                         .area idata
--- 011E 79E0              .word 31200
                         .area data
--- 0120                   .blkb 2
                         .area idata
--- 0120 7A44              .word 31300
                         .area data
--- 0122                   .blkb 2
                         .area idata
--- 0122 7AA8              .word 31400
                         .area data
--- 0124                   .blkb 2
                         .area idata
--- 0124 7B0C              .word 31500
                         .area data
--- 0126                   .blkb 2
                         .area idata
--- 0126 7B70              .word 31600
                         .area data
--- 0128                   .blkb 2
                         .area idata
--- 0128 7BD4              .word 31700
                         .area data
--- 012A                   .blkb 2
                         .area idata
--- 012A 7C38              .word 31800
                         .area data
--- 012C                   .blkb 2
                         .area idata
--- 012C 7C9C              .word 31900
                         .area data
--- 012E                   .blkb 2
                         .area idata
--- 012E 7D00              .word 32000
                         .area data
--- 0130                   .blkb 2
                         .area idata
--- 0130 7D64              .word 32100
                         .area data
--- 0132                   .blkb 2
                         .area idata
--- 0132 7DC8              .word 32200
                         .area data
--- 0134                   .blkb 2
                         .area idata
--- 0134 7E2C              .word 32300
                         .area data
--- 0136                   .blkb 2
                         .area idata
--- 0136 7E90              .word 32400
                         .area data
--- 0138                   .blkb 2
                         .area idata
--- 0138 7EF4              .word 32500
                         .area data
--- 013A                   .blkb 2
                         .area idata
--- 013A 7F58              .word 32600
                         .area data
--- 013C                   .blkb 2
                         .area idata
--- 013C 7FBC              .word 32700
                         .area data
--- 013E                   .blkb 2
                         .area idata
--- 013E 8020              .word -32736
                         .area data
--- 0140                   .blkb 2
                         .area idata
--- 0140 8084              .word -32636
                         .area data
--- 0142                   .blkb 2
                         .area idata
--- 0142 80E8              .word -32536
                         .area data
--- 0144                   .blkb 2
                         .area idata
--- 0144 814C              .word -32436
                         .area data
--- 0146                   .blkb 2
                         .area idata
--- 0146 81B0              .word -32336
                         .area data
--- 0148                   .blkb 2
                         .area idata
--- 0148 8214              .word -32236
                         .area data
--- 014A                   .blkb 2
                         .area idata
--- 014A 8278              .word -32136
                         .area data
--- 014C                   .blkb 2
                         .area idata
--- 014C 82DC              .word -32036
                         .area data
--- 014E                   .blkb 2
                         .area idata
--- 014E 8340              .word -31936
                         .area data
--- 0150                   .blkb 2
                         .area idata
--- 0150 83A4              .word -31836
                         .area data
--- 0152                   .blkb 2
                         .area idata
--- 0152 8408              .word -31736
                         .area data
--- 0154                   .blkb 2
                         .area idata
--- 0154 846C              .word -31636
                         .area data
--- 0156                   .blkb 2
                         .area idata
--- 0156 84D0              .word -31536
                         .area data
--- 0158                   .blkb 2
                         .area idata
--- 0158 8534              .word -31436
                         .area data
--- 015A                   .blkb 2
                         .area idata
--- 015A 8598              .word -31336
                         .area data
--- 015C                   .blkb 2
                         .area idata
--- 015C 85FC              .word -31236
                         .area data
--- 015E                   .blkb 2
                         .area idata
--- 015E 8660              .word -31136
                         .area data
--- 0160                   .blkb 2
                         .area idata
--- 0160 86C4              .word -31036
                         .area data
--- 0162                   .blkb 2
                         .area idata
--- 0162 8728              .word -30936
                         .area data
--- 0164                   .blkb 2
                         .area idata
--- 0164 878C              .word -30836
                         .area data
--- 0166                   .blkb 2
                         .area idata
--- 0166 87F0              .word -30736
                         .area data
--- 0168                   .blkb 2
                         .area idata
--- 0168 8854              .word -30636
                         .area data
--- 016A                   .blkb 2
                         .area idata
--- 016A 88B8              .word -30536
                         .area data
--- 016C                   .blkb 2
                         .area idata
--- 016C 891C              .word -30436
                         .area data
--- 016E                   .blkb 2
                         .area idata
--- 016E 8980              .word -30336
                         .area data
--- 0170                   .blkb 2
                         .area idata
--- 0170 89E4              .word -30236
                         .area data
--- 0172                   .blkb 2
                         .area idata
--- 0172 8A48              .word -30136
                         .area data
--- 0174                   .blkb 2
                         .area idata
--- 0174 8AAC              .word -30036
                         .area data
--- 0176                   .blkb 2
                         .area idata
--- 0176 8B10              .word -29936
                         .area data
--- 0178                   .blkb 2
                         .area idata
--- 0178 8B74              .word -29836
                         .area data
--- 017A                   .blkb 2
                         .area idata
--- 017A 8BD8              .word -29736
                         .area data
--- 017C                   .blkb 2
                         .area idata
--- 017C 8C3C              .word -29636
                         .area data
--- 017E                   .blkb 2
                         .area idata
--- 017E 8CA0              .word -29536
                         .area data
--- 0180                   .blkb 2
                         .area idata
--- 0180 8D04              .word -29436
                         .area data
--- 0182                   .blkb 2
                         .area idata
--- 0182 8D68              .word -29336
                         .area data
--- 0184                   .blkb 2
                         .area idata
--- 0184 8DCC              .word -29236
                         .area data
--- 0186                   .blkb 2
                         .area idata
--- 0186 8E30              .word -29136
                         .area data
--- 0188                   .blkb 2
                         .area idata
--- 0188 8E94              .word -29036
                         .area data
--- 018A                   .blkb 2
                         .area idata
--- 018A 8EF8              .word -28936
                         .area data
--- 018C                   .blkb 2
                         .area idata
--- 018C 8F5C              .word -28836
                         .area data
--- 018E                   .blkb 2
                         .area idata
--- 018E 8FC0              .word -28736
                         .area data
--- 0190                   .blkb 2
                         .area idata
--- 0190 9024              .word -28636
                         .area data
--- 0192                   .blkb 2
                         .area idata
--- 0192 9088              .word -28536
                         .area data
--- 0194                   .blkb 2
                         .area idata
--- 0194 90EC              .word -28436
                         .area data
--- 0196                   .blkb 2
                         .area idata
--- 0196 9150              .word -28336
                         .area data
--- 0198                   .blkb 2
                         .area idata
--- 0198 91B4              .word -28236
                         .area data
--- 019A                   .blkb 2
                         .area idata
--- 019A 9218              .word -28136
                         .area data
--- 019C                   .blkb 2
                         .area idata
--- 019C 927C              .word -28036
                         .area data
--- 019E                   .blkb 2
                         .area idata
--- 019E 92E0              .word -27936
                         .area data
--- 01A0                   .blkb 2
                         .area idata
--- 01A0 9344              .word -27836
                         .area data
--- 01A2                   .blkb 2
                         .area idata
--- 01A2 93A8              .word -27736
                         .area data
--- 01A4                   .blkb 2
                         .area idata
--- 01A4 940C              .word -27636
                         .area data
--- 01A6                   .blkb 2
                         .area idata
--- 01A6 9470              .word -27536
                         .area data
--- 01A8                   .blkb 2
                         .area idata
--- 01A8 94D4              .word -27436
                         .area data
--- 01AA                   .blkb 2
                         .area idata
--- 01AA 9538              .word -27336
                         .area data
--- 01AC                   .blkb 2
                         .area idata
--- 01AC 959C              .word -27236
                         .area data
--- 01AE                   .blkb 2
                         .area idata
--- 01AE 9600              .word -27136
                         .area data
--- 01B0                   .blkb 2
                         .area idata
--- 01B0 9664              .word -27036
                         .area data
--- 01B2                   .blkb 2
                         .area idata
--- 01B2 96C8              .word -26936
                         .area data
--- 01B4                   .blkb 2
                         .area idata
--- 01B4 972C              .word -26836
                         .area data
--- 01B6                   .blkb 2
                         .area idata
--- 01B6 9790              .word -26736
                         .area data
--- 01B8                   .blkb 2
                         .area idata
--- 01B8 97F4              .word -26636
                         .area data
--- 01BA                   .blkb 2
                         .area idata
--- 01BA 9858              .word -26536
                         .area data
--- 01BC                   .blkb 2
                         .area idata
--- 01BC 98BC              .word -26436
                         .area data
--- 01BE                   .blkb 2
                         .area idata
--- 01BE 9920              .word -26336
                         .area data
--- 01C0                   .blkb 2
                         .area idata
--- 01C0 9984              .word -26236
                         .area data
--- 01C2                   .blkb 2
                         .area idata
--- 01C2 99E8              .word -26136
                         .area data
--- 01C4                   .blkb 2
                         .area idata
--- 01C4 9A4C              .word -26036
                         .area data
--- 01C6                   .blkb 2
                         .area idata
--- 01C6 9AB0              .word -25936
                         .area data
--- 01C8                   .blkb 2
                         .area idata
--- 01C8 9B14              .word -25836
                         .area data
--- 01CA                   .blkb 2
                         .area idata
--- 01CA 9B78              .word -25736
                         .area data
--- 01CC                   .blkb 2
                         .area idata
--- 01CC 9BDC              .word -25636
                         .area data
--- 01CE                   .blkb 2
                         .area idata
--- 01CE 9C40              .word -25536
                         .area data
--- 01D0                   .blkb 2
                         .area idata
--- 01D0 9CA4              .word -25436
                         .area data
--- 01D2                   .blkb 2
                         .area idata
--- 01D2 9D08              .word -25336
                         .area data
--- 01D4                   .blkb 2
                         .area idata
--- 01D4 9D6C              .word -25236
                         .area data
--- 01D6                   .blkb 2
                         .area idata
--- 01D6 9DD0              .word -25136
                         .area data
--- 01D8                   .blkb 2
                         .area idata
--- 01D8 9E34              .word -25036
                         .area data
 935F                  _Message::
 935F                    .blkb 1
                         .area idata
--- 01DA 00                .byte 0
                         .area data
 9360                  _CommandPos::
 9360                    .blkb 1
                         .area idata
--- 01DB 00                .byte 0
                         .area data
 9361                  _handleCommandFlag::
 9361                    .blkb 1
                         .area idata
--- 01DC 00                .byte 0
                         .area data
 9362                  _handleSampleFlag::
 9362                    .blkb 1
                         .area idata
--- 01DD 00                .byte 0
                         .area data
 9363                  _cyl1_pstn::
 9363                    .blkb 2
                         .area idata
--- 01DE 0000              .word 0
                         .area data
 9365                  _cyl2_pstn::
 9365                    .blkb 2
                         .area idata
--- 01E0 0000              .word 0
                         .area data
 9367                  _cyl3_pstn::
 9367                    .blkb 2
                         .area idata
--- 01E2 0000              .word 0
                         .area data
 9369                  _cyl4_pstn::
 9369                    .blkb 2
                         .area idata
--- 01E4 0000              .word 0
                         .area data
 936B                  _cyl5_pstn::
 936B                    .blkb 2
                         .area idata
--- 01E6 0000              .word 0
                         .area data
 936D                  _cyl6_pstn::
 936D                    .blkb 2
                         .area idata
--- 01E8 0000              .word 0
                         .area data
 936F                  _cyl7_pstn::
 936F                    .blkb 2
                         .area idata
--- 01EA 0000              .word 0
                         .area data
 9371                  _cyl8_pstn::
 9371                    .blkb 2
                         .area idata
--- 01EC 0000              .word 0
                         .area data
 9373                  _cyl1_des::
 9373                    .blkb 2
                         .area idata
--- 01EE 0064              .word 100
                         .area data
 9375                  _cyl2_des::
 9375                    .blkb 2
                         .area idata
--- 01F0 0064              .word 100
                         .area data
 9377                  _cyl3_des::
 9377                    .blkb 2
                         .area idata
--- 01F2 0064              .word 100
                         .area data
 9379                  _cyl4_des::
 9379                    .blkb 2
                         .area idata
--- 01F4 0064              .word 100
                         .area data
 937B                  _cyl5_des::
 937B                    .blkb 2
                         .area idata
--- 01F6 0064              .word 100
                         .area data
 937D                  _cyl6_des::
 937D                    .blkb 2
                         .area idata
--- 01F8 0064              .word 100
                         .area data
 937F                  _cyl7_des::
 937F                    .blkb 2
                         .area idata
--- 01FA 0064              .word 100
                         .area data
 9381                  _cyl8_des::
 9381                    .blkb 2
                         .area idata
--- 01FC 0064              .word 100
                         .area data
 9383                  _error1::
 9383                    .blkb 2
                         .area idata
--- 01FE 0000              .word 0
                         .area data
--- 0200                   .blkb 2
                         .area idata
--- 0200 0000              .word 0
                         .area data
--- 0202                   .blkb 2
                         .area idata
--- 0202 0000              .word 0
                         .area data
 9389                  _error2::
 9389                    .blkb 2
                         .area idata
--- 0204 0000              .word 0
                         .area data
--- 0206                   .blkb 2
                         .area idata
--- 0206 0000              .word 0
                         .area data
--- 0208                   .blkb 2
                         .area idata
--- 0208 0000              .word 0
                         .area data
 938F                  _error3::
 938F                    .blkb 2
                         .area idata
--- 020A 0000              .word 0
                         .area data
--- 020C                   .blkb 2
                         .area idata
--- 020C 0000              .word 0
                         .area data
--- 020E                   .blkb 2
                         .area idata
--- 020E 0000              .word 0
                         .area data
 9395                  _error4::
 9395                    .blkb 2
                         .area idata
--- 0210 0000              .word 0
                         .area data
--- 0212                   .blkb 2
                         .area idata
--- 0212 0000              .word 0
                         .area data
--- 0214                   .blkb 2
                         .area idata
--- 0214 0000              .word 0
                         .area data
 939B                  _error5::
 939B                    .blkb 2
                         .area idata
--- 0216 0000              .word 0
                         .area data
--- 0218                   .blkb 2
                         .area idata
--- 0218 0000              .word 0
                         .area data
--- 021A                   .blkb 2
                         .area idata
--- 021A 0000              .word 0
                         .area data
 93A1                  _error6::
 93A1                    .blkb 2
                         .area idata
--- 021C 0000              .word 0
                         .area data
--- 021E                   .blkb 2
                         .area idata
--- 021E 0000              .word 0
                         .area data
--- 0220                   .blkb 2
                         .area idata
--- 0220 0000              .word 0
                         .area data
 93A7                  _error7::
 93A7                    .blkb 2
                         .area idata
--- 0222 0000              .word 0
                         .area data
--- 0224                   .blkb 2
                         .area idata
--- 0224 0000              .word 0
                         .area data
--- 0226                   .blkb 2
                         .area idata
--- 0226 0000              .word 0
                         .area data
 93AD                  _error8::
 93AD                    .blkb 2
                         .area idata
--- 0228 0000              .word 0
                         .area data
--- 022A                   .blkb 2
                         .area idata
--- 022A 0000              .word 0
                         .area data
--- 022C                   .blkb 2
                         .area idata
--- 022C 0000              .word 0
                         .area data
 93B3                  _K1::
 93B3                    .blkb 2
                         .area idata
--- 022E 0003              .word 3
                         .area data
--- 0230                   .blkb 2
                         .area idata
--- 0230 0000              .word 0
                         .area data
--- 0232                   .blkb 2
                         .area idata
--- 0232 0000              .word 0
                         .area data
 93B9                  _K2::
 93B9                    .blkb 2
                         .area idata
--- 0234 0003              .word 3
                         .area data
--- 0236                   .blkb 2
                         .area idata
--- 0236 0000              .word 0
                         .area data
--- 0238                   .blkb 2
                         .area idata
--- 0238 0000              .word 0
                         .area data
 93BF                  _K3::
 93BF                    .blkb 2
                         .area idata
--- 023A 0003              .word 3
                         .area data
--- 023C                   .blkb 2
                         .area idata
--- 023C 0000              .word 0
                         .area data
--- 023E                   .blkb 2
                         .area idata
--- 023E 0000              .word 0
                         .area data
 93C5                  _K4::
 93C5                    .blkb 2
                         .area idata
--- 0240 0003              .word 3
                         .area data
--- 0242                   .blkb 2
                         .area idata
--- 0242 0000              .word 0
                         .area data
--- 0244                   .blkb 2
                         .area idata
--- 0244 0000              .word 0
                         .area data
 93CB                  _K5::
 93CB                    .blkb 2
                         .area idata
--- 0246 0003              .word 3
                         .area data
--- 0248                   .blkb 2
                         .area idata
--- 0248 0000              .word 0
                         .area data
--- 024A                   .blkb 2
                         .area idata
--- 024A 0000              .word 0
                         .area data
 93D1                  _K6::
 93D1                    .blkb 2
                         .area idata
--- 024C 0003              .word 3
                         .area data
--- 024E                   .blkb 2
                         .area idata
--- 024E 0000              .word 0
                         .area data
--- 0250                   .blkb 2
                         .area idata
--- 0250 0000              .word 0
                         .area data
 93D7                  _K7::
 93D7                    .blkb 2
                         .area idata
--- 0252 0003              .word 3
                         .area data
--- 0254                   .blkb 2
                         .area idata
--- 0254 0000              .word 0
                         .area data
--- 0256                   .blkb 2
                         .area idata
--- 0256 0000              .word 0
                         .area data
 93DD                  _K8::
 93DD                    .blkb 2
                         .area idata
--- 0258 0003              .word 3
                         .area data
--- 025A                   .blkb 2
                         .area idata
--- 025A 0000              .word 0
                         .area data
--- 025C                   .blkb 2
                         .area idata
--- 025C 0000              .word 0
                         .area data
 93E3                  _motor1::
 93E3                    .blkb 2
                         .area idata
--- 025E 0000              .word 0
                         .area data
 93E5                  _motor2::
 93E5                    .blkb 2
                         .area idata
--- 0260 0000              .word 0
                         .area data
 93E7                  _motor3::
 93E7                    .blkb 2
                         .area idata
--- 0262 0000              .word 0
                         .area data
 93E9                  _motor4::
 93E9                    .blkb 2
                         .area idata
--- 0264 0000              .word 0
                         .area data
 93EB                  _motor5::
 93EB                    .blkb 2
                         .area idata
--- 0266 0000              .word 0
                         .area data
 93ED                  _motor6::
 93ED                    .blkb 2
                         .area idata
--- 0268 0000              .word 0
                         .area data
 93EF                  _motor7::
 93EF                    .blkb 2
                         .area idata
--- 026A 0000              .word 0
                         .area data
 93F1                  _motor8::
 93F1                    .blkb 2
                         .area idata
--- 026C 0000              .word 0
                         .area data
 93F3                  _calc_1ot::
 93F3                    .blkb 1
                         .area idata
--- 026E 00                .byte 0
                         .area data
 93F4                  _calc_1vl::
 93F4                    .blkb 2
                         .area idata
--- 026F 0000              .word 0
                         .area data
 93F6                  _calc_2ot::
 93F6                    .blkb 1
                         .area idata
--- 0271 00                .byte 0
                         .area data
 93F7                  _calc_2vl::
 93F7                    .blkb 2
                         .area idata
--- 0272 0000              .word 0
                         .area data
 93F9                  _calc_3ot::
 93F9                    .blkb 1
                         .area idata
--- 0274 00                .byte 0
                         .area data
 93FA                  _calc_3vl::
 93FA                    .blkb 2
                         .area idata
--- 0275 0000              .word 0
                         .area data
 93FC                  _new_motor_num::
 93FC                    .blkb 1
                         .area idata
--- 0277 00                .byte 0
                         .area data
 93FD                  _new_motor_spd::
 93FD                    .blkb 2
                         .area idata
--- 0278 0000              .word 0
                         .area data
 93FF                  _comp_motor_spd::
 93FF                    .blkb 2
                         .area idata
--- 027A 0000              .word 0
                         .area data
 9401                  _first_motor::
 9401                    .blkb 1
                         .area idata
--- 027C 00                .byte 0
                         .area data
 9402                  _same_motor::
 9402                    .blkb 1
                         .area idata
--- 027D 00                .byte 0
                         .area data
 9403                  _oc5_reg::
 9403                    .blkb 2
                         .area idata
--- 027E 0000              .word 0
                         .area data
 9405                  _oc5_1ot::
 9405                    .blkb 1
                         .area idata
--- 0280 00                .byte 0
                         .area data
 9406                  _oc5_1vl::
 9406                    .blkb 2
                         .area idata
--- 0281 0000              .word 0
                         .area data
 9408                  _oc5_2ot::
 9408                    .blkb 1
                         .area idata
--- 0283 00                .byte 0
                         .area data
 9409                  _oc5_2vl::
 9409                    .blkb 2
                         .area idata
--- 0284 0000              .word 0
                         .area data
 940B                  _oc5_3ot::
 940B                    .blkb 1
                         .area idata
--- 0286 00                .byte 0
                         .area data
 940C                  _oc5_3vl::
 940C                    .blkb 2
                         .area idata
--- 0287 0000              .word 0
                         .area data
 940E                  _oc4_reg::
 940E                    .blkb 2
                         .area idata
--- 0289 0000              .word 0
                         .area data
 9410                  _oc4_1ot::
 9410                    .blkb 1
                         .area idata
--- 028B 00                .byte 0
                         .area data
 9411                  _oc4_1vl::
 9411                    .blkb 2
                         .area idata
--- 028C 0000              .word 0
                         .area data
 9413                  _oc4_2ot::
 9413                    .blkb 1
                         .area idata
--- 028E 00                .byte 0
                         .area data
 9414                  _oc4_2vl::
 9414                    .blkb 2
                         .area idata
--- 028F 0000              .word 0
                         .area data
 9416                  _oc4_3ot::
 9416                    .blkb 1
                         .area idata
--- 0291 00                .byte 0
                         .area data
 9417                  _oc4_3vl::
 9417                    .blkb 2
                         .area idata
--- 0292 0000              .word 0
                         .area data
 9419                  _oc3_reg::
 9419                    .blkb 2
                         .area idata
--- 0294 0000              .word 0
                         .area data
 941B                  _oc3_1ot::
 941B                    .blkb 1
                         .area idata
--- 0296 00                .byte 0
                         .area data
 941C                  _oc3_1vl::
 941C                    .blkb 2
                         .area idata
--- 0297 0000              .word 0
                         .area data
 941E                  _oc3_2ot::
 941E                    .blkb 1
                         .area idata
--- 0299 00                .byte 0
                         .area data
 941F                  _oc3_2vl::
 941F                    .blkb 2
                         .area idata
--- 029A 0000              .word 0
                         .area data
 9421                  _oc3_3ot::
 9421                    .blkb 1
                         .area idata
--- 029C 00                .byte 0
                         .area data
 9422                  _oc3_3vl::
 9422                    .blkb 2
                         .area idata
--- 029D 0000              .word 0
                         .area data
 9424                  _oc2_reg::
 9424                    .blkb 2
                         .area idata
--- 029F 0000              .word 0
                         .area data
 9426                  _oc2_1ot::
 9426                    .blkb 1
                         .area idata
--- 02A1 00                .byte 0
                         .area data
 9427                  _oc2_1vl::
 9427                    .blkb 2
                         .area idata
--- 02A2 0000              .word 0
                         .area data
 9429                  _oc2_2ot::
 9429                    .blkb 1
                         .area idata
--- 02A4 00                .byte 0
                         .area data
 942A                  _oc2_2vl::
 942A                    .blkb 2
                         .area idata
--- 02A5 0000              .word 0
                         .area data
 942C                  _oc2_3ot::
 942C                    .blkb 1
                         .area idata
--- 02A7 00                .byte 0
                         .area data
 942D                  _oc2_3vl::
 942D                    .blkb 2
                         .area idata
--- 02A8 0000              .word 0
                         .area data
 942F                  _x_preserve::
 942F                    .blkb 2
                         .area idata
--- 02AA 0000              .word 0
                         .area data
 9431                  _mot_spd::
 9431                    .blkb 1
                         .area idata
--- 02AC 00                .byte 0
                         .area data
 9432                  _pwm_port::
 9432                    .blkb 2
                         .area idata
--- 02AD 5000              .word 20480
                         .area data
 9434                  _wave_period::
 9434                    .blkb 2
                         .area idata
--- 02AF EA60              .word -5536
                         .area data
 9436                  _RTIcount::
 9436                    .blkb 1
                         .area idata
--- 02B1 00                .byte 0
                         .area text
                       ;  IX -> 0,x
 8143                  _init_SCI::
 8143                    .dbfile demoday.c
 8143                    .dbfunc init_SCI
 8143                    .dbline 171
                       ; /*----------------------------------------------------*
                       ;  *Program    : demoday.c                              *
                       ;  *Version    : HC!!-1.0                               *
                       ;  *Programmer : Scott Kanowitz                         *
                       ;  *Contracter : Machine Intelligence Labroatory        *
                       ;  *             University of Florida                  *
                       ;  *Project    : Pneuman                                *
                       ;  *Date       : 3/19/2000                              *
                       ;  *----------------------------------------------------*
                       ;  * Description : A program to run on the HC11 to      *
                       ;  *               control 8 cylinders via a PID        *
                       ;  *               controller and communicate with      *
                       ;  *               the host machine via serial line     *   
                       ;  *----------------------------------------------------*/
                       ; 
                       ; 
                       ; //#include <multvlve.h>
                       ; #include <hc11.h>
                       ; #include <mil.h>
                       ; #include <analog.h>
                       ; #include <pwmvals.h>
                       ; 
                       ; /* Set up interrupt vectors (also at end) */
                       ; extern void _start(void);   /* entry point in crt??.s */
                       ; 
                       ; 
                       ; #pragma interrupt_handler TOC2_isr
                       ; #pragma interrupt_handler TOC3_isr
                       ; #pragma interrupt_handler TOC4_isr
                       ; #pragma interrupt_handler TOC5_isr
                       ; #pragma interrupt_handler SCI_isr
                       ; #pragma interrupt_handler RTI_isr
                       ; 
                       ; 
                       ; 
                       ; #define DUMMY_ENTRY (void (*)(void))0xFFFF /*used as blank space in inpt vectors*/
                       ; #define COMMAND_LENGTH 7 //(start char) + (5 char command(ie C1150)) + (end char) 
                       ; #define START_CHAR 0x24 //corresponds to $
                       ; #define END_CHAR 0x23 //corresponds to #
                       ; 
                       ; #define P 0
                       ; #define I 1
                       ; #define D 2
                       ; 
                       ; #define TOLERANCE 4
                       ; 
                       ; #define DIR_PORT *(unsigned char *)(0x4000)
                       ; /*--------------------------------------------------*
                       ;  *Global variables                                  *
                       ;  *                                                  *
                       ;  *--------------------------------------------------*/
                       ; //char cylinderNumber = 0;
                       ; 
                       ; char Message = 0;
                       ; char CommandPos = 0;
                       ; char handleCommandFlag = 0;
                       ; char Command[2* COMMAND_LENGTH];
                       ; 
                       ; char    handleSampleFlag  = 0;
                       ; 
                       ; int     cyl1_pstn   = 0; 
                       ; int     cyl2_pstn   = 0; 
                       ; int     cyl3_pstn   = 0; 
                       ; int     cyl4_pstn   = 0; 
                       ; int     cyl5_pstn   = 0; 
                       ; int     cyl6_pstn   = 0; 
                       ; int     cyl7_pstn   = 0; 
                       ; int     cyl8_pstn   = 0; 
                       ; 
                       ; int     cyl1_des    = 100; 
                       ; int     cyl2_des    = 100; 
                       ; int     cyl3_des    = 100; 
                       ; int     cyl4_des    = 100; 
                       ; int     cyl5_des    = 100; 
                       ; int     cyl6_des    = 100; 
                       ; int     cyl7_des    = 100; 
                       ; int     cyl8_des    = 100; 
                       ; 
                       ; int error1[3] = {0, 0, 0};
                       ; int error2[3] = {0, 0, 0};
                       ; int error3[3] = {0, 0, 0};
                       ; int error4[3] = {0, 0, 0};
                       ; int error5[3] = {0, 0, 0};
                       ; int error6[3] = {0, 0, 0};
                       ; int error7[3] = {0, 0, 0};
                       ; int error8[3] = {0, 0, 0};
                       ; 
                       ; int K1[3] = {3, 0, 0};
                       ; int K2[3] = {3, 0, 0};
                       ; int K3[3] = {3, 0, 0};
                       ; int K4[3] = {3, 0, 0};
                       ; int K5[3] = {3, 0, 0};
                       ; int K6[3] = {3, 0, 0};
                       ; int K7[3] = {3, 0, 0};
                       ; int K8[3] = {3, 0, 0};
                       ; 
                       ; 
                       ; int motor1        =0; 
                       ; int motor2        =0; 
                       ; int motor3        =0; 
                       ; int motor4        =0; 
                       ; int motor5        =0; 
                       ; int motor6        =0; 
                       ; int motor7        =0; 
                       ; int motor8        =0; 
                       ; 
                       ; char calc_1ot    =0; 
                       ; int calc_1vl     =0; 
                       ; char calc_2ot    =0; 
                       ; int calc_2vl     =0; 
                       ; char calc_3ot    =0; 
                       ; int calc_3vl     =0; 
                       ; 
                       ; char new_motor_num   = 0; 
                       ; int new_motor_spd    = 0; 
                       ; int comp_motor_spd   = 0; 
                       ; char first_motor     = 0; 
                       ; char same_motor      = 0; 
                       ; 
                       ; char *oc5_reg        = 0; 
                       ; char oc5_1ot         = 0; 
                       ; int oc5_1vl          = 0; 
                       ; char oc5_2ot         = 0; 
                       ; int oc5_2vl          = 0; 
                       ; char oc5_3ot         = 0; 
                       ; int oc5_3vl          = 0; 
                       ; 
                       ; char *oc4_reg = 0; 
                       ; char oc4_1ot  = 0; 
                       ; int oc4_1vl   = 0; 
                       ; char oc4_2ot  = 0; 
                       ; int oc4_2vl   = 0; 
                       ; char oc4_3ot  = 0; 
                       ; int oc4_3vl   = 0; 
                       ; 
                       ; char *oc3_reg = 0; 
                       ; char oc3_1ot  = 0; 
                       ; int oc3_1vl   = 0; 
                       ; char oc3_2ot  = 0; 
                       ; int oc3_2vl   = 0; 
                       ; char oc3_3ot  = 0; 
                       ; int oc3_3vl   = 0; 
                       ; 
                       ; char *oc2_reg = 0; 
                       ; char oc2_1ot  = 0; 
                       ; int oc2_1vl   = 0; 
                       ; char oc2_2ot  = 0; 
                       ; int oc2_2vl   = 0; 
                       ; char oc2_3ot  = 0; 
                       ; int oc2_3vl   = 0; 
                       ; 
                       ; int x_preserve = 0;
                       ; 
                       ; char mot_spd = 0;
                       ; 
                       ; int pwm_port    = 0x5000;
                       ; 
                       ; int wave_period = 0xEA60;
                       ; 
                       ; char RTIcount   =0;
                       ; 
                       ; 
                       ; /************************************************************
                       ; 
                       ;   INITIALIZATION FUNCTIONS
                       ; 
                       ; *************************************************************/
                       ; 
                       ; /* Set SCI for 9600, 8-n-1, TE, RE, and rx interrupt enabled, tx disabled */
                       ; void init_SCI(){
                       ;   BAUD |= 0X30;
 8143  18CE102B          ldy #0x102b
 8147  181C0030          bset 0,y,#48
 814B                    .dbline 172
                       ;   SCCR1 = 0X00;
 814B  7F102C            clr 0x102c
 814E                    .dbline 173
                       ;   SCCR2 |= 0X2C;
 814E  18CE102D          ldy #0x102d
 8152  181C002C          bset 0,y,#44
 8156                    .dbline 174
                       ;   SCCR2 &= 0X7f;
 8156  18CE102D          ldy #0x102d
 815A  181D0080          bclr 0,y,#0x80
 815E                    .dbline 175
                       ; }
 815E                  L2:
 815E  39                rts
                       ;  IX -> 0,x
 815F                  _init_pulse::
 815F  0F                        sei
                       
 8160                    .dbfunc init_pulse
 8160                    .dbline 182
                       ; 
                       ;     
                       ; /* Set up oc2-5 to interrupt and dissconnect from pins*/
                       ; void init_pulse()
                       ; {
                       ;     INTR_OFF();
                       ;     CLEAR_BIT(TCTL1, 0xFF); //Disconnect all OCs from pins
 8160  18CE1020          ldy #0x1020
 8164  181D00FF          bclr 0,y,#0xff
 8168                    .dbline 183
                       ;     TOC2 = 3000;
 8168  CC0BB8            ldd #3000
 816B  FD1018            std 0x1018
 816E                    .dbline 184
                       ;     TOC3 = TOC2+3000; //offset all the initial interrupt times
                         ; vol
 816E  FC1018            ldd 0x1018
 8171  C30BB8            addd #3000
 8174  FD101A            std 0x101a
 8177                    .dbline 185
                       ;     TOC4 = TOC3+3000;
                         ; vol
 8177  FC101A            ldd 0x101a
 817A  C30BB8            addd #3000
 817D  FD101C            std 0x101c
 8180                    .dbline 186
                       ;     TOC5 = TOC4+3000; 
                         ; vol
 8180  FC101C            ldd 0x101c
 8183  C30BB8            addd #3000
 8186  FD101E            std 0x101e
 8189                    .dbline 187
                       ;     SET_BIT(TMSK1, 0x78);   //enable oc2-5
 8189  18CE1022          ldy #0x1022
 818D  181C0078          bset 0,y,#120
 8191                    .dbline 188
                       ;     CLEAR_BIT(PACTL, 0x04); //Enable oc5
 8191  18CE1026          ldy #0x1026
 8195  181D0004          bclr 0,y,#0x4
 8199  0E                        cli
                       
 819A                    .dbline 190
                       ;     INTR_ON(); //turn on interrupts
                       ; }   
 819A                  L3:
 819A  39                rts
                       ;  IX -> 0,x
 819B                  _init_RTI::
 819B                    .dbfunc init_RTI
 819B                    .dbline 195
                       ; 
                       ; 
                       ; /* Initialize RTI to interrupt every 32.768ms */
                       ; void init_RTI() {
                       ;   PACTL |= 0X03;
 819B  18CE1026          ldy #0x1026
 819F  181C0003          bset 0,y,#3
 81A3                    .dbline 196
                       ;   TMSK2 |= 0X40;
 81A3  18CE1024          ldy #0x1024
 81A7  181C0040          bset 0,y,#64
 81AB                    .dbline 197
                       ; }
 81AB                  L4:
 81AB  39                rts
                       ;  IX -> 0,x
                       ;        mot_num -> 9,x
                       ;       new_duty -> 4,x
 81AC                  _multvlve::
 81AC  37                pshb
 81AD  36                psha
 81AE  3C                pshx
 81AF  3C                pshx
 81B0  30                tsx
 81B1  EF00              stx 0,x
 81B3                    .dbfunc multvlve
 81B3                    .dbline 208
                       ; 
                       ; 
                       ; /************************************************************
                       ; 
                       ;   MULTVLVE function to set up duty_cycles
                       ; 
                       ; *************************************************************/
                       ; 
                       ; void multvlve(int new_duty, char mot_num)
                       ; {
                       ; new_motor_spd = new_duty;
 81B3  EC04              ldd 4,x
 81B5  FD93FD            std _new_motor_spd
 81B8                    .dbline 209
                       ; new_motor_num = mot_num;
 81B8  E609              ldab 9,x
 81BA  F793FC            stab _new_motor_num
 81BD  FF942F                stx _x_preserve
 81C0  F693FC            ldab _new_motor_num
 81C3  C101              cmpb #$01
 81C5  2614              bne is_motor_2
 81C7  FE93FD            ldx _new_motor_spd
 81CA  FF93E3            stx _motor1
 81CD  FE93E5            ldx _motor2
 81D0  FF93FF            stx _comp_motor_spd
 81D3  C601              ldab #$01
 81D5  F79401            stab _first_motor
 81D8  7E827D            jmp calc_motor_times
 81DB                  	is_motor_2:
 81DB  C102              cmpb #$02
 81DD  2612              bne is_motor_3
 81DF  FE93FD            ldx _new_motor_spd
 81E2  FF93E5            stx _motor2
 81E5  FE93E3            ldx _motor1
 81E8  FF93FF            stx _comp_motor_spd
 81EB  7F9401            clr _first_motor
 81EE  7E827D            jmp calc_motor_times
                       
 81F1                  		is_motor_3:
 81F1  C103              cmpb #$03
 81F3  2614              bne is_motor_4
 81F5  FE93FD            ldx _new_motor_spd
 81F8  FF93E7            stx _motor3
 81FB  FE93E9            ldx _motor4
 81FE  FF93FF            stx _comp_motor_spd
 8201  C601              ldab #$01
 8203  F79401            stab _first_motor
 8206  7E827D            jmp calc_motor_times
 8209                  	is_motor_4:
 8209  C104              cmpb #$04
 820B  2612              bne is_motor_5
 820D  FE93FD            ldx _new_motor_spd
 8210  FF93E9            stx _motor4
 8213  FE93E7            ldx _motor3
 8216  FF93FF            stx _comp_motor_spd
 8219  7F9401            clr _first_motor
 821C  7E827D            jmp calc_motor_times
                       
 821F                  		is_motor_5:
 821F  C105              cmpb #$05
 8221  2614              bne is_motor_6
 8223  FE93FD            ldx _new_motor_spd
 8226  FF93EB            stx _motor5
 8229  FE93ED            ldx _motor6
 822C  FF93FF            stx _comp_motor_spd
 822F  C601              ldab #$01
 8231  F79401            stab _first_motor
 8234  7E827D            jmp calc_motor_times
 8237                  	is_motor_6:
 8237  C106              cmpb #$06
 8239  2612              bne is_motor_7
 823B  FE93FD            ldx _new_motor_spd
 823E  FF93ED            stx _motor6
 8241  FE93EB            ldx _motor5
 8244  FF93FF            stx _comp_motor_spd
 8247  7F9401            clr _first_motor
 824A  7E827D            jmp calc_motor_times
                       
 824D                  		is_motor_7:
 824D  C107              cmpb #$07
 824F  2614              bne is_motor_8
 8251  FE93FD            ldx _new_motor_spd
 8254  FF93EF            stx _motor7
 8257  FE93F1            ldx _motor8
 825A  FF93FF            stx _comp_motor_spd
 825D  C601              ldab #$01
 825F  F79401            stab _first_motor
 8262  7E827D            jmp calc_motor_times
 8265                  	is_motor_8:
 8265  C108              cmpb #$08
 8267  2611              bne end_routine
 8269  FE93FD            ldx _new_motor_spd
 826C  FF93F1            stx _motor8
 826F  FE93EF            ldx _motor7
 8272  FF93FF            stx _comp_motor_spd
 8275  7F9401            clr _first_motor
 8278  2003              bra calc_motor_times
                         
                       
 827A                  		end_routine:
 827A  7E85A0            jmp multvlve_done
 827D                  	calc_motor_times:
 827D  7F9402            clr _same_motor
 8280  FE93FD            ldx _new_motor_spd
 8283  BC93FF            cpx _comp_motor_spd
 8286  2605              bne calc_motor_nequ
 8288  8601              ldaa #$01
 828A  B79402            staa _same_motor
 828D                  	calc_motor_nequ:
 828D  BC9434            cpx _wave_period
 8290  2603              bne calc_mot_con1
 8292  7E8455            jmp clc_mot_40
 8295                  	calc_mot_con1:
 8295  8C0000            cpx #$0000
 8298  2603              bne calc_mot_con2
 829A  7E83BD            jmp clc_mot_00
                       
 829D                  		calc_mot_con2:
 829D  B69402            ldaa _same_motor
 82A0  266C              bne calc_motor_same
 82A2  BC93FF            cpx _comp_motor_spd
 82A5  2303              bls clc_mot_les
 82A7  7E8336            jmp clc_mot_gt
 82AA                  	clc_mot_les:
 82AA  FF93F4            stx _calc_1vl
 82AD  FC93FF            ldd _comp_motor_spd
 82B0  B393FD            subd _new_motor_spd
 82B3  FD93F7            std _calc_2vl
 82B6  FC9434            ldd _wave_period
 82B9  1AB393FF          cpd _comp_motor_spd
 82BD  271B              beq clc_mot_lesc
 82BF  B393F7            subd _calc_2vl
 82C2  B393F4            subd _calc_1vl
 82C5  FD93FA            std _calc_3vl
 82C8  8603              ldaa #0b00000011
 82CA  B793F3            staa _calc_1ot
 82CD  8602              ldaa #0b00000010
 82CF  B793F6            staa _calc_2ot
 82D2  8600              ldaa #0b00000000
 82D4  B793F9            staa _calc_3ot
 82D7  7E84DA            jmp calc_mot_fin
                       
 82DA                  		clc_mot_lesc:
 82DA  B393FD            subd _new_motor_spd
 82DD  8303E8            subd #1000
 82E0  FD93FA            std _calc_3vl
 82E3  CC03E8            ldd #1000
 82E6  FD93F7            std _calc_2vl
 82E9  B69401            ldaa _first_motor
 82EC  2610              bne is_mot_lessc
 82EE  8603              ldaa #0b00000011
 82F0  B793F3            staa _calc_1ot
 82F3  8601              ldaa #0b00000001
 82F5  B793F9            staa _calc_3ot
 82F8  B793F6            staa _calc_2ot
 82FB  7E84DA            jmp calc_mot_fin
 82FE                  	is_mot_lessc:
 82FE  8603              ldaa #0b00000011
 8300  B793F3            staa _calc_1ot
 8303  8602              ldaa #0b00000010
 8305  B793F9            staa _calc_3ot
 8308  B793F6            staa _calc_2ot
 830B  7E84DA            jmp calc_mot_fin
                       
 830E                  		calc_motor_same:
 830E  FC93FD            ldd _new_motor_spd
 8311  FD93F4            std _calc_1vl
 8314  CC03E8            ldd #1000
 8317  FD93F7            std _calc_2vl
 831A  FC9434            ldd _wave_period
 831D  B393F7            subd _calc_2vl
 8320  B393F4            subd _calc_1vl
 8323  FD93FA            std _calc_3vl
 8326  8603              ldaa #0b00000011
 8328  B793F3            staa _calc_1ot
 832B  8600              ldaa #$00000000
 832D  B793F9            staa _calc_3ot
 8330  B793F6            staa _calc_2ot
 8333  7E84DA            jmp calc_mot_fin
                       
 8336                  		clc_mot_gt:
 8336  FC93FF            ldd _comp_motor_spd
 8339  1A830000          cpd #$00
 833D  2741              beq clc_mot_gtr0
 833F  FD93F4            std _calc_1vl
 8342  FC93FD            ldd _new_motor_spd
 8345  B393FF            subd _comp_motor_spd
 8348  FD93F7            std _calc_2vl
 834B  FC9434            ldd _wave_period
 834E  B393F7            subd _calc_2vl
 8351  B393F4            subd _calc_1vl
 8354  FD93FA            std _calc_3vl
 8357  B69401            ldaa _first_motor
 835A  2612              bne is_mot_gtrc
 835C  8603              ldaa #0b00000011
 835E  B793F3            staa _calc_1ot
 8361  8602              ldaa #0b00000010
 8363  B793F6            staa _calc_2ot
 8366  8600              ldaa #0b00000000
 8368  B793F9            staa _calc_3ot
 836B  7E84DA            jmp calc_mot_fin
                       
 836E                  		is_mot_gtrc:
 836E  8603              ldaa #0b00000011
 8370  B793F3            staa _calc_1ot
 8373  8601              ldaa #0b00000001
 8375  B793F6            staa _calc_2ot
 8378  8600              ldaa #0b00000000
 837A  B793F9            staa _calc_3ot
 837D  7E84DA            jmp calc_mot_fin
 8380                  	clc_mot_gtr0:
 8380  FC93FD            ldd _new_motor_spd
 8383  FD93F4            std _calc_1vl
 8386  CC03E8            ldd #1000
 8389  FD93F7            std _calc_2vl
 838C  FC9434            ldd _wave_period
 838F  B393F7            subd _calc_2vl
 8392  B393F4            subd _calc_1vl
 8395  FD93FA            std _calc_3vl
 8398  B69401            ldaa _first_motor
 839B  2610              bne is_mot_gtrcc
 839D  8602              ldaa #0b00000010
 839F  B793F3            staa _calc_1ot
 83A2  8600              ldaa #0b00000000
 83A4  B793F9            staa _calc_3ot
 83A7  B793F6            staa _calc_2ot
 83AA  7E84DA            jmp calc_mot_fin
                       
 83AD                  		is_mot_gtrcc:
 83AD  8601              ldaa #0b00000001
 83AF  B793F3            staa _calc_1ot
 83B2  8600              ldaa #0b00000000
 83B4  B793F9            staa _calc_3ot
 83B7  B793F6            staa _calc_2ot
 83BA  7E84DA            jmp calc_mot_fin
 83BD                  	clc_mot_00:
 83BD  B69402            ldaa _same_motor
 83C0  2643              bne both_zero
 83C2  FC93FF            ldd _comp_motor_spd
 83C5  1AB39434          cpd _wave_period
 83C9  2760              beq clc_mot_0040
 83CB  FD93F4            std _calc_1vl
 83CE  CC03E8            ldd #1000
 83D1  FD93F7            std _calc_2vl
 83D4  FC9434            ldd _wave_period
 83D7  B393F7            subd _calc_2vl
 83DA  B393F4            subd _calc_1vl
 83DD  FD93FA            std _calc_3vl
 83E0  B69401            ldaa _first_motor
 83E3  2610              bne is_mot_00
 83E5  8601              ldaa #0b00000001
 83E7  B793F3            staa _calc_1ot
 83EA  8600              ldaa #0b00000000
 83EC  B793F9            staa _calc_3ot
 83EF  B793F6            staa _calc_2ot
 83F2  7E84DA            jmp calc_mot_fin
                       
 83F5                  		is_mot_00:
 83F5  8602              ldaa #0b00000010
 83F7  B793F3            staa _calc_1ot
 83FA  8600              ldaa #0b00000000
 83FC  B793F9            staa _calc_3ot
 83FF  B793F6            staa _calc_2ot
 8402  7E84DA            jmp calc_mot_fin
 8405                  	both_zero:
 8405  8600              ldaa #0b00000000
 8407  B793F3            staa _calc_1ot
 840A  B793F6            staa _calc_2ot
 840D  B793F9            staa _calc_3ot
 8410  CC03E8            ldd #1000
 8413  FD93F4            std _calc_1vl
 8416  CC03E8            ldd #1000
 8419  FD93F7            std _calc_2vl
 841C  FC9434            ldd _wave_period
 841F  B393F7            subd _calc_2vl
 8422  B393F4            subd _calc_1vl
 8425  FD93FA            std _calc_3vl
 8428  7E84DA            jmp calc_mot_fin
 842B                  	clc_mot_0040:
 842B  CC03E8            ldd #1000
 842E  FD93F4            std _calc_1vl
 8431  FD93F7            std _calc_2vl
 8434  FC9434            ldd _wave_period
 8437  B393F4            subd _calc_1vl
 843A  B393F7            subd _calc_2vl
 843D  FD93FA            std _calc_3vl
 8440  8602              ldaa #0b00000010
 8442  F69401            ldab _first_motor
 8445  2602              bne is_mot_0040
 8447  8601              ldaa #0b00000001
                       
 8449                  		is_mot_0040:
 8449  B793F3            staa _calc_1ot
 844C  B793F6            staa _calc_2ot
 844F  B793F9            staa _calc_3ot
 8452  7E84DA            jmp calc_mot_fin
 8455                  	clc_mot_40:
 8455  B69402            ldaa _same_motor
 8458  265A              bne both_40000
 845A  FC93FF            ldd _comp_motor_spd
 845D  1A830000          cpd #$0000
 8461  2603              bne clc_mot_40c
 8463  CC03E8            ldd #1000
 8466                  	clc_mot_40c:
 8466  FD93F4            std _calc_1vl
 8469  CC03E8            ldd #1000
 846C  FD93F7            std _calc_2vl
 846F  FC9434            ldd _wave_period
 8472  B393F7            subd _calc_2vl
 8475  B393F4            subd _calc_1vl
 8478  FD93FA            std _calc_3vl
 847B  B69401            ldaa _first_motor
 847E  261A              bne is_mot_40
 8480  8603              ldaa #0b00000011
 8482  FE93FF            ldx _comp_motor_spd
 8485  8C0000            cpx #$0000
 8488  2602              bne clc_mot_40cc
 848A  8602              ldaa #0b00000010
 848C                  	clc_mot_40cc:
 848C  B793F3            staa _calc_1ot
 848F  8602              ldaa #0b00000010
 8491  B793F9            staa _calc_3ot
 8494  B793F6            staa _calc_2ot
 8497  7E84DA            jmp calc_mot_fin
                       
 849A                  		is_mot_40:
 849A  8603              ldaa #0b00000011
 849C  FE93FF            ldx _comp_motor_spd
 849F  8C0000            cpx #$0000
 84A2  2602              bne is_mot_40c
 84A4  8601              ldaa #0b00000001
 84A6                  	is_mot_40c:
 84A6  B793F3            staa _calc_1ot
 84A9  8601              ldaa #0b00000001
 84AB  B793F9            staa _calc_3ot
 84AE  B793F6            staa _calc_2ot
 84B1  7E84DA            jmp calc_mot_fin
 84B4                  	both_40000:
 84B4  CC03E8            ldd #1000
 84B7  FD93F4            std _calc_1vl
 84BA  CC03E8            ldd #1000
 84BD  FD93F7            std _calc_2vl
 84C0  FC9434            ldd _wave_period
 84C3  B393F7            subd _calc_2vl
 84C6  B393F4            subd _calc_1vl
 84C9  FD93FA            std _calc_3vl
 84CC  8603              ldaa #0b00000011
 84CE  B793F3            staa _calc_1ot
 84D1  B793F6            staa _calc_2ot
 84D4  B793F9            staa _calc_3ot
 84D7  7E84DA            jmp calc_mot_fin
                       
 84DA                  		calc_mot_fin:
 84DA  18CE9426          ldy #_oc2_1ot
 84DE  B693FC            ldaa _new_motor_num
 84E1  8101              cmpa #$01
 84E3  2716              beq jmp_calc_motor_done
 84E5  8102              cmpa #$02
 84E7  2712              beq jmp_calc_motor_done
 84E9  8103              cmpa #$03
 84EB  2761              beq calc_motor_34
 84ED  8104              cmpa #$04
 84EF  275D              beq calc_motor_34
 84F1  8105              cmpa #$05
 84F3  2734              beq calc_motor_56
 84F5  8106              cmpa #$06
 84F7  2730              beq calc_motor_56
 84F9  2003              bra calc_motor_78
 84FB                  	jmp_calc_motor_done:
 84FB  7E856A            jmp calc_motor_done
                       
 84FE                  		calc_motor_78:
 84FE  B693F3            ldaa _calc_1ot
 8501  48                lsla
 8502  48                lsla
 8503  48                lsla
 8504  48                lsla
 8505  48                lsla
 8506  48                lsla
 8507  B793F3            staa _calc_1ot
 850A  B693F6            ldaa _calc_2ot
 850D  48                lsla
 850E  48                lsla
 850F  48                lsla
 8510  48                lsla
 8511  48                lsla
 8512  48                lsla
 8513  B793F6            staa _calc_2ot
 8516  B693F9            ldaa _calc_3ot
 8519  48                lsla
 851A  48                lsla
 851B  48                lsla
 851C  48                lsla
 851D  48                lsla
 851E  48                lsla
 851F  B793F9            staa _calc_3ot
 8522  18CE9405          ldy #_oc5_1ot
 8526  7E856A            jmp calc_motor_done
                       
 8529                  		calc_motor_56:
 8529  B693F3            ldaa _calc_1ot
 852C  48                lsla
 852D  48                lsla
 852E  48                lsla
 852F  48                lsla
 8530  B793F3            staa _calc_1ot
 8533  B693F6            ldaa _calc_2ot
 8536  48                lsla
 8537  48                lsla
 8538  48                lsla
 8539  48                lsla
 853A  B793F6            staa _calc_2ot
 853D  B693F9            ldaa _calc_3ot
 8540  48                lsla
 8541  48                lsla
 8542  48                lsla
 8543  48                lsla
 8544  B793F9            staa _calc_3ot
 8547  18CE9410          ldy #_oc4_1ot
 854B  7E856A            jmp calc_motor_done
                       
 854E                  		calc_motor_34:
 854E  B693F3            ldaa _calc_1ot
 8551  48                lsla
 8552  48                lsla
 8553  B793F3            staa _calc_1ot
 8556  B693F6            ldaa _calc_2ot
 8559  48                lsla
 855A  48                lsla
 855B  B793F6            staa _calc_2ot
 855E  B693F9            ldaa _calc_3ot
 8561  48                lsla
 8562  48                lsla
 8563  B793F9            staa _calc_3ot
 8566  18CE941B          ldy #_oc3_1ot
 856A                  	calc_motor_done:
 856A  CE93F3            ldx #_calc_1ot
 856D  A600              ldaa 0,x
 856F  18A700            staa 0,y
 8572  08                inx
 8573  1808              iny
 8575  EC00              ldd 0,x
 8577  18ED00            std 0,y
 857A  08                inx
 857B  08                inx
 857C  1808              iny
 857E  1808              iny
 8580  A600              ldaa 0,x
 8582  18A700            staa 0,y
 8585  08                inx
 8586  1808              iny
 8588  EC00              ldd 0,x
 858A  18ED00            std 0,y
 858D  08                inx
 858E  08                inx
 858F  1808              iny
 8591  1808              iny
 8593  A600              ldaa 0,x
 8595  18A700            staa 0,y
 8598  08                inx
 8599  1808              iny
 859B  EC00              ldd 0,x
 859D  18ED00            std 0,y
 85A0                  	multvlve_done:
 85A0  FE942F            ldx _x_preserve
                       
 85A3                    .dbline 644
                       ; 
                       ; 
                       ; asm("stx _x_preserve\n"
                       ;     "ldab _new_motor_num\n"
                       ;     "cmpb #$01\n"
                       ;     "bne is_motor_2\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor1\n"
                       ;     "ldx _motor2\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "ldab #$01\n"
                       ;     "stab _first_motor\n"
                       ;     "jmp calc_motor_times\n"
                       ; "is_motor_2:\n"
                       ;     "cmpb #$02\n"
                       ;     "bne is_motor_3\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor2\n"
                       ;     "ldx _motor1\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "clr _first_motor\n"
                       ;     "jmp calc_motor_times");
                       ; asm("is_motor_3:\n"
                       ;     "cmpb #$03\n"
                       ;     "bne is_motor_4\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor3\n"
                       ;     "ldx _motor4\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "ldab #$01\n"
                       ;     "stab _first_motor\n"
                       ;     "jmp calc_motor_times\n"
                       ; "is_motor_4:\n"
                       ;     "cmpb #$04\n"
                       ;     "bne is_motor_5\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor4\n"
                       ;     "ldx _motor3\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "clr _first_motor\n"
                       ;     "jmp calc_motor_times");
                       ; asm("is_motor_5:\n"
                       ;     "cmpb #$05\n"
                       ;     "bne is_motor_6\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor5\n"
                       ;     "ldx _motor6\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "ldab #$01\n"
                       ;     "stab _first_motor\n"
                       ;     "jmp calc_motor_times\n"
                       ; "is_motor_6:\n"
                       ;     "cmpb #$06\n"
                       ;     "bne is_motor_7\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor6\n"
                       ;     "ldx _motor5\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "clr _first_motor\n"
                       ;     "jmp calc_motor_times");
                       ; asm("is_motor_7:\n"
                       ;     "cmpb #$07\n"
                       ;     "bne is_motor_8\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor7\n"
                       ;     "ldx _motor8\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "ldab #$01\n"
                       ;     "stab _first_motor\n"
                       ;     "jmp calc_motor_times\n"
                       ; "is_motor_8:\n"
                       ;     "cmpb #$08\n"
                       ;     "bne end_routine\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "stx _motor8\n"
                       ;     "ldx _motor7\n"
                       ;     "stx _comp_motor_spd\n"
                       ;     "clr _first_motor\n"
                       ;     "bra calc_motor_times\n");
                       ; asm("end_routine:\n"
                       ;     "jmp multvlve_done\n"
                       ; "calc_motor_times:\n"
                       ;     "clr _same_motor\n"
                       ;     "ldx _new_motor_spd\n"
                       ;     "cpx _comp_motor_spd\n"
                       ;     "bne calc_motor_nequ\n"
                       ;     "ldaa #$01\n"
                       ;     "staa _same_motor\n"
                       ; "calc_motor_nequ:\n"
                       ;     "cpx _wave_period\n"
                       ;     "bne calc_mot_con1\n"
                       ;     "jmp clc_mot_40\n"
                       ; "calc_mot_con1:\n"
                       ;     "cpx #$0000\n"
                       ;     "bne calc_mot_con2\n"
                       ;     "jmp clc_mot_00");
                       ; asm("calc_mot_con2:\n"
                       ;     "ldaa _same_motor\n"
                       ;     "bne calc_motor_same\n"
                       ;     "cpx _comp_motor_spd\n"
                       ;     "bls clc_mot_les\n"
                       ;     "jmp clc_mot_gt\n"
                       ; "clc_mot_les:\n"
                       ;     "stx _calc_1vl\n"
                       ;     "ldd _comp_motor_spd\n"
                       ;     "subd _new_motor_spd\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "cpd _comp_motor_spd\n"
                       ;     "beq clc_mot_lesc\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "staa _calc_2ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("clc_mot_lesc:\n"
                       ;     "subd _new_motor_spd\n"
                       ;     "subd #1000\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldaa _first_motor\n"
                       ;     "bne is_mot_lessc\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000001\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "is_mot_lessc:\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("calc_motor_same:\n"
                       ;     "ldd _new_motor_spd\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #$00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("clc_mot_gt:\n"
                       ;     "ldd _comp_motor_spd\n"
                       ;     "cpd #$00\n"
                       ;     "beq clc_mot_gtr0\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd _new_motor_spd\n"
                       ;     "subd _comp_motor_spd\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa _first_motor\n"
                       ;     "bne is_mot_gtrc\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "staa _calc_2ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "jmp calc_mot_fin")
                       ; asm("is_mot_gtrc:\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000001\n"
                       ;     "staa _calc_2ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "clc_mot_gtr0:\n"
                       ;     "ldd _new_motor_spd\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa _first_motor\n"
                       ;     "bne is_mot_gtrcc\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("is_mot_gtrcc:\n"
                       ;     "ldaa #0b00000001\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "clc_mot_00:\n"
                       ;     "ldaa _same_motor\n"
                       ;     "bne both_zero\n"
                       ;     "ldd _comp_motor_spd\n"
                       ;     "cpd _wave_period\n"
                       ;     "beq clc_mot_0040\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa _first_motor\n"
                       ;     "bne is_mot_00\n"
                       ;     "ldaa #0b00000001\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("is_mot_00:\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "both_zero:\n"
                       ;     "ldaa #0b00000000\n"
                       ;     "staa _calc_1ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "staa _calc_3ot\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "clc_mot_0040:\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_1vl\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_1vl\n"
                       ;     "subd _calc_2vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "ldab _first_motor\n"
                       ;     "bne is_mot_0040\n"
                       ;     "ldaa #0b00000001");
                       ; asm("is_mot_0040:\n"
                       ;     "staa _calc_1ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "staa _calc_3ot\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "clc_mot_40:\n"
                       ;     "ldaa _same_motor\n"
                       ;     "bne both_40000\n"
                       ;     "ldd _comp_motor_spd\n"
                       ;     "cpd #$0000\n"
                       ;     "bne clc_mot_40c\n"
                       ;     "ldd #1000\n"
                       ; "clc_mot_40c:\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa _first_motor\n"
                       ;     "bne is_mot_40\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "ldx _comp_motor_spd\n"
                       ;     "cpx #$0000\n"
                       ;     "bne clc_mot_40cc\n"
                       ;     "ldaa #0b00000010\n"
                       ; "clc_mot_40cc:\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000010\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("is_mot_40:\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "ldx _comp_motor_spd\n"
                       ;     "cpx #$0000\n"
                       ;     "bne is_mot_40c\n"
                       ;     "ldaa #0b00000001\n"
                       ; "is_mot_40c:\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa #0b00000001\n"
                       ;     "staa _calc_3ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "jmp calc_mot_fin\n"
                       ; "both_40000:\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_1vl\n"
                       ;     "ldd #1000\n"
                       ;     "std _calc_2vl\n"
                       ;     "ldd _wave_period\n"
                       ;     "subd _calc_2vl\n"
                       ;     "subd _calc_1vl\n"
                       ;     "std _calc_3vl\n"
                       ;     "ldaa #0b00000011\n"
                       ;     "staa _calc_1ot\n"
                       ;     "staa _calc_2ot\n"
                       ;     "staa _calc_3ot\n"
                       ;     "jmp calc_mot_fin");
                       ; asm("calc_mot_fin:\n"
                       ;     "ldy #_oc2_1ot\n"
                       ;     "ldaa _new_motor_num\n"
                       ;     "cmpa #$01\n"
                       ;     "beq jmp_calc_motor_done\n"
                       ;     "cmpa #$02\n"
                       ;     "beq jmp_calc_motor_done\n"
                       ;     "cmpa #$03\n"
                       ;     "beq calc_motor_34\n"
                       ;     "cmpa #$04\n"
                       ;     "beq calc_motor_34\n"
                       ;     "cmpa #$05\n"
                       ;     "beq calc_motor_56\n"
                       ;     "cmpa #$06\n"
                       ;     "beq calc_motor_56\n"
                       ;     "bra calc_motor_78\n"
                       ; "jmp_calc_motor_done:\n"
                       ;     "jmp calc_motor_done");
                       ; asm("calc_motor_78:\n"
                       ;     "ldaa _calc_1ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa _calc_2ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_2ot\n"
                       ;     "ldaa _calc_3ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_3ot\n"
                       ;     "ldy #_oc5_1ot\n"
                       ;     "jmp calc_motor_done");
                       ; asm("calc_motor_56:\n"
                       ;     "ldaa _calc_1ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa _calc_2ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_2ot\n"
                       ;     "ldaa _calc_3ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_3ot\n"
                       ;     "ldy #_oc4_1ot\n"
                       ;     "jmp calc_motor_done");
                       ; asm("calc_motor_34:\n"
                       ;     "ldaa _calc_1ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_1ot\n"
                       ;     "ldaa _calc_2ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_2ot\n"
                       ;     "ldaa _calc_3ot\n"
                       ;     "lsla\n"
                       ;     "lsla\n"
                       ;     "staa _calc_3ot\n"
                       ;     "ldy #_oc3_1ot\n"
                       ; "calc_motor_done:\n"
                       ;     "ldx #_calc_1ot\n"
                       ;     "ldaa 0,x\n"
                       ;     "staa 0,y\n"
                       ;     "inx\n"
                       ;     "iny\n"
                       ;     "ldd 0,x\n"
                       ;     "std 0,y\n"
                       ;     "inx\n"
                       ;     "inx\n"
                       ;     "iny\n"
                       ;     "iny\n"
                       ;     "ldaa 0,x\n"
                       ;     "staa 0,y\n"
                       ;     "inx\n"
                       ;     "iny\n"
                       ;     "ldd 0,x\n"
                       ;     "std 0,y\n"
                       ;     "inx\n"
                       ;     "inx\n"
                       ;     "iny\n"
                       ;     "iny\n"
                       ;     "ldaa 0,x\n"
                       ;     "staa 0,y\n"
                       ;     "inx\n"
                       ;     "iny\n"
                       ;     "ldd 0,x\n"
                       ;     "std 0,y\n"
                       ; "multvlve_done:\n"
                       ;     "ldx _x_preserve");
                       ;     
                       ;     
                       ; }
 85A3                  L5:
 85A3  08                inx
 85A4  08                inx
 85A5  35                txs
 85A6  38                pulx
 85A7  1838              puly
 85A9  39                rts
                       ;  IX -> 0,x
                       ;          ?temp -> 2,x
                       ;          ?temp -> 4,x
                       ;          ?temp -> 6,x
                       ;          ?temp -> 8,x
                       ;          ?temp -> 10,x
                       ;          ?temp -> 12,x
                       ;          ?temp -> 14,x
                       ;          ?temp -> 16,x
                       ;          ?temp -> 18,x
                       ;          ?temp -> 20,x
                       ;          ?temp -> 22,x
                       ;          ?temp -> 24,x
                       ;          ?temp -> 26,x
                       ;          ?temp -> 28,x
                       ;          ?temp -> 30,x
                       ;          ?temp -> 32,x
                       ;     derivative -> 34,x
                       ;       integral -> 36,x
                       ;     proportion -> 38,x
                       ;       new_duty -> 40,x
 85AA                  _pid_controller::
 85AA  BD80A2            jsr __enterb
 85AD  2A                .byte 0x2a
 85AE                    .dbfunc pid_controller
 85AE                    .dbline 655
                       ; 
                       ; /********************************************************/
                       ; /*pid_controller()                                      */
                       ; /*function contains all the pid routines to update      */
                       ; /*the duty cycles                                       */
                       ; /*                                                      */
                       ; /********************************************************/
                       ; 
                       ; void pid_controller(void){
                       ; 
                       ;     int proportion = 0;
 85AE  CC0000            ldd #0
 85B1  ED26              std 38,x
 85B3                    .dbline 656
                       ;     int integral = 0;
 85B3  CC0000            ldd #0
 85B6  ED24              std 36,x
 85B8                    .dbline 657
                       ;     int derivative = 0;
 85B8  CC0000            ldd #0
 85BB  ED22              std 34,x
 85BD                    .dbline 658
                       ;     int new_duty = 0;
 85BD  CC0000            ldd #0
 85C0  ED28              std 40,x
 85C2                    .dbline 664
                       ; 
                       ;     
                       ;     //Run pid for cylinder 1
                       ;         
                       ;         //shift error values
                       ;         error1[2] = error1[1];
 85C2  FC9385            ldd _error1+2
 85C5  FD9387            std _error1+4
 85C8                    .dbline 665
                       ;         error1[1] = error1[0];
 85C8  FC9383            ldd _error1
 85CB  FD9385            std _error1+2
 85CE                    .dbline 666
                       ;         error1[0] = cyl1_des - cyl1_pstn;
 85CE  FC9373            ldd _cyl1_des
 85D1  B39363            subd _cyl1_pstn
 85D4  FD9383            std _error1
 85D7                    .dbline 669
                       ;     
                       ;         //range for tolerance
                       ;         if (error1[0] < TOLERANCE & error1[0] > 0 - TOLERANCE){
 85D7  FC9383            ldd _error1
 85DA  1A830004          cpd #4
 85DE  2C07              bge L14
 85E0  CC0001            ldd #1
 85E3  ED20              std 32,x
 85E5  2005              bra L15
 85E7                  L14:
 85E7  CC0000            ldd #0
 85EA  ED20              std 32,x
 85EC                  L15:
 85EC  FC9383            ldd _error1
 85EF  1A83FFFC          cpd #-4
 85F3  2F07              ble L16
 85F5  CC0001            ldd #1
 85F8  ED1E              std 30,x
 85FA  2005              bra L17
 85FC                  L16:
 85FC  CC0000            ldd #0
 85FF  ED1E              std 30,x
 8601                  L17:
 8601  EC20              ldd 32,x
 8603  A41E              anda 30,x
 8605  E41F              andb 31,x
 8607  1A830000          cpd #0
 860B  2715              beq L10
 860D                    .dbline 670
                       ;             error1[0] = 0; 
 860D  CC0000            ldd #0
 8610  FD9383            std _error1
 8613                    .dbline 671
                       ;             multvlve(0, 0x01);
 8613  CC0001            ldd #1
 8616  37                pshb
 8617  36                psha
 8618  CC0000            ldd #0
 861B  BD81AC            jsr _multvlve
 861E  1838              puly
 8620                    .dbline 672
                       ;         }
 8620  205E              bra L11
 8622                  L10:
 8622                    .dbline 676
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K1[P] * error1[0];
 8622  FC93B3            ldd _K1
 8625  18FE9383          ldy _error1
 8629  BD8069            jsr __muli
 862C  ED26              std 38,x
 862E                    .dbline 681
                       ;             //integral = K1[I];  
                       ;             //derivative = K1[D] * (error1[0] - error1[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 862E  EC26              ldd 38,x
 8630  E324              addd 36,x
 8632  E322              addd 34,x
 8634  ED28              std 40,x
 8636                    .dbline 684
                       ;         
                       ;         
                       ;             if (error1[0] < 0) {
 8636  FC9383            ldd _error1
 8639  2C0A              bge L18
 863B                    .dbline 685
                       ;                 DIR_PORT &= 0xFE;
 863B  18CE4000          ldy #0x4000
 863F  181D0001          bclr 0,y,#0x1
 8643                    .dbline 686
                       ;             }
 8643  2008              bra L19
 8645                  L18:
 8645                    .dbline 688
                       ;             else { 
                       ;                 DIR_PORT |= 0x01;
 8645  18CE4000          ldy #0x4000
 8649  181C0001          bset 0,y,#1
 864D                    .dbline 689
                       ;             }
 864D                  L19:
 864D                    .dbline 692
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 864D  EC28              ldd 40,x
 864F  2C09              bge L20
 8651  EC28                  ldd 40,x
 8653  830001            subd #1
 8656  43                coma
 8657  53                comb
 8658  ED28              std 40,x
                         
                       
 865A                    .dbline 698
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 865A                  L20:
 865A                    .dbline 700
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 865A  EC28              ldd 40,x
 865C  1A8300EC          cpd #236
 8660  2F05              ble L22
 8662                    .dbline 701
                       ;                     new_duty = 236;
 8662  CC00EC            ldd #236
 8665  ED28              std 40,x
 8667                    .dbline 702
                       ;                 }
 8667                  L22:
 8667                    .dbline 704
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 8667  EC28              ldd 40,x
 8669  05                lsld
 866A  C39185            addd #_pwm_vals
 866D  188F              xgdy
 866F  18EC00            ldd 0,y
 8672  ED28              std 40,x
 8674                    .dbline 707
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x01);
 8674  CC0001            ldd #1
 8677  37                pshb
 8678  36                psha
 8679  EC28              ldd 40,x
 867B  BD81AC            jsr _multvlve
 867E  1838              puly
 8680                    .dbline 709
                       ;         
                       ;         }
 8680                  L11:
 8680                    .dbline 714
                       ;         
                       ;           //Run pid for cylinder 2
                       ;         
                       ;         //shift error values
                       ;         error2[2] = error2[1];
 8680  FC938B            ldd _error2+2
 8683  FD938D            std _error2+4
 8686                    .dbline 715
                       ;         error2[1] = error2[0];
 8686  FC9389            ldd _error2
 8689  FD938B            std _error2+2
 868C                    .dbline 716
                       ;         error2[0] = cyl2_des - cyl2_pstn;
 868C  FC9375            ldd _cyl2_des
 868F  B39365            subd _cyl2_pstn
 8692  FD9389            std _error2
 8695                    .dbline 719
                       ;     
                       ;         //range for tolerance
                       ;         if (error2[0] < TOLERANCE & error2[0] > 0 - TOLERANCE){
 8695  FC9389            ldd _error2
 8698  1A830004          cpd #4
 869C  2C07              bge L31
 869E  CC0001            ldd #1
 86A1  ED1C              std 28,x
 86A3  2005              bra L32
 86A5                  L31:
 86A5  CC0000            ldd #0
 86A8  ED1C              std 28,x
 86AA                  L32:
 86AA  FC9389            ldd _error2
 86AD  1A83FFFC          cpd #-4
 86B1  2F07              ble L33
 86B3  CC0001            ldd #1
 86B6  ED1A              std 26,x
 86B8  2005              bra L34
 86BA                  L33:
 86BA  CC0000            ldd #0
 86BD  ED1A              std 26,x
 86BF                  L34:
 86BF  EC1C              ldd 28,x
 86C1  A41A              anda 26,x
 86C3  E41B              andb 27,x
 86C5  1A830000          cpd #0
 86C9  2715              beq L27
 86CB                    .dbline 720
                       ;             error2[0] = 0; 
 86CB  CC0000            ldd #0
 86CE  FD9389            std _error2
 86D1                    .dbline 721
                       ;             multvlve(0, 0x02);
 86D1  CC0002            ldd #2
 86D4  37                pshb
 86D5  36                psha
 86D6  CC0000            ldd #0
 86D9  BD81AC            jsr _multvlve
 86DC  1838              puly
 86DE                    .dbline 722
                       ;         }
 86DE  205E              bra L28
 86E0                  L27:
 86E0                    .dbline 726
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K2[P] * error2[0];
 86E0  FC93B9            ldd _K2
 86E3  18FE9389          ldy _error2
 86E7  BD8069            jsr __muli
 86EA  ED26              std 38,x
 86EC                    .dbline 731
                       ;             //integral = K2[I];  
                       ;             //derivative = K2[D] * (error2[0] - error2[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 86EC  EC26              ldd 38,x
 86EE  E324              addd 36,x
 86F0  E322              addd 34,x
 86F2  ED28              std 40,x
 86F4                    .dbline 734
                       ;         
                       ;         
                       ;             if (error2[0] < 0) {
 86F4  FC9389            ldd _error2
 86F7  2C0A              bge L35
 86F9                    .dbline 735
                       ;                 DIR_PORT &= 0xFD;
 86F9  18CE4000          ldy #0x4000
 86FD  181D0002          bclr 0,y,#0x2
 8701                    .dbline 736
                       ;             }
 8701  2008              bra L36
 8703                  L35:
 8703                    .dbline 738
                       ;             else { 
                       ;                 DIR_PORT |= 0x02;
 8703  18CE4000          ldy #0x4000
 8707  181C0002          bset 0,y,#2
 870B                    .dbline 739
                       ;             }
 870B                  L36:
 870B                    .dbline 742
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 870B  EC28              ldd 40,x
 870D  2C09              bge L37
 870F  EC28                  ldd 40,x
 8711  830001            subd #1
 8714  43                coma
 8715  53                comb
 8716  ED28              std 40,x
                         
                       
 8718                    .dbline 748
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 8718                  L37:
 8718                    .dbline 750
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 8718  EC28              ldd 40,x
 871A  1A8300EC          cpd #236
 871E  2F05              ble L39
 8720                    .dbline 751
                       ;                     new_duty = 236;
 8720  CC00EC            ldd #236
 8723  ED28              std 40,x
 8725                    .dbline 752
                       ;                 }
 8725                  L39:
 8725                    .dbline 754
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 8725  EC28              ldd 40,x
 8727  05                lsld
 8728  C39185            addd #_pwm_vals
 872B  188F              xgdy
 872D  18EC00            ldd 0,y
 8730  ED28              std 40,x
 8732                    .dbline 757
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x02);
 8732  CC0002            ldd #2
 8735  37                pshb
 8736  36                psha
 8737  EC28              ldd 40,x
 8739  BD81AC            jsr _multvlve
 873C  1838              puly
 873E                    .dbline 759
                       ;         
                       ;         }       
 873E                  L28:
 873E                    .dbline 765
                       ; 
                       ; 
                       ;          //Run pid for cylinder 3
                       ;         
                       ;         //shift error values
                       ;         error3[2] = error3[1];
 873E  FC9391            ldd _error3+2
 8741  FD9393            std _error3+4
 8744                    .dbline 766
                       ;         error3[1] = error3[0];
 8744  FC938F            ldd _error3
 8747  FD9391            std _error3+2
 874A                    .dbline 767
                       ;         error3[0] = cyl3_des - cyl3_pstn;
 874A  FC9377            ldd _cyl3_des
 874D  B39367            subd _cyl3_pstn
 8750  FD938F            std _error3
 8753                    .dbline 770
                       ;     
                       ;         //range for tolerance
                       ;         if (error3[0] < TOLERANCE & error3[0] > 0 - TOLERANCE){
 8753  FC938F            ldd _error3
 8756  1A830004          cpd #4
 875A  2C07              bge L48
 875C  CC0001            ldd #1
 875F  ED18              std 24,x
 8761  2005              bra L49
 8763                  L48:
 8763  CC0000            ldd #0
 8766  ED18              std 24,x
 8768                  L49:
 8768  FC938F            ldd _error3
 876B  1A83FFFC          cpd #-4
 876F  2F07              ble L50
 8771  CC0001            ldd #1
 8774  ED16              std 22,x
 8776  2005              bra L51
 8778                  L50:
 8778  CC0000            ldd #0
 877B  ED16              std 22,x
 877D                  L51:
 877D  EC18              ldd 24,x
 877F  A416              anda 22,x
 8781  E417              andb 23,x
 8783  1A830000          cpd #0
 8787  2715              beq L44
 8789                    .dbline 771
                       ;             error3[0] = 0; 
 8789  CC0000            ldd #0
 878C  FD938F            std _error3
 878F                    .dbline 772
                       ;             multvlve(0, 0x03);
 878F  CC0003            ldd #3
 8792  37                pshb
 8793  36                psha
 8794  CC0000            ldd #0
 8797  BD81AC            jsr _multvlve
 879A  1838              puly
 879C                    .dbline 773
                       ;         }
 879C  205E              bra L45
 879E                  L44:
 879E                    .dbline 777
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K3[P] * error3[0];
 879E  FC93BF            ldd _K3
 87A1  18FE938F          ldy _error3
 87A5  BD8069            jsr __muli
 87A8  ED26              std 38,x
 87AA                    .dbline 782
                       ;             //integral = K3[I];  
                       ;             //derivative = K3[D] * (error3[0] - error3[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 87AA  EC26              ldd 38,x
 87AC  E324              addd 36,x
 87AE  E322              addd 34,x
 87B0  ED28              std 40,x
 87B2                    .dbline 785
                       ;         
                       ;         
                       ;             if (error3[0] < 0) {
 87B2  FC938F            ldd _error3
 87B5  2C0A              bge L52
 87B7                    .dbline 786
                       ;                 DIR_PORT &= 0xFB;
 87B7  18CE4000          ldy #0x4000
 87BB  181D0004          bclr 0,y,#0x4
 87BF                    .dbline 787
                       ;             }
 87BF  2008              bra L53
 87C1                  L52:
 87C1                    .dbline 789
                       ;             else { 
                       ;                 DIR_PORT |= 0x04;
 87C1  18CE4000          ldy #0x4000
 87C5  181C0004          bset 0,y,#4
 87C9                    .dbline 790
                       ;             }
 87C9                  L53:
 87C9                    .dbline 793
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 87C9  EC28              ldd 40,x
 87CB  2C09              bge L54
 87CD  EC28                  ldd 40,x
 87CF  830001            subd #1
 87D2  43                coma
 87D3  53                comb
 87D4  ED28              std 40,x
                         
                       
 87D6                    .dbline 799
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 87D6                  L54:
 87D6                    .dbline 801
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 87D6  EC28              ldd 40,x
 87D8  1A8300EC          cpd #236
 87DC  2F05              ble L56
 87DE                    .dbline 802
                       ;                     new_duty = 236;
 87DE  CC00EC            ldd #236
 87E1  ED28              std 40,x
 87E3                    .dbline 803
                       ;                 }
 87E3                  L56:
 87E3                    .dbline 805
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 87E3  EC28              ldd 40,x
 87E5  05                lsld
 87E6  C39185            addd #_pwm_vals
 87E9  188F              xgdy
 87EB  18EC00            ldd 0,y
 87EE  ED28              std 40,x
 87F0                    .dbline 808
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x03);
 87F0  CC0003            ldd #3
 87F3  37                pshb
 87F4  36                psha
 87F5  EC28              ldd 40,x
 87F7  BD81AC            jsr _multvlve
 87FA  1838              puly
 87FC                    .dbline 810
                       ;         
                       ;         }       
 87FC                  L45:
 87FC                    .dbline 817
                       ; 
                       ; 
                       ; 
                       ;         //Run pid for cylinder 4
                       ;         
                       ;         //shift error values
                       ;         error4[2] = error4[1];
 87FC  FC9397            ldd _error4+2
 87FF  FD9399            std _error4+4
 8802                    .dbline 818
                       ;         error4[1] = error4[0];
 8802  FC9395            ldd _error4
 8805  FD9397            std _error4+2
 8808                    .dbline 819
                       ;         error4[0] = cyl4_des - cyl4_pstn;
 8808  FC9379            ldd _cyl4_des
 880B  B39369            subd _cyl4_pstn
 880E  FD9395            std _error4
 8811                    .dbline 822
                       ;     
                       ;         //range for tolerance
                       ;         if (error4[0] < TOLERANCE & error4[0] > 0 - TOLERANCE){
 8811  FC9395            ldd _error4
 8814  1A830004          cpd #4
 8818  2C07              bge L65
 881A  CC0001            ldd #1
 881D  ED14              std 20,x
 881F  2005              bra L66
 8821                  L65:
 8821  CC0000            ldd #0
 8824  ED14              std 20,x
 8826                  L66:
 8826  FC9395            ldd _error4
 8829  1A83FFFC          cpd #-4
 882D  2F07              ble L67
 882F  CC0001            ldd #1
 8832  ED12              std 18,x
 8834  2005              bra L68
 8836                  L67:
 8836  CC0000            ldd #0
 8839  ED12              std 18,x
 883B                  L68:
 883B  EC14              ldd 20,x
 883D  A412              anda 18,x
 883F  E413              andb 19,x
 8841  1A830000          cpd #0
 8845  2715              beq L61
 8847                    .dbline 823
                       ;             error4[0] = 0; 
 8847  CC0000            ldd #0
 884A  FD9395            std _error4
 884D                    .dbline 824
                       ;             multvlve(0, 0x04);
 884D  CC0004            ldd #4
 8850  37                pshb
 8851  36                psha
 8852  CC0000            ldd #0
 8855  BD81AC            jsr _multvlve
 8858  1838              puly
 885A                    .dbline 825
                       ;         }
 885A  205E              bra L62
 885C                  L61:
 885C                    .dbline 829
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K4[P] * error4[0];
 885C  FC93C5            ldd _K4
 885F  18FE9395          ldy _error4
 8863  BD8069            jsr __muli
 8866  ED26              std 38,x
 8868                    .dbline 834
                       ;             //integral = K4[I];  
                       ;             //derivative = K4[D] * (error4[0] - error4[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 8868  EC26              ldd 38,x
 886A  E324              addd 36,x
 886C  E322              addd 34,x
 886E  ED28              std 40,x
 8870                    .dbline 837
                       ;         
                       ;         
                       ;             if (error4[0] < 0) {
 8870  FC9395            ldd _error4
 8873  2C0A              bge L69
 8875                    .dbline 838
                       ;                 DIR_PORT &= 0xF7;
 8875  18CE4000          ldy #0x4000
 8879  181D0008          bclr 0,y,#0x8
 887D                    .dbline 839
                       ;             }
 887D  2008              bra L70
 887F                  L69:
 887F                    .dbline 841
                       ;             else { 
                       ;                 DIR_PORT |= 0x08;
 887F  18CE4000          ldy #0x4000
 8883  181C0008          bset 0,y,#8
 8887                    .dbline 842
                       ;             }
 8887                  L70:
 8887                    .dbline 845
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 8887  EC28              ldd 40,x
 8889  2C09              bge L71
 888B  EC28                  ldd 40,x
 888D  830001            subd #1
 8890  43                coma
 8891  53                comb
 8892  ED28              std 40,x
                         
                       
 8894                    .dbline 851
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 8894                  L71:
 8894                    .dbline 853
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 8894  EC28              ldd 40,x
 8896  1A8300EC          cpd #236
 889A  2F05              ble L73
 889C                    .dbline 854
                       ;                     new_duty = 236;
 889C  CC00EC            ldd #236
 889F  ED28              std 40,x
 88A1                    .dbline 855
                       ;                 }
 88A1                  L73:
 88A1                    .dbline 857
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 88A1  EC28              ldd 40,x
 88A3  05                lsld
 88A4  C39185            addd #_pwm_vals
 88A7  188F              xgdy
 88A9  18EC00            ldd 0,y
 88AC  ED28              std 40,x
 88AE                    .dbline 860
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x04);
 88AE  CC0004            ldd #4
 88B1  37                pshb
 88B2  36                psha
 88B3  EC28              ldd 40,x
 88B5  BD81AC            jsr _multvlve
 88B8  1838              puly
 88BA                    .dbline 862
                       ;         
                       ;         }       
 88BA                  L62:
 88BA                    .dbline 868
                       ; 
                       ; 
                       ;         //Run pid for cylinder 5
                       ;         
                       ;         //shift error values
                       ;         error5[2] = error5[1];
 88BA  FC939D            ldd _error5+2
 88BD  FD939F            std _error5+4
 88C0                    .dbline 869
                       ;         error5[1] = error5[0];
 88C0  FC939B            ldd _error5
 88C3  FD939D            std _error5+2
 88C6                    .dbline 870
                       ;         error5[0] = cyl5_des - cyl5_pstn;
 88C6  FC937B            ldd _cyl5_des
 88C9  B3936B            subd _cyl5_pstn
 88CC  FD939B            std _error5
 88CF                    .dbline 873
                       ;     
                       ;         //range for tolerance
                       ;         if (error5[0] < TOLERANCE & error5[0] > 0 - TOLERANCE){
 88CF  FC939B            ldd _error5
 88D2  1A830004          cpd #4
 88D6  2C07              bge L82
 88D8  CC0001            ldd #1
 88DB  ED10              std 16,x
 88DD  2005              bra L83
 88DF                  L82:
 88DF  CC0000            ldd #0
 88E2  ED10              std 16,x
 88E4                  L83:
 88E4  FC939B            ldd _error5
 88E7  1A83FFFC          cpd #-4
 88EB  2F07              ble L84
 88ED  CC0001            ldd #1
 88F0  ED0E              std 14,x
 88F2  2005              bra L85
 88F4                  L84:
 88F4  CC0000            ldd #0
 88F7  ED0E              std 14,x
 88F9                  L85:
 88F9  EC10              ldd 16,x
 88FB  A40E              anda 14,x
 88FD  E40F              andb 15,x
 88FF  1A830000          cpd #0
 8903  2715              beq L78
 8905                    .dbline 874
                       ;             error5[0] = 0; 
 8905  CC0000            ldd #0
 8908  FD939B            std _error5
 890B                    .dbline 875
                       ;             multvlve(0, 0x05);
 890B  CC0005            ldd #5
 890E  37                pshb
 890F  36                psha
 8910  CC0000            ldd #0
 8913  BD81AC            jsr _multvlve
 8916  1838              puly
 8918                    .dbline 876
                       ;         }
 8918  205E              bra L79
 891A                  L78:
 891A                    .dbline 880
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K5[P] * error5[0];
 891A  FC93CB            ldd _K5
 891D  18FE939B          ldy _error5
 8921  BD8069            jsr __muli
 8924  ED26              std 38,x
 8926                    .dbline 885
                       ;             //integral = K5[I];  
                       ;             //derivative = K5[D] * (error5[0] - error5[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 8926  EC26              ldd 38,x
 8928  E324              addd 36,x
 892A  E322              addd 34,x
 892C  ED28              std 40,x
 892E                    .dbline 888
                       ;         
                       ;         
                       ;             if (error5[0] < 0) {
 892E  FC939B            ldd _error5
 8931  2C0A              bge L86
 8933                    .dbline 889
                       ;                 DIR_PORT &= 0xEF;
 8933  18CE4000          ldy #0x4000
 8937  181D0010          bclr 0,y,#0x10
 893B                    .dbline 890
                       ;             }
 893B  2008              bra L87
 893D                  L86:
 893D                    .dbline 892
                       ;             else { 
                       ;                 DIR_PORT |= 0x10;
 893D  18CE4000          ldy #0x4000
 8941  181C0010          bset 0,y,#16
 8945                    .dbline 893
                       ;             }
 8945                  L87:
 8945                    .dbline 896
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 8945  EC28              ldd 40,x
 8947  2C09              bge L88
 8949  EC28                  ldd 40,x
 894B  830001            subd #1
 894E  43                coma
 894F  53                comb
 8950  ED28              std 40,x
                         
                       
 8952                    .dbline 902
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 8952                  L88:
 8952                    .dbline 904
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 8952  EC28              ldd 40,x
 8954  1A8300EC          cpd #236
 8958  2F05              ble L90
 895A                    .dbline 905
                       ;                     new_duty = 236;
 895A  CC00EC            ldd #236
 895D  ED28              std 40,x
 895F                    .dbline 906
                       ;                 }
 895F                  L90:
 895F                    .dbline 908
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 895F  EC28              ldd 40,x
 8961  05                lsld
 8962  C39185            addd #_pwm_vals
 8965  188F              xgdy
 8967  18EC00            ldd 0,y
 896A  ED28              std 40,x
 896C                    .dbline 911
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x05);
 896C  CC0005            ldd #5
 896F  37                pshb
 8970  36                psha
 8971  EC28              ldd 40,x
 8973  BD81AC            jsr _multvlve
 8976  1838              puly
 8978                    .dbline 913
                       ;         
                       ;         }       
 8978                  L79:
 8978                    .dbline 919
                       ; 
                       ; 
                       ;         //Run pid for cylinder 6
                       ;         
                       ;         //shift error values
                       ;         error6[2] = error6[1];
 8978  FC93A3            ldd _error6+2
 897B  FD93A5            std _error6+4
 897E                    .dbline 920
                       ;         error6[1] = error6[0];
 897E  FC93A1            ldd _error6
 8981  FD93A3            std _error6+2
 8984                    .dbline 921
                       ;         error6[0] = cyl6_des - cyl6_pstn;
 8984  FC937D            ldd _cyl6_des
 8987  B3936D            subd _cyl6_pstn
 898A  FD93A1            std _error6
 898D                    .dbline 924
                       ;     
                       ;         //range for tolerance
                       ;         if (error6[0] < TOLERANCE & error6[0] > 0 - TOLERANCE){
 898D  FC93A1            ldd _error6
 8990  1A830004          cpd #4
 8994  2C07              bge L99
 8996  CC0001            ldd #1
 8999  ED0C              std 12,x
 899B  2005              bra L100
 899D                  L99:
 899D  CC0000            ldd #0
 89A0  ED0C              std 12,x
 89A2                  L100:
 89A2  FC93A1            ldd _error6
 89A5  1A83FFFC          cpd #-4
 89A9  2F07              ble L101
 89AB  CC0001            ldd #1
 89AE  ED0A              std 10,x
 89B0  2005              bra L102
 89B2                  L101:
 89B2  CC0000            ldd #0
 89B5  ED0A              std 10,x
 89B7                  L102:
 89B7  EC0C              ldd 12,x
 89B9  A40A              anda 10,x
 89BB  E40B              andb 11,x
 89BD  1A830000          cpd #0
 89C1  2715              beq L95
 89C3                    .dbline 925
                       ;             error6[0] = 0; 
 89C3  CC0000            ldd #0
 89C6  FD93A1            std _error6
 89C9                    .dbline 926
                       ;             multvlve(0, 0x06);
 89C9  CC0006            ldd #6
 89CC  37                pshb
 89CD  36                psha
 89CE  CC0000            ldd #0
 89D1  BD81AC            jsr _multvlve
 89D4  1838              puly
 89D6                    .dbline 927
                       ;         }
 89D6  205E              bra L96
 89D8                  L95:
 89D8                    .dbline 931
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K6[P] * error6[0];
 89D8  FC93D1            ldd _K6
 89DB  18FE93A1          ldy _error6
 89DF  BD8069            jsr __muli
 89E2  ED26              std 38,x
 89E4                    .dbline 936
                       ;             //integral = K6[I];  
                       ;             //derivative = K6[D] * (error6[0] - error6[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 89E4  EC26              ldd 38,x
 89E6  E324              addd 36,x
 89E8  E322              addd 34,x
 89EA  ED28              std 40,x
 89EC                    .dbline 939
                       ;         
                       ;         
                       ;             if (error6[0] < 0) {
 89EC  FC93A1            ldd _error6
 89EF  2C0A              bge L103
 89F1                    .dbline 940
                       ;                 DIR_PORT &= 0xDF;
 89F1  18CE4000          ldy #0x4000
 89F5  181D0020          bclr 0,y,#0x20
 89F9                    .dbline 941
                       ;             }
 89F9  2008              bra L104
 89FB                  L103:
 89FB                    .dbline 943
                       ;             else { 
                       ;                 DIR_PORT |= 0x20;
 89FB  18CE4000          ldy #0x4000
 89FF  181C0020          bset 0,y,#32
 8A03                    .dbline 944
                       ;             }
 8A03                  L104:
 8A03                    .dbline 947
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 8A03  EC28              ldd 40,x
 8A05  2C09              bge L105
 8A07  EC28                  ldd 40,x
 8A09  830001            subd #1
 8A0C  43                coma
 8A0D  53                comb
 8A0E  ED28              std 40,x
                         
                       
 8A10                    .dbline 953
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 8A10                  L105:
 8A10                    .dbline 955
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 8A10  EC28              ldd 40,x
 8A12  1A8300EC          cpd #236
 8A16  2F05              ble L107
 8A18                    .dbline 956
                       ;                     new_duty = 236;
 8A18  CC00EC            ldd #236
 8A1B  ED28              std 40,x
 8A1D                    .dbline 957
                       ;                 }
 8A1D                  L107:
 8A1D                    .dbline 959
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 8A1D  EC28              ldd 40,x
 8A1F  05                lsld
 8A20  C39185            addd #_pwm_vals
 8A23  188F              xgdy
 8A25  18EC00            ldd 0,y
 8A28  ED28              std 40,x
 8A2A                    .dbline 962
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x06);
 8A2A  CC0006            ldd #6
 8A2D  37                pshb
 8A2E  36                psha
 8A2F  EC28              ldd 40,x
 8A31  BD81AC            jsr _multvlve
 8A34  1838              puly
 8A36                    .dbline 964
                       ;         
                       ;         }       
 8A36                  L96:
 8A36                    .dbline 971
                       ; 
                       ; 
                       ; 
                       ;         //Run pid for cylinder 7
                       ;         
                       ;         //shift error values
                       ;         error7[2] = error7[1];
 8A36  FC93A9            ldd _error7+2
 8A39  FD93AB            std _error7+4
 8A3C                    .dbline 972
                       ;         error7[1] = error7[0];
 8A3C  FC93A7            ldd _error7
 8A3F  FD93A9            std _error7+2
 8A42                    .dbline 973
                       ;         error7[0] = cyl7_des - cyl7_pstn;
 8A42  FC937F            ldd _cyl7_des
 8A45  B3936F            subd _cyl7_pstn
 8A48  FD93A7            std _error7
 8A4B                    .dbline 976
                       ;     
                       ;         //range for tolerance
                       ;         if (error7[0] < TOLERANCE & error7[0] > 0 - TOLERANCE){
 8A4B  FC93A7            ldd _error7
 8A4E  1A830004          cpd #4
 8A52  2C07              bge L116
 8A54  CC0001            ldd #1
 8A57  ED08              std 8,x
 8A59  2005              bra L117
 8A5B                  L116:
 8A5B  CC0000            ldd #0
 8A5E  ED08              std 8,x
 8A60                  L117:
 8A60  FC93A7            ldd _error7
 8A63  1A83FFFC          cpd #-4
 8A67  2F07              ble L118
 8A69  CC0001            ldd #1
 8A6C  ED06              std 6,x
 8A6E  2005              bra L119
 8A70                  L118:
 8A70  CC0000            ldd #0
 8A73  ED06              std 6,x
 8A75                  L119:
 8A75  EC08              ldd 8,x
 8A77  A406              anda 6,x
 8A79  E407              andb 7,x
 8A7B  1A830000          cpd #0
 8A7F  2715              beq L112
 8A81                    .dbline 977
                       ;             error7[0] = 0; 
 8A81  CC0000            ldd #0
 8A84  FD93A7            std _error7
 8A87                    .dbline 978
                       ;             multvlve(0, 0x07);
 8A87  CC0007            ldd #7
 8A8A  37                pshb
 8A8B  36                psha
 8A8C  CC0000            ldd #0
 8A8F  BD81AC            jsr _multvlve
 8A92  1838              puly
 8A94                    .dbline 979
                       ;         }
 8A94  205E              bra L113
 8A96                  L112:
 8A96                    .dbline 983
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K7[P] * error7[0];
 8A96  FC93D7            ldd _K7
 8A99  18FE93A7          ldy _error7
 8A9D  BD8069            jsr __muli
 8AA0  ED26              std 38,x
 8AA2                    .dbline 988
                       ;             //integral = K7[I];  
                       ;             //derivative = K7[D] * (error7[0] - error7[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 8AA2  EC26              ldd 38,x
 8AA4  E324              addd 36,x
 8AA6  E322              addd 34,x
 8AA8  ED28              std 40,x
 8AAA                    .dbline 991
                       ;         
                       ;         
                       ;             if (error7[0] < 0) {
 8AAA  FC93A7            ldd _error7
 8AAD  2C0A              bge L120
 8AAF                    .dbline 992
                       ;                 DIR_PORT &= 0xBF;
 8AAF  18CE4000          ldy #0x4000
 8AB3  181D0040          bclr 0,y,#0x40
 8AB7                    .dbline 993
                       ;             }
 8AB7  2008              bra L121
 8AB9                  L120:
 8AB9                    .dbline 995
                       ;             else { 
                       ;                 DIR_PORT |= 0x40;
 8AB9  18CE4000          ldy #0x4000
 8ABD  181C0040          bset 0,y,#64
 8AC1                    .dbline 996
                       ;             }
 8AC1                  L121:
 8AC1                    .dbline 999
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 8AC1  EC28              ldd 40,x
 8AC3  2C09              bge L122
 8AC5  EC28                  ldd 40,x
 8AC7  830001            subd #1
 8ACA  43                coma
 8ACB  53                comb
 8ACC  ED28              std 40,x
                         
                       
 8ACE                    .dbline 1005
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 8ACE                  L122:
 8ACE                    .dbline 1007
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 8ACE  EC28              ldd 40,x
 8AD0  1A8300EC          cpd #236
 8AD4  2F05              ble L124
 8AD6                    .dbline 1008
                       ;                     new_duty = 236;
 8AD6  CC00EC            ldd #236
 8AD9  ED28              std 40,x
 8ADB                    .dbline 1009
                       ;                 }
 8ADB                  L124:
 8ADB                    .dbline 1011
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 8ADB  EC28              ldd 40,x
 8ADD  05                lsld
 8ADE  C39185            addd #_pwm_vals
 8AE1  188F              xgdy
 8AE3  18EC00            ldd 0,y
 8AE6  ED28              std 40,x
 8AE8                    .dbline 1014
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x07);
 8AE8  CC0007            ldd #7
 8AEB  37                pshb
 8AEC  36                psha
 8AED  EC28              ldd 40,x
 8AEF  BD81AC            jsr _multvlve
 8AF2  1838              puly
 8AF4                    .dbline 1016
                       ;         
                       ;         }       
 8AF4                  L113:
 8AF4                    .dbline 1023
                       ; 
                       ; 
                       ; 
                       ;         //Run pid for cylinder 8
                       ;         
                       ;         //shift error values
                       ;         error8[2] = error8[1];
 8AF4  FC93AF            ldd _error8+2
 8AF7  FD93B1            std _error8+4
 8AFA                    .dbline 1024
                       ;         error8[1] = error8[0];
 8AFA  FC93AD            ldd _error8
 8AFD  FD93AF            std _error8+2
 8B00                    .dbline 1025
                       ;         error8[0] = cyl8_des - cyl8_pstn;
 8B00  FC9381            ldd _cyl8_des
 8B03  B39371            subd _cyl8_pstn
 8B06  FD93AD            std _error8
 8B09                    .dbline 1028
                       ;     
                       ;         //range for tolerance
                       ;         if (error8[0] < TOLERANCE & error8[0] > 0 - TOLERANCE){
 8B09  FC93AD            ldd _error8
 8B0C  1A830004          cpd #4
 8B10  2C07              bge L133
 8B12  CC0001            ldd #1
 8B15  ED04              std 4,x
 8B17  2005              bra L134
 8B19                  L133:
 8B19  CC0000            ldd #0
 8B1C  ED04              std 4,x
 8B1E                  L134:
 8B1E  FC93AD            ldd _error8
 8B21  1A83FFFC          cpd #-4
 8B25  2F07              ble L135
 8B27  CC0001            ldd #1
 8B2A  ED02              std 2,x
 8B2C  2005              bra L136
 8B2E                  L135:
 8B2E  CC0000            ldd #0
 8B31  ED02              std 2,x
 8B33                  L136:
 8B33  EC04              ldd 4,x
 8B35  A402              anda 2,x
 8B37  E403              andb 3,x
 8B39  1A830000          cpd #0
 8B3D  2715              beq L129
 8B3F                    .dbline 1029
                       ;             error8[0] = 0; 
 8B3F  CC0000            ldd #0
 8B42  FD93AD            std _error8
 8B45                    .dbline 1030
                       ;             multvlve(0, 0x08);
 8B45  CC0008            ldd #8
 8B48  37                pshb
 8B49  36                psha
 8B4A  CC0000            ldd #0
 8B4D  BD81AC            jsr _multvlve
 8B50  1838              puly
 8B52                    .dbline 1031
                       ;         }
 8B52  205E              bra L130
 8B54                  L129:
 8B54                    .dbline 1035
                       ;         else { //run pid
                       ;     
                       ;             //calc gains
                       ;             proportion = K8[P] * error8[0];
 8B54  FC93DD            ldd _K8
 8B57  18FE93AD          ldy _error8
 8B5B  BD8069            jsr __muli
 8B5E  ED26              std 38,x
 8B60                    .dbline 1040
                       ;             //integral = K8[I];  
                       ;             //derivative = K8[D] * (error8[0] - error8[1]);
                       ;         
                       ;             //calc new raw value
                       ;             new_duty = proportion + integral + derivative;
 8B60  EC26              ldd 38,x
 8B62  E324              addd 36,x
 8B64  E322              addd 34,x
 8B66  ED28              std 40,x
 8B68                    .dbline 1043
                       ;         
                       ;         
                       ;             if (error8[0] < 0) {
 8B68  FC93AD            ldd _error8
 8B6B  2C0A              bge L137
 8B6D                    .dbline 1044
                       ;                 DIR_PORT &= 0x7F;
 8B6D  18CE4000          ldy #0x4000
 8B71  181D0080          bclr 0,y,#0x80
 8B75                    .dbline 1045
                       ;             }
 8B75  2008              bra L138
 8B77                  L137:
 8B77                    .dbline 1047
                       ;             else { 
                       ;                 DIR_PORT |= 0x80;
 8B77  18CE4000          ldy #0x4000
 8B7B  181C0080          bset 0,y,#128
 8B7F                    .dbline 1048
                       ;             }
 8B7F                  L138:
 8B7F                    .dbline 1051
                       ;             
                       ;             //take absolute value of new_duty
                       ;             if (new_duty < 0){
 8B7F  EC28              ldd 40,x
 8B81  2C09              bge L139
 8B83  EC28                  ldd 40,x
 8B85  830001            subd #1
 8B88  43                coma
 8B89  53                comb
 8B8A  ED28              std 40,x
                         
                       
 8B8C                    .dbline 1057
                       ;                 asm("ldd %new_duty\n"
                       ;                     "subd #1\n"
                       ;                     "coma\n"
                       ;                     "comb\n"
                       ;                     "std %new_duty\n");
                       ;             }
 8B8C                  L139:
 8B8C                    .dbline 1059
                       ;             //range new_duty to max value
                       ;             if (new_duty > 236){
 8B8C  EC28              ldd 40,x
 8B8E  1A8300EC          cpd #236
 8B92  2F05              ble L141
 8B94                    .dbline 1060
                       ;                     new_duty = 236;
 8B94  CC00EC            ldd #236
 8B97  ED28              std 40,x
 8B99                    .dbline 1061
                       ;                 }
 8B99                  L141:
 8B99                    .dbline 1063
                       ;         
                       ;             new_duty = pwm_vals[new_duty];
 8B99  EC28              ldd 40,x
 8B9B  05                lsld
 8B9C  C39185            addd #_pwm_vals
 8B9F  188F              xgdy
 8BA1  18EC00            ldd 0,y
 8BA4  ED28              std 40,x
 8BA6                    .dbline 1066
                       ;             
                       ;         
                       ;             multvlve(new_duty, 0x08);
 8BA6  CC0008            ldd #8
 8BA9  37                pshb
 8BAA  36                psha
 8BAB  EC28              ldd 40,x
 8BAD  BD81AC            jsr _multvlve
 8BB0  1838              puly
 8BB2                    .dbline 1068
                       ;         
                       ;         }       
 8BB2                  L130:
 8BB2                    .dbline 1073
                       ; 
                       ; 
                       ; 
                       ;     
                       ;     handleSampleFlag = 0;
 8BB2  7F9362            clr _handleSampleFlag
 8BB5                    .dbline 1074
                       ; }
 8BB5                  L6:
 8BB5  8F                xgdx
 8BB6  C3002A            addd #42
 8BB9  8F                xgdx
 8BBA  35                txs
 8BBB  38                pulx
 8BBC  39                rts
                       ;  IX -> 0,x
                       ;  rMEM -> 2,x
                       ;          ?temp -> 4,x
                       ;          ?temp -> 6,x
                       ;          ?temp -> 8,x
                       ;          ?temp -> 10,x
                       ;    cylinderDes -> 12,x
                       ; cylinderNumber -> 13,x
                       ;        counter -> 14,x
 8BBD                  _decode_command::
 8BBD  BD80A2            jsr __enterb
 8BC0  10                .byte 0x10
 8BC1                    .dbfunc decode_command
 8BC1                    .dbline 1086
                       ; 
                       ; 
                       ; /********************************************************/
                       ; /*decode_command()                                      */
                       ; /*function to decode the commands recieved on the       */
                       ; /*serial port                                           */
                       ; /*                                                      */
                       ; /********************************************************/
                       ; 
                       ; void decode_command(void){
                       ; 
                       ;     int counter = 0;
 8BC1  CC0000            ldd #0
 8BC4  ED0E              std 14,x
 8BC6                    .dbline 1087
                       ;     char cylinderNumber = 0;
 8BC6  6F0D              clr 13,x
 8BC8                    .dbline 1088
                       ;     char cylinderDes = 0;
 8BC8  6F0C              clr 12,x
 8BCA  2007              bra L145
 8BCC                  L144:
 8BCC                    .dbline 1094
 8BCC  EC0E              ldd 14,x
 8BCE  C30001            addd #1
 8BD1  ED0E              std 14,x
 8BD3                    .dbline 1095
 8BD3                  L145:
 8BD3                    .dbline 1093
                       ;     
                       ;     
                       ;     //search through command string to find start char 
                       ;     //in case of bogus data
                       ;     while(counter < COMMAND_LENGTH && Command[counter] != START_CHAR)
 8BD3  EC0E              ldd 14,x
 8BD5  1A830007          cpd #7
 8BD9  2C0E              bge L147
 8BDB  EC0E              ldd 14,x
 8BDD  C39439            addd #_Command
 8BE0  188F              xgdy
 8BE2  18E600            ldab 0,y
 8BE5  C124              cmpb #36
 8BE7  26E3              bne L144
 8BE9                  L147:
 8BE9                    .dbline 1097
                       ;     {counter++;
                       ;     }
                       ; 
                       ;     if (counter == COMMAND_LENGTH){//bogus data so return
 8BE9  EC0E              ldd 14,x
 8BEB  1A830007          cpd #7
 8BEF  2606              bne L148
 8BF1                    .dbline 1098
                       ;         handleCommandFlag = 0;
 8BF1  7F9361            clr _handleCommandFlag
 8BF4                    .dbline 1099
                       ;         return;
 8BF4  7E8CC0            jmp L143
 8BF7                  L148:
 8BF7                    .dbline 1102
                       ;         } 
                       ; 
                       ;     switch (Command[counter + 1]){
 8BF7  EC0E              ldd 14,x
 8BF9  C3943A            addd #_Command+1
 8BFC  188F              xgdy
 8BFE  18E600            ldab 0,y
 8C01  4F                clra
 8C02  5D                tstb
 8C03  2A01              bpl X0
 8C05  43                coma
 8C06                  X0:
 8C06  ED0A              std 10,x
 8C08  1A830043          cpd #67
 8C0C  2703              beq L154
 8C0E  7E8CBD            jmp L150
 8C11                  L154:
 8C11                    .dbline 1104
                       ;         case 'C': //cylinder position value
                       ;             cylinderNumber = Command[counter + 2] & 0x0F;
 8C11  EC0E              ldd 14,x
 8C13  C3943B            addd #_Command+2
 8C16  188F              xgdy
 8C18  18E600            ldab 0,y
 8C1B  C40F              andb #15
 8C1D  E70D              stab 13,x
 8C1F                    .dbline 1105
                       ;             Command[counter + 3] &= 0x0F;
 8C1F  EC0E              ldd 14,x
 8C21  C3943C            addd #_Command+3
 8C24  ED08              std 8,x
 8C26  1AEE08            ldy 8,x
 8C29  183C              pshy ; spill
 8C2B  1AEE08            ldy 8,x
 8C2E  1838              puly ; reload
 8C30  181D00F0          bclr 0,y,#0xf0
 8C34                    .dbline 1106
                       ;             Command[counter + 4] &= 0x0F;
 8C34  EC0E              ldd 14,x
 8C36  C3943D            addd #_Command+4
 8C39  ED06              std 6,x
 8C3B  1AEE06            ldy 6,x
 8C3E  183C              pshy ; spill
 8C40  1AEE06            ldy 6,x
 8C43  1838              puly ; reload
 8C45  181D00F0          bclr 0,y,#0xf0
 8C49                    .dbline 1107
                       ;             Command[counter + 5] &= 0x0F;
 8C49  EC0E              ldd 14,x
 8C4B  C3943E            addd #_Command+5
 8C4E  ED04              std 4,x
 8C50  1AEE04            ldy 4,x
 8C53  183C              pshy ; spill
 8C55  1AEE04            ldy 4,x
 8C58  1838              puly ; reload
 8C5A  181D00F0          bclr 0,y,#0xf0
 8C5E                    .dbline 1108
                       ;             cylinderDes = Command[counter + 3] * 100 + Command[counter + 4] * 10 + Command[counter + 5];
 8C5E  EC0E              ldd 14,x
 8C60  C3943D            addd #_Command+4
 8C63  188F              xgdy
 8C65  18E600            ldab 0,y
 8C68  4F                clra
 8C69  5D                tstb
 8C6A  2A01              bpl X1
 8C6C  43                coma
 8C6D                  X1:
 8C6D  188F              xgdy
 8C6F  CC000A            ldd #10
 8C72  BD8069            jsr __muli
 8C75  ED02              std 2,x
 8C77  EC0E              ldd 14,x
 8C79  C3943C            addd #_Command+3
 8C7C  188F              xgdy
 8C7E  18E600            ldab 0,y
 8C81  4F                clra
 8C82  5D                tstb
 8C83  2A01              bpl X2
 8C85  43                coma
 8C86                  X2:
 8C86  188F              xgdy
 8C88  CC0064            ldd #100
 8C8B  BD8069            jsr __muli
 8C8E  E302              addd 2,x
 8C90  37                pshb ; 
 8C91  36                psha ; spill
 8C92  EC0E              ldd 14,x
 8C94  C3943E            addd #_Command+5
 8C97  188F              xgdy
 8C99  18E600            ldab 0,y
 8C9C  4F                clra
 8C9D  5D                tstb
 8C9E  2A01              bpl X3
 8CA0  43                coma
 8CA1                  X3:
 8CA1  ED02              std 2,x
 8CA3  32                pula ; 
 8CA4  33                pulb ; reload
 8CA5  E302              addd 2,x
 8CA7  E70C              stab 12,x
 8CA9  E60D                  ldab 13,x
 8CAB  C001              subb #1
 8CAD  58                lslb
 8CAE  A60C              ldaa 12,x
 8CB0  FF942F            stx _x_preserve
 8CB3  CE9373            ldx #_cyl1_des
 8CB6  3A                abx
 8CB7  08                inx
 8CB8  A700              staa 0,x
 8CBA  FE942F            ldx _x_preserve
                       
 8CBD                    .dbline 1121
                       ;             //store new command into global variables
                       ;             asm("ldab %cylinderNumber\n"
                       ;             "subb #1\n"
                       ;             "lslb\n"
                       ;             "ldaa %cylinderDes\n"
                       ;             "stx _x_preserve\n"
                       ;             "ldx #_cyl1_des\n"
                       ;             "abx\n"
                       ;             "inx\n"
                       ;             "staa 0,x\n"
                       ;             "ldx _x_preserve");
                       ;             
                       ;             break ;
 8CBD                  L150:
 8CBD                  L151:
 8CBD                    .dbline 1127
                       ;         
                       ;         //put next command case here
                       ;         
                       ;     }//ends switch statement
                       ;     
                       ;     handleCommandFlag = 0;
 8CBD  7F9361            clr _handleCommandFlag
 8CC0                    .dbline 1128
                       ; }
 8CC0                  L143:
 8CC0  8F                xgdx
 8CC1  C30010            addd #16
 8CC4  8F                xgdx
 8CC5  35                txs
 8CC6  38                pulx
 8CC7  39                rts
                       ;  IX -> 0,x
                       ;           byte -> 5,x
 8CC8                  _send_message::
 8CC8  37                pshb
 8CC9  36                psha
 8CCA  3C                pshx
 8CCB  3C                pshx
 8CCC  30                tsx
 8CCD  EF00              stx 0,x
 8CCF                    .dbfunc send_message
 8CCF                    .dbline 1139
                       ; 
                       ; /********************************************************/
                       ; /*send_message(byte)                                    */
                       ; /*function to send a byte out the serial port           */
                       ; /*                                                      */
                       ; /*                                                      */
                       ; /********************************************************/
                       ; 
                       ; void send_message(char byte)
                       ; {
                       ;     Message = byte;
 8CCF  E605              ldab 5,x
 8CD1  F7935F            stab _Message
 8CD4                    .dbline 1140
                       ;     SCCR2 |= 0x80;
 8CD4  18CE102D          ldy #0x102d
 8CD8  181C0080          bset 0,y,#128
 8CDC                    .dbline 1141
                       ; }
 8CDC                  L162:
 8CDC  08                inx
 8CDD  08                inx
 8CDE  35                txs
 8CDF  38                pulx
 8CE0  1838              puly
 8CE2  39                rts
                       ;  IX -> 0,x
                       ;          ?temp -> 3,x
 8CE3                  _SCI_isr::
 8CE3  BD80A2            jsr __enterb
 8CE6  04                .byte 0x4
 8CE7                    .dbfunc SCI_isr
 8CE7                    .dbline 1154
                       ;              
                       ; /********************************************************/
                       ; /*ISRs                                                  */
                       ; /*                                                      */
                       ; /*                                                      */
                       ; /*                                                      */
                       ; /********************************************************/
                       ; 
                       ; /* Captures incoming messages of CommandLength bytes */
                       ; /* Sends one byte messages then disables TIE */
                       ; /* SCI isr */
                       ; void SCI_isr() {
                       ;   if(SCSR & 0X20) {
 8CE7  18CE102E          ldy #0x102e
 8CEB  181F00203F        brclr 0,y,#32,L164
 8CF0                    .dbline 1155
                       ;     Command[CommandPos] = SCDR;
 8CF0  F69360            ldab _CommandPos
 8CF3  4F                clra
 8CF4  5D                tstb
 8CF5  2A01              bpl X4
 8CF7  43                coma
 8CF8                  X4:
 8CF8  C39439            addd #_Command
 8CFB  188F              xgdy
                         ; vol
 8CFD  F6102F            ldab 0x102f
 8D00  18E700            stab 0,y
 8D03                    .dbline 1156
                       ;     send_message(SCDR);         // Include to echo characters
                         ; vol
 8D03  F6102F            ldab 0x102f
 8D06  4F                clra
 8D07  5D                tstb
 8D08  2A01              bpl X5
 8D0A  43                coma
 8D0B                  X5:
 8D0B  BD8CC8            jsr _send_message
 8D0E                    .dbline 1157
                       ;     if (++CommandPos == COMMAND_LENGTH) {
 8D0E  F69360            ldab _CommandPos
 8D11  CB01              addb #1
 8D13  E703              stab 3,x
 8D15  F79360            stab _CommandPos
 8D18  E603              ldab 3,x
 8D1A  C107              cmpb #7
 8D1C  2603              bne L166
 8D1E                    .dbline 1158
                       ;       CommandPos = 0;
 8D1E  7F9360            clr _CommandPos
 8D21                    .dbline 1159
                       ;     }
 8D21                  L166:
 8D21                    .dbline 1160
                       ;     if (SCDR == END_CHAR) {
                         ; vol
 8D21  F6102F            ldab 0x102f
 8D24  C123              cmpb #35
 8D26  261E              bne L165
 8D28                    .dbline 1161
                       ;       handleCommandFlag = 1;
 8D28  C601              ldab #1
 8D2A  F79361            stab _handleCommandFlag
 8D2D                    .dbline 1163
                       ;     }
                       ;   }
 8D2D  2017              bra L165
 8D2F                  L164:
 8D2F                    .dbline 1164
                       ;   else if(SCSR & 0X80) {
 8D2F  18CE102E          ldy #0x102e
 8D33  181F00800E        brclr 0,y,#128,L170
 8D38                    .dbline 1165
                       ;     SCDR = Message;
 8D38  F6935F            ldab _Message
 8D3B  F7102F            stab 0x102f
 8D3E                    .dbline 1166
                       ;     SCCR2 &= 0X7F;
 8D3E  18CE102D          ldy #0x102d
 8D42  181D0080          bclr 0,y,#0x80
 8D46                    .dbline 1167
                       ;   }
 8D46                  L170:
 8D46                  L165:
 8D46                    .dbline 1169
                       ;   
                       ; }
 8D46                  L163:
 8D46  08                inx
 8D47  08                inx
 8D48  08                inx
 8D49  08                inx
 8D4A  35                txs
 8D4B  38                pulx
 8D4C  3B                rti
                       ;  IX -> 0,x
 8D4D                  _TOC5_isr::
 8D4D                    .dbfunc TOC5_isr
 8D4D                    .dbline 1175
                       ; 
                       ; 
                       ; /*TOC5_isr- controls motors 7 and 8*/
                       ; void TOC5_isr()
                       ; {
                       ;     TFLG1 = 0x08;    //clear interrupt flag
 8D4D  C608              ldab #8
 8D4F  F71023            stab 0x1023
 8D52  18FE9403              ldy _oc5_reg
 8D56  B69431            ldaa _mot_spd
 8D59  843F              anda #$3f
 8D5B  18AA00            oraa 0,y
 8D5E  B79431            staa _mot_spd
 8D61  FE9432            ldx _pwm_port
 8D64  A700              staa 0,x
 8D66  1808              iny
 8D68  CE101E            ldx #$101E
 8D6B  18EC00            ldd 0,y
 8D6E  E300              addd 0,x
 8D70  ED00              std 0,x
 8D72  188C940C          cpy #_oc5_3vl
 8D76  2604              bne oc5_rti
 8D78  18CE9403          ldy #_oc5_reg
 8D7C                  	oc5_rti:
 8D7C  1808              iny
 8D7E  1808              iny
 8D80  18FF9403          sty _oc5_reg
                       
 8D84                    .dbline 1195
                       ;    asm("ldy _oc5_reg\n"
                       ;     "ldaa _mot_spd\n"
                       ;     "anda #$3f\n"
                       ;     "oraa 0,y\n"
                       ;     "staa _mot_spd\n"
                       ;     "ldx _pwm_port\n"
                       ;     "staa 0,x\n"
                       ;     "iny\n"
                       ;     "ldx #$101E\n"
                       ;     "ldd 0,y\n"
                       ;     "addd 0,x\n"
                       ;     "std 0,x\n"
                       ;     "cpy #_oc5_3vl\n"
                       ;     "bne oc5_rti\n"
                       ;     "ldy #_oc5_reg\n"
                       ; "oc5_rti:\n"    
                       ;     "iny\n"
                       ;     "iny\n"
                       ;     "sty _oc5_reg"); 
                       ; }
 8D84                  L172:
 8D84  3B                rti
                       ;  IX -> 0,x
 8D85                  _TOC4_isr::
 8D85                    .dbfunc TOC4_isr
 8D85                    .dbline 1200
                       ; 
                       ; /*TOC4_isr - controls motors 5 and 6*/
                       ; void TOC4_isr()
                       ; {
                       ;     TFLG1 = 0X10; //clear interrupt flag
 8D85  C610              ldab #16
 8D87  F71023            stab 0x1023
 8D8A  18FE940E              ldy _oc4_reg
 8D8E  B69431            ldaa _mot_spd
 8D91  84CF              anda #$cf
 8D93  18AA00            oraa 0,y
 8D96  B79431            staa _mot_spd
 8D99  FE9432            ldx _pwm_port
 8D9C  A700              staa 0,x
 8D9E  1808              iny
 8DA0  CE101C            ldx #$101C
 8DA3  18EC00            ldd 0,y
 8DA6  E300              addd 0,x
 8DA8  ED00              std 0,x
 8DAA  188C9417          cpy #_oc4_3vl
 8DAE  2604              bne oc4_rti
 8DB0  18CE940E          ldy #_oc4_reg
 8DB4                  	oc4_rti:
 8DB4  1808              iny
 8DB6  1808              iny
 8DB8  18FF940E          sty _oc4_reg
                       
 8DBC                    .dbline 1220
                       ;    asm("ldy _oc4_reg\n"
                       ;     "ldaa _mot_spd\n"
                       ;     "anda #$cf\n"
                       ;     "oraa 0,y\n"
                       ;     "staa _mot_spd\n"
                       ;     "ldx _pwm_port\n"
                       ;     "staa 0,x\n"
                       ;     "iny\n"
                       ;     "ldx #$101C\n"
                       ;     "ldd 0,y\n"
                       ;     "addd 0,x\n"
                       ;     "std 0,x\n"
                       ;     "cpy #_oc4_3vl\n"
                       ;     "bne oc4_rti\n"
                       ;     "ldy #_oc4_reg\n"
                       ; "oc4_rti:\n"    
                       ;     "iny\n"
                       ;     "iny\n"
                       ;     "sty _oc4_reg"); 
                       ; }
 8DBC                  L173:
 8DBC  3B                rti
                       ;  IX -> 0,x
 8DBD                  _TOC3_isr::
 8DBD                    .dbfunc TOC3_isr
 8DBD                    .dbline 1226
                       ;     
                       ; 
                       ; /*TOC3_isr - controls motors 3 and 4*/
                       ; void TOC3_isr()
                       ; {
                       ;     TFLG1 = 0x20; //clear interrupt flag
 8DBD  C620              ldab #32
 8DBF  F71023            stab 0x1023
 8DC2  18FE9419              ldy _oc3_reg
 8DC6  B69431            ldaa _mot_spd
 8DC9  84F3              anda #$f3
 8DCB  18AA00            oraa 0,y
 8DCE  B79431            staa _mot_spd
 8DD1  FE9432            ldx _pwm_port
 8DD4  A700              staa 0,x
 8DD6  1808              iny
 8DD8  CE101A            ldx #$101A
 8DDB  18EC00            ldd 0,y
 8DDE  E300              addd 0,x
 8DE0  ED00              std 0,x
 8DE2  188C9422          cpy #_oc3_3vl
 8DE6  2604              bne oc3_rti
 8DE8  18CE9419          ldy #_oc3_reg
 8DEC                  	oc3_rti:
 8DEC  1808              iny
 8DEE  1808              iny
 8DF0  18FF9419          sty _oc3_reg
                       
 8DF4                    .dbline 1246
                       ;    asm("ldy _oc3_reg\n"
                       ;     "ldaa _mot_spd\n"
                       ;     "anda #$f3\n"
                       ;     "oraa 0,y\n"
                       ;     "staa _mot_spd\n"
                       ;     "ldx _pwm_port\n"
                       ;     "staa 0,x\n"
                       ;     "iny\n"
                       ;     "ldx #$101A\n"
                       ;     "ldd 0,y\n"
                       ;     "addd 0,x\n"
                       ;     "std 0,x\n"
                       ;     "cpy #_oc3_3vl\n"
                       ;     "bne oc3_rti\n"
                       ;     "ldy #_oc3_reg\n"
                       ; "oc3_rti:\n"    
                       ;     "iny\n"
                       ;     "iny\n"
                       ;     "sty _oc3_reg"); 
                       ; }
 8DF4                  L174:
 8DF4  3B                rti
                       ;  IX -> 0,x
 8DF5                  _TOC2_isr::
 8DF5                    .dbfunc TOC2_isr
 8DF5                    .dbline 1253
                       ; 
                       ; 
                       ; 
                       ; /*TOC2_isr - controls motors 1 and 2*/
                       ; void TOC2_isr()
                       ; {
                       ;     TFLG1 = 0x40; //clear interrupt flag
 8DF5  C640              ldab #64
 8DF7  F71023            stab 0x1023
 8DFA  18FE9424              ldy _oc2_reg
 8DFE  B69431            ldaa _mot_spd
 8E01  84FC              anda #$fc
 8E03  18AA00            oraa 0,y
 8E06  B79431            staa _mot_spd
 8E09  FE9432            ldx _pwm_port
 8E0C  A700              staa 0,x
 8E0E  1808              iny
 8E10  CE1018            ldx #$1018
 8E13  18EC00            ldd 0,y
 8E16  E300              addd 0,x
 8E18  ED00              std 0,x
 8E1A  188C942D          cpy #_oc2_3vl
 8E1E  2604              bne oc2_rti
 8E20  18CE9424          ldy #_oc2_reg
 8E24                  	oc2_rti:
 8E24  1808              iny
 8E26  1808              iny
 8E28  18FF9424          sty _oc2_reg
                       
 8E2C                    .dbline 1274
                       ;     
                       ;    asm("ldy _oc2_reg\n"
                       ;     "ldaa _mot_spd\n"
                       ;     "anda #$fc\n"
                       ;     "oraa 0,y\n"
                       ;     "staa _mot_spd\n"
                       ;     "ldx _pwm_port\n"
                       ;     "staa 0,x\n"
                       ;     "iny\n"
                       ;     "ldx #$1018\n"
                       ;     "ldd 0,y\n"
                       ;     "addd 0,x\n"
                       ;     "std 0,x\n"
                       ;     "cpy #_oc2_3vl\n"
                       ;     "bne oc2_rti\n"
                       ;     "ldy #_oc2_reg\n"
                       ; "oc2_rti:\n"    
                       ;     "iny\n"
                       ;     "iny\n"
                       ;     "sty _oc2_reg"); 
                       ; }
 8E2C                  L175:
 8E2C  3B                rti
                       ;  IX -> 0,x
 8E2D                  _RTI_isr::
 8E2D                    .dbfunc RTI_isr
 8E2D                    .dbline 1280
                       ; 
                       ; /*RTI_isr - samples analog values on every third interrupt*/
                       ; /*sets a flag to call PID controller*/
                       ; void RTI_isr()
                       ; {
                       ;     TFLG2 = 0x40; //clear flag
 8E2D  C640              ldab #64
 8E2F  F71025            stab 0x1025
 8E32                    .dbline 1281
                       ;     if (RTIcount < 2)
 8E32  F69436            ldab _RTIcount
 8E35  C102              cmpb #2
 8E37  2C05              bge L177
 8E39                    .dbline 1283
                       ;     {
                       ;         RTIcount++;
 8E39  7C9436            inc _RTIcount
 8E3C                    .dbline 1284
                       ;         return;
 8E3C  204C              bra L176
 8E3E                  L177:
 8E3E                    .dbline 1287
                       ;     }
                       ;     
                       ;     RTIcount = 0;
 8E3E  7F9436            clr _RTIcount
 8E41                    .dbline 1290
                       ;     
                       ;     //run sample of all 8 cylinders
                       ;     ADCTL = 0x90    //CCF=1 SCAN=0 MULT=1 CD-CA=0000
 8E41  C690              ldab #144
 8E43  F71030            stab 0x1030
 8E46  8615                  ldaa #21
 8E48                  	loop:
 8E48  4A                deca
 8E49  26FD              bne loop
                       
 8E4B  B61031                ldaa $1031
 8E4E  B79364            staa _cyl1_pstn + 1
                         
                       
 8E51  B61032                ldaa $1032
 8E54  B79366            staa _cyl2_pstn + 1
                         
                       
 8E57  B61033                ldaa $1033
 8E5A  B79368            staa _cyl3_pstn + 1
                         
                       
 8E5D  B61034                ldaa $1034
 8E60  B7936A            staa _cyl4_pstn + 1
                         
                       
 8E63                    .dbline 1316
                       ;     //wait for complete samples
                       ;     asm("ldaa #21\n"
                       ;         "loop:\n"
                       ;         "deca\n"
                       ;         "bne loop");
                       ;     
                       ;     //now load in the analog values
                       ;     //assembly routines to change char to int
                       ;     
                       ;     //cyl1_pstn = ADR1;
                       ;     asm("ldaa $1031\n"
                       ;         "staa _cyl1_pstn + 1\n");
                       ;         
                       ;     //cyl2_pstn = ADR2;
                       ;     asm("ldaa $1032\n"
                       ;         "staa _cyl2_pstn + 1\n");
                       ;             
                       ;     //cyl3_pstn = ADR3;
                       ;     asm("ldaa $1033\n"
                       ;         "staa _cyl3_pstn + 1\n");
                       ;         
                       ;     //cyl4_pstn = ADR4;
                       ;     asm("ldaa $1034\n"
                       ;         "staa _cyl4_pstn + 1\n");
                       ;     
                       ;     ADCTL = 0x94    //CCF=1 SCAN=0 MULT=1 CD-CA=0100
 8E63  C694              ldab #148
 8E65  F71030            stab 0x1030
 8E68  8615                  ldaa #21
 8E6A                  	loop2:
 8E6A  4A                deca
 8E6B  26FD              bne loop2
                       
 8E6D  B61031                ldaa $1031
 8E70  B7936C            staa _cyl5_pstn + 1
                         
                       
 8E73  B61032                ldaa $1032
 8E76  B7936E            staa _cyl6_pstn + 1
                         
                       
 8E79  B61033                ldaa $1033
 8E7C  B79370            staa _cyl7_pstn + 1
                         
                       
 8E7F  B61034                ldaa $1034
 8E82  B79372            staa _cyl8_pstn + 1
                         
                       
 8E85                    .dbline 1342
                       ;     //wait for complete samples
                       ;     asm("ldaa #21\n"
                       ;         "loop2:\n"
                       ;         "deca\n"
                       ;         "bne loop2");
                       ;         
                       ;     //cyl5_pstn = ADR1;
                       ;     asm("ldaa $1031\n"
                       ;         "staa _cyl5_pstn + 1\n");
                       ;         
                       ;     //cyl6_pstn = ADR2; 
                       ;     asm("ldaa $1032\n"
                       ;         "staa _cyl6_pstn + 1\n");
                       ;         
                       ;     //cyl7_pstn = ADR3;
                       ;     asm("ldaa $1033\n"
                       ;         "staa _cyl7_pstn + 1\n");
                       ;         
                       ;     //cyl8_pstn = ADR4;
                       ;     asm("ldaa $1034\n"
                       ;         "staa _cyl8_pstn + 1\n");
                       ;     
                       ;     //finished with sampling
                       ;     
                       ;     
                       ;     handleSampleFlag = 1; //set flag to run pid routine
 8E85  C601              ldab #1
 8E87  F79362            stab _handleSampleFlag
 8E8A                    .dbline 1344
                       ;     
                       ; }
 8E8A                  L176:
 8E8A  3B                rti
                       ;  IX -> 0,x
                       ;          count -> 2,x
 8E8B                  _main::
 8E8B  BD80A2            jsr __enterb
 8E8E  04                .byte 0x4
 8E8F                    .dbfunc main
 8E8F                    .dbline 1356
                       ; 
                       ; /********************************************************/
                       ; /*Begin main function                                   */
                       ; /*                                                      */
                       ; /*                                                      */
                       ; /*                                                      */
                       ; /********************************************************/
                       ; 
                       ; void main(void)
                       ; {
                       ; 
                       ;     int count = 1700;
 8E8F  CC06A4            ldd #1700
 8E92  ED02              std 2,x
 8E94                    .dbline 1360
                       ;     /*this must be here to initalize the pointers and 
                       ;     leave them in the correct momory space*/
                       ;     
                       ;     oc2_reg = &oc2_1ot;
 8E94  CC9426            ldd #_oc2_1ot
 8E97  FD9424            std _oc2_reg
 8E9A                    .dbline 1361
                       ;     oc3_reg = &oc3_1ot;
 8E9A  CC941B            ldd #_oc3_1ot
 8E9D  FD9419            std _oc3_reg
 8EA0                    .dbline 1362
                       ;     oc4_reg = &oc4_1ot;
 8EA0  CC9410            ldd #_oc4_1ot
 8EA3  FD940E            std _oc4_reg
 8EA6                    .dbline 1363
                       ;     oc5_reg = &oc5_1ot;
 8EA6  CC9405            ldd #_oc5_1ot
 8EA9  FD9403            std _oc5_reg
 8EAC                    .dbline 1365
                       ; 
                       ;     init_analog();
 8EAC  BD8040            jsr _init_analog
 8EAF                    .dbline 1366
                       ;     init_SCI();
 8EAF  BD8143            jsr _init_SCI
 8EB2                    .dbline 1367
                       ;     init_pulse(); //set up interrupts for oc2-5
 8EB2  BD815F            jsr _init_pulse
 8EB5                    .dbline 1368
                       ;     init_RTI();
 8EB5  BD819B            jsr _init_RTI
 8EB8  2010              bra L181
 8EBA                  L180:
 8EBA                    .dbline 1374
                       ; 
                       ;   //printf("\n\n starting\n");
                       ;   //multvlve(20000, 0x01);
                       ; 
                       ;     while(1){ //main loop 
                       ;         if(handleSampleFlag){
 8EBA  7D9362            tst _handleSampleFlag
 8EBD  2703              beq L183
 8EBF                    .dbline 1375
                       ;             pid_controller();
 8EBF  BD85AA            jsr _pid_controller
 8EC2                    .dbline 1376
                       ;         }//ends if
 8EC2                  L183:
 8EC2                    .dbline 1378
                       ;         
                       ;         if(handleCommandFlag){
 8EC2  7D9361            tst _handleCommandFlag
 8EC5  2703              beq L185
 8EC7                    .dbline 1379
                       ;             decode_command();
 8EC7  BD8BBD            jsr _decode_command
 8ECA                    .dbline 1380
                       ;         }//ends if
 8ECA                  L185:
 8ECA                    .dbline 1382
                       ;         
                       ;     }//ends main while
 8ECA                  L181:
 8ECA  20EE              bra L180
 8ECC                  L179:
 8ECC  08                inx
 8ECD  08                inx
 8ECE  08                inx
 8ECF  08                inx
 8ED0  35                txs
 8ED1  38                pulx
 8ED2  39                rts
                         .area memory(abs)
                         .org 0xffd6
 FFD6                  _interrupt_vectors::
 FFD6  8CE3              .word _SCI_isr
 FFD8  FFFF              .word 65535
 FFDA  FFFF              .word 65535
 FFDC  FFFF              .word 65535
 FFDE  FFFF              .word 65535
 FFE0  8D4D              .word _TOC5_isr
 FFE2  8D85              .word _TOC4_isr
 FFE4  8DBD              .word _TOC3_isr
 FFE6  8DF5              .word _TOC2_isr
 FFE8  FFFF              .word 65535
 FFEA  FFFF              .word 65535
 FFEC  FFFF              .word 65535
 FFEE  FFFF              .word 65535
 FFF0  8E2D              .word _RTI_isr
 FFF2  FFFF              .word 65535
 FFF4  FFFF              .word 65535
 FFF6  FFFF              .word 65535
 FFF8  FFFF              .word 65535
 FFFA  FFFF              .word 65535
 FFFC  FFFF              .word 65535
 FFFE  8000              .word __start
                         .area data
                         .area bss
 9439                  _Command::
 9439                    .blkb 14
