Quería jugar con algo con control remoto por infrarrojos, así que decidí hacer una luz ambiental con control remoto. El proyecto tenía dos partes: hacer el control remoto y hacer la luz. Para el control remoto, rompí un control remoto para un ventilador de piso, quité todo su interior y lo reemplacé por el mío. Usé un micro PIC12F1840 para el control remoto, principalmente porque tengo muchos de estos por ahí.
Para el receptor, utilicé el mismo microcontrolador. ¿El recinto para la luz ambiental? un frasco de vidrio con un poco de papel para difundir la luz (no me gusta mucho hacer recintos). Hubo algunos problemas interesantes en el camino, pero ahora el proyecto funciona bastante bien. Tiene 4 LED de alto brillo: blanco, rojo, verde y azul.
¿Características?
Actualmente, el dispositivo tiene 2 modos, que se pueden cambiar mediante el botón "Modo". "On / Off" enciende y apaga el dispositivo, como se esperaba. La configuración está respaldada en EEPROM, por lo que después de cualquier pérdida de energía, el dispositivo vuelve al mismo modo y configuración que tenía la última vez que se encendió.
El modo de desvanecimiento se desvanece entre los colores de forma aleatoria, con velocidad y brillo ajustables. El ajuste se realiza usando los botones "arriba" / "abajo". Lo que se ajusta se selecciona con el botón "O". Parpadeos blancos cada vez más brillantes después de presionar el botón "O" significan que está en modo de ajuste de brillo. Blanco, rojo, verde, azul parpadea después de presionar el botón "O" significa que está ajustando la velocidad. Sólido.
El modo es un color sólido, cada uno de cuyos componentes WRGB se puede ajustar hacia arriba / abajo usando los botones "arriba" / "abajo". El componente actual se selecciona usando el botón "O"; cuando se presiona, parpadea ese color durante medio segundo para indicar lo que está ajustando. El color seleccionado se guarda cuando cambia de modo y se restaura cuando vuelve a ingresar al modo sólido. Cuando está en modo apagado, puede acceder al modo de diagnóstico anterior ingresando en el control remoto: "Arriba Abajo Arriba Abajo O O". Esto muestra algunos valores usando LED.
Cada valor está precedido por un color para indicar el significado. Luego, se envían los dígitos decimales del valor, uno a la vez, usando parpadeos en blanco tenue. El final de cada dígito se indica con un parpadeo blanco brillante.
Entonces, para enviar 102, veríamos un parpadeo blanco tenue, un parpadeo blanco brillante, otro parpadeo blanco brillante, dos parpadeos blancos tenues y un parpadeo brillante. Por ahora solo se muestran dos valores. Versión de software (código de color verde) y voltaje de la batería remota (código de color azul). El código es muy modular, por lo que agregar nuevos modos es muerto fácil.
El control remoto tiene 5 botones, con etiquetas negras sobre fondo gris. Usé un marcador para colorear el fondo de negro, ocultando las etiquetas, excepto "encendido-apagado" y "modo".
Los contornos de flechas se dejaron en gris junto a dos botones y un círculo al lado del tercero. Así que ahora los botones son "Modo", "Arriba", "Abajo", "O", "Encendido / Apagado". Internamente, el PIC lee los botones conectándolos a los pines RA0 - RA4, con los pullups internos habilitados y el otro extremo de los botones conectado a tierra.
Aquí es donde encontré el primer inconveniente.
Esperaba usar Interrupt-On-Change para despertar al PIC del modo de suspensión de bajo consumo cuando se presiona un botón. No importa lo que hice, esta característica no funcionaría. Lo había usado en modelos anteriores de dispositivos PIC con éxito, y he revisado el documento una y otra vez, sin resultados. Ahora estoy razonablemente convencido de que esto debe ser un error en los documentos o un problema del chip.
Ahora bien, este era un problema importante. No dormir con poca energía significa que no hay forma de no utilizar otro juego de baterías cada semana. Después de algunas reflexiones, decidí medir el consumo de energía del PIC mientras funcionaba con su oscilador LFINTOSC a 31 KHz. Fue inferior a 0,01 mA. Supongo que esto es lo suficientemente bajo. Así que ahora, cada vez que necesito esperar a que se presione un botón, cambio a LFINTOSC y leo repetidamente los pines del puerto y busco cambios. Me encantaría tener un modo de suspensión que funcione, pero lamentablemente eso parece imposible con este chip. El chip cambia a la velocidad generada por HFINTOSC de 4MHz cuando envía una señal, y luego vuelve al modo de bajo consumo cuando termina con eso.
La capa física de la comunicación en el lado remoto es un solo LED IR de 940 nm con una frecuencia portadora de 38,6 KHz (generado por el módulo CCP / PWM). Los datos se envían en bytes de 8 bits, primero MSB. Cada bit es una secuencia de 0,5 ms de luz modulada, seguida de 1 o 1,5 ms de oscuridad. 1.5ms significa que el bit es 1, 1 ms significa que el bit es 0.
Esto significa que el último bit del paquete es imposible de discernir, ya que la pausa es indefinida. Esto esta bien. Los paquetes de datos tienen la siguiente estructura:
preámbulo de 1 byte (0xFF),
encabezado de 1 byte (0x05),
datos de 11 bytes,
CRC de 1 byte,
cola de 1 byte (0xFF),
para un tamaño total de paquete enviado de 15 bytes.
El último bit, como se indicó anteriormente, no se puede leer, por lo que el avance se ignora. ¿Por qué, puede preguntar, tengo 11 (!) Bytes de datos si solo tengo 5 botones? Quería proporcionar algo más que presionar un botón para uso futuro, por lo que el paquete de datos está estructurado de la siguiente manera:
numPresses: 32 bits,
Número de pulsaciones de botones realizadas en el control remoto durante su vida útil; pressesSinceBattChange: 32 bits,
Número de pulsaciones desde la última pérdida de energía;
battVoltage: 16 bits,
Voltaje de la batería en unidades de 1/100 voltios;
botón: botón pulsado actualmente de 8 bits.
Actualmente estoy usando los campos de botón y voltaje, pero planeo usar otros, eventualmente, para algo. El CRC se calcula sobre la fecha del paquete en sí, y no sobre el preámbulo o el encabezado. eventualmente, por algo.
El voltaje de la batería se mide de una manera bastante interesante. Como puede ver en el esquema, no hay una red divisoria de resistencias ni pines analógicos. En cambio, habilito la referencia de voltaje interno para dar salida a 1.024V, y lo uso como la entrada ADC, mientras uso Vdd como Vref para el ADC.
Esto produce un resultado que, con algunas matemáticas, se puede utilizar para calcular el voltaje. El ADC se muestrea 16 veces, con la esperanza de obtener una precisión adicional. A diferencia del método habitual de medición de voltaje, este método tiene distintos grados de precisión, que van desde 0,02 V en el lado bajo hasta 0,1 V en el lado alto. Por otro lado, no se necesitan componentes externos adicionales ni desperdicio de pines en pines analógicos. También intenté usar el sensor de temperatura interno del PIC, pero lo encontré tremendamente inexacto, así que lo abandoné.
El receptor (la propia luz ambiental) está alojado en un frasco de vidrio, con papel en el interior para difundir la luz. Sí, sé que parece bastante extraño. A la izquierda puede ver un primer plano del receptor de infrarrojos. Es un receptor IR de 38KHz Radioshack genérico estándar.
Su salida está inactiva alta y baja cuando detecta luz IR modulada a 38 KHz. El cerebro del receptor es, como se dijo anteriormente, un PIC12F1840. Sin embargo, aquí funciona a 32MHz. Hace todo lo que necesita hacer el receptor.
Timer0 se usa con un prescaler 1: 2, su interrupción de desbordamiento se usa como contador para los 4 canales PWM para los 4 LED, lo que produce una frecuencia PWM de 61Hz y una resolución de 8 bits para cada canal.
Timer1 se ejecuta con un preescalador 1: 8, produciendo un tic de 1MHz, que se utiliza junto con el módulo CCP para capturar la sincronización de salida del receptor de infrarrojos con precisión. Cualquier pausa de más de 1,1 ms se considera un 1; de lo contrario, sa cero.
Timer2 se usa en un preescalador 1:64, lo que produce una frecuencia de 125 KHz, su desbordamiento se posescala en 1: 2, lo que resulta en una interrupción de desbordamiento una vez cada 4 ms aproximadamente. Usamos esto como tiempo de espera de IR.
Después de cada bit recibido, restablecemos el Timer2 a 0, si alguna vez se desborda, tenemos un tiempo de espera desde que pasaron 4 ms y lo más largo que puede ser un bit es de 2 ms.
El receptor de infrarrojos está conectado a RA5. RA0, RA1, RA2 y RA4 se utilizan como salidas, conectadas a la puerta de los MOSFET de canal N, que controlan los LED. RA3 no se utiliza en este diseño.
El código del receptor está bastante modular, lo que facilita la adición de nuevos modos de funcionamiento. Se utiliza una tabla de punteros de función, donde cada modo proporciona una matriz de ellos en este orden:
init - llamado cuando se ingresa al modo.
Debería cargar cualquier dato que necesite desde EEPROM e inicializar los LED al estado deseado
destruir - llamado cuando se sale del modo.
Debería guardar cualquier dato persistente en EEPROM
btn_up : se llama cuando el usuario presiona el botón "ARRIBA"
btn_down - llamado cuando el usuario presiona el botón "DOWN"
btn_o - llamado cuando el usuario presiona el botón "O"
data_init : se denomina arranque del dispositivo por primera vez o si la EEPROM parece estar dañada.
Permite al módulo iniciar sus datos EEPROM a un estado conocido
ejecutar - llamado como máximo una vez cada 64 ms - permite al módulo actualizar los LED, si así lo desea.
Cada módulo tiene algo de espacio en la EEPROM para almacenar sus datos. Cualquier puntero de función puede ser NULL, en cuyo caso no se llamará a esta función.
Los botones "ARRIBA", "ABAJO", "O" solo se pasan a los módulos, el código principal no los usa. Lo contrario es cierto para los botones "MODE" y "ON / OFF" - no se pasan al módulo - el código principal los maneja por completo.
El código (se usa Hi-TECH C para compilarlo), así como los archivos ASM y los archivos hexadecimales son los siguientes:
RX.hex
Código: Seleccionar todo
:040000008031A32880
:1000080080310B1D4E280B112100AC0A0319AD0AD3
:10001800AD1022000C08F400E830F4057508F00073
:10002800F10121002D08F3002C08F200F235F30D40
:1000380071087302031D222870087202031C7414CD
:100048007608F000F1012D08F3002C08F200F336D1
:10005800F20C71087302031D332870087202031C26
:1000680074157708F000F10171082D02031D3E2870
:1000780070082C02031C74167808F000F10171084E
:100088002D02031D492870082C02031CF41474085F
:1000980022008C002000911C582891101C11F91482
:1000A8002500930120001111111D09001111791C5F
:1000B80096282500131C6F2812082100AB00250084
:1000C80011082100AA0020009A0121002A08E1064F
:1000D8002B08E2069D2821002A082500110221008C
:1000E800AA002B082500123B2100AB0004302B028C
:1000F8007F3003192A02031C87283108B23E860084
:10010800870130088104B036B008031D9D2880306F
:10011800B000B10A3108203A031D9D28250093013B
:10012800F9149D2879141C159A01210091142000B6
:100138009110F9180900013025009306090088017B
:10014800883126280034003480343F347234313406
:100158003F34FE3475343E34583463343D3495347A
:100168001D343C34C534AE343A347934213439340E
:100178009434803437349334A734353456341534B2
:1001880034340334053409340B340D340734003463
:100198000F341134133415341734193400341B3424
:0C01A8001D341F3401342134233425346D
:100200008131820702298631322E8731142F8831BD
:1002100004288831062881312F2981312C29813108
:1002200029298A31582A89317F298631E32E843160
:100230002F2C8131B02989316729883142288831B2
:100240001828813132298231CD2A88310C28843115
:10025000592C0230712100340130712100340030FA
:1002600071210034A41F5A2925082000A000053060
:10027000A101A200A301BF2381312108EF002008C2
:10028000EE000130EF36EE0CEF36EE0C6F02003070
:1002900003196E02031851296F08ED006E08EC0077
:1002A0005429FF30EC00ED016C082100A5008B31D2
:1002B0002823003424087F392000EB0003306B0230
:1002C000031C0034210024087F392000EB00EB03DD
:1002D0002100240820006B0680396B062100A40051
:1002E00000342000BF0021002008033920003F0611
:1002F000C0002100A136A00CA136A00C2000C0082F
:10030000031DAC290330210020052000BE00033A64
:10031000031DAC290430F501F601F701F801AE0028
:100320000230AF01B001B101E9218131210028087B
:100330002000AE00210029082000AF000130B001EC
:10034000B101E921F501F601F701F801443021007E
:10035000A0003A30A1000800400803190800A629AF
:10036000A00A2008043A0319A00175082000EB0038
:100370007608EC007708ED007808EE006430F501AF
:10038000F601F701F801A600A701482381312100F9
:100390002008753E8600643087018100F43020001B
:1003A000A6000130A7004823813121002008753EB6
:1003B00086006430870181012000A600A701482340
:1003C0006B08F5006C08F6006D08F7006E08F80081
:1003D0000034B800F5013819EF29B201F129643071
:1003E000B200B3013208F600B818F829B401FA29AE
:1003F0006430B400B5013408F7003818012AB6019A
:10040000032A6430B600B7013608F800E830A600C9
:100410000330A70048238131F601F701F8013108C4
:10042000BD003008BC002F08BB002E08BA00B9017F
:100430003D083C043B043A040319372A0A30B90A40
:10044000A000A101A201A3013D08A7003C08A6004D
:100450003B08A5003A08A400802381312308BD0091
:100460002208BC002108BB002008BA00182AB908DD
:10047000031D3C2AB901B90ABA01BA0ABB01BC0181
:10048000BD01592A0A30A000A101A201A3013D0823
:10049000A7003C08A6003B08A5003A08A400D42306
:1004A00081312308BD002208BC002108BB002008C0
:1004B000BA00B90B422A3D08A3003C08A2003B0841
:1004C000A1003A08A0003108A7003008A6002F08B4
:1004D000A5002E08A400802381312008B9003D0822
:1004E000A3003C08A2003B08A1003A08A000310884
:1004F000A7003008A6002F08A5002E08A400F923A5
:1005000081312308B1002208B0002108AF00200883
:10051000AE000A30A000A101A201A3013D08A7007E
:100520003C08A6003B08A5003A08A40080238131BE
:100530002308BD002208BC002108BB002008BA0027
:10054000B9033908FF3A2C30A6000130A70003197F
:10055000B52A482381310A30F500F430A600013075
:10056000A70048238131F501A02A48238131FF30BB
:10057000F500BC30A6000230A70048238131F430DA
:10058000F501A6000130A700482381313D083C0455
:100590003B043A04031908005B2A75082000EB00AD
:1005A0007608EC007708ED007808EE002100A41F23
:1005B000FF2A6430F5009630F601F701F8012000BB
:1005C000A600A701482381316430F501F60096307A
:1005D000A600A701482381316430F601F700963068
:1005E000A600A701482381316430F701F800963056
:1005F000A600A701482381312100A4133E2B3230ED
:10060000F501F601F701F8012000A600A701482333
:1006100081316430F501F50AA600A7014823813134
:100620003230F501A600A701482381311E30F500C4
:100630006430A600A701482381313230F501A600BD
:10064000A701482381315030F5006430A600A7018E
:10065000482381313230F501A600A70148238131BA
:10066000C830F5006430A600A7014823813132303C
:10067000F501A600A70148232100A41720006B085C
:10068000F5006C08F6006D08F7006E08F8000034FD
:100690002708260403190800003027023330031905
:1006A00026020318582B2708AD002608AC005B2B48
:1006B0003230AC00AD012C08A6022D08A73BE83073
:1006C000A0000330A1002D08A3002C08A200BF2326
:1006D00081312108AD002008AC001708AB001608D6
:1006E000AA002A081602A8002B08173BA9002D080B
:1006F0002902031D7D2B2C0828020318482B712B7F
:10070000A801A901AA01AB012308220421042004A5
:100710000319B62BAC01AC0AA31B932BA035A10D7A
:10072000A20DA30D8B2BA835A90DAA0DAB0D230887
:100730002702031DA52B22082602031DA52B210835
:100740002502031DA52B20082402031CB02B200822
:10075000A4022108A53B2208A63B2308A73B281496
:10076000A336A20CA10CA00CAC0B932B2B08A3005E
:100770002A08A2002908A1002808A0000800A40156
:10078000A501201CC72B2208A4072308A53DA235DC
:10079000A30DA136A00C21082004031DC12B2508A0
:1007A000A1002408A0000800A801A901AA01AB012A
:1007B000201CE22B2408A8072508A93D2608AA3DED
:1007C0002708AB3DA435A50DA60DA70DA336A20C99
:1007D000A10CA00C2308220421042004031DD82B03
:1007E0002B08A3002A08A2002908A1002808A000BD
:1007F000080023082204210420040319262CA80140
:10080000A80AA31B082CA035A10DA20DA30D002C36
:1008100023082702031D162C22082602031D162C6E
:1008200021082502031D162C20082402031C202C5D
:100830002008A4022108A53B2208A63B2308A73BC9
:10084000A336A20CA10CA00CA80B082C2708A3000F
:100850002608A2002508A1002408A00008002008FE
:10086000753E8600870101082000ED000430EE018E
:10087000A000A1016D08033EA20000306E3DA30060
:10088000732584312008013EEB000030213DEC004F
:100890006B08ED026C08EE3BEE1F502CED01EE01F3
:1008A00021002008753E8600870120006D08810028
:1008B00000340130A6020030A73B27082604031DA0
:1008C000003424087F392000EB000730EC01EB35C1
:1008D000EC0D890B672C6B082100A60020006C082A
:1008E0002100A700D3015308A03E860087015308CA
:1008F000A03E811E9F2C860001081F39D20053089C
:10090000A03E8600011F902C52081F3A031D8E2C1A
:100910005308A03E860087018112942CD20A942CA1
:10092000D2080319882CD2035308A03E8600870101
:1009300001085206E039520681005308A03E8600A5
:100940008701811ED22C04302000A000A1012100CB
:100950005308A03E860001081F392000EB001F301D
:10096000EC006B086C02A200A301031CA303732517
:1009700084312008013EED000030213DEE004A2583
:100980008431EF006E08803A803C031DC92C6D084D
:100990006F020318D22C21005308A03E8600870165
:1009A0008112112D21005308A03E86008701811A73
:1009B000112D4A258431EB0008306B020318112DEC
:1009C00021005308A03E8600870181165308A03EEF
:1009D000860001081F392000EB00EC01EB35EC0D1F
:1009E000EB35EC0DEB35EC0D4A258431ED006C0850
:1009F000803A803C031DFE2C6B086D02003003180A
:100A000001302000EE0021005308A03E860087013F
:100A10002000EE0EEE0DEE0D01086E06BF396E06DB
:100A2000810021000430D30A5302031C732C2008D8
:100A30001F39203E8600013087000108F500213073
:100A40007502031C312D7508E03E2000EB00FF30DD
:100A500003180030EC006C0DEC0CEB0C6B08203E26
:100A6000F5002100D301D30A5308753E86008701A3
:100A70005308A03E8400850100081F39203E8400F1
:100A800001308500000881000430D30A53020318A6
:100A90000034342D210062082000A10021006108EB
:100AA0002000A000ED30A2005E30A3008331BF2300
:100AB000843120080D3E2100E10000302000213D5E
:100AC0002100E2002000A700210061082000A6000C
:100AD0000530A736A60C890B692D2608A800B3257A
:100AE000200028080800A501A11F7D2DA009A1094B
:100AF000A00A0319A10AA501A50AA31F862DA20910
:100B0000A309A20A0319A30A0130A506A601A70199
:100B1000210820040319A62DA401A40AA11B932DCA
:100B2000A035A10D8D2DA635A70D21082302031D8B
:100B30009B2D20082202031CA22D2008A2022108BE
:100B4000A33B2614A136A00CA40B932D2508031952
:100B5000AE2DA609A709A60A0319A70A2708A1000E
:100B60002608A0000800A300003021002F027030EA
:100B700003192E020318080020002308A0002100FA
:100B80002E08893197212100AE0A0319AF0A080007
:100B9000490848044704031DD12DC701C801C901F4
:100BA000080049087F39CC00CD01CC35CD0D4C086B
:100BB000CA074D08CB3D480D480D0139CA07031837
:100BC000CB0ACB1FE72DC701C801C90108004B089C
:100BD000803AFF0081307F02031DF02D00304A0271
:100BE000031C1A2E20004708A0004808A10049084D
:100BF000A200A301A401A5018D31EF258531FF30AD
:100C00000318152ECE007F30CF00D0004E08A00074
:100C10004F08A1005008A2008E31FB262008C70013
:100C20002108C8002208C9000800C7007F30C8009A
:100C3000C900080020004B08CD004A08CC004D0D2B
:100C4000CD0CCC0C49084C0680394C06C9004A082A
:100C50000139CC00CC0CCC0C48084C067F394C0632
:100C6000C8000800A41F572E05302000A000A101D5
:100C7000210025082000EB00EC01EB35EC0DEB35F5
:100C8000EC0D6B08A2006C08A3006E2686312008CC
:100C9000EF0005306F02031C4F2E6F08502E0530F9
:100CA000ED00EE012100A5008B312823003424083B
:100CB0007F392000EB0028306B020318003421003C
:100CC00024087F392000EB00EB0A210024082000D3
:100CD0006B0680396B062100A4000034A501A60133
:100CE0002108200403198E2EA401A40AA11B7B2E27
:100CF000A035A10D752EA535A60D21082302031DD3
:100D0000832E20082202031C8A2E2008A20221081A
:100D1000A33B2514A136A00CA40B7B2E2608A10012
:100D20002508A0000800540884008030850055087C
:100D30005507550784070318850A003FD900013F6E
:100D4000DA00023FDB00560855040319DC2E540874
:100D5000840080308500FF30D507031CD603560879
:100D6000D8005508D7005707570784070318850A86
:100D7000003FBB00013FBC00023FBD005908AC0072
:100D80005A08AD005B08AE005108AF005208B00031
:100D90005308B1008C31292486312C08BE002D085F
:100DA000BF002E08C0008F311E2786313B08D900B6
:100DB0003C08DA003D08A22E5908D1005A08D2009A
:100DC0005B08D30008002008753E860087010108F3
:100DD000D200D301033E2000EB0000302100533D40
:100DE0002000EC00EC36EB0CEC36EB0C6B08013E13
:100DF000ED0000306C3DEE006D082100D2072000B0
:100E00006E082100D33D0130530200300319520215
:100E1000031C0D2FFF30D200D3012008753E860041
:100E2000870152088100003420006A0803191D2F31
:100E30006A08A000CF30893197214430F501F601CE
:100E4000F701F8012100A0003A30A100003464004D
:0A0E500080010131890B282F0034C6
:10100800CF306B2A02302000A000CF309721003467
:101018000A302000A000BF3097218831FF3020001F
:10102800A000BE309721003424087F392000A0009A
:10103800BF3097218831210025082000A000BE304C
:1010480097210034F901F501F601F701F801A03004
:1010580084000030850032308731272788312030DE
:10106800840001308500203087312727883121000E
:10107800F630E1008730E20020007128BF30F5012A
:10108800F601F701F8016B2288312000EB002100FE
:10109800240820006B0680396B062100A400BE30AE
:1010A8006B2288312100A500A601A60AA701A41376
:1010B8002000EC016C08A03E8600E0308701810525
:1010C8006C08A03E860004308112EC0A6C02031CF6
:1010D8005E28210025082823003401238831FF30A9
:1010E8006B2288314D3A031D7F28FE306B228831F0
:1010F8002100E00099282100E0016008D4000530B3
:10110800D501482188310330E00A6002031C812898
:101118004D302000A000FF30972188312100E001E8
:101128002000FE30A00197218831BE21883121009E
:101138006008D4000030D501482188312000170804
:101148002100DB00200016082100DA000630DB361B
:10115800DA0C890BAB285B085A040319C628600807
:10116800D4000630D5014821883120001708210015
:10117800DE00200016082100DD000630DE36DD0C1A
:10118800890BC228F91CA228762288312100DC00AC
:10119800DC08031D4429B430DE218831B830DE2153
:1011A8008831BE30EF2288312100DF00BC30BE22FA
:1011B800883121082100A900200020082100A8006A
:1011C8005F0B03296008031944296008D400013023
:1011D800D50148218831E00A6008033A031DF62842
:1011E800E001E00A6008D4000030D50148218831C8
:1011F80060082000A000FE309721883144295F084C
:10120800043A031D0E296008D4000230D501482194
:10121800883144295F08033A031D19296008D4005E
:101228000330D5014821883144295F08023A031D5B
:1012380024296008D4000430D50148218831442984
:10124800DF08031D4429E008031D37296008D4007E
:101258000130D50148218831E000D4000030D501A3
:101268004821883144296008D4000130D50148213B
:101278008831D4016008D500003048218831E00168
:10128800BE218831A2284729D60007302000A000B7
:1012980021005408F422C53E2100560780310A0077
:1012A8008931D900D908031D5B29D701642955085C
:1012B8002000EA0021005908813100212100D700CF
:1012C800D8015708080005302000A000C530972134
:1012D800883105302000A000C630972188310530BC
:1012E8002000A000C7309721883164302000A0007A
:1012F800C8309721003475082000A000C530972118
:10130800883176082000A000C630972188317708F8
:101318002000A000C7309721883178082000A0005D
:10132800C830972100342000A20004302300950023
:1013380020002208230091002000200823009300A9
:1013480079118B1B79158B13553023009600AA3021
:10135800960095140030791901302000A100A10CE5
:10136800A10C0B0821067F3921068B002300951C50
:101378000800BA292000A0012008B23E86002030CB
:1013880087018101A00A2002031CC02921008030A6
:10139800B101B000F91079102000111121001115C8
:1013A80020001C1121009114200004309110250008
:1013B800930008002000AC00033E86008701010866
:1013C800AD00AE01AF01B0012C08023E8600010855
:1013D800A400A501A601A7012D08A8002E08A900B0
:1013E8002F08AA003008AB002A08AB002908AA0079
:1013F8002808A900A80124082804AD002508290404
:10140800AE0026082A04AF0027082B04B0002C08D9
:10141800013E86000108A400A501A601A7012D0828
:10142800A8002E08A9002F08AA003008AB002A0837
:10143800AB002908AA002808A900A8012408280444
:10144800AD0025082904AE0026082A04AF002708A5
:101458002B04B0002C0886000108A400A501A601F1
:10146800A7012D08A8002E08A9002F08AA003008F7
:10147800AB002A08AB002908AA002808A900A8017F
:1014880024082804AD0025082904AE0026082A04EB
:10149800AF0027082B04B000A3002F08A2002E08D5
:1014A800A1002D08A0000800C5306B228831F50086
:1014B800C6306B228831F600C7306B228831F700BE
:1014C800C8306B22F80021000030A001080020007D
:1014D800A000230095012000200823009100151486
:1014E800130808000E303102031C01343208FF3A99
:1014F800031D02343308053A031D03342000A701F5
:10150800A50121003108FD3E2000A000FF3003188E
:101518000030A100803A803C031D942A200825024F
:101528000318B32A20002508B43E86008701010865
:10153800A400A60127082406A000A01BA52AA20132
:10154800A72A8330A200A30127352206A700083066
:10155800A60AA4352602031C9E2AA50A852A21006C
:101568003108B13E86008701010820002706031DC7
:10157800043400342000AA00013E860087010108D7
:10158800AB00AC01AD01AE012A0886000108A2003B
:10159800A301A401A5012B08A6002C08A7002D086B
:1015A800A8002E08A9002808A9002708A8002608CE
:1015B800A700A60122082604AB0023082704AC00D4
:1015C80024082804AD0025082904AE002C08A10031
:1015D8002B08A0000800A000860087010108080069
:1015E8002000A200A10120082218A107A035A236D8
:1015F800A208031DF72A210808008C0123008C018A
:10160800E83021008C00F030990088309500A03037
:101618008B00013022009D003130200098000B30F3
:101628009C000D30A2002130A100DE30A000A00BEC
:101638001B2BA10B1B2BA20B1B2B222B21009A1D52
:10164800222B1A1B0800222B2000E500E601660861
:10165800932488312808E7002908E8002A08E900C7
:101668001030A801A9004130AA006708AB0068083B
:10167800AC006908AD00C72388312808DC002908B8
:10168800DD002A08DE000E2588315C08E7005D08C9
:10169800E8005E08E9008030C701C8003F30C90093
:1016A8006708CA006808CB006908CC00782688312A
:1016B8004708E7004808E8004908E9006630AC0038
:1016C8000630AD004130AE006708AF006808B000D2
:1016D8006908B100292488312C08E7002D08E800A2
:1016E8002E08E9006508932488312808AC002908E9
:1016F800AD002A08AE006708AF006808B0006908A6
:10170800B100292488312C08E7002D08E8002E08AC
:10171800E9007F30A801A9004330AA006708AB00A0
:101728006808AC006908AD00C72388312808E700BD
:101738002908E8002A08E9003F30BB01BC01BD00C8
:101748006708BE006808BF006908C0001E27883106
:101758003B08E7003C08E8003D08E9006608203E31
:101768008600013087006708A0006808A1006908A2
:10177800A2001B268831200881002030E60A660274
:10178800031808002B2B2B08AE002C08AF002D08DF
:10179800B00003102F0D300DB500B508031DD82B70
:1017A800A801A901AA0108002808AE002908AF006D
:1017B8002A08B00003102F0D300DB600B608031D1F
:1017C800E92BA801A901AA0108008930B201B301D7
:1017D800B4013607AE00B5022D08B6002A08B606D1
:1017E8008030B6051830AC17AD01A917AA01B100B1
:1017F800B235B30DB40D2A082D02031D092C290892
:101808002C02031D092C28082B02031C122C280863
:10181800AB022908AC3B2A08AD3B3214AB35AC0D02
:10182800AD0DB10BFC2B3208A0003308A100340821
:10183800A2003508A3003608A4008E262008A800B8
:101848002108A9002208AA0008002C08B2002D08C7
:10185800B3002E08B4000310330D340DB500B508DD
:10186800031D3A2CAC01AD01AE0108002F08B200EF
:101878003008B3003108B4000310330D340DBA003A
:10188800BA08031D4B2CAC01AD01AE0108003A08A3
:101898007B3EB5072E08BA003108BA068030BA0573
:1018A800FF30AD17B017AF05B0050730B101B6016D
:1018B800B701B801B9002C1C672C2F08B6073008EF
:1018C800B73D3108B83DAE36AD0CAC0CAF35B00DF8
:1018D800B10DB90B5F2C0930B9002C1C792C2F08DD
:1018E800B6073008B73D3108B83DAE36AD0CAC0C84
:1018F800B836B70CB60CB90B712C3608A0003708EF
:10190800A1003808A2003508A3003A08A4008E26D2
:101918002008AC002108AD002208AE000800AB008A
:10192800A0008E30A101A201A300A4018E262008E8
:10193800A8002108A9002208AA0008004708A0005A
:101948004808A1004908A2004D30A300C8268831E4
:10195800CE1FC52C4708A0004808A1004908A200CE
:10196800A301A401A501EF2588310318C12C8030FB
:10197800C701C800BF30C9000800C701C801C901B4
:10198800080000304E02153003194D0203180800F4
:101998004708A0004808A1004908A2001B26883172
:1019A8002308B0002208AF002108AE002008AD00CF
:1019B800D22788312D08CA002E08CB002F08CC006A
:1019C8004708A0004808A1004908A2004A08A30047
:1019D8004B08A4004C08A500EF2588310318072DF3
:1019E8008030BB01BC00BF30BD004A08BE004B08B8
:1019F800BF004C08C0001E273B08C7003C08C800B1
:101A08003D08C90008004A08C7004B08C8004C0830
:101A1800C90008005E085D045C04031D192D8030B0
:101A2800DC01DD003F30DE0008007230A0003130FC
:101A3800A1004430A2005C08A3005D08A4005E0871
:101A4800A500EF25883103182F2DFF30DC007F30EB
:101A5800DD00DE0008005C08A0005D08A1005E084B
:101A6800A2004930A3003A30A400C430A500EF25F5
:101A780088310318432DDC01DD01DE0108005C0814
:101A8800A0005D08A1005E08A200A301A401A501B1
:101A9800EF2588310030031C0130E4006408031985
:101AA800632D5C08A0005D08A1005E08A200FB266B
:101AB80088312008DC002108DD002208DE00AA3079
:101AC800AC00B830AD003F30AE005C08AF005D0838
:101AD800B0005E08B100292488312C08DC002D08EC
:101AE800DD002E08DE005C08C7005D08C8005E083F
:101AF800C900A22488314708A0004808A100490865
:101B0800A2001B2688312108E3002008E2006308B0
:101B1800A9006208A800032788312808C7002908F7
:101B2800C8002A08C9005C08CA005D08CB005E0826
:101B3800CC0078264708DC004808DD004908DE00AC
:101B48005C08D1005D08D2005E08D300A730D4003D
:101B58000930D500D6018631932688315108C7004F
:101B68005208C8005308C9006308CB006208CA00BD
:101B78008531C82588314708DC004808DD00490858
:101B8800DE00640803190800FF30DF007F30E00042
:101B9800E1005E06031DD62D5D086006031DD62DE7
:101BA8005C085F06031DDC2DDC01DD01DE01080099
:101BB8005C08A8005D08A9005E08AA008030AB0197
:101BC800AC003F30AD00C7232808DC002908DD0041
:101BD8002A08DE000800A21FFE2D2008003CA000F5
:101BE8002108031C210F003CA1002208031C220F1E
:101BF800803CA200A51F0D2E2308003CA30024084A
:101C0800031C240F003CA4002508031C250F803C5E
:101C1800A5008030A206A50625082202031D08009B
:101C280024082102031D08002308200208002008B8
:101C3800A4002108A5002208A6000310250D260DE2
:101C4800AC00AC08031D2D2EA001A101A201A30127
:101C580008002008A4002108A5002208A6001730C3
:101C6800A636A50CA40C890B342E2408A700A117AE
:101C7800A2012008A8002108A9002208AA008E3085
:101C8800AB01AC02AC1F542E2C08803A8F3E031CCB
:101C9800282EAB36AA0CA90CA80CAC0F4D2E612E21
:101CA80018302C020318282EAC080319612EA83509
:101CB800A90DAA0DAB0DAC03582E270803196F2EDA
:101CC800A809A909AA09AB09A80A0319A90A0319A5
:101CD800AA0A0319AB0A2B08A3002A08A20029089C
:101CE800A1002808A00008008030C9064A08BB00E7
:101CF8004B08BC004C08BD004708BE004808BF00A0
:101D08004908C0001E273B08C7003C08C8003D081A
:101D1800C900080023080319962E2208210420046C
:101D2800031D9E2EA001A101A2010800A30AA2364C
:101D3800A10CA00CFE3022050319AC2E9A2EA30A82
:101D4800A00A0319A10A0319A20AA236A10CA00C21
:101D5800FF3022050319B52EA32EA303A035A10D2C
:101D6800A20DA11FB12E231CA113A3362308A7007F
:101D7800A601A5012508A0042608A1042708A20495
:101D88002408031DA2170800220821042004031DAB
:101D9800D42E230886008701810141318101080082
:101DA80022087F39A400A501A435A50D23088600C3
:101DB80087012408C03F2508C13F210D210D0139A5
:101DC800A400A501230886002408810441312508C0
:101DD800810423088600823081074131FF30813D2C
:101DE8007F31220880393F38A200A1130800220859
:101DF80021042004031908008030A2060800AB0162
:101E0800A91F0D2FA809A909A80A0319A90AAB0136
:101E1800AB0A2808A0002908A1008E30A201A3005F
:101E28002B08A4008E262008A8002108A900220853
:101E3800AA0008003B08C1003C08C2003D08C300D6
:101E48000310420D430DC6003E08C1003F08C20002
:101E58004008C3000310420D430DC500460803198E
:101E6800412F4508460245080318492FC100460876
:101E7800C10219304102031C482F3E08BB003F082D
:101E8800BC004008BD0008004508031908004608C2
:101E980045020318572F4608C1004508C1021930EA
:101EA8004102031808000630C400BD1BC417C01B3C
:101EB8004417BC17BD01BF17C001450846020318E7
:101EC8007C2FBE35BF0DC00DC50345084606031956
:101ED800772FC403440807390319772F652FBD36B8
:101EE800BC0CBB0CC60A460845060319962F732F6F
:101EF800460845020318962FBB35BC0DBD0DC60319
:101F0800450846060319922FC403440807390319E4
:101F1800922F802FC036BF0CBE0CC50A4608450656
:101F2800031D8E2FC41FA12FFF30BB06BC06BD06A4
:101F3800BB0A0319BC0A0319BD0A441FAC2FFF30A2
:101F4800BE06BF06C006BE0A0319BF0A0319C00AA7
:101F5800C4013B08BE073C08BF3D3D08C03DC01F4B
:101F6800C02FFF30BE06BF06C006BE0A0319BF0A4F
:101F78000319C00AC401C40A3E08A0003F08A10012
:101F88004008A2004608A3004408A4008E262008A2
:101F9800BB002108BC002208BD0008008E30B20139
:101FA800B100B01FE42FAD09AE09AF09B009AD0A01
:101FB8000319AE0A0319AF0A0319B00AB201B20A2B
:101FC800FF3030050319EE2FB036AF0CAE0CAD0C58
:101FD800B10AE42F2D08A0002E08A1002F08A200A6
:101FE8003108A3003208A4008E262008AD0021087D
:081FF800AE002208AF00080052
:020000040001F9
:080000000000000000000000F8
:04000E00A4C9FFDEA4
:00000001FF
Código: Seleccionar todo
:0A0000008031022888018631262E87
:100C4C00C601C701C801C90120002C2EE8302100C3
:100C5C0099000830950023008C0120008C011F3076
:100C6C0024008C00DF3021008C0002302300970020
:100C7C008B01013022009D002500930120009C0176
:100C8C000D3025009100193020009B000230C2006D
:100C9C008530C1009830C000C00B522EC10B522EB3
:100CAC00C20B522E592E03302100990020000C0843
:100CBC00C5001F30C5050C08C3001F30C305430811
:100CCC0045060319612E45084306C4004508C405B2
:100CDC00440803195C2E4408FF3E4405031D5C2E9A
:100CEC00E830210099002000C501C436C40803195E
:100CFC00812EC50A7B2E4508C40021009A1D832E27
:100D0C000A302000C500200045080A3A031DC5081A
:100D1C00031D932E4408A726863120004508031D89
:100D2C00C5031F300C05C0004306031D592E41306E
:100D3C00C100EE30C000C00BA12EC10BA12E64006F
:100D4C00892EB700BE01BF013F082B3E86008701EC
:100D5C003F08342786318100FB278631031CAA2EDD
:100D6C00BF013F082B3E86008701810FC22E043045
:100D7C00BF0A3F02031CB72EBF01F5278631F000D6
:100D8C003F083C278631FB278631031CC32E4608BF
:100D9C00AF004708B0004808B1004908B200C60AC5
:100DAC000319C70A0319C80A0319C90A5F27863130
:100DBC002108BC002008BB00B3003C08B400370875
:100DCC00B500BF01F5278631BA00BD013E083A06D1
:100DDC00FD00FD1BF32EB801F52E8330B800B901D0
:100DEC003E353806BE000830BD0ABA353D02031C3C
:100DFC00EC2E0B30BF0A3F02031CE82E3E08B60057
:100E0C00FF301A27863105301A2786312000BF01A2
:100E1C00F52786311A27863120000C30BF0A3F0295
:100E2C00031C0E2FFF301A2FF2000830F3004E2750
:100E3C008631F21F292FD630F100242F252FF10BEC
:100E4C00232F6400302FF930F1006400F10B2B2FAD
:100E5C002F2F6400F235F30B1D2F0800F000230038
:100E6C00950170089100151413080800F100043066
:100E7C002300950071089100700893008B13553076
:100E8C009600AA30960095148B17951C08004B2FD2
:100E9C0020001C159A010C3025009304A630F0009C
:100EAC00F00B562F6400F0302500930520001C1128
:100EBC000800C130A701A801A901AA0122009700CE
:100ECC00E03021009E007D309D002200171F6B2F0B
:100EDC002000A60121009D149D18722F1B082000D4
:100EEC00A70721001C082000A83D0030A93DAA3D01
:100EFC001030A60A2602031C702F2A08F3002908BA
:100F0C00F2002808F1002708F0002708A2002808A2
:100F1C00A3002908A4002A08A5009830A536A40C23
:100F2C00A30CA20C2207F4009930233DF5001930D4
:100F3C00243DF6000030253DF700B6277308AA00C3
:100F4C007208A9007108A8007008A7002200970178
:100F5C0021009D0120002808A1002708A0000800FE
:100F6C00F801F901FA01FB017308720471047004B1
:100F7C000319EC2FFC01FC0AF31BC92FF035F10D02
:100F8C00F20DF30DC12FF835F90DFA0DFB0D7308A9
:100F9C007702031DDB2F72087602031DDB2F71080D
:100FAC007502031DDB2F70087402031CE62F7008FA
:100FBC00F4027108F53B7208F63B7308F73B7814A2
:100FCC00F336F20CF10CF00CFC0BC92F7B08F30080
:100FDC007A08F2007908F1007808F00008003F0860
:100FEC002B3E860087010108080020000430BF0A50
:040FFC003F020800A8
:020000040001F9
:080000000000000000000000F8
:04000E00A4C9FFDEA4
:00000001FF
Código: Seleccionar todo
HI-TECH Software PIC PRO Macro Assembler V9.81 build 7503
Tue Jun 14 23:13:28 2011
HI-TECH Software Omniscient Code Generator (PRO mode) build 7503
1 processor 12F1840
2 opt pw 120
3 opt pm
4 psect config,global,class=CONFIG,delta=2
5 psect idloc,global,class=IDLOC,delta=2
6 psect idataBANK1,global,class=CODE,delta=2
7 psect strings,global,class=STRING,delta=2
8 psect bitbssCOMMON,global,bit,class=COMMON,space=1,delta=1
9 psect bssCOMMON,global,class=COMMON,space=1,delta=1
10 psect bssBANK1,global,class=BANK1,space=1,delta=1
11 psect dataBANK1,global,class=BANK1,space=1,delta=1
12 psect bssBANK2,global,class=BANK2,space=1,delta=1
13 psect clrtext,global,class=CODE,delta=2
14 psect cstackBANK1,global,class=BANK1,space=1,delta=1
15 psect cstackCOMMON,global,class=COMMON,space=1,delta=1
16 psect cstackBANK0,global,class=BANK0,space=1,delta=1
17 psect text1612,local,class=CODE,delta=2
18 psect text1613,local,class=CODE,delta=2
19 psect text1616,local,class=CODE,delta=2
20 psect text1620,local,class=CODE,delta=2
21 psect text1621,local,class=CODE,delta=2
22 psect text1622,local,class=CODE,delta=2
23 psect text1627,local,class=CODE,delta=2
24 psect text1637,local,class=CODE,delta=2
25 psect intentry,global,class=CODE,delta=2
26 psect functab,global,reloc=256,class=CODE,delta=2
27 psect pa_nodes,global,class=CODE,delta=2
28 dabs 1,0x7E,2
29 000A ;#
30
31 psect config
32 8007 C9A4 dw 51620 ;#
33 8008 DEFF dw 57087 ;#
34
35 psect idloc
36 8000 idloc_word:
37
38 ;#
39 8000 0000 dw 0 ;#
40 8001 0000 dw 0 ;#
41 8002 0000 dw 0 ;#
42 8003 0000 dw 0 ;#
43
44 psect idataBANK1
45 0000 __pidataBANK1:
46
47 psect strings
48 00A6 __pstrings:
49 00A6 __stringtab:
50 00A6 3400 retlw 0
51 00A7 exp@coeff:
52 00A7 3400 retlw 0
53 00A8 3480 retlw 128
54 00A9 343F retlw 63
55 00AA 3472 retlw 114
56 00AB 3431 retlw 49
57 00AC 343F retlw 63
58 00AD 34FE retlw 254
59 00AE 3475 retlw 117
60 00AF 343E retlw 62
61 00B0 3458 retlw 88
62 00B1 3463 retlw 99
63 00B2 343D retlw 61
64 00B3 3495 retlw 149
65 00B4 341D retlw 29
66 00B5 343C retlw 60
67 00B6 34C5 retlw 197
68 00B7 34AE retlw 174
69 00B8 343A retlw 58
70 00B9 3479 retlw 121
71 00BA 3421 retlw 33
72 00BB 3439 retlw 57
73 00BC 3494 retlw 148
74 00BD 3480 retlw 128
75 00BE 3437 retlw 55
76 00BF 3493 retlw 147
77 00C0 34A7 retlw 167
78 00C1 3435 retlw 53
79 00C2 3456 retlw 86
80 00C3 3415 retlw 21
81 00C4 3434 retlw 52
82 00C5 _gModeFns:
83 00C5 3403 retlw (fp__mOffInit-fpbase)& (0+255)
84 00C6 3405 retlw (fp__mOffDestr-fpbase)& (0+255)
85 00C7 3409 retlw (fp__mOffUp-fpbase)& (0+255)
86 00C8 340B retlw (fp__mOffDown-fpbase)& (0+255)
87 00C9 340D retlw (fp__mOffO-fpbase)& (0+255)
88 00CA 3407 retlw (fp__mOffDataInit-fpbase)& (0+255)
89 00CB 3400 retlw 0
90 00CC 340F retlw (fp__mSolidInit-fpbase)& (0+255)
91 00CD 3411 retlw (fp__mSolidDestr-fpbase)& (0+255)
92 00CE 3413 retlw (fp__mSolidUp-fpbase)& (0+255)
93 00CF 3415 retlw (fp__mSolidDown-fpbase)& (0+255)
94 00D0 3417 retlw (fp__mSolidO-fpbase)& (0+255)
95 00D1 3419 retlw (fp__mSolidDataInit-fpbase)& (0+255)
96 00D2 3400 retlw 0
97 00D3 341B retlw (fp__mFadeInit-fpbase)& (0+255)
98 00D4 341D retlw (fp__mFadeDestr-fpbase)& (0+255)
99 00D5 341F retlw (fp__mFadeUp-fpbase)& (0+255)
100 00D6 3401 retlw (fp__mFadeDown-fpbase)& (0+255)
101 00D7 3421 retlw (fp__mFadeO-fpbase)& (0+255)
102 00D8 3423 retlw (fp__mFadeDataInit-fpbase)& (0+255)
103 00D9 3425 retlw (fp__mFadeRun-fpbase)& (0+255)
104 0016 _TMR1 set 22
105 000B _INTCON set 11
106 000B _INTCONbits set 11
107 000C _PORTA set 12
108 0018 _T1CON set 24
109 001C _T2CON set 28
110 001A _TMR2 set 26
111 008A _CCP1IF set 138
112 005F _GIE set 95
113 005A _TMR0IF set 90
114 0089 _TMR2IF set 137
115 00E2 _TMR2ON set 226
116 0095 _OPTION_REG set 149
117 0099 _OSCCON set 153
118 008C _TRISA set 140
119 048A _CCP1IE set 1162
120 04D3 _HFIOFL set 1235
121 04D6 _PLLR set 1238
122 0489 _TMR2IE set 1161
123 011D _APFCON set 285
124 010C _LATA set 268
125 018C _ANSELA set 396
126 0191 _EEADRL set 401
127 0195 _EECON1 set 405
128 0195 _EECON1bits set 405
129 0196 _EECON2 set 406
130 0193 _EEDATL set 403
131 0291 _CCPR1 set 657
132 0293 _CCP1CON set 659
133
134 psect bitbssCOMMON
135 03C8 __pbitbssCOMMON:
136 03C8 _gIntFirstEdgeSeen:
137 03C8 ds 1
138 03C9 _gRxDone:
139 03C9 ds 1
140 03CA eeWrite@gie:
141 03CA ds 1
142
143 psect bssCOMMON
144 0075 __pbssCOMMON:
145 0075 _gLed:
146 0075 ds 4
147
148 psect bssBANK1
149 00A0 __pbssBANK1:
150 00A0 _tempData:
151 00A0 ds 8
152 00A8 _gBattCentiVolts:
153 00A8 ds 2
154 00AA _gIntCapturedTime:
155 00AA ds 2
156 00AC _gPwmCtr:
157 00AC ds 2
158 00AE log@addr:
159 00AE ds 2
160 00B0 _gRxMask:
161 00B0 ds 1
162 00B1 _gRxPos:
163 00B1 ds 1
164 00B2 _gRxData:
165 00B2 ds 32
166
167 psect dataBANK1
168 00E1 __pdataBANK1:
169 00E1 _gRngSeed:
170 00E1 ds 2
171
172 psect bssBANK2
173 0120 __pbssBANK2:
174 0120 _exponents:
175 0120 ds 32
176
177 psect clrtext
178 0727 clear_ram:
179 ; Called with FSR0 containing the base address, and
180 ; WREG with the size to clear
181
182 0727 0064 clrwdt ;clear the watchdog before getting into this loop
183 0728 clrloop:
184 0728 0180 clrf 0 ;clear RAM location pointed to by FSR
185 0729 3101 addfsr 0,1
186 072A 0B89 decfsz 9,f ;Have we reached the end of clearing yet?
187 072B 2F28 goto clrloop ;have we reached the end yet?
188 072C 3400 retlw 0 ;all done for this memory range, return
189
190 psect cstackBANK1
191 00D2 __pcstackBANK1:
192 00D2 mFadeRun@t:
193 00D2 mSolidUp@t:
194 ; 1 bytes @ 0x0
195
196
197 ; 2 bytes @ 0x0
198 00D2 ds 1
199 00D3 mFadeRun@i:
200
201 ; 1 bytes @ 0x1
202 00D3 ds 1
203 00D4 ?_runFuncPtr:
204 00D4 runFuncPtr@curMode:
205 ; 1 bytes @ 0x2
206
207
208 ; 1 bytes @ 0x2
209 00D4 ds 1
210 00D5 runFuncPtr@arg:
211
212 ; 1 bytes @ 0x3
213 00D5 ds 1
214 00D6 runFuncPtr@funcIdx:
215
216 ; 1 bytes @ 0x4
217 00D6 ds 1
218 00D7 _runFuncPtr$2127:
219
220 ; 2 bytes @ 0x5
221 00D7 ds 2
222 00D9 runFuncPtr@f:
223
224 ; 1 bytes @ 0x7
225 00D9 ds 1
226 00DA ??_main:
227
228 ; 0 bytes @ 0x8
229 00DA ds 2
230 00DC main@t:
231
232 ; 1 bytes @ 0xA
233 00DC ds 1
234 00DD main@pt:
235
236 ; 2 bytes @ 0xB
237 00DD ds 2
238 00DF main@whichBtn:
239
240 ; 1 bytes @ 0xD
241 00DF ds 1
242 00E0 main@mode:
243
244 ; 1 bytes @ 0xE
245 00E0 ds 1
246
247 psect cstackCOMMON
248 0070 __pcstackCOMMON:
249 0070 ?_log:
250 0070 ?_rxStart:
251 ; 0 bytes @ 0x0
252
253 0070 ?_genExponents:
254 ; 0 bytes @ 0x0
255
256 0070 ?_mOffCheckConfigMode:
257 ; 0 bytes @ 0x0
258
259 0070 ?_init:
260 ; 0 bytes @ 0x0
261
262 0070 ?_main:
263 ; 0 bytes @ 0x0
264
265 0070 ?_isr:
266 ; 0 bytes @ 0x0
267
268 0070 ??_isr:
269 ; 0 bytes @ 0x0
270
271 0070 ?_eeRead:
272 ; 0 bytes @ 0x0
273
274 0070 ?_rxDecode:
275 ; 1 bytes @ 0x0
276
277 0070 ?_getU8:
278 ; 1 bytes @ 0x0
279
280 0070 ?_rand:
281 ; 1 bytes @ 0x0
282
283
284 ; 1 bytes @ 0x0
285 0070 ds 4
286 0074 isr@t:
287
288 ; 1 bytes @ 0x4
289 0074 ds 1
290
291 psect cstackBANK0
292 0020 __pcstackBANK0:
293 0020 ??_eeRead:
294 0020 ?_eeWrite:
295 ; 0 bytes @ 0x0
296
297 0020 ??_rxStart:
298 ; 0 bytes @ 0x0
299
300 0020 ??_rxDecode:
301 ; 0 bytes @ 0x0
302
303 0020 ??_getU8:
304 ; 0 bytes @ 0x0
305
306 0020 ??_init:
307 ; 0 bytes @ 0x0
308
309 0020 ?___ftge:
310 ; 0 bytes @ 0x0
311
312 0020 ?___bmul:
313 ; 1 bit
314
315 0020 ?_getU16:
316 ; 1 bytes @ 0x0
317
318 0020 ?___wmul:
319 ; 2 bytes @ 0x0
320
321 0020 ?___lwdiv:
322 ; 2 bytes @ 0x0
323
324 0020 ?___awdiv:
325 ; 2 bytes @ 0x0
326
327 0020 ?_frexp:
328 ; 2 bytes @ 0x0
329
330 0020 ?___ftpack:
331 ; 3 bytes @ 0x0
332
333 0020 ?___ftneg:
334 ; 3 bytes @ 0x0
335
336 0020 ?_getU32:
337 ; 3 bytes @ 0x0
338
339 0020 ?___lmul:
340 ; 4 bytes @ 0x0
341
342 0020 ?___fttol:
343 ; 4 bytes @ 0x0
344
345 0020 ?___llmod:
346 ; 4 bytes @ 0x0
347
348 0020 ?___lldiv:
349 ; 4 bytes @ 0x0
350
351 0020 eeRead@addr:
352 ; 4 bytes @ 0x0
353
354 0020 eeWrite@data:
355 ; 1 bytes @ 0x0
356
357 0020 rxStart@i:
358 ; 1 bytes @ 0x0
359
360 0020 getU8@t:
361 ; 1 bytes @ 0x0
362
363 0020 ___bmul@multiplicand:
364 ; 1 bytes @ 0x0
365
366 0020 ___wmul@multiplier:
367 ; 1 bytes @ 0x0
368
369 0020 ___lwdiv@divisor:
370 ; 2 bytes @ 0x0
371
372 0020 ___awdiv@divisor:
373 ; 2 bytes @ 0x0
374
375 0020 frexp@value:
376 ; 2 bytes @ 0x0
377
378 0020 ___fttol@f1:
379 ; 3 bytes @ 0x0
380
381 0020 ___ftneg@f1:
382 ; 3 bytes @ 0x0
383
384 0020 ___ftge@ff1:
385 ; 3 bytes @ 0x0
386
387 0020 ___ftpack@arg:
388 ; 3 bytes @ 0x0
389
390 0020 ___lmul@multiplier:
391 ; 3 bytes @ 0x0
392
393 0020 ___llmod@divisor:
394 ; 4 bytes @ 0x0
395
396 0020 ___lldiv@divisor:
397 ; 4 bytes @ 0x0
398
399
400 ; 4 bytes @ 0x0
401 0020 ds 1
402 0021 ??_eeWrite:
403 0021 ??___bmul:
404 ; 0 bytes @ 0x1
405
406 0021 ___bmul@product:
407 ; 0 bytes @ 0x1
408
409
410 ; 1 bytes @ 0x1
411 0021 ds 1
412 0022 ??_getU16:
413 0022 eeWrite@addr:
414 ; 0 bytes @ 0x2
415
416 0022 ___bmul@multiplier:
417 ; 1 bytes @ 0x2
418
419 0022 _rxDecode$2016:
420 ; 1 bytes @ 0x2
421
422 0022 ___wmul@multiplicand:
423 ; 2 bytes @ 0x2
424
425 0022 ___lwdiv@dividend:
426 ; 2 bytes @ 0x2
427
428 0022 ___awdiv@dividend:
429 ; 2 bytes @ 0x2
430
431
432 ; 2 bytes @ 0x2
433 0022 ds 1
434 0023 ??_log:
435 0023 ??___ftneg:
436 ; 0 bytes @ 0x3
437
438 0023 log@a:
439 ; 0 bytes @ 0x3
440
441 0023 frexp@eptr:
442 ; 1 bytes @ 0x3
443
444 0023 ___ftpack@exp:
445 ; 1 bytes @ 0x3
446
447 0023 ___ftge@ff2:
448 ; 1 bytes @ 0x3
449
450
451 ; 3 bytes @ 0x3
452 0023 ds 1
453 0024 ??_frexp:
454 0024 ??_getU32:
455 ; 0 bytes @ 0x4
456
457 0024 ??___wmul:
458 ; 0 bytes @ 0x4
459
460 0024 ??___lwdiv:
461 ; 0 bytes @ 0x4
462
463 0024 ??___fttol:
464 ; 0 bytes @ 0x4
465
466 0024 ??___awdiv:
467 ; 0 bytes @ 0x4
468
469 0024 rxDecode@t:
470 ; 0 bytes @ 0x4
471
472 0024 ___lwdiv@counter:
473 ; 1 bytes @ 0x4
474
475 0024 ___awdiv@counter:
476 ; 1 bytes @ 0x4
477
478 0024 ___ftpack@sign:
479 ; 1 bytes @ 0x4
480
481 0024 ___wmul@product:
482 ; 1 bytes @ 0x4
483
484 0024 ___lmul@multiplicand:
485 ; 2 bytes @ 0x4
486
487 0024 ___llmod@dividend:
488 ; 4 bytes @ 0x4
489
490 0024 ___lldiv@dividend:
491 ; 4 bytes @ 0x4
492
493
494 ; 4 bytes @ 0x4
495 0024 ds 1
496 0025 ??___ftpack:
497 0025 rxDecode@i:
498 ; 0 bytes @ 0x5
499
500 0025 ___awdiv@sign:
501 ; 1 bytes @ 0x5
502
503 0025 ___lwdiv@quotient:
504 ; 1 bytes @ 0x5
505
506
507 ; 2 bytes @ 0x5
508 0025 ds 1
509 0026 ??_rand:
510 0026 ?_delay_ms:
511 ; 0 bytes @ 0x6
512
513 0026 ??___ftge:
514 ; 0 bytes @ 0x6
515
516 0026 rxDecode@j:
517 ; 0 bytes @ 0x6
518
519 0026 delay_ms@ms:
520 ; 1 bytes @ 0x6
521
522 0026 ___awdiv@quotient:
523 ; 2 bytes @ 0x6
524
525
526 ; 2 bytes @ 0x6
527 0026 ds 1
528 0027 rxDecode@k:
529 0027 ___fttol@sign1:
530 ; 1 bytes @ 0x7
531
532
533 ; 1 bytes @ 0x7
534 0027 ds 1
535 0028 ??_delay_ms:
536 0028 ??___lmul:
537 ; 0 bytes @ 0x8
538
539 0028 ??___llmod:
540 ; 0 bytes @ 0x8
541
542 0028 ??___lldiv:
543 ; 0 bytes @ 0x8
544
545 0028 ?___ftdiv:
546 ; 0 bytes @ 0x8
547
548 0028 ?___lbtoft:
549 ; 3 bytes @ 0x8
550
551 0028 ?___awtoft:
552 ; 3 bytes @ 0x8
553
554 0028 rand@ret:
555 ; 3 bytes @ 0x8
556
557 0028 ___llmod@counter:
558 ; 1 bytes @ 0x8
559
560 0028 ___awtoft@c:
561 ; 1 bytes @ 0x8
562
563 0028 ___ftdiv@f2:
564 ; 2 bytes @ 0x8
565
566 0028 ___lmul@product:
567 ; 3 bytes @ 0x8
568
569 0028 ___fttol@lval:
570 ; 4 bytes @ 0x8
571
572 0028 ___lldiv@quotient:
573 ; 4 bytes @ 0x8
574
575
576 ; 4 bytes @ 0x8
577 0028 ds 2
578 002A getU16@t:
579 002A delay_ms@t:
580 ; 1 bytes @ 0xA
581
582
583 ; 2 bytes @ 0xA
584 002A ds 1
585 002B ??___lbtoft:
586 002B ??___awtoft:
587 ; 0 bytes @ 0xB
588
589 002B ___lbtoft@c:
590 ; 0 bytes @ 0xB
591
592 002B ___awtoft@sign:
593 ; 1 bytes @ 0xB
594
595 002B ___ftdiv@f1:
596 ; 1 bytes @ 0xB
597
598 002B getU16@v:
599 ; 3 bytes @ 0xB
600
601
602 ; 4 bytes @ 0xB
603 002B ds 1
604 002C ?___ftmul:
605 002C getU32@t:
606 ; 3 bytes @ 0xC
607
608 002C ___fttol@exp1:
609 ; 1 bytes @ 0xC
610
611 002C ___lldiv@counter:
612 ; 1 bytes @ 0xC
613
614 002C delay_ms@d:
615 ; 1 bytes @ 0xC
616
617 002C ___ftmul@f1:
618 ; 2 bytes @ 0xC
619
620
621 ; 3 bytes @ 0xC
622 002C ds 1
623 002D ?___altoft:
624 002D getU32@v:
625 ; 3 bytes @ 0xD
626
627 002D ___altoft@c:
628 ; 4 bytes @ 0xD
629
630
631 ; 4 bytes @ 0xD
632 002D ds 1
633 002E ?_cfgModeShowVal:
634 002E ??___ftdiv:
635 ; 0 bytes @ 0xE
636
637 002E cfgModeShowVal@v:
638 ; 0 bytes @ 0xE
639
640
641 ; 4 bytes @ 0xE
642 002E ds 1
643 002F ___ftmul@f2:
644
645 ; 3 bytes @ 0xF
646 002F ds 2
647 0031 ??___altoft:
648 0031 ___ftdiv@cntr:
649 ; 0 bytes @ 0x11
650
651 0031 ___altoft@exp:
652 ; 1 bytes @ 0x11
653
654
655 ; 1 bytes @ 0x11
656 0031 ds 1
657 0032 ??_cfgModeShowVal:
658 0032 ??___ftmul:
659 ; 0 bytes @ 0x12
660
661 0032 ___altoft@sign:
662 ; 0 bytes @ 0x12
663
664 0032 _cfgModeShowVal$2045:
665 ; 1 bytes @ 0x12
666
667 0032 ___ftdiv@f3:
668 ; 2 bytes @ 0x12
669
670
671 ; 3 bytes @ 0x12
672 0032 ds 2
673 0034 _cfgModeShowVal$2046:
674
675 ; 2 bytes @ 0x14
676 0034 ds 1
677 0035 ___ftdiv@exp:
678 0035 ___ftmul@exp:
679 ; 1 bytes @ 0x15
680
681
682 ; 1 bytes @ 0x15
683 0035 ds 1
684 0036 ___ftdiv@sign:
685 0036 _cfgModeShowVal$2047:
686 ; 1 bytes @ 0x16
687
688 0036 ___ftmul@f3_as_product:
689 ; 2 bytes @ 0x16
690
691
692 ; 3 bytes @ 0x16
693 0036 ds 2
694 0038 cfgModeShowVal@colorMarker:
695
696 ; 1 bytes @ 0x18
697 0038 ds 1
698 0039 cfgModeShowVal@digit:
699 0039 ___ftmul@cntr:
700 ; 1 bytes @ 0x19
701
702
703 ; 1 bytes @ 0x19
704 0039 ds 1
705 003A ___ftmul@sign:
706 003A cfgModeShowVal@t:
707 ; 1 bytes @ 0x1A
708
709
710 ; 4 bytes @ 0x1A
711 003A ds 1
712 003B ?___ftadd:
713 003B ___ftadd@f1:
714 ; 3 bytes @ 0x1B
715
716
717 ; 3 bytes @ 0x1B
718 003B ds 3
719 003E ??_mOffCheckConfigMode:
720 003E ___ftadd@f2:
721 ; 0 bytes @ 0x1E
722
723
724 ; 3 bytes @ 0x1E
725 003E ds 1
726 003F mOffCheckConfigMode@btn:
727
728 ; 1 bytes @ 0x1F
729 003F ds 1
730 0040 mOffCheckConfigMode@t:
731
732 ; 1 bytes @ 0x20
733 0040 ds 1
734 0041 ??___ftadd:
735
736 ; 0 bytes @ 0x21
737 0041 ds 3
738 0044 ___ftadd@sign:
739
740 ; 1 bytes @ 0x24
741 0044 ds 1
742 0045 ___ftadd@exp2:
743
744 ; 1 bytes @ 0x25
745 0045 ds 1
746 0046 ___ftadd@exp1:
747
748 ; 1 bytes @ 0x26
749 0046 ds 1
750 0047 ?_floor:
751 0047 ?_ldexp:
752 ; 3 bytes @ 0x27
753
754 0047 ?___ftsub:
755 ; 3 bytes @ 0x27
756
757 0047 floor@x:
758 ; 3 bytes @ 0x27
759
760 0047 ldexp@value:
761 ; 3 bytes @ 0x27
762
763 0047 ___ftsub@f2:
764 ; 3 bytes @ 0x27
765
766
767 ; 3 bytes @ 0x27
768 0047 ds 3
769 004A ??_floor:
770 004A ldexp@newexp:
771 ; 0 bytes @ 0x2A
772
773 004A floor@i:
774 ; 2 bytes @ 0x2A
775
776 004A ___ftsub@f1:
777 ; 3 bytes @ 0x2A
778
779
780 ; 3 bytes @ 0x2A
781 004A ds 2
782 004C ??_ldexp:
783
784 ; 0 bytes @ 0x2C
785 004C ds 1
786 004D ??___ftsub:
787 004D floor@expon:
788 ; 0 bytes @ 0x2D
789
790
791 ; 2 bytes @ 0x2D
792 004D ds 1
793 004E _ldexp$2201:
794
795 ; 3 bytes @ 0x2E
796 004E ds 3
797 0051 ?_eval_poly:
798 0051 eval_poly@x:
799 ; 3 bytes @ 0x31
800
801
802 ; 3 bytes @ 0x31
803 0051 ds 3
804 0054 eval_poly@d:
805
806 ; 1 bytes @ 0x34
807 0054 ds 1
808 0055 eval_poly@n:
809
810 ; 2 bytes @ 0x35
811 0055 ds 2
812 0057 ??_eval_poly:
813
814 ; 0 bytes @ 0x37
815 0057 ds 2
816 0059 eval_poly@res:
817
818 ; 3 bytes @ 0x39
819 0059 ds 3
820 005C ?_exp:
821 005C exp@x:
822 ; 3 bytes @ 0x3C
823
824
825 ; 3 bytes @ 0x3C
826 005C ds 3
827 005F ??_exp:
828 005F _exp$2163:
829 ; 0 bytes @ 0x3F
830
831
832 ; 3 bytes @ 0x3F
833 005F ds 3
834 0062 exp@exp:
835
836 ; 2 bytes @ 0x42
837 0062 ds 2
838 0064 exp@sign:
839
840 ; 1 bytes @ 0x44
841 0064 ds 1
842 0065 ??_genExponents:
843 0065 genExponents@bri:
844 ; 0 bytes @ 0x45
845
846
847 ; 1 bytes @ 0x45
848 0065 ds 1
849 0066 genExponents@i:
850
851 ; 1 bytes @ 0x46
852 0066 ds 1
853 0067 genExponents@t:
854
855 ; 3 bytes @ 0x47
856 0067 ds 3
857 006A ?_mFadeRun:
858 006A mOffInit@arg:
859 ; 1 bytes @ 0x4A
860
861 006A mOffDestr@arg:
862 ; 1 bytes @ 0x4A
863
864 006A mOffDataInit@arg:
865 ; 1 bytes @ 0x4A
866
867 006A mOffUp@arg:
868 ; 1 bytes @ 0x4A
869
870 006A mOffDown@arg:
871 ; 1 bytes @ 0x4A
872
873 006A mOffO@arg:
874 ; 1 bytes @ 0x4A
875
876 006A mSolidInit@arg:
877 ; 1 bytes @ 0x4A
878
879 006A mSolidDestr@arg:
880 ; 1 bytes @ 0x4A
881
882 006A mSolidUp@arg:
883 ; 1 bytes @ 0x4A
884
885 006A mSolidDown@arg:
886 ; 1 bytes @ 0x4A
887
888 006A mSolidO@arg:
889 ; 1 bytes @ 0x4A
890
891 006A mSolidDataInit@arg:
892 ; 1 bytes @ 0x4A
893
894 006A mFadeInit@arg:
895 ; 1 bytes @ 0x4A
896
897 006A mFadeDestr@arg:
898 ; 1 bytes @ 0x4A
899
900 006A mFadeUp@arg:
901 ; 1 bytes @ 0x4A
902
903 006A mFadeDown@arg:
904 ; 1 bytes @ 0x4A
905
906 006A mFadeO@arg:
907 ; 1 bytes @ 0x4A
908
909 006A mFadeDataInit@arg:
910 ; 1 bytes @ 0x4A
911
912 006A mFadeRun@arg:
913 ; 1 bytes @ 0x4A
914
915
916 ; 1 bytes @ 0x4A
917 006A ds 1
918 006B ??_mOffInit:
919 006B ??_mOffDestr:
920 ; 0 bytes @ 0x4B
921
922 006B ??_mOffDataInit:
923 ; 0 bytes @ 0x4B
924
925 006B ??_mOffUp:
926 ; 0 bytes @ 0x4B
927
928 006B ??_mOffDown:
929 ; 0 bytes @ 0x4B
930
931 006B ??_mOffO:
932 ; 0 bytes @ 0x4B
933
934 006B ??_mSolidInit:
935 ; 0 bytes @ 0x4B
936
937 006B ??_mSolidDestr:
938 ; 0 bytes @ 0x4B
939
940 006B ??_mSolidUp:
941 ; 0 bytes @ 0x4B
942
943 006B ??_mSolidDown:
944 ; 0 bytes @ 0x4B
945
946 006B ??_mSolidO:
947 ; 0 bytes @ 0x4B
948
949 006B ??_mSolidDataInit:
950 ; 0 bytes @ 0x4B
951
952 006B ??_mFadeInit:
953 ; 0 bytes @ 0x4B
954
955 006B ??_mFadeDestr:
956 ; 0 bytes @ 0x4B
957
958 006B ??_mFadeUp:
959 ; 0 bytes @ 0x4B
960
961 006B ??_mFadeDown:
962 ; 0 bytes @ 0x4B
963
964 006B ??_mFadeO:
965 ; 0 bytes @ 0x4B
966
967 006B ??_mFadeDataInit:
968 ; 0 bytes @ 0x4B
969
970 006B ??_mFadeRun:
971 ; 0 bytes @ 0x4B
972
973 006B mSolidO@s0:
974 ; 0 bytes @ 0x4B
975
976 006B mFadeO@s0:
977 ; 1 bytes @ 0x4B
978
979
980 ; 1 bytes @ 0x4B
981 006B ds 1
982 006C mSolidO@s1:
983 006C mFadeInit@i:
984 ; 1 bytes @ 0x4C
985
986 006C mFadeO@s1:
987 ; 1 bytes @ 0x4C
988
989 006C _mFadeUp$2094:
990 ; 1 bytes @ 0x4C
991
992
993 ; 2 bytes @ 0x4C
994 006C ds 1
995 006D mSolidO@s2:
996 006D mFadeO@s2:
997 ; 1 bytes @ 0x4D
998
999 006D mSolidDown@t:
1000 ; 1 bytes @ 0x4D
1001
1002 006D _mFadeDown$2098:
1003 ; 2 bytes @ 0x4D
1004
1005
1006 ; 2 bytes @ 0x4D
1007 006D ds 1
1008 006E mSolidO@s3:
1009 006E mFadeO@s3:
1010 ; 1 bytes @ 0x4E
1011
1012 006E mFadeUp@t:
1013 ; 1 bytes @ 0x4E
1014
1015
1016 ; 2 bytes @ 0x4E
1017 006E ds 1
1018 006F mFadeDown@t:
1019
1020 ; 1 bytes @ 0x4F
1021 006F ds 1
1022 0070 ??_runFuncPtr:
1023
1024 psect text1612
1025 042F __ptext1612:
1026 ;; =============== function _mSolidO ends ============
1027
1028
1029 ;; *************** function _mSolidDown *****************
1030 ;; Defined at:
1031 ;; line 416 in file "Z:\pic\irRX\main.c"
1032 ;; Parameters: Size Location Type
1033 ;; arg 1 74[BANK0 ] unsigned char
1034 ;; Auto vars: Size Location Type
1035 ;; t 2 77[BANK0 ] short
1036 ;; Return value: Size Location Type
1037 ;; 1 wreg unsigned char
1038 ;; Registers used:
1039 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
1040 ;; Tracked objects:
1041 ;; On entry : 1F/1
1042 ;; On exit : 1F/0
1043 ;; Unchanged: FFFE0/0
1044 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1045 ;; Params: 0 1 0 0
1046 ;; Locals: 0 2 0 0
1047 ;; Temps: 0 2 0 0
1048 ;; Totals: 0 5 0 0
1049 ;;Total ram usage: 5 bytes
1050 ;; Hardware stack levels used: 1
1051 ;; Hardware stack levels required when called: 2
1052 ;; This function calls:
1053 ;; ___awdiv
1054 ;; This function is called by:
1055 ;; _runFuncPtr
1056 ;; This function uses a non-reentrant model
1057 ;;
1058 042F _mSolidDown:
1059
1060 ;main.c: 418: Int16 t = gLed[tempData.solid.selector];
1061
1062 ; Regs used in _mSolidDown: [wreg+fsr1l-status,0+pclath+cstack]
1063 042F 0820 movf _tempData^(0+128),w
1064 0430 3E75 addlw _gLed& (0+255)
1065 0431 0086 movwf 6
1066 0432 0187 clrf 7
1067 0433 0801 movf 1,w
1068 0434 0020 movlb 0 ; select bank0
1069 0435 00ED movwf mSolidDown@t
1070 0436 3004 movlw 4
1071 0437 01EE clrf mSolidDown@t+1
1072
1073 ;main.c: 420: t -= 1 + (t + 3) / 4;
1074 0438 00A0 movwf ?___awdiv
1075 0439 01A1 clrf ?___awdiv+1
1076 043A 086D movf mSolidDown@t,w
1077 043B 3E03 addlw 3
1078 043C 00A2 movwf ?___awdiv+2
1079 043D 3000 movlw 0
1080 043E 3D6E addwfc mSolidDown@t+1,w
1081 043F 00A3 movwf ?___awdiv+3
1082 0440 2573 3184 fcall ___awdiv
1083 0442 0820 movf ?___awdiv,w
1084 0443 3E01 addlw 1
1085 0444 00EB movwf ??_mSolidDown
1086 0445 3000 movlw 0
1087 0446 3D21 addwfc ?___awdiv+1,w
1088 0447 00EC movwf ??_mSolidDown+1
1089 0448 086B movf ??_mSolidDown,w
1090 0449 02ED subwf mSolidDown@t,f
1091 044A 086C movf ??_mSolidDown+1,w
1092 044B 3BEE subwfb mSolidDown@t+1,f
1093
1094 ;main.c: 421: if(t < 0) t = 0;
1095 044C 1FEE btfss mSolidDown@t+1,7
1096 044D 2C50 goto l5957
1097 044E 01ED clrf mSolidDown@t
1098 044F 01EE clrf mSolidDown@t+1
1099 0450 l5957:
1100
1101 ;main.c: 422: gLed[tempData.solid.selector] = t;
1102 0450 0021 movlb 1 ; select bank1
1103 0451 0820 movf _tempData^(0+128),w
1104 0452 3E75 addlw _gLed& (0+255)
1105 0453 0086 movwf 6
1106 0454 0187 clrf 7
1107 0455 0020 movlb 0 ; select bank0
1108 0456 086D movf mSolidDown@t,w
1109 0457 0081 movwf 1
1110
1111 ;main.c: 424: return 0;
1112 0458 3400 retlw 0
1113 0459 __end_of_mSolidDown:
1114 0459 __ptext1604:
1115 ;; =============== function _runFuncPtr ends ============
1116
1117
1118 ;; *************** function _mFadeRun *****************
1119 ;; Defined at:
1120 ;; line 599 in file "Z:\pic\irRX\main.c"
1121 ;; Parameters: Size Location Type
1122 ;; arg 1 74[BANK0 ] unsigned char
1123 ;; Auto vars: Size Location Type
1124 ;; i 1 1[BANK1 ] unsigned char
1125 ;; t 1 0[BANK1 ] unsigned char
1126 ;; Return value: Size Location Type
1127 ;; 1 wreg unsigned char
1128 ;; Registers used:
1129 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
1130 ;; Tracked objects:
1131 ;; On entry : 1F/1
1132 ;; On exit : 1F/1
1133 ;; Unchanged: FFE00/0
1134 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1135 ;; Params: 0 1 0 0
1136 ;; Locals: 0 0 2 0
1137 ;; Temps: 0 5 0 0
1138 ;; Totals: 0 6 2 0
1139 ;;Total ram usage: 8 bytes
1140 ;; Hardware stack levels used: 1
1141 ;; Hardware stack levels required when called: 4
1142 ;; This function calls:
1143 ;; ___awdiv
1144 ;; _rand
1145 ;; This function is called by:
1146 ;; _runFuncPtr
1147 ;; This function uses a non-reentrant model
1148 ;;
1149 0459 _mFadeRun:
1150
1151 ;main.c: 601: UInt8 i, t;
1152 ;main.c: 603: if(!--tempData.fade.speedLeft){
1153
1154 ; Regs used in _mFadeRun: [wreg-status,0+pclath+cstack]
1155 0459 3001 movlw 1
1156 045A 02A6 subwf (_tempData^(0+128)+6),f
1157 045B 3000 movlw 0
1158 045C 3BA7 subwfb ((_tempData+1)^(0+128)+6),f
1159 045D 0827 movf ((_tempData+1)^(0+128)+6),w
1160 045E 0426 iorwf (_tempData^(0+128)+6),w
1161 045F 1D03 skipz
1162 0460 3400 retlw 0
1163
1164 ;main.c: 605: tempData.fade.speedLeft = ((UInt16)tempData.fade.speed) << 7;
1165 0461 0824 movf (_tempData^(0+128)+4),w
1166 0462 397F andlw 127
1167 0463 0020 movlb 0 ; select bank0
1168 0464 00EB movwf ??_mFadeRun
1169 0465 3007 movlw 7
1170 0466 01EC clrf ??_mFadeRun+1
1171 0467 u4795:
1172 0467 35EB lslf ??_mFadeRun,f
1173 0468 0DEC rlf ??_mFadeRun+1,f
1174 0469 0B89 decfsz 9,f
1175 046A 2C67 goto u4795
1176 046B 086B movf ??_mFadeRun,w
1177 046C 0021 movlb 1 ; select bank1
1178 046D 00A6 movwf (_tempData^(0+128)+6)
1179 046E 0020 movlb 0 ; select bank0
1180 046F 086C movf ??_mFadeRun+1,w
1181 0470 0021 movlb 1 ; select bank1
1182 0471 00A7 movwf ((_tempData+1)^(0+128)+6)
1183
1184 ;main.c: 607: for(i = 0; i < 4; i++){
1185 0472 01D3 clrf mFadeRun@i^(0+128)
1186 0473 l6563:
1187
1188 ;main.c: 610: if(tempData.fade.tmp[i].changing){
1189 0473 0853 movf mFadeRun@i^(0+128),w
1190 0474 3EA0 addlw _tempData& (0+255)
1191 0475 0086 movwf 6
1192 0476 0187 clrf 7
1193
1194 ;main.c: 611: t = tempData.fade.tmp[i].val;
1195 0477 0853 movf mFadeRun@i^(0+128),w
1196 0478 3EA0 addlw _tempData& (0+255)
1197 0479 1E81 btfss 1,5
1198 047A 2C9F goto L2
1199 047B 0086 movwf 6
1200 047C 0801 movf 1,w
1201 047D 391F andlw 31
1202 047E 00D2 movwf mFadeRun@t^(0+128)
1203
1204 ;main.c: 612: if(tempData.fade.tmp[i].rising){
1205 047F 0853 movf mFadeRun@i^(0+128),w
1206 0480 3EA0 addlw _tempData& (0+255)
1207 0481 0086 movwf 6
1208 0482 1F01 btfss 1,6
1209 0483 2C90 goto l6573
1210
1211 ;main.c: 613: if(t == 0x1F){
1212 0484 0852 movf mFadeRun@t^(0+128),w
1213 0485 3A1F xorlw 31
1214 0486 1D03 skipz
1215 0487 2C8E goto l6571
1216 0488 l6569:
1217
1218 ;main.c: 614: tempData.fade.tmp[i].changing = 0;
1219 0488 0853 movf mFadeRun@i^(0+128),w
1220 0489 3EA0 addlw _tempData& (0+255)
1221 048A 0086 movwf 6
1222 048B 0187 clrf 7
1223 048C 1281 bcf 1,5
1224
1225 ;main.c: 615: }
1226 048D 2C94 goto l6579
1227 048E l6571:
1228
1229 ;main.c: 616: else{
1230 ;main.c: 617: t++;
1231 048E 0AD2 incf mFadeRun@t^(0+128),f
1232 048F 2C94 goto l6579
1233 0490 l6573:
1234
1235 ;main.c: 620: else{
1236 ;main.c: 621: if(t == 0){
1237 0490 08D2 movf mFadeRun@t^(0+128),f
1238 0491 1903 btfsc 3,2
1239 0492 2C88 goto l6569
1240
1241 ;main.c: 624: else{
1242 ;main.c: 625: t--;
1243 0493 03D2 decf mFadeRun@t^(0+128),f
1244 0494 l6579:
1245
1246 ;main.c: 626: }
1247 ;main.c: 627: }
1248 ;main.c: 628: tempData.fade.tmp[i].val = t;
1249 0494 0853 movf mFadeRun@i^(0+128),w
1250 0495 3EA0 addlw _tempData& (0+255)
1251 0496 0086 movwf 6
1252 0497 0187 clrf 7
1253 0498 0801 movf 1,w
1254 0499 0652 xorwf mFadeRun@t^(0+128),w
1255 049A 39E0 andlw -32
1256 049B 0652 xorwf mFadeRun@t^(0+128),w
1257 049C 0081 movwf 1
1258
1259 ;main.c: 629: }
1260 ;main.c: 632: if(tempData.fade.tmp[i].changing && (rand() < ((0x1F - tempData.fade.tmp[i
+ ].val) / 4 + 1))){
1261 049D 0853 movf mFadeRun@i^(0+128),w
1262 049E 3EA0 addlw _tempData& (0+255)
1263 049F L2:
1264 049F 0086 movwf 6
1265 04A0 0187 clrf 7
1266 04A1 1E81 btfss 1,5
1267 04A2 2CD2 goto l6587
1268 04A3 3004 movlw 4
1269 04A4 0020 movlb 0 ; select bank0
1270 04A5 00A0 movwf ?___awdiv
1271 04A6 01A1 clrf ?___awdiv+1
1272 04A7 0021 movlb 1 ; select bank1
1273 04A8 0853 movf mFadeRun@i^(0+128),w
1274 04A9 3EA0 addlw _tempData& (0+255)
1275 04AA 0086 movwf 6
1276 04AB 0801 movf 1,w
1277 04AC 391F andlw 31
1278 04AD 0020 movlb 0 ; select bank0
1279 04AE 00EB movwf ??_mFadeRun
1280 04AF 301F movlw 31
1281 04B0 00EC movwf ??_mFadeRun+1
1282 04B1 086B movf ??_mFadeRun,w
1283 04B2 026C subwf ??_mFadeRun+1,w
1284 04B3 00A2 movwf ?___awdiv+2
1285 04B4 01A3 clrf ?___awdiv+3
1286 04B5 1C03 skipc
1287 04B6 03A3 decf ?___awdiv+3,f
1288 04B7 2573 3184 fcall ___awdiv
1289 04B9 0820 movf ?___awdiv,w
1290 04BA 3E01 addlw 1
1291 04BB 00ED movwf ??_mFadeRun+2
1292 04BC 3000 movlw 0
1293 04BD 3D21 addwfc ?___awdiv+1,w
1294 04BE 00EE movwf ??_mFadeRun+3
1295 04BF 254A 3184 fcall _rand
1296 04C1 00EF movwf ??_mFadeRun+4
1297 04C2 086E movf ??_mFadeRun+3,w
1298 04C3 3A80 xorlw 128
1299 04C4 3C80 sublw 128
1300 04C5 1D03 skipz
1301 04C6 2CC9 goto u4855
1302 04C7 086D movf ??_mFadeRun+2,w
1303 04C8 026F subwf ??_mFadeRun+4,w
1304 04C9 u4855:
1305 04C9 1803 skipnc
1306 04CA 2CD2 goto l6587
1307
1308 ;main.c: 634: tempData.fade.tmp[i].changing = 0;
1309 04CB 0021 movlb 1 ; select bank1
1310 04CC 0853 movf mFadeRun@i^(0+128),w
1311 04CD 3EA0 addlw _tempData& (0+255)
1312 04CE 0086 movwf 6
1313 04CF 0187 clrf 7
1314 04D0 1281 bcf 1,5
1315
1316 ;main.c: 635: }
1317 04D1 2D11 goto l6595
1318 04D2 l6587:
1319
1320 ;main.c: 636: else if(!tempData.fade.tmp[i].changing && (rand() < (8))){
1321 04D2 0021 movlb 1 ; select bank1
1322 04D3 0853 movf mFadeRun@i^(0+128),w
1323 04D4 3EA0 addlw _tempData& (0+255)
1324 04D5 0086 movwf 6
1325 04D6 0187 clrf 7
1326 04D7 1A81 btfsc 1,5
1327 04D8 2D11 goto l6595
1328 04D9 254A 3184 fcall _rand
1329 04DB 00EB movwf ??_mFadeRun
1330 04DC 3008 movlw 8
1331 04DD 026B subwf ??_mFadeRun,w
1332 04DE 1803 skipnc
1333 04DF 2D11 goto l6595
1334
1335 ;main.c: 638: tempData.fade.tmp[i].changing = 1;
1336 04E0 0021 movlb 1 ; select bank1
1337 04E1 0853 movf mFadeRun@i^(0+128),w
1338 04E2 3EA0 addlw _tempData& (0+255)
1339 04E3 0086 movwf 6
1340 04E4 0187 clrf 7
1341 04E5 1681 bsf 1,5
1342
1343 ;main.c: 639: tempData.fade.tmp[i].rising = !(rand() < (tempData.fade.tmp[i].val << 3));
1344 04E6 0853 movf mFadeRun@i^(0+128),w
1345 04E7 3EA0 addlw _tempData& (0+255)
1346 04E8 0086 movwf 6
1347 04E9 0801 movf 1,w
1348 04EA 391F andlw 31
1349 04EB 0020 movlb 0 ; select bank0
1350 04EC 00EB movwf ??_mFadeRun
1351 04ED 01EC clrf ??_mFadeRun+1
1352 04EE 35EB lslf ??_mFadeRun,f
1353 04EF 0DEC rlf ??_mFadeRun+1,f
1354 04F0 35EB lslf ??_mFadeRun,f
1355 04F1 0DEC rlf ??_mFadeRun+1,f
1356 04F2 35EB lslf ??_mFadeRun,f
1357 04F3 0DEC rlf ??_mFadeRun+1,f
1358 04F4 254A 3184 fcall _rand
1359 04F6 00ED movwf ??_mFadeRun+2
1360 04F7 086C movf ??_mFadeRun+1,w
1361 04F8 3A80 xorlw 128
1362 04F9 3C80 sublw 128
1363 04FA 1D03 skipz
1364 04FB 2CFE goto u4885
1365 04FC 086B movf ??_mFadeRun,w
1366 04FD 026D subwf ??_mFadeRun+2,w
1367 04FE u4885:
1368 04FE 3000 movlw 0
1369 04FF 1803 skipnc
1370 0500 3001 movlw 1
1371 0501 0020 movlb 0 ; select bank0
1372 0502 00EE movwf ??_mFadeRun+3
1373 0503 0021 movlb 1 ; select bank1
1374 0504 0853 movf mFadeRun@i^(0+128),w
1375 0505 3EA0 addlw _tempData& (0+255)
1376 0506 0086 movwf 6
1377 0507 0187 clrf 7
1378 0508 0020 movlb 0 ; select bank0
1379 0509 0EEE swapf ??_mFadeRun+3,f
1380 050A 0DEE rlf ??_mFadeRun+3,f
1381 050B 0DEE rlf ??_mFadeRun+3,f
1382 050C 0801 movf 1,w
1383 050D 066E xorwf ??_mFadeRun+3,w
1384 050E 39BF andlw -65
1385 050F 066E xorwf ??_mFadeRun+3,w
1386 0510 0081 movwf 1
1387 0511 l6595:
1388 0511 0021 movlb 1 ; select bank1
1389 0512 3004 movlw 4
1390 0513 0AD3 incf mFadeRun@i^(0+128),f
1391 0514 0253 subwf mFadeRun@i^(0+128),w
1392 0515 1C03 skipc
1393 0516 2C73 goto l6563
1394
1395 ;main.c: 640: }
1396 ;main.c: 641: }
1397 ;main.c: 643: gLed[0] = exponents[tempData.fade.tmp[0].val];
1398 0517 0820 movf _tempData^(0+128),w
1399 0518 391F andlw 31
1400 0519 3E20 addlw _exponents& (0+255)
1401 051A 0086 movwf 6
1402 051B 3001 movlw 1 ; select bank2/3
1403 051C 0087 movwf 7
1404 051D 0801 movf 1,w
1405 051E 00F5 movwf _gLed
1406
1407 ;main.c: 644: if(gLed[0] > 32) gLed[0] = ((gLed[0] - 32) >> 1) + 32;
1408 051F 3021 movlw 33
1409 0520 0275 subwf _gLed,w
1410 0521 1C03 skipc
1411 0522 2D31 goto l6605
1412 0523 0875 movf _gLed,w
1413 0524 3EE0 addlw 224
1414 0525 0020 movlb 0 ; select bank0
1415 0526 00EB movwf ??_mFadeRun
1416 0527 30FF movlw 255
1417 0528 1803 skipnc
1418 0529 3000 movlw 0
1419 052A 00EC movwf ??_mFadeRun+1
1420 052B 0D6C rlf ??_mFadeRun+1,w
1421 052C 0CEC rrf ??_mFadeRun+1,f
1422 052D 0CEB rrf ??_mFadeRun,f
1423 052E 086B movf ??_mFadeRun,w
1424 052F 3E20 addlw 32
1425 0530 00F5 movwf _gLed
1426 0531 l6605:
1427
1428 ;main.c: 645: for(i = 1; i < 4; i++) gLed[i] = exponents[tempData.fade.tmp[i].val];
1429 0531 0021 movlb 1 ; select bank1
1430 0532 01D3 clrf mFadeRun@i^(0+128)
1431 0533 0AD3 incf mFadeRun@i^(0+128),f
1432 0534 l6611:
1433 0534 0853 movf mFadeRun@i^(0+128),w
1434 0535 3E75 addlw _gLed& (0+255)
1435 0536 0086 movwf 6
1436 0537 0187 clrf 7
1437 0538 0853 movf mFadeRun@i^(0+128),w
1438 0539 3EA0 addlw _tempData& (0+255)
1439 053A 0084 movwf 4
1440 053B 0185 clrf 5
1441 053C 0800 movf 0,w
1442 053D 391F andlw 31
1443 053E 3E20 addlw _exponents& (0+255)
1444 053F 0084 movwf 4
1445 0540 3001 movlw 1 ; select bank2/3
1446 0541 0085 movwf 5
1447 0542 0800 movf 0,w
1448 0543 0081 movwf 1
1449 0544 3004 movlw 4
1450 0545 0AD3 incf mFadeRun@i^(0+128),f
1451 0546 0253 subwf mFadeRun@i^(0+128),w
1452 0547 1803 btfsc 3,0
1453
1454 ;main.c: 646: }
1455 ;main.c: 648: return 0;
1456 0548 3400 retlw 0
1457 0549 2D34 goto l6611
1458 054A __end_of_mFadeRun:
1459 054A __ptext1630:
1460 ;; =============== function _cfgModeShowVal ends ============
1461
1462
1463 ;; *************** function _rand *****************
1464 ;; Defined at:
1465 ;; line 217 in file "Z:\pic\irRX\main.c"
1466 ;; Parameters: Size Location Type
1467 ;; None
1468 ;; Auto vars: Size Location Type
1469 ;; ret 1 8[BANK0 ] unsigned char
1470 ;; Return value: Size Location Type
1471 ;; 1 wreg unsigned char
1472 ;; Registers used:
1473 ;; wreg, status,2, status,0, pclath, cstack
1474 ;; Tracked objects:
1475 ;; On entry : 1E/0
1476 ;; On exit : 1F/0
1477 ;; Unchanged: FFE00/0
1478 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1479 ;; Params: 0 0 0 0
1480 ;; Locals: 0 1 0 0
1481 ;; Temps: 0 2 0 0
1482 ;; Totals: 0 3 0 0
1483 ;;Total ram usage: 3 bytes
1484 ;; Hardware stack levels used: 1
1485 ;; Hardware stack levels required when called: 3
1486 ;; This function calls:
1487 ;; ___wmul
1488 ;; _log
1489 ;; This function is called by:
1490 ;; _mFadeRun
1491 ;; This function uses a non-reentrant model
1492 ;;
1493 054A _rand:
1494
1495 ;main.c: 219: UInt8 ret;
1496 ;main.c: 221: gRngSeed = gRngSeed * 0x5EED + 13;
1497
1498 ; Regs used in _rand: [wreg+status,2+status,0+pclath+cstack]
1499 054A 0021 movlb 1 ; select bank1
1500 054B 0862 movf (_gRngSeed+1)^(0+128),w
1501 054C 0020 movlb 0 ; select bank0
1502 054D 00A1 movwf ?___wmul+1
1503 054E 0021 movlb 1 ; select bank1
1504 054F 0861 movf _gRngSeed^(0+128),w
1505 0550 0020 movlb 0 ; select bank0
1506 0551 00A0 movwf ?___wmul
1507 0552 30ED movlw 237
1508 0553 00A2 movwf ?___wmul+2
1509 0554 305E movlw 94
1510 0555 00A3 movwf ?___wmul+3
1511 0556 3183 23BF 3184 fcall ___wmul
1512 0559 0820 movf ?___wmul,w
1513 055A 3E0D addlw 13
1514 055B 0021 movlb 1 ; select bank1
1515 055C 00E1 movwf _gRngSeed^(0+128)
1516 055D 3000 movlw 0
1517 055E 0020 movlb 0 ; select bank0
1518 055F 3D21 addwfc ?___wmul+1,w
1519 0560 0021 movlb 1 ; select bank1
1520 0561 00E2 movwf (_gRngSeed+1)^(0+128)
1521
1522 ;main.c: 222: ret = gRngSeed >> 5;
1523 0562 0020 movlb 0 ; select bank0
1524 0563 00A7 movwf ??_rand+1
1525 0564 0021 movlb 1 ; select bank1
1526 0565 0861 movf _gRngSeed^(0+128),w
1527 0566 0020 movlb 0 ; select bank0
1528 0567 00A6 movwf ??_rand
1529 0568 3005 movlw 5
1530 0569 u4535:
1531 0569 36A7 lsrf ??_rand+1,f
1532 056A 0CA6 rrf ??_rand,f
1533 056B 0B89 decfsz 9,f
1534 056C 2D69 goto u4535
1535 056D 0826 movf ??_rand,w
1536 056E 00A8 movwf rand@ret
1537
1538 ;main.c: 224: log(ret);
1539 056F 25B3 fcall _log
1540
1541 ;main.c: 225: return ret;
1542 0570 0020 movlb 0 ; select bank0
1543 0571 0828 movf rand@ret,w
1544 0572 0008 return
1545 0573 __end_of_rand:
1546 0573 __ptext1645:
1547 ;; =============== function ___llmod ends ============
1548
1549
1550 ;; *************** function ___awdiv *****************
1551 ;; Defined at:
1552 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\awdiv.c"
1553 ;; Parameters: Size Location Type
1554 ;; divisor 2 0[BANK0 ] int
1555 ;; dividend 2 2[BANK0 ] int
1556 ;; Auto vars: Size Location Type
1557 ;; quotient 2 6[BANK0 ] int
1558 ;; sign 1 5[BANK0 ] unsigned char
1559 ;; counter 1 4[BANK0 ] unsigned char
1560 ;; Return value: Size Location Type
1561 ;; 2 0[BANK0 ] int
1562 ;; Registers used:
1563 ;; wreg, status,2, status,0
1564 ;; Tracked objects:
1565 ;; On entry : 1F/0
1566 ;; On exit : 1F/0
1567 ;; Unchanged: FFFE0/0
1568 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1569 ;; Params: 0 4 0 0
1570 ;; Locals: 0 4 0 0
1571 ;; Temps: 0 0 0 0
1572 ;; Totals: 0 8 0 0
1573 ;;Total ram usage: 8 bytes
1574 ;; Hardware stack levels used: 1
1575 ;; Hardware stack levels required when called: 1
1576 ;; This function calls:
1577 ;; Nothing
1578 ;; This function is called by:
1579 ;; _mSolidDown
1580 ;; _mFadeRun
1581 ;; This function uses a non-reentrant model
1582 ;;
1583 0573 ___awdiv:
1584
1585 ; Regs used in ___awdiv: [wreg+status,2+status,0]
1586 0573 01A5 clrf ___awdiv@sign
1587 0574 1FA1 btfss ___awdiv@divisor+1,7
1588 0575 2D7D goto l5775
1589 0576 09A0 comf ___awdiv@divisor,f
1590 0577 09A1 comf ___awdiv@divisor+1,f
1591 0578 0AA0 incf ___awdiv@divisor,f
1592 0579 1903 skipnz
1593 057A 0AA1 incf ___awdiv@divisor+1,f
1594 057B 01A5 clrf ___awdiv@sign
1595 057C 0AA5 incf ___awdiv@sign,f
1596 057D l5775:
1597 057D 1FA3 btfss ___awdiv@dividend+1,7
1598 057E 2D86 goto l5781
1599 057F 09A2 comf ___awdiv@dividend,f
1600 0580 09A3 comf ___awdiv@dividend+1,f
1601 0581 0AA2 incf ___awdiv@dividend,f
1602 0582 1903 skipnz
1603 0583 0AA3 incf ___awdiv@dividend+1,f
1604 0584 3001 movlw 1
1605 0585 06A5 xorwf ___awdiv@sign,f
1606 0586 l5781:
1607 0586 01A6 clrf ___awdiv@quotient
1608 0587 01A7 clrf ___awdiv@quotient+1
1609 0588 0821 movf ___awdiv@divisor+1,w
1610 0589 0420 iorwf ___awdiv@divisor,w
1611 058A 1903 skipnz
1612 058B 2DA6 goto l5803
1613 058C 01A4 clrf ___awdiv@counter
1614 058D L14:
1615 058D 0AA4 incf ___awdiv@counter,f
1616 058E 1BA1 btfsc ___awdiv@divisor+1,7
1617 058F 2D93 goto l5791
1618 0590 35A0 lslf ___awdiv@divisor,f
1619 0591 0DA1 rlf ___awdiv@divisor+1,f
1620 0592 2D8D goto L14
1621 0593 l5791:
1622 0593 35A6 lslf ___awdiv@quotient,f
1623 0594 0DA7 rlf ___awdiv@quotient+1,f
1624 0595 0821 movf ___awdiv@divisor+1,w
1625 0596 0223 subwf ___awdiv@dividend+1,w
1626 0597 1D03 skipz
1627 0598 2D9B goto u3945
1628 0599 0820 movf ___awdiv@divisor,w
1629 059A 0222 subwf ___awdiv@dividend,w
1630 059B u3945:
1631 059B 1C03 skipc
1632 059C 2DA2 goto l5799
1633 059D 0820 movf ___awdiv@divisor,w
1634 059E 02A2 subwf ___awdiv@dividend,f
1635 059F 0821 movf ___awdiv@divisor+1,w
1636 05A0 3BA3 subwfb ___awdiv@dividend+1,f
1637 05A1 1426 bsf ___awdiv@quotient,0
1638 05A2 l5799:
1639 05A2 36A1 lsrf ___awdiv@divisor+1,f
1640 05A3 0CA0 rrf ___awdiv@divisor,f
1641 05A4 0BA4 decfsz ___awdiv@counter,f
1642 05A5 2D93 goto l5791
1643 05A6 l5803:
1644 05A6 0825 movf ___awdiv@sign,w
1645 05A7 1903 btfsc 3,2
1646 05A8 2DAE goto l5807
1647 05A9 09A6 comf ___awdiv@quotient,f
1648 05AA 09A7 comf ___awdiv@quotient+1,f
1649 05AB 0AA6 incf ___awdiv@quotient,f
1650 05AC 1903 skipnz
1651 05AD 0AA7 incf ___awdiv@quotient+1,f
1652 05AE l5807:
1653 05AE 0827 movf ___awdiv@quotient+1,w
1654 05AF 00A1 movwf ?___awdiv+1
1655 05B0 0826 movf ___awdiv@quotient,w
1656 05B1 00A0 movwf ?___awdiv
1657 05B2 0008 return
1658 05B3 __end_of___awdiv:
1659 05B3 __ptext1640:
1660 ;; =============== function _delay_ms ends ============
1661
1662
1663 ;; *************** function _log *****************
1664 ;; Defined at:
1665 ;; line 60 in file "Z:\pic\irRX\main.c"
1666 ;; Parameters: Size Location Type
1667 ;; a 1 wreg unsigned char
1668 ;; Auto vars: Size Location Type
1669 ;; a 1 3[BANK0 ] unsigned char
1670 ;; Return value: Size Location Type
1671 ;; None void
1672 ;; Registers used:
1673 ;; wreg, status,2, status,0, pclath, cstack
1674 ;; Tracked objects:
1675 ;; On entry : 1F/0
1676 ;; On exit : 1F/1
1677 ;; Unchanged: FFE00/0
1678 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1679 ;; Params: 0 0 0 0
1680 ;; Locals: 0 1 0 0
1681 ;; Temps: 0 0 0 0
1682 ;; Totals: 0 1 0 0
1683 ;;Total ram usage: 1 bytes
1684 ;; Hardware stack levels used: 1
1685 ;; Hardware stack levels required when called: 2
1686 ;; This function calls:
1687 ;; _eeWrite
1688 ;; This function is called by:
1689 ;; _rand
1690 ;; This function uses a non-reentrant model
1691 ;;
1692 05B3 _log:
1693
1694 ; Regs used in _log: [wreg+status,2+status,0+pclath+cstack]
1695 ;log@a stored from wreg
1696 05B3 00A3 movwf log@a
1697
1698 ;main.c: 62: static UInt16 addr = 0;
1699 ;main.c: 64: if(addr < 0x70) eeWrite(addr++, a);
1700 05B4 3000 movlw 0
1701 05B5 0021 movlb 1 ; select bank1
1702 05B6 022F subwf (log@addr+1)^(0+128),w
1703 05B7 3070 movlw 112
1704 05B8 1903 skipnz
1705 05B9 022E subwf log@addr^(0+128),w
1706 05BA 1803 skipnc
1707 05BB 0008 return
1708 05BC 0020 movlb 0 ; select bank0
1709 05BD 0823 movf log@a,w
1710 05BE 00A0 movwf ?_eeWrite
1711 05BF 0021 movlb 1 ; select bank1
1712 05C0 082E movf log@addr^(0+128),w
1713 05C1 3189 2197 fcall _eeWrite
1714 05C3 0021 movlb 1 ; select bank1
1715 05C4 0AAE incf log@addr^(0+128),f
1716 05C5 1903 skipnz
1717 05C6 0AAF incf (log@addr+1)^(0+128),f
1718 05C7 0008 return
1719 05C8 __end_of_log:
1720
1721 psect text1613
1722 06E3 __ptext1613:
1723 ;; =============== function _mSolidDown ends ============
1724
1725
1726 ;; *************** function _mSolidUp *****************
1727 ;; Defined at:
1728 ;; line 405 in file "Z:\pic\irRX\main.c"
1729 ;; Parameters: Size Location Type
1730 ;; arg 1 74[BANK0 ] unsigned char
1731 ;; Auto vars: Size Location Type
1732 ;; t 2 0[BANK1 ] unsigned short
1733 ;; Return value: Size Location Type
1734 ;; 1 wreg unsigned char
1735 ;; Registers used:
1736 ;; wreg, fsr1l, fsr1h, status,2, status,0
1737 ;; Tracked objects:
1738 ;; On entry : 1F/1
1739 ;; On exit : 1F/1
1740 ;; Unchanged: FFFE0/0
1741 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1742 ;; Params: 0 1 0 0
1743 ;; Locals: 0 0 2 0
1744 ;; Temps: 0 4 0 0
1745 ;; Totals: 0 5 2 0
1746 ;;Total ram usage: 7 bytes
1747 ;; Hardware stack levels used: 1
1748 ;; Hardware stack levels required when called: 1
1749 ;; This function calls:
1750 ;; Nothing
1751 ;; This function is called by:
1752 ;; _runFuncPtr
1753 ;; This function uses a non-reentrant model
1754 ;;
1755 06E3 _mSolidUp:
1756
1757 ;main.c: 407: UInt16 t = gLed[tempData.solid.selector];
1758
1759 ; Regs used in _mSolidUp: [wreg+fsr1l-status,0]
1760 06E3 0820 movf _tempData^(0+128),w
1761 06E4 3E75 addlw _gLed& (0+255)
1762 06E5 0086 movwf 6
1763 06E6 0187 clrf 7
1764 06E7 0801 movf 1,w
1765 06E8 00D2 movwf mSolidUp@t^(0+128)
1766 06E9 01D3 clrf (mSolidUp@t+1)^(0+128)
1767
1768 ;main.c: 409: t += 1 + (t + 3) / 4;
1769 06EA 3E03 addlw 3
1770 06EB 0020 movlb 0 ; select bank0
1771 06EC 00EB movwf ??_mSolidUp
1772 06ED 3000 movlw 0
1773 06EE 0021 movlb 1 ; select bank1
1774 06EF 3D53 addwfc (mSolidUp@t+1)^(0+128),w
1775 06F0 0020 movlb 0 ; select bank0
1776 06F1 00EC movwf ??_mSolidUp+1
1777 06F2 36EC lsrf ??_mSolidUp+1,f
1778 06F3 0CEB rrf ??_mSolidUp,f
1779 06F4 36EC lsrf ??_mSolidUp+1,f
1780 06F5 0CEB rrf ??_mSolidUp,f
1781 06F6 086B movf ??_mSolidUp,w
1782 06F7 3E01 addlw 1
1783 06F8 00ED movwf ??_mSolidUp+2
1784 06F9 3000 movlw 0
1785 06FA 3D6C addwfc ??_mSolidUp+1,w
1786 06FB 00EE movwf ??_mSolidUp+3
1787 06FC 086D movf ??_mSolidUp+2,w
1788 06FD 0021 movlb 1 ; select bank1
1789 06FE 07D2 addwf mSolidUp@t^(0+128),f
1790 06FF 0020 movlb 0 ; select bank0
1791 0700 086E movf ??_mSolidUp+3,w
1792 0701 0021 movlb 1 ; select bank1
1793 0702 3DD3 addwfc (mSolidUp@t+1)^(0+128),f
1794
1795 ;main.c: 410: if(t > 255) t = 255;
1796 0703 3001 movlw 1
1797 0704 0253 subwf (mSolidUp@t+1)^(0+128),w
1798 0705 3000 movlw 0
1799 0706 1903 skipnz
1800 0707 0252 subwf mSolidUp@t^(0+128),w
1801 0708 1C03 skipc
1802 0709 2F0D goto l5609
1803 070A 30FF movlw 255
1804 070B 00D2 movwf mSolidUp@t^(0+128)
1805 070C 01D3 clrf (mSolidUp@t+1)^(0+128)
1806 070D l5609:
1807
1808 ;main.c: 411: gLed[tempData.solid.selector] = t;
1809 070D 0820 movf _tempData^(0+128),w
1810 070E 3E75 addlw _gLed& (0+255)
1811 070F 0086 movwf 6
1812 0710 0187 clrf 7
1813 0711 0852 movf mSolidUp@t^(0+128),w
1814 0712 0081 movwf 1
1815
1816 ;main.c: 413: return 0;
1817 0713 3400 retlw 0
1818 0714 __end_of_mSolidUp:
1819
1820 psect text1616
1821 0129 __ptext1616:
1822 ;; =============== function _mSolidInit ends ============
1823
1824
1825 ;; *************** function _mOffO *****************
1826 ;; Defined at:
1827 ;; line 377 in file "Z:\pic\irRX\main.c"
1828 ;; Parameters: Size Location Type
1829 ;; arg 1 74[BANK0 ] unsigned char
1830 ;; Auto vars: Size Location Type
1831 ;; None
1832 ;; Return value: Size Location Type
1833 ;; 1 wreg unsigned char
1834 ;; Registers used:
1835 ;; wreg, status,2, status,0, pclath, cstack
1836 ;; Tracked objects:
1837 ;; On entry : 1F/1
1838 ;; On exit : 1E/0
1839 ;; Unchanged: FFFE0/0
1840 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1841 ;; Params: 0 1 0 0
1842 ;; Locals: 0 0 0 0
1843 ;; Temps: 0 0 0 0
1844 ;; Totals: 0 1 0 0
1845 ;;Total ram usage: 1 bytes
1846 ;; Hardware stack levels used: 1
1847 ;; Hardware stack levels required when called: 5
1848 ;; This function calls:
1849 ;; _mOffCheckConfigMode
1850 ;; This function is called by:
1851 ;; _runFuncPtr
1852 ;; This function uses a non-reentrant model
1853 ;;
1854 0129 _mOffO:
1855
1856 ;main.c: 379: mOffCheckConfigMode(0b10);
1857
1858 ; Regs used in _mOffO: [wreg+status,2+status,0+pclath+cstack]
1859 0129 3002 movlw 2
1860 012A 2171 fcall _mOffCheckConfigMode
1861
1862 ;main.c: 380: return 0;
1863 012B 3400 retlw 0
1864 012C __end_of_mOffO:
1865 012C __ptext1617:
1866 ;; =============== function _mOffO ends ============
1867
1868
1869 ;; *************** function _mOffDown *****************
1870 ;; Defined at:
1871 ;; line 371 in file "Z:\pic\irRX\main.c"
1872 ;; Parameters: Size Location Type
1873 ;; arg 1 74[BANK0 ] unsigned char
1874 ;; Auto vars: Size Location Type
1875 ;; None
1876 ;; Return value: Size Location Type
1877 ;; 1 wreg unsigned char
1878 ;; Registers used:
1879 ;; wreg, status,2, status,0, pclath, cstack
1880 ;; Tracked objects:
1881 ;; On entry : 1F/1
1882 ;; On exit : 1E/0
1883 ;; Unchanged: FFFE0/0
1884 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1885 ;; Params: 0 1 0 0
1886 ;; Locals: 0 0 0 0
1887 ;; Temps: 0 0 0 0
1888 ;; Totals: 0 1 0 0
1889 ;;Total ram usage: 1 bytes
1890 ;; Hardware stack levels used: 1
1891 ;; Hardware stack levels required when called: 5
1892 ;; This function calls:
1893 ;; _mOffCheckConfigMode
1894 ;; This function is called by:
1895 ;; _runFuncPtr
1896 ;; This function uses a non-reentrant model
1897 ;;
1898 012C _mOffDown:
1899
1900 ;main.c: 373: mOffCheckConfigMode(0b01);
1901
1902 ; Regs used in _mOffDown: [wreg+status,2+status,0+pclath+cstack]
1903 012C 3001 movlw 1
1904 012D 2171 fcall _mOffCheckConfigMode
1905
1906 ;main.c: 374: return 0;
1907 012E 3400 retlw 0
1908 012F __end_of_mOffDown:
1909 012F __ptext1618:
1910 ;; =============== function _mOffDown ends ============
1911
1912
1913 ;; *************** function _mOffUp *****************
1914 ;; Defined at:
1915 ;; line 365 in file "Z:\pic\irRX\main.c"
1916 ;; Parameters: Size Location Type
1917 ;; arg 1 74[BANK0 ] unsigned char
1918 ;; Auto vars: Size Location Type
1919 ;; None
1920 ;; Return value: Size Location Type
1921 ;; 1 wreg unsigned char
1922 ;; Registers used:
1923 ;; wreg, status,2, status,0, pclath, cstack
1924 ;; Tracked objects:
1925 ;; On entry : 1F/1
1926 ;; On exit : 1E/0
1927 ;; Unchanged: FFFE0/0
1928 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1929 ;; Params: 0 1 0 0
1930 ;; Locals: 0 0 0 0
1931 ;; Temps: 0 0 0 0
1932 ;; Totals: 0 1 0 0
1933 ;;Total ram usage: 1 bytes
1934 ;; Hardware stack levels used: 1
1935 ;; Hardware stack levels required when called: 5
1936 ;; This function calls:
1937 ;; _mOffCheckConfigMode
1938 ;; This function is called by:
1939 ;; _runFuncPtr
1940 ;; This function uses a non-reentrant model
1941 ;;
1942 012F _mOffUp:
1943
1944 ;main.c: 367: mOffCheckConfigMode(0b00);
1945
1946 ; Regs used in _mOffUp: [wreg+status,2+status,0+pclath+cstack]
1947 012F 3000 movlw 0
1948 0130 2171 fcall _mOffCheckConfigMode
1949
1950 ;main.c: 368: return 0;
1951 0131 3400 retlw 0
1952 0132 __end_of_mOffUp:
1953 0132 __ptext1607:
1954 ;; =============== function _mFadeO ends ============
1955
1956
1957 ;; *************** function _mFadeUp *****************
1958 ;; Defined at:
1959 ;; line 493 in file "Z:\pic\irRX\main.c"
1960 ;; Parameters: Size Location Type
1961 ;; arg 1 74[BANK0 ] unsigned char
1962 ;; Auto vars: Size Location Type
1963 ;; t 2 78[BANK0 ] unsigned short
1964 ;; Return value: Size Location Type
1965 ;; 1 wreg unsigned char
1966 ;; Registers used:
1967 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
1968 ;; Tracked objects:
1969 ;; On entry : 1F/1
1970 ;; On exit : 1E/0
1971 ;; Unchanged: FFE00/0
1972 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1973 ;; Params: 0 1 0 0
1974 ;; Locals: 0 4 0 0
1975 ;; Temps: 0 1 0 0
1976 ;; Totals: 0 6 0 0
1977 ;;Total ram usage: 6 bytes
1978 ;; Hardware stack levels used: 1
1979 ;; Hardware stack levels required when called: 6
1980 ;; This function calls:
1981 ;; ___wmul
1982 ;; _genExponents
1983 ;; This function is called by:
1984 ;; _runFuncPtr
1985 ;; This function uses a non-reentrant model
1986 ;;
1987 0132 _mFadeUp:
1988
1989 ;main.c: 495: UInt16 t;
1990 ;main.c: 497: if(tempData.fade.adjBri){
1991
1992 ; Regs used in _mFadeUp: [allreg]
1993 0132 1FA4 btfss (_tempData^(0+128)+4),7
1994 0133 295A goto l6705
1995
1996 ;main.c: 499: t = (((UInt16)tempData.fade.bri)*5)/4;
1997 0134 0825 movf (_tempData^(0+128)+5),w
1998 0135 0020 movlb 0 ; select bank0
1999 0136 00A0 movwf ?___wmul
2000 0137 3005 movlw 5
2001 0138 01A1 clrf ?___wmul+1
2002 0139 00A2 movwf ?___wmul+2
2003 013A 01A3 clrf ?___wmul+3
2004 013B 23BF 3181 fcall ___wmul
2005 013D 0821 movf ?___wmul+1,w
2006 013E 00EF movwf mFadeUp@t+1
2007 013F 0820 movf ?___wmul,w
2008 0140 00EE movwf mFadeUp@t
2009 0141 3001 movlw 1
2010 0142 36EF lsrf mFadeUp@t+1,f
2011 0143 0CEE rrf mFadeUp@t,f
2012 0144 36EF lsrf mFadeUp@t+1,f
2013 0145 0CEE rrf mFadeUp@t,f
2014
2015 ;main.c: 500: tempData.fade.bri = (t > 255) ? 255 : t;
2016 0146 026F subwf mFadeUp@t+1,w
2017 0147 3000 movlw 0
2018 0148 1903 skipnz
2019 0149 026E subwf mFadeUp@t,w
2020 014A 1803 skipnc
2021 014B 2951 goto l6701
2022 014C 086F movf mFadeUp@t+1,w
2023 014D 00ED movwf _mFadeUp$2094+1
2024 014E 086E movf mFadeUp@t,w
2025 014F 00EC movwf _mFadeUp$2094
2026 0150 2954 goto l1272
2027 0151 l6701:
2028 0151 30FF movlw 255
2029 0152 00EC movwf _mFadeUp$2094
2030 0153 01ED clrf _mFadeUp$2094+1
2031 0154 l1272:
2032 0154 086C movf _mFadeUp$2094,w
2033 0155 0021 movlb 1 ; select bank1
2034 0156 00A5 movwf (_tempData^(0+128)+5)
2035
2036 ;main.c: 501: genExponents(tempData.fade.bri);
2037 0157 318B 2328 fcall _genExponents
2038
2039 ;main.c: 502: }
2040 0159 3400 retlw 0
2041 015A l6705:
2042
2043 ;main.c: 503: else{
2044 ;main.c: 505: if(tempData.fade.speed > 2) tempData.fade.speed--;
2045 015A 0824 movf (_tempData^(0+128)+4),w
2046 015B 397F andlw 127
2047 015C 0020 movlb 0 ; select bank0
2048 015D 00EB movwf ??_mFadeUp
2049 015E 3003 movlw 3
2050 015F 026B subwf ??_mFadeUp,w
2051 0160 1C03 skipc
2052 0161 3400 retlw 0
2053 0162 0021 movlb 1 ; select bank1
2054 0163 0824 movf (_tempData^(0+128)+4),w
2055 0164 397F andlw 127
2056 0165 0020 movlb 0 ; select bank0
2057 0166 00EB movwf ??_mFadeUp
2058 0167 03EB decf ??_mFadeUp,f
2059 0168 0021 movlb 1 ; select bank1
2060 0169 0824 movf (_tempData^(0+128)+4),w
2061 016A 0020 movlb 0 ; select bank0
2062 016B 066B xorwf ??_mFadeUp,w
2063 016C 3980 andlw -128
2064 016D 066B xorwf ??_mFadeUp,w
2065 016E 0021 movlb 1 ; select bank1
2066 016F 00A4 movwf (_tempData^(0+128)+4)
2067
2068 ;main.c: 506: }
2069 ;main.c: 507: return 0;
2070 0170 3400 retlw 0
2071 0171 __end_of_mFadeUp:
2072 0171 __ptext1624:
2073 ;; =============== function _genExponents ends ============
2074
2075
2076 ;; *************** function _mOffCheckConfigMode *****************
2077 ;; Defined at:
2078 ;; line 340 in file "Z:\pic\irRX\main.c"
2079 ;; Parameters: Size Location Type
2080 ;; btn 1 wreg unsigned char
2081 ;; Auto vars: Size Location Type
2082 ;; btn 1 31[BANK0 ] unsigned char
2083 ;; t 1 32[BANK0 ] unsigned char
2084 ;; Return value: Size Location Type
2085 ;; None void
2086 ;; Registers used:
2087 ;; wreg, status,2, status,0, pclath, cstack
2088 ;; Tracked objects:
2089 ;; On entry : 1F/1
2090 ;; On exit : 1E/0
2091 ;; Unchanged: FFFE0/0
2092 ;; Data sizes: COMMON BANK0 BANK1 BANK2
2093 ;; Params: 0 0 0 0
2094 ;; Locals: 0 2 0 0
2095 ;; Temps: 0 1 0 0
2096 ;; Totals: 0 3 0 0
2097 ;;Total ram usage: 3 bytes
2098 ;; Hardware stack levels used: 1
2099 ;; Hardware stack levels required when called: 4
2100 ;; This function calls:
2101 ;; _cfgModeShowVal
2102 ;; This function is called by:
2103 ;; _mOffUp
2104 ;; _mOffDown
2105 ;; _mOffO
2106 ;; This function uses a non-reentrant model
2107 ;;
2108 0171 _mOffCheckConfigMode:
2109
2110 ; Regs used in _mOffCheckConfigMode: [wreg+status,2+status,0+pclath+cstack]
2111 ;mOffCheckConfigMode@btn stored from wreg
2112 0171 0020 movlb 0 ; select bank0
2113 0172 00BF movwf mOffCheckConfigMode@btn
2114
2115 ;main.c: 342: UInt8 t = (tempData.off.configModeStatus & 3) ^ btn;
2116 0173 0021 movlb 1 ; select bank1
2117 0174 0820 movf _tempData^(0+128),w
2118 0175 3903 andlw 3
2119 0176 0020 movlb 0 ; select bank0
2120 0177 063F xorwf mOffCheckConfigMode@btn,w
2121 0178 00C0 movwf mOffCheckConfigMode@t
2122
2123 ;main.c: 344: tempData.off.configModeStatus >>= 2;
2124 0179 0021 movlb 1 ; select bank1
2125 017A 36A1 lsrf (_tempData+1)^(0+128),f
2126 017B 0CA0 rrf _tempData^(0+128),f
2127 017C 36A1 lsrf (_tempData+1)^(0+128),f
2128 017D 0CA0 rrf _tempData^(0+128),f
2129
2130 ;main.c: 345: if(!t && (tempData.off.configModeStatus & 3) == 0b11){
2131 017E 0020 movlb 0 ; select bank0
2132 017F 08C0 movf mOffCheckConfigMode@t,f
2133 0180 1D03 skipz
2134 0181 29AC goto l6549
2135 0182 3003 movlw 3
2136 0183 0021 movlb 1 ; select bank1
2137 0184 0520 andwf _tempData^(0+128),w
2138 0185 0020 movlb 0 ; select bank0
2139 0186 00BE movwf ??_mOffCheckConfigMode
2140 0187 3A03 xorlw 3
2141 0188 1D03 skipz
2142 0189 29AC goto l6549
2143 018A 3004 movlw 4
2144
2145 ;main.c: 348: {
2146 ;main.c: 349: gLed[0] = 0;
2147 018B 01F5 clrf _gLed
2148
2149 ;main.c: 350: gLed[1] = 0;
2150 018C 01F6 clrf _gLed+1
2151
2152 ;main.c: 351: gLed[2] = 0;
2153 018D 01F7 clrf _gLed+2
2154
2155 ;main.c: 352: gLed[3] = 0;
2156 018E 01F8 clrf _gLed+3
2157
2158 ;main.c: 353: cfgModeShowVal(0b010, gSwVersion);
2159 018F 00AE movwf ?_cfgModeShowVal
2160 0190 3002 movlw 2
2161 0191 01AF clrf ?_cfgModeShowVal+1
2162 0192 01B0 clrf ?_cfgModeShowVal+2
2163 0193 01B1 clrf ?_cfgModeShowVal+3
2164 0194 21E9 3181 fcall _cfgModeShowVal
2165
2166 ;main.c: 354: cfgModeShowVal(0b001, gBattCentiVolts);
2167 0196 0021 movlb 1 ; select bank1
2168 0197 0828 movf _gBattCentiVolts^(0+128),w
2169 0198 0020 movlb 0 ; select bank0
2170 0199 00AE movwf ?_cfgModeShowVal
2171 019A 0021 movlb 1 ; select bank1
2172 019B 0829 movf (_gBattCentiVolts+1)^(0+128),w
2173 019C 0020 movlb 0 ; select bank0
2174 019D 00AF movwf ?_cfgModeShowVal+1
2175 019E 3001 movlw 1
2176 019F 01B0 clrf ?_cfgModeShowVal+2
2177 01A0 01B1 clrf ?_cfgModeShowVal+3
2178 01A1 21E9 fcall _cfgModeShowVal
2179
2180 ;main.c: 355: gLed[0] = 0;
2181 01A2 01F5 clrf _gLed
2182
2183 ;main.c: 356: gLed[1] = 0;
2184 01A3 01F6 clrf _gLed+1
2185
2186 ;main.c: 357: gLed[2] = 0;
2187 01A4 01F7 clrf _gLed+2
2188
2189 ;main.c: 358: gLed[3] = 0;
2190 01A5 01F8 clrf _gLed+3
2191 01A6 l6547:
2192
2193 ;main.c: 359: }
2194 ;main.c: 360: tempData.off.configModeStatus = gConfigSteps;
2195 01A6 3044 movlw 68
2196 01A7 0021 movlb 1 ; select bank1
2197 01A8 00A0 movwf _tempData^(0+128)
2198 01A9 303A movlw 58
2199 01AA 00A1 movwf (_tempData^(0+128)+1)
2200
2201 ;main.c: 361: }
2202 01AB 0008 return
2203 01AC l6549:
2204
2205 ;main.c: 362: else if(t) tempData.off.configModeStatus = gConfigSteps;
2206 01AC 0840 movf mOffCheckConfigMode@t,w
2207 01AD 1903 btfsc 3,2
2208 01AE 0008 return
2209 01AF 29A6 goto l6547
2210 01B0 __end_of_mOffCheckConfigMode:
2211 01B0 __ptext1611:
2212 ;; =============== function _mSolidDataInit ends ============
2213
2214
2215 ;; *************** function _mSolidO *****************
2216 ;; Defined at:
2217 ;; line 427 in file "Z:\pic\irRX\main.c"
2218 ;; Parameters: Size Location Type
2219 ;; arg 1 74[BANK0 ] unsigned char
2220 ;; Auto vars: Size Location Type
2221 ;; s3 1 78[BANK0 ] unsigned char
2222 ;; s2 1 77[BANK0 ] unsigned char
2223 ;; s1 1 76[BANK0 ] unsigned char
2224 ;; s0 1 75[BANK0 ] unsigned char
2225 ;; Return value: Size Location Type
2226 ;; 1 wreg unsigned char
2227 ;; Registers used:
2228 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
2229 ;; Tracked objects:
2230 ;; On entry : 1F/1
2231 ;; On exit : 1F/0
2232 ;; Unchanged: FFFE0/0
2233 ;; Data sizes: COMMON BANK0 BANK1 BANK2
2234 ;; Params: 0 1 0 0
2235 ;; Locals: 0 4 0 0
2236 ;; Temps: 0 0 0 0
2237 ;; Totals: 0 5 0 0
2238 ;;Total ram usage: 5 bytes
2239 ;; Hardware stack levels used: 1
2240 ;; Hardware stack levels required when called: 3
2241 ;; This function calls:
2242 ;; _delay_ms
2243 ;; This function is called by:
2244 ;; _runFuncPtr
2245 ;; This function uses a non-reentrant model
2246 ;;
2247 01B0 _mSolidO:
2248
2249 ;main.c: 429: UInt8 s0, s1, s2, s3;
2250 ;main.c: 431: if(++tempData.solid.selector == 4) tempData.solid.selector = 0;
2251
2252 ; Regs used in _mSolidO: [wreg+fsr1l-status,0+pclath+cstack]
2253 01B0 0AA0 incf _tempData^(0+128),f
2254 01B1 0820 movf _tempData^(0+128),w
2255 01B2 3A04 xorlw 4
2256 01B3 1903 btfsc 3,2
2257 01B4 01A0 clrf _tempData^(0+128)
2258
2259 ;main.c: 432: s0 = gLed[0];
2260 01B5 0875 movf _gLed,w
2261 01B6 0020 movlb 0 ; select bank0
2262 01B7 00EB movwf mSolidO@s0
2263
2264 ;main.c: 433: s1 = gLed[1];
2265 01B8 0876 movf _gLed+1,w
2266 01B9 00EC movwf mSolidO@s1
2267
2268 ;main.c: 434: s2 = gLed[2];
2269 01BA 0877 movf _gLed+2,w
2270 01BB 00ED movwf mSolidO@s2
2271
2272 ;main.c: 435: s3 = gLed[3];
2273 01BC 0878 movf _gLed+3,w
2274 01BD 00EE movwf mSolidO@s3
2275 01BE 3064 movlw 100
2276
2277 ;main.c: 436: gLed[0] = 0;
2278 01BF 01F5 clrf _gLed
2279
2280 ;main.c: 437: gLed[1] = 0;
2281 01C0 01F6 clrf _gLed+1
2282
2283 ;main.c: 438: gLed[2] = 0;
2284 01C1 01F7 clrf _gLed+2
2285
2286 ;main.c: 439: gLed[3] = 0;
2287 01C2 01F8 clrf _gLed+3
2288
2289 ;main.c: 440: delay_ms(100);
2290 01C3 00A6 movwf ?_delay_ms
2291 01C4 01A7 clrf ?_delay_ms+1
2292 01C5 2348 3181 fcall _delay_ms
2293
2294 ;main.c: 441: gLed[tempData.solid.selector] = 100;
2295 01C7 0021 movlb 1 ; select bank1
2296 01C8 0820 movf _tempData^(0+128),w
2297 01C9 3E75 addlw _gLed& (0+255)
2298 01CA 0086 movwf 6
2299 01CB 3064 movlw 100
2300 01CC 0187 clrf 7
2301 01CD 0081 movwf 1
2302
2303 ;main.c: 442: delay_ms(500);
2304 01CE 30F4 movlw 244
2305 01CF 0020 movlb 0 ; select bank0
2306 01D0 00A6 movwf ?_delay_ms
2307 01D1 3001 movlw 1
2308 01D2 00A7 movwf ?_delay_ms+1
2309 01D3 2348 3181 fcall _delay_ms
2310
2311 ;main.c: 443: gLed[tempData.solid.selector] = 0;
2312 01D5 0021 movlb 1 ; select bank1
2313 01D6 0820 movf _tempData^(0+128),w
2314 01D7 3E75 addlw _gLed& (0+255)
2315 01D8 0086 movwf 6
2316 01D9 3064 movlw 100
2317 01DA 0187 clrf 7
2318 01DB 0181 clrf 1
2319
2320 ;main.c: 444: delay_ms(100);
2321 01DC 0020 movlb 0 ; select bank0
2322 01DD 00A6 movwf ?_delay_ms
2323 01DE 01A7 clrf ?_delay_ms+1
2324 01DF 2348 fcall _delay_ms
2325
2326 ;main.c: 445: gLed[0] = s0;
2327 01E0 086B movf mSolidO@s0,w
2328 01E1 00F5 movwf _gLed
2329
2330 ;main.c: 446: gLed[1] = s1;
2331 01E2 086C movf mSolidO@s1,w
2332 01E3 00F6 movwf _gLed+1
2333
2334 ;main.c: 447: gLed[2] = s2;
2335 01E4 086D movf mSolidO@s2,w
2336 01E5 00F7 movwf _gLed+2
2337
2338 ;main.c: 448: gLed[3] = s3;
2339 01E6 086E movf mSolidO@s3,w
2340 01E7 00F8 movwf _gLed+3
2341
2342 ;main.c: 450: return 0;
2343 01E8 3400 retlw 0
2344 01E9 __end_of_mSolidO:
2345 01E9 __ptext1629:
2346 ;; =============== function _floor ends ============
2347
2348
2349 ;; *************** function _cfgModeShowVal *****************
2350 ;; Defined at:
2351 ;; line 287 in file "Z:\pic\irRX\main.c"
2352 ;; Parameters: Size Location Type
2353 ;; colorMarker 1 wreg unsigned char
2354 ;; v 4 14[BANK0 ] unsigned long
2355 ;; Auto vars: Size Location Type
2356 ;; colorMarker 1 24[BANK0 ] unsigned char
2357 ;; t 4 26[BANK0 ] unsigned long
2358 ;; digit 1 25[BANK0 ] unsigned char
2359 ;; Return value: Size Location Type
2360 ;; None void
2361 ;; Registers used:
2362 ;; wreg, status,2, status,0, pclath, cstack
2363 ;; Tracked objects:
2364 ;; On entry : 1F/0
2365 ;; On exit : 1F/0
2366 ;; Unchanged: FFFE0/0
2367 ;; Data sizes: COMMON BANK0 BANK1 BANK2
2368 ;; Params: 0 4 0 0
2369 ;; Locals: 0 12 0 0
2370 ;; Temps: 0 0 0 0
2371 ;; Totals: 0 16 0 0
2372 ;;Total ram usage: 16 bytes
2373 ;; Hardware stack levels used: 1
2374 ;; Hardware stack levels required when called: 3
2375 ;; This function calls:
2376 ;; _delay_ms
2377 ;; ___lldiv
2378 ;; ___lmul
2379 ;; ___llmod
2380 ;; This function is called by:
2381 ;; _mOffCheckConfigMode
2382 ;; This function uses a non-reentrant model
2383 ;;
2384 01E9 _cfgModeShowVal:
2385
2386 ; Regs used in _cfgModeShowVal: [wreg+status,2+status,0+pclath+cstack]
2387 ;cfgModeShowVal@colorMarker stored from wreg
2388 01E9 00B8 movwf cfgModeShowVal@colorMarker
2389
2390 ;main.c: 290: {
2391 ;main.c: 291: gLed[0] = 0;
2392 01EA 01F5 clrf _gLed
2393
2394 ;main.c: 292: gLed[1] = (colorMarker & 4) ? 100 : 0;
2395 01EB 1938 btfsc cfgModeShowVal@colorMarker,2
2396 01EC 29EF goto l6271
2397 01ED 01B2 clrf _cfgModeShowVal$2045
2398 01EE 29F1 goto L5
2399 01EF l6271:
2400 01EF 3064 movlw 100
2401 01F0 00B2 movwf _cfgModeShowVal$2045
2402 01F1 L5:
2403 01F1 01B3 clrf _cfgModeShowVal$2045+1
2404 01F2 0832 movf _cfgModeShowVal$2045,w
2405 01F3 00F6 movwf _gLed+1
2406
2407 ;main.c: 293: gLed[2] = (colorMarker & 2) ? 100 : 0;
2408 01F4 18B8 btfsc cfgModeShowVal@colorMarker,1
2409 01F5 29F8 goto l6277
2410 01F6 01B4 clrf _cfgModeShowVal$2046
2411 01F7 29FA goto L6
2412 01F8 l6277:
2413 01F8 3064 movlw 100
2414 01F9 00B4 movwf _cfgModeShowVal$2046
2415 01FA L6:
2416 01FA 01B5 clrf _cfgModeShowVal$2046+1
2417 01FB 0834 movf _cfgModeShowVal$2046,w
2418 01FC 00F7 movwf _gLed+2
2419
2420 ;main.c: 294: gLed[3] = (colorMarker & 1) ? 100 : 0;
2421 01FD 1838 btfsc cfgModeShowVal@colorMarker,0
2422 01FE 2A01 goto l6283
2423 01FF 01B6 clrf _cfgModeShowVal$2047
2424 0200 2A03 goto L7
2425 0201 l6283:
2426 0201 3064 movlw 100
2427 0202 00B6 movwf _cfgModeShowVal$2047
2428 0203 L7:
2429 0203 01B7 clrf _cfgModeShowVal$2047+1
2430 0204 0836 movf _cfgModeShowVal$2047,w
2431 0205 00F8 movwf _gLed+3
2432
2433 ;main.c: 295: delay_ms(1000);
2434 0206 30E8 movlw 232
2435 0207 00A6 movwf ?_delay_ms
2436 0208 3003 movlw 3
2437 0209 00A7 movwf ?_delay_ms+1
2438 020A 2348 3181 fcall _delay_ms
2439
2440 ;main.c: 296: gLed[1] = 0;
2441 020C 01F6 clrf _gLed+1
2442
2443 ;main.c: 297: gLed[2] = 0;
2444 020D 01F7 clrf _gLed+2
2445
2446 ;main.c: 298: gLed[3] = 0;
2447 020E 01F8 clrf _gLed+3
2448
2449 ;main.c: 299: }
2450 ;main.c: 302: {
2451 ;main.c: 303: UInt32 t = v;
2452 020F 0831 movf cfgModeShowVal@v+3,w
2453 0210 00BD movwf cfgModeShowVal@t+3
2454 0211 0830 movf cfgModeShowVal@v+2,w
2455 0212 00BC movwf cfgModeShowVal@t+2
2456 0213 082F movf cfgModeShowVal@v+1,w
2457 0214 00BB movwf cfgModeShowVal@t+1
2458 0215 082E movf cfgModeShowVal@v,w
2459 0216 00BA movwf cfgModeShowVal@t
2460
2461 ;main.c: 304: UInt8 digit = 0;
2462 0217 01B9 clrf cfgModeShowVal@digit
2463 0218 l6301:
2464 ;main.c: 307: while(t){
2465
2466 0218 083D movf cfgModeShowVal@t+3,w
2467 0219 043C iorwf cfgModeShowVal@t+2,w
2468 021A 043B iorwf cfgModeShowVal@t+1,w
2469 021B 043A iorwf cfgModeShowVal@t,w
2470 021C 1903 btfsc 3,2
2471 021D 2A37 goto l6303
2472 021E 300A movlw 10
2473
2474 ;main.c: 308: digit++;
2475 021F 0AB9 incf cfgModeShowVal@digit,f
2476
2477 ;main.c: 309: t /= 10;
2478 0220 00A0 movwf ?___lldiv
2479 0221 01A1 clrf ?___lldiv+1
2480 0222 01A2 clrf ?___lldiv+2
2481 0223 01A3 clrf ?___lldiv+3
2482 0224 083D movf cfgModeShowVal@t+3,w
2483 0225 00A7 movwf ?___lldiv+7
2484 0226 083C movf cfgModeShowVal@t+2,w
2485 0227 00A6 movwf ?___lldiv+6
2486 0228 083B movf cfgModeShowVal@t+1,w
2487 0229 00A5 movwf ?___lldiv+5
2488 022A 083A movf cfgModeShowVal@t,w
2489 022B 00A4 movwf ?___lldiv+4
2490 022C 2380 3181 fcall ___lldiv
2491 022E 0823 movf ?___lldiv+3,w
2492 022F 00BD movwf cfgModeShowVal@t+3
2493 0230 0822 movf ?___lldiv+2,w
2494 0231 00BC movwf cfgModeShowVal@t+2
2495 0232 0821 movf ?___lldiv+1,w
2496 0233 00BB movwf cfgModeShowVal@t+1
2497 0234 0820 movf ?___lldiv,w
2498 0235 00BA movwf cfgModeShowVal@t
2499 0236 2A18 goto l6301
2500 0237 l6303:
2501
2502 ;main.c: 310: }
2503 ;main.c: 311: if(!digit) digit = 1;
2504 0237 08B9 movf cfgModeShowVal@digit,f
2505 0238 1D03 skipz
2506 0239 2A3C goto l6307
2507 023A 01B9 clrf cfgModeShowVal@digit
2508 023B 0AB9 incf cfgModeShowVal@digit,f
2509 023C l6307:
2510
2511 ;main.c: 314: t = 1;
2512 023C 01BA clrf cfgModeShowVal@t
2513 023D 0ABA incf cfgModeShowVal@t,f
2514 023E 01BB clrf cfgModeShowVal@t+1
2515 023F 01BC clrf cfgModeShowVal@t+2
2516 0240 01BD clrf cfgModeShowVal@t+3
2517
2518 ;main.c: 315: while(--digit) t *= 10;
2519 0241 2A59 goto l6311
2520 0242 l6309:
2521 0242 300A movlw 10
2522 0243 00A0 movwf ?___lmul
2523 0244 01A1 clrf ?___lmul+1
2524 0245 01A2 clrf ?___lmul+2
2525 0246 01A3 clrf ?___lmul+3
2526 0247 083D movf cfgModeShowVal@t+3,w
2527 0248 00A7 movwf ?___lmul+7
2528 0249 083C movf cfgModeShowVal@t+2,w
2529 024A 00A6 movwf ?___lmul+6
2530 024B 083B movf cfgModeShowVal@t+1,w
2531 024C 00A5 movwf ?___lmul+5
2532 024D 083A movf cfgModeShowVal@t,w
2533 024E 00A4 movwf ?___lmul+4
2534 024F 23D4 3181 fcall ___lmul
2535 0251 0823 movf ?___lmul+3,w
2536 0252 00BD movwf cfgModeShowVal@t+3
2537 0253 0822 movf ?___lmul+2,w
2538 0254 00BC movwf cfgModeShowVal@t+2
2539 0255 0821 movf ?___lmul+1,w
2540 0256 00BB movwf cfgModeShowVal@t+1
2541 0257 0820 movf ?___lmul,w
2542 0258 00BA movwf cfgModeShowVal@t
2543 0259 l6311:
2544 0259 0BB9 decfsz cfgModeShowVal@digit,f
2545 025A 2A42 goto l6309
2546 025B l6313:
2547
2548 ;main.c: 319: digit = v / t;
2549 025B 083D movf cfgModeShowVal@t+3,w
2550 025C 00A3 movwf ?___lldiv+3
2551 025D 083C movf cfgModeShowVal@t+2,w
2552 025E 00A2 movwf ?___lldiv+2
2553 025F 083B movf cfgModeShowVal@t+1,w
2554 0260 00A1 movwf ?___lldiv+1
2555 0261 083A movf cfgModeShowVal@t,w
2556 0262 00A0 movwf ?___lldiv
2557 0263 0831 movf cfgModeShowVal@v+3,w
2558 0264 00A7 movwf ?___lldiv+7
2559 0265 0830 movf cfgModeShowVal@v+2,w
2560 0266 00A6 movwf ?___lldiv+6
2561 0267 082F movf cfgModeShowVal@v+1,w
2562 0268 00A5 movwf ?___lldiv+5
2563 0269 082E movf cfgModeShowVal@v,w
2564 026A 00A4 movwf ?___lldiv+4
2565 026B 2380 3181 fcall ___lldiv
2566 026D 0820 movf ?___lldiv,w
2567 026E 00B9 movwf cfgModeShowVal@digit
2568
2569 ;main.c: 320: v %= t;
2570 026F 083D movf cfgModeShowVal@t+3,w
2571 0270 00A3 movwf ?___llmod+3
2572 0271 083C movf cfgModeShowVal@t+2,w
2573 0272 00A2 movwf ?___llmod+2
2574 0273 083B movf cfgModeShowVal@t+1,w
2575 0274 00A1 movwf ?___llmod+1
2576 0275 083A movf cfgModeShowVal@t,w
2577 0276 00A0 movwf ?___llmod
2578 0277 0831 movf cfgModeShowVal@v+3,w
2579 0278 00A7 movwf ?___llmod+7
2580 0279 0830 movf cfgModeShowVal@v+2,w
2581 027A 00A6 movwf ?___llmod+6
2582 027B 082F movf cfgModeShowVal@v+1,w
2583 027C 00A5 movwf ?___llmod+5
2584 027D 082E movf cfgModeShowVal@v,w
2585 027E 00A4 movwf ?___llmod+4
2586 027F 23F9 3181 fcall ___llmod
2587 0281 0823 movf ?___llmod+3,w
2588 0282 00B1 movwf cfgModeShowVal@v+3
2589 0283 0822 movf ?___llmod+2,w
2590 0284 00B0 movwf cfgModeShowVal@v+2
2591 0285 0821 movf ?___llmod+1,w
2592 0286 00AF movwf cfgModeShowVal@v+1
2593 0287 0820 movf ?___llmod,w
2594 0288 00AE movwf cfgModeShowVal@v
2595
2596 ;main.c: 321: t /= 10;
2597 0289 300A movlw 10
2598 028A 00A0 movwf ?___lldiv
2599 028B 01A1 clrf ?___lldiv+1
2600 028C 01A2 clrf ?___lldiv+2
2601 028D 01A3 clrf ?___lldiv+3
2602 028E 083D movf cfgModeShowVal@t+3,w
2603 028F 00A7 movwf ?___lldiv+7
2604 0290 083C movf cfgModeShowVal@t+2,w
2605 0291 00A6 movwf ?___lldiv+6
2606 0292 083B movf cfgModeShowVal@t+1,w
2607 0293 00A5 movwf ?___lldiv+5
2608 0294 083A movf cfgModeShowVal@t,w
2609 0295 00A4 movwf ?___lldiv+4
2610 0296 2380 3181 fcall ___lldiv
2611 0298 0823 movf ?___lldiv+3,w
2612 0299 00BD movwf cfgModeShowVal@t+3
2613 029A 0822 movf ?___lldiv+2,w
2614 029B 00BC movwf cfgModeShowVal@t+2
2615 029C 0821 movf ?___lldiv+1,w
2616 029D 00BB movwf cfgModeShowVal@t+1
2617 029E 0820 movf ?___lldiv,w
2618 029F 00BA movwf cfgModeShowVal@t
2619 02A0 l6323:
2620 ;main.c: 323: while(digit--){
2621
2622 02A0 03B9 decf cfgModeShowVal@digit,f
2623 02A1 0839 movf cfgModeShowVal@digit,w
2624 02A2 3AFF xorlw 255
2625
2626 ;main.c: 324: delay_ms(300);
2627 02A3 302C movlw 44
2628 02A4 00A6 movwf ?_delay_ms
2629 02A5 3001 movlw 1
2630 02A6 00A7 movwf ?_delay_ms+1
2631 02A7 1903 btfsc 3,2
2632 02A8 2AB5 goto L8
2633 02A9 2348 3181 fcall _delay_ms
2634
2635 ;main.c: 325: gLed[0] = 10;
2636 02AB 300A movlw 10
2637 02AC 00F5 movwf _gLed
2638
2639 ;main.c: 326: delay_ms(500);
2640 02AD 30F4 movlw 244
2641 02AE 00A6 movwf ?_delay_ms
2642 02AF 3001 movlw 1
2643 02B0 00A7 movwf ?_delay_ms+1
2644 02B1 2348 3181 fcall _delay_ms
2645
2646 ;main.c: 327: gLed[0] = 0;
2647 02B3 01F5 clrf _gLed
2648 02B4 2AA0 goto l6323
2649 02B5 L8:
2650 ;main.c: 328: }
2651 ;main.c: 330: delay_ms(300);
2652
2653 02B5 2348 3181 fcall _delay_ms
2654
2655 ;main.c: 331: gLed[0] = 255;
2656 02B7 30FF movlw 255
2657 02B8 00F5 movwf _gLed
2658
2659 ;main.c: 332: delay_ms(700);
2660 02B9 30BC movlw 188
2661 02BA 00A6 movwf ?_delay_ms
2662 02BB 3002 movlw 2
2663 02BC 00A7 movwf ?_delay_ms+1
2664 02BD 2348 3181 fcall _delay_ms
2665 02BF 30F4 movlw 244
2666
2667 ;main.c: 333: gLed[0] = 0;
2668 02C0 01F5 clrf _gLed
2669
2670 ;main.c: 334: delay_ms(500);
2671 02C1 00A6 movwf ?_delay_ms
2672 02C2 3001 movlw 1
2673 02C3 00A7 movwf ?_delay_ms+1
2674 02C4 2348 3181 fcall _delay_ms
2675
2676 ;main.c: 336: }while(t);
2677 02C6 083D movf cfgModeShowVal@t+3,w
2678 02C7 043C iorwf cfgModeShowVal@t+2,w
2679 02C8 043B iorwf cfgModeShowVal@t+1,w
2680 02C9 043A iorwf cfgModeShowVal@t,w
2681 02CA 1903 btfsc 3,2
2682 02CB 0008 return
2683 02CC 2A5B goto l6313
2684 02CD __end_of_cfgModeShowVal:
2685 02CD __ptext1606:
2686 ;; =============== function _mFadeDataInit ends ============
2687
2688
2689 ;; *************** function _mFadeO *****************
2690 ;; Defined at:
2691 ;; line 528 in file "Z:\pic\irRX\main.c"
2692 ;; Parameters: Size Location Type
2693 ;; arg 1 74[BANK0 ] unsigned char
2694 ;; Auto vars: Size Location Type
2695 ;; s3 1 78[BANK0 ] unsigned char
2696 ;; s2 1 77[BANK0 ] unsigned char
2697 ;; s1 1 76[BANK0 ] unsigned char
2698 ;; s0 1 75[BANK0 ] unsigned char
2699 ;; Return value: Size Location Type
2700 ;; 1 wreg unsigned char
2701 ;; Registers used:
2702 ;; wreg, status,2, status,0, pclath, cstack
2703 ;; Tracked objects:
2704 ;; On entry : 1F/1
2705 ;; On exit : 1F/0
2706 ;; Unchanged: FFFE0/0
2707 ;; Data sizes: COMMON BANK0 BANK1 BANK2
2708 ;; Params: 0 1 0 0
2709 ;; Locals: 0 4 0 0
2710 ;; Temps: 0 0 0 0
2711 ;; Totals: 0 5 0 0
2712 ;;Total ram usage: 5 bytes
2713 ;; Hardware stack levels used: 1
2714 ;; Hardware stack levels required when called: 3
2715 ;; This function calls:
2716 ;; _delay_ms
2717 ;; This function is called by:
2718 ;; _runFuncPtr
2719 ;; This function uses a non-reentrant model
2720 ;;
2721 02CD _mFadeO:
2722
2723 ;main.c: 530: UInt8 s0, s1, s2, s3;
2724 ;main.c: 532: s0 = gLed[0];
2725
2726 ; Regs used in _mFadeO: [wreg+status,2+status,0+pclath+cstack]
2727 02CD 0875 movf _gLed,w
2728 02CE 0020 movlb 0 ; select bank0
2729 02CF 00EB movwf mFadeO@s0
2730
2731 ;main.c: 533: s1 = gLed[1];
2732 02D0 0876 movf _gLed+1,w
2733 02D1 00EC movwf mFadeO@s1
2734
2735 ;main.c: 534: s2 = gLed[2];
2736 02D2 0877 movf _gLed+2,w
2737 02D3 00ED movwf mFadeO@s2
2738
2739 ;main.c: 535: s3 = gLed[3];
2740 02D4 0878 movf _gLed+3,w
2741 02D5 00EE movwf mFadeO@s3
2742
2743 ;main.c: 537: if(tempData.fade.adjBri){
2744 02D6 0021 movlb 1 ; select bank1
2745 02D7 1FA4 btfss (_tempData^(0+128)+4),7
2746 02D8 2AFF goto l6401
2747
2748 ;main.c: 539: gLed[0] = 100;
2749 02D9 3064 movlw 100
2750 02DA 00F5 movwf _gLed
2751 02DB 3096 movlw 150
2752
2753 ;main.c: 540: gLed[1] = 0;
2754 02DC 01F6 clrf _gLed+1
2755
2756 ;main.c: 541: gLed[2] = 0;
2757 02DD 01F7 clrf _gLed+2
2758
2759 ;main.c: 542: gLed[3] = 0;
2760 02DE 01F8 clrf _gLed+3
2761
2762 ;main.c: 543: delay_ms(150);
2763 02DF 0020 movlb 0 ; select bank0
2764 02E0 00A6 movwf ?_delay_ms
2765 02E1 01A7 clrf ?_delay_ms+1
2766 02E2 2348 3181 fcall _delay_ms
2767 02E4 3064 movlw 100
2768
2769 ;main.c: 544: gLed[0] = 0;
2770 02E5 01F5 clrf _gLed
2771
2772 ;main.c: 545: gLed[1] = 100;
2773 02E6 00F6 movwf _gLed+1
2774
2775 ;main.c: 546: delay_ms(150);
2776 02E7 3096 movlw 150
2777 02E8 00A6 movwf ?_delay_ms
2778 02E9 01A7 clrf ?_delay_ms+1
2779 02EA 2348 3181 fcall _delay_ms
2780 02EC 3064 movlw 100
2781
2782 ;main.c: 547: gLed[1] = 0;
2783 02ED 01F6 clrf _gLed+1
2784
2785 ;main.c: 548: gLed[2] = 100;
2786 02EE 00F7 movwf _gLed+2
2787
2788 ;main.c: 549: delay_ms(150);
2789 02EF 3096 movlw 150
2790 02F0 00A6 movwf ?_delay_ms
2791 02F1 01A7 clrf ?_delay_ms+1
2792 02F2 2348 3181 fcall _delay_ms
2793 02F4 3064 movlw 100
2794
2795 ;main.c: 550: gLed[2] = 0;
2796 02F5 01F7 clrf _gLed+2
2797
2798 ;main.c: 551: gLed[3] = 100;
2799 02F6 00F8 movwf _gLed+3
2800
2801 ;main.c: 552: delay_ms(150);
2802 02F7 3096 movlw 150
2803 02F8 00A6 movwf ?_delay_ms
2804 02F9 01A7 clrf ?_delay_ms+1
2805 02FA 2348 3181 fcall _delay_ms
2806
2807 ;main.c: 553: tempData.fade.adjBri = 0;
2808 02FC 0021 movlb 1 ; select bank1
2809 02FD 13A4 bcf (_tempData^(0+128)+4),7
2810
2811 ;main.c: 554: }
2812 02FE 2B3E goto l1289
2813 02FF l6401:
2814 02FF 3032 movlw 50
2815
2816 ;main.c: 555: else{
2817 ;main.c: 557: gLed[0] = 0;
2818 0300 01F5 clrf _gLed
2819
2820 ;main.c: 558: gLed[1] = 0;
2821 0301 01F6 clrf _gLed+1
2822
2823 ;main.c: 559: gLed[2] = 0;
2824 0302 01F7 clrf _gLed+2
2825
2826 ;main.c: 560: gLed[3] = 0;
2827 0303 01F8 clrf _gLed+3
2828
2829 ;main.c: 561: delay_ms(50);
2830 0304 0020 movlb 0 ; select bank0
2831 0305 00A6 movwf ?_delay_ms
2832 0306 01A7 clrf ?_delay_ms+1
2833 0307 2348 3181 fcall _delay_ms
2834 0309 3064 movlw 100
2835
2836 ;main.c: 562: gLed[0] = 1;
2837 030A 01F5 clrf _gLed
2838 030B 0AF5 incf _gLed,f
2839
2840 ;main.c: 563: delay_ms(100);
2841 030C 00A6 movwf ?_delay_ms
2842 030D 01A7 clrf ?_delay_ms+1
2843 030E 2348 3181 fcall _delay_ms
2844 0310 3032 movlw 50
2845
2846 ;main.c: 564: gLed[0] = 0;
2847 0311 01F5 clrf _gLed
2848
2849 ;main.c: 565: delay_ms(50);
2850 0312 00A6 movwf ?_delay_ms
2851 0313 01A7 clrf ?_delay_ms+1
2852 0314 2348 3181 fcall _delay_ms
2853
2854 ;main.c: 566: gLed[0] = 30;
2855 0316 301E movlw 30
2856 0317 00F5 movwf _gLed
2857
2858 ;main.c: 567: delay_ms(100);
2859 0318 3064 movlw 100
2860 0319 00A6 movwf ?_delay_ms
2861 031A 01A7 clrf ?_delay_ms+1
2862 031B 2348 3181 fcall _delay_ms
2863 031D 3032 movlw 50
2864
2865 ;main.c: 568: gLed[0] = 0;
2866 031E 01F5 clrf _gLed
2867
2868 ;main.c: 569: delay_ms(50);
2869 031F 00A6 movwf ?_delay_ms
2870 0320 01A7 clrf ?_delay_ms+1
2871 0321 2348 3181 fcall _delay_ms
2872
2873 ;main.c: 570: gLed[0] = 80;
2874 0323 3050 movlw 80
2875 0324 00F5 movwf _gLed
2876
2877 ;main.c: 571: delay_ms(100);
2878 0325 3064 movlw 100
2879 0326 00A6 movwf ?_delay_ms
2880 0327 01A7 clrf ?_delay_ms+1
2881 0328 2348 3181 fcall _delay_ms
2882 032A 3032 movlw 50
2883
2884 ;main.c: 572: gLed[0] = 0;
2885 032B 01F5 clrf _gLed
2886
2887 ;main.c: 573: delay_ms(50);
2888 032C 00A6 movwf ?_delay_ms
2889 032D 01A7 clrf ?_delay_ms+1
2890 032E 2348 3181 fcall _delay_ms
2891
2892 ;main.c: 574: gLed[0] = 200;
2893 0330 30C8 movlw 200
2894 0331 00F5 movwf _gLed
2895
2896 ;main.c: 575: delay_ms(100);
2897 0332 3064 movlw 100
2898 0333 00A6 movwf ?_delay_ms
2899 0334 01A7 clrf ?_delay_ms+1
2900 0335 2348 3181 fcall _delay_ms
2901 0337 3032 movlw 50
2902
2903 ;main.c: 576: gLed[0] = 0;
2904 0338 01F5 clrf _gLed
2905
2906 ;main.c: 577: delay_ms(50);
2907 0339 00A6 movwf ?_delay_ms
2908 033A 01A7 clrf ?_delay_ms+1
2909 033B 2348 fcall _delay_ms
2910
2911 ;main.c: 578: tempData.fade.adjBri = 1;
2912 033C 0021 movlb 1 ; select bank1
2913 033D 17A4 bsf (_tempData^(0+128)+4),7
2914 033E l1289:
2915
2916 ;main.c: 579: }
2917 ;main.c: 581: gLed[0] = s0;
2918 033E 0020 movlb 0 ; select bank0
2919 033F 086B movf mFadeO@s0,w
2920 0340 00F5 movwf _gLed
2921
2922 ;main.c: 582: gLed[1] = s1;
2923 0341 086C movf mFadeO@s1,w
2924 0342 00F6 movwf _gLed+1
2925
2926 ;main.c: 583: gLed[2] = s2;
2927 0343 086D movf mFadeO@s2,w
2928 0344 00F7 movwf _gLed+2
2929
2930 ;main.c: 584: gLed[3] = s3;
2931 0345 086E movf mFadeO@s3,w
2932 0346 00F8 movwf _gLed+3
2933
2934 ;main.c: 586: return 0;
2935 0347 3400 retlw 0
2936 0348 __end_of_mFadeO:
2937 0348 __ptext1639:
2938 ;; =============== function _init ends ============
2939
2940
2941 ;; *************** function _delay_ms *****************
2942 ;; Defined at:
2943 ;; line 228 in file "Z:\pic\irRX\main.c"
2944 ;; Parameters: Size Location Type
2945 ;; ms 2 6[BANK0 ] unsigned short
2946 ;; Auto vars: Size Location Type
2947 ;; d 2 12[BANK0 ] unsigned short
2948 ;; t 2 10[BANK0 ] unsigned short
2949 ;; Return value: Size Location Type
2950 ;; None void
2951 ;; Registers used:
2952 ;; wreg, status,2, status,0, pclath, cstack
2953 ;; Tracked objects:
2954 ;; On entry : 1F/0
2955 ;; On exit : 1F/0
2956 ;; Unchanged: FFFE0/0
2957 ;; Data sizes: COMMON BANK0 BANK1 BANK2
2958 ;; Params: 0 2 0 0
2959 ;; Locals: 0 4 0 0
2960 ;; Temps: 0 2 0 0
2961 ;; Totals: 0 8 0 0
2962 ;;Total ram usage: 8 bytes
2963 ;; Hardware stack levels used: 1
2964 ;; Hardware stack levels required when called: 2
2965 ;; This function calls:
2966 ;; ___wmul
2967 ;; This function is called by:
2968 ;; _cfgModeShowVal
2969 ;; _mSolidO
2970 ;; _mFadeO
2971 ;; This function uses a non-reentrant model
2972 ;;
2973 0348 _delay_ms:
2974 0348 l5905:
2975 ;main.c: 230: UInt16 d, t;
2976 ;main.c: 232: while(ms){
2977
2978 ; Regs used in _delay_ms: [wreg+status,2+status,0+pclath+cstack]
2979
2980 0348 0827 movf delay_ms@ms+1,w
2981 0349 0426 iorwf delay_ms@ms,w
2982 034A 1903 btfsc 3,2
2983 034B 0008 return
2984
2985 ;main.c: 234: d = (ms > 50) ? 50 : ms;
2986 034C 3000 movlw 0
2987 034D 0227 subwf delay_ms@ms+1,w
2988 034E 3033 movlw 51
2989 034F 1903 skipnz
2990 0350 0226 subwf delay_ms@ms,w
2991 0351 1803 skipnc
2992 0352 2B58 goto l5897
2993 0353 0827 movf delay_ms@ms+1,w
2994 0354 00AD movwf delay_ms@d+1
2995 0355 0826 movf delay_ms@ms,w
2996 0356 00AC movwf delay_ms@d
2997 0357 2B5B goto l1174
2998 0358 l5897:
2999 0358 3032 movlw 50
3000 0359 00AC movwf delay_ms@d
3001 035A 01AD clrf delay_ms@d+1
3002 035B l1174:
3003
3004 ;main.c: 235: ms -= d;
3005 035B 082C movf delay_ms@d,w
3006 035C 02A6 subwf delay_ms@ms,f
3007 035D 082D movf delay_ms@d+1,w
3008 035E 3BA7 subwfb delay_ms@ms+1,f
3009
3010 ;main.c: 236: d *= 1000;
3011 035F 30E8 movlw 232
3012 0360 00A0 movwf ?___wmul
3013 0361 3003 movlw 3
3014 0362 00A1 movwf ?___wmul+1
3015 0363 082D movf delay_ms@d+1,w
3016 0364 00A3 movwf ?___wmul+3
3017 0365 082C movf delay_ms@d,w
3018 0366 00A2 movwf ?___wmul+2
3019 0367 23BF 3181 fcall ___wmul
3020 0369 0821 movf ?___wmul+1,w
3021 036A 00AD movwf delay_ms@d+1
3022 036B 0820 movf ?___wmul,w
3023 036C 00AC movwf delay_ms@d
3024
3025 ;main.c: 237: t = TMR1;
3026 036D 0817 movf 23,w ;volatile
3027 036E 00AB movwf delay_ms@t+1 ;volatile
3028 036F 0816 movf 22,w ;volatile
3029 0370 00AA movwf delay_ms@t ;volatile
3030 0371 l5903:
3031 ;main.c: 238: while(TMR1 - t < d);
3032
3033 0371 082A movf delay_ms@t,w
3034 0372 0216 subwf 22,w ;volatile
3035 0373 00A8 movwf ??_delay_ms
3036 0374 082B movf delay_ms@t+1,w
3037 0375 3B17 subwfb 23,w ;volatile
3038 0376 00A9 movwf ??_delay_ms+1
3039 0377 082D movf delay_ms@d+1,w
3040 0378 0229 subwf ??_delay_ms+1,w
3041 0379 1D03 skipz
3042 037A 2B7D goto u4115
3043 037B 082C movf delay_ms@d,w
3044 037C 0228 subwf ??_delay_ms,w
3045 037D u4115:
3046 037D 1803 btfsc 3,0
3047 037E 2B48 goto l5905
3048 037F 2B71 goto l5903
3049 0380 __end_of_delay_ms:
3050 0380 __ptext1641:
3051 ;; =============== function _log ends ============
3052
3053
3054 ;; *************** function ___lldiv *****************
3055 ;; Defined at:
3056 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\lldiv.c"
3057 ;; Parameters: Size Location Type
3058 ;; divisor 4 0[BANK0 ] unsigned long
3059 ;; dividend 4 4[BANK0 ] unsigned long
3060 ;; Auto vars: Size Location Type
3061 ;; quotient 4 8[BANK0 ] unsigned long
3062 ;; counter 1 12[BANK0 ] unsigned char
3063 ;; Return value: Size Location Type
3064 ;; 4 0[BANK0 ] unsigned long
3065 ;; Registers used:
3066 ;; wreg, status,2, status,0
3067 ;; Tracked objects:
3068 ;; On entry : 1F/0
3069 ;; On exit : 1F/0
3070 ;; Unchanged: FFFE0/0
3071 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3072 ;; Params: 0 8 0 0
3073 ;; Locals: 0 5 0 0
3074 ;; Temps: 0 0 0 0
3075 ;; Totals: 0 13 0 0
3076 ;;Total ram usage: 13 bytes
3077 ;; Hardware stack levels used: 1
3078 ;; Hardware stack levels required when called: 1
3079 ;; This function calls:
3080 ;; Nothing
3081 ;; This function is called by:
3082 ;; _cfgModeShowVal
3083 ;; This function uses a non-reentrant model
3084 ;;
3085 0380 ___lldiv:
3086
3087 ; Regs used in ___lldiv: [wreg+status,2+status,0]
3088 0380 01A8 clrf ___lldiv@quotient
3089 0381 01A9 clrf ___lldiv@quotient+1
3090 0382 01AA clrf ___lldiv@quotient+2
3091 0383 01AB clrf ___lldiv@quotient+3
3092 0384 0823 movf ___lldiv@divisor+3,w
3093 0385 0422 iorwf ___lldiv@divisor+2,w
3094 0386 0421 iorwf ___lldiv@divisor+1,w
3095 0387 0420 iorwf ___lldiv@divisor,w
3096 0388 1903 skipnz
3097 0389 2BB6 goto l5881
3098 038A 01AC clrf ___lldiv@counter
3099 038B L11:
3100 038B 0AAC incf ___lldiv@counter,f
3101 038C 1BA3 btfsc ___lldiv@divisor+3,7
3102 038D 2B93 goto l5869
3103 038E 35A0 lslf ___lldiv@divisor,f
3104 038F 0DA1 rlf ___lldiv@divisor+1,f
3105 0390 0DA2 rlf ___lldiv@divisor+2,f
3106 0391 0DA3 rlf ___lldiv@divisor+3,f
3107 0392 2B8B goto L11
3108 0393 l5869:
3109 0393 35A8 lslf ___lldiv@quotient,f
3110 0394 0DA9 rlf ___lldiv@quotient+1,f
3111 0395 0DAA rlf ___lldiv@quotient+2,f
3112 0396 0DAB rlf ___lldiv@quotient+3,f
3113 0397 0823 movf ___lldiv@divisor+3,w
3114 0398 0227 subwf ___lldiv@dividend+3,w
3115 0399 1D03 skipz
3116 039A 2BA5 goto u4075
3117 039B 0822 movf ___lldiv@divisor+2,w
3118 039C 0226 subwf ___lldiv@dividend+2,w
3119 039D 1D03 skipz
3120 039E 2BA5 goto u4075
3121 039F 0821 movf ___lldiv@divisor+1,w
3122 03A0 0225 subwf ___lldiv@dividend+1,w
3123 03A1 1D03 skipz
3124 03A2 2BA5 goto u4075
3125 03A3 0820 movf ___lldiv@divisor,w
3126 03A4 0224 subwf ___lldiv@dividend,w
3127 03A5 u4075:
3128 03A5 1C03 skipc
3129 03A6 2BB0 goto l5877
3130 03A7 0820 movf ___lldiv@divisor,w
3131 03A8 02A4 subwf ___lldiv@dividend,f
3132 03A9 0821 movf ___lldiv@divisor+1,w
3133 03AA 3BA5 subwfb ___lldiv@dividend+1,f
3134 03AB 0822 movf ___lldiv@divisor+2,w
3135 03AC 3BA6 subwfb ___lldiv@dividend+2,f
3136 03AD 0823 movf ___lldiv@divisor+3,w
3137 03AE 3BA7 subwfb ___lldiv@dividend+3,f
3138 03AF 1428 bsf ___lldiv@quotient,0
3139 03B0 l5877:
3140 03B0 36A3 lsrf ___lldiv@divisor+3,f
3141 03B1 0CA2 rrf ___lldiv@divisor+2,f
3142 03B2 0CA1 rrf ___lldiv@divisor+1,f
3143 03B3 0CA0 rrf ___lldiv@divisor,f
3144 03B4 0BAC decfsz ___lldiv@counter,f
3145 03B5 2B93 goto l5869
3146 03B6 l5881:
3147 03B6 082B movf ___lldiv@quotient+3,w
3148 03B7 00A3 movwf ?___lldiv+3
3149 03B8 082A movf ___lldiv@quotient+2,w
3150 03B9 00A2 movwf ?___lldiv+2
3151 03BA 0829 movf ___lldiv@quotient+1,w
3152 03BB 00A1 movwf ?___lldiv+1
3153 03BC 0828 movf ___lldiv@quotient,w
3154 03BD 00A0 movwf ?___lldiv
3155 03BE 0008 return
3156 03BF __end_of___lldiv:
3157 03BF __ptext1650:
3158 ;; =============== function ___lwdiv ends ============
3159
3160
3161 ;; *************** function ___wmul *****************
3162 ;; Defined at:
3163 ;; line 3 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\wmul.c"
3164 ;; Parameters: Size Location Type
3165 ;; multiplier 2 0[BANK0 ] unsigned int
3166 ;; multiplicand 2 2[BANK0 ] unsigned int
3167 ;; Auto vars: Size Location Type
3168 ;; product 2 4[BANK0 ] unsigned int
3169 ;; Return value: Size Location Type
3170 ;; 2 0[BANK0 ] unsigned int
3171 ;; Registers used:
3172 ;; wreg, status,2, status,0
3173 ;; Tracked objects:
3174 ;; On entry : 1F/0
3175 ;; On exit : 1F/0
3176 ;; Unchanged: FFFE0/0
3177 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3178 ;; Params: 0 4 0 0
3179 ;; Locals: 0 2 0 0
3180 ;; Temps: 0 0 0 0
3181 ;; Totals: 0 6 0 0
3182 ;;Total ram usage: 6 bytes
3183 ;; Hardware stack levels used: 1
3184 ;; Hardware stack levels required when called: 1
3185 ;; This function calls:
3186 ;; Nothing
3187 ;; This function is called by:
3188 ;; _rand
3189 ;; _delay_ms
3190 ;; _mFadeUp
3191 ;; _runFuncPtr
3192 ;; This function uses a non-reentrant model
3193 ;;
3194 03BF ___wmul:
3195
3196 ; Regs used in ___wmul: [wreg+status,2+status,0]
3197 03BF 01A4 clrf ___wmul@product
3198 03C0 01A5 clrf ___wmul@product+1
3199 03C1 l5649:
3200 03C1 1C20 btfss ___wmul@multiplier,0
3201 03C2 2BC7 goto l5653
3202 03C3 0822 movf ___wmul@multiplicand,w
3203 03C4 07A4 addwf ___wmul@product,f
3204 03C5 0823 movf ___wmul@multiplicand+1,w
3205 03C6 3DA5 addwfc ___wmul@product+1,f
3206 03C7 l5653:
3207 03C7 35A2 lslf ___wmul@multiplicand,f
3208 03C8 0DA3 rlf ___wmul@multiplicand+1,f
3209 03C9 36A1 lsrf ___wmul@multiplier+1,f
3210 03CA 0CA0 rrf ___wmul@multiplier,f
3211 03CB 0821 movf ___wmul@multiplier+1,w
3212 03CC 0420 iorwf ___wmul@multiplier,w
3213 03CD 1D03 skipz
3214 03CE 2BC1 goto l5649
3215 03CF 0825 movf ___wmul@product+1,w
3216 03D0 00A1 movwf ?___wmul+1
3217 03D1 0824 movf ___wmul@product,w
3218 03D2 00A0 movwf ?___wmul
3219 03D3 0008 return
3220 03D4 __end_of___wmul:
3221 03D4 __ptext1647:
3222 ;; =============== function ___fttol ends ============
3223
3224
3225 ;; *************** function ___lmul *****************
3226 ;; Defined at:
3227 ;; line 3 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\lmul.c"
3228 ;; Parameters: Size Location Type
3229 ;; multiplier 4 0[BANK0 ] unsigned long
3230 ;; multiplicand 4 4[BANK0 ] unsigned long
3231 ;; Auto vars: Size Location Type
3232 ;; product 4 8[BANK0 ] unsigned long
3233 ;; Return value: Size Location Type
3234 ;; 4 0[BANK0 ] unsigned long
3235 ;; Registers used:
3236 ;; wreg, status,2, status,0
3237 ;; Tracked objects:
3238 ;; On entry : 1F/0
3239 ;; On exit : 1F/0
3240 ;; Unchanged: FFFE0/0
3241 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3242 ;; Params: 0 8 0 0
3243 ;; Locals: 0 4 0 0
3244 ;; Temps: 0 0 0 0
3245 ;; Totals: 0 12 0 0
3246 ;;Total ram usage: 12 bytes
3247 ;; Hardware stack levels used: 1
3248 ;; Hardware stack levels required when called: 1
3249 ;; This function calls:
3250 ;; Nothing
3251 ;; This function is called by:
3252 ;; _cfgModeShowVal
3253 ;; This function uses a non-reentrant model
3254 ;;
3255 03D4 ___lmul:
3256
3257 ; Regs used in ___lmul: [wreg+status,2+status,0]
3258 03D4 01A8 clrf ___lmul@product
3259 03D5 01A9 clrf ___lmul@product+1
3260 03D6 01AA clrf ___lmul@product+2
3261 03D7 01AB clrf ___lmul@product+3
3262 03D8 l1520:
3263 03D8 1C20 btfss ___lmul@multiplier,0
3264 03D9 2BE2 goto l5721
3265 03DA 0824 movf ___lmul@multiplicand,w
3266 03DB 07A8 addwf ___lmul@product,f
3267 03DC 0825 movf ___lmul@multiplicand+1,w
3268 03DD 3DA9 addwfc ___lmul@product+1,f
3269 03DE 0826 movf ___lmul@multiplicand+2,w
3270 03DF 3DAA addwfc ___lmul@product+2,f
3271 03E0 0827 movf ___lmul@multiplicand+3,w
3272 03E1 3DAB addwfc ___lmul@product+3,f
3273 03E2 l5721:
3274 03E2 35A4 lslf ___lmul@multiplicand,f
3275 03E3 0DA5 rlf ___lmul@multiplicand+1,f
3276 03E4 0DA6 rlf ___lmul@multiplicand+2,f
3277 03E5 0DA7 rlf ___lmul@multiplicand+3,f
3278 03E6 36A3 lsrf ___lmul@multiplier+3,f
3279 03E7 0CA2 rrf ___lmul@multiplier+2,f
3280 03E8 0CA1 rrf ___lmul@multiplier+1,f
3281 03E9 0CA0 rrf ___lmul@multiplier,f
3282 03EA 0823 movf ___lmul@multiplier+3,w
3283 03EB 0422 iorwf ___lmul@multiplier+2,w
3284 03EC 0421 iorwf ___lmul@multiplier+1,w
3285 03ED 0420 iorwf ___lmul@multiplier,w
3286 03EE 1D03 skipz
3287 03EF 2BD8 goto l1520
3288 03F0 082B movf ___lmul@product+3,w
3289 03F1 00A3 movwf ?___lmul+3
3290 03F2 082A movf ___lmul@product+2,w
3291 03F3 00A2 movwf ?___lmul+2
3292 03F4 0829 movf ___lmul@product+1,w
3293 03F5 00A1 movwf ?___lmul+1
3294 03F6 0828 movf ___lmul@product,w
3295 03F7 00A0 movwf ?___lmul
3296 03F8 0008 return
3297 03F9 __end_of___lmul:
3298 03F9 __ptext1644:
3299 ;; =============== function ___ftneg ends ============
3300
3301
3302 ;; *************** function ___llmod *****************
3303 ;; Defined at:
3304 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\llmod.c"
3305 ;; Parameters: Size Location Type
3306 ;; divisor 4 0[BANK0 ] unsigned long
3307 ;; dividend 4 4[BANK0 ] unsigned long
3308 ;; Auto vars: Size Location Type
3309 ;; counter 1 8[BANK0 ] unsigned char
3310 ;; Return value: Size Location Type
3311 ;; 4 0[BANK0 ] unsigned long
3312 ;; Registers used:
3313 ;; wreg, status,2, status,0
3314 ;; Tracked objects:
3315 ;; On entry : 1F/0
3316 ;; On exit : 1F/0
3317 ;; Unchanged: FFFE0/0
3318 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3319 ;; Params: 0 8 0 0
3320 ;; Locals: 0 1 0 0
3321 ;; Temps: 0 0 0 0
3322 ;; Totals: 0 9 0 0
3323 ;;Total ram usage: 9 bytes
3324 ;; Hardware stack levels used: 1
3325 ;; Hardware stack levels required when called: 1
3326 ;; This function calls:
3327 ;; Nothing
3328 ;; This function is called by:
3329 ;; _cfgModeShowVal
3330 ;; This function uses a non-reentrant model
3331 ;;
3332 03F9 ___llmod:
3333
3334 ; Regs used in ___llmod: [wreg+status,2+status,0]
3335 03F9 0823 movf ___llmod@divisor+3,w
3336 03FA 0422 iorwf ___llmod@divisor+2,w
3337 03FB 0421 iorwf ___llmod@divisor+1,w
3338 03FC 0420 iorwf ___llmod@divisor,w
3339 03FD 1903 skipnz
3340 03FE 2C26 goto l5827
3341 03FF 01A8 clrf ___llmod@counter
3342 0400 L13:
3343 0400 0AA8 incf ___llmod@counter,f
3344 0401 1BA3 btfsc ___llmod@divisor+3,7
3345 0402 2C08 goto l5819
3346 0403 35A0 lslf ___llmod@divisor,f
3347 0404 0DA1 rlf ___llmod@divisor+1,f
3348 0405 0DA2 rlf ___llmod@divisor+2,f
3349 0406 0DA3 rlf ___llmod@divisor+3,f
3350 0407 2C00 goto L13
3351 0408 l5819:
3352 0408 0823 movf ___llmod@divisor+3,w
3353 0409 0227 subwf ___llmod@dividend+3,w
3354 040A 1D03 skipz
3355 040B 2C16 goto u3995
3356 040C 0822 movf ___llmod@divisor+2,w
3357 040D 0226 subwf ___llmod@dividend+2,w
3358 040E 1D03 skipz
3359 040F 2C16 goto u3995
3360 0410 0821 movf ___llmod@divisor+1,w
3361 0411 0225 subwf ___llmod@dividend+1,w
3362 0412 1D03 skipz
3363 0413 2C16 goto u3995
3364 0414 0820 movf ___llmod@divisor,w
3365 0415 0224 subwf ___llmod@dividend,w
3366 0416 u3995:
3367 0416 1C03 skipc
3368 0417 2C20 goto l5823
3369 0418 0820 movf ___llmod@divisor,w
3370 0419 02A4 subwf ___llmod@dividend,f
3371 041A 0821 movf ___llmod@divisor+1,w
3372 041B 3BA5 subwfb ___llmod@dividend+1,f
3373 041C 0822 movf ___llmod@divisor+2,w
3374 041D 3BA6 subwfb ___llmod@dividend+2,f
3375 041E 0823 movf ___llmod@divisor+3,w
3376 041F 3BA7 subwfb ___llmod@dividend+3,f
3377 0420 l5823:
3378 0420 36A3 lsrf ___llmod@divisor+3,f
3379 0421 0CA2 rrf ___llmod@divisor+2,f
3380 0422 0CA1 rrf ___llmod@divisor+1,f
3381 0423 0CA0 rrf ___llmod@divisor,f
3382 0424 0BA8 decfsz ___llmod@counter,f
3383 0425 2C08 goto l5819
3384 0426 l5827:
3385 0426 0827 movf ___llmod@dividend+3,w
3386 0427 00A3 movwf ?___llmod+3
3387 0428 0826 movf ___llmod@dividend+2,w
3388 0429 00A2 movwf ?___llmod+2
3389 042A 0825 movf ___llmod@dividend+1,w
3390 042B 00A1 movwf ?___llmod+1
3391 042C 0824 movf ___llmod@dividend,w
3392 042D 00A0 movwf ?___llmod
3393 042E 0008 return
3394 042F __end_of___llmod:
3395
3396 psect text1620
3397 0804 __ptext1620:
3398 ;; =============== function _mOffDataInit ends ============
3399
3400
3401 ;; *************** function _mOffDestr *****************
3402 ;; Defined at:
3403 ;; line 275 in file "Z:\pic\irRX\main.c"
3404 ;; Parameters: Size Location Type
3405 ;; arg 1 74[BANK0 ] unsigned char
3406 ;; Auto vars: Size Location Type
3407 ;; None
3408 ;; Return value: Size Location Type
3409 ;; 1 wreg unsigned char
3410 ;; Registers used:
3411 ;; wreg, status,2, pclath, cstack
3412 ;; Tracked objects:
3413 ;; On entry : 1F/1
3414 ;; On exit : 1F/3
3415 ;; Unchanged: FFFE0/0
3416 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3417 ;; Params: 0 1 0 0
3418 ;; Locals: 0 0 0 0
3419 ;; Temps: 0 0 0 0
3420 ;; Totals: 0 1 0 0
3421 ;;Total ram usage: 1 bytes
3422 ;; Hardware stack levels used: 1
3423 ;; Hardware stack levels required when called: 2
3424 ;; This function calls:
3425 ;; _eeRead
3426 ;; This function is called by:
3427 ;; _runFuncPtr
3428 ;; This function uses a non-reentrant model
3429 ;;
3430 0804 _mOffDestr:
3431
3432 ;main.c: 277: return eeRead(0xCF);
3433
3434 ; Regs used in _mOffDestr: [wreg+status,2+pclath+cstack]
3435 0804 30CF movlw 207
3436 0805 2A6B ljmp _eeRead
3437 0806 __end_of_mOffDestr:
3438 0806 __ptext1619:
3439 ;; =============== function _mOffUp ends ============
3440
3441
3442 ;; *************** function _mOffDataInit *****************
3443 ;; Defined at:
3444 ;; line 280 in file "Z:\pic\irRX\main.c"
3445 ;; Parameters: Size Location Type
3446 ;; arg 1 74[BANK0 ] unsigned char
3447 ;; Auto vars: Size Location Type
3448 ;; None
3449 ;; Return value: Size Location Type
3450 ;; 1 wreg unsigned char
3451 ;; Registers used:
3452 ;; wreg, status,2, status,0, pclath, cstack
3453 ;; Tracked objects:
3454 ;; On entry : 1F/1
3455 ;; On exit : 1F/3
3456 ;; Unchanged: FFE00/0
3457 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3458 ;; Params: 0 1 0 0
3459 ;; Locals: 0 0 0 0
3460 ;; Temps: 0 0 0 0
3461 ;; Totals: 0 1 0 0
3462 ;;Total ram usage: 1 bytes
3463 ;; Hardware stack levels used: 1
3464 ;; Hardware stack levels required when called: 2
3465 ;; This function calls:
3466 ;; _eeWrite
3467 ;; This function is called by:
3468 ;; _runFuncPtr
3469 ;; This function uses a non-reentrant model
3470 ;;
3471 0806 _mOffDataInit:
3472
3473 ;main.c: 282: eeWrite(0xCF, 2);
3474
3475 ; Regs used in _mOffDataInit: [wreg+status,2+status,0+pclath+cstack]
3476 0806 3002 movlw 2
3477 0807 0020 movlb 0 ; select bank0
3478 0808 00A0 movwf ?_eeWrite
3479 0809 30CF movlw 207
3480 080A 2197 fcall _eeWrite
3481
3482 ;main.c: 284: return 0;
3483 080B 3400 retlw 0
3484 080C __end_of_mOffDataInit:
3485 080C __ptext1605:
3486 ;; =============== function _mFadeRun ends ============
3487
3488
3489 ;; *************** function _mFadeDataInit *****************
3490 ;; Defined at:
3491 ;; line 589 in file "Z:\pic\irRX\main.c"
3492 ;; Parameters: Size Location Type
3493 ;; arg 1 74[BANK0 ] unsigned char
3494 ;; Auto vars: Size Location Type
3495 ;; None
3496 ;; Return value: Size Location Type
3497 ;; 1 wreg unsigned char
3498 ;; Registers used:
3499 ;; wreg, status,2, status,0, pclath, cstack
3500 ;; Tracked objects:
3501 ;; On entry : 1F/1
3502 ;; On exit : 1F/3
3503 ;; Unchanged: FFE00/0
3504 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3505 ;; Params: 0 1 0 0
3506 ;; Locals: 0 0 0 0
3507 ;; Temps: 0 0 0 0
3508 ;; Totals: 0 1 0 0
3509 ;;Total ram usage: 1 bytes
3510 ;; Hardware stack levels used: 1
3511 ;; Hardware stack levels required when called: 2
3512 ;; This function calls:
3513 ;; _eeWrite
3514 ;; This function is called by:
3515 ;; _runFuncPtr
3516 ;; This function uses a non-reentrant model
3517 ;;
3518 080C _mFadeDataInit:
3519
3520 ;main.c: 591: eeWrite(0xBF, 10);
3521
3522 ; Regs used in _mFadeDataInit: [wreg+status,2+status,0+pclath+cstack]
3523 080C 300A movlw 10
3524 080D 0020 movlb 0 ; select bank0
3525 080E 00A0 movwf ?_eeWrite
3526 080F 30BF movlw 191
3527 0810 2197 3188 fcall _eeWrite
3528
3529 ;main.c: 592: eeWrite(0xBE, 255);
3530 0812 30FF movlw 255
3531 0813 0020 movlb 0 ; select bank0
3532 0814 00A0 movwf ?_eeWrite
3533 0815 30BE movlw 190
3534 0816 2197 fcall _eeWrite
3535
3536 ;main.c: 594: return 0;
3537 0817 3400 retlw 0
3538 0818 __end_of_mFadeDataInit:
3539 0818 __ptext1608:
3540 ;; =============== function _mFadeUp ends ============
3541
3542
3543 ;; *************** function _mFadeDestr *****************
3544 ;; Defined at:
3545 ;; line 485 in file "Z:\pic\irRX\main.c"
3546 ;; Parameters: Size Location Type
3547 ;; arg 1 74[BANK0 ] unsigned char
3548 ;; Auto vars: Size Location Type
3549 ;; None
3550 ;; Return value: Size Location Type
3551 ;; 1 wreg unsigned char
3552 ;; Registers used:
3553 ;; wreg, status,2, status,0, pclath, cstack
3554 ;; Tracked objects:
3555 ;; On entry : 1F/1
3556 ;; On exit : 1F/3
3557 ;; Unchanged: FFE00/0
3558 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3559 ;; Params: 0 1 0 0
3560 ;; Locals: 0 0 0 0
3561 ;; Temps: 0 0 0 0
3562 ;; Totals: 0 1 0 0
3563 ;;Total ram usage: 1 bytes
3564 ;; Hardware stack levels used: 1
3565 ;; Hardware stack levels required when called: 2
3566 ;; This function calls:
3567 ;; _eeWrite
3568 ;; This function is called by:
3569 ;; _runFuncPtr
3570 ;; This function uses a non-reentrant model
3571 ;;
3572 0818 _mFadeDestr:
3573
3574 ;main.c: 487: eeWrite(0xBF, tempData.fade.speed);
3575
3576 ; Regs used in _mFadeDestr: [wreg+status,2+status,0+pclath+cstack]
3577 0818 0824 movf (_tempData^(0+128)+4),w
3578 0819 397F andlw 127
3579 081A 0020 movlb 0 ; select bank0
3580 081B 00A0 movwf ?_eeWrite
3581 081C 30BF movlw 191
3582 081D 2197 3188 fcall _eeWrite
3583
3584 ;main.c: 488: eeWrite(0xBE, tempData.fade.bri);
3585 081F 0021 movlb 1 ; select bank1
3586 0820 0825 movf (_tempData^(0+128)+5),w
3587 0821 0020 movlb 0 ; select bank0
3588 0822 00A0 movwf ?_eeWrite
3589 0823 30BE movlw 190
3590 0824 2197 fcall _eeWrite
3591
3592 ;main.c: 490: return 0;
3593 0825 3400 retlw 0
3594 0826 __end_of_mFadeDestr:
3595 0826 start_initialization:
3596
3597 ; Clear objects allocated to BITCOMMON
3598 0826 01F9 clrf (__pbitbssCOMMON/(0+8))& (0+127)
3599
3600 ; Clear objects allocated to COMMON
3601 0827 01F5 clrf __pbssCOMMON& (0+127)
3602 0828 01F6 clrf (__pbssCOMMON+1)& (0+127)
3603 0829 01F7 clrf (__pbssCOMMON+2)& (0+127)
3604 082A 01F8 clrf (__pbssCOMMON+3)& (0+127)
3605
3606 ; Clear objects allocated to BANK1
3607 082B 30A0 movlw low __pbssBANK1
3608 082C 0084 movwf 4
3609 082D 3000 movlw high __pbssBANK1
3610 082E 0085 movwf 5
3611 082F 3032 movlw 50
3612 0830 3187 2727 3188 fcall clear_ram
3613
3614 ; Clear objects allocated to BANK2
3615 0833 3020 movlw low __pbssBANK2
3616 0834 0084 movwf 4
3617 0835 3001 movlw high __pbssBANK2
3618 0836 0085 movwf 5
3619 0837 3020 movlw 32
3620 0838 3187 2727 3188 fcall clear_ram
3621
3622 ; Initialize objects allocated to BANK1
3623 083B 0021 movlb 1 ; select bank1
3624
3625 ;initializer for _gRngSeed
3626 083C 30F6 movlw 246
3627 083D 00E1 movwf __pdataBANK1& (0+127)
3628 083E 3087 movlw 135
3629 083F 00E2 movwf (__pdataBANK1+1)& (0+127)
3630 0840 end_of_initialization:
3631 ;End of C runtime variable initialization code
3632
3633 0840 0020 movlb 0
3634 0841 2871 ljmp _main ;jump to C main() function
3635 0842 __ptext1609:
3636 ;; =============== function _mFadeDestr ends ============
3637
3638
3639 ;; *************** function _mFadeInit *****************
3640 ;; Defined at:
3641 ;; line 463 in file "Z:\pic\irRX\main.c"
3642 ;; Parameters: Size Location Type
3643 ;; arg 1 74[BANK0 ] unsigned char
3644 ;; Auto vars: Size Location Type
3645 ;; i 1 76[BANK0 ] unsigned char
3646 ;; Return value: Size Location Type
3647 ;; 1 wreg unsigned char
3648 ;; Registers used:
3649 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
3650 ;; Tracked objects:
3651 ;; On entry : 1F/1
3652 ;; On exit : 1F/0
3653 ;; Unchanged: FFE00/0
3654 ;; Data sizes: COMMON BANK0 BANK1 BANK2
3655 ;; Params: 0 1 0 0
3656 ;; Locals: 0 1 0 0
3657 ;; Temps: 0 1 0 0
3658 ;; Totals: 0 3 0 0
3659 ;;Total ram usage: 3 bytes
3660 ;; Hardware stack levels used: 1
3661 ;; Hardware stack levels required when called: 6
3662 ;; This function calls:
3663 ;; _eeRead
3664 ;; _genExponents
3665 ;; This function is called by:
3666 ;; _runFuncPtr
3667 ;; This function uses a non-reentrant model
3668 ;;
3669 0842 _mFadeInit:
3670 0842 30BF movlw 191
3671
3672 ;main.c: 465: UInt8 i;
3673 ;main.c: 467: gLed[0] = 0;
3674
3675 ; Regs used in _mFadeInit: [allreg]
3676 0843 01F5 clrf _gLed
3677
3678 ;main.c: 468: gLed[1] = 0;
3679 0844 01F6 clrf _gLed+1
3680
3681 ;main.c: 469: gLed[2] = 0;
3682 0845 01F7 clrf _gLed+2
3683
3684 ;main.c: 470: gLed[3] = 0;
3685 0846 01F8 clrf _gLed+3
3686
3687 ;main.c: 471: tempData.fade.speed = eeRead(0xBF);
3688 0847 226B 3188 fcall _eeRead
3689 0849 0020 movlb 0 ; select bank0
3690 084A 00EB movwf ??_mFadeInit
3691 084B 0021 movlb 1 ; select bank1
3692 084C 0824 movf (_tempData^(0+128)+4),w
3693 084D 0020 movlb 0 ; select bank0
3694 084E 066B xorwf ??_mFadeInit,w
3695 084F 3980 andlw -128
3696 0850 066B xorwf ??_mFadeInit,w
3697 0851 0021 movlb 1 ; select bank1
3698 0852 00A4 movwf (_tempData^(0+128)+4)
3699
3700 ;main.c: 472: tempData.fade.bri = eeRead(0xBE);
3701 0853 30BE movlw 190
3702 0854 226B 3188 fcall _eeRead
3703 0856 0021 movlb 1 ; select bank1
3704 0857 00A5 movwf (_tempData^(0+128)+5)
3705
3706 ;main.c: 473: tempData.fade.speedLeft = 1;
3707 0858 01A6 clrf (_tempData^(0+128)+6)
3708 0859 0AA6 incf (_tempData^(0+128)+6),f
3709 085A 01A7 clrf ((_tempData+1)^(0+128)+6)
3710
3711 ;main.c: 474: tempData.fade.adjBri = 0;
3712 085B 13A4 bcf (_tempData^(0+128)+4),7
3713
3714 ;main.c: 475: for(i = 0; i < 4; i++){
3715 085C 0020 movlb 0 ; select bank0
3716 085D 01EC clrf mFadeInit@i
3717 085E l6679:
3718
3719 ;main.c: 477: tempData.fade.tmp[i].val = 0;
3720 085E 086C movf mFadeInit@i,w
3721 085F 3EA0 addlw _tempData& (0+255)
3722 0860 0086 movwf 6
3723 0861 30E0 movlw -32
3724 0862 0187 clrf 7
3725 0863 0581 andwf 1,f
3726
3727 ;main.c: 478: tempData.fade.tmp[i].changing = 0;
3728 0864 086C movf mFadeInit@i,w
3729 0865 3EA0 addlw _tempData& (0+255)
3730 0866 0086 movwf 6
3731 0867 3004 movlw 4
3732 0868 1281 bcf 1,5
3733 0869 0AEC incf mFadeInit@i,f
3734 086A 026C subwf mFadeInit@i,w
3735 086B 1C03 skipc
3736 086C 285E goto l6679
3737
3738 ;main.c: 479: }
3739 ;main.c: 480: genExponents(tempData.fade.bri);
3740 086D 0021 movlb 1 ; select bank1
3741 086E 0825 movf (_tempData^(0+128)+5),w
3742 086F 2328 fcall _genExponents
3743
3744 ;main.c: 482: return 0;
3745 0870 3400 retlw 0
3746 0871 __end_of_mFadeInit:
3747 0871 __pmaintext:
3748 ; 0 bytes @ 0x50
3749 ;;Data sizes: Strings 0, constant 51, data 2, bss 86, persistent 0 stack 0
3750 ;;Auto spaces: Size Autos Used
3751 ;; COMMON 14 5 10
3752 ;; BANK0 80 80 80
3753 ;; BANK1 80 15 67
3754 ;; BANK2 80 0 32
3755 ;;
3756 ;; Pointer list with targets:
3757 ;; ?___lbtoft float size(1) Largest target is 0
3758 ;;
3759 ;; ?___ftpack float size(1) Largest target is 0
3760 ;;
3761 ;; ?___altoft float size(1) Largest target is 0
3762 ;;
3763 ;; ?_frexp float size(1) Largest target is 0
3764 ;;
3765 ;; ?_ldexp float size(1) Largest target is 0
3766 ;;
3767 ;; ?_eval_poly float size(1) Largest target is 0
3768 ;;
3769 ;; ?___awtoft float size(1) Largest target is 0
3770 ;;
3771 ;; ?_floor float size(1) Largest target is 0
3772 ;;
3773 ;; ?___ftneg float size(1) Largest target is 0
3774 ;;
3775 ;; ?___lwdiv unsigned int size(1) Largest target is 0
3776 ;;
3777 ;; ?___awdiv int size(1) Largest target is 0
3778 ;;
3779 ;; ?___llmod unsigned long size(1) Largest target is 0
3780 ;;
3781 ;; ?___lmul unsigned long size(1) Largest target is 0
3782 ;;
3783 ;; ?___lldiv unsigned long size(1) Largest target is 0
3784 ;;
3785 ;; ?___fttol long size(1) Largest target is 0
3786 ;;
3787 ;; ?___ftadd float size(1) Largest target is 0
3788 ;;
3789 ;; ?___ftmul float size(1) Largest target is 0
3790 ;;
3791 ;; ?___ftsub float size(1) Largest target is 0
3792 ;;
3793 ;; ?___ftdiv float size(1) Largest target is 0
3794 ;;
3795 ;; ?_exp float size(1) Largest target is 0
3796 ;;
3797 ;; ?___wmul unsigned int size(1) Largest target is 0
3798 ;;
3799 ;; ?_getU16 unsigned short size(1) Largest target is 0
3800 ;;
3801 ;; ?_getU32 unsigned long size(1) Largest target is 0
3802 ;;
3803 ;; eval_poly@d PTR const size(1) Largest target is 30
3804 ;; -> exp@coeff(CODE[30]),
3805 ;;
3806 ;; frexp@eptr PTR int size(1) Largest target is 2
3807 ;; -> floor@expon(BANK0[2]),
3808 ;;
3809 ;; runFuncPtr@f PTR FTN(unsigned char ,)unsigned char size(1) Largest target is 1
3810 ;; -> Absolute function(), mFadeRun(), mFadeDataInit(), mFadeO(),
3811 ;; -> mFadeDown(), mFadeUp(), mFadeDestr(), mFadeInit(),
3812 ;; -> mSolidDataInit(), mSolidO(), mSolidDown(), mSolidUp(),
3813 ;; -> mSolidDestr(), mSolidInit(), mOffO(), mOffDown(),
3814 ;; -> mOffUp(), mOffDataInit(), mOffDestr(), mOffInit(),
3815 ;;
3816 ;; gModeFns const PTR FTN(unsigned char ,)unsigned char [7][3] size(1) Largest target is 1
3817 ;; -> Absolute function(), mFadeRun(), mFadeDataInit(), mFadeO(),
3818 ;; -> mFadeDown(), mFadeUp(), mFadeDestr(), mFadeInit(),
3819 ;; -> mSolidDataInit(), mSolidO(), mSolidDown(), mSolidUp(),
3820 ;; -> mSolidDestr(), mSolidInit(), mOffO(), mOffDown(),
3821 ;; -> mOffUp(), mOffDataInit(), mOffDestr(), mOffInit(),
3822 ;;
3823 ;; getU8@t PTR unsigned char size(1) Largest target is 32
3824 ;; -> gRxData(BANK1[32]),
3825 ;;
3826 ;; getU16@t PTR unsigned char size(1) Largest target is 32
3827 ;; -> gRxData(BANK1[32]),
3828 ;;
3829 ;; getU32@t PTR unsigned char size(1) Largest target is 32
3830 ;; -> gRxData(BANK1[32]),
3831 ;;
3832 ;;
3833 ;; Critical Paths under _main in COMMON
3834 ;;
3835 ;; None.
3836 ;;
3837 ;; Critical Paths under _isr in COMMON
3838 ;;
3839 ;; None.
3840 ;;
3841 ;; Critical Paths under _main in BANK0
3842 ;;
3843 ;; _runFuncPtr->_mFadeRun
3844 ;; _runFuncPtr->_mFadeDown
3845 ;; _runFuncPtr->_mFadeUp
3846 ;; _mFadeDown->_genExponents
3847 ;; _mFadeUp->_genExponents
3848 ;; _mFadeInit->_genExponents
3849 ;; _genExponents->_exp
3850 ;; _mOffCheckConfigMode->_cfgModeShowVal
3851 ;; _exp->_eval_poly
3852 ;; ___ftsub->___ftadd
3853 ;; _eval_poly->_ldexp
3854 ;; _floor->___ftadd
3855 ;; _cfgModeShowVal->_delay_ms
3856 ;; _rand->___wmul
3857 ;; ___altoft->___fttol
3858 ;; ___awtoft->___ftpack
3859 ;; ___lbtoft->___ftpack
3860 ;; ___ftmul->___lbtoft
3861 ;; ___ftdiv->___ftpack
3862 ;; ___ftadd->___ftmul
3863 ;; _ldexp->___ftadd
3864 ;; _delay_ms->___wmul
3865 ;; _log->_eeWrite
3866 ;;
3867 ;; Critical Paths under _isr in BANK0
3868 ;;
3869 ;; None.
3870 ;;
3871 ;; Critical Paths under _main in BANK1
3872 ;;
3873 ;; _main->_runFuncPtr
3874 ;; _runFuncPtr->_mFadeRun
3875 ;; _runFuncPtr->_mSolidUp
3876 ;;
3877 ;; Critical Paths under _isr in BANK1
3878 ;;
3879 ;; None.
3880 ;;
3881 ;; Critical Paths under _main in BANK2
3882 ;;
3883 ;; None.
3884 ;;
3885 ;; Critical Paths under _isr in BANK2
3886 ;;
3887 ;; None.
3888 ;;
3889 ;;Main: autosize = 0, tempsize = 2, incstack = 0, save=0
3890 ;;
3891 ;;
3892 ;;Call Graph Tables:
3893 ;;
3894 ;; ---------------------------------------------------------------------------------
3895 ;; (Depth) Function Calls Base Space Used Autos Params Refs
3896 ;; ---------------------------------------------------------------------------------
3897 ;; (0) _main 15 15 0 62764
3898 ;; 8 BANK1 7 7 0
3899 ;; _init
3900 ;; _eeRead
3901 ;; _runFuncPtr
3902 ;; _eeWrite
3903 ;; _rxStart
3904 ;; _rxDecode
3905 ;; _getU32
3906 ;; _getU8
3907 ;; _getU16
3908 ;; ---------------------------------------------------------------------------------
3909 ;; (1) _runFuncPtr 6 4 2 61031
3910 ;; 2 BANK1 6 4 2
3911 ;; ___bmul
3912 ;; Absolute function
3913 ;; _mFadeRun
3914 ;; _mFadeDataInit
3915 ;; _mFadeO
3916 ;; _mFadeDown
3917 ;; _mFadeUp
3918 ;; _mFadeDestr
3919 ;; _mFadeInit
3920 ;; _mSolidDataInit
3921 ;; _mSolidO
3922 ;; _mSolidDown
3923 ;; _mSolidUp
3924 ;; _mSolidDestr
3925 ;; _mSolidInit
3926 ;; _mOffO
3927 ;; _mOffDown
3928 ;; _mOffUp
3929 ;; _mOffDataInit
3930 ;; _mOffDestr
3931 ;; _mOffInit
3932 ;; ---------------------------------------------------------------------------------
3933 ;; (2) _mFadeDown 6 5 1 17429
3934 ;; 74 BANK0 6 5 1
3935 ;; ___lwdiv
3936 ;; _genExponents
3937 ;; ---------------------------------------------------------------------------------
3938 ;; (2) _mFadeUp 6 5 1 17327
3939 ;; 74 BANK0 6 5 1
3940 ;; ___wmul
3941 ;; _genExponents
3942 ;; ---------------------------------------------------------------------------------
3943 ;; (2) _mFadeInit 3 2 1 17247
3944 ;; 74 BANK0 3 2 1
3945 ;; _eeRead
3946 ;; _genExponents
3947 ;; ---------------------------------------------------------------------------------
3948 ;; (2) _mOffO 1 0 1 1710
3949 ;; 74 BANK0 1 0 1
3950 ;; _mOffCheckConfigMode
3951 ;; ---------------------------------------------------------------------------------
3952 ;; (2) _mOffDown 1 0 1 1710
3953 ;; 74 BANK0 1 0 1
3954 ;; _mOffCheckConfigMode
3955 ;; ---------------------------------------------------------------------------------
3956 ;; (2) _mOffUp 1 0 1 1710
3957 ;; 74 BANK0 1 0 1
3958 ;; _mOffCheckConfigMode
3959 ;; ---------------------------------------------------------------------------------
3960 ;; (3) _genExponents 5 5 0 17086
3961 ;; 69 BANK0 5 5 0
3962 ;; ___lbtoft
3963 ;; ___ftdiv
3964 ;; _exp
3965 ;; ___ftsub
3966 ;; ___ftmul
3967 ;; ___ftadd
3968 ;; ___fttol
3969 ;; ---------------------------------------------------------------------------------
3970 ;; (2) _mFadeRun 8 7 1 1442
3971 ;; 74 BANK0 6 5 1
3972 ;; 0 BANK1 2 2 0
3973 ;; ___awdiv
3974 ;; _rand
3975 ;; ---------------------------------------------------------------------------------
3976 ;; (3) _mOffCheckConfigMode 3 3 0 1710
3977 ;; 30 BANK0 3 3 0
3978 ;; _cfgModeShowVal
3979 ;; ---------------------------------------------------------------------------------
3980 ;; (4) _exp 9 6 3 11302
3981 ;; 60 BANK0 9 6 3
3982 ;; ___ftge
3983 ;; ___ftneg
3984 ;; ___ftmul
3985 ;; _floor
3986 ;; ___fttol
3987 ;; ___awtoft
3988 ;; ___ftsub
3989 ;; _eval_poly
3990 ;; _ldexp
3991 ;; ___ftdiv
3992 ;; ---------------------------------------------------------------------------------
3993 ;; (4) ___ftsub 6 0 6 1602
3994 ;; 39 BANK0 6 0 6
3995 ;; ___ftadd
3996 ;; ___awtoft (ARG)
3997 ;; ---------------------------------------------------------------------------------
3998 ;; (5) _eval_poly 11 5 6 2591
3999 ;; 49 BANK0 11 5 6
4000 ;; ___ftmul
4001 ;; ___ftadd
4002 ;; _ldexp (ARG)
4003 ;; ---------------------------------------------------------------------------------
4004 ;; (5) _floor 8 5 3 3288
4005 ;; 39 BANK0 8 5 3
4006 ;; _frexp
4007 ;; ___ftge
4008 ;; ___fttol
4009 ;; ___altoft
4010 ;; ___ftadd
4011 ;; ---------------------------------------------------------------------------------
4012 ;; (2) _mFadeO 5 4 1 504
4013 ;; 74 BANK0 5 4 1
4014 ;; _delay_ms
4015 ;; ---------------------------------------------------------------------------------
4016 ;; (2) _mSolidO 5 4 1 504
4017 ;; 74 BANK0 5 4 1
4018 ;; _delay_ms
4019 ;; ---------------------------------------------------------------------------------
4020 ;; (4) _cfgModeShowVal 16 12 4 1614
4021 ;; 14 BANK0 16 12 4
4022 ;; _delay_ms
4023 ;; ___lldiv
4024 ;; ___lmul
4025 ;; ___llmod
4026 ;; ---------------------------------------------------------------------------------
4027 ;; (3) _rand 3 3 0 294
4028 ;; 6 BANK0 3 3 0
4029 ;; ___wmul
4030 ;; _log
4031 ;; ---------------------------------------------------------------------------------
4032 ;; (6) ___altoft 6 2 4 516
4033 ;; 13 BANK0 6 2 4
4034 ;; ___ftpack
4035 ;; ___fttol (ARG)
4036 ;; ---------------------------------------------------------------------------------
4037 ;; (5) ___awtoft 4 1 3 445
4038 ;; 8 BANK0 4 1 3
4039 ;; ___ftpack
4040 ;; ---------------------------------------------------------------------------------
4041 ;; (4) ___lbtoft 4 1 3 343
4042 ;; 8 BANK0 4 1 3
4043 ;; ___ftpack
4044 ;; ---------------------------------------------------------------------------------
4045 ;; (4) ___ftmul 15 9 6 800
4046 ;; 12 BANK0 15 9 6
4047 ;; ___ftpack
4048 ;; ___lbtoft (ARG)
4049 ;; ---------------------------------------------------------------------------------
4050 ;; (5) ___ftdiv 15 9 6 732
4051 ;; 8 BANK0 15 9 6
4052 ;; ___ftpack
4053 ;; ---------------------------------------------------------------------------------
4054 ;; (4) ___ftadd 12 6 6 1537
4055 ;; 27 BANK0 12 6 6
4056 ;; ___ftpack
4057 ;; ___ftmul (ARG)
4058 ;; ---------------------------------------------------------------------------------
4059 ;; (5) _ldexp 10 5 5 659
4060 ;; 39 BANK0 10 5 5
4061 ;; ___ftge
4062 ;; ___ftneg
4063 ;; ___ftmul (ARG)
4064 ;; ___ftadd (ARG)
4065 ;; ---------------------------------------------------------------------------------
4066 ;; (1) _init 3 3 0 0
4067 ;; 0 BANK0 3 3 0
4068 ;; ---------------------------------------------------------------------------------
4069 ;; (2) _mFadeDataInit 1 0 1 62
4070 ;; 74 BANK0 1 0 1
4071 ;; _eeWrite
4072 ;; ---------------------------------------------------------------------------------
4073 ;; (2) _mFadeDestr 1 0 1 62
4074 ;; 74 BANK0 1 0 1
4075 ;; _eeWrite
4076 ;; ---------------------------------------------------------------------------------
4077 ;; (2) _mSolidDataInit 1 0 1 62
4078 ;; 74 BANK0 1 0 1
4079 ;; _eeWrite
4080 ;; ---------------------------------------------------------------------------------
4081 ;; (2) _mSolidDown 5 4 1 547
4082 ;; 74 BANK0 5 4 1
4083 ;; ___awdiv
4084 ;; ---------------------------------------------------------------------------------
4085 ;; (2) _mSolidDestr 1 0 1 62
4086 ;; 74 BANK0 1 0 1
4087 ;; _eeWrite
4088 ;; ---------------------------------------------------------------------------------
4089 ;; (2) _mSolidInit 1 0 1 31
4090 ;; 74 BANK0 1 0 1
4091 ;; _eeRead
4092 ;; ---------------------------------------------------------------------------------
4093 ;; (2) _mOffDataInit 1 0 1 62
4094 ;; 74 BANK0 1 0 1
4095 ;; _eeWrite
4096 ;; ---------------------------------------------------------------------------------
4097 ;; (2) _mOffDestr 1 0 1 31
4098 ;; 74 BANK0 1 0 1
4099 ;; _eeRead
4100 ;; ---------------------------------------------------------------------------------
4101 ;; (2) _mOffInit 1 0 1 124
4102 ;; 74 BANK0 1 0 1
4103 ;; _eeWrite
4104 ;; ---------------------------------------------------------------------------------
4105 ;; (5) _delay_ms 8 6 2 368
4106 ;; 6 BANK0 8 6 2
4107 ;; ___wmul
4108 ;; ---------------------------------------------------------------------------------
4109 ;; (4) _log 1 1 0 93
4110 ;; 3 BANK0 1 1 0
4111 ;; _eeWrite
4112 ;; ---------------------------------------------------------------------------------
4113 ;; (5) ___lldiv 13 5 8 241
4114 ;; 0 BANK0 13 5 8
4115 ;; ---------------------------------------------------------------------------------
4116 ;; (6) ___ftge 6 0 6 198
4117 ;; 0 BANK0 6 0 6
4118 ;; ---------------------------------------------------------------------------------
4119 ;; (6) ___ftneg 3 0 3 65
4120 ;; 0 BANK0 3 0 3
4121 ;; ---------------------------------------------------------------------------------
4122 ;; (5) ___llmod 9 1 8 232
4123 ;; 0 BANK0 9 1 8
4124 ;; ---------------------------------------------------------------------------------
4125 ;; (3) ___awdiv 8 4 4 445
4126 ;; 0 BANK0 8 4 4
4127 ;; ---------------------------------------------------------------------------------
4128 ;; (4) ___fttol 13 9 4 371
4129 ;; 0 BANK0 13 9 4
4130 ;; ---------------------------------------------------------------------------------
4131 ;; (5) ___lmul 12 4 8 136
4132 ;; 0 BANK0 12 4 8
4133 ;; ---------------------------------------------------------------------------------
4134 ;; (5) ___ftpack 8 3 5 312
4135 ;; 0 BANK0 8 3 5
4136 ;; ---------------------------------------------------------------------------------
4137 ;; (3) ___lwdiv 7 3 4 241
4138 ;; 0 BANK0 7 3 4
4139 ;; ---------------------------------------------------------------------------------
4140 ;; (6) ___wmul 6 2 4 136
4141 ;; 0 BANK0 6 2 4
4142 ;; ---------------------------------------------------------------------------------
4143 ;; (2) ___bmul 3 2 1 108
4144 ;; 0 BANK0 3 2 1
4145 ;; ---------------------------------------------------------------------------------
4146 ;; (6) _frexp 6 2 4 298
4147 ;; 0 BANK0 6 2 4
4148 ;; ---------------------------------------------------------------------------------
4149 ;; (2) Absolute function(Fake) 1 0 1 0
4150 ;; 0 BANK0 1 0 1
4151 ;; ---------------------------------------------------------------------------------
4152 ;; (2) _mSolidUp 7 6 1 102
4153 ;; 74 BANK0 5 4 1
4154 ;; 0 BANK1 2 2 0
4155 ;; ---------------------------------------------------------------------------------
4156 ;; (1) _getU8 1 1 0 31
4157 ;; 0 BANK0 1 1 0
4158 ;; ---------------------------------------------------------------------------------
4159 ;; (1) _getU16 15 13 2 130
4160 ;; 0 BANK0 15 13 2
4161 ;; ---------------------------------------------------------------------------------
4162 ;; (1) _getU32 17 13 4 260
4163 ;; 0 BANK0 17 13 4
4164 ;; ---------------------------------------------------------------------------------
4165 ;; (1) _rxDecode 8 8 0 309
4166 ;; 0 BANK0 8 8 0
4167 ;; ---------------------------------------------------------------------------------
4168 ;; (1) _rxStart 1 1 0 99
4169 ;; 0 BANK0 1 1 0
4170 ;; ---------------------------------------------------------------------------------
4171 ;; (1) _eeWrite 3 2 1 62
4172 ;; 0 BANK0 3 2 1
4173 ;; ---------------------------------------------------------------------------------
4174 ;; (3) _eeRead 1 1 0 31
4175 ;; 0 BANK0 1 1 0
4176 ;; ---------------------------------------------------------------------------------
4177 ;; Estimated maximum stack depth 6
4178 ;; ---------------------------------------------------------------------------------
4179 ;; (Depth) Function Calls Base Space Used Autos Params Refs
4180 ;; ---------------------------------------------------------------------------------
4181 ;; (8) _isr 5 5 0 28
4182 ;; 0 COMMON 5 5 0
4183 ;; ---------------------------------------------------------------------------------
4184 ;; Estimated maximum stack depth 8
4185 ;; ---------------------------------------------------------------------------------
4186 ;; Call Graph Graphs:
4187 ;; _main (ROOT)
4188 ;; _init
4189 ;; _eeRead
4190 ;; _runFuncPtr
4191 ;; ___bmul
4192 ;; Absolute function(Fake)
4193 ;; _mFadeRun
4194 ;; ___awdiv
4195 ;; _rand
4196 ;; ___wmul
4197 ;; _log
4198 ;; _eeWrite
4199 ;; _mFadeDataInit
4200 ;; _eeWrite
4201 ;; _mFadeO
4202 ;; _delay_ms
4203 ;; ___wmul
4204 ;; _mFadeDown
4205 ;; ___lwdiv
4206 ;; _genExponents
4207 ;; ___lbtoft
4208 ;; ___ftpack
4209 ;; ___ftdiv
4210 ;; ___ftpack
4211 ;; _exp
4212 ;; ___ftge
4213 ;; ___ftneg
4214 ;; ___ftmul
4215 ;; ___ftpack
4216 ;; ___lbtoft (ARG)
4217 ;; ___ftpack
4218 ;; _floor
4219 ;; _frexp
4220 ;; ___ftge
4221 ;; ___fttol
4222 ;; ___altoft
4223 ;; ___ftpack
4224 ;; ___fttol (ARG)
4225 ;; ___ftadd
4226 ;; ___ftpack
4227 ;; ___ftmul (ARG)
4228 ;; ___ftpack
4229 ;; ___lbtoft (ARG)
4230 ;; ___ftpack
4231 ;; ___fttol
4232 ;; ___awtoft
4233 ;; ___ftpack
4234 ;; ___ftsub
4235 ;; ___ftadd
4236 ;; ___ftpack
4237 ;; ___ftmul (ARG)
4238 ;; ___ftpack
4239 ;; ___lbtoft (ARG)
4240 ;; ___ftpack
4241 ;; ___awtoft (ARG)
4242 ;; ___ftpack
4243 ;; _eval_poly
4244 ;; ___ftmul
4245 ;; ___ftpack
4246 ;; ___lbtoft (ARG)
4247 ;; ___ftpack
4248 ;; ___ftadd
4249 ;; ___ftpack
4250 ;; ___ftmul (ARG)
4251 ;; ___ftpack
4252 ;; ___lbtoft (ARG)
4253 ;; ___ftpack
4254 ;; _ldexp (ARG)
4255 ;; ___ftge
4256 ;; ___ftneg
4257 ;; ___ftmul (ARG)
4258 ;; ___ftpack
4259 ;; ___lbtoft (ARG)
4260 ;; ___ftpack
4261 ;; ___ftadd (ARG)
4262 ;; ___ftpack
4263 ;; ___ftmul (ARG)
4264 ;; ___ftpack
4265 ;; ___lbtoft (ARG)
4266 ;; ___ftpack
4267 ;; _ldexp
4268 ;; ___ftge
4269 ;; ___ftneg
4270 ;; ___ftmul (ARG)
4271 ;; ___ftpack
4272 ;; ___lbtoft (ARG)
4273 ;; ___ftpack
4274 ;; ___ftadd (ARG)
4275 ;; ___ftpack
4276 ;; ___ftmul (ARG)
4277 ;; ___ftpack
4278 ;; ___lbtoft (ARG)
4279 ;; ___ftpack
4280 ;; ___ftdiv
4281 ;; ___ftpack
4282 ;; ___ftsub
4283 ;; ___ftadd
4284 ;; ___ftpack
4285 ;; ___ftmul (ARG)
4286 ;; ___ftpack
4287 ;; ___lbtoft (ARG)
4288 ;; ___ftpack
4289 ;; ___awtoft (ARG)
4290 ;; ___ftpack
4291 ;; ___ftmul
4292 ;; ___ftpack
4293 ;; ___lbtoft (ARG)
4294 ;; ___ftpack
4295 ;; ___ftadd
4296 ;; ___ftpack
4297 ;; ___ftmul (ARG)
4298 ;; ___ftpack
4299 ;; ___lbtoft (ARG)
4300 ;; ___ftpack
4301 ;; ___fttol
4302 ;; _mFadeUp
4303 ;; ___wmul
4304 ;; _genExponents
4305 ;; ___lbtoft
4306 ;; ___ftpack
4307 ;; ___ftdiv
4308 ;; ___ftpack
4309 ;; _exp
4310 ;; ___ftge
4311 ;; ___ftneg
4312 ;; ___ftmul
4313 ;; ___ftpack
4314 ;; ___lbtoft (ARG)
4315 ;; ___ftpack
4316 ;; _floor
4317 ;; _frexp
4318 ;; ___ftge
4319 ;; ___fttol
4320 ;; ___altoft
4321 ;; ___ftpack
4322 ;; ___fttol (ARG)
4323 ;; ___ftadd
4324 ;; ___ftpack
4325 ;; ___ftmul (ARG)
4326 ;; ___ftpack
4327 ;; ___lbtoft (ARG)
4328 ;; ___ftpack
4329 ;; ___fttol
4330 ;; ___awtoft
4331 ;; ___ftpack
4332 ;; ___ftsub
4333 ;; ___ftadd
4334 ;; ___ftpack
4335 ;; ___ftmul (ARG)
4336 ;; ___ftpack
4337 ;; ___lbtoft (ARG)
4338 ;; ___ftpack
4339 ;; ___awtoft (ARG)
4340 ;; ___ftpack
4341 ;; _eval_poly
4342 ;; ___ftmul
4343 ;; ___ftpack
4344 ;; ___lbtoft (ARG)
4345 ;; ___ftpack
4346 ;; ___ftadd
4347 ;; ___ftpack
4348 ;; ___ftmul (ARG)
4349 ;; ___ftpack
4350 ;; ___lbtoft (ARG)
4351 ;; ___ftpack
4352 ;; _ldexp (ARG)
4353 ;; ___ftge
4354 ;; ___ftneg
4355 ;; ___ftmul (ARG)
4356 ;; ___ftpack
4357 ;; ___lbtoft (ARG)
4358 ;; ___ftpack
4359 ;; ___ftadd (ARG)
4360 ;; ___ftpack
4361 ;; ___ftmul (ARG)
4362 ;; ___ftpack
4363 ;; ___lbtoft (ARG)
4364 ;; ___ftpack
4365 ;; _ldexp
4366 ;; ___ftge
4367 ;; ___ftneg
4368 ;; ___ftmul (ARG)
4369 ;; ___ftpack
4370 ;; ___lbtoft (ARG)
4371 ;; ___ftpack
4372 ;; ___ftadd (ARG)
4373 ;; ___ftpack
4374 ;; ___ftmul (ARG)
4375 ;; ___ftpack
4376 ;; ___lbtoft (ARG)
4377 ;; ___ftpack
4378 ;; ___ftdiv
4379 ;; ___ftpack
4380 ;; ___ftsub
4381 ;; ___ftadd
4382 ;; ___ftpack
4383 ;; ___ftmul (ARG)
4384 ;; ___ftpack
4385 ;; ___lbtoft (ARG)
4386 ;; ___ftpack
4387 ;; ___awtoft (ARG)
4388 ;; ___ftpack
4389 ;; ___ftmul
4390 ;; ___ftpack
4391 ;; ___lbtoft (ARG)
4392 ;; ___ftpack
4393 ;; ___ftadd
4394 ;; ___ftpack
4395 ;; ___ftmul (ARG)
4396 ;; ___ftpack
4397 ;; ___lbtoft (ARG)
4398 ;; ___ftpack
4399 ;; ___fttol
4400 ;; _mFadeDestr
4401 ;; _eeWrite
4402 ;; _mFadeInit
4403 ;; _eeRead
4404 ;; _genExponents
4405 ;; ___lbtoft
4406 ;; ___ftpack
4407 ;; ___ftdiv
4408 ;; ___ftpack
4409 ;; _exp
4410 ;; ___ftge
4411 ;; ___ftneg
4412 ;; ___ftmul
4413 ;; ___ftpack
4414 ;; ___lbtoft (ARG)
4415 ;; ___ftpack
4416 ;; _floor
4417 ;; _frexp
4418 ;; ___ftge
4419 ;; ___fttol
4420 ;; ___altoft
4421 ;; ___ftpack
4422 ;; ___fttol (ARG)
4423 ;; ___ftadd
4424 ;; ___ftpack
4425 ;; ___ftmul (ARG)
4426 ;; ___ftpack
4427 ;; ___lbtoft (ARG)
4428 ;; ___ftpack
4429 ;; ___fttol
4430 ;; ___awtoft
4431 ;; ___ftpack
4432 ;; ___ftsub
4433 ;; ___ftadd
4434 ;; ___ftpack
4435 ;; ___ftmul (ARG)
4436 ;; ___ftpack
4437 ;; ___lbtoft (ARG)
4438 ;; ___ftpack
4439 ;; ___awtoft (ARG)
4440 ;; ___ftpack
4441 ;; _eval_poly
4442 ;; ___ftmul
4443 ;; ___ftpack
4444 ;; ___lbtoft (ARG)
4445 ;; ___ftpack
4446 ;; ___ftadd
4447 ;; ___ftpack
4448 ;; ___ftmul (ARG)
4449 ;; ___ftpack
4450 ;; ___lbtoft (ARG)
4451 ;; ___ftpack
4452 ;; _ldexp (ARG)
4453 ;; ___ftge
4454 ;; ___ftneg
4455 ;; ___ftmul (ARG)
4456 ;; ___ftpack
4457 ;; ___lbtoft (ARG)
4458 ;; ___ftpack
4459 ;; ___ftadd (ARG)
4460 ;; ___ftpack
4461 ;; ___ftmul (ARG)
4462 ;; ___ftpack
4463 ;; ___lbtoft (ARG)
4464 ;; ___ftpack
4465 ;; _ldexp
4466 ;; ___ftge
4467 ;; ___ftneg
4468 ;; ___ftmul (ARG)
4469 ;; ___ftpack
4470 ;; ___lbtoft (ARG)
4471 ;; ___ftpack
4472 ;; ___ftadd (ARG)
4473 ;; ___ftpack
4474 ;; ___ftmul (ARG)
4475 ;; ___ftpack
4476 ;; ___lbtoft (ARG)
4477 ;; ___ftpack
4478 ;; ___ftdiv
4479 ;; ___ftpack
4480 ;; ___ftsub
4481 ;; ___ftadd
4482 ;; ___ftpack
4483 ;; ___ftmul (ARG)
4484 ;; ___ftpack
4485 ;; ___lbtoft (ARG)
4486 ;; ___ftpack
4487 ;; ___awtoft (ARG)
4488 ;; ___ftpack
4489 ;; ___ftmul
4490 ;; ___ftpack
4491 ;; ___lbtoft (ARG)
4492 ;; ___ftpack
4493 ;; ___ftadd
4494 ;; ___ftpack
4495 ;; ___ftmul (ARG)
4496 ;; ___ftpack
4497 ;; ___lbtoft (ARG)
4498 ;; ___ftpack
4499 ;; ___fttol
4500 ;; _mSolidDataInit
4501 ;; _eeWrite
4502 ;; _mSolidO
4503 ;; _delay_ms
4504 ;; ___wmul
4505 ;; _mSolidDown
4506 ;; ___awdiv
4507 ;; _mSolidUp
4508 ;; _mSolidDestr
4509 ;; _eeWrite
4510 ;; _mSolidInit
4511 ;; _eeRead
4512 ;; _mOffO
4513 ;; _mOffCheckConfigMode
4514 ;; _cfgModeShowVal
4515 ;; _delay_ms
4516 ;; ___wmul
4517 ;; ___lldiv
4518 ;; ___lmul
4519 ;; ___llmod
4520 ;; _mOffDown
4521 ;; _mOffCheckConfigMode
4522 ;; _cfgModeShowVal
4523 ;; _delay_ms
4524 ;; ___wmul
4525 ;; ___lldiv
4526 ;; ___lmul
4527 ;; ___llmod
4528 ;; _mOffUp
4529 ;; _mOffCheckConfigMode
4530 ;; _cfgModeShowVal
4531 ;; _delay_ms
4532 ;; ___wmul
4533 ;; ___lldiv
4534 ;; ___lmul
4535 ;; ___llmod
4536 ;; _mOffDataInit
4537 ;; _eeWrite
4538 ;; _mOffDestr
4539 ;; _eeRead
4540 ;; _mOffInit
4541 ;; _eeWrite
4542 ;; _eeWrite
4543 ;; _rxStart
4544 ;; _rxDecode
4545 ;; _getU32
4546 ;; _getU8
4547 ;; _getU16
4548 ;;
4549 ;; _isr (ROOT)
4550 ;;
4551 ;; Address spaces:
4552 ;;Name Size Autos Total Cost Usage
4553 ;;BIGRAM F0 0 0 0 0.0%
4554 ;;EEDATA 100 0 0 0 0.0%
4555 ;;NULL 0 0 0 0 0.0%
4556 ;;CODE 0 0 0 0 0.0%
4557 ;;BITCOMMON E 0 1 1 7.1%
4558 ;;BITSFR0 0 0 0 1 0.0%
4559 ;;SFR0 0 0 0 1 0.0%
4560 ;;COMMON E 5 A 2 71.4%
4561 ;;BITSFR1 0 0 0 2 0.0%
4562 ;;SFR1 0 0 0 2 0.0%
4563 ;;BITSFR2 0 0 0 3 0.0%
4564 ;;SFR2 0 0 0 3 0.0%
4565 ;;STACK 0 0 7 3 0.0%
4566 ;;BITSFR3 0 0 0 4 0.0%
4567 ;;SFR3 0 0 0 4 0.0%
4568 ;;ABS 0 0 BD 4 0.0%
4569 ;;BITBANK0 50 0 0 5 0.0%
4570 ;;BITSFR4 0 0 0 5 0.0%
4571 ;;SFR4 0 0 0 5 0.0%
4572 ;;BANK0 50 50 50 6 100.0%
4573 ;;BITSFR5 0 0 0 6 0.0%
4574 ;;SFR5 0 0 0 6 0.0%
4575 ;;BITBANK1 50 0 0 7 0.0%
4576 ;;BITSFR6 0 0 0 7 0.0%
4577 ;;SFR6 0 0 0 7 0.0%
4578 ;;BANK1 50 F 43 8 83.8%
4579 ;;BITSFR7 0 0 0 8 0.0%
4580 ;;SFR7 0 0 0 8 0.0%
4581 ;;BITBANK2 50 0 0 9 0.0%
4582 ;;BITSFR8 0 0 0 9 0.0%
4583 ;;SFR8 0 0 0 9 0.0%
4584 ;;BANK2 50 0 20 10 40.0%
4585 ;;BITSFR9 0 0 0 10 0.0%
4586 ;;SFR9 0 0 0 10 0.0%
4587 ;;BITSFR10 0 0 0 11 0.0%
4588 ;;SFR10 0 0 0 11 0.0%
4589 ;;DATA 0 0 C4 11 0.0%
4590 ;;BITSFR11 0 0 0 12 0.0%
4591 ;;SFR11 0 0 0 12 0.0%
4592 ;;BITSFR12 0 0 0 13 0.0%
4593 ;;SFR12 0 0 0 13 0.0%
4594 ;;BITSFR13 0 0 0 14 0.0%
4595 ;;SFR13 0 0 0 14 0.0%
4596 ;;BITSFR14 0 0 0 15 0.0%
4597 ;;SFR14 0 0 0 15 0.0%
4598 ;;BITSFR15 0 0 0 16 0.0%
4599 ;;SFR15 0 0 0 16 0.0%
4600 ;;BITSFR16 0 0 0 17 0.0%
4601 ;;SFR16 0 0 0 17 0.0%
4602 ;;BITSFR17 0 0 0 18 0.0%
4603 ;;SFR17 0 0 0 18 0.0%
4604 ;;BITSFR18 0 0 0 19 0.0%
4605 ;;SFR18 0 0 0 19 0.0%
4606 ;;BITSFR19 0 0 0 20 0.0%
4607 ;;SFR19 0 0 0 20 0.0%
4608 ;;BITSFR20 0 0 0 21 0.0%
4609 ;;SFR20 0 0 0 21 0.0%
4610 ;;BITSFR21 0 0 0 22 0.0%
4611 ;;SFR21 0 0 0 22 0.0%
4612 ;;BITSFR22 0 0 0 23 0.0%
4613 ;;SFR22 0 0 0 23 0.0%
4614 ;;BITSFR23 0 0 0 24 0.0%
4615 ;;SFR23 0 0 0 24 0.0%
4616 ;;BITSFR24 0 0 0 25 0.0%
4617 ;;SFR24 0 0 0 25 0.0%
4618 ;;BITSFR25 0 0 0 26 0.0%
4619 ;;SFR25 0 0 0 26 0.0%
4620 ;;BITSFR26 0 0 0 27 0.0%
4621 ;;SFR26 0 0 0 27 0.0%
4622 ;;BITSFR27 0 0 0 28 0.0%
4623 ;;SFR27 0 0 0 28 0.0%
4624 ;;BITSFR28 0 0 0 29 0.0%
4625 ;;SFR28 0 0 0 29 0.0%
4626 ;;BITSFR29 0 0 0 30 0.0%
4627 ;;SFR29 0 0 0 30 0.0%
4628 ;;BITSFR30 0 0 0 31 0.0%
4629 ;;SFR30 0 0 0 31 0.0%
4630 ;;BITSFR31 0 0 0 32 0.0%
4631 ;;SFR31 0 0 0 32 0.0%
4632
4633
4634 ;; *************** function _main *****************
4635 ;; Defined at:
4636 ;; line 682 in file "Z:\pic\irRX\main.c"
4637 ;; Parameters: Size Location Type
4638 ;; None
4639 ;; Auto vars: Size Location Type
4640 ;; pressessSinc 4 0 unsigned long
4641 ;; pressesTotal 4 0 unsigned long
4642 ;; whichBtn 1 13[BANK1 ] unsigned char
4643 ;; pt 2 11[BANK1 ] unsigned short
4644 ;; t 1 10[BANK1 ] unsigned char
4645 ;; mode 1 14[BANK1 ] unsigned char
4646 ;; Return value: Size Location Type
4647 ;; None void
4648 ;; Registers used:
4649 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
4650 ;; Tracked objects:
4651 ;; On entry : 17F/0
4652 ;; On exit : 1A/0
4653 ;; Unchanged: 0/0
4654 ;; Data sizes: COMMON BANK0 BANK1 BANK2
4655 ;; Params: 0 0 0 0
4656 ;; Locals: 0 0 5 0
4657 ;; Temps: 0 0 2 0
4658 ;; Totals: 0 0 7 0
4659 ;;Total ram usage: 7 bytes
4660 ;; Hardware stack levels required when called: 8
4661 ;; This function calls:
4662 ;; _init
4663 ;; _eeRead
4664 ;; _runFuncPtr
4665 ;; _eeWrite
4666 ;; _rxStart
4667 ;; _rxDecode
4668 ;; _getU32
4669 ;; _getU8
4670 ;; _getU16
4671 ;; This function is called by:
4672 ;; Startup code after reset
4673 ;; This function uses a non-reentrant model
4674 ;;
4675 0871 _main:
4676
4677 ;main.c: 684: UInt8 mode;
4678 ;main.c: 686: init();
4679
4680 ; Regs used in _main: [allreg]
4681 0871 2301 3188 fcall _init
4682
4683 ;main.c: 689: if(eeRead(0xFF) == 'M'){
4684 0873 30FF movlw 255
4685 0874 226B 3188 fcall _eeRead
4686 0876 3A4D xorlw 77
4687 0877 1D03 skipz
4688 0878 287F goto l6751
4689
4690 ;main.c: 691: mode = eeRead(0xFE);
4691 0879 30FE movlw 254
4692 087A 226B 3188 fcall _eeRead
4693 087C 0021 movlb 1 ; select bank1
4694 087D 00E0 movwf main@mode^(0+128)
4695
4696 ;main.c: 692: }
4697 087E 2899 goto l6765
4698 087F l6751:
4699
4700 ;main.c: 693: else{
4701 ;main.c: 695: for(mode = 0; mode < 3; mode++) runFuncPtr(5, mode, 0);
4702 087F 0021 movlb 1 ; select bank1
4703 0880 01E0 clrf main@mode^(0+128)
4704 0881 l6757:
4705 0881 0860 movf main@mode^(0+128),w
4706 0882 00D4 movwf ?_runFuncPtr^(0+128)
4707 0883 3005 movlw 5
4708 0884 01D5 clrf (?_runFuncPtr^(0+128)+1)
4709 0885 2148 3188 fcall _runFuncPtr
4710 0887 3003 movlw 3
4711 0888 0AE0 incf main@mode^(0+128),f
4712 0889 0260 subwf main@mode^(0+128),w
4713 088A 1C03 skipc
4714 088B 2881 goto l6757
4715
4716 ;main.c: 696: eeWrite(0xFF, 'M');
4717 088C 304D movlw 77
4718 088D 0020 movlb 0 ; select bank0
4719 088E 00A0 movwf ?_eeWrite
4720 088F 30FF movlw 255
4721 0890 2197 3188 fcall _eeWrite
4722
4723 ;main.c: 697: eeWrite(0xFE, mode = 0);
4724 0892 0021 movlb 1 ; select bank1
4725 0893 01E0 clrf main@mode^(0+128)
4726 0894 0020 movlb 0 ; select bank0
4727 0895 30FE movlw 254
4728 0896 01A0 clrf ?_eeWrite
4729 0897 2197 3188 fcall _eeWrite
4730 0899 l6765:
4731
4732 ;main.c: 698: }
4733 ;main.c: 701: rxStart();
4734 0899 21BE 3188 fcall _rxStart
4735
4736 ;main.c: 702: runFuncPtr(0, mode, 0);
4737 089B 0021 movlb 1 ; select bank1
4738 089C 0860 movf main@mode^(0+128),w
4739 089D 00D4 movwf ?_runFuncPtr^(0+128)
4740 089E 3000 movlw 0
4741 089F 01D5 clrf (?_runFuncPtr^(0+128)+1)
4742 08A0 2148 3188 fcall _runFuncPtr
4743 08A2 l6769:
4744
4745 ;main.c: 709: if(pt != TMR1 >> 6){
4746 08A2 0020 movlb 0 ; select bank0
4747 08A3 0817 movf 23,w ;volatile
4748 08A4 0021 movlb 1 ; select bank1
4749 08A5 00DB movwf (??_main^(0+128)+1)
4750 08A6 0020 movlb 0 ; select bank0
4751 08A7 0816 movf 22,w ;volatile
4752 08A8 0021 movlb 1 ; select bank1
4753 08A9 00DA movwf ??_main^(0+128)
4754 08AA 3006 movlw 6
4755 08AB u5035:
4756 08AB 36DB lsrf (??_main^(0+128)+1),f
4757 08AC 0CDA rrf ??_main^(0+128),f
4758 08AD 0B89 decfsz 9,f
4759 08AE 28AB goto u5035
4760 08AF 085B movf (??_main+1)^(0+128),w
4761 08B0 045A iorwf ??_main^(0+128),w
4762 08B1 1903 skipnz
4763 08B2 28C6 goto l6779
4764
4765 ;main.c: 710: runFuncPtr(6, mode, 0);
4766 08B3 0860 movf main@mode^(0+128),w
4767 08B4 00D4 movwf ?_runFuncPtr^(0+128)
4768 08B5 3006 movlw 6
4769 08B6 01D5 clrf (?_runFuncPtr^(0+128)+1)
4770 08B7 2148 3188 fcall _runFuncPtr
4771
4772 ;main.c: 711: pt = TMR1 >> 6;
4773 08B9 0020 movlb 0 ; select bank0
4774 08BA 0817 movf 23,w ;volatile
4775 08BB 0021 movlb 1 ; select bank1
4776 08BC 00DE movwf (main@pt+1)^(0+128) ;volatile
4777 08BD 0020 movlb 0 ; select bank0
4778 08BE 0816 movf 22,w ;volatile
4779 08BF 0021 movlb 1 ; select bank1
4780 08C0 00DD movwf main@pt^(0+128) ;volatile
4781 08C1 3006 movlw 6
4782 08C2 u5055:
4783 08C2 36DE lsrf (main@pt+1)^(0+128),f ;volatile
4784 08C3 0CDD rrf main@pt^(0+128),f ;volatile
4785 08C4 0B89 decfsz 9,f
4786 08C5 28C2 goto u5055
4787 08C6 l6779:
4788
4789 ;main.c: 712: }
4790 ;main.c: 713: if(gRxDone){
4791 08C6 1CF9 btfss _gRxDone/(0+8),_gRxDone& (0+7)
4792 08C7 28A2 goto l6769
4793
4794 ;main.c: 715: t = rxDecode();
4795 08C8 2276 3188 fcall _rxDecode
4796 08CA 0021 movlb 1 ; select bank1
4797 08CB 00DC movwf main@t^(0+128)
4798
4799 ;main.c: 716: if(t == 0){
4800 08CC 08DC movf main@t^(0+128),f
4801 08CD 1D03 skipz
4802 08CE 2944 goto l6827
4803
4804 ;main.c: 717: UInt32 pressesTotal = getU32(gRxData + 2);
4805 08CF 30B4 movlw (_gRxData+2)& (0+255)
4806 08D0 21DE 3188 fcall _getU32
4807
4808 ;main.c: 718: UInt32 pressessSinceBattChange = getU32(gRxData + 6);
4809 08D2 30B8 movlw (_gRxData+6)& (0+255)
4810 08D3 21DE 3188 fcall _getU32
4811
4812 ;main.c: 719: UInt8 whichBtn = getU8(gRxData + 12);
4813 08D5 30BE movlw (_gRxData+12)& (0+255)
4814 08D6 22EF 3188 fcall _getU8
4815 08D8 0021 movlb 1 ; select bank1
4816 08D9 00DF movwf main@whichBtn^(0+128)
4817
4818 ;main.c: 721: gBattCentiVolts = getU16(gRxData + 10);
4819 08DA 30BC movlw (_gRxData+10)& (0+255)
4820 08DB 22BE 3188 fcall _getU16
4821 08DD 0821 movf ?_getU16+1,w
4822 08DE 0021 movlb 1 ; select bank1
4823 08DF 00A9 movwf (_gBattCentiVolts+1)^(0+128)
4824 08E0 0020 movlb 0 ; select bank0
4825 08E1 0820 movf ?_getU16,w
4826 08E2 0021 movlb 1 ; select bank1
4827 08E3 00A8 movwf _gBattCentiVolts^(0+128)
4828
4829 ;main.c: 722: if(whichBtn == 1){
4830 08E4 0B5F decfsz main@whichBtn^(0+128),w
4831 08E5 2903 goto l6805
4832
4833 ;main.c: 724: if(mode != 0){
4834 08E6 0860 movf main@mode^(0+128),w
4835 08E7 1903 btfsc 3,2
4836 08E8 2944 goto l6827
4837
4838 ;main.c: 726: runFuncPtr(1, mode, 0);
4839 08E9 0860 movf main@mode^(0+128),w
4840 08EA 00D4 movwf ?_runFuncPtr^(0+128)
4841 08EB 3001 movlw 1
4842 08EC 01D5 clrf (?_runFuncPtr^(0+128)+1)
4843 08ED 2148 3188 fcall _runFuncPtr
4844
4845 ;main.c: 727: if(++mode == 3) mode = 1;
4846 08EF 0AE0 incf main@mode^(0+128),f
4847 08F0 0860 movf main@mode^(0+128),w
4848 08F1 3A03 xorlw 3
4849 08F2 1D03 skipz
4850 08F3 28F6 goto l6801
4851 08F4 01E0 clrf main@mode^(0+128)
4852 08F5 0AE0 incf main@mode^(0+128),f
4853 08F6 l6801:
4854
4855 ;main.c: 728: runFuncPtr(0, mode, 0);
4856 08F6 0860 movf main@mode^(0+128),w
4857 08F7 00D4 movwf ?_runFuncPtr^(0+128)
4858 08F8 3000 movlw 0
4859 08F9 01D5 clrf (?_runFuncPtr^(0+128)+1)
4860 08FA 2148 3188 fcall _runFuncPtr
4861
4862 ;main.c: 729: eeWrite(0xFE, mode);
4863 08FC 0860 movf main@mode^(0+128),w
4864 08FD 0020 movlb 0 ; select bank0
4865 08FE 00A0 movwf ?_eeWrite
4866 08FF 30FE movlw 254
4867 0900 2197 3188 fcall _eeWrite
4868 0902 2944 goto l6827
4869 0903 l6805:
4870
4871 ;main.c: 732: else if(whichBtn == 4){
4872 0903 085F movf main@whichBtn^(0+128),w
4873 0904 3A04 xorlw 4
4874 0905 1D03 skipz
4875 0906 290E goto l6809
4876
4877 ;main.c: 734: runFuncPtr(2, mode, 0);
4878 0907 0860 movf main@mode^(0+128),w
4879 0908 00D4 movwf ?_runFuncPtr^(0+128)
4880 0909 3002 movlw 2
4881 090A 01D5 clrf (?_runFuncPtr^(0+128)+1)
4882 090B 2148 3188 fcall _runFuncPtr
4883
4884 ;main.c: 735: }
4885 090D 2944 goto l6827
4886 090E l6809:
4887
4888 ;main.c: 736: else if(whichBtn == 3){
4889 090E 085F movf main@whichBtn^(0+128),w
4890 090F 3A03 xorlw 3
4891 0910 1D03 skipz
4892 0911 2919 goto l6813
4893
4894 ;main.c: 738: runFuncPtr(3, mode, 0);
4895 0912 0860 movf main@mode^(0+128),w
4896 0913 00D4 movwf ?_runFuncPtr^(0+128)
4897 0914 3003 movlw 3
4898 0915 01D5 clrf (?_runFuncPtr^(0+128)+1)
4899 0916 2148 3188 fcall _runFuncPtr
4900
4901 ;main.c: 739: }
4902 0918 2944 goto l6827
4903 0919 l6813:
4904
4905 ;main.c: 740: else if(whichBtn == 2){
4906 0919 085F movf main@whichBtn^(0+128),w
4907 091A 3A02 xorlw 2
4908 091B 1D03 skipz
4909 091C 2924 goto l6817
4910
4911 ;main.c: 742: runFuncPtr(4, mode, 0);
4912 091D 0860 movf main@mode^(0+128),w
4913 091E 00D4 movwf ?_runFuncPtr^(0+128)
4914 091F 3004 movlw 4
4915 0920 01D5 clrf (?_runFuncPtr^(0+128)+1)
4916 0921 2148 3188 fcall _runFuncPtr
4917
4918 ;main.c: 743: }
4919 0923 2944 goto l6827
4920 0924 l6817:
4921
4922 ;main.c: 744: else if(whichBtn == 0){
4923 0924 08DF movf main@whichBtn^(0+128),f
4924 0925 1D03 skipz
4925 0926 2944 goto l6827
4926
4927 ;main.c: 746: if(mode == 0){
4928 0927 08E0 movf main@mode^(0+128),f
4929 0928 1D03 skipz
4930 0929 2937 goto l6823
4931
4932 ;main.c: 748: mode = runFuncPtr(1, mode, 0);
4933 092A 0860 movf main@mode^(0+128),w
4934 092B 00D4 movwf ?_runFuncPtr^(0+128)
4935 092C 3001 movlw 1
4936 092D 01D5 clrf (?_runFuncPtr^(0+128)+1)
4937 092E 2148 3188 fcall _runFuncPtr
4938 0930 00E0 movwf main@mode^(0+128)
4939
4940 ;main.c: 749: runFuncPtr(0, mode, 0);
4941 0931 00D4 movwf ?_runFuncPtr^(0+128)
4942 0932 3000 movlw 0
4943 0933 01D5 clrf (?_runFuncPtr^(0+128)+1)
4944 0934 2148 3188 fcall _runFuncPtr
4945
4946 ;main.c: 750: }
4947 0936 2944 goto l6827
4948 0937 l6823:
4949
4950 ;main.c: 751: else{
4951 ;main.c: 753: runFuncPtr(1, mode, 0);
4952 0937 0860 movf main@mode^(0+128),w
4953 0938 00D4 movwf ?_runFuncPtr^(0+128)
4954 0939 3001 movlw 1
4955 093A 01D5 clrf (?_runFuncPtr^(0+128)+1)
4956 093B 2148 3188 fcall _runFuncPtr
4957
4958 ;main.c: 754: runFuncPtr(0, 0, mode);
4959 093D 01D4 clrf ?_runFuncPtr^(0+128)
4960 093E 0860 movf main@mode^(0+128),w
4961 093F 00D5 movwf (?_runFuncPtr^(0+128)+1)
4962 0940 3000 movlw 0
4963 0941 2148 3188 fcall _runFuncPtr
4964
4965 ;main.c: 755: mode = 0;
4966 0943 01E0 clrf main@mode^(0+128)
4967 0944 l6827:
4968
4969 ;main.c: 756: }
4970 ;main.c: 757: }
4971 ;main.c: 758: }
4972 ;main.c: 759: rxStart();
4973 0944 21BE 3188 fcall _rxStart
4974 0946 28A2 goto l6769
4975 0947 l1352:
4976 0947 2947 goto l1352
4977 0948 __end_of_main:
4978 0948 __ptext1603:
4979 ;; =============== function _main ends ============
4980
4981
4982 ;; *************** function _runFuncPtr *****************
4983 ;; Defined at:
4984 ;; line 675 in file "Z:\pic\irRX\main.c"
4985 ;; Parameters: Size Location Type
4986 ;; funcIdx 1 wreg unsigned char
4987 ;; curMode 1 2[BANK1 ] unsigned char
4988 ;; arg 1 3[BANK1 ] unsigned char
4989 ;; Auto vars: Size Location Type
4990 ;; funcIdx 1 4[BANK1 ] unsigned char
4991 ;; f 1 7[BANK1 ] PTR FTN(unsigned char ,)
4992 ;; -> Absolute function(1), mFadeRun(1), mFadeDataInit(1), mFadeO(1),
4993 ;; -> mFadeDown(1), mFadeUp(1), mFadeDestr(1), mFadeInit(1),
4994 ;; -> mSolidDataInit(1), mSolidO(1), mSolidDown(1), mSolidUp(1),
4995 ;; -> mSolidDestr(1), mSolidInit(1), mOffO(1), mOffDown(1),
4996 ;; -> mOffUp(1), mOffDataInit(1), mOffDestr(1), mOffInit(1),
4997 ;; Return value: Size Location Type
4998 ;; 1 wreg unsigned char
4999 ;; Registers used:
5000 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
5001 ;; Tracked objects:
5002 ;; On entry : 1F/1
5003 ;; On exit : 1F/1
5004 ;; Unchanged: 0/0
5005 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5006 ;; Params: 0 0 2 0
5007 ;; Locals: 0 0 4 0
5008 ;; Temps: 0 0 0 0
5009 ;; Totals: 0 0 6 0
5010 ;;Total ram usage: 6 bytes
5011 ;; Hardware stack levels used: 1
5012 ;; Hardware stack levels required when called: 7
5013 ;; This function calls:
5014 ;; ___bmul
5015 ;; Absolute function
5016 ;; _mFadeRun
5017 ;; _mFadeDataInit
5018 ;; _mFadeO
5019 ;; _mFadeDown
5020 ;; _mFadeUp
5021 ;; _mFadeDestr
5022 ;; _mFadeInit
5023 ;; _mSolidDataInit
5024 ;; _mSolidO
5025 ;; _mSolidDown
5026 ;; _mSolidUp
5027 ;; _mSolidDestr
5028 ;; _mSolidInit
5029 ;; _mOffO
5030 ;; _mOffDown
5031 ;; _mOffUp
5032 ;; _mOffDataInit
5033 ;; _mOffDestr
5034 ;; _mOffInit
5035 ;; This function is called by:
5036 ;; _main
5037 ;; This function uses a non-reentrant model
5038 ;;
5039 0948 _runFuncPtr:
5040
5041 ; Regs used in _runFuncPtr: [allreg]
5042 ;runFuncPtr@funcIdx stored from wreg
5043 0948 00D6 movwf runFuncPtr@funcIdx^(0+128)
5044
5045 ;main.c: 677: modeFunc f = gModeFns[curMode][funcIdx];
5046 0949 3007 movlw 7
5047 094A 0020 movlb 0 ; select bank0
5048 094B 00A0 movwf ?___bmul
5049 094C 0021 movlb 1 ; select bank1
5050 094D 0854 movf runFuncPtr@curMode^(0+128),w
5051 094E 22F4 fcall ___bmul
5052 094F 3EC5 addlw low (_gModeFns| (0+32768))
5053 0950 0021 movlb 1 ; select bank1
5054 0951 0756 addwf runFuncPtr@funcIdx^(0+128),w
5055 0952 3180 movlp high __stringtab
5056 0953 000A callw
5057 0954 3188 pagesel $
5058 0955 00D9 movwf runFuncPtr@f^(0+128)
5059
5060 ;main.c: 679: return f ? f(arg) : 0;
5061 0956 08D9 movf runFuncPtr@f^(0+128),f
5062 0957 1D03 skipz
5063 0958 295B goto l6739
5064 0959 01D7 clrf _runFuncPtr$2127^(0+128)
5065 095A 2964 goto L1
5066 095B l6739:
5067 095B 0855 movf runFuncPtr@arg^(0+128),w
5068 095C 0020 movlb 0 ; select bank0
5069 095D 00EA movwf ?_mFadeRun
5070 095E 0021 movlb 1 ; select bank1
5071 095F 0859 movf runFuncPtr@f^(0+128),w
5072 0960 3181 2100 fcall fptable
5073 0962 0021 movlb 1 ; select bank1
5074 0963 00D7 movwf _runFuncPtr$2127^(0+128)
5075 0964 L1:
5076 0964 01D8 clrf (_runFuncPtr$2127+1)^(0+128)
5077 0965 0857 movf _runFuncPtr$2127^(0+128),w
5078 0966 0008 return
5079 0967 __end_of_runFuncPtr:
5080 0967 __ptext1610:
5081 ;; =============== function _mFadeInit ends ============
5082
5083
5084 ;; *************** function _mSolidDataInit *****************
5085 ;; Defined at:
5086 ;; line 453 in file "Z:\pic\irRX\main.c"
5087 ;; Parameters: Size Location Type
5088 ;; arg 1 74[BANK0 ] unsigned char
5089 ;; Auto vars: Size Location Type
5090 ;; None
5091 ;; Return value: Size Location Type
5092 ;; 1 wreg unsigned char
5093 ;; Registers used:
5094 ;; wreg, status,2, status,0, pclath, cstack
5095 ;; Tracked objects:
5096 ;; On entry : 1F/1
5097 ;; On exit : 1F/3
5098 ;; Unchanged: FFE00/0
5099 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5100 ;; Params: 0 1 0 0
5101 ;; Locals: 0 0 0 0
5102 ;; Temps: 0 0 0 0
5103 ;; Totals: 0 1 0 0
5104 ;;Total ram usage: 1 bytes
5105 ;; Hardware stack levels used: 1
5106 ;; Hardware stack levels required when called: 2
5107 ;; This function calls:
5108 ;; _eeWrite
5109 ;; This function is called by:
5110 ;; _runFuncPtr
5111 ;; This function uses a non-reentrant model
5112 ;;
5113 0967 _mSolidDataInit:
5114
5115 ;main.c: 455: eeWrite(0xC5, 5);
5116
5117 ; Regs used in _mSolidDataInit: [wreg+status,2+status,0+pclath+cstack]
5118 0967 3005 movlw 5
5119 0968 0020 movlb 0 ; select bank0
5120 0969 00A0 movwf ?_eeWrite
5121 096A 30C5 movlw 197
5122 096B 2197 3188 fcall _eeWrite
5123
5124 ;main.c: 456: eeWrite(0xC6, 5);
5125 096D 3005 movlw 5
5126 096E 0020 movlb 0 ; select bank0
5127 096F 00A0 movwf ?_eeWrite
5128 0970 30C6 movlw 198
5129 0971 2197 3188 fcall _eeWrite
5130
5131 ;main.c: 457: eeWrite(0xC7, 5);
5132 0973 3005 movlw 5
5133 0974 0020 movlb 0 ; select bank0
5134 0975 00A0 movwf ?_eeWrite
5135 0976 30C7 movlw 199
5136 0977 2197 3188 fcall _eeWrite
5137
5138 ;main.c: 458: eeWrite(0xC8, 100);
5139 0979 3064 movlw 100
5140 097A 0020 movlb 0 ; select bank0
5141 097B 00A0 movwf ?_eeWrite
5142 097C 30C8 movlw 200
5143 097D 2197 fcall _eeWrite
5144
5145 ;main.c: 460: return 0;
5146 097E 3400 retlw 0
5147 097F __end_of_mSolidDataInit:
5148 097F __ptext1614:
5149 ;; =============== function _mSolidUp ends ============
5150
5151
5152 ;; *************** function _mSolidDestr *****************
5153 ;; Defined at:
5154 ;; line 395 in file "Z:\pic\irRX\main.c"
5155 ;; Parameters: Size Location Type
5156 ;; arg 1 74[BANK0 ] unsigned char
5157 ;; Auto vars: Size Location Type
5158 ;; None
5159 ;; Return value: Size Location Type
5160 ;; 1 wreg unsigned char
5161 ;; Registers used:
5162 ;; wreg, status,2, status,0, pclath, cstack
5163 ;; Tracked objects:
5164 ;; On entry : 1F/1
5165 ;; On exit : 1F/3
5166 ;; Unchanged: FFE00/0
5167 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5168 ;; Params: 0 1 0 0
5169 ;; Locals: 0 0 0 0
5170 ;; Temps: 0 0 0 0
5171 ;; Totals: 0 1 0 0
5172 ;;Total ram usage: 1 bytes
5173 ;; Hardware stack levels used: 1
5174 ;; Hardware stack levels required when called: 2
5175 ;; This function calls:
5176 ;; _eeWrite
5177 ;; This function is called by:
5178 ;; _runFuncPtr
5179 ;; This function uses a non-reentrant model
5180 ;;
5181 097F _mSolidDestr:
5182
5183 ;main.c: 397: eeWrite(0xC5, gLed[0]);
5184
5185 ; Regs used in _mSolidDestr: [wreg+status,2+status,0+pclath+cstack]
5186 097F 0875 movf _gLed,w
5187 0980 0020 movlb 0 ; select bank0
5188 0981 00A0 movwf ?_eeWrite
5189 0982 30C5 movlw 197
5190 0983 2197 3188 fcall _eeWrite
5191
5192 ;main.c: 398: eeWrite(0xC6, gLed[1]);
5193 0985 0876 movf _gLed+1,w
5194 0986 0020 movlb 0 ; select bank0
5195 0987 00A0 movwf ?_eeWrite
5196 0988 30C6 movlw 198
5197 0989 2197 3188 fcall _eeWrite
5198
5199 ;main.c: 399: eeWrite(0xC7, gLed[2]);
5200 098B 0877 movf _gLed+2,w
5201 098C 0020 movlb 0 ; select bank0
5202 098D 00A0 movwf ?_eeWrite
5203 098E 30C7 movlw 199
5204 098F 2197 3188 fcall _eeWrite
5205
5206 ;main.c: 400: eeWrite(0xC8, gLed[3]);
5207 0991 0878 movf _gLed+3,w
5208 0992 0020 movlb 0 ; select bank0
5209 0993 00A0 movwf ?_eeWrite
5210 0994 30C8 movlw 200
5211 0995 2197 fcall _eeWrite
5212
5213 ;main.c: 402: return 0;
5214 0996 3400 retlw 0
5215 0997 __end_of_mSolidDestr:
5216 0997 __ptext1658:
5217 ;; =============== function _rxStart ends ============
5218
5219
5220 ;; *************** function _eeWrite *****************
5221 ;; Defined at:
5222 ;; line 44 in file "Z:\pic\irRX\main.c"
5223 ;; Parameters: Size Location Type
5224 ;; addr 1 wreg unsigned char
5225 ;; data 1 0[BANK0 ] unsigned char
5226 ;; Auto vars: Size Location Type
5227 ;; addr 1 2[BANK0 ] unsigned char
5228 ;; Return value: Size Location Type
5229 ;; None void
5230 ;; Registers used:
5231 ;; wreg, status,2, status,0
5232 ;; Tracked objects:
5233 ;; On entry : 1E/0
5234 ;; On exit : 1F/3
5235 ;; Unchanged: FFE00/0
5236 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5237 ;; Params: 0 1 0 0
5238 ;; Locals: 0 1 0 0
5239 ;; Temps: 0 1 0 0
5240 ;; Totals: 0 3 0 0
5241 ;;Total ram usage: 3 bytes
5242 ;; Hardware stack levels used: 1
5243 ;; Hardware stack levels required when called: 1
5244 ;; This function calls:
5245 ;; Nothing
5246 ;; This function is called by:
5247 ;; _log
5248 ;; _mOffInit
5249 ;; _mOffDataInit
5250 ;; _mSolidDestr
5251 ;; _mSolidDataInit
5252 ;; _mFadeDestr
5253 ;; _mFadeDataInit
5254 ;; _main
5255 ;; This function uses a non-reentrant model
5256 ;;
5257 0997 _eeWrite:
5258
5259 ; Regs used in _eeWrite: [wreg+status,2+status,0]
5260 ;eeWrite@addr stored from wreg
5261 0997 0020 movlb 0 ; select bank0
5262 0998 00A2 movwf eeWrite@addr
5263
5264 ;main.c: 46: static bit gie;
5265 ;main.c: 48: EECON1= 0b00000100;
5266 0999 3004 movlw 4
5267 099A 0023 movlb 3 ; select bank3
5268 099B 0095 movwf 21 ;volatile
5269
5270 ;main.c: 49: EEADRL = addr;
5271 099C 0020 movlb 0 ; select bank0
5272 099D 0822 movf eeWrite@addr,w
5273 099E 0023 movlb 3 ; select bank3
5274 099F 0091 movwf 17 ;volatile
5275
5276 ;main.c: 50: EEDATL = data;
5277 09A0 0020 movlb 0 ; select bank0
5278 09A1 0820 movf eeWrite@data,w
5279 09A2 0023 movlb 3 ; select bank3
5280 09A3 0093 movwf 19 ;volatile
5281
5282 ;main.c: 51: gie = GIE;
5283 09A4 1179 bcf eeWrite@gie/(0+8),eeWrite@gie& (0+7)
5284 09A5 1B8B btfsc 11,7
5285 09A6 1579 bsf eeWrite@gie/(0+8),eeWrite@gie& (0+7)
5286
5287 ;main.c: 52: INTCONbits.GIE = 0;
5288 09A7 138B bcf 11,7 ;volatile
5289
5290 ;main.c: 53: EECON2 = 0x55;
5291 09A8 3055 movlw 85
5292 09A9 0023 movlb 3 ; select bank3
5293 09AA 0096 movwf 22 ;volatile
5294
5295 ;main.c: 54: EECON2 = 0xAA;
5296 09AB 30AA movlw 170
5297 09AC 0096 movwf 22 ;volatile
5298
5299 ;main.c: 55: EECON1bits.WR = 1;
5300 09AD 1495 bsf 21,1 ;volatile
5301
5302 ;main.c: 56: INTCONbits.GIE = gie;
5303 09AE 3000 movlw 0
5304 09AF 1979 btfsc eeWrite@gie/(0+8),eeWrite@gie& (0+7)
5305 09B0 3001 movlw 1
5306 09B1 0020 movlb 0 ; select bank0
5307 09B2 00A1 movwf ??_eeWrite
5308 09B3 0CA1 rrf ??_eeWrite,f
5309 09B4 0CA1 rrf ??_eeWrite,f
5310 09B5 080B movf 11,w ;volatile
5311 09B6 0621 xorwf ??_eeWrite,w
5312 09B7 397F andlw -129
5313 09B8 0621 xorwf ??_eeWrite,w
5314 09B9 008B movwf 11 ;volatile
5315 09BA l1124:
5316 ;main.c: 57: while(EECON1bits.WR);
5317
5318 09BA 0023 movlb 3 ; select bank3
5319 09BB 1C95 btfss 21,1 ;volatile
5320 09BC 0008 return
5321 09BD 29BA goto l1124
5322 09BE __end_of_eeWrite:
5323 09BE __ptext1657:
5324 ;; =============== function _rxDecode ends ============
5325
5326
5327 ;; *************** function _rxStart *****************
5328 ;; Defined at:
5329 ;; line 67 in file "Z:\pic\irRX\main.c"
5330 ;; Parameters: Size Location Type
5331 ;; None
5332 ;; Auto vars: Size Location Type
5333 ;; i 1 0[BANK0 ] unsigned char
5334 ;; Return value: Size Location Type
5335 ;; None void
5336 ;; Registers used:
5337 ;; wreg, fsr1l, fsr1h, status,2, status,0
5338 ;; Tracked objects:
5339 ;; On entry : 1D/1
5340 ;; On exit : 1F/5
5341 ;; Unchanged: FFFE0/0
5342 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5343 ;; Params: 0 0 0 0
5344 ;; Locals: 0 1 0 0
5345 ;; Temps: 0 0 0 0
5346 ;; Totals: 0 1 0 0
5347 ;;Total ram usage: 1 bytes
5348 ;; Hardware stack levels used: 1
5349 ;; Hardware stack levels required when called: 1
5350 ;; This function calls:
5351 ;; Nothing
5352 ;; This function is called by:
5353 ;; _main
5354 ;; This function uses a non-reentrant model
5355 ;;
5356 09BE _rxStart:
5357
5358 ;main.c: 69: UInt8 i;
5359 ;main.c: 71: for(i = 0; i < sizeof(gRxData); i++) gRxData[i] = 0;
5360
5361 ; Regs used in _rxStart: [wreg+fsr1l-status,0]
5362 09BE 0020 movlb 0 ; select bank0
5363 09BF 01A0 clrf rxStart@i
5364 09C0 l5505:
5365 09C0 0820 movf rxStart@i,w
5366 09C1 3EB2 addlw _gRxData& (0+255)
5367 09C2 0086 movwf 6
5368 09C3 3020 movlw 32
5369 09C4 0187 clrf 7
5370 09C5 0181 clrf 1
5371 09C6 0AA0 incf rxStart@i,f
5372 09C7 0220 subwf rxStart@i,w
5373 09C8 1C03 skipc
5374 09C9 29C0 goto l5505
5375
5376 ;main.c: 72: gRxPos = 0;
5377 09CA 0021 movlb 1 ; select bank1
5378 09CB 3080 movlw 128
5379 09CC 01B1 clrf _gRxPos^(0+128)
5380
5381 ;main.c: 73: gRxMask = 0x80;
5382 09CD 00B0 movwf _gRxMask^(0+128)
5383
5384 ;main.c: 74: gRxDone = 0;
5385 09CE 10F9 bcf _gRxDone/(0+8),_gRxDone& (0+7)
5386
5387 ;main.c: 76: gIntFirstEdgeSeen = 0;
5388 09CF 1079 bcf _gIntFirstEdgeSeen/(0+8),_gIntFirstEdgeSeen& (0+7)
5389
5390 ;main.c: 78: CCP1IF = 0;
5391 09D0 0020 movlb 0 ; select bank0
5392 09D1 1111 bcf 17,2
5393
5394 ;main.c: 79: CCP1IE = 1;
5395 09D2 0021 movlb 1 ; select bank1
5396 09D3 1511 bsf 17,2
5397
5398 ;main.c: 80: TMR2ON = 0;
5399 09D4 0020 movlb 0 ; select bank0
5400 09D5 111C bcf 28,2
5401
5402 ;main.c: 81: TMR2IE = 1;
5403 09D6 0021 movlb 1 ; select bank1
5404 09D7 1491 bsf 17,1
5405
5406 ;main.c: 82: TMR2IF = 0;
5407 09D8 0020 movlb 0 ; select bank0
5408 09D9 3004 movlw 4
5409 09DA 1091 bcf 17,1
5410
5411 ;main.c: 83: CCP1CON = 0b00000100;
5412 09DB 0025 movlb 5 ; select bank5
5413 09DC 0093 movwf 19 ;volatile
5414 09DD 0008 return
5415 09DE __end_of_rxStart:
5416 09DE __ptext1655:
5417 ;; =============== function _getU16 ends ============
5418
5419
5420 ;; *************** function _getU32 *****************
5421 ;; Defined at:
5422 ;; line 110 in file "Z:\pic\irRX\main.c"
5423 ;; Parameters: Size Location Type
5424 ;; t 1 wreg PTR unsigned char
5425 ;; -> gRxData(32),
5426 ;; Auto vars: Size Location Type
5427 ;; t 1 12[BANK0 ] PTR unsigned char
5428 ;; -> gRxData(32),
5429 ;; v 4 13[BANK0 ] unsigned long
5430 ;; Return value: Size Location Type
5431 ;; 4 0[BANK0 ] unsigned long
5432 ;; Registers used:
5433 ;; wreg, fsr1l, fsr1h
5434 ;; Tracked objects:
5435 ;; On entry : 1E/1
5436 ;; On exit : 1F/0
5437 ;; Unchanged: FFFE0/0
5438 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5439 ;; Params: 0 4 0 0
5440 ;; Locals: 0 5 0 0
5441 ;; Temps: 0 8 0 0
5442 ;; Totals: 0 17 0 0
5443 ;;Total ram usage: 17 bytes
5444 ;; Hardware stack levels used: 1
5445 ;; Hardware stack levels required when called: 1
5446 ;; This function calls:
5447 ;; Nothing
5448 ;; This function is called by:
5449 ;; _main
5450 ;; This function uses a non-reentrant model
5451 ;;
5452 09DE _getU32:
5453
5454 ; Regs used in _getU32: [wregfsr1]
5455 ;getU32@t stored from wreg
5456 09DE 0020 movlb 0 ; select bank0
5457 09DF 00AC movwf getU32@t
5458
5459 ;main.c: 112: UInt32 v = t[3];
5460 09E0 3E03 addlw 3
5461 09E1 0086 movwf 6
5462 09E2 0187 clrf 7
5463 09E3 0801 movf 1,w
5464 09E4 00AD movwf getU32@v
5465 09E5 01AE clrf getU32@v+1
5466 09E6 01AF clrf getU32@v+2
5467 09E7 01B0 clrf getU32@v+3
5468
5469 ;main.c: 114: v = (v << 8) | t[2];
5470 09E8 082C movf getU32@t,w
5471 09E9 3E02 addlw 2
5472 09EA 0086 movwf 6
5473 09EB 0801 movf 1,w
5474 09EC 00A4 movwf ??_getU32
5475 09ED 01A5 clrf ??_getU32+1
5476 09EE 01A6 clrf ??_getU32+2
5477 09EF 01A7 clrf ??_getU32+3
5478 09F0 082D movf getU32@v,w
5479 09F1 00A8 movwf ??_getU32+4
5480 09F2 082E movf getU32@v+1,w
5481 09F3 00A9 movwf ??_getU32+5
5482 09F4 082F movf getU32@v+2,w
5483 09F5 00AA movwf ??_getU32+6
5484 09F6 0830 movf getU32@v+3,w
5485 09F7 00AB movwf ??_getU32+7
5486 09F8 082A movf ??_getU32+6,w
5487 09F9 00AB movwf ??_getU32+7
5488 09FA 0829 movf ??_getU32+5,w
5489 09FB 00AA movwf ??_getU32+6
5490 09FC 0828 movf ??_getU32+4,w
5491 09FD 00A9 movwf ??_getU32+5
5492 09FE 01A8 clrf ??_getU32+4
5493 09FF 0824 movf ??_getU32,w
5494 0A00 0428 iorwf ??_getU32+4,w
5495 0A01 00AD movwf getU32@v
5496 0A02 0825 movf ??_getU32+1,w
5497 0A03 0429 iorwf ??_getU32+5,w
5498 0A04 00AE movwf getU32@v+1
5499 0A05 0826 movf ??_getU32+2,w
5500 0A06 042A iorwf ??_getU32+6,w
5501 0A07 00AF movwf getU32@v+2
5502 0A08 0827 movf ??_getU32+3,w
5503 0A09 042B iorwf ??_getU32+7,w
5504 0A0A 00B0 movwf getU32@v+3
5505
5506 ;main.c: 115: v = (v << 8) | t[1];
5507 0A0B 082C movf getU32@t,w
5508 0A0C 3E01 addlw 1
5509 0A0D 0086 movwf 6
5510 0A0E 0801 movf 1,w
5511 0A0F 00A4 movwf ??_getU32
5512 0A10 01A5 clrf ??_getU32+1
5513 0A11 01A6 clrf ??_getU32+2
5514 0A12 01A7 clrf ??_getU32+3
5515 0A13 082D movf getU32@v,w
5516 0A14 00A8 movwf ??_getU32+4
5517 0A15 082E movf getU32@v+1,w
5518 0A16 00A9 movwf ??_getU32+5
5519 0A17 082F movf getU32@v+2,w
5520 0A18 00AA movwf ??_getU32+6
5521 0A19 0830 movf getU32@v+3,w
5522 0A1A 00AB movwf ??_getU32+7
5523 0A1B 082A movf ??_getU32+6,w
5524 0A1C 00AB movwf ??_getU32+7
5525 0A1D 0829 movf ??_getU32+5,w
5526 0A1E 00AA movwf ??_getU32+6
5527 0A1F 0828 movf ??_getU32+4,w
5528 0A20 00A9 movwf ??_getU32+5
5529 0A21 01A8 clrf ??_getU32+4
5530 0A22 0824 movf ??_getU32,w
5531 0A23 0428 iorwf ??_getU32+4,w
5532 0A24 00AD movwf getU32@v
5533 0A25 0825 movf ??_getU32+1,w
5534 0A26 0429 iorwf ??_getU32+5,w
5535 0A27 00AE movwf getU32@v+1
5536 0A28 0826 movf ??_getU32+2,w
5537 0A29 042A iorwf ??_getU32+6,w
5538 0A2A 00AF movwf getU32@v+2
5539 0A2B 0827 movf ??_getU32+3,w
5540 0A2C 042B iorwf ??_getU32+7,w
5541 0A2D 00B0 movwf getU32@v+3
5542
5543 ;main.c: 116: v = (v << 8) | t[0];
5544 0A2E 082C movf getU32@t,w
5545 0A2F 0086 movwf 6
5546 0A30 0801 movf 1,w
5547 0A31 00A4 movwf ??_getU32
5548 0A32 01A5 clrf ??_getU32+1
5549 0A33 01A6 clrf ??_getU32+2
5550 0A34 01A7 clrf ??_getU32+3
5551 0A35 082D movf getU32@v,w
5552 0A36 00A8 movwf ??_getU32+4
5553 0A37 082E movf getU32@v+1,w
5554 0A38 00A9 movwf ??_getU32+5
5555 0A39 082F movf getU32@v+2,w
5556 0A3A 00AA movwf ??_getU32+6
5557 0A3B 0830 movf getU32@v+3,w
5558 0A3C 00AB movwf ??_getU32+7
5559 0A3D 082A movf ??_getU32+6,w
5560 0A3E 00AB movwf ??_getU32+7
5561 0A3F 0829 movf ??_getU32+5,w
5562 0A40 00AA movwf ??_getU32+6
5563 0A41 0828 movf ??_getU32+4,w
5564 0A42 00A9 movwf ??_getU32+5
5565 0A43 01A8 clrf ??_getU32+4
5566 0A44 0824 movf ??_getU32,w
5567 0A45 0428 iorwf ??_getU32+4,w
5568 0A46 00AD movwf getU32@v
5569 0A47 0825 movf ??_getU32+1,w
5570 0A48 0429 iorwf ??_getU32+5,w
5571 0A49 00AE movwf getU32@v+1
5572 0A4A 0826 movf ??_getU32+2,w
5573 0A4B 042A iorwf ??_getU32+6,w
5574 0A4C 00AF movwf getU32@v+2
5575 0A4D 0827 movf ??_getU32+3,w
5576 0A4E 042B iorwf ??_getU32+7,w
5577 0A4F 00B0 movwf getU32@v+3
5578
5579 ;main.c: 118: return v;
5580 0A50 00A3 movwf ?_getU32+3
5581 0A51 082F movf getU32@v+2,w
5582 0A52 00A2 movwf ?_getU32+2
5583 0A53 082E movf getU32@v+1,w
5584 0A54 00A1 movwf ?_getU32+1
5585 0A55 082D movf getU32@v,w
5586 0A56 00A0 movwf ?_getU32
5587 0A57 0008 return
5588 0A58 __end_of_getU32:
5589 0A58 __ptext1615:
5590 ;; =============== function _mSolidDestr ends ============
5591
5592
5593 ;; *************** function _mSolidInit *****************
5594 ;; Defined at:
5595 ;; line 383 in file "Z:\pic\irRX\main.c"
5596 ;; Parameters: Size Location Type
5597 ;; arg 1 74[BANK0 ] unsigned char
5598 ;; Auto vars: Size Location Type
5599 ;; None
5600 ;; Return value: Size Location Type
5601 ;; 1 wreg unsigned char
5602 ;; Registers used:
5603 ;; wreg, status,2, pclath, cstack
5604 ;; Tracked objects:
5605 ;; On entry : 1F/1
5606 ;; On exit : 1F/1
5607 ;; Unchanged: FFFE0/0
5608 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5609 ;; Params: 0 1 0 0
5610 ;; Locals: 0 0 0 0
5611 ;; Temps: 0 0 0 0
5612 ;; Totals: 0 1 0 0
5613 ;;Total ram usage: 1 bytes
5614 ;; Hardware stack levels used: 1
5615 ;; Hardware stack levels required when called: 2
5616 ;; This function calls:
5617 ;; _eeRead
5618 ;; This function is called by:
5619 ;; _runFuncPtr
5620 ;; This function uses a non-reentrant model
5621 ;;
5622 0A58 _mSolidInit:
5623
5624 ;main.c: 385: gLed[0] = eeRead(0xC5);
5625
5626 ; Regs used in _mSolidInit: [wreg+status,2+pclath+cstack]
5627 0A58 30C5 movlw 197
5628 0A59 226B 3188 fcall _eeRead
5629 0A5B 00F5 movwf _gLed
5630
5631 ;main.c: 386: gLed[1] = eeRead(0xC6);
5632 0A5C 30C6 movlw 198
5633 0A5D 226B 3188 fcall _eeRead
5634 0A5F 00F6 movwf _gLed+1
5635
5636 ;main.c: 387: gLed[2] = eeRead(0xC7);
5637 0A60 30C7 movlw 199
5638 0A61 226B 3188 fcall _eeRead
5639 0A63 00F7 movwf _gLed+2
5640
5641 ;main.c: 388: gLed[3] = eeRead(0xC8);
5642 0A64 30C8 movlw 200
5643 0A65 226B fcall _eeRead
5644 0A66 00F8 movwf _gLed+3
5645
5646 ;main.c: 390: tempData.solid.selector = 0;
5647 0A67 0021 movlb 1 ; select bank1
5648 0A68 3000 movlw 0
5649 0A69 01A0 clrf _tempData^(0+128)
5650
5651 ;main.c: 392: return 0;
5652 0A6A 0008 return
5653 0A6B __end_of_mSolidInit:
5654 0A6B __ptext1659:
5655 ;; =============== function _eeWrite ends ============
5656
5657
5658 ;; *************** function _eeRead *****************
5659 ;; Defined at:
5660 ;; line 36 in file "Z:\pic\irRX\main.c"
5661 ;; Parameters: Size Location Type
5662 ;; addr 1 wreg unsigned char
5663 ;; Auto vars: Size Location Type
5664 ;; addr 1 0[BANK0 ] unsigned char
5665 ;; Return value: Size Location Type
5666 ;; 1 wreg unsigned char
5667 ;; Registers used:
5668 ;; wreg, status,2
5669 ;; Tracked objects:
5670 ;; On entry : 1D/1
5671 ;; On exit : 1F/3
5672 ;; Unchanged: FFFE0/0
5673 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5674 ;; Params: 0 0 0 0
5675 ;; Locals: 0 1 0 0
5676 ;; Temps: 0 0 0 0
5677 ;; Totals: 0 1 0 0
5678 ;;Total ram usage: 1 bytes
5679 ;; Hardware stack levels used: 1
5680 ;; Hardware stack levels required when called: 1
5681 ;; This function calls:
5682 ;; Nothing
5683 ;; This function is called by:
5684 ;; _mOffDestr
5685 ;; _mSolidInit
5686 ;; _mFadeInit
5687 ;; _main
5688 ;; This function uses a non-reentrant model
5689 ;;
5690 0A6B _eeRead:
5691
5692 ; Regs used in _eeRead: [wreg+status,2]
5693 ;eeRead@addr stored from wreg
5694 0A6B 0020 movlb 0 ; select bank0
5695 0A6C 00A0 movwf eeRead@addr
5696
5697 ;main.c: 38: EECON1 = 0b00000000;
5698 0A6D 0023 movlb 3 ; select bank3
5699 0A6E 0195 clrf 21 ;volatile
5700
5701 ;main.c: 39: EEADRL = addr;
5702 0A6F 0020 movlb 0 ; select bank0
5703 0A70 0820 movf eeRead@addr,w
5704 0A71 0023 movlb 3 ; select bank3
5705 0A72 0091 movwf 17 ;volatile
5706
5707 ;main.c: 40: EECON1bits.RD = 1;
5708 0A73 1415 bsf 21,0 ;volatile
5709
5710 ;main.c: 41: return EEDATL;
5711 0A74 0813 movf 19,w ;volatile
5712 0A75 0008 return
5713 0A76 __end_of_eeRead:
5714 0A76 __ptext1656:
5715 ;; =============== function _getU32 ends ============
5716
5717
5718 ;; *************** function _rxDecode *****************
5719 ;; Defined at:
5720 ;; line 86 in file "Z:\pic\irRX\main.c"
5721 ;; Parameters: Size Location Type
5722 ;; None
5723 ;; Auto vars: Size Location Type
5724 ;; k 1 7[BANK0 ] unsigned char
5725 ;; j 1 6[BANK0 ] unsigned char
5726 ;; i 1 5[BANK0 ] unsigned char
5727 ;; t 1 4[BANK0 ] unsigned char
5728 ;; Return value: Size Location Type
5729 ;; 1 wreg unsigned char
5730 ;; Registers used:
5731 ;; wreg, fsr1l, fsr1h, status,2, status,0
5732 ;; Tracked objects:
5733 ;; On entry : 1F/1
5734 ;; On exit : 1E/0
5735 ;; Unchanged: FFE00/0
5736 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5737 ;; Params: 0 0 0 0
5738 ;; Locals: 0 6 0 0
5739 ;; Temps: 0 2 0 0
5740 ;; Totals: 0 8 0 0
5741 ;;Total ram usage: 8 bytes
5742 ;; Hardware stack levels used: 1
5743 ;; Hardware stack levels required when called: 1
5744 ;; This function calls:
5745 ;; Nothing
5746 ;; This function is called by:
5747 ;; _main
5748 ;; This function uses a non-reentrant model
5749 ;;
5750 0A76 _rxDecode:
5751
5752 ;main.c: 88: UInt8 i, j, t, k;
5753 ;main.c: 91: if(gRxPos < 14) return 1;
5754
5755 ; Regs used in _rxDecode: [wreg+fsr1l-status,0]
5756 0A76 300E movlw 14
5757 0A77 0231 subwf _gRxPos^(0+128),w
5758 0A78 1C03 btfss 3,0
5759 0A79 3401 retlw 1
5760
5761 ;main.c: 92: if(gRxData[0] != 0xFF) return 2;
5762 0A7A 0832 movf _gRxData^(0+128),w
5763 0A7B 3AFF xorlw 255
5764 0A7C 1D03 btfss 3,2
5765 0A7D 3402 retlw 2
5766
5767 ;main.c: 93: if(gRxData[1] != 0x05) return 3;
5768 0A7E 0833 movf (_gRxData^(0+128)+1),w
5769 0A7F 3A05 xorlw 5
5770 0A80 1D03 btfss 3,2
5771 0A81 3403 retlw 3
5772
5773 ;main.c: 96: for(k = 0, i = 0; i < gRxPos - 3; i++){
5774 0A82 0020 movlb 0 ; select bank0
5775 0A83 01A7 clrf rxDecode@k
5776 0A84 01A5 clrf rxDecode@i
5777 0A85 l5573:
5778 0A85 0021 movlb 1 ; select bank1
5779 0A86 0831 movf _gRxPos^(0+128),w
5780 0A87 3EFD addlw 253
5781 0A88 0020 movlb 0 ; select bank0
5782 0A89 00A0 movwf ??_rxDecode
5783 0A8A 30FF movlw 255
5784 0A8B 1803 skipnc
5785 0A8C 3000 movlw 0
5786 0A8D 00A1 movwf ??_rxDecode+1
5787 0A8E 3A80 xorlw 128
5788 0A8F 3C80 sublw 128
5789 0A90 1D03 skipz
5790 0A91 2A94 goto u3615
5791 0A92 0820 movf ??_rxDecode,w
5792 0A93 0225 subwf rxDecode@i,w
5793 0A94 u3615:
5794 0A94 1803 btfsc 3,0
5795 0A95 2AB3 goto l5575
5796
5797 ;main.c: 98: t = gRxData[i + 2];
5798 0A96 0020 movlb 0 ; select bank0
5799 0A97 0825 movf rxDecode@i,w
5800 0A98 3EB4 addlw (_gRxData+2)& (0+255)
5801 0A99 0086 movwf 6
5802 0A9A 0187 clrf 7
5803 0A9B 0801 movf 1,w
5804 0A9C 00A4 movwf rxDecode@t
5805
5806 ;main.c: 99: for(j = 0; j < 8; j++, t <<= 1){
5807 0A9D 01A6 clrf rxDecode@j
5808 0A9E l5559:
5809
5810 ;main.c: 101: k = (k << 1) ^ (((t ^ k) & 0x80) ? 0x83 : 0);
5811 0A9E 0827 movf rxDecode@k,w
5812 0A9F 0624 xorwf rxDecode@t,w
5813 0AA0 00A0 movwf ??_rxDecode
5814 0AA1 1BA0 btfsc ??_rxDecode,7
5815 0AA2 2AA5 goto l5563
5816 0AA3 01A2 clrf _rxDecode$2016
5817 0AA4 2AA7 goto L16
5818 0AA5 l5563:
5819 0AA5 3083 movlw 131
5820 0AA6 00A2 movwf _rxDecode$2016
5821 0AA7 L16:
5822 0AA7 01A3 clrf _rxDecode$2016+1
5823 0AA8 3527 lslf rxDecode@k,w
5824 0AA9 0622 xorwf _rxDecode$2016,w
5825 0AAA 00A7 movwf rxDecode@k
5826 0AAB 3008 movlw 8
5827 0AAC 0AA6 incf rxDecode@j,f
5828 0AAD 35A4 lslf rxDecode@t,f
5829 0AAE 0226 subwf rxDecode@j,w
5830 0AAF 1C03 skipc
5831 0AB0 2A9E goto l5559
5832 0AB1 0AA5 incf rxDecode@i,f
5833 0AB2 2A85 goto l5573
5834 0AB3 l5575:
5835
5836 ;main.c: 102: }
5837 ;main.c: 103: }
5838 ;main.c: 105: if(k != gRxData[gRxPos - 1]) return 4;
5839 0AB3 0021 movlb 1 ; select bank1
5840 0AB4 0831 movf _gRxPos^(0+128),w
5841 0AB5 3EB1 addlw (_gRxData+-1)& (0+255)
5842 0AB6 0086 movwf 6
5843 0AB7 0187 clrf 7
5844 0AB8 0801 movf 1,w
5845 0AB9 0020 movlb 0 ; select bank0
5846 0ABA 0627 xorwf rxDecode@k,w
5847 0ABB 1D03 btfss 3,2
5848 0ABC 3404 retlw 4
5849
5850 ;main.c: 107: return 0;
5851 0ABD 3400 retlw 0
5852 0ABE __end_of_rxDecode:
5853 0ABE __ptext1654:
5854 ;; =============== function _getU8 ends ============
5855
5856
5857 ;; *************** function _getU16 *****************
5858 ;; Defined at:
5859 ;; line 121 in file "Z:\pic\irRX\main.c"
5860 ;; Parameters: Size Location Type
5861 ;; t 1 wreg PTR unsigned char
5862 ;; -> gRxData(32),
5863 ;; Auto vars: Size Location Type
5864 ;; t 1 10[BANK0 ] PTR unsigned char
5865 ;; -> gRxData(32),
5866 ;; v 4 11[BANK0 ] unsigned long
5867 ;; Return value: Size Location Type
5868 ;; 2 0[BANK0 ] unsigned short
5869 ;; Registers used:
5870 ;; wreg, fsr1l, fsr1h
5871 ;; Tracked objects:
5872 ;; On entry : 1F/1
5873 ;; On exit : 1F/0
5874 ;; Unchanged: FFFE0/0
5875 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5876 ;; Params: 0 2 0 0
5877 ;; Locals: 0 5 0 0
5878 ;; Temps: 0 8 0 0
5879 ;; Totals: 0 15 0 0
5880 ;;Total ram usage: 15 bytes
5881 ;; Hardware stack levels used: 1
5882 ;; Hardware stack levels required when called: 1
5883 ;; This function calls:
5884 ;; Nothing
5885 ;; This function is called by:
5886 ;; _main
5887 ;; This function uses a non-reentrant model
5888 ;;
5889 0ABE _getU16:
5890
5891 ; Regs used in _getU16: [wregfsr1]
5892 ;getU16@t stored from wreg
5893 0ABE 0020 movlb 0 ; select bank0
5894 0ABF 00AA movwf getU16@t
5895
5896 ;main.c: 123: UInt32 v = t[1];
5897 0AC0 3E01 addlw 1
5898 0AC1 0086 movwf 6
5899 0AC2 0187 clrf 7
5900 0AC3 0801 movf 1,w
5901 0AC4 00AB movwf getU16@v
5902 0AC5 01AC clrf getU16@v+1
5903 0AC6 01AD clrf getU16@v+2
5904 0AC7 01AE clrf getU16@v+3
5905
5906 ;main.c: 125: v = (v << 8) | t[0];
5907 0AC8 082A movf getU16@t,w
5908 0AC9 0086 movwf 6
5909 0ACA 0801 movf 1,w
5910 0ACB 00A2 movwf ??_getU16
5911 0ACC 01A3 clrf ??_getU16+1
5912 0ACD 01A4 clrf ??_getU16+2
5913 0ACE 01A5 clrf ??_getU16+3
5914 0ACF 082B movf getU16@v,w
5915 0AD0 00A6 movwf ??_getU16+4
5916 0AD1 082C movf getU16@v+1,w
5917 0AD2 00A7 movwf ??_getU16+5
5918 0AD3 082D movf getU16@v+2,w
5919 0AD4 00A8 movwf ??_getU16+6
5920 0AD5 082E movf getU16@v+3,w
5921 0AD6 00A9 movwf ??_getU16+7
5922 0AD7 0828 movf ??_getU16+6,w
5923 0AD8 00A9 movwf ??_getU16+7
5924 0AD9 0827 movf ??_getU16+5,w
5925 0ADA 00A8 movwf ??_getU16+6
5926 0ADB 0826 movf ??_getU16+4,w
5927 0ADC 00A7 movwf ??_getU16+5
5928 0ADD 01A6 clrf ??_getU16+4
5929 0ADE 0822 movf ??_getU16,w
5930 0ADF 0426 iorwf ??_getU16+4,w
5931 0AE0 00AB movwf getU16@v
5932 0AE1 0823 movf ??_getU16+1,w
5933 0AE2 0427 iorwf ??_getU16+5,w
5934 0AE3 00AC movwf getU16@v+1
5935 0AE4 0824 movf ??_getU16+2,w
5936 0AE5 0428 iorwf ??_getU16+6,w
5937 0AE6 00AD movwf getU16@v+2
5938 0AE7 0825 movf ??_getU16+3,w
5939 0AE8 0429 iorwf ??_getU16+7,w
5940 0AE9 00AE movwf getU16@v+3
5941
5942 ;main.c: 127: return v;
5943 0AEA 082C movf getU16@v+1,w
5944 0AEB 00A1 movwf ?_getU16+1
5945 0AEC 082B movf getU16@v,w
5946 0AED 00A0 movwf ?_getU16
5947 0AEE 0008 return
5948 0AEF __end_of_getU16:
5949 0AEF __ptext1653:
5950 ;; =============== function _frexp ends ============
5951
5952
5953 ;; *************** function _getU8 *****************
5954 ;; Defined at:
5955 ;; line 130 in file "Z:\pic\irRX\main.c"
5956 ;; Parameters: Size Location Type
5957 ;; t 1 wreg PTR unsigned char
5958 ;; -> gRxData(32),
5959 ;; Auto vars: Size Location Type
5960 ;; t 1 0[BANK0 ] PTR unsigned char
5961 ;; -> gRxData(32),
5962 ;; Return value: Size Location Type
5963 ;; 1 wreg unsigned char
5964 ;; Registers used:
5965 ;; wreg, fsr1l, fsr1h
5966 ;; Tracked objects:
5967 ;; On entry : 1F/0
5968 ;; On exit : 1F/0
5969 ;; Unchanged: FFFE0/0
5970 ;; Data sizes: COMMON BANK0 BANK1 BANK2
5971 ;; Params: 0 0 0 0
5972 ;; Locals: 0 1 0 0
5973 ;; Temps: 0 0 0 0
5974 ;; Totals: 0 1 0 0
5975 ;;Total ram usage: 1 bytes
5976 ;; Hardware stack levels used: 1
5977 ;; Hardware stack levels required when called: 1
5978 ;; This function calls:
5979 ;; Nothing
5980 ;; This function is called by:
5981 ;; _main
5982 ;; This function uses a non-reentrant model
5983 ;;
5984 0AEF _getU8:
5985
5986 ; Regs used in _getU8: [wregfsr1]
5987 ;getU8@t stored from wreg
5988 0AEF 00A0 movwf getU8@t
5989
5990 ;main.c: 132: return t[0];
5991 0AF0 0086 movwf 6
5992 0AF1 0187 clrf 7
5993 0AF2 0801 movf 1,w
5994 0AF3 0008 return
5995 0AF4 __end_of_getU8:
5996 0AF4 __ptext1651:
5997 ;; =============== function ___wmul ends ============
5998
5999
6000 ;; *************** function ___bmul *****************
6001 ;; Defined at:
6002 ;; line 3 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\bmul.c"
6003 ;; Parameters: Size Location Type
6004 ;; multiplier 1 wreg unsigned char
6005 ;; multiplicand 1 0[BANK0 ] unsigned char
6006 ;; Auto vars: Size Location Type
6007 ;; multiplier 1 2[BANK0 ] unsigned char
6008 ;; product 1 1[BANK0 ] unsigned char
6009 ;; Return value: Size Location Type
6010 ;; 1 wreg unsigned char
6011 ;; Registers used:
6012 ;; wreg, status,2, status,0
6013 ;; Tracked objects:
6014 ;; On entry : 1F/1
6015 ;; On exit : 1F/0
6016 ;; Unchanged: FFFE0/0
6017 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6018 ;; Params: 0 1 0 0
6019 ;; Locals: 0 2 0 0
6020 ;; Temps: 0 0 0 0
6021 ;; Totals: 0 3 0 0
6022 ;;Total ram usage: 3 bytes
6023 ;; Hardware stack levels used: 1
6024 ;; Hardware stack levels required when called: 1
6025 ;; This function calls:
6026 ;; Nothing
6027 ;; This function is called by:
6028 ;; _runFuncPtr
6029 ;; This function uses a non-reentrant model
6030 ;;
6031 0AF4 ___bmul:
6032
6033 ; Regs used in ___bmul: [wreg+status,2+status,0]
6034 ;___bmul@multiplier stored from wreg
6035 0AF4 0020 movlb 0 ; select bank0
6036 0AF5 00A2 movwf ___bmul@multiplier
6037 0AF6 01A1 clrf ___bmul@product
6038 0AF7 l5633:
6039 0AF7 0820 movf ___bmul@multiplicand,w
6040 0AF8 1822 btfsc ___bmul@multiplier,0
6041 0AF9 07A1 addwf ___bmul@product,f
6042 0AFA 35A0 lslf ___bmul@multiplicand,f
6043 0AFB 36A2 lsrf ___bmul@multiplier,f
6044 0AFC 08A2 movf ___bmul@multiplier,f
6045 0AFD 1D03 skipz
6046 0AFE 2AF7 goto l5633
6047 0AFF 0821 movf ___bmul@product,w
6048 0B00 0008 return
6049 0B01 __end_of___bmul:
6050 0B01 __ptext1638:
6051 ;; =============== function _ldexp ends ============
6052
6053
6054 ;; *************** function _init *****************
6055 ;; Defined at:
6056 ;; line 659 in file "Z:\pic\irRX\main.c"
6057 ;; Parameters: Size Location Type
6058 ;; None
6059 ;; Auto vars: Size Location Type
6060 ;; None
6061 ;; Return value: Size Location Type
6062 ;; None void
6063 ;; Registers used:
6064 ;; wreg, status,2
6065 ;; Tracked objects:
6066 ;; On entry : 17F/0
6067 ;; On exit : 1F/1
6068 ;; Unchanged: 0/0
6069 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6070 ;; Params: 0 0 0 0
6071 ;; Locals: 0 0 0 0
6072 ;; Temps: 0 3 0 0
6073 ;; Totals: 0 3 0 0
6074 ;;Total ram usage: 3 bytes
6075 ;; Hardware stack levels used: 1
6076 ;; Hardware stack levels required when called: 1
6077 ;; This function calls:
6078 ;; Nothing
6079 ;; This function is called by:
6080 ;; _main
6081 ;; This function uses a non-reentrant model
6082 ;;
6083 0B01 _init:
6084
6085 ;main.c: 660: PORTA = 0b00000000;
6086
6087 ; Regs used in _init: [wreg+status,2]
6088 0B01 018C clrf 12 ;volatile
6089
6090 ;main.c: 661: ANSELA = 0b00000000;
6091 0B02 0023 movlb 3 ; select bank3
6092 0B03 018C clrf 12 ;volatile
6093
6094 ;main.c: 662: TRISA = 0b11101000;
6095 0B04 30E8 movlw 232
6096 0B05 0021 movlb 1 ; select bank1
6097 0B06 008C movwf 12 ;volatile
6098
6099 ;main.c: 663: OSCCON = 0b11110000;
6100 0B07 30F0 movlw 240
6101 0B08 0099 movwf 25 ;volatile
6102
6103 ;main.c: 664: OPTION_REG = 0b10001000;
6104 0B09 3088 movlw 136
6105 0B0A 0095 movwf 21 ;volatile
6106
6107 ;main.c: 665: INTCON = 0b10100000;
6108 0B0B 30A0 movlw 160
6109 0B0C 008B movwf 11 ;volatile
6110
6111 ;main.c: 666: APFCON = 0b00000001;
6112 0B0D 3001 movlw 1
6113 0B0E 0022 movlb 2 ; select bank2
6114 0B0F 009D movwf 29 ;volatile
6115
6116 ;main.c: 667: T1CON = 0b00110001;
6117 0B10 3031 movlw 49
6118 0B11 0020 movlb 0 ; select bank0
6119 0B12 0098 movwf 24 ;volatile
6120
6121 ;main.c: 668: T2CON = 0b00001011;
6122 0B13 300B movlw 11
6123 0B14 009C movwf 28 ;volatile
6124
6125 ;main.c: 671: _delay((unsigned long)((300)*(32000000/4000.0)));
6126 0B15 300D movlw 13
6127 0B16 00A2 movwf ??_init+2
6128 0B17 3021 movlw 33
6129 0B18 00A1 movwf ??_init+1
6130 0B19 30DE movlw 222
6131 0B1A 00A0 movwf ??_init
6132 0B1B u5167:
6133 0B1B 0BA0 decfsz ??_init,f
6134 0B1C 2B1B goto u5167
6135 0B1D 0BA1 decfsz ??_init+1,f
6136 0B1E 2B1B goto u5167
6137 0B1F 0BA2 decfsz ??_init+2,f
6138 0B20 2B1B goto u5167
6139 0B21 2B22 nop2
6140 0B22 l1315:
6141 ;main.c: 672: while(!HFIOFL || !PLLR);
6142
6143 0B22 0021 movlb 1 ; select bank1
6144 0B23 1D9A btfss 26,3
6145 0B24 2B22 goto l1315
6146 0B25 1B1A btfsc 26,6
6147 0B26 0008 return
6148 0B27 2B22 goto l1315
6149 0B28 __end_of_init:
6150 0B28 __ptext1623:
6151 ;; =============== function _mFadeDown ends ============
6152
6153
6154 ;; *************** function _genExponents *****************
6155 ;; Defined at:
6156 ;; line 242 in file "Z:\pic\irRX\main.c"
6157 ;; Parameters: Size Location Type
6158 ;; bri 1 wreg unsigned char
6159 ;; Auto vars: Size Location Type
6160 ;; bri 1 69[BANK0 ] unsigned char
6161 ;; t 3 71[BANK0 ] unsigned char
6162 ;; i 1 70[BANK0 ] unsigned char
6163 ;; Return value: Size Location Type
6164 ;; None void
6165 ;; Registers used:
6166 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
6167 ;; Tracked objects:
6168 ;; On entry : 1F/1
6169 ;; On exit : 1F/0
6170 ;; Unchanged: FFE00/0
6171 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6172 ;; Params: 0 0 0 0
6173 ;; Locals: 0 5 0 0
6174 ;; Temps: 0 0 0 0
6175 ;; Totals: 0 5 0 0
6176 ;;Total ram usage: 5 bytes
6177 ;; Hardware stack levels used: 1
6178 ;; Hardware stack levels required when called: 5
6179 ;; This function calls:
6180 ;; ___lbtoft
6181 ;; ___ftdiv
6182 ;; _exp
6183 ;; ___ftsub
6184 ;; ___ftmul
6185 ;; ___ftadd
6186 ;; ___fttol
6187 ;; This function is called by:
6188 ;; _mFadeInit
6189 ;; _mFadeUp
6190 ;; _mFadeDown
6191 ;; This function uses a non-reentrant model
6192 ;;
6193 0B28 _genExponents:
6194
6195 ; Regs used in _genExponents: [allreg]
6196 ;genExponents@bri stored from wreg
6197 0B28 0020 movlb 0 ; select bank0
6198 0B29 00E5 movwf genExponents@bri
6199
6200 ;main.c: 244: UInt8 i;
6201 ;main.c: 245: double t;
6202 ;main.c: 247: for(i = 0; i < 32; i++){
6203 0B2A 01E6 clrf genExponents@i
6204 0B2B l6627:
6205
6206 ;main.c: 249: t = i;
6207 0B2B 0866 movf genExponents@i,w
6208 0B2C 2493 3188 fcall ___lbtoft
6209 0B2E 0828 movf ?___lbtoft,w
6210 0B2F 00E7 movwf genExponents@t
6211 0B30 0829 movf ?___lbtoft+1,w
6212 0B31 00E8 movwf genExponents@t+1
6213 0B32 082A movf ?___lbtoft+2,w
6214 0B33 00E9 movwf genExponents@t+2
6215
6216 ;main.c: 250: t = exp(t / 9);
6217 0B34 3010 movlw 16
6218 0B35 01A8 clrf ?___ftdiv
6219 0B36 00A9 movwf ?___ftdiv+1
6220 0B37 3041 movlw 65
6221 0B38 00AA movwf ?___ftdiv+2
6222 0B39 0867 movf genExponents@t,w
6223 0B3A 00AB movwf ?___ftdiv+3
6224 0B3B 0868 movf genExponents@t+1,w
6225 0B3C 00AC movwf ?___ftdiv+4
6226 0B3D 0869 movf genExponents@t+2,w
6227 0B3E 00AD movwf ?___ftdiv+5
6228 0B3F 23C7 3188 fcall ___ftdiv
6229 0B41 0828 movf ?___ftdiv,w
6230 0B42 00DC movwf ?_exp
6231 0B43 0829 movf ?___ftdiv+1,w
6232 0B44 00DD movwf ?_exp+1
6233 0B45 082A movf ?___ftdiv+2,w
6234 0B46 00DE movwf ?_exp+2
6235 0B47 250E 3188 fcall _exp
6236 0B49 085C movf ?_exp,w
6237 0B4A 00E7 movwf genExponents@t
6238 0B4B 085D movf ?_exp+1,w
6239 0B4C 00E8 movwf genExponents@t+1
6240 0B4D 085E movf ?_exp+2,w
6241 0B4E 00E9 movwf genExponents@t+2
6242
6243 ;main.c: 251: t -= 1;
6244 0B4F 3080 movlw 128
6245 0B50 01C7 clrf ?___ftsub
6246 0B51 00C8 movwf ?___ftsub+1
6247 0B52 303F movlw 63
6248 0B53 00C9 movwf ?___ftsub+2
6249 0B54 0867 movf genExponents@t,w
6250 0B55 00CA movwf ?___ftsub+3
6251 0B56 0868 movf genExponents@t+1,w
6252 0B57 00CB movwf ?___ftsub+4
6253 0B58 0869 movf genExponents@t+2,w
6254 0B59 00CC movwf ?___ftsub+5
6255 0B5A 2678 3188 fcall ___ftsub
6256 0B5C 0847 movf ?___ftsub,w
6257 0B5D 00E7 movwf genExponents@t
6258 0B5E 0848 movf ?___ftsub+1,w
6259 0B5F 00E8 movwf genExponents@t+1
6260 0B60 0849 movf ?___ftsub+2,w
6261 0B61 00E9 movwf genExponents@t+2
6262
6263 ;main.c: 252: t *= 8.4;
6264 0B62 3066 movlw 102
6265 0B63 00AC movwf ?___ftmul
6266 0B64 3006 movlw 6
6267 0B65 00AD movwf ?___ftmul+1
6268 0B66 3041 movlw 65
6269 0B67 00AE movwf ?___ftmul+2
6270 0B68 0867 movf genExponents@t,w
6271 0B69 00AF movwf ?___ftmul+3
6272 0B6A 0868 movf genExponents@t+1,w
6273 0B6B 00B0 movwf ?___ftmul+4
6274 0B6C 0869 movf genExponents@t+2,w
6275 0B6D 00B1 movwf ?___ftmul+5
6276 0B6E 2429 3188 fcall ___ftmul
6277 0B70 082C movf ?___ftmul,w
6278 0B71 00E7 movwf genExponents@t
6279 0B72 082D movf ?___ftmul+1,w
6280 0B73 00E8 movwf genExponents@t+1
6281 0B74 082E movf ?___ftmul+2,w
6282 0B75 00E9 movwf genExponents@t+2
6283
6284 ;main.c: 253: t *= bri;
6285 0B76 0865 movf genExponents@bri,w
6286 0B77 2493 3188 fcall ___lbtoft
6287 0B79 0828 movf ?___lbtoft,w
6288 0B7A 00AC movwf ?___ftmul
6289 0B7B 0829 movf ?___lbtoft+1,w
6290 0B7C 00AD movwf ?___ftmul+1
6291 0B7D 082A movf ?___lbtoft+2,w
6292 0B7E 00AE movwf ?___ftmul+2
6293 0B7F 0867 movf genExponents@t,w
6294 0B80 00AF movwf ?___ftmul+3
6295 0B81 0868 movf genExponents@t+1,w
6296 0B82 00B0 movwf ?___ftmul+4
6297 0B83 0869 movf genExponents@t+2,w
6298 0B84 00B1 movwf ?___ftmul+5
6299 0B85 2429 3188 fcall ___ftmul
6300 0B87 082C movf ?___ftmul,w
6301 0B88 00E7 movwf genExponents@t
6302 0B89 082D movf ?___ftmul+1,w
6303 0B8A 00E8 movwf genExponents@t+1
6304 0B8B 082E movf ?___ftmul+2,w
6305 0B8C 00E9 movwf genExponents@t+2
6306
6307 ;main.c: 254: t /= 255;
6308 0B8D 307F movlw 127
6309 0B8E 01A8 clrf ?___ftdiv
6310 0B8F 00A9 movwf ?___ftdiv+1
6311 0B90 3043 movlw 67
6312 0B91 00AA movwf ?___ftdiv+2
6313 0B92 0867 movf genExponents@t,w
6314 0B93 00AB movwf ?___ftdiv+3
6315 0B94 0868 movf genExponents@t+1,w
6316 0B95 00AC movwf ?___ftdiv+4
6317 0B96 0869 movf genExponents@t+2,w
6318 0B97 00AD movwf ?___ftdiv+5
6319 0B98 23C7 3188 fcall ___ftdiv
6320 0B9A 0828 movf ?___ftdiv,w
6321 0B9B 00E7 movwf genExponents@t
6322 0B9C 0829 movf ?___ftdiv+1,w
6323 0B9D 00E8 movwf genExponents@t+1
6324 0B9E 082A movf ?___ftdiv+2,w
6325 0B9F 00E9 movwf genExponents@t+2
6326
6327 ;main.c: 255: t += 0.5;
6328 0BA0 303F movlw 63
6329 0BA1 01BB clrf ?___ftadd
6330 0BA2 01BC clrf ?___ftadd+1
6331 0BA3 00BD movwf ?___ftadd+2
6332 0BA4 0867 movf genExponents@t,w
6333 0BA5 00BE movwf ?___ftadd+3
6334 0BA6 0868 movf genExponents@t+1,w
6335 0BA7 00BF movwf ?___ftadd+4
6336 0BA8 0869 movf genExponents@t+2,w
6337 0BA9 00C0 movwf ?___ftadd+5
6338 0BAA 271E 3188 fcall ___ftadd
6339 0BAC 083B movf ?___ftadd,w
6340 0BAD 00E7 movwf genExponents@t
6341 0BAE 083C movf ?___ftadd+1,w
6342 0BAF 00E8 movwf genExponents@t+1
6343 0BB0 083D movf ?___ftadd+2,w
6344 0BB1 00E9 movwf genExponents@t+2
6345
6346 ;main.c: 257: exponents[i] = (UInt8)t;
6347 0BB2 0866 movf genExponents@i,w
6348 0BB3 3E20 addlw _exponents& (0+255)
6349 0BB4 0086 movwf 6
6350 0BB5 3001 movlw 1 ; select bank2/3
6351 0BB6 0087 movwf 7
6352 0BB7 0867 movf genExponents@t,w
6353 0BB8 00A0 movwf ?___fttol
6354 0BB9 0868 movf genExponents@t+1,w
6355 0BBA 00A1 movwf ?___fttol+1
6356 0BBB 0869 movf genExponents@t+2,w
6357 0BBC 00A2 movwf ?___fttol+2
6358 0BBD 261B 3188 fcall ___fttol
6359 0BBF 0820 movf ?___fttol,w
6360 0BC0 0081 movwf 1
6361 0BC1 3020 movlw 32
6362 0BC2 0AE6 incf genExponents@i,f
6363 0BC3 0266 subwf genExponents@i,w
6364 0BC4 1803 btfsc 3,0
6365 0BC5 0008 return
6366 0BC6 2B2B goto l6627
6367 0BC7 __end_of_genExponents:
6368 0BC7 __ptext1635:
6369 ;; =============== function ___ftmul ends ============
6370
6371
6372 ;; *************** function ___ftdiv *****************
6373 ;; Defined at:
6374 ;; line 50 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\ftdiv.c"
6375 ;; Parameters: Size Location Type
6376 ;; f2 3 8[BANK0 ] float
6377 ;; f1 3 11[BANK0 ] float
6378 ;; Auto vars: Size Location Type
6379 ;; f3 3 18[BANK0 ] float
6380 ;; sign 1 22[BANK0 ] unsigned char
6381 ;; exp 1 21[BANK0 ] unsigned char
6382 ;; cntr 1 17[BANK0 ] unsigned char
6383 ;; Return value: Size Location Type
6384 ;; 3 8[BANK0 ] float
6385 ;; Registers used:
6386 ;; wreg, status,2, status,0, pclath, cstack
6387 ;; Tracked objects:
6388 ;; On entry : 1F/0
6389 ;; On exit : 1F/0
6390 ;; Unchanged: FFFE0/0
6391 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6392 ;; Params: 0 6 0 0
6393 ;; Locals: 0 6 0 0
6394 ;; Temps: 0 3 0 0
6395 ;; Totals: 0 15 0 0
6396 ;;Total ram usage: 15 bytes
6397 ;; Hardware stack levels used: 1
6398 ;; Hardware stack levels required when called: 2
6399 ;; This function calls:
6400 ;; ___ftpack
6401 ;; This function is called by:
6402 ;; _genExponents
6403 ;; _exp
6404 ;; This function uses a non-reentrant model
6405 ;;
6406 0BC7 ___ftdiv:
6407
6408 ; Regs used in ___ftdiv: [wreg+status,2+status,0+pclath+cstack]
6409 0BC7 082B movf ___ftdiv@f1,w
6410 0BC8 00AE movwf ??___ftdiv
6411 0BC9 082C movf ___ftdiv@f1+1,w
6412 0BCA 00AF movwf ??___ftdiv+1
6413 0BCB 082D movf ___ftdiv@f1+2,w
6414 0BCC 00B0 movwf ??___ftdiv+2
6415 0BCD 1003 clrc
6416 0BCE 0D2F rlf ??___ftdiv+1,w
6417 0BCF 0D30 rlf ??___ftdiv+2,w
6418 0BD0 00B5 movwf ___ftdiv@exp
6419 0BD1 08B5 movf ___ftdiv@exp,f
6420 0BD2 1D03 skipz
6421 0BD3 2BD8 goto l6129
6422 0BD4 01A8 clrf ?___ftdiv
6423 0BD5 01A9 clrf ?___ftdiv+1
6424 0BD6 01AA clrf ?___ftdiv+2
6425 0BD7 0008 return
6426 0BD8 l6129:
6427 0BD8 0828 movf ___ftdiv@f2,w
6428 0BD9 00AE movwf ??___ftdiv
6429 0BDA 0829 movf ___ftdiv@f2+1,w
6430 0BDB 00AF movwf ??___ftdiv+1
6431 0BDC 082A movf ___ftdiv@f2+2,w
6432 0BDD 00B0 movwf ??___ftdiv+2
6433 0BDE 1003 clrc
6434 0BDF 0D2F rlf ??___ftdiv+1,w
6435 0BE0 0D30 rlf ??___ftdiv+2,w
6436 0BE1 00B6 movwf ___ftdiv@sign
6437 0BE2 08B6 movf ___ftdiv@sign,f
6438 0BE3 1D03 skipz
6439 0BE4 2BE9 goto l1535
6440 0BE5 01A8 clrf ?___ftdiv
6441 0BE6 01A9 clrf ?___ftdiv+1
6442 0BE7 01AA clrf ?___ftdiv+2
6443 0BE8 0008 return
6444 0BE9 l1535:
6445 0BE9 3089 movlw 137
6446 0BEA 01B2 clrf ___ftdiv@f3
6447 0BEB 01B3 clrf ___ftdiv@f3+1
6448 0BEC 01B4 clrf ___ftdiv@f3+2
6449 0BED 0736 addwf ___ftdiv@sign,w
6450 0BEE 00AE movwf ??___ftdiv
6451 0BEF 02B5 subwf ___ftdiv@exp,f
6452 0BF0 082D movf ___ftdiv@f1+2,w
6453 0BF1 00B6 movwf ___ftdiv@sign
6454 0BF2 082A movf ___ftdiv@f2+2,w
6455 0BF3 06B6 xorwf ___ftdiv@sign,f
6456 0BF4 3080 movlw 128
6457 0BF5 05B6 andwf ___ftdiv@sign,f
6458 0BF6 3018 movlw 24
6459 0BF7 17AC bsf ___ftdiv@f1+1,7
6460 0BF8 01AD clrf ___ftdiv@f1+2
6461 0BF9 17A9 bsf ___ftdiv@f2+1,7
6462 0BFA 01AA clrf ___ftdiv@f2+2
6463 0BFB 00B1 movwf ___ftdiv@cntr
6464 0BFC l6153:
6465 0BFC 35B2 lslf ___ftdiv@f3,f
6466 0BFD 0DB3 rlf ___ftdiv@f3+1,f
6467 0BFE 0DB4 rlf ___ftdiv@f3+2,f
6468 0BFF 082A movf ___ftdiv@f2+2,w
6469 0C00 022D subwf ___ftdiv@f1+2,w
6470 0C01 1D03 skipz
6471 0C02 2C09 goto u4425
6472 0C03 0829 movf ___ftdiv@f2+1,w
6473 0C04 022C subwf ___ftdiv@f1+1,w
6474 0C05 1D03 skipz
6475 0C06 2C09 goto u4425
6476 0C07 0828 movf ___ftdiv@f2,w
6477 0C08 022B subwf ___ftdiv@f1,w
6478 0C09 u4425:
6479 0C09 1C03 skipc
6480 0C0A 2C12 goto l6159
6481 0C0B 0828 movf ___ftdiv@f2,w
6482 0C0C 02AB subwf ___ftdiv@f1,f
6483 0C0D 0829 movf ___ftdiv@f2+1,w
6484 0C0E 3BAC subwfb ___ftdiv@f1+1,f
6485 0C0F 082A movf ___ftdiv@f2+2,w
6486 0C10 3BAD subwfb ___ftdiv@f1+2,f
6487 0C11 1432 bsf ___ftdiv@f3,0
6488 0C12 l6159:
6489 0C12 35AB lslf ___ftdiv@f1,f
6490 0C13 0DAC rlf ___ftdiv@f1+1,f
6491 0C14 0DAD rlf ___ftdiv@f1+2,f
6492 0C15 0BB1 decfsz ___ftdiv@cntr,f
6493 0C16 2BFC goto l6153
6494 0C17 0832 movf ___ftdiv@f3,w
6495 0C18 00A0 movwf ?___ftpack
6496 0C19 0833 movf ___ftdiv@f3+1,w
6497 0C1A 00A1 movwf ?___ftpack+1
6498 0C1B 0834 movf ___ftdiv@f3+2,w
6499 0C1C 00A2 movwf ?___ftpack+2
6500 0C1D 0835 movf ___ftdiv@exp,w
6501 0C1E 00A3 movwf ?___ftpack+3
6502 0C1F 0836 movf ___ftdiv@sign,w
6503 0C20 00A4 movwf ?___ftpack+4
6504 0C21 268E fcall ___ftpack
6505 0C22 0820 movf ?___ftpack,w
6506 0C23 00A8 movwf ?___ftdiv
6507 0C24 0821 movf ?___ftpack+1,w
6508 0C25 00A9 movwf ?___ftdiv+1
6509 0C26 0822 movf ?___ftpack+2,w
6510 0C27 00AA movwf ?___ftdiv+2
6511 0C28 0008 return
6512 0C29 __end_of___ftdiv:
6513 0C29 __ptext1634:
6514 ;; =============== function ___lbtoft ends ============
6515
6516
6517 ;; *************** function ___ftmul *****************
6518 ;; Defined at:
6519 ;; line 52 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\ftmul.c"
6520 ;; Parameters: Size Location Type
6521 ;; f1 3 12[BANK0 ] float
6522 ;; f2 3 15[BANK0 ] float
6523 ;; Auto vars: Size Location Type
6524 ;; f3_as_produc 3 22[BANK0 ] unsigned um
6525 ;; sign 1 26[BANK0 ] unsigned char
6526 ;; cntr 1 25[BANK0 ] unsigned char
6527 ;; exp 1 21[BANK0 ] unsigned char
6528 ;; Return value: Size Location Type
6529 ;; 3 12[BANK0 ] float
6530 ;; Registers used:
6531 ;; wreg, status,2, status,0, pclath, cstack
6532 ;; Tracked objects:
6533 ;; On entry : 1F/0
6534 ;; On exit : 1F/0
6535 ;; Unchanged: FFFE0/0
6536 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6537 ;; Params: 0 6 0 0
6538 ;; Locals: 0 6 0 0
6539 ;; Temps: 0 3 0 0
6540 ;; Totals: 0 15 0 0
6541 ;;Total ram usage: 15 bytes
6542 ;; Hardware stack levels used: 1
6543 ;; Hardware stack levels required when called: 2
6544 ;; This function calls:
6545 ;; ___ftpack
6546 ;; This function is called by:
6547 ;; _genExponents
6548 ;; _exp
6549 ;; _eval_poly
6550 ;; This function uses a non-reentrant model
6551 ;;
6552 0C29 ___ftmul:
6553
6554 ; Regs used in ___ftmul: [wreg+status,2+status,0+pclath+cstack]
6555 0C29 082C movf ___ftmul@f1,w
6556 0C2A 00B2 movwf ??___ftmul
6557 0C2B 082D movf ___ftmul@f1+1,w
6558 0C2C 00B3 movwf ??___ftmul+1
6559 0C2D 082E movf ___ftmul@f1+2,w
6560 0C2E 00B4 movwf ??___ftmul+2
6561 0C2F 1003 clrc
6562 0C30 0D33 rlf ??___ftmul+1,w
6563 0C31 0D34 rlf ??___ftmul+2,w
6564 0C32 00B5 movwf ___ftmul@exp
6565 0C33 08B5 movf ___ftmul@exp,f
6566 0C34 1D03 skipz
6567 0C35 2C3A goto l6173
6568 0C36 01AC clrf ?___ftmul
6569 0C37 01AD clrf ?___ftmul+1
6570 0C38 01AE clrf ?___ftmul+2
6571 0C39 0008 return
6572 0C3A l6173:
6573 0C3A 082F movf ___ftmul@f2,w
6574 0C3B 00B2 movwf ??___ftmul
6575 0C3C 0830 movf ___ftmul@f2+1,w
6576 0C3D 00B3 movwf ??___ftmul+1
6577 0C3E 0831 movf ___ftmul@f2+2,w
6578 0C3F 00B4 movwf ??___ftmul+2
6579 0C40 1003 clrc
6580 0C41 0D33 rlf ??___ftmul+1,w
6581 0C42 0D34 rlf ??___ftmul+2,w
6582 0C43 00BA movwf ___ftmul@sign
6583 0C44 08BA movf ___ftmul@sign,f
6584 0C45 1D03 skipz
6585 0C46 2C4B goto l6179
6586 0C47 01AC clrf ?___ftmul
6587 0C48 01AD clrf ?___ftmul+1
6588 0C49 01AE clrf ?___ftmul+2
6589 0C4A 0008 return
6590 0C4B l6179:
6591 0C4B 083A movf ___ftmul@sign,w
6592 0C4C 3E7B addlw 123
6593 0C4D 07B5 addwf ___ftmul@exp,f
6594 0C4E 082E movf ___ftmul@f1+2,w
6595 0C4F 00BA movwf ___ftmul@sign
6596 0C50 0831 movf ___ftmul@f2+2,w
6597 0C51 06BA xorwf ___ftmul@sign,f
6598 0C52 3080 movlw 128
6599 0C53 05BA andwf ___ftmul@sign,f
6600 0C54 30FF movlw 255
6601 0C55 17AD bsf ___ftmul@f1+1,7
6602 0C56 17B0 bsf ___ftmul@f2+1,7
6603 0C57 05AF andwf ___ftmul@f2,f
6604 0C58 05B0 andwf ___ftmul@f2+1,f
6605 0C59 3007 movlw 7
6606 0C5A 01B1 clrf ___ftmul@f2+2
6607 0C5B 01B6 clrf ___ftmul@f3_as_product
6608 0C5C 01B7 clrf ___ftmul@f3_as_product+1
6609 0C5D 01B8 clrf ___ftmul@f3_as_product+2
6610 0C5E 00B9 movwf ___ftmul@cntr
6611 0C5F l6197:
6612 0C5F 1C2C btfss ___ftmul@f1,0
6613 0C60 2C67 goto l6201
6614 0C61 082F movf ___ftmul@f2,w
6615 0C62 07B6 addwf ___ftmul@f3_as_product,f
6616 0C63 0830 movf ___ftmul@f2+1,w
6617 0C64 3DB7 addwfc ___ftmul@f3_as_product+1,f
6618 0C65 0831 movf ___ftmul@f2+2,w
6619 0C66 3DB8 addwfc ___ftmul@f3_as_product+2,f
6620 0C67 l6201:
6621 0C67 36AE lsrf ___ftmul@f1+2,f
6622 0C68 0CAD rrf ___ftmul@f1+1,f
6623 0C69 0CAC rrf ___ftmul@f1,f
6624 0C6A 35AF lslf ___ftmul@f2,f
6625 0C6B 0DB0 rlf ___ftmul@f2+1,f
6626 0C6C 0DB1 rlf ___ftmul@f2+2,f
6627 0C6D 0BB9 decfsz ___ftmul@cntr,f
6628 0C6E 2C5F goto l6197
6629 0C6F 3009 movlw 9
6630 0C70 00B9 movwf ___ftmul@cntr
6631 0C71 l6209:
6632 0C71 1C2C btfss ___ftmul@f1,0
6633 0C72 2C79 goto l6213
6634 0C73 082F movf ___ftmul@f2,w
6635 0C74 07B6 addwf ___ftmul@f3_as_product,f
6636 0C75 0830 movf ___ftmul@f2+1,w
6637 0C76 3DB7 addwfc ___ftmul@f3_as_product+1,f
6638 0C77 0831 movf ___ftmul@f2+2,w
6639 0C78 3DB8 addwfc ___ftmul@f3_as_product+2,f
6640 0C79 l6213:
6641 0C79 36AE lsrf ___ftmul@f1+2,f
6642 0C7A 0CAD rrf ___ftmul@f1+1,f
6643 0C7B 0CAC rrf ___ftmul@f1,f
6644 0C7C 36B8 lsrf ___ftmul@f3_as_product+2,f
6645 0C7D 0CB7 rrf ___ftmul@f3_as_product+1,f
6646 0C7E 0CB6 rrf ___ftmul@f3_as_product,f
6647 0C7F 0BB9 decfsz ___ftmul@cntr,f
6648 0C80 2C71 goto l6209
6649 0C81 0836 movf ___ftmul@f3_as_product,w
6650 0C82 00A0 movwf ?___ftpack
6651 0C83 0837 movf ___ftmul@f3_as_product+1,w
6652 0C84 00A1 movwf ?___ftpack+1
6653 0C85 0838 movf ___ftmul@f3_as_product+2,w
6654 0C86 00A2 movwf ?___ftpack+2
6655 0C87 0835 movf ___ftmul@exp,w
6656 0C88 00A3 movwf ?___ftpack+3
6657 0C89 083A movf ___ftmul@sign,w
6658 0C8A 00A4 movwf ?___ftpack+4
6659 0C8B 268E fcall ___ftpack
6660 0C8C 0820 movf ?___ftpack,w
6661 0C8D 00AC movwf ?___ftmul
6662 0C8E 0821 movf ?___ftpack+1,w
6663 0C8F 00AD movwf ?___ftmul+1
6664 0C90 0822 movf ?___ftpack+2,w
6665 0C91 00AE movwf ?___ftmul+2
6666 0C92 0008 return
6667 0C93 __end_of___ftmul:
6668 0C93 __ptext1633:
6669 ;; =============== function ___awtoft ends ============
6670
6671
6672 ;; *************** function ___lbtoft *****************
6673 ;; Defined at:
6674 ;; line 28 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\lbtoft.c"
6675 ;; Parameters: Size Location Type
6676 ;; c 1 wreg unsigned char
6677 ;; Auto vars: Size Location Type
6678 ;; c 1 11[BANK0 ] unsigned char
6679 ;; Return value: Size Location Type
6680 ;; 3 8[BANK0 ] float
6681 ;; Registers used:
6682 ;; wreg, status,2, status,0, pclath, cstack
6683 ;; Tracked objects:
6684 ;; On entry : 1F/0
6685 ;; On exit : 1F/0
6686 ;; Unchanged: FFFE0/0
6687 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6688 ;; Params: 0 3 0 0
6689 ;; Locals: 0 1 0 0
6690 ;; Temps: 0 0 0 0
6691 ;; Totals: 0 4 0 0
6692 ;;Total ram usage: 4 bytes
6693 ;; Hardware stack levels used: 1
6694 ;; Hardware stack levels required when called: 2
6695 ;; This function calls:
6696 ;; ___ftpack
6697 ;; This function is called by:
6698 ;; _genExponents
6699 ;; This function uses a non-reentrant model
6700 ;;
6701 0C93 ___lbtoft:
6702
6703 ; Regs used in ___lbtoft: [wreg+status,2+status,0+pclath+cstack]
6704 ;___lbtoft@c stored from wreg
6705 0C93 00AB movwf ___lbtoft@c
6706 0C94 00A0 movwf ?___ftpack
6707 0C95 308E movlw 142
6708 0C96 01A1 clrf ?___ftpack+1
6709 0C97 01A2 clrf ?___ftpack+2
6710 0C98 00A3 movwf ?___ftpack+3
6711 0C99 01A4 clrf ?___ftpack+4
6712 0C9A 268E fcall ___ftpack
6713 0C9B 0820 movf ?___ftpack,w
6714 0C9C 00A8 movwf ?___lbtoft
6715 0C9D 0821 movf ?___ftpack+1,w
6716 0C9E 00A9 movwf ?___lbtoft+1
6717 0C9F 0822 movf ?___ftpack+2,w
6718 0CA0 00AA movwf ?___lbtoft+2
6719 0CA1 0008 return
6720 0CA2 __end_of___lbtoft:
6721 0CA2 __ptext1628:
6722 ;; =============== function _eval_poly ends ============
6723
6724
6725 ;; *************** function _floor *****************
6726 ;; Defined at:
6727 ;; line 14 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\floor.c"
6728 ;; Parameters: Size Location Type
6729 ;; x 3 39[BANK0 ] int
6730 ;; Auto vars: Size Location Type
6731 ;; i 3 42[BANK0 ] int
6732 ;; expon 2 45[BANK0 ] int
6733 ;; Return value: Size Location Type
6734 ;; 3 39[BANK0 ] int
6735 ;; Registers used:
6736 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
6737 ;; Tracked objects:
6738 ;; On entry : 1F/0
6739 ;; On exit : 1F/0
6740 ;; Unchanged: FFFE0/0
6741 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6742 ;; Params: 0 3 0 0
6743 ;; Locals: 0 5 0 0
6744 ;; Temps: 0 0 0 0
6745 ;; Totals: 0 8 0 0
6746 ;;Total ram usage: 8 bytes
6747 ;; Hardware stack levels used: 1
6748 ;; Hardware stack levels required when called: 3
6749 ;; This function calls:
6750 ;; _frexp
6751 ;; ___ftge
6752 ;; ___fttol
6753 ;; ___altoft
6754 ;; ___ftadd
6755 ;; This function is called by:
6756 ;; _exp
6757 ;; This function uses a non-reentrant model
6758 ;;
6759 0CA2 _floor:
6760
6761 ; Regs used in _floor: [wreg+fsr1l-status,0+pclath+cstack]
6762 0CA2 0847 movf floor@x,w
6763 0CA3 00A0 movwf ?_frexp
6764 0CA4 0848 movf floor@x+1,w
6765 0CA5 00A1 movwf ?_frexp+1
6766 0CA6 0849 movf floor@x+2,w
6767 0CA7 00A2 movwf ?_frexp+2
6768 0CA8 304D movlw floor@expon& (0+255)
6769 0CA9 00A3 movwf ?_frexp+3
6770 0CAA 26C8 3188 fcall _frexp
6771 0CAC 1FCE btfss floor@expon+1,7
6772 0CAD 2CC5 goto l6451
6773 0CAE 0847 movf floor@x,w
6774 0CAF 00A0 movwf ?___ftge
6775 0CB0 0848 movf floor@x+1,w
6776 0CB1 00A1 movwf ?___ftge+1
6777 0CB2 0849 movf floor@x+2,w
6778 0CB3 00A2 movwf ?___ftge+2
6779 0CB4 01A3 clrf ?___ftge+3
6780 0CB5 01A4 clrf ?___ftge+4
6781 0CB6 01A5 clrf ?___ftge+5
6782 0CB7 25EF 3188 fcall ___ftge
6783 0CB9 1803 btfsc 3,0
6784 0CBA 2CC1 goto l6447
6785 0CBB 3080 movlw 128
6786 0CBC 01C7 clrf ?_floor
6787 0CBD 00C8 movwf ?_floor+1
6788 0CBE 30BF movlw 191
6789 0CBF 00C9 movwf ?_floor+2
6790 0CC0 0008 return
6791 0CC1 l6447:
6792 0CC1 01C7 clrf ?_floor
6793 0CC2 01C8 clrf ?_floor+1
6794 0CC3 01C9 clrf ?_floor+2
6795 0CC4 0008 return
6796 0CC5 l6451:
6797 0CC5 3000 movlw 0
6798 0CC6 024E subwf floor@expon+1,w
6799 0CC7 3015 movlw 21
6800 0CC8 1903 skipnz
6801 0CC9 024D subwf floor@expon,w
6802 0CCA 1803 btfsc 3,0
6803 0CCB 0008 return
6804 0CCC 0847 movf floor@x,w
6805 0CCD 00A0 movwf ?___fttol
6806 0CCE 0848 movf floor@x+1,w
6807 0CCF 00A1 movwf ?___fttol+1
6808 0CD0 0849 movf floor@x+2,w
6809 0CD1 00A2 movwf ?___fttol+2
6810 0CD2 261B 3188 fcall ___fttol
6811 0CD4 0823 movf ?___fttol+3,w
6812 0CD5 00B0 movwf ?___altoft+3
6813 0CD6 0822 movf ?___fttol+2,w
6814 0CD7 00AF movwf ?___altoft+2
6815 0CD8 0821 movf ?___fttol+1,w
6816 0CD9 00AE movwf ?___altoft+1
6817 0CDA 0820 movf ?___fttol,w
6818 0CDB 00AD movwf ?___altoft
6819 0CDC 27D2 3188 fcall ___altoft
6820 0CDE 082D movf ?___altoft,w
6821 0CDF 00CA movwf floor@i
6822 0CE0 082E movf ?___altoft+1,w
6823 0CE1 00CB movwf floor@i+1
6824 0CE2 082F movf ?___altoft+2,w
6825 0CE3 00CC movwf floor@i+2
6826 0CE4 0847 movf floor@x,w
6827 0CE5 00A0 movwf ?___ftge
6828 0CE6 0848 movf floor@x+1,w
6829 0CE7 00A1 movwf ?___ftge+1
6830 0CE8 0849 movf floor@x+2,w
6831 0CE9 00A2 movwf ?___ftge+2
6832 0CEA 084A movf floor@i,w
6833 0CEB 00A3 movwf ?___ftge+3
6834 0CEC 084B movf floor@i+1,w
6835 0CED 00A4 movwf ?___ftge+4
6836 0CEE 084C movf floor@i+2,w
6837 0CEF 00A5 movwf ?___ftge+5
6838 0CF0 25EF 3188 fcall ___ftge
6839 0CF2 1803 btfsc 3,0
6840 0CF3 2D07 goto l6461
6841 0CF4 3080 movlw 128
6842 0CF5 01BB clrf ?___ftadd
6843 0CF6 00BC movwf ?___ftadd+1
6844 0CF7 30BF movlw 191
6845 0CF8 00BD movwf ?___ftadd+2
6846 0CF9 084A movf floor@i,w
6847 0CFA 00BE movwf ?___ftadd+3
6848 0CFB 084B movf floor@i+1,w
6849 0CFC 00BF movwf ?___ftadd+4
6850 0CFD 084C movf floor@i+2,w
6851 0CFE 00C0 movwf ?___ftadd+5
6852 0CFF 271E fcall ___ftadd
6853 0D00 083B movf ?___ftadd,w
6854 0D01 00C7 movwf ?_floor
6855 0D02 083C movf ?___ftadd+1,w
6856 0D03 00C8 movwf ?_floor+1
6857 0D04 083D movf ?___ftadd+2,w
6858 0D05 00C9 movwf ?_floor+2
6859 0D06 0008 return
6860 0D07 l6461:
6861 0D07 084A movf floor@i,w
6862 0D08 00C7 movwf ?_floor
6863 0D09 084B movf floor@i+1,w
6864 0D0A 00C8 movwf ?_floor+1
6865 0D0B 084C movf floor@i+2,w
6866 0D0C 00C9 movwf ?_floor+2
6867 0D0D 0008 return
6868 0D0E __end_of_floor:
6869 0D0E __ptext1625:
6870 ;; =============== function _mOffCheckConfigMode ends ============
6871
6872
6873 ;; *************** function _exp *****************
6874 ;; Defined at:
6875 ;; line 13 in file "../../common/exp.c"
6876 ;; Parameters: Size Location Type
6877 ;; x 3 60[BANK0 ] unsigned char
6878 ;; Auto vars: Size Location Type
6879 ;; exp 2 66[BANK0 ] int
6880 ;; sign 1 68[BANK0 ] unsigned char
6881 ;; Return value: Size Location Type
6882 ;; 3 60[BANK0 ] unsigned char
6883 ;; Registers used:
6884 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
6885 ;; Tracked objects:
6886 ;; On entry : 1F/0
6887 ;; On exit : 1F/0
6888 ;; Unchanged: FFE00/0
6889 ;; Data sizes: COMMON BANK0 BANK1 BANK2
6890 ;; Params: 0 3 0 0
6891 ;; Locals: 0 6 0 0
6892 ;; Temps: 0 0 0 0
6893 ;; Totals: 0 9 0 0
6894 ;;Total ram usage: 9 bytes
6895 ;; Hardware stack levels used: 1
6896 ;; Hardware stack levels required when called: 4
6897 ;; This function calls:
6898 ;; ___ftge
6899 ;; ___ftneg
6900 ;; ___ftmul
6901 ;; _floor
6902 ;; ___fttol
6903 ;; ___awtoft
6904 ;; ___ftsub
6905 ;; _eval_poly
6906 ;; _ldexp
6907 ;; ___ftdiv
6908 ;; This function is called by:
6909 ;; _genExponents
6910 ;; This function uses a non-reentrant model
6911 ;;
6912 0D0E _exp:
6913
6914 ; Regs used in _exp: [allreg]
6915 0D0E 085E movf exp@x+2,w
6916 0D0F 045D iorwf exp@x+1,w
6917 0D10 045C iorwf exp@x,w
6918 0D11 1D03 skipz
6919 0D12 2D19 goto l6487
6920 0D13 3080 movlw 128
6921 0D14 01DC clrf ?_exp
6922 0D15 00DD movwf ?_exp+1
6923 0D16 303F movlw 63
6924 0D17 00DE movwf ?_exp+2
6925 0D18 0008 return
6926 0D19 l6487:
6927 0D19 3072 movlw 114
6928 0D1A 00A0 movwf ?___ftge
6929 0D1B 3031 movlw 49
6930 0D1C 00A1 movwf ?___ftge+1
6931 0D1D 3044 movlw 68
6932 0D1E 00A2 movwf ?___ftge+2
6933 0D1F 085C movf exp@x,w
6934 0D20 00A3 movwf ?___ftge+3
6935 0D21 085D movf exp@x+1,w
6936 0D22 00A4 movwf ?___ftge+4
6937 0D23 085E movf exp@x+2,w
6938 0D24 00A5 movwf ?___ftge+5
6939 0D25 25EF 3188 fcall ___ftge
6940 0D27 1803 btfsc 3,0
6941 0D28 2D2F goto l6497
6942 0D29 30FF movlw 255
6943 0D2A 00DC movwf ?_exp
6944 0D2B 307F movlw 127
6945 0D2C 00DD movwf ?_exp+1
6946 0D2D 00DE movwf ?_exp+2
6947 0D2E 0008 return
6948 0D2F l6497:
6949 0D2F 085C movf exp@x,w
6950 0D30 00A0 movwf ?___ftge
6951 0D31 085D movf exp@x+1,w
6952 0D32 00A1 movwf ?___ftge+1
6953 0D33 085E movf exp@x+2,w
6954 0D34 00A2 movwf ?___ftge+2
6955 0D35 3049 movlw 73
6956 0D36 00A3 movwf ?___ftge+3
6957 0D37 303A movlw 58
6958 0D38 00A4 movwf ?___ftge+4
6959 0D39 30C4 movlw 196
6960 0D3A 00A5 movwf ?___ftge+5
6961 0D3B 25EF 3188 fcall ___ftge
6962 0D3D 1803 btfsc 3,0
6963 0D3E 2D43 goto l6503
6964 0D3F 01DC clrf ?_exp
6965 0D40 01DD clrf ?_exp+1
6966 0D41 01DE clrf ?_exp+2
6967 0D42 0008 return
6968 0D43 l6503:
6969 0D43 085C movf exp@x,w
6970 0D44 00A0 movwf ?___ftge
6971 0D45 085D movf exp@x+1,w
6972 0D46 00A1 movwf ?___ftge+1
6973 0D47 085E movf exp@x+2,w
6974 0D48 00A2 movwf ?___ftge+2
6975 0D49 01A3 clrf ?___ftge+3
6976 0D4A 01A4 clrf ?___ftge+4
6977 0D4B 01A5 clrf ?___ftge+5
6978 0D4C 25EF 3188 fcall ___ftge
6979 0D4E 3000 movlw 0
6980 0D4F 1C03 btfss 3,0
6981 0D50 3001 movlw 1
6982 0D51 00E4 movwf exp@sign
6983 0D52 0864 movf exp@sign,w
6984 0D53 1903 btfsc 3,2
6985 0D54 2D63 goto l6509
6986 0D55 085C movf exp@x,w
6987 0D56 00A0 movwf ?___ftneg
6988 0D57 085D movf exp@x+1,w
6989 0D58 00A1 movwf ?___ftneg+1
6990 0D59 085E movf exp@x+2,w
6991 0D5A 00A2 movwf ?___ftneg+2
6992 0D5B 26FB 3188 fcall ___ftneg
6993 0D5D 0820 movf ?___ftneg,w
6994 0D5E 00DC movwf exp@x
6995 0D5F 0821 movf ?___ftneg+1,w
6996 0D60 00DD movwf exp@x+1
6997 0D61 0822 movf ?___ftneg+2,w
6998 0D62 00DE movwf exp@x+2
6999 0D63 l6509:
7000 0D63 30AA movlw 170
7001 0D64 00AC movwf ?___ftmul
7002 0D65 30B8 movlw 184
7003 0D66 00AD movwf ?___ftmul+1
7004 0D67 303F movlw 63
7005 0D68 00AE movwf ?___ftmul+2
7006 0D69 085C movf exp@x,w
7007 0D6A 00AF movwf ?___ftmul+3
7008 0D6B 085D movf exp@x+1,w
7009 0D6C 00B0 movwf ?___ftmul+4
7010 0D6D 085E movf exp@x+2,w
7011 0D6E 00B1 movwf ?___ftmul+5
7012 0D6F 2429 3188 fcall ___ftmul
7013 0D71 082C movf ?___ftmul,w
7014 0D72 00DC movwf exp@x
7015 0D73 082D movf ?___ftmul+1,w
7016 0D74 00DD movwf exp@x+1
7017 0D75 082E movf ?___ftmul+2,w
7018 0D76 00DE movwf exp@x+2
7019 0D77 085C movf exp@x,w
7020 0D78 00C7 movwf ?_floor
7021 0D79 085D movf exp@x+1,w
7022 0D7A 00C8 movwf ?_floor+1
7023 0D7B 085E movf exp@x+2,w
7024 0D7C 00C9 movwf ?_floor+2
7025 0D7D 24A2 3188 fcall _floor
7026 0D7F 0847 movf ?_floor,w
7027 0D80 00A0 movwf ?___fttol
7028 0D81 0848 movf ?_floor+1,w
7029 0D82 00A1 movwf ?___fttol+1
7030 0D83 0849 movf ?_floor+2,w
7031 0D84 00A2 movwf ?___fttol+2
7032 0D85 261B 3188 fcall ___fttol
7033 0D87 0821 movf ?___fttol+1,w
7034 0D88 00E3 movwf exp@exp+1
7035 0D89 0820 movf ?___fttol,w
7036 0D8A 00E2 movwf exp@exp
7037 0D8B 0863 movf exp@exp+1,w
7038 0D8C 00A9 movwf ?___awtoft+1
7039 0D8D 0862 movf exp@exp,w
7040 0D8E 00A8 movwf ?___awtoft
7041 0D8F 2703 3188 fcall ___awtoft
7042 0D91 0828 movf ?___awtoft,w
7043 0D92 00C7 movwf ?___ftsub
7044 0D93 0829 movf ?___awtoft+1,w
7045 0D94 00C8 movwf ?___ftsub+1
7046 0D95 082A movf ?___awtoft+2,w
7047 0D96 00C9 movwf ?___ftsub+2
7048 0D97 085C movf exp@x,w
7049 0D98 00CA movwf ?___ftsub+3
7050 0D99 085D movf exp@x+1,w
7051 0D9A 00CB movwf ?___ftsub+4
7052 0D9B 085E movf exp@x+2,w
7053 0D9C 00CC movwf ?___ftsub+5
7054 0D9D 2678 fcall ___ftsub
7055 0D9E 0847 movf ?___ftsub,w
7056 0D9F 00DC movwf exp@x
7057 0DA0 0848 movf ?___ftsub+1,w
7058 0DA1 00DD movwf exp@x+1
7059 0DA2 0849 movf ?___ftsub+2,w
7060 0DA3 00DE movwf exp@x+2
7061 0DA4 085C movf exp@x,w
7062 0DA5 00D1 movwf ?_eval_poly
7063 0DA6 085D movf exp@x+1,w
7064 0DA7 00D2 movwf ?_eval_poly+1
7065 0DA8 085E movf exp@x+2,w
7066 0DA9 00D3 movwf ?_eval_poly+2
7067 0DAA 30A7 movlw (exp@coeff| (0+32768))& (0+255)
7068 0DAB 00D4 movwf ?_eval_poly+3
7069 0DAC 3009 movlw 9
7070 0DAD 00D5 movwf ?_eval_poly+4
7071 0DAE 01D6 clrf ?_eval_poly+5
7072 0DAF 3186 2693 3188 fcall _eval_poly
7073 0DB2 0851 movf ?_eval_poly,w
7074 0DB3 00C7 movwf ?_ldexp
7075 0DB4 0852 movf ?_eval_poly+1,w
7076 0DB5 00C8 movwf ?_ldexp+1
7077 0DB6 0853 movf ?_eval_poly+2,w
7078 0DB7 00C9 movwf ?_ldexp+2
7079 0DB8 0863 movf exp@exp+1,w
7080 0DB9 00CB movwf ?_ldexp+4
7081 0DBA 0862 movf exp@exp,w
7082 0DBB 00CA movwf ?_ldexp+3
7083 0DBC 3185 25C8 3188 fcall _ldexp
7084 0DBF 0847 movf ?_ldexp,w
7085 0DC0 00DC movwf exp@x
7086 0DC1 0848 movf ?_ldexp+1,w
7087 0DC2 00DD movwf exp@x+1
7088 0DC3 0849 movf ?_ldexp+2,w
7089 0DC4 00DE movwf exp@x+2
7090 0DC5 0864 movf exp@sign,w
7091 0DC6 1903 btfsc 3,2
7092 0DC7 0008 return
7093 0DC8 30FF movlw 255
7094 0DC9 00DF movwf _exp$2163
7095 0DCA 307F movlw 127
7096 0DCB 00E0 movwf _exp$2163+1
7097 0DCC 00E1 movwf _exp$2163+2
7098 0DCD 065E xorwf exp@x+2,w
7099 0DCE 1D03 skipz
7100 0DCF 2DD6 goto u4745
7101 0DD0 085D movf exp@x+1,w
7102 0DD1 0660 xorwf _exp$2163+1,w
7103 0DD2 1D03 skipz
7104 0DD3 2DD6 goto u4745
7105 0DD4 085C movf exp@x,w
7106 0DD5 065F xorwf _exp$2163,w
7107 0DD6 u4745:
7108 0DD6 1D03 skipz
7109 0DD7 2DDC goto l6529
7110 0DD8 01DC clrf ?_exp
7111 0DD9 01DD clrf ?_exp+1
7112 0DDA 01DE clrf ?_exp+2
7113 0DDB 0008 return
7114 0DDC l6529:
7115 0DDC 085C movf exp@x,w
7116 0DDD 00A8 movwf ?___ftdiv
7117 0DDE 085D movf exp@x+1,w
7118 0DDF 00A9 movwf ?___ftdiv+1
7119 0DE0 085E movf exp@x+2,w
7120 0DE1 00AA movwf ?___ftdiv+2
7121 0DE2 3080 movlw 128
7122 0DE3 01AB clrf ?___ftdiv+3
7123 0DE4 00AC movwf ?___ftdiv+4
7124 0DE5 303F movlw 63
7125 0DE6 00AD movwf ?___ftdiv+5
7126 0DE7 23C7 fcall ___ftdiv
7127 0DE8 0828 movf ?___ftdiv,w
7128 0DE9 00DC movwf ?_exp
7129 0DEA 0829 movf ?___ftdiv+1,w
7130 0DEB 00DD movwf ?_exp+1
7131 0DEC 082A movf ?___ftdiv+2,w
7132 0DED 00DE movwf ?_exp+2
7133 0DEE 0008 return
7134 0DEF __end_of_exp:
7135 0DEF __ptext1642:
7136 ;; =============== function ___lldiv ends ============
7137
7138
7139 ;; *************** function ___ftge *****************
7140 ;; Defined at:
7141 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\ftge.c"
7142 ;; Parameters: Size Location Type
7143 ;; ff1 3 0[BANK0 ] float
7144 ;; ff2 3 3[BANK0 ] float
7145 ;; Auto vars: Size Location Type
7146 ;; None
7147 ;; Return value: Size Location Type
7148 ;; None void
7149 ;; Registers used:
7150 ;; wreg, status,2, status,0
7151 ;; Tracked objects:
7152 ;; On entry : 1F/0
7153 ;; On exit : 1F/0
7154 ;; Unchanged: FFFE0/0
7155 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7156 ;; Params: 0 6 0 0
7157 ;; Locals: 0 0 0 0
7158 ;; Temps: 0 0 0 0
7159 ;; Totals: 0 6 0 0
7160 ;;Total ram usage: 6 bytes
7161 ;; Hardware stack levels used: 1
7162 ;; Hardware stack levels required when called: 1
7163 ;; This function calls:
7164 ;; Nothing
7165 ;; This function is called by:
7166 ;; _exp
7167 ;; _floor
7168 ;; _ldexp
7169 ;; This function uses a non-reentrant model
7170 ;;
7171 0DEF ___ftge:
7172
7173 ; Regs used in ___ftge: [wreg+status,2+status,0]
7174 0DEF 1FA2 btfss ___ftge@ff1+2,7
7175 0DF0 2DFE goto l5843
7176 0DF1 0820 movf ___ftge@ff1,w
7177 0DF2 3C00 sublw 0
7178 0DF3 00A0 movwf ___ftge@ff1
7179 0DF4 0821 movf ___ftge@ff1+1,w
7180 0DF5 1C03 skipc
7181 0DF6 0F21 incfsz ___ftge@ff1+1,w
7182 0DF7 3C00 sublw 0
7183 0DF8 00A1 movwf ___ftge@ff1+1
7184 0DF9 0822 movf ___ftge@ff1+2,w
7185 0DFA 1C03 skipc
7186 0DFB 0F22 incfsz ___ftge@ff1+2,w
7187 0DFC 3C80 sublw 128
7188 0DFD 00A2 movwf ___ftge@ff1+2
7189 0DFE l5843:
7190 0DFE 1FA5 btfss ___ftge@ff2+2,7
7191 0DFF 2E0D goto l5847
7192 0E00 0823 movf ___ftge@ff2,w
7193 0E01 3C00 sublw 0
7194 0E02 00A3 movwf ___ftge@ff2
7195 0E03 0824 movf ___ftge@ff2+1,w
7196 0E04 1C03 skipc
7197 0E05 0F24 incfsz ___ftge@ff2+1,w
7198 0E06 3C00 sublw 0
7199 0E07 00A4 movwf ___ftge@ff2+1
7200 0E08 0825 movf ___ftge@ff2+2,w
7201 0E09 1C03 skipc
7202 0E0A 0F25 incfsz ___ftge@ff2+2,w
7203 0E0B 3C80 sublw 128
7204 0E0C 00A5 movwf ___ftge@ff2+2
7205 0E0D l5847:
7206 0E0D 3080 movlw 128
7207 0E0E 06A2 xorwf ___ftge@ff1+2,f
7208 0E0F 06A5 xorwf ___ftge@ff2+2,f
7209 0E10 0825 movf ___ftge@ff2+2,w
7210 0E11 0222 subwf ___ftge@ff1+2,w
7211 0E12 1D03 skipz
7212 0E13 0008 return
7213 0E14 0824 movf ___ftge@ff2+1,w
7214 0E15 0221 subwf ___ftge@ff1+1,w
7215 0E16 1D03 skipz
7216 0E17 0008 return
7217 0E18 0823 movf ___ftge@ff2,w
7218 0E19 0220 subwf ___ftge@ff1,w
7219 0E1A 0008 return
7220 0E1B __end_of___ftge:
7221 0E1B __ptext1646:
7222 ;; =============== function ___awdiv ends ============
7223
7224
7225 ;; *************** function ___fttol *****************
7226 ;; Defined at:
7227 ;; line 45 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\fttol.c"
7228 ;; Parameters: Size Location Type
7229 ;; f1 3 0[BANK0 ] float
7230 ;; Auto vars: Size Location Type
7231 ;; lval 4 8[BANK0 ] unsigned long
7232 ;; exp1 1 12[BANK0 ] unsigned char
7233 ;; sign1 1 7[BANK0 ] unsigned char
7234 ;; Return value: Size Location Type
7235 ;; 4 0[BANK0 ] long
7236 ;; Registers used:
7237 ;; wreg, status,2, status,0
7238 ;; Tracked objects:
7239 ;; On entry : 1F/0
7240 ;; On exit : 1F/0
7241 ;; Unchanged: FFFE0/0
7242 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7243 ;; Params: 0 4 0 0
7244 ;; Locals: 0 6 0 0
7245 ;; Temps: 0 3 0 0
7246 ;; Totals: 0 13 0 0
7247 ;;Total ram usage: 13 bytes
7248 ;; Hardware stack levels used: 1
7249 ;; Hardware stack levels required when called: 1
7250 ;; This function calls:
7251 ;; Nothing
7252 ;; This function is called by:
7253 ;; _genExponents
7254 ;; _exp
7255 ;; _floor
7256 ;; This function uses a non-reentrant model
7257 ;;
7258 0E1B ___fttol:
7259
7260 ; Regs used in ___fttol: [wreg+status,2+status,0]
7261 0E1B 0820 movf ___fttol@f1,w
7262 0E1C 00A4 movwf ??___fttol
7263 0E1D 0821 movf ___fttol@f1+1,w
7264 0E1E 00A5 movwf ??___fttol+1
7265 0E1F 0822 movf ___fttol@f1+2,w
7266 0E20 00A6 movwf ??___fttol+2
7267 0E21 1003 clrc
7268 0E22 0D25 rlf ??___fttol+1,w
7269 0E23 0D26 rlf ??___fttol+2,w
7270 0E24 00AC movwf ___fttol@exp1
7271 0E25 08AC movf ___fttol@exp1,f
7272 0E26 1D03 skipz
7273 0E27 2E2D goto l5733
7274 0E28 l5731:
7275 0E28 01A0 clrf ?___fttol
7276 0E29 01A1 clrf ?___fttol+1
7277 0E2A 01A2 clrf ?___fttol+2
7278 0E2B 01A3 clrf ?___fttol+3
7279 0E2C 0008 return
7280 0E2D l5733:
7281 0E2D 0820 movf ___fttol@f1,w
7282 0E2E 00A4 movwf ??___fttol
7283 0E2F 0821 movf ___fttol@f1+1,w
7284 0E30 00A5 movwf ??___fttol+1
7285 0E31 0822 movf ___fttol@f1+2,w
7286 0E32 00A6 movwf ??___fttol+2
7287 0E33 3017 movlw 23
7288 0E34 u3835:
7289 0E34 36A6 lsrf ??___fttol+2,f
7290 0E35 0CA5 rrf ??___fttol+1,f
7291 0E36 0CA4 rrf ??___fttol,f
7292 0E37 0B89 decfsz 9,f
7293 0E38 2E34 goto u3835
7294 0E39 0824 movf ??___fttol,w
7295 0E3A 00A7 movwf ___fttol@sign1
7296 0E3B 17A1 bsf ___fttol@f1+1,7
7297 0E3C 01A2 clrf ___fttol@f1+2
7298 0E3D 0820 movf ___fttol@f1,w
7299 0E3E 00A8 movwf ___fttol@lval
7300 0E3F 0821 movf ___fttol@f1+1,w
7301 0E40 00A9 movwf ___fttol@lval+1
7302 0E41 0822 movf ___fttol@f1+2,w
7303 0E42 00AA movwf ___fttol@lval+2
7304 0E43 308E movlw 142
7305 0E44 01AB clrf ___fttol@lval+3
7306 0E45 02AC subwf ___fttol@exp1,f
7307 0E46 1FAC btfss ___fttol@exp1,7
7308 0E47 2E54 goto l5753
7309 0E48 082C movf ___fttol@exp1,w
7310 0E49 3A80 xorlw 128
7311 0E4A 3E8F addlw 143
7312 0E4B 1C03 btfss 3,0
7313 0E4C 2E28 goto l5731
7314 0E4D l5749:
7315 0E4D 36AB lsrf ___fttol@lval+3,f
7316 0E4E 0CAA rrf ___fttol@lval+2,f
7317 0E4F 0CA9 rrf ___fttol@lval+1,f
7318 0E50 0CA8 rrf ___fttol@lval,f
7319 0E51 0FAC incfsz ___fttol@exp1,f
7320 0E52 2E4D goto l5749
7321 0E53 2E61 goto l5759
7322 0E54 l5753:
7323 0E54 3018 movlw 24
7324 0E55 022C subwf ___fttol@exp1,w
7325 0E56 1803 btfsc 3,0
7326 0E57 2E28 goto l5731
7327 0E58 l1562:
7328 0E58 08AC movf ___fttol@exp1,f
7329 0E59 1903 btfsc 3,2
7330 0E5A 2E61 goto l5759
7331 0E5B 35A8 lslf ___fttol@lval,f
7332 0E5C 0DA9 rlf ___fttol@lval+1,f
7333 0E5D 0DAA rlf ___fttol@lval+2,f
7334 0E5E 0DAB rlf ___fttol@lval+3,f
7335 0E5F 03AC decf ___fttol@exp1,f
7336 0E60 2E58 goto l1562
7337 0E61 l5759:
7338 0E61 0827 movf ___fttol@sign1,w
7339 0E62 1903 btfsc 3,2
7340 0E63 2E6F goto l5763
7341 0E64 09A8 comf ___fttol@lval,f
7342 0E65 09A9 comf ___fttol@lval+1,f
7343 0E66 09AA comf ___fttol@lval+2,f
7344 0E67 09AB comf ___fttol@lval+3,f
7345 0E68 0AA8 incf ___fttol@lval,f
7346 0E69 1903 skipnz
7347 0E6A 0AA9 incf ___fttol@lval+1,f
7348 0E6B 1903 skipnz
7349 0E6C 0AAA incf ___fttol@lval+2,f
7350 0E6D 1903 skipnz
7351 0E6E 0AAB incf ___fttol@lval+3,f
7352 0E6F l5763:
7353 0E6F 082B movf ___fttol@lval+3,w
7354 0E70 00A3 movwf ?___fttol+3
7355 0E71 082A movf ___fttol@lval+2,w
7356 0E72 00A2 movwf ?___fttol+2
7357 0E73 0829 movf ___fttol@lval+1,w
7358 0E74 00A1 movwf ?___fttol+1
7359 0E75 0828 movf ___fttol@lval,w
7360 0E76 00A0 movwf ?___fttol
7361 0E77 0008 return
7362 0E78 __end_of___fttol:
7363 0E78 __ptext1626:
7364 ;; =============== function _exp ends ============
7365
7366
7367 ;; *************** function ___ftsub *****************
7368 ;; Defined at:
7369 ;; line 17 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\ftsub.c"
7370 ;; Parameters: Size Location Type
7371 ;; f2 3 39[BANK0 ] float
7372 ;; f1 3 42[BANK0 ] float
7373 ;; Auto vars: Size Location Type
7374 ;; None
7375 ;; Return value: Size Location Type
7376 ;; 3 39[BANK0 ] float
7377 ;; Registers used:
7378 ;; wreg, status,2, status,0, pclath, cstack
7379 ;; Tracked objects:
7380 ;; On entry : 1F/0
7381 ;; On exit : 1F/0
7382 ;; Unchanged: FFFE0/0
7383 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7384 ;; Params: 0 6 0 0
7385 ;; Locals: 0 0 0 0
7386 ;; Temps: 0 0 0 0
7387 ;; Totals: 0 6 0 0
7388 ;;Total ram usage: 6 bytes
7389 ;; Hardware stack levels used: 1
7390 ;; Hardware stack levels required when called: 3
7391 ;; This function calls:
7392 ;; ___ftadd
7393 ;; This function is called by:
7394 ;; _genExponents
7395 ;; _exp
7396 ;; This function uses a non-reentrant model
7397 ;;
7398 0E78 ___ftsub:
7399
7400 ; Regs used in ___ftsub: [wreg+status,2+status,0+pclath+cstack]
7401 0E78 3080 movlw 128
7402 0E79 06C9 xorwf ___ftsub@f2+2,f
7403 0E7A 084A movf ___ftsub@f1,w
7404 0E7B 00BB movwf ?___ftadd
7405 0E7C 084B movf ___ftsub@f1+1,w
7406 0E7D 00BC movwf ?___ftadd+1
7407 0E7E 084C movf ___ftsub@f1+2,w
7408 0E7F 00BD movwf ?___ftadd+2
7409 0E80 0847 movf ___ftsub@f2,w
7410 0E81 00BE movwf ?___ftadd+3
7411 0E82 0848 movf ___ftsub@f2+1,w
7412 0E83 00BF movwf ?___ftadd+4
7413 0E84 0849 movf ___ftsub@f2+2,w
7414 0E85 00C0 movwf ?___ftadd+5
7415 0E86 271E fcall ___ftadd
7416 0E87 083B movf ?___ftadd,w
7417 0E88 00C7 movwf ?___ftsub
7418 0E89 083C movf ?___ftadd+1,w
7419 0E8A 00C8 movwf ?___ftsub+1
7420 0E8B 083D movf ?___ftadd+2,w
7421 0E8C 00C9 movwf ?___ftsub+2
7422 0E8D 0008 return
7423 0E8E __end_of___ftsub:
7424 0E8E __ptext1648:
7425 ;; =============== function ___lmul ends ============
7426
7427
7428 ;; *************** function ___ftpack *****************
7429 ;; Defined at:
7430 ;; line 63 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\float.c"
7431 ;; Parameters: Size Location Type
7432 ;; arg 3 0[BANK0 ] unsigned um
7433 ;; exp 1 3[BANK0 ] unsigned char
7434 ;; sign 1 4[BANK0 ] unsigned char
7435 ;; Auto vars: Size Location Type
7436 ;; None
7437 ;; Return value: Size Location Type
7438 ;; 3 0[BANK0 ] float
7439 ;; Registers used:
7440 ;; wreg, status,2, status,0
7441 ;; Tracked objects:
7442 ;; On entry : 1F/0
7443 ;; On exit : 1F/0
7444 ;; Unchanged: FFFE0/0
7445 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7446 ;; Params: 0 5 0 0
7447 ;; Locals: 0 0 0 0
7448 ;; Temps: 0 3 0 0
7449 ;; Totals: 0 8 0 0
7450 ;;Total ram usage: 8 bytes
7451 ;; Hardware stack levels used: 1
7452 ;; Hardware stack levels required when called: 1
7453 ;; This function calls:
7454 ;; Nothing
7455 ;; This function is called by:
7456 ;; ___ftadd
7457 ;; ___ftdiv
7458 ;; ___ftmul
7459 ;; ___lbtoft
7460 ;; ___awtoft
7461 ;; ___altoft
7462 ;; This function uses a non-reentrant model
7463 ;;
7464 0E8E ___ftpack:
7465
7466 ; Regs used in ___ftpack: [wreg+status,2+status,0]
7467 0E8E 0823 movf ___ftpack@exp,w
7468 0E8F 1903 btfsc 3,2
7469 0E90 2E96 goto l5693
7470 0E91 0822 movf ___ftpack@arg+2,w
7471 0E92 0421 iorwf ___ftpack@arg+1,w
7472 0E93 0420 iorwf ___ftpack@arg,w
7473 0E94 1D03 skipz
7474 0E95 2E9E goto l5699
7475 0E96 l5693:
7476 0E96 01A0 clrf ?___ftpack
7477 0E97 01A1 clrf ?___ftpack+1
7478 0E98 01A2 clrf ?___ftpack+2
7479 0E99 0008 return
7480 0E9A l5697:
7481 0E9A 0AA3 incf ___ftpack@exp,f
7482 0E9B 36A2 lsrf ___ftpack@arg+2,f
7483 0E9C 0CA1 rrf ___ftpack@arg+1,f
7484 0E9D 0CA0 rrf ___ftpack@arg,f
7485 0E9E l5699:
7486 0E9E 30FE movlw 254
7487 0E9F 0522 andwf ___ftpack@arg+2,w
7488 0EA0 1903 btfsc 3,2
7489 0EA1 2EAC goto l5703
7490 0EA2 2E9A goto l5697
7491 0EA3 l5701:
7492 0EA3 0AA3 incf ___ftpack@exp,f
7493 0EA4 0AA0 incf ___ftpack@arg,f
7494 0EA5 1903 skipnz
7495 0EA6 0AA1 incf ___ftpack@arg+1,f
7496 0EA7 1903 skipnz
7497 0EA8 0AA2 incf ___ftpack@arg+2,f
7498 0EA9 36A2 lsrf ___ftpack@arg+2,f
7499 0EAA 0CA1 rrf ___ftpack@arg+1,f
7500 0EAB 0CA0 rrf ___ftpack@arg,f
7501 0EAC l5703:
7502 0EAC 30FF movlw 255
7503 0EAD 0522 andwf ___ftpack@arg+2,w
7504 0EAE 1903 btfsc 3,2
7505 0EAF 2EB5 goto l5707
7506 0EB0 2EA3 goto l5701
7507 0EB1 l5705:
7508 0EB1 03A3 decf ___ftpack@exp,f
7509 0EB2 35A0 lslf ___ftpack@arg,f
7510 0EB3 0DA1 rlf ___ftpack@arg+1,f
7511 0EB4 0DA2 rlf ___ftpack@arg+2,f
7512 0EB5 l5707:
7513 0EB5 1FA1 btfss ___ftpack@arg+1,7
7514 0EB6 2EB1 goto l5705
7515 0EB7 1C23 btfss ___ftpack@exp,0
7516 0EB8 13A1 bcf ___ftpack@arg+1,7
7517 0EB9 36A3 lsrf ___ftpack@exp,f
7518 0EBA 0823 movf ___ftpack@exp,w
7519 0EBB 00A7 movwf ??___ftpack+2
7520 0EBC 01A6 clrf ??___ftpack+1
7521 0EBD 01A5 clrf ??___ftpack
7522 0EBE 0825 movf ??___ftpack,w
7523 0EBF 04A0 iorwf ___ftpack@arg,f
7524 0EC0 0826 movf ??___ftpack+1,w
7525 0EC1 04A1 iorwf ___ftpack@arg+1,f
7526 0EC2 0827 movf ??___ftpack+2,w
7527 0EC3 04A2 iorwf ___ftpack@arg+2,f
7528 0EC4 0824 movf ___ftpack@sign,w
7529 0EC5 1D03 skipz
7530 0EC6 17A2 bsf ___ftpack@arg+2,7
7531 0EC7 0008 return
7532 0EC8 __end_of___ftpack:
7533 0EC8 __ptext1652:
7534 ;; =============== function ___bmul ends ============
7535
7536
7537 ;; *************** function _frexp *****************
7538 ;; Defined at:
7539 ;; line 255 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\frexp.c"
7540 ;; Parameters: Size Location Type
7541 ;; value 3 0[BANK0 ] unsigned char
7542 ;; eptr 1 3[BANK0 ] PTR int
7543 ;; -> floor@expon(2),
7544 ;; Auto vars: Size Location Type
7545 ;; None
7546 ;; Return value: Size Location Type
7547 ;; 3 0[BANK0 ] PTR int
7548 ;; Registers used:
7549 ;; wreg, fsr1l, fsr1h, status,2, status,0
7550 ;; Tracked objects:
7551 ;; On entry : 1F/0
7552 ;; On exit : 1F/0
7553 ;; Unchanged: FFFE0/0
7554 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7555 ;; Params: 0 4 0 0
7556 ;; Locals: 0 0 0 0
7557 ;; Temps: 0 2 0 0
7558 ;; Totals: 0 6 0 0
7559 ;;Total ram usage: 6 bytes
7560 ;; Hardware stack levels used: 1
7561 ;; Hardware stack levels required when called: 1
7562 ;; This function calls:
7563 ;; Nothing
7564 ;; This function is called by:
7565 ;; _floor
7566 ;; This function uses a non-reentrant model
7567 ;;
7568 0EC8 _frexp:
7569
7570 ; Regs used in _frexp: [wreg+fsr1l-status,0]
7571 0EC8 0822 movf frexp@value+2,w
7572 0EC9 0421 iorwf frexp@value+1,w
7573 0ECA 0420 iorwf frexp@value,w
7574 0ECB 1D03 skipz
7575 0ECC 2ED4 goto l5621
7576 0ECD 0823 movf frexp@eptr,w
7577 0ECE 0086 movwf 6
7578 0ECF 0187 clrf 7
7579 0ED0 0181 clrf 1
7580 0ED1 3141 addfsr 1,1
7581 0ED2 0181 clrf 1
7582 0ED3 0008 return
7583 0ED4 l5621:
7584 0ED4 0822 movf frexp@value+2,w
7585 0ED5 397F andlw 127
7586 0ED6 00A4 movwf ??_frexp
7587 0ED7 01A5 clrf ??_frexp+1
7588 0ED8 35A4 lslf ??_frexp,f
7589 0ED9 0DA5 rlf ??_frexp+1,f
7590 0EDA 0823 movf frexp@eptr,w
7591 0EDB 0086 movwf 6
7592 0EDC 0187 clrf 7
7593 0EDD 0824 movf ??_frexp,w
7594 0EDE 3FC0 movwi [0]fsr1
7595 0EDF 0825 movf ??_frexp+1,w
7596 0EE0 3FC1 movwi [1]fsr1
7597 0EE1 0D21 rlf frexp@value+1,w
7598 0EE2 0D21 rlf frexp@value+1,w
7599 0EE3 3901 andlw 1
7600 0EE4 00A4 movwf ??_frexp
7601 0EE5 01A5 clrf ??_frexp+1
7602 0EE6 0823 movf frexp@eptr,w
7603 0EE7 0086 movwf 6
7604 0EE8 0824 movf ??_frexp,w
7605 0EE9 0481 iorwf 1,f
7606 0EEA 3141 addfsr 1,1
7607 0EEB 0825 movf ??_frexp+1,w
7608 0EEC 0481 iorwf 1,f
7609 0EED 0823 movf frexp@eptr,w
7610 0EEE 0086 movwf 6
7611 0EEF 3082 movlw 130
7612 0EF0 0781 addwf 1,f
7613 0EF1 3141 addfsr 1,1
7614 0EF2 30FF movlw 255
7615 0EF3 3D81 addwfc 1,f
7616 0EF4 317F addfsr 1,-1
7617 0EF5 0822 movf frexp@value+2,w
7618 0EF6 3980 andlw -128
7619 0EF7 383F iorlw 63
7620 0EF8 00A2 movwf frexp@value+2
7621 0EF9 13A1 bcf frexp@value+1,7
7622 0EFA 0008 return
7623 0EFB __end_of_frexp:
7624 0EFB __ptext1643:
7625 ;; =============== function ___ftge ends ============
7626
7627
7628 ;; *************** function ___ftneg *****************
7629 ;; Defined at:
7630 ;; line 16 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\ftneg.c"
7631 ;; Parameters: Size Location Type
7632 ;; f1 3 0[BANK0 ] float
7633 ;; Auto vars: Size Location Type
7634 ;; None
7635 ;; Return value: Size Location Type
7636 ;; 3 0[BANK0 ] float
7637 ;; Registers used:
7638 ;; wreg
7639 ;; Tracked objects:
7640 ;; On entry : 1F/0
7641 ;; On exit : 1F/0
7642 ;; Unchanged: FFFE0/0
7643 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7644 ;; Params: 0 3 0 0
7645 ;; Locals: 0 0 0 0
7646 ;; Temps: 0 0 0 0
7647 ;; Totals: 0 3 0 0
7648 ;;Total ram usage: 3 bytes
7649 ;; Hardware stack levels used: 1
7650 ;; Hardware stack levels required when called: 1
7651 ;; This function calls:
7652 ;; Nothing
7653 ;; This function is called by:
7654 ;; _exp
7655 ;; _ldexp
7656 ;; This function uses a non-reentrant model
7657 ;;
7658 0EFB ___ftneg:
7659
7660 ; Regs used in ___ftneg: [wreg]
7661 0EFB 0822 movf ___ftneg@f1+2,w
7662 0EFC 0421 iorwf ___ftneg@f1+1,w
7663 0EFD 0420 iorwf ___ftneg@f1,w
7664 0EFE 1903 skipnz
7665 0EFF 0008 return
7666 0F00 3080 movlw 128
7667 0F01 06A2 xorwf ___ftneg@f1+2,f
7668 0F02 0008 return
7669 0F03 __end_of___ftneg:
7670 0F03 __ptext1632:
7671 ;; =============== function ___altoft ends ============
7672
7673
7674 ;; *************** function ___awtoft *****************
7675 ;; Defined at:
7676 ;; line 33 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\awtoft.c"
7677 ;; Parameters: Size Location Type
7678 ;; c 2 8[BANK0 ] int
7679 ;; Auto vars: Size Location Type
7680 ;; sign 1 11[BANK0 ] unsigned char
7681 ;; Return value: Size Location Type
7682 ;; 3 8[BANK0 ] float
7683 ;; Registers used:
7684 ;; wreg, status,2, status,0, pclath, cstack
7685 ;; Tracked objects:
7686 ;; On entry : 1F/0
7687 ;; On exit : 1F/0
7688 ;; Unchanged: FFFE0/0
7689 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7690 ;; Params: 0 3 0 0
7691 ;; Locals: 0 1 0 0
7692 ;; Temps: 0 0 0 0
7693 ;; Totals: 0 4 0 0
7694 ;;Total ram usage: 4 bytes
7695 ;; Hardware stack levels used: 1
7696 ;; Hardware stack levels required when called: 2
7697 ;; This function calls:
7698 ;; ___ftpack
7699 ;; This function is called by:
7700 ;; _exp
7701 ;; This function uses a non-reentrant model
7702 ;;
7703 0F03 ___awtoft:
7704
7705 ; Regs used in ___awtoft: [wreg+status,2+status,0+pclath+cstack]
7706 0F03 01AB clrf ___awtoft@sign
7707 0F04 1FA9 btfss ___awtoft@c+1,7
7708 0F05 2F0D goto l6235
7709 0F06 09A8 comf ___awtoft@c,f
7710 0F07 09A9 comf ___awtoft@c+1,f
7711 0F08 0AA8 incf ___awtoft@c,f
7712 0F09 1903 skipnz
7713 0F0A 0AA9 incf ___awtoft@c+1,f
7714 0F0B 01AB clrf ___awtoft@sign
7715 0F0C 0AAB incf ___awtoft@sign,f
7716 0F0D l6235:
7717 0F0D 0828 movf ___awtoft@c,w
7718 0F0E 00A0 movwf ?___ftpack
7719 0F0F 0829 movf ___awtoft@c+1,w
7720 0F10 00A1 movwf ?___ftpack+1
7721 0F11 308E movlw 142
7722 0F12 01A2 clrf ?___ftpack+2
7723 0F13 00A3 movwf ?___ftpack+3
7724 0F14 082B movf ___awtoft@sign,w
7725 0F15 00A4 movwf ?___ftpack+4
7726 0F16 268E fcall ___ftpack
7727 0F17 0820 movf ?___ftpack,w
7728 0F18 00A8 movwf ?___awtoft
7729 0F19 0821 movf ?___ftpack+1,w
7730 0F1A 00A9 movwf ?___awtoft+1
7731 0F1B 0822 movf ?___ftpack+2,w
7732 0F1C 00AA movwf ?___awtoft+2
7733 0F1D 0008 return
7734 0F1E __end_of___awtoft:
7735 0F1E __ptext1636:
7736 ;; =============== function ___ftdiv ends ============
7737
7738
7739 ;; *************** function ___ftadd *****************
7740 ;; Defined at:
7741 ;; line 87 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\ftadd.c"
7742 ;; Parameters: Size Location Type
7743 ;; f1 3 27[BANK0 ] float
7744 ;; f2 3 30[BANK0 ] float
7745 ;; Auto vars: Size Location Type
7746 ;; exp1 1 38[BANK0 ] unsigned char
7747 ;; exp2 1 37[BANK0 ] unsigned char
7748 ;; sign 1 36[BANK0 ] unsigned char
7749 ;; Return value: Size Location Type
7750 ;; 3 27[BANK0 ] float
7751 ;; Registers used:
7752 ;; wreg, status,2, status,0, pclath, cstack
7753 ;; Tracked objects:
7754 ;; On entry : 1F/0
7755 ;; On exit : 1F/0
7756 ;; Unchanged: FFFE0/0
7757 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7758 ;; Params: 0 6 0 0
7759 ;; Locals: 0 3 0 0
7760 ;; Temps: 0 3 0 0
7761 ;; Totals: 0 12 0 0
7762 ;;Total ram usage: 12 bytes
7763 ;; Hardware stack levels used: 1
7764 ;; Hardware stack levels required when called: 2
7765 ;; This function calls:
7766 ;; ___ftpack
7767 ;; This function is called by:
7768 ;; _genExponents
7769 ;; _floor
7770 ;; ___ftsub
7771 ;; _eval_poly
7772 ;; This function uses a non-reentrant model
7773 ;;
7774 0F1E ___ftadd:
7775
7776 ; Regs used in ___ftadd: [wreg+status,2+status,0+pclath+cstack]
7777 0F1E 083B movf ___ftadd@f1,w
7778 0F1F 00C1 movwf ??___ftadd
7779 0F20 083C movf ___ftadd@f1+1,w
7780 0F21 00C2 movwf ??___ftadd+1
7781 0F22 083D movf ___ftadd@f1+2,w
7782 0F23 00C3 movwf ??___ftadd+2
7783 0F24 1003 clrc
7784 0F25 0D42 rlf ??___ftadd+1,w
7785 0F26 0D43 rlf ??___ftadd+2,w
7786 0F27 00C6 movwf ___ftadd@exp1
7787 0F28 083E movf ___ftadd@f2,w
7788 0F29 00C1 movwf ??___ftadd
7789 0F2A 083F movf ___ftadd@f2+1,w
7790 0F2B 00C2 movwf ??___ftadd+1
7791 0F2C 0840 movf ___ftadd@f2+2,w
7792 0F2D 00C3 movwf ??___ftadd+2
7793 0F2E 1003 clrc
7794 0F2F 0D42 rlf ??___ftadd+1,w
7795 0F30 0D43 rlf ??___ftadd+2,w
7796 0F31 00C5 movwf ___ftadd@exp2
7797 0F32 0846 movf ___ftadd@exp1,w
7798 0F33 1903 btfsc 3,2
7799 0F34 2F41 goto l6053
7800 0F35 0845 movf ___ftadd@exp2,w
7801 0F36 0246 subwf ___ftadd@exp1,w
7802 0F37 0845 movf ___ftadd@exp2,w
7803 0F38 1803 skipnc
7804 0F39 2F49 goto L9
7805 0F3A 00C1 movwf ??___ftadd
7806 0F3B 0846 movf ___ftadd@exp1,w
7807 0F3C 02C1 subwf ??___ftadd,f
7808 0F3D 3019 movlw 25
7809 0F3E 0241 subwf ??___ftadd,w
7810 0F3F 1C03 skipc
7811 0F40 2F48 goto l6057
7812 0F41 l6053:
7813 0F41 083E movf ___ftadd@f2,w
7814 0F42 00BB movwf ?___ftadd
7815 0F43 083F movf ___ftadd@f2+1,w
7816 0F44 00BC movwf ?___ftadd+1
7817 0F45 0840 movf ___ftadd@f2+2,w
7818 0F46 00BD movwf ?___ftadd+2
7819 0F47 0008 return
7820 0F48 l6057:
7821 0F48 0845 movf ___ftadd@exp2,w
7822 0F49 L9:
7823 0F49 1903 btfsc 3,2
7824 0F4A 0008 return
7825 0F4B 0846 movf ___ftadd@exp1,w
7826 0F4C 0245 subwf ___ftadd@exp2,w
7827 0F4D 1803 skipnc
7828 0F4E 2F57 goto l6063
7829 0F4F 0846 movf ___ftadd@exp1,w
7830 0F50 00C1 movwf ??___ftadd
7831 0F51 0845 movf ___ftadd@exp2,w
7832 0F52 02C1 subwf ??___ftadd,f
7833 0F53 3019 movlw 25
7834 0F54 0241 subwf ??___ftadd,w
7835 0F55 1803 btfsc 3,0
7836 0F56 0008 return
7837 0F57 l6063:
7838 0F57 3006 movlw 6
7839 0F58 00C4 movwf ___ftadd@sign
7840 0F59 1BBD btfsc ___ftadd@f1+2,7
7841 0F5A 17C4 bsf ___ftadd@sign,7
7842 0F5B 1BC0 btfsc ___ftadd@f2+2,7
7843 0F5C 1744 bsf ___ftadd@sign,6
7844 0F5D 17BC bsf ___ftadd@f1+1,7
7845 0F5E 01BD clrf ___ftadd@f1+2
7846 0F5F 17BF bsf ___ftadd@f2+1,7
7847 0F60 01C0 clrf ___ftadd@f2+2
7848 0F61 0845 movf ___ftadd@exp2,w
7849 0F62 0246 subwf ___ftadd@exp1,w
7850 0F63 1803 skipnc
7851 0F64 2F7C goto l6085
7852 0F65 l6075:
7853 0F65 35BE lslf ___ftadd@f2,f
7854 0F66 0DBF rlf ___ftadd@f2+1,f
7855 0F67 0DC0 rlf ___ftadd@f2+2,f
7856 0F68 03C5 decf ___ftadd@exp2,f
7857 0F69 0845 movf ___ftadd@exp2,w
7858 0F6A 0646 xorwf ___ftadd@exp1,w
7859 0F6B 1903 skipnz
7860 0F6C 2F77 goto l6083
7861 0F6D 03C4 decf ___ftadd@sign,f
7862 0F6E 0844 movf ___ftadd@sign,w
7863 0F6F 3907 andlw 7
7864 0F70 1903 btfsc 3,2
7865 0F71 2F77 goto l6083
7866 0F72 2F65 goto l6075
7867 0F73 l6081:
7868 0F73 36BD lsrf ___ftadd@f1+2,f
7869 0F74 0CBC rrf ___ftadd@f1+1,f
7870 0F75 0CBB rrf ___ftadd@f1,f
7871 0F76 0AC6 incf ___ftadd@exp1,f
7872 0F77 l6083:
7873 0F77 0846 movf ___ftadd@exp1,w
7874 0F78 0645 xorwf ___ftadd@exp2,w
7875 0F79 1903 btfsc 3,2
7876 0F7A 2F96 goto l1506
7877 0F7B 2F73 goto l6081
7878 0F7C l6085:
7879 0F7C 0846 movf ___ftadd@exp1,w
7880 0F7D 0245 subwf ___ftadd@exp2,w
7881 0F7E 1803 skipnc
7882 0F7F 2F96 goto l1506
7883 0F80 l6087:
7884 0F80 35BB lslf ___ftadd@f1,f
7885 0F81 0DBC rlf ___ftadd@f1+1,f
7886 0F82 0DBD rlf ___ftadd@f1+2,f
7887 0F83 03C6 decf ___ftadd@exp1,f
7888 0F84 0845 movf ___ftadd@exp2,w
7889 0F85 0646 xorwf ___ftadd@exp1,w
7890 0F86 1903 skipnz
7891 0F87 2F92 goto l6095
7892 0F88 03C4 decf ___ftadd@sign,f
7893 0F89 0844 movf ___ftadd@sign,w
7894 0F8A 3907 andlw 7
7895 0F8B 1903 btfsc 3,2
7896 0F8C 2F92 goto l6095
7897 0F8D 2F80 goto l6087
7898 0F8E l6093:
7899 0F8E 36C0 lsrf ___ftadd@f2+2,f
7900 0F8F 0CBF rrf ___ftadd@f2+1,f
7901 0F90 0CBE rrf ___ftadd@f2,f
7902 0F91 0AC5 incf ___ftadd@exp2,f
7903 0F92 l6095:
7904 0F92 0846 movf ___ftadd@exp1,w
7905 0F93 0645 xorwf ___ftadd@exp2,w
7906 0F94 1D03 skipz
7907 0F95 2F8E goto l6093
7908 0F96 l1506:
7909 0F96 1FC4 btfss ___ftadd@sign,7
7910 0F97 2FA1 goto l6101
7911 0F98 30FF movlw 255
7912 0F99 06BB xorwf ___ftadd@f1,f
7913 0F9A 06BC xorwf ___ftadd@f1+1,f
7914 0F9B 06BD xorwf ___ftadd@f1+2,f
7915 0F9C 0ABB incf ___ftadd@f1,f
7916 0F9D 1903 skipnz
7917 0F9E 0ABC incf ___ftadd@f1+1,f
7918 0F9F 1903 skipnz
7919 0FA0 0ABD incf ___ftadd@f1+2,f
7920 0FA1 l6101:
7921 0FA1 1F44 btfss ___ftadd@sign,6
7922 0FA2 2FAC goto l6107
7923 0FA3 30FF movlw 255
7924 0FA4 06BE xorwf ___ftadd@f2,f
7925 0FA5 06BF xorwf ___ftadd@f2+1,f
7926 0FA6 06C0 xorwf ___ftadd@f2+2,f
7927 0FA7 0ABE incf ___ftadd@f2,f
7928 0FA8 1903 skipnz
7929 0FA9 0ABF incf ___ftadd@f2+1,f
7930 0FAA 1903 skipnz
7931 0FAB 0AC0 incf ___ftadd@f2+2,f
7932 0FAC l6107:
7933 0FAC 01C4 clrf ___ftadd@sign
7934 0FAD 083B movf ___ftadd@f1,w
7935 0FAE 07BE addwf ___ftadd@f2,f
7936 0FAF 083C movf ___ftadd@f1+1,w
7937 0FB0 3DBF addwfc ___ftadd@f2+1,f
7938 0FB1 083D movf ___ftadd@f1+2,w
7939 0FB2 3DC0 addwfc ___ftadd@f2+2,f
7940 0FB3 1FC0 btfss ___ftadd@f2+2,7
7941 0FB4 2FC0 goto l6119
7942 0FB5 30FF movlw 255
7943 0FB6 06BE xorwf ___ftadd@f2,f
7944 0FB7 06BF xorwf ___ftadd@f2+1,f
7945 0FB8 06C0 xorwf ___ftadd@f2+2,f
7946 0FB9 0ABE incf ___ftadd@f2,f
7947 0FBA 1903 skipnz
7948 0FBB 0ABF incf ___ftadd@f2+1,f
7949 0FBC 1903 skipnz
7950 0FBD 0AC0 incf ___ftadd@f2+2,f
7951 0FBE 01C4 clrf ___ftadd@sign
7952 0FBF 0AC4 incf ___ftadd@sign,f
7953 0FC0 l6119:
7954 0FC0 083E movf ___ftadd@f2,w
7955 0FC1 00A0 movwf ?___ftpack
7956 0FC2 083F movf ___ftadd@f2+1,w
7957 0FC3 00A1 movwf ?___ftpack+1
7958 0FC4 0840 movf ___ftadd@f2+2,w
7959 0FC5 00A2 movwf ?___ftpack+2
7960 0FC6 0846 movf ___ftadd@exp1,w
7961 0FC7 00A3 movwf ?___ftpack+3
7962 0FC8 0844 movf ___ftadd@sign,w
7963 0FC9 00A4 movwf ?___ftpack+4
7964 0FCA 268E fcall ___ftpack
7965 0FCB 0820 movf ?___ftpack,w
7966 0FCC 00BB movwf ?___ftadd
7967 0FCD 0821 movf ?___ftpack+1,w
7968 0FCE 00BC movwf ?___ftadd+1
7969 0FCF 0822 movf ?___ftpack+2,w
7970 0FD0 00BD movwf ?___ftadd+2
7971 0FD1 0008 return
7972 0FD2 __end_of___ftadd:
7973 0FD2 __ptext1631:
7974 ;; =============== function _rand ends ============
7975
7976
7977 ;; *************** function ___altoft *****************
7978 ;; Defined at:
7979 ;; line 43 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\altoft.c"
7980 ;; Parameters: Size Location Type
7981 ;; c 4 13[BANK0 ] long
7982 ;; Auto vars: Size Location Type
7983 ;; sign 1 18[BANK0 ] unsigned char
7984 ;; exp 1 17[BANK0 ] unsigned char
7985 ;; Return value: Size Location Type
7986 ;; 3 13[BANK0 ] float
7987 ;; Registers used:
7988 ;; wreg, status,2, status,0, pclath, cstack
7989 ;; Tracked objects:
7990 ;; On entry : 1F/0
7991 ;; On exit : 1F/0
7992 ;; Unchanged: FFFE0/0
7993 ;; Data sizes: COMMON BANK0 BANK1 BANK2
7994 ;; Params: 0 4 0 0
7995 ;; Locals: 0 2 0 0
7996 ;; Temps: 0 0 0 0
7997 ;; Totals: 0 6 0 0
7998 ;;Total ram usage: 6 bytes
7999 ;; Hardware stack levels used: 1
8000 ;; Hardware stack levels required when called: 2
8001 ;; This function calls:
8002 ;; ___ftpack
8003 ;; This function is called by:
8004 ;; _floor
8005 ;; This function uses a non-reentrant model
8006 ;;
8007 0FD2 ___altoft:
8008 0FD2 308E movlw 142
8009
8010 ; Regs used in ___altoft: [wreg+status,2+status,0+pclath+cstack]
8011 0FD3 01B2 clrf ___altoft@sign
8012 0FD4 00B1 movwf ___altoft@exp
8013 0FD5 1FB0 btfss ___altoft@c+3,7
8014 0FD6 2FE4 goto l6249
8015 0FD7 09AD comf ___altoft@c,f
8016 0FD8 09AE comf ___altoft@c+1,f
8017 0FD9 09AF comf ___altoft@c+2,f
8018 0FDA 09B0 comf ___altoft@c+3,f
8019 0FDB 0AAD incf ___altoft@c,f
8020 0FDC 1903 skipnz
8021 0FDD 0AAE incf ___altoft@c+1,f
8022 0FDE 1903 skipnz
8023 0FDF 0AAF incf ___altoft@c+2,f
8024 0FE0 1903 skipnz
8025 0FE1 0AB0 incf ___altoft@c+3,f
8026 0FE2 01B2 clrf ___altoft@sign
8027 0FE3 0AB2 incf ___altoft@sign,f
8028 0FE4 l6249:
8029 0FE4 30FF movlw 255
8030 0FE5 0530 andwf ___altoft@c+3,w
8031 0FE6 1903 btfsc 3,2
8032 0FE7 2FEE goto l6251
8033 0FE8 36B0 lsrf ___altoft@c+3,f
8034 0FE9 0CAF rrf ___altoft@c+2,f
8035 0FEA 0CAE rrf ___altoft@c+1,f
8036 0FEB 0CAD rrf ___altoft@c,f
8037 0FEC 0AB1 incf ___altoft@exp,f
8038 0FED 2FE4 goto l6249
8039 0FEE l6251:
8040 0FEE 082D movf ___altoft@c,w
8041 0FEF 00A0 movwf ?___ftpack
8042 0FF0 082E movf ___altoft@c+1,w
8043 0FF1 00A1 movwf ?___ftpack+1
8044 0FF2 082F movf ___altoft@c+2,w
8045 0FF3 00A2 movwf ?___ftpack+2
8046 0FF4 0831 movf ___altoft@exp,w
8047 0FF5 00A3 movwf ?___ftpack+3
8048 0FF6 0832 movf ___altoft@sign,w
8049 0FF7 00A4 movwf ?___ftpack+4
8050 0FF8 268E fcall ___ftpack
8051 0FF9 0820 movf ?___ftpack,w
8052 0FFA 00AD movwf ?___altoft
8053 0FFB 0821 movf ?___ftpack+1,w
8054 0FFC 00AE movwf ?___altoft+1
8055 0FFD 0822 movf ?___ftpack+2,w
8056 0FFE 00AF movwf ?___altoft+2
8057 0FFF 0008 return
8058 1000 __end_of___altoft:
8059
8060 psect text1621
8061 0714 __ptext1621:
8062 ;; =============== function _mOffDestr ends ============
8063
8064
8065 ;; *************** function _mOffInit *****************
8066 ;; Defined at:
8067 ;; line 261 in file "Z:\pic\irRX\main.c"
8068 ;; Parameters: Size Location Type
8069 ;; arg 1 74[BANK0 ] unsigned char
8070 ;; Auto vars: Size Location Type
8071 ;; None
8072 ;; Return value: Size Location Type
8073 ;; 1 wreg unsigned char
8074 ;; Registers used:
8075 ;; wreg, status,2, status,0, pclath, cstack
8076 ;; Tracked objects:
8077 ;; On entry : 1F/1
8078 ;; On exit : 1F/1
8079 ;; Unchanged: FFE00/0
8080 ;; Data sizes: COMMON BANK0 BANK1 BANK2
8081 ;; Params: 0 1 0 0
8082 ;; Locals: 0 0 0 0
8083 ;; Temps: 0 0 0 0
8084 ;; Totals: 0 1 0 0
8085 ;;Total ram usage: 1 bytes
8086 ;; Hardware stack levels used: 1
8087 ;; Hardware stack levels required when called: 2
8088 ;; This function calls:
8089 ;; _eeWrite
8090 ;; This function is called by:
8091 ;; _runFuncPtr
8092 ;; This function uses a non-reentrant model
8093 ;;
8094 0714 _mOffInit:
8095
8096 ;main.c: 263: if(arg != 0){
8097
8098 ; Regs used in _mOffInit: [wreg+status,2+status,0+pclath+cstack]
8099 0714 0020 movlb 0 ; select bank0
8100 0715 086A movf mOffInit@arg,w
8101 0716 1903 btfsc 3,2
8102 0717 2F1D goto l5911
8103
8104 ;main.c: 265: eeWrite(0xCF, arg);
8105 0718 086A movf mOffInit@arg,w
8106 0719 00A0 movwf ?_eeWrite
8107 071A 30CF movlw 207
8108 071B 3189 2197 fcall _eeWrite
8109 071D l5911:
8110 071D 3044 movlw 68
8111
8112 ;main.c: 266: }
8113 ;main.c: 267: gLed[0] = 0;
8114 071E 01F5 clrf _gLed
8115
8116 ;main.c: 268: gLed[1] = 0;
8117 071F 01F6 clrf _gLed+1
8118
8119 ;main.c: 269: gLed[2] = 0;
8120 0720 01F7 clrf _gLed+2
8121
8122 ;main.c: 270: gLed[3] = 0;
8123 0721 01F8 clrf _gLed+3
8124
8125 ;main.c: 271: tempData.off.configModeStatus = gConfigSteps;
8126 0722 0021 movlb 1 ; select bank1
8127 0723 00A0 movwf _tempData^(0+128)
8128 0724 303A movlw 58
8129 0725 00A1 movwf (_tempData^(0+128)+1)
8130
8131 ;main.c: 272: return 0;
8132 0726 3400 retlw 0
8133 0727 __end_of_mOffInit:
8134
8135 psect text1622
8136 0632 __ptext1622:
8137 ;; =============== function _mOffInit ends ============
8138
8139
8140 ;; *************** function _mFadeDown *****************
8141 ;; Defined at:
8142 ;; line 510 in file "Z:\pic\irRX\main.c"
8143 ;; Parameters: Size Location Type
8144 ;; arg 1 74[BANK0 ] unsigned char
8145 ;; Auto vars: Size Location Type
8146 ;; t 1 79[BANK0 ] unsigned char
8147 ;; Return value: Size Location Type
8148 ;; 1 wreg unsigned char
8149 ;; Registers used:
8150 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
8151 ;; Tracked objects:
8152 ;; On entry : 1F/1
8153 ;; On exit : 1E/0
8154 ;; Unchanged: FFE00/0
8155 ;; Data sizes: COMMON BANK0 BANK1 BANK2
8156 ;; Params: 0 1 0 0
8157 ;; Locals: 0 3 0 0
8158 ;; Temps: 0 2 0 0
8159 ;; Totals: 0 6 0 0
8160 ;;Total ram usage: 6 bytes
8161 ;; Hardware stack levels used: 1
8162 ;; Hardware stack levels required when called: 6
8163 ;; This function calls:
8164 ;; ___lwdiv
8165 ;; _genExponents
8166 ;; This function is called by:
8167 ;; _runFuncPtr
8168 ;; This function uses a non-reentrant model
8169 ;;
8170 0632 _mFadeDown:
8171
8172 ;main.c: 512: UInt8 t;
8173 ;main.c: 514: if(tempData.fade.adjBri){
8174
8175 ; Regs used in _mFadeDown: [allreg]
8176 0632 1FA4 btfss (_tempData^(0+128)+4),7
8177 0633 2E57 goto l6725
8178
8179 ;main.c: 516: t = (((UInt16)tempData.fade.bri)*4)/5;
8180 0634 3005 movlw 5
8181 0635 0020 movlb 0 ; select bank0
8182 0636 00A0 movwf ?___lwdiv
8183 0637 01A1 clrf ?___lwdiv+1
8184 0638 0021 movlb 1 ; select bank1
8185 0639 0825 movf (_tempData^(0+128)+5),w
8186 063A 0020 movlb 0 ; select bank0
8187 063B 00EB movwf ??_mFadeDown
8188 063C 01EC clrf ??_mFadeDown+1
8189 063D 35EB lslf ??_mFadeDown,f
8190 063E 0DEC rlf ??_mFadeDown+1,f
8191 063F 35EB lslf ??_mFadeDown,f
8192 0640 0DEC rlf ??_mFadeDown+1,f
8193 0641 086B movf ??_mFadeDown,w
8194 0642 00A2 movwf ?___lwdiv+2
8195 0643 086C movf ??_mFadeDown+1,w
8196 0644 00A3 movwf ?___lwdiv+3
8197 0645 266E 3186 fcall ___lwdiv
8198 0647 0820 movf ?___lwdiv,w
8199 0648 00EF movwf mFadeDown@t
8200
8201 ;main.c: 517: tempData.fade.bri = (t < 5) ? 5 : t;
8202 0649 3005 movlw 5
8203 064A 026F subwf mFadeDown@t,w
8204 064B 1C03 skipc
8205 064C 2E4F goto l6721
8206 064D 086F movf mFadeDown@t,w
8207 064E 2E50 goto L3
8208 064F l6721:
8209 064F 3005 movlw 5
8210 0650 L3:
8211 0650 00ED movwf _mFadeDown$2098
8212 0651 01EE clrf _mFadeDown$2098+1
8213 0652 0021 movlb 1 ; select bank1
8214 0653 00A5 movwf (_tempData^(0+128)+5)
8215
8216 ;main.c: 518: genExponents(tempData.fade.bri);
8217 0654 318B 2328 fcall _genExponents
8218
8219 ;main.c: 519: }
8220 0656 3400 retlw 0
8221 0657 l6725:
8222
8223 ;main.c: 520: else{
8224 ;main.c: 522: if(tempData.fade.speed < 40) tempData.fade.speed++;
8225 0657 0824 movf (_tempData^(0+128)+4),w
8226 0658 397F andlw 127
8227 0659 0020 movlb 0 ; select bank0
8228 065A 00EB movwf ??_mFadeDown
8229 065B 3028 movlw 40
8230 065C 026B subwf ??_mFadeDown,w
8231 065D 1803 skipnc
8232 065E 3400 retlw 0
8233 065F 0021 movlb 1 ; select bank1
8234 0660 0824 movf (_tempData^(0+128)+4),w
8235 0661 397F andlw 127
8236 0662 0020 movlb 0 ; select bank0
8237 0663 00EB movwf ??_mFadeDown
8238 0664 0AEB incf ??_mFadeDown,f
8239 0665 0021 movlb 1 ; select bank1
8240 0666 0824 movf (_tempData^(0+128)+4),w
8241 0667 0020 movlb 0 ; select bank0
8242 0668 066B xorwf ??_mFadeDown,w
8243 0669 3980 andlw -128
8244 066A 066B xorwf ??_mFadeDown,w
8245 066B 0021 movlb 1 ; select bank1
8246 066C 00A4 movwf (_tempData^(0+128)+4)
8247
8248 ;main.c: 524: }
8249 ;main.c: 525: return 0;
8250 066D 3400 retlw 0
8251 066E __end_of_mFadeDown:
8252 066E __ptext1649:
8253 ;; =============== function ___ftpack ends ============
8254
8255
8256 ;; *************** function ___lwdiv *****************
8257 ;; Defined at:
8258 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\lwdiv.c"
8259 ;; Parameters: Size Location Type
8260 ;; divisor 2 0[BANK0 ] unsigned int
8261 ;; dividend 2 2[BANK0 ] unsigned int
8262 ;; Auto vars: Size Location Type
8263 ;; quotient 2 5[BANK0 ] unsigned int
8264 ;; counter 1 4[BANK0 ] unsigned char
8265 ;; Return value: Size Location Type
8266 ;; 2 0[BANK0 ] unsigned int
8267 ;; Registers used:
8268 ;; wreg, status,2, status,0
8269 ;; Tracked objects:
8270 ;; On entry : 1F/0
8271 ;; On exit : 1F/0
8272 ;; Unchanged: FFFE0/0
8273 ;; Data sizes: COMMON BANK0 BANK1 BANK2
8274 ;; Params: 0 4 0 0
8275 ;; Locals: 0 3 0 0
8276 ;; Temps: 0 0 0 0
8277 ;; Totals: 0 7 0 0
8278 ;;Total ram usage: 7 bytes
8279 ;; Hardware stack levels used: 1
8280 ;; Hardware stack levels required when called: 1
8281 ;; This function calls:
8282 ;; Nothing
8283 ;; This function is called by:
8284 ;; _mFadeDown
8285 ;; This function uses a non-reentrant model
8286 ;;
8287 066E ___lwdiv:
8288
8289 ; Regs used in ___lwdiv: [wreg+status,2+status,0]
8290 066E 01A5 clrf ___lwdiv@quotient
8291 066F 01A6 clrf ___lwdiv@quotient+1
8292 0670 0821 movf ___lwdiv@divisor+1,w
8293 0671 0420 iorwf ___lwdiv@divisor,w
8294 0672 1903 skipnz
8295 0673 2E8E goto l5685
8296 0674 01A4 clrf ___lwdiv@counter
8297 0675 L15:
8298 0675 0AA4 incf ___lwdiv@counter,f
8299 0676 1BA1 btfsc ___lwdiv@divisor+1,7
8300 0677 2E7B goto l5673
8301 0678 35A0 lslf ___lwdiv@divisor,f
8302 0679 0DA1 rlf ___lwdiv@divisor+1,f
8303 067A 2E75 goto L15
8304 067B l5673:
8305 067B 35A5 lslf ___lwdiv@quotient,f
8306 067C 0DA6 rlf ___lwdiv@quotient+1,f
8307 067D 0821 movf ___lwdiv@divisor+1,w
8308 067E 0223 subwf ___lwdiv@dividend+1,w
8309 067F 1D03 skipz
8310 0680 2E83 goto u3715
8311 0681 0820 movf ___lwdiv@divisor,w
8312 0682 0222 subwf ___lwdiv@dividend,w
8313 0683 u3715:
8314 0683 1C03 skipc
8315 0684 2E8A goto l5681
8316 0685 0820 movf ___lwdiv@divisor,w
8317 0686 02A2 subwf ___lwdiv@dividend,f
8318 0687 0821 movf ___lwdiv@divisor+1,w
8319 0688 3BA3 subwfb ___lwdiv@dividend+1,f
8320 0689 1425 bsf ___lwdiv@quotient,0
8321 068A l5681:
8322 068A 36A1 lsrf ___lwdiv@divisor+1,f
8323 068B 0CA0 rrf ___lwdiv@divisor,f
8324 068C 0BA4 decfsz ___lwdiv@counter,f
8325 068D 2E7B goto l5673
8326 068E l5685:
8327 068E 0826 movf ___lwdiv@quotient+1,w
8328 068F 00A1 movwf ?___lwdiv+1
8329 0690 0825 movf ___lwdiv@quotient,w
8330 0691 00A0 movwf ?___lwdiv
8331 0692 0008 return
8332 0693 __end_of___lwdiv:
8333
8334 psect text1627
8335 0693 __ptext1627:
8336 ;; =============== function ___ftsub ends ============
8337
8338
8339 ;; *************** function _eval_poly *****************
8340 ;; Defined at:
8341 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\evalpoly.c"
8342 ;; Parameters: Size Location Type
8343 ;; x 3 49[BANK0 ] float
8344 ;; d 1 52[BANK0 ] PTR const
8345 ;; -> exp@coeff(30),
8346 ;; n 2 53[BANK0 ] int
8347 ;; Auto vars: Size Location Type
8348 ;; res 3 57[BANK0 ] int
8349 ;; Return value: Size Location Type
8350 ;; 3 49[BANK0 ] int
8351 ;; Registers used:
8352 ;; wreg, fsr0l, fsr0h, status,2, status,0, pclath, cstack
8353 ;; Tracked objects:
8354 ;; On entry : 1F/0
8355 ;; On exit : 1F/0
8356 ;; Unchanged: FFFE0/0
8357 ;; Data sizes: COMMON BANK0 BANK1 BANK2
8358 ;; Params: 0 6 0 0
8359 ;; Locals: 0 3 0 0
8360 ;; Temps: 0 2 0 0
8361 ;; Totals: 0 11 0 0
8362 ;;Total ram usage: 11 bytes
8363 ;; Hardware stack levels used: 1
8364 ;; Hardware stack levels required when called: 3
8365 ;; This function calls:
8366 ;; ___ftmul
8367 ;; ___ftadd
8368 ;; This function is called by:
8369 ;; _exp
8370 ;; This function uses a non-reentrant model
8371 ;;
8372 0693 _eval_poly:
8373
8374 ; Regs used in _eval_poly: [wreg-fsr0h+status,2+status,0+pclath+cstack]
8375 0693 0854 movf eval_poly@d,w
8376 0694 0084 movwf 4
8377 0695 3080 movlw (high __stringtab)| (0+128)
8378 0696 0085 movwf 5
8379 0697 0855 movf eval_poly@n,w
8380 0698 0755 addwf eval_poly@n,w
8381 0699 0755 addwf eval_poly@n,w
8382 069A 0784 addwf 4,f
8383 069B 1803 skipnc
8384 069C 0A85 incf 5,f
8385 069D 3F00 moviw [0]fsr0
8386 069E 00D9 movwf eval_poly@res
8387 069F 3F01 moviw [1]fsr0
8388 06A0 00DA movwf eval_poly@res+1
8389 06A1 3F02 moviw [2]fsr0
8390 06A2 L4:
8391 06A2 00DB movwf eval_poly@res+2
8392 06A3 0856 movf eval_poly@n+1,w
8393 06A4 0455 iorwf eval_poly@n,w
8394 06A5 1903 btfsc 3,2
8395 06A6 2EDC goto l6471
8396 06A7 0854 movf eval_poly@d,w
8397 06A8 0084 movwf 4
8398 06A9 3080 movlw (high __stringtab)| (0+128)
8399 06AA 0085 movwf 5
8400 06AB 30FF movlw -1
8401 06AC 07D5 addwf eval_poly@n,f
8402 06AD 1C03 skipc
8403 06AE 03D6 decf eval_poly@n+1,f
8404 06AF 0856 movf eval_poly@n+1,w
8405 06B0 00D8 movwf ??_eval_poly+1
8406 06B1 0855 movf eval_poly@n,w
8407 06B2 00D7 movwf ??_eval_poly
8408 06B3 0757 addwf ??_eval_poly,w
8409 06B4 0757 addwf ??_eval_poly,w
8410 06B5 0784 addwf 4,f
8411 06B6 1803 skipnc
8412 06B7 0A85 incf 5,f
8413 06B8 3F00 moviw [0]fsr0
8414 06B9 00BB movwf ?___ftadd
8415 06BA 3F01 moviw [1]fsr0
8416 06BB 00BC movwf ?___ftadd+1
8417 06BC 3F02 moviw [2]fsr0
8418 06BD 00BD movwf ?___ftadd+2
8419 06BE 0859 movf eval_poly@res,w
8420 06BF 00AC movwf ?___ftmul
8421 06C0 085A movf eval_poly@res+1,w
8422 06C1 00AD movwf ?___ftmul+1
8423 06C2 085B movf eval_poly@res+2,w
8424 06C3 00AE movwf ?___ftmul+2
8425 06C4 0851 movf eval_poly@x,w
8426 06C5 00AF movwf ?___ftmul+3
8427 06C6 0852 movf eval_poly@x+1,w
8428 06C7 00B0 movwf ?___ftmul+4
8429 06C8 0853 movf eval_poly@x+2,w
8430 06C9 00B1 movwf ?___ftmul+5
8431 06CA 318C 2429 3186 fcall ___ftmul
8432 06CD 082C movf ?___ftmul,w
8433 06CE 00BE movwf ?___ftadd+3
8434 06CF 082D movf ?___ftmul+1,w
8435 06D0 00BF movwf ?___ftadd+4
8436 06D1 082E movf ?___ftmul+2,w
8437 06D2 00C0 movwf ?___ftadd+5
8438 06D3 318F 271E 3186 fcall ___ftadd
8439 06D6 083B movf ?___ftadd,w
8440 06D7 00D9 movwf eval_poly@res
8441 06D8 083C movf ?___ftadd+1,w
8442 06D9 00DA movwf eval_poly@res+1
8443 06DA 083D movf ?___ftadd+2,w
8444 06DB 2EA2 goto L4
8445 06DC l6471:
8446 06DC 0859 movf eval_poly@res,w
8447 06DD 00D1 movwf ?_eval_poly
8448 06DE 085A movf eval_poly@res+1,w
8449 06DF 00D2 movwf ?_eval_poly+1
8450 06E0 085B movf eval_poly@res+2,w
8451 06E1 00D3 movwf ?_eval_poly+2
8452 06E2 0008 return
8453 06E3 __end_of_eval_poly:
8454
8455 psect text1637
8456 05C8 __ptext1637:
8457 ;; =============== function ___ftadd ends ============
8458
8459
8460 ;; *************** function _ldexp *****************
8461 ;; Defined at:
8462 ;; line 278 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\frexp.c"
8463 ;; Parameters: Size Location Type
8464 ;; value 3 39[BANK0 ] float
8465 ;; newexp 2 42[BANK0 ] int
8466 ;; Auto vars: Size Location Type
8467 ;; None
8468 ;; Return value: Size Location Type
8469 ;; 3 39[BANK0 ] int
8470 ;; Registers used:
8471 ;; wreg, status,2, status,0, btemp+1, pclath, cstack
8472 ;; Tracked objects:
8473 ;; On entry : 1F/0
8474 ;; On exit : 1F/0
8475 ;; Unchanged: FFE00/0
8476 ;; Data sizes: COMMON BANK0 BANK1 BANK2
8477 ;; Params: 0 5 0 0
8478 ;; Locals: 0 3 0 0
8479 ;; Temps: 0 2 0 0
8480 ;; Totals: 0 10 0 0
8481 ;;Total ram usage: 10 bytes
8482 ;; Hardware stack levels used: 1
8483 ;; Hardware stack levels required when called: 2
8484 ;; This function calls:
8485 ;; ___ftge
8486 ;; ___ftneg
8487 ;; This function is called by:
8488 ;; _exp
8489 ;; This function uses a non-reentrant model
8490 ;;
8491 05C8 _ldexp:
8492
8493 ; Regs used in _ldexp: [wreg+status,2+status,0+btemp+1+pclath+cstack]
8494 05C8 0849 movf ldexp@value+2,w
8495 05C9 0448 iorwf ldexp@value+1,w
8496 05CA 0447 iorwf ldexp@value,w
8497 05CB 1D03 skipz
8498 05CC 2DD1 goto l6007
8499 05CD 01C7 clrf ?_ldexp
8500 05CE 01C8 clrf ?_ldexp+1
8501 05CF 01C9 clrf ?_ldexp+2
8502 05D0 0008 return
8503 05D1 l6007:
8504 05D1 0849 movf ldexp@value+2,w
8505 05D2 397F andlw 127
8506 05D3 00CC movwf ??_ldexp
8507 05D4 01CD clrf ??_ldexp+1
8508 05D5 35CC lslf ??_ldexp,f
8509 05D6 0DCD rlf ??_ldexp+1,f
8510 05D7 084C movf ??_ldexp,w
8511 05D8 07CA addwf ldexp@newexp,f
8512 05D9 084D movf ??_ldexp+1,w
8513 05DA 3DCB addwfc ldexp@newexp+1,f
8514 05DB 0D48 rlf ldexp@value+1,w
8515 05DC 0D48 rlf ldexp@value+1,w
8516 05DD 3901 andlw 1
8517 05DE 07CA addwf ldexp@newexp,f
8518 05DF 1803 skipnc
8519 05E0 0ACB incf ldexp@newexp+1,f
8520 05E1 1FCB btfss ldexp@newexp+1,7
8521 05E2 2DE7 goto l6017
8522 05E3 01C7 clrf ?_ldexp
8523 05E4 01C8 clrf ?_ldexp+1
8524 05E5 01C9 clrf ?_ldexp+2
8525 05E6 0008 return
8526 05E7 l6017:
8527 05E7 084B movf ldexp@newexp+1,w
8528 05E8 3A80 xorlw 128
8529 05E9 00FF movwf 127
8530 05EA 3081 movlw 129
8531 05EB 027F subwf 127,w
8532 05EC 1D03 skipz
8533 05ED 2DF0 goto u4195
8534 05EE 3000 movlw 0
8535 05EF 024A subwf ldexp@newexp,w
8536 05F0 u4195:
8537 05F0 1C03 skipc
8538 05F1 2E1A goto l6039
8539 05F2 0020 movlb 0 ; select bank0
8540 05F3 0847 movf ldexp@value,w
8541 05F4 00A0 movwf ?___ftge
8542 05F5 0848 movf ldexp@value+1,w
8543 05F6 00A1 movwf ?___ftge+1
8544 05F7 0849 movf ldexp@value+2,w
8545 05F8 00A2 movwf ?___ftge+2
8546 05F9 01A3 clrf ?___ftge+3
8547 05FA 01A4 clrf ?___ftge+4
8548 05FB 01A5 clrf ?___ftge+5
8549 05FC 318D 25EF 3185 fcall ___ftge
8550 05FF 30FF movlw 255
8551 0600 1803 btfsc 3,0
8552 0601 2E15 goto L10
8553 0602 00CE movwf _ldexp$2201
8554 0603 307F movlw 127
8555 0604 00CF movwf _ldexp$2201+1
8556 0605 00D0 movwf _ldexp$2201+2
8557 0606 084E movf _ldexp$2201,w
8558 0607 00A0 movwf ?___ftneg
8559 0608 084F movf _ldexp$2201+1,w
8560 0609 00A1 movwf ?___ftneg+1
8561 060A 0850 movf _ldexp$2201+2,w
8562 060B 00A2 movwf ?___ftneg+2
8563 060C 318E 26FB fcall ___ftneg
8564 060E 0820 movf ?___ftneg,w
8565 060F 00C7 movwf ?_ldexp
8566 0610 0821 movf ?___ftneg+1,w
8567 0611 00C8 movwf ?_ldexp+1
8568 0612 0822 movf ?___ftneg+2,w
8569 0613 00C9 movwf ?_ldexp+2
8570 0614 0008 return
8571 0615 L10:
8572 0615 00C7 movwf ?_ldexp
8573 0616 307F movlw 127
8574 0617 00C8 movwf ?_ldexp+1
8575 0618 00C9 movwf ?_ldexp+2
8576 0619 0008 return
8577 061A l6039:
8578 061A 0020 movlb 0 ; select bank0
8579 061B 084B movf ldexp@newexp+1,w
8580 061C 00CD movwf ??_ldexp+1
8581 061D 084A movf ldexp@newexp,w
8582 061E 00CC movwf ??_ldexp
8583 061F 0D4D rlf ??_ldexp+1,w
8584 0620 0CCD rrf ??_ldexp+1,f
8585 0621 0CCC rrf ??_ldexp,f
8586 0622 0849 movf ldexp@value+2,w
8587 0623 064C xorwf ??_ldexp,w
8588 0624 3980 andlw -128
8589 0625 064C xorwf ??_ldexp,w
8590 0626 00C9 movwf ldexp@value+2
8591 0627 084A movf ldexp@newexp,w
8592 0628 3901 andlw 1
8593 0629 00CC movwf ??_ldexp
8594 062A 0CCC rrf ??_ldexp,f
8595 062B 0CCC rrf ??_ldexp,f
8596 062C 0848 movf ldexp@value+1,w
8597 062D 064C xorwf ??_ldexp,w
8598 062E 397F andlw -129
8599 062F 064C xorwf ??_ldexp,w
8600 0630 00C8 movwf ldexp@value+1
8601 0631 0008 return
8602 0632 __end_of_ldexp:
8603
8604 psect intentry
8605 0004 __pintentry:
8606 ;; =============== function _eeRead ends ============
8607
8608
8609 ;; *************** function _isr *****************
8610 ;; Defined at:
8611 ;; line 766 in file "Z:\pic\irRX\main.c"
8612 ;; Parameters: Size Location Type
8613 ;; None
8614 ;; Auto vars: Size Location Type
8615 ;; t 1 4[COMMON] unsigned char
8616 ;; Return value: Size Location Type
8617 ;; None void
8618 ;; Registers used:
8619 ;; wreg, fsr1l, fsr1h, status,2, status,0
8620 ;; Tracked objects:
8621 ;; On entry : 0/0
8622 ;; On exit : 1A/0
8623 ;; Unchanged: FFFE0/0
8624 ;; Data sizes: COMMON BANK0 BANK1 BANK2
8625 ;; Params: 0 0 0 0
8626 ;; Locals: 1 0 0 0
8627 ;; Temps: 4 0 0 0
8628 ;; Totals: 5 0 0 0
8629 ;;Total ram usage: 5 bytes
8630 ;; Hardware stack levels used: 1
8631 ;; This function calls:
8632 ;; Nothing
8633 ;; This function is called by:
8634 ;; Interrupt level 1
8635 ;; This function uses a non-reentrant model
8636 ;;
8637 0004 _isr:
8638
8639 ; Regs used in _isr: [wreg+fsr1l-status,0]
8640 0004 3180 pagesel $
8641
8642 ;main.c: 768: UInt8 t;
8643 ;main.c: 769: static bit v = 0;
8644 ;main.c: 771: if(TMR0IF){
8645 0005 1D0B btfss 11,2
8646 0006 284E goto i1l4133
8647
8648 ;main.c: 772: TMR0IF = 0;
8649 0007 110B bcf 11,2
8650
8651 ;main.c: 773: gPwmCtr++;
8652 0008 0021 movlb 1 ; select bank1
8653 0009 0AAC incf _gPwmCtr^(0+128),f
8654 000A 1903 skipnz
8655 000B 0AAD incf (_gPwmCtr+1)^(0+128),f
8656
8657 ;main.c: 774: gPwmCtr &=~ 0x0200;
8658 000C 10AD bcf (_gPwmCtr^(0+128)+1),1
8659
8660 ;main.c: 775: t = LATA &~ 0x17;
8661 000D 0022 movlb 2 ; select bank2
8662 000E 080C movf 12,w
8663 000F 00F4 movwf isr@t
8664 0010 30E8 movlw 232
8665 0011 05F4 andwf isr@t,f
8666
8667 ;main.c: 776: if((gPwmCtr<<1) < (UInt16)gLed[0]) t |= 0x01;
8668 0012 0875 movf _gLed,w
8669 0013 00F0 movwf ??_isr
8670 0014 01F1 clrf ??_isr+1
8671 0015 0021 movlb 1 ; select bank1
8672 0016 082D movf (_gPwmCtr+1)^(0+128),w
8673 0017 00F3 movwf ??_isr+3
8674 0018 082C movf _gPwmCtr^(0+128),w
8675 0019 00F2 movwf ??_isr+2
8676 001A 35F2 lslf ??_isr+2,f
8677 001B 0DF3 rlf ??_isr+3,f
8678 001C 0871 movf ??_isr+1,w
8679 001D 0273 subwf ??_isr+3,w
8680 001E 1D03 skipz
8681 001F 2822 goto u189_25
8682 0020 0870 movf ??_isr,w
8683 0021 0272 subwf ??_isr+2,w
8684 0022 u189_25:
8685 0022 1C03 btfss 3,0
8686 0023 1474 bsf isr@t,0
8687
8688 ;main.c: 777: if((gPwmCtr>>1) < gLed[1]) t |= 0x04;
8689 0024 0876 movf _gLed+1,w
8690 0025 00F0 movwf ??_isr
8691 0026 01F1 clrf ??_isr+1
8692 0027 082D movf (_gPwmCtr+1)^(0+128),w
8693 0028 00F3 movwf ??_isr+3
8694 0029 082C movf _gPwmCtr^(0+128),w
8695 002A 00F2 movwf ??_isr+2
8696 002B 36F3 lsrf ??_isr+3,f
8697 002C 0CF2 rrf ??_isr+2,f
8698 002D 0871 movf ??_isr+1,w
8699 002E 0273 subwf ??_isr+3,w
8700 002F 1D03 skipz
8701 0030 2833 goto u190_25
8702 0031 0870 movf ??_isr,w
8703 0032 0272 subwf ??_isr+2,w
8704 0033 u190_25:
8705 0033 1C03 btfss 3,0
8706 0034 1574 bsf isr@t,2
8707
8708 ;main.c: 778: if(gPwmCtr < gLed[2]) t |= 0x10;
8709 0035 0877 movf _gLed+2,w
8710 0036 00F0 movwf ??_isr
8711 0037 01F1 clrf ??_isr+1
8712 0038 0871 movf ??_isr+1,w
8713 0039 022D subwf (_gPwmCtr+1)^(0+128),w
8714 003A 1D03 skipz
8715 003B 283E goto u191_25
8716 003C 0870 movf ??_isr,w
8717 003D 022C subwf _gPwmCtr^(0+128),w
8718 003E u191_25:
8719 003E 1C03 btfss 3,0
8720 003F 1674 bsf isr@t,4
8721
8722 ;main.c: 779: if(gPwmCtr < gLed[3]) t |= 0x02;
8723 0040 0878 movf _gLed+3,w
8724 0041 00F0 movwf ??_isr
8725 0042 01F1 clrf ??_isr+1
8726 0043 0871 movf ??_isr+1,w
8727 0044 022D subwf (_gPwmCtr+1)^(0+128),w
8728 0045 1D03 skipz
8729 0046 2849 goto u192_25
8730 0047 0870 movf ??_isr,w
8731 0048 022C subwf _gPwmCtr^(0+128),w
8732 0049 u192_25:
8733 0049 1C03 btfss 3,0
8734 004A 14F4 bsf isr@t,1
8735
8736 ;main.c: 780: LATA = t;
8737 004B 0874 movf isr@t,w
8738 004C 0022 movlb 2 ; select bank2
8739 004D 008C movwf 12 ;volatile
8740 004E i1l4133:
8741
8742 ;main.c: 781: }
8743 ;main.c: 782: if(TMR2IF){
8744 004E 0020 movlb 0 ; select bank0
8745 004F 1C91 btfss 17,1
8746 0050 2858 goto i1l4141
8747
8748 ;main.c: 784: TMR2IF = 0;
8749 0051 1091 bcf 17,1
8750
8751 ;main.c: 786: TMR2ON = 0;
8752 0052 111C bcf 28,2
8753
8754 ;main.c: 787: gRxDone = 1;
8755 0053 14F9 bsf _gRxDone/(0+8),_gRxDone& (0+7)
8756
8757 ;main.c: 788: CCP1CON = 0;
8758 0054 0025 movlb 5 ; select bank5
8759 0055 0193 clrf 19 ;volatile
8760
8761 ;main.c: 789: CCP1IF = 0;
8762 0056 0020 movlb 0 ; select bank0
8763 0057 1111 bcf 17,2
8764 0058 i1l4141:
8765
8766 ;main.c: 790: }
8767 ;main.c: 791: if(CCP1IF){
8768 0058 1D11 btfss 17,2
8769 0059 0009 retfie
8770
8771 ;main.c: 793: CCP1IF = 0;
8772 005A 1111 bcf 17,2
8773
8774 ;main.c: 795: if(gIntFirstEdgeSeen){
8775 005B 1C79 btfss _gIntFirstEdgeSeen/(0+8),_gIntFirstEdgeSeen& (0+7)
8776 005C 2896 goto i1l1366
8777
8778 ;main.c: 797: if(CCP1CON & 1){
8779 005D 0025 movlb 5 ; select bank5
8780 005E 1C13 btfss 19,0
8781 005F 286F goto i1l4153
8782
8783 ;main.c: 799: gIntCapturedTime = CCPR1;
8784 0060 0812 movf 18,w ;volatile
8785 0061 0021 movlb 1 ; select bank1
8786 0062 00AB movwf (_gIntCapturedTime+1)^(0+128)
8787 0063 0025 movlb 5 ; select bank5
8788 0064 0811 movf 17,w ;volatile
8789 0065 0021 movlb 1 ; select bank1
8790 0066 00AA movwf _gIntCapturedTime^(0+128)
8791
8792 ;main.c: 800: TMR2 = 0;
8793 0067 0020 movlb 0 ; select bank0
8794 0068 019A clrf 26 ;volatile
8795
8796 ;main.c: 802: gRngSeed ^= gIntCapturedTime;
8797 0069 0021 movlb 1 ; select bank1
8798 006A 082A movf _gIntCapturedTime^(0+128),w
8799 006B 06E1 xorwf _gRngSeed^(0+128),f
8800 006C 082B movf (_gIntCapturedTime+1)^(0+128),w
8801 006D 06E2 xorwf (_gRngSeed+1)^(0+128),f
8802
8803 ;main.c: 803: }
8804 006E 289D goto i1l4179
8805 006F i1l4153:
8806
8807 ;main.c: 804: else{
8808 ;main.c: 806: gIntCapturedTime = CCPR1 - gIntCapturedTime;
8809 006F 0021 movlb 1 ; select bank1
8810 0070 082A movf _gIntCapturedTime^(0+128),w
8811 0071 0025 movlb 5 ; select bank5
8812 0072 0211 subwf 17,w ;volatile
8813 0073 0021 movlb 1 ; select bank1
8814 0074 00AA movwf _gIntCapturedTime^(0+128)
8815 0075 082B movf (_gIntCapturedTime+1)^(0+128),w
8816 0076 0025 movlb 5 ; select bank5
8817 0077 3B12 subwfb 18,w ;volatile
8818 0078 0021 movlb 1 ; select bank1
8819 0079 00AB movwf (_gIntCapturedTime+1)^(0+128)
8820
8821 ;main.c: 808: if(gIntCapturedTime > 1150ul) gRxData[gRxPos] |= gRxMask;
8822 007A 3004 movlw 4
8823 007B 022B subwf (_gIntCapturedTime+1)^(0+128),w
8824 007C 307F movlw 127
8825 007D 1903 skipnz
8826 007E 022A subwf _gIntCapturedTime^(0+128),w
8827 007F 1C03 skipc
8828 0080 2887 goto i1l4159
8829 0081 0831 movf _gRxPos^(0+128),w
8830 0082 3EB2 addlw _gRxData& (0+255)
8831 0083 0086 movwf 6
8832 0084 0187 clrf 7
8833 0085 0830 movf _gRxMask^(0+128),w
8834 0086 0481 iorwf 1,f
8835 0087 i1l4159:
8836
8837 ;main.c: 809: gRxMask >>= 1;
8838 0087 36B0 lsrf _gRxMask^(0+128),f
8839
8840 ;main.c: 810: if(!gRxMask){
8841 0088 08B0 movf _gRxMask^(0+128),f
8842 0089 1D03 skipz
8843 008A 289D goto i1l4179
8844
8845 ;main.c: 811: gRxMask = 0x80;
8846 008B 3080 movlw 128
8847 008C 00B0 movwf _gRxMask^(0+128)
8848
8849 ;main.c: 812: gRxPos++;
8850 008D 0AB1 incf _gRxPos^(0+128),f
8851
8852 ;main.c: 814: if(gRxPos == sizeof(gRxData)){
8853 008E 0831 movf _gRxPos^(0+128),w
8854 008F 3A20 xorlw 32
8855 0090 1D03 skipz
8856 0091 289D goto i1l4179
8857
8858 ;main.c: 815: CCP1CON = 0;
8859 0092 0025 movlb 5 ; select bank5
8860 0093 0193 clrf 19 ;volatile
8861
8862 ;main.c: 816: gRxDone = 1;
8863 0094 14F9 bsf _gRxDone/(0+8),_gRxDone& (0+7)
8864 0095 289D goto i1l4179
8865 0096 i1l1366:
8866 ;main.c: 817: }
8867 ;main.c: 818: }
8868 ;main.c: 819: }
8869 ;main.c: 820: }
8870
8871
8872 ;main.c: 821: else{
8873 ;main.c: 823: gIntFirstEdgeSeen = 1;
8874 0096 1479 bsf _gIntFirstEdgeSeen/(0+8),_gIntFirstEdgeSeen& (0+7)
8875
8876 ;main.c: 824: TMR2ON = 1;
8877 0097 151C bsf 28,2
8878
8879 ;main.c: 825: TMR2 = 0;
8880 0098 019A clrf 26 ;volatile
8881
8882 ;main.c: 826: TMR2IE = 1;
8883 0099 0021 movlb 1 ; select bank1
8884 009A 1491 bsf 17,1
8885
8886 ;main.c: 827: TMR2IF = 0;
8887 009B 0020 movlb 0 ; select bank0
8888 009C 1091 bcf 17,1
8889 009D i1l4179:
8890
8891 ;main.c: 828: }
8892 ;main.c: 829: if(!gRxDone) CCP1CON ^= 1;
8893 009D 18F9 btfsc _gRxDone/(0+8),_gRxDone& (0+7)
8894 009E 0009 retfie
8895 009F 3001 movlw 1
8896 00A0 0025 movlb 5 ; select bank5
8897 00A1 0693 xorwf 19,f ;volatile
8898 00A2 0009 retfie
8899 00A3 __end_of_isr:
8900
8901 ;; =============== function _isr ends ============
8902 0026
8903 psect functab
8904 0100 __pfunctab:
8905 0100 fptable:
8906 0100 3181 movlp high fptable
8907 0101 0782 addwf 2,f
8908 0102 fpbase:
8909 0102 2902 goto fpbase ; Call via a null pointer and you will get stuck here.
8910 0103 fp__mFadeDown:
8911 0103 3186 2E32 ljmp _mFadeDown
8912 0105 fp__mOffInit:
8913 0105 3187 2F14 ljmp _mOffInit
8914 0107 fp__mOffDestr:
8915 0107 3188 2804 ljmp _mOffDestr
8916 0109 fp__mOffDataInit:
8917 0109 3188 2806 ljmp _mOffDataInit
8918 010B fp__mOffUp:
8919 010B 3181 292F ljmp _mOffUp
8920 010D fp__mOffDown:
8921 010D 3181 292C ljmp _mOffDown
8922 010F fp__mOffO:
8923 010F 3181 2929 ljmp _mOffO
8924 0111 fp__mSolidInit:
8925 0111 318A 2A58 ljmp _mSolidInit
8926 0113 fp__mSolidDestr:
8927 0113 3189 297F ljmp _mSolidDestr
8928 0115 fp__mSolidUp:
8929 0115 3186 2EE3 ljmp _mSolidUp
8930 0117 fp__mSolidDown:
8931 0117 3184 2C2F ljmp _mSolidDown
8932 0119 fp__mSolidO:
8933 0119 3181 29B0 ljmp _mSolidO
8934 011B fp__mSolidDataInit:
8935 011B 3189 2967 ljmp _mSolidDataInit
8936 011D fp__mFadeInit:
8937 011D 3188 2842 ljmp _mFadeInit
8938 011F fp__mFadeDestr:
8939 011F 3188 2818 ljmp _mFadeDestr
8940 0121 fp__mFadeUp:
8941 0121 3181 2932 ljmp _mFadeUp
8942 0123 fp__mFadeO:
8943 0123 3182 2ACD ljmp _mFadeO
8944 0125 fp__mFadeDataInit:
8945 0125 3188 280C ljmp _mFadeDataInit
8946 0127 fp__mFadeRun:
8947 0127 3184 2C59 ljmp _mFadeRun
8948 007E btemp set 126 ;btemp
8949 007E wtemp0 set 126
HI-TECH Software PICC Macro Assembler V9.81 build 7503
Symbol Table Tue Jun 14 23:13:28 2011
___altoft@exp 0031 pc 0002 ___bmul@product 0021
___altoft@sign 0032 ___awdiv@sign 0025 ___wmul@multiplicand 0022
___ftadd@exp1 0046 ___ftadd@exp2 0045 ___ftadd@sign 0044
_GIE 005F _exp 0D0E _log 05B3
_isr 0004 wreg 0009 ___ftdiv@cntr 0031
mFadeDown@arg 006A ___ftdiv@sign 0036 l1124 09BA
l1221 0000 l1230 0000 l1119 0000
l1127 0000 l1160 0000 l1312 0000
l1401 0000 l1233 0000 l1138 0000
l1242 0000 l1250 0000 l1163 0000
l1315 0B22 l1236 0000 l1157 0000
l1325 0000 l1174 035B l1318 0000
l1166 0000 l1246 0000 l1254 0000
l1262 0000 l1191 0000 l1239 0000
l1520 03D8 l1184 0000 l1272 0154
l1352 0947 l1257 0000 l1265 0000
l1442 0000 l1506 0F96 l1194 0000
l1290 0000 l1523 0000 l1179 0000
l1275 0000 l1188 0000 l1605 0000
l1285 0000 l1293 0000 l1535 0BE9
l1448 0000 l1624 0000 l1528 0000
l1609 0000 l1289 033E l1458 0000
l1562 0E58 l1570 0000 l1582 0000
l6001 0000 l1595 0000 l1780 0000
l6101 0FA1 l1677 0000 l6007 05D1
l6111 0000 l6041 0000 l6017 05E7
l6009 0000 l6105 0000 l6201 0C67
l6027 0000 l6115 0000 l6107 0FAC
l6123 0000 l6203 0000 l6117 0000
l6109 0000 l6053 0F41 l6045 0000
l6141 0000 l6213 0C79 l6205 0000
l6301 0218 l6039 061A l6119 0FC0
l6071 0000 l6063 0F57 l6047 0000
l6151 0000 l6143 0000 l6135 0000
l6215 0000 l6207 0000 l6223 0000
l6311 0259 l6303 0237 l5521 0000
l5513 0000 l5505 09C0 l6081 0F73
l6073 0000 l6065 0000 l6057 0F48
l6049 0000 l6161 0000 l6153 0BFC
l6145 0000 l6137 0000 l6129 0BD8
l6217 0000 l6209 0C71 l6233 0000
l6241 0000 l6321 0000 l6313 025B
l5601 0000 l6401 02FF l5523 0000
l5515 0000 l5507 0000 l5531 0000
l6083 0F77 l6075 0F65 l6059 0000
l6163 0000 l6147 0000 l6139 0000
l6219 0000 l6235 0F0D l6227 0000
l6251 0FEE l6243 0000 l6331 0000
l6323 02A0 l6307 023C l5611 0000
l5603 0000 l6411 0000 l6403 0000
l5525 0000 l5517 0000 l5509 0000
l5621 0ED4 l5701 0EA3 l6093 0F8E
l6077 0000 l6085 0F7C l6157 0000
l6149 0000 l6181 0000 l6173 0C3A
l6229 0000 l6261 0000 l6333 0000
l6317 0000 l6309 0242 l5605 0000
l6421 0000 l6413 0000 l6405 0000
l5527 0000 l5519 0000 l5623 0000
l5615 0000 l5631 0000 l5711 0000
l5703 0EAC l6095 0F92 l6087 0F80
l6159 0C12 l6191 0000 l6183 0000
l6167 0000 l6239 0000 l6255 0000
l6335 0000 l6327 0000 l6319 0000
l6271 01EF l6511 0000 l6503 0D43
l6351 0000 l6343 0000 l6431 0000
l6423 0000 l6415 0000 l6407 0000
l5481 0000 l5529 0000 l5553 0000
l5625 0000 l5641 0000 l5633 0AF7
l5713 0000 l5705 0EB1 l5721 03E2
l5801 0000 l6089 0000 l6193 0000
l6185 0000 l6249 0FE4 l6257 0000
l6329 0000 l6273 0000 l6265 0000
l6513 0000 l6505 0000 l5609 070D
l6361 0000 l6353 0000 l6345 0000
l6337 0000 l6433 0000 l6425 0000
l6417 0000 l6409 0000 l6601 0000
l5483 0000 l5491 0000 l5563 0AA5
l5627 0000 l5715 0000 l5707 0EB5
l5723 0000 l5731 0E28 l5803 05A6
l5811 0000 l6099 0000 l6195 0000
l6187 0000 l6179 0C4B l6259 0000
l6291 0000 l6283 0201 l6267 0000
l6451 0CC5 l6523 0000 l6515 0000
l6507 0000 l6363 0000 l6355 0000
l6347 0000 l6427 0000 l6419 0000
l6371 0000 l6611 0534 ?_exp 005C
l5485 0000 l5493 0000 l5573 0A85
l5653 03C7 l5717 0000 l5741 0000
l5733 0E2D l5805 0000 l5901 0000
l6197 0C5F l6189 0000 l6293 0000
l6285 0000 l6277 01F8 l6461 0D07
l6453 0000 l6437 0000 l6517 0000
l6509 0D63 l6533 0000 l6621 0000
l6365 0000 l6357 0000 l6349 0000
l6701 0151 l6429 0000 l6381 0000
l6373 0000 l6613 0000 l6605 0531
?_log 0070 l5479 0000 l5495 0000
l5575 0AB3 l5567 0000 l5559 0A9E
l5591 0000 l5639 0000 l5655 0000
l5647 0000 l5663 0000 l5751 0000
l5743 0000 l5735 0000 l5807 05AE
l5823 0420 l5831 0000 l5903 0371
l6295 0000 l6287 0000 l6279 0000
l6447 0CC1 l6439 0000 l6471 06DC
l6543 0000 l6535 0000 l6631 0000
l5911 071D l6367 0000 l6359 0000
l6703 0000 l6391 0000 l6383 0000
l6615 0000 l5497 0000 l5489 0000
l5569 0000 l5585 0000 l5593 0000
l5657 0000 l5649 03C1 l5681 068A
l5673 067B l5665 0000 l5761 0000
l5753 0E54 l5737 0000 l5729 0000
l5825 0000 l5905 0348 l6289 0000
l6465 0000 l6529 0DDC l6481 0000
l6545 0000 l6537 0000 l6641 0000
l6633 0000 l6721 064F l6713 0000
l5921 0000 l5913 0000 l6705 015A
l6393 0000 l6385 0000 l6377 0000
l6553 0000 l6801 08F6 l5499 0000
l5587 0000 l5683 0000 l5675 0000
l5691 0000 l5763 0E6F l5739 0000
l5819 0408 l5827 0426 l5851 0000
l5843 0DFE l6299 0000 l6475 0000
l6547 01A6 l6643 0000 l6635 0000
l6627 0B2B l6723 0000 l5915 0000
l5907 0000 l5931 0000 l6395 0000
l6387 0000 l6379 0000 l6571 048E
l6563 0473 l6803 0000 ?_isr 0070
l5597 0000 l5685 068E l5693 0E96
l5749 0E4D l5781 0586 l5773 0000
l5861 0000 l6477 0000 l6549 01AC
l6645 0000 l6637 0000 l6629 0000
l6717 0000 l6725 0657 l5917 0000
l5909 0000 l5925 0000 l6653 0000
l6661 0000 l6397 0000 l6389 0000
l6573 0490 l6557 0000 l6733 0000
l6813 0919 l6805 0903 l5679 0000
l5759 0E61 l5791 0593 l5783 0000
l5775 057D l5767 0000 l5847 0E0D
l5839 0000 l5871 0000 l6487 0D19
l6639 0000 l5919 0000 l6647 0000
l6655 0000 l5935 0000 l5943 0000
l5951 0000 l6671 0000 l6399 0000
l6735 0000 l6823 0937 l6751 087F
l5697 0E9A l5689 0000 l5793 0000
l5769 0000 l5849 0000 l5881 03B6
l6497 0D2F l5929 0000 l6649 0000
l5937 0000 l5945 0000 l5953 0000
l6681 0000 l6673 0000 l6665 0000
l6593 0000 l6569 0488 l6825 0000
l6817 0924 l6809 090E l6761 0000
l6745 0000 l5699 0E9E l5779 0000
l5875 0000 l5859 0000 l5891 0000
l6659 0000 l5939 0000 l5963 0000
l6683 0000 l6667 0000 l5971 0000
l6691 0000 l6595 0511 l6587 04D2
l6579 0494 l6739 095B l6827 0944
l6771 0000 l6747 0000 l5797 0000
l5877 03B0 l5869 0393 l5885 0000
l5981 0000 l5957 0450 l5949 0000
l5965 0000 l6669 0000 l6597 0000
l6757 0881 l6765 0899 l5799 05A2
l5879 0000 l5991 0000 l5983 0000
l5959 0000 l6687 0000 l6679 085E
l6695 0000 l5975 0000 l6791 0000
l6783 0000 l6775 0000 l6767 0000
l6759 0000 l5889 0000 l5897 0358
l5993 0000 l5985 0000 l5969 0000
l6697 0000 l5977 0000 l6793 0000
l6777 0000 l6769 08A2 l5899 0000
l5995 0000 l5987 0000 l6795 0000
l6787 0000 l6779 08C6 l5997 0000
l5989 0000 l6797 0000 l6789 0000
_LATA 010C mFadeInit@arg 006A u4115 037D
u4075 03A5 u5035 08AB u3615 0A94
u5055 08C2 u4425 0C09 u3715 0683
u4195 05F0 u3830 0000 u5167 0B1B
u4535 0569 u3835 0E34 u3945 059B
u4745 0DD6 u4855 04C9 u3995 0416
u4795 0467 u4885 04FE _PLLR 04D6
_TMR1 0016 _TMR2 001A _gLed 0075
_main 0871 ___ftpack@arg 0020 _init 0B01
_rand 054A ___ftpack@exp 0023 fsr0h 0005
fsr1h 0007 fsr0l 0004 indf0 0000
indf1 0001 fsr1l 0006 btemp 007E
log@a 0023 exp@x 005C isr@t 0074
_gIntCapturedTime 00AA start 00A3 __size_of_mOffDataInit 0006
___bmul@multiplier 0022 ___ftmul@cntr 0039 ___ftmul@sign 003A
mFadeDestr@arg 006A ___fttol@exp1 002C ??_exp 005F
___fttol@lval 0028 ??_log 0023 ??_isr 0070
??_mFadeDataInit 006B __end_of_mFadeUp 0171 ?_main 0070
?_init 0070 ?_rand 0070 __end_of___awdiv 05B3
__end_of___ftadd 0FD2 _CCPR1 0291 __end_of___ftdiv 0C29
__end_of___ftneg 0F03 __end_of___lldiv 03BF __end_of___ftmul 0C93
___awdiv@divisor 0020 _T1CON 0018 __end_of___llmod 042F
__end_of___ftsub 0E8E __end_of___fttol 0E78 _T2CON 001C
__end_of___lwdiv 0693 ___awdiv@counter 0024 _PORTA 000C
_TRISA 008C __end_of_eeWrite 09BE __end_of_mSolidO 01E9
___lmul@multiplicand 0024 _mOffO 0129 ___awtoft@sign 002B
_getU8 0AEF __end_of_genExponents 0BC7 _floor 0CA2
_ldexp 05C8 _frexp 0EC8 ___ftpack@sign 0024
fpbase 0102 main@t 00DC __pbitbssCOMMON 03C8
_mOffDataInit 0806 main@whichBtn 00DF __size_of_mOffCheckConfigMode 003F
__end_of_rxStart 09DE status 0003 wtemp0 007E
runFuncPtr@curMode 00D4 runFuncPtr@funcIdx 00D6 ldexp@newexp 004A
runFuncPtr@arg 00D5 __end_of_main 0948 __end_of_init 0B28
__end_of_rand 0573 __size_of_mSolidDestr 0018 ??_main 00DA
___fttol@sign1 0027 ??_init 0020 ??_rand 0026
__size_of_mSolidDataInit 0018 fp__mSolidDataInit 011B ?_getU8 0070
__end_of_mFadeRun 054A _CCP1IE 048A ?_floor 0047
_CCP1IF 008A ?_ldexp 0047 ?_frexp 0020
__end_of___altoft 1000 ___llmod@dividend 0024 _EEADRL 0191
_EEDATL 0193 _EECON1 0195 _EECON2 0196
___awdiv@dividend 0022 _APFCON 011D mSolidDataInit@arg 006A
__end_of___awtoft 0F1E _ANSELA 018C __end_of___ftpack 0EC8
__end_of___lbtoft 0CA2 _HFIOFL 04D3 i1l1366 0096
i1l4111 0000 i1l4113 0000 i1l4115 0000
i1l4107 0000 i1l4141 0058 i1l4133 004E
i1l4151 0000 i1l4161 0000 i1l4153 006F
i1l4137 0000 i1l4171 0000 i1l4155 0000
i1l4139 0000 i1l4173 0000 i1l4165 0000
i1l4149 0000 i1l4175 0000 i1l4167 0000
i1l4159 0087 i1l4177 0000 i1l4179 009D
_INTCON 000B __end_of_mOffDown 012F __end_of_mOffInit 0727
u190_25 0033 u191_25 003E u192_25 0049
u189_25 0022 _OSCCON 0099 _TMR0IF 005A
_TMR2IE 0489 _TMR2IF 0089 _TMR2ON 00E2
__end_of_delay_ms 0380 __end_of_mSolidUp 0714 _mFadeO 02CD
___bmul 0AF4 ___ftge 0DEF ___lmul 03D4
_eeRead 0A6B ??_mFadeUp 006B _gRxPos 00B1
_mOffUp 012F ___wmul 03BF ??___awdiv 0024
_getU16 0ABE _getU32 09DE ??___ftadd 0041
??___ftdiv 002E ??___ftneg 0023 ??___lldiv 0028
??___ftmul 0032 ??___llmod 0028 ??___ftsub 004D
??___fttol 0024 ??___lwdiv 0024 _gBattCentiVolts 00A8
??_eeWrite 0021 getU8@t 0020 ___awdiv@quotient 0026
??_mSolidO 006B __end_of_rxDecode 0ABE main@pt 00DD
clrloop 0728 floor@i 004A floor@x 0047
exp@exp 0062 ___ftmul@f3_as_product 0036 fptable 0100
fptotal 0026 ??_rxStart 0020 _mFadeDestr 0818
__size_of_mFadeDown 003C __size_of_mFadeInit 002F ___altoft@c 002D
___ftadd@f1 003B ___ftadd@f2 003E ___ftge@ff1 0020
___ftge@ff2 0023 eval_poly@res 0059 ___ftdiv@f1 002B
___ftdiv@f2 0028 ___ftdiv@f3 0032 __size_of_mOffDestr 0002
mFadeDown@t 006F mFadeInit@i 006C ___ftneg@f1 0020
___awtoft@c 0028 mFadeUp@arg 006A ___lbtoft@c 002B
___bmul@multiplicand 0020 ___ftmul@f1 002C ___ftmul@f2 002F
___ftsub@f1 004A ___ftsub@f2 0047 ___fttol@f1 0020
__pcstackCOMMON 0070 __pidataBANK1 0000 __end_of_mOffO 012C
__end_of_getU8 0AF4 __end_of_floor 0D0E __end_of_ldexp 0632
__end_of_frexp 0EFB __size_of_genExponents 009F mSolidDestr@arg 006A
??_mOffO 006B ??_getU8 0020 ??_floor 004A
??_ldexp 004C ??_frexp 0024 __pbssBANK1 00A0
__pbssBANK2 0120 __size_of_eval_poly 0050 cfgModeShowVal@digit 0039
eeRead@addr 0020 __pmaintext 0871 ?___bmul 0020
_mSolidDown 042F _mSolidInit 0A58 ?___ftge 0020
?___lmul 0020 ?_eeRead 0070 ?___wmul 0020
__end_of_mFadeDown 066E ?_getU32 0020 ?_getU16 0020
__end_of_mFadeInit 0871 _genExponents 0B28 __pintentry 0004
?_mFadeRun 006A _CCP1CON 0293 ?___altoft 002D
__ptext1610 0967 __ptext1611 01B0 __ptext1603 0948
__ptext1620 0804 __ptext1612 042F __ptext1604 0459
__ptext1621 0714 __ptext1613 06E3 __ptext1605 080C
__ptext1630 054A __ptext1622 0632 __ptext1614 097F
__ptext1606 02CD __ptext1631 0FD2 __ptext1623 0B28
__ptext1615 0A58 __ptext1607 0132 __ptext1640 05B3
__ptext1632 0F03 __ptext1624 0171 __ptext1616 0129
__ptext1608 0818 __ptext1641 0380 __ptext1633 0C93
__ptext1625 0D0E __ptext1617 012C __ptext1609 0842
__ptext1650 03BF __ptext1642 0DEF __ptext1634 0C29
__ptext1626 0E78 __ptext1618 012F __ptext1651 0AF4
__ptext1643 0EFB __ptext1635 0BC7 __ptext1627 0693
__ptext1619 0806 __ptext1652 0EC8 __ptext1644 03F9
__ptext1636 0F1E __ptext1628 0CA2 __ptext1653 0AEF
__ptext1645 0573 __ptext1637 05C8 __ptext1629 01E9
__ptext1654 0ABE __ptext1646 0E1B __ptext1638 0B01
__ptext1655 09DE __ptext1647 03D4 __ptext1639 0348
__ptext1656 0A76 __ptext1648 0E8E __ptext1657 09BE
__ptext1649 066E __ptext1658 0997 __ptext1659 0A6B
_mOffCheckConfigMode 0171 ___lmul@product 0028 ?___awtoft 0028
?___ftpack 0020 ?___lbtoft 0028 __end_of_mOffDestr 0806
?_delay_ms 0026 _mSolidDataInit 0967 _ldexp$2201 004E
mFadeDataInit@arg 006A __stringtab 00A6 ?_mOffCheckConfigMode 0070
mOffDestr@arg 006A ?_rxDecode 0070 eeWrite@gie 03CA
__size_of_mFadeO 007B _mFadeUp 0132 __size_of___bmul 000D
__size_of___ftge 002C ___awdiv 0573 __size_of_eeRead 000B
__size_of___lmul 0025 ___ftadd 0F1E _gRxData 00B2
___ftdiv 0BC7 __size_of_mOffUp 0003 ___ftneg 0EFB
___lldiv 0380 _gRxDone 03C9 __size_of___wmul 0015
___ftmul 0C29 ___llmod 03F9 ___ftsub 0E78
___fttol 0E1B _gRxMask 00B0 __size_of_getU32 007A
__size_of_getU16 0031 ___lwdiv 066E _gPwmCtr 00AC
??_mFadeRun 006B ??___altoft 0031 __size_of_cfgModeShowVal 00E4
_eeWrite 0997 ??___awtoft 002B ??___ftpack 0025
??___lbtoft 002B __end_of_eval_poly 06E3 _mSolidO 01B0
__end_of_mFadeDataInit 0818 ??_mOffDown 006B ??_mOffInit 006B
getU32@t 002C getU16@t 002A getU32@v 002D
getU16@v 002B __end_of_mSolidDataInit 097F __size_of_exp 00E1
__size_of_log 0015 __size_of_isr 009F ??_delay_ms 0028
??_mSolidUp 006B _rxStart 09BE ??_mOffCheckConfigMode 003E
delay_ms@ms 0026 end_of_initialization 0840 log@addr 00AE
exp@sign 0064 rand@ret 0028 mSolidO@arg 006A
??_rxDecode 0020 ___lldiv@divisor 0020 ___lldiv@counter 002C
??_mSolidDestr 006B __size_of_mFadeDestr 000E fp__mFadeUp 0121
_rxDecode$2016 0022 _runFuncPtr 0948 fp__mSolidO 0119
_cfgModeShowVal$2045 0032 _cfgModeShowVal$2046 0034 _cfgModeShowVal$2047 0036
_gIntFirstEdgeSeen 03C8 cfgModeShowVal@t 003A cfgModeShowVal@v 002E
___ftdiv@exp 0035 genExponents@bri 0065 mFadeRun@arg 006A
runFuncPtr@f 00D9 ___ftmul@exp 0035 __end_of_mFadeO 0348
__end_of___bmul 0B01 __end_of___ftge 0E1B __end_of_eeRead 0A76
__end_of___lmul 03F9 __end_of_mOffUp 0132 __end_of___wmul 03D4
__end_of_getU32 0A58 __end_of_getU16 0AEF __end_of_mSolidDestr 0997
floor@expon 004D start_initialization 0826 fp__mOffDataInit 0109
eval_poly@d 0054 eval_poly@n 0055 eval_poly@x 0051
ldexp@value 0047 __end_of_exp 0DEF __end_of_log 05C8
__end_of_isr 00A3 __size_of_mSolidDown 002A __size_of_mSolidInit 0013
frexp@value 0020 ___llmod@divisor 0020 ___llmod@counter 0028
??_mFadeO 006B ??___bmul 0021 ??___ftge 0026
??___lmul 0028 ??_eeRead 0020 ??_mOffUp 006B
??___wmul 0024 ??_getU32 0024 ??_getU16 0022
_cfgModeShowVal 01E9 __pdataBANK1 00E1 _mFadeDown 0632
_mFadeInit 0842 __size_of_mFadeRun 00F1 __size_of___altoft 002E
?_runFuncPtr 00D4 __size_of___awtoft 001B __size_of___ftpack 003A
__size_of___lbtoft 000F mFadeO@arg 006A __pbssCOMMON 0075
__size_of_mOffDown 0003 __size_of_mOffInit 0013 genExponents@i 0066
genExponents@t 0067 __pcstackBANK0 0020 __pcstackBANK1 00D2
mFadeRun@i 00D3 mFadeRun@t 00D2 ??_mFadeDestr 006B
_mOffDestr 0804 __size_of_delay_ms 0038 __size_of_mSolidUp 0031
mSolidDown@arg 006A mSolidInit@arg 006A ___lwdiv@dividend 0022
__end_of_cfgModeShowVal 02CD __pfunctab 0100 __size_of_rxDecode 0048
_mSolidDestr 097F ?___awdiv 0020 ?___ftadd 003B
?___ftdiv 0028 ?___ftneg 0020 ?___lldiv 0020
?___ftmul 002C ?___llmod 0020 ?___ftsub 0047
?___fttol 0020 ?___lwdiv 0020 mOffUp@arg 006A
__end_of_mFadeDestr 0826 ?_eeWrite 0020 __pstrings 00A6
_eval_poly 0693 mOffDown@arg 006A mOffInit@arg 006A
?_rxStart 0070 __size_of_mOffO 0003 _runFuncPtr$2127 00D7
___lwdiv@quotient 0025 __size_of_getU8 0005 ??_mOffDataInit 006B
__size_of_floor 006C __size_of_ldexp 006A __size_of_frexp 0033
_exponents 0120 ___wmul@product 0024 delay_ms@d 002C
delay_ms@t 002A mSolidO@s0 006B mSolidO@s1 006C
mSolidO@s2 006D mSolidO@s3 006E mSolidUp@t 00D2
__size_of_runFuncPtr 001F ??_mSolidDown 006B ??_mSolidInit 006B
?_cfgModeShowVal 002E fp__mFadeO 0123 fp__mOffUp 010B
??_mSolidDataInit 006B ___wmul@multiplier 0020 __end_of_mOffCheckConfigMode 01B0
?_eval_poly 0051 idloc_word 8000 ___lmul@multiplier 0020
__end_of_mSolidDown 0459 __end_of_mSolidInit 0A6B eeWrite@addr 0022
__size_of_mFadeDataInit 000C eeWrite@data 0020 fp__mFadeDataInit 0125
frexp@eptr 0023 _EECON1bits 0195 _mFadeDown$2098 006D
__size_of_mFadeUp 003F _mFadeRun 0459 __size_of___awdiv 0040
_gModeFns 00C5 __size_of___ftadd 00B4 __size_of___ftdiv 0062
mFadeO@s0 006B mFadeO@s1 006C mFadeO@s2 006D
mFadeO@s3 006E __size_of___ftneg 0008 __size_of___lldiv 003F
___altoft 0FD2 __size_of___ftmul 006A __size_of___llmod 0036
__size_of___ftsub 0016 __size_of___fttol 005D __size_of___lwdiv 0025
mFadeUp@t 006E ___awtoft 0F03 ___ftpack 0E8E
___lbtoft 0C93 _gRngSeed 00E1 __size_of_eeWrite 0027
??_mFadeDown 006B ??_mFadeInit 006B _mOffDown 012C
_mOffInit 0714 __size_of_mSolidO 0039 _exp$2163 005F
rxDecode@i 0025 rxDecode@j 0026 rxDecode@k 0027
rxDecode@t 0024 _delay_ms 0348 mOffO@arg 006A
mOffCheckConfigMode@btn 003F ___lwdiv@divisor 0020 _mSolidUp 06E3
___lwdiv@counter 0024 ??_mOffDestr 006B __size_of_rxStart 0020
fp__mFadeDestr 011F __size_of_main 00D7 __size_of_init 0027
__size_of_rand 0029 _rxDecode 0A76 clear_ram 0727
_tempData 00A0 fp__mOffO 010F ?_genExponents 0070
mOffDataInit@arg 006A __end_of_mOffDataInit 080C main@mode 00E0
exp@coeff 00A7 _mFadeDataInit 080C ??_runFuncPtr 0070
_INTCONbits 000B ??_eval_poly 0057 fp__mSolidDestr 0113
intlevel1 0100 mSolidDown@t 006D mSolidUp@arg 006A
___lldiv@dividend 0024 fp__mFadeDown 0103 fp__mFadeInit 011D
__end_of_runFuncPtr 0967 ??_genExponents 0065 _mFadeUp$2094 006C
rxStart@i 0020 fp__mOffDestr 0107 cfgModeShowVal@colorMarker 0038
fp__mSolidDown 0117 fp__mSolidInit 0111 _OPTION_REG 0095
mOffCheckConfigMode@t 0040 ___lldiv@quotient 0028 fp__mFadeRun 0127
fp__mOffDown 010D fp__mOffInit 0105 fp__mSolidUp 0115
??_cfgModeShowVal 0032
Código: Seleccionar todo
HI-TECH Software PIC PRO Macro Assembler V9.81 build 7503
Tue Jun 14 21:20:09 2011
HI-TECH Software Omniscient Code Generator (PRO mode) build 7503
1 processor 12F1840
2 opt pw 120
3 opt pm
4 psect config,global,class=CONFIG,delta=2
5 psect idloc,global,class=IDLOC,delta=2
6 psect text192,local,class=CODE,delta=2
7 psect cinit,global,class=CODE,delta=2
8 psect bssBANK0,global,class=BANK0,space=1,delta=1
9 psect cstackCOMMON,global,class=COMMON,space=1,delta=1
10 psect cstackBANK0,global,class=BANK0,space=1,delta=1
11 psect text200,local,class=CODE,delta=2
12 psect pa_nodes,global,class=CODE,delta=2
13 dabs 1,0x7E,2
14 000A ;#
15
16 psect config
17 8007 C9A4 dw 51620 ;#
18 8008 DEFF dw 57087 ;#
19
20 psect idloc
21 8000 idloc_word:
22
23 ;#
24 8000 0000 dw 0 ;#
25 8001 0000 dw 0 ;#
26 8002 0000 dw 0 ;#
27 8003 0000 dw 0 ;#
28
29 psect text192
30 0000 __ptext192:
31 000B _INTCON set 11
32 000B _INTCONbits set 11
33 000C _PORTA set 12
34 001B _PR2 set 27
35 001C _T2CON set 28
36 001A _TMR2 set 26
37 00E2 _TMR2ON set 226
38 009B _ADRES set 155
39 009D _ADCON0 set 157
40 009E _ADCON1 set 158
41 0095 _OPTION_REG set 149
42 0099 _OSCCON set 153
43 008C _TRISA set 140
44 04E9 _GO set 1257
45 04D3 _HFIOFL set 1235
46 011D _APFCON set 285
47 0117 _FVRCON set 279
48 08BE _FVRRDY set 2238
49 018C _ANSELA set 396
50 0191 _EEADRL set 401
51 0195 _EECON1 set 405
52 0195 _EECON1bits set 405
53 0196 _EECON2 set 406
54 0193 _EEDATL set 403
55 0197 _VREGCON set 407
56 020C _WPUA set 524
57 0293 _CCP1CON set 659
58 0291 _CCPR1L set 657
59
60 psect cinit
61 0626 start_initialization:
62
63 ; Clear objects allocated to BANK0
64 0626 01C6 clrf __pbssBANK0& (0+127)
65 0627 01C7 clrf (__pbssBANK0+1)& (0+127)
66 0628 01C8 clrf (__pbssBANK0+2)& (0+127)
67 0629 01C9 clrf (__pbssBANK0+3)& (0+127)
68 062A end_of_initialization:
69 ;End of C runtime variable initialization code
70
71 062A 0020 movlb 0
72 062B 2E2C ljmp _main ;jump to C main() function
73 062C __pmaintext:
74 ;;Data sizes: Strings 0, constant 0, data 0, bss 4, persistent 0 stack 0
75 ;;Auto spaces: Size Autos Used
76 ;; COMMON 14 14 14
77 ;; BANK0 80 38 42
78 ;; BANK1 80 0 0
79 ;; BANK2 80 0 0
80 ;;
81 ;; Pointer list with targets:
82 ;; ?_measureVoltage unsigned short size(1) Largest target is 4
83 ;; -> measureVoltage@t(BANK0[4]),
84 ;;
85 ;; ?___lldiv unsigned long size(1) Largest target is 0
86 ;;
87 ;;
88 ;; Critical Paths under _main in COMMON
89 ;;
90 ;; _main->_sendButton
91 ;; _sendByte->_led
92 ;; _measureVoltage->___lldiv
93 ;;
94 ;; Critical Paths under _main in BANK0
95 ;;
96 ;; _main->_sendButton
97 ;; _sendButton->_measureVoltage
98 ;;
99 ;; Critical Paths under _main in BANK1
100 ;;
101 ;; None.
102 ;;
103 ;; Critical Paths under _main in BANK2
104 ;;
105 ;; None.
106 ;;
107 ;;Main: autosize = 0, tempsize = 3, incstack = 0, save=0
108 ;;
109 ;;
110 ;;Call Graph Tables:
111 ;;
112 ;; ---------------------------------------------------------------------------------
113 ;; (Depth) Function Calls Base Space Used Autos Params Refs
114 ;; ---------------------------------------------------------------------------------
115 ;; (0) _main 6 6 0 1674
116 ;; 32 BANK0 6 6 0
117 ;; _sendButton
118 ;; ---------------------------------------------------------------------------------
119 ;; (1) _sendButton 22 22 0 1311
120 ;; 13 COMMON 1 1 0
121 ;; 11 BANK0 21 21 0
122 ;; _eeRead
123 ;; _eeWrite
124 ;; _measureVoltage
125 ;; _sendByte
126 ;; ---------------------------------------------------------------------------------
127 ;; (2) _sendByte 3 3 0 46
128 ;; 1 COMMON 3 3 0
129 ;; _led
130 ;; ---------------------------------------------------------------------------------
131 ;; (2) _measureVoltage 11 9 2 277
132 ;; 0 BANK0 11 9 2
133 ;; ___lldiv
134 ;; ---------------------------------------------------------------------------------
135 ;; (3) _led 1 1 0 0
136 ;; 0 COMMON 1 1 0
137 ;; ---------------------------------------------------------------------------------
138 ;; (3) ___lldiv 13 5 8 162
139 ;; 0 COMMON 13 5 8
140 ;; ---------------------------------------------------------------------------------
141 ;; (2) _eeWrite 2 1 1 44
142 ;; 0 COMMON 2 1 1
143 ;; ---------------------------------------------------------------------------------
144 ;; (2) _eeRead 1 1 0 22
145 ;; 0 COMMON 1 1 0
146 ;; ---------------------------------------------------------------------------------
147 ;; Estimated maximum stack depth 3
148 ;; ---------------------------------------------------------------------------------
149 ;; Call Graph Graphs:
150 ;; _main (ROOT)
151 ;; _sendButton
152 ;; _eeRead
153 ;; _eeWrite
154 ;; _measureVoltage
155 ;; ___lldiv
156 ;; _sendByte
157 ;; _led
158 ;;
159 ;; Address spaces:
160 ;;Name Size Autos Total Cost Usage
161 ;;BIGRAM F0 0 0 0 0.0%
162 ;;EEDATA 100 0 0 0 0.0%
163 ;;NULL 0 0 0 0 0.0%
164 ;;CODE 0 0 0 0 0.0%
165 ;;BITCOMMON E 0 0 1 0.0%
166 ;;BITSFR0 0 0 0 1 0.0%
167 ;;SFR0 0 0 0 1 0.0%
168 ;;COMMON E E E 2 100.0%
169 ;;BITSFR1 0 0 0 2 0.0%
170 ;;SFR1 0 0 0 2 0.0%
171 ;;BITSFR2 0 0 0 3 0.0%
172 ;;SFR2 0 0 0 3 0.0%
173 ;;STACK 0 0 3 3 0.0%
174 ;;BITSFR3 0 0 0 4 0.0%
175 ;;SFR3 0 0 0 4 0.0%
176 ;;ABS 0 0 38 4 0.0%
177 ;;BITBANK0 50 0 0 5 0.0%
178 ;;BITSFR4 0 0 0 5 0.0%
179 ;;SFR4 0 0 0 5 0.0%
180 ;;BANK0 50 26 2A 6 52.5%
181 ;;BITSFR5 0 0 0 6 0.0%
182 ;;SFR5 0 0 0 6 0.0%
183 ;;BITBANK1 50 0 0 7 0.0%
184 ;;BITSFR6 0 0 0 7 0.0%
185 ;;SFR6 0 0 0 7 0.0%
186 ;;BANK1 50 0 0 8 0.0%
187 ;;BITSFR7 0 0 0 8 0.0%
188 ;;SFR7 0 0 0 8 0.0%
189 ;;BITBANK2 50 0 0 9 0.0%
190 ;;BITSFR8 0 0 0 9 0.0%
191 ;;SFR8 0 0 0 9 0.0%
192 ;;BANK2 50 0 0 10 0.0%
193 ;;BITSFR9 0 0 0 10 0.0%
194 ;;SFR9 0 0 0 10 0.0%
195 ;;BITSFR10 0 0 0 11 0.0%
196 ;;SFR10 0 0 0 11 0.0%
197 ;;DATA 0 0 3B 11 0.0%
198 ;;BITSFR11 0 0 0 12 0.0%
199 ;;SFR11 0 0 0 12 0.0%
200 ;;BITSFR12 0 0 0 13 0.0%
201 ;;SFR12 0 0 0 13 0.0%
202 ;;BITSFR13 0 0 0 14 0.0%
203 ;;SFR13 0 0 0 14 0.0%
204 ;;BITSFR14 0 0 0 15 0.0%
205 ;;SFR14 0 0 0 15 0.0%
206 ;;BITSFR15 0 0 0 16 0.0%
207 ;;SFR15 0 0 0 16 0.0%
208 ;;BITSFR16 0 0 0 17 0.0%
209 ;;SFR16 0 0 0 17 0.0%
210 ;;BITSFR17 0 0 0 18 0.0%
211 ;;SFR17 0 0 0 18 0.0%
212 ;;BITSFR18 0 0 0 19 0.0%
213 ;;SFR18 0 0 0 19 0.0%
214 ;;BITSFR19 0 0 0 20 0.0%
215 ;;SFR19 0 0 0 20 0.0%
216 ;;BITSFR20 0 0 0 21 0.0%
217 ;;SFR20 0 0 0 21 0.0%
218 ;;BITSFR21 0 0 0 22 0.0%
219 ;;SFR21 0 0 0 22 0.0%
220 ;;BITSFR22 0 0 0 23 0.0%
221 ;;SFR22 0 0 0 23 0.0%
222 ;;BITSFR23 0 0 0 24 0.0%
223 ;;SFR23 0 0 0 24 0.0%
224 ;;BITSFR24 0 0 0 25 0.0%
225 ;;SFR24 0 0 0 25 0.0%
226 ;;BITSFR25 0 0 0 26 0.0%
227 ;;SFR25 0 0 0 26 0.0%
228 ;;BITSFR26 0 0 0 27 0.0%
229 ;;SFR26 0 0 0 27 0.0%
230 ;;BITSFR27 0 0 0 28 0.0%
231 ;;SFR27 0 0 0 28 0.0%
232 ;;BITSFR28 0 0 0 29 0.0%
233 ;;SFR28 0 0 0 29 0.0%
234 ;;BITSFR29 0 0 0 30 0.0%
235 ;;SFR29 0 0 0 30 0.0%
236 ;;BITSFR30 0 0 0 31 0.0%
237 ;;SFR30 0 0 0 31 0.0%
238 ;;BITSFR31 0 0 0 32 0.0%
239 ;;SFR31 0 0 0 32 0.0%
240
241
242 ;; *************** function _main *****************
243 ;; Defined at:
244 ;; line 145 in file "Z:\pic\irTX\main.c"
245 ;; Parameters: Size Location Type
246 ;; None
247 ;; Auto vars: Size Location Type
248 ;; t 1 37[BANK0 ] unsigned char
249 ;; btn 1 36[BANK0 ] unsigned char
250 ;; n 1 35[BANK0 ] unsigned char
251 ;; Return value: Size Location Type
252 ;; None void
253 ;; Registers used:
254 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
255 ;; Tracked objects:
256 ;; On entry : 17F/0
257 ;; On exit : 0/0
258 ;; Unchanged: 0/0
259 ;; Data sizes: COMMON BANK0 BANK1 BANK2
260 ;; Params: 0 0 0 0
261 ;; Locals: 0 3 0 0
262 ;; Temps: 0 3 0 0
263 ;; Totals: 0 6 0 0
264 ;;Total ram usage: 6 bytes
265 ;; Hardware stack levels required when called: 3
266 ;; This function calls:
267 ;; _sendButton
268 ;; This function is called by:
269 ;; Startup code after reset
270 ;; This function uses a non-reentrant model
271 ;;
272 062C _main:
273
274 ;main.c: 147: OSCCON = 0b11101000;
275
276 ; Regs used in _main: [wreg+fsr1l-status,0+pclath+cstack]
277 062C 30E8 movlw 232
278 062D 0021 movlb 1 ; select bank1
279 062E 0099 movwf 25 ;volatile
280
281 ;main.c: 148: OPTION_REG = 0b00001000;
282 062F 3008 movlw 8
283 0630 0095 movwf 21 ;volatile
284
285 ;main.c: 149: ANSELA = 0b00000000;
286 0631 0023 movlb 3 ; select bank3
287 0632 018C clrf 12 ;volatile
288
289 ;main.c: 150: PORTA = 0b00000000;
290 0633 0020 movlb 0 ; select bank0
291 0634 018C clrf 12 ;volatile
292
293 ;main.c: 151: WPUA = 0b00011111;
294 0635 301F movlw 31
295 0636 0024 movlb 4 ; select bank4
296 0637 008C movwf 12 ;volatile
297
298 ;main.c: 152: TRISA = 0b11011111;
299 0638 30DF movlw 223
300 0639 0021 movlb 1 ; select bank1
301 063A 008C movwf 12 ;volatile
302
303 ;main.c: 153: VREGCON = 0b00000010;
304 063B 3002 movlw 2
305 063C 0023 movlb 3 ; select bank3
306 063D 0097 movwf 23 ;volatile
307
308 ;main.c: 154: INTCON = 0b00000000;
309 063E 018B clrf 11 ;volatile
310
311 ;main.c: 155: APFCON = 0b00000001;
312 063F 3001 movlw 1
313 0640 0022 movlb 2 ; select bank2
314 0641 009D movwf 29 ;volatile
315
316 ;main.c: 157: CCP1CON = 0b00000000;
317 0642 0025 movlb 5 ; select bank5
318 0643 0193 clrf 19 ;volatile
319
320 ;main.c: 158: T2CON = 0b00000000;
321 0644 0020 movlb 0 ; select bank0
322 0645 019C clrf 28 ;volatile
323
324 ;main.c: 159: CCPR1L = 13;
325 0646 300D movlw 13
326 0647 0025 movlb 5 ; select bank5
327 0648 0091 movwf 17 ;volatile
328
329 ;main.c: 160: PR2 = 25;
330 0649 3019 movlw 25
331 064A 0020 movlb 0 ; select bank0
332 064B 009B movwf 27 ;volatile
333
334 ;main.c: 162: _delay((unsigned long)((300)*(4000000/4000.0)));
335 064C 3002 movlw 2
336 064D 00C2 movwf ??_main+2
337 064E 3085 movlw 133
338 064F 00C1 movwf ??_main+1
339 0650 3098 movlw 152
340 0651 00C0 movwf ??_main
341 0652 u557:
342 0652 0BC0 decfsz ??_main,f
343 0653 2E52 goto u557
344 0654 0BC1 decfsz ??_main+1,f
345 0655 2E52 goto u557
346 0656 0BC2 decfsz ??_main+2,f
347 0657 2E52 goto u557
348 0658 2E59 nop2
349 0659 l2023:
350
351 ;main.c: 166: UInt8 t, n, btn;
352 ;main.c: 169: OSCCON = 0b00000011;
353 0659 3003 movlw 3
354 065A 0021 movlb 1 ; select bank1
355 065B 0099 movwf 25 ;volatile
356 065C l2025:
357
358 ;main.c: 172: t = PORTA & 0x1F;
359 065C 0020 movlb 0 ; select bank0
360 065D 080C movf 12,w
361 065E 00C5 movwf main@t
362 065F 301F movlw 31
363 0660 05C5 andwf main@t,f
364 0661 l2029:
365 ;main.c: 173: while((n = (PORTA & 0x1F)) == t);
366
367 0661 080C movf 12,w
368 0662 00C3 movwf main@n
369 0663 301F movlw 31
370 0664 05C3 andwf main@n,f
371 0665 0843 movf main@n,w
372 0666 0645 xorwf main@t,w
373 0667 1903 skipnz
374 0668 2E61 goto l2029
375
376 ;main.c: 174: btn = (t ^ n) & t;
377 0669 0845 movf main@t,w
378 066A 0643 xorwf main@n,w
379 066B 00C4 movwf main@btn
380 066C 0845 movf main@t,w
381 066D 05C4 andwf main@btn,f
382
383 ;main.c: 175: if(btn && !(btn & (btn - 1))) break;
384 066E 0844 movf main@btn,w
385 066F 1903 btfsc 3,2
386 0670 2E5C goto l2025
387 0671 0844 movf main@btn,w
388 0672 3EFF addlw 255
389 0673 0544 andwf main@btn,w
390 0674 1D03 btfss 3,2
391 0675 2E5C goto l2025
392
393 ;main.c: 177: }
394 ;main.c: 180: OSCCON = 0b11101000;
395 0676 30E8 movlw 232
396 0677 0021 movlb 1 ; select bank1
397 0678 0099 movwf 25 ;volatile
398
399 ;main.c: 183: t = 0;
400 0679 0020 movlb 0 ; select bank0
401 067A 01C5 clrf main@t
402 067B l1151:
403 ;main.c: 184: while(btn >>= 1) t++;
404
405 067B 36C4 lsrf main@btn,f
406 067C 08C4 movf main@btn,f
407 067D 1903 btfsc 3,2
408 067E 2E81 goto l2049
409 067F 0AC5 incf main@t,f
410 0680 2E7B goto l1151
411 0681 l2049:
412
413 ;main.c: 185: btn = t;
414 0681 0845 movf main@t,w
415 0682 00C4 movwf main@btn
416 0683 l1154:
417 ;main.c: 188: while(!HFIOFL);
418
419 0683 0021 movlb 1 ; select bank1
420 0684 1D9A btfss 26,3
421 0685 2E83 goto l1154
422
423 ;main.c: 191: t = 10;
424 0686 300A movlw 10
425 0687 0020 movlb 0 ; select bank0
426 0688 00C5 movwf main@t
427 0689 l1157:
428 ;main.c: 192: do{
429
430
431 ;main.c: 194: if(t == 10 || t == 0) sendButton(btn);
432 0689 0020 movlb 0 ; select bank0
433 068A 0845 movf main@t,w
434 068B 3A0A xorlw 10
435 068C 1D03 btfss 3,2
436 068D 08C5 movf main@t,f
437 068E 1D03 skipz
438 068F 2E93 goto l2057
439 0690 0844 movf main@btn,w
440 0691 26A7 3186 fcall _sendButton
441 0693 l2057:
442
443 ;main.c: 195: if(t) t--;
444 0693 0020 movlb 0 ; select bank0
445 0694 0845 movf main@t,w
446 0695 1D03 skipz
447 0696 03C5 decf main@t,f
448
449 ;main.c: 196: if((PORTA & 0x1F) != n) break;
450 0697 301F movlw 31
451 0698 050C andwf 12,w
452 0699 00C0 movwf ??_main
453 069A 0643 xorwf main@n,w
454 069B 1D03 btfss 3,2
455 069C 2E59 goto l2023
456
457 ;main.c: 197: _delay((unsigned long)((50)*(4000000/4000.0)));
458 069D 3041 movlw 65
459 069E 00C1 movwf ??_main+1
460 069F 30EE movlw 238
461 06A0 00C0 movwf ??_main
462 06A1 u567:
463 06A1 0BC0 decfsz ??_main,f
464 06A2 2EA1 goto u567
465 06A3 0BC1 decfsz ??_main+1,f
466 06A4 2EA1 goto u567
467 06A5 0064 clrwdt
468
469 ;main.c: 198: }while(1);
470 06A6 2E89 goto l1157
471 06A7 __end_of_main:
472 06A7 __ptext193:
473 ;; =============== function _main ends ============
474
475
476 ;; *************** function _sendButton *****************
477 ;; Defined at:
478 ;; line 88 in file "Z:\pic\irTX\main.c"
479 ;; Parameters: Size Location Type
480 ;; btn 1 wreg unsigned char
481 ;; Auto vars: Size Location Type
482 ;; btn 1 23[BANK0 ] unsigned char
483 ;; packet 12 11[BANK0 ] unsigned char [12]
484 ;; v 2 27[BANK0 ] unsigned short
485 ;; i 1 31[BANK0 ] unsigned char
486 ;; crc 1 30[BANK0 ] unsigned char
487 ;; j 1 29[BANK0 ] unsigned char
488 ;; t 1 26[BANK0 ] unsigned char
489 ;; Return value: Size Location Type
490 ;; None void
491 ;; Registers used:
492 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
493 ;; Tracked objects:
494 ;; On entry : 1F/0
495 ;; On exit : 0/0
496 ;; Unchanged: 0/0
497 ;; Data sizes: COMMON BANK0 BANK1 BANK2
498 ;; Params: 0 0 0 0
499 ;; Locals: 0 21 0 0
500 ;; Temps: 1 0 0 0
501 ;; Totals: 1 21 0 0
502 ;;Total ram usage: 22 bytes
503 ;; Hardware stack levels used: 1
504 ;; Hardware stack levels required when called: 2
505 ;; This function calls:
506 ;; _eeRead
507 ;; _eeWrite
508 ;; _measureVoltage
509 ;; _sendByte
510 ;; This function is called by:
511 ;; _main
512 ;; This function uses a non-reentrant model
513 ;;
514 06A7 _sendButton:
515
516 ; Regs used in _sendButton: [wreg+fsr1l-status,0+pclath+cstack]
517 ;sendButton@btn stored from wreg
518 06A7 00B7 movwf sendButton@btn
519
520 ;main.c: 90: UInt8 i, t, j, crc = 0;
521 06A8 01BE clrf sendButton@crc
522
523 ;main.c: 91: UInt8 packet[12];
524 ;main.c: 92: UInt16 v;
525 ;main.c: 95: for(i = 0; i < 4; i++) packet[i] = eeRead(i);
526 06A9 01BF clrf sendButton@i
527 06AA l1913:
528 06AA 083F movf sendButton@i,w
529 06AB 3E2B addlw sendButton@packet& (0+255)
530 06AC 0086 movwf 6
531 06AD 0187 clrf 7
532 06AE 083F movf sendButton@i,w
533 06AF 2734 3186 fcall _eeRead
534 06B1 0081 movwf 1
535 06B2 27FB 3186 fcall PL3 ;call to abstracted procedure
536 06B4 1C03 skipc
537 06B5 2EAA goto l1913
538
539 ;main.c: 96: for(i = 0; i < 4; i++) if(++packet[i]) break;
540 06B6 01BF clrf sendButton@i
541 06B7 l1925:
542 06B7 083F movf sendButton@i,w
543 06B8 3E2B addlw sendButton@packet& (0+255)
544 06B9 0086 movwf 6
545 06BA 0187 clrf 7
546 06BB 0F81 incfsz 1,f
547 06BC 2EC2 goto l1933
548 06BD 3004 movlw 4
549 06BE 0ABF incf sendButton@i,f
550 06BF 023F subwf sendButton@i,w
551 06C0 1C03 skipc
552 06C1 2EB7 goto l1925
553 06C2 l1933:
554
555 ;main.c: 97: for(i = 0; i < 4; i++) eeWrite(i, packet[i]);
556 06C2 01BF clrf sendButton@i
557 06C3 l1939:
558 06C3 27F5 3186 fcall PL2 ;call to abstracted procedure
559 06C5 00F0 movwf ?_eeWrite
560 06C6 083F movf sendButton@i,w
561 06C7 273C 3186 fcall _eeWrite
562 06C9 27FB 3186 fcall PL3 ;call to abstracted procedure
563 06CB 1C03 skipc
564 06CC 2EC3 goto l1939
565
566 ;main.c: 100: packet[4] = pressesSinceBattChange;
567 06CD 0846 movf _pressesSinceBattChange,w
568 06CE 00AF movwf sendButton@packet+4
569
570 ;main.c: 101: packet[5] = pressesSinceBattChange >> 8;
571 06CF 0847 movf _pressesSinceBattChange+1,w
572 06D0 00B0 movwf sendButton@packet+5
573
574 ;main.c: 102: packet[6] = pressesSinceBattChange >> 16;
575 06D1 0848 movf _pressesSinceBattChange+2,w
576 06D2 00B1 movwf sendButton@packet+6
577
578 ;main.c: 103: packet[7] = pressesSinceBattChange >> 24;
579 06D3 0849 movf _pressesSinceBattChange+3,w
580 06D4 00B2 movwf sendButton@packet+7
581
582 ;main.c: 104: pressesSinceBattChange++;
583 06D5 0AC6 incf _pressesSinceBattChange,f
584 06D6 1903 skipnz
585 06D7 0AC7 incf _pressesSinceBattChange+1,f
586 06D8 1903 skipnz
587 06D9 0AC8 incf _pressesSinceBattChange+2,f
588 06DA 1903 skipnz
589 06DB 0AC9 incf _pressesSinceBattChange+3,f
590
591 ;main.c: 107: v = measureVoltage();
592 06DC 275F 3186 fcall _measureVoltage
593 06DE 0821 movf ?_measureVoltage+1,w
594 06DF 00BC movwf sendButton@v+1
595 06E0 0820 movf ?_measureVoltage,w
596 06E1 00BB movwf sendButton@v
597
598 ;main.c: 108: packet[8] = v;
599 06E2 00B3 movwf sendButton@packet+8
600
601 ;main.c: 109: packet[9] = v >> 8;
602 06E3 083C movf sendButton@v+1,w
603 06E4 00B4 movwf sendButton@packet+9
604
605 ;main.c: 112: packet[10] = btn;
606 06E5 0837 movf sendButton@btn,w
607 06E6 00B5 movwf sendButton@packet+10
608
609 ;main.c: 115: for(i = 0; i < sizeof(packet) - 1; i++){
610 06E7 01BF clrf sendButton@i
611 06E8 l1963:
612
613 ;main.c: 117: t = packet[i];
614 06E8 27F5 3186 fcall PL2 ;call to abstracted procedure
615 06EA 00BA movwf sendButton@t
616
617 ;main.c: 118: for(j = 0; j < 8; j++, t <<= 1){
618 06EB 01BD clrf sendButton@j
619 06EC l1971:
620
621 ;main.c: 120: crc = (crc << 1) ^ (((t ^ crc) & 0x80) ? 0x83 : 0);
622 06EC 083E movf sendButton@crc,w
623 06ED 063A xorwf sendButton@t,w
624 06EE 00FD movwf ??_sendButton
625 06EF 1BFD btfsc ??_sendButton,7
626 06F0 2EF3 goto l1975
627 06F1 01B8 clrf _sendButton$1951
628 06F2 2EF5 goto L1
629 06F3 l1975:
630 06F3 3083 movlw 131
631 06F4 00B8 movwf _sendButton$1951
632 06F5 L1:
633 06F5 01B9 clrf _sendButton$1951+1
634 06F6 353E lslf sendButton@crc,w
635 06F7 0638 xorwf _sendButton$1951,w
636 06F8 00BE movwf sendButton@crc
637 06F9 3008 movlw 8
638 06FA 0ABD incf sendButton@j,f
639 06FB 35BA lslf sendButton@t,f
640 06FC 023D subwf sendButton@j,w
641 06FD 1C03 skipc
642 06FE 2EEC goto l1971
643 06FF 300B movlw 11
644 0700 0ABF incf sendButton@i,f
645 0701 023F subwf sendButton@i,w
646 0702 1C03 skipc
647 0703 2EE8 goto l1963
648
649 ;main.c: 121: }
650 ;main.c: 122: }
651 ;main.c: 123: packet[sizeof(packet) - 1] = crc;
652 0704 083E movf sendButton@crc,w
653 0705 00B6 movwf sendButton@packet+11
654
655 ;main.c: 126: sendByte(0xFF);
656 0706 30FF movlw 255
657 0707 271A 3186 fcall _sendByte
658
659 ;main.c: 129: sendByte(0x05);
660 0709 3005 movlw 5
661 070A 271A 3186 fcall _sendByte
662
663 ;main.c: 132: for(i = 0; i < sizeof(packet); i++) sendByte(packet[i]);
664 070C 0020 movlb 0 ; select bank0
665 070D 01BF clrf sendButton@i
666 070E l1999:
667 070E 27F5 3186 fcall PL2 ;call to abstracted procedure
668 0710 271A 3186 fcall _sendByte
669 0712 0020 movlb 0 ; select bank0
670 0713 300C movlw 12
671 0714 0ABF incf sendButton@i,f
672 0715 023F subwf sendButton@i,w
673 0716 1C03 skipc
674 0717 2F0E goto l1999
675
676 ;main.c: 135: sendByte(0xFF);
677 0718 30FF movlw 255
678 0719 2F1A ljmp _sendByte
679 071A __end_of_sendButton:
680 071A __ptext194:
681 ;; =============== function _sendButton ends ============
682
683
684 ;; *************** function _sendByte *****************
685 ;; Defined at:
686 ;; line 36 in file "Z:\pic\irTX\main.c"
687 ;; Parameters: Size Location Type
688 ;; b 1 wreg unsigned char
689 ;; Auto vars: Size Location Type
690 ;; b 1 2[COMMON] unsigned char
691 ;; i 1 3[COMMON] unsigned char
692 ;; Return value: Size Location Type
693 ;; None void
694 ;; Registers used:
695 ;; wreg, status,2, status,0, pclath, cstack
696 ;; Tracked objects:
697 ;; On entry : 0/0
698 ;; On exit : 0/0
699 ;; Unchanged: 0/0
700 ;; Data sizes: COMMON BANK0 BANK1 BANK2
701 ;; Params: 0 0 0 0
702 ;; Locals: 2 0 0 0
703 ;; Temps: 1 0 0 0
704 ;; Totals: 3 0 0 0
705 ;;Total ram usage: 3 bytes
706 ;; Hardware stack levels used: 1
707 ;; Hardware stack levels required when called: 1
708 ;; This function calls:
709 ;; _led
710 ;; This function is called by:
711 ;; _sendButton
712 ;; This function uses a non-reentrant model
713 ;;
714 071A _sendByte:
715
716 ; Regs used in _sendByte: [wreg+status,2+status,0+pclath+cstack]
717 ;sendByte@b stored from wreg
718 071A 00F2 movwf sendByte@b
719
720 ;main.c: 38: UInt8 i = 8;
721 071B 3008 movlw 8
722 071C 00F3 movwf sendByte@i
723 071D l1895:
724
725 ;main.c: 41: led();
726 071D 274E 3186 fcall _led
727
728 ;main.c: 42: if(b & 0x80) _delay((unsigned long)((1500)*(4000000/4000000.0)));
729 071F 1FF2 btfss sendByte@b,7
730 0720 2F29 goto l1901
731 0721 30D6 movlw 214
732 0722 00F1 movwf ??_sendByte
733 0723 u577:
734 0723 2F24 nop2
735 0724 2F25 nop2
736 0725 0BF1 decfsz ??_sendByte,f
737 0726 2F23 goto u577
738 0727 0064 clrwdt
739 0728 2F30 goto l1903
740 0729 l1901:
741
742 ;main.c: 43: else _delay((unsigned long)((1000)*(4000000/4000000.0)));
743 0729 30F9 movlw 249
744 072A 00F1 movwf ??_sendByte
745 072B u587:
746 072B 0064 clrwdt
747 072C 0BF1 decfsz ??_sendByte,f
748 072D 2F2B goto u587
749 072E 2F2F nop2 ;nop
750 072F 0064 clrwdt
751 0730 l1903:
752
753 ;main.c: 44: b <<= 1;
754 0730 35F2 lslf sendByte@b,f
755
756 ;main.c: 46: }while(--i);
757 0731 0BF3 decfsz sendByte@i,f
758 0732 2F1D goto l1895
759 0733 0008 return
760 0734 __end_of_sendByte:
761 0734 __ptext199:
762 ;; =============== function _eeWrite ends ============
763
764
765 ;; *************** function _eeRead *****************
766 ;; Defined at:
767 ;; line 27 in file "Z:\pic\irTX\main.c"
768 ;; Parameters: Size Location Type
769 ;; addr 1 wreg unsigned char
770 ;; Auto vars: Size Location Type
771 ;; addr 1 0[COMMON] unsigned char
772 ;; Return value: Size Location Type
773 ;; 1 wreg unsigned char
774 ;; Registers used:
775 ;; wreg, status,2
776 ;; Tracked objects:
777 ;; On entry : 1F/0
778 ;; On exit : 1F/3
779 ;; Unchanged: FFFE0/0
780 ;; Data sizes: COMMON BANK0 BANK1 BANK2
781 ;; Params: 0 0 0 0
782 ;; Locals: 1 0 0 0
783 ;; Temps: 0 0 0 0
784 ;; Totals: 1 0 0 0
785 ;;Total ram usage: 1 bytes
786 ;; Hardware stack levels used: 1
787 ;; This function calls:
788 ;; Nothing
789 ;; This function is called by:
790 ;; _sendButton
791 ;; This function uses a non-reentrant model
792 ;;
793 0734 _eeRead:
794
795 ; Regs used in _eeRead: [wreg+status,2]
796 ;eeRead@addr stored from wreg
797 0734 00F0 movwf eeRead@addr
798
799 ;main.c: 30: EECON1 = 0b00000000;
800 0735 0023 movlb 3 ; select bank3
801 0736 0195 clrf 21 ;volatile
802
803 ;main.c: 31: EEADRL = addr;
804 0737 0870 movf eeRead@addr,w
805 0738 0091 movwf 17 ;volatile
806
807 ;main.c: 32: EECON1bits.RD = 1;
808 0739 1415 bsf 21,0 ;volatile
809
810 ;main.c: 33: return EEDATL;
811 073A 0813 movf 19,w ;volatile
812 073B 0008 return
813 073C __end_of_eeRead:
814 073C __ptext198:
815 ;; =============== function ___lldiv ends ============
816
817
818 ;; *************** function _eeWrite *****************
819 ;; Defined at:
820 ;; line 49 in file "Z:\pic\irTX\main.c"
821 ;; Parameters: Size Location Type
822 ;; addr 1 wreg unsigned char
823 ;; data 1 0[COMMON] unsigned char
824 ;; Auto vars: Size Location Type
825 ;; addr 1 1[COMMON] unsigned char
826 ;; Return value: Size Location Type
827 ;; None void
828 ;; Registers used:
829 ;; wreg
830 ;; Tracked objects:
831 ;; On entry : 1F/0
832 ;; On exit : 1F/3
833 ;; Unchanged: FFFE0/0
834 ;; Data sizes: COMMON BANK0 BANK1 BANK2
835 ;; Params: 1 0 0 0
836 ;; Locals: 1 0 0 0
837 ;; Temps: 0 0 0 0
838 ;; Totals: 2 0 0 0
839 ;;Total ram usage: 2 bytes
840 ;; Hardware stack levels used: 1
841 ;; This function calls:
842 ;; Nothing
843 ;; This function is called by:
844 ;; _sendButton
845 ;; This function uses a non-reentrant model
846 ;;
847 073C _eeWrite:
848
849 ; Regs used in _eeWrite: [wreg]
850 ;eeWrite@addr stored from wreg
851 073C 00F1 movwf eeWrite@addr
852
853 ;main.c: 51: EECON1= 0b00000100;
854 073D 3004 movlw 4
855 073E 0023 movlb 3 ; select bank3
856 073F 0095 movwf 21 ;volatile
857
858 ;main.c: 52: EEADRL = addr;
859 0740 0871 movf eeWrite@addr,w
860 0741 0091 movwf 17 ;volatile
861
862 ;main.c: 53: EEDATL = data;
863 0742 0870 movf eeWrite@data,w
864 0743 0093 movwf 19 ;volatile
865
866 ;main.c: 54: INTCONbits.GIE = 0;
867 0744 138B bcf 11,7 ;volatile
868
869 ;main.c: 55: EECON2 = 0x55;
870 0745 3055 movlw 85
871 0746 0096 movwf 22 ;volatile
872
873 ;main.c: 56: EECON2 = 0xAA;
874 0747 30AA movlw 170
875 0748 0096 movwf 22 ;volatile
876
877 ;main.c: 57: EECON1bits.WR = 1;
878 0749 1495 bsf 21,1 ;volatile
879
880 ;main.c: 58: INTCONbits.GIE = 1;
881 074A 178B bsf 11,7 ;volatile
882 074B l1100:
883 ;main.c: 59: while(EECON1bits.WR);
884
885 074B 1C95 btfss 21,1 ;volatile
886 074C 0008 return
887 074D 2F4B goto l1100
888 074E __end_of_eeWrite:
889 074E __ptext196:
890 ;; =============== function _measureVoltage ends ============
891
892
893 ;; *************** function _led *****************
894 ;; Defined at:
895 ;; line 16 in file "Z:\pic\irTX\main.c"
896 ;; Parameters: Size Location Type
897 ;; None
898 ;; Auto vars: Size Location Type
899 ;; None
900 ;; Return value: Size Location Type
901 ;; None void
902 ;; Registers used:
903 ;; wreg, status,2, status,0
904 ;; Tracked objects:
905 ;; On entry : 0/0
906 ;; On exit : 1F/0
907 ;; Unchanged: 0/0
908 ;; Data sizes: COMMON BANK0 BANK1 BANK2
909 ;; Params: 0 0 0 0
910 ;; Locals: 0 0 0 0
911 ;; Temps: 1 0 0 0
912 ;; Totals: 1 0 0 0
913 ;;Total ram usage: 1 bytes
914 ;; Hardware stack levels used: 1
915 ;; This function calls:
916 ;; Nothing
917 ;; This function is called by:
918 ;; _sendByte
919 ;; This function uses a non-reentrant model
920 ;;
921 074E _led:
922
923 ;main.c: 18: TMR2ON = 1;
924
925 ; Regs used in _led: [wreg+status,2+status,0]
926 074E 0020 movlb 0 ; select bank0
927 074F 151C bsf 28,2
928
929 ;main.c: 19: TMR2 = 0;
930 0750 019A clrf 26 ;volatile
931
932 ;main.c: 20: CCP1CON |= 0b00001100;
933 0751 300C movlw 12
934 0752 0025 movlb 5 ; select bank5
935 0753 0493 iorwf 19,f ;volatile
936
937 ;main.c: 21: _delay((unsigned long)((500)*(4000000/4000000.0)));
938 0754 30A6 movlw 166
939 0755 00F0 movwf ??_led
940 0756 u597:
941 0756 0BF0 decfsz ??_led,f
942 0757 2F56 goto u597
943 0758 0064 clrwdt
944
945 ;main.c: 22: CCP1CON &=~ 0b00001111;
946 0759 30F0 movlw 240
947 075A 0025 movlb 5 ; select bank5
948 075B 0593 andwf 19,f ;volatile
949
950 ;main.c: 23: TMR2ON = 0;
951 075C 0020 movlb 0 ; select bank0
952 075D 111C bcf 28,2
953 075E 0008 return
954 075F __end_of_led:
955 075F __ptext195:
956 ;; =============== function _sendByte ends ============
957
958
959 ;; *************** function _measureVoltage *****************
960 ;; Defined at:
961 ;; line 63 in file "Z:\pic\irTX\main.c"
962 ;; Parameters: Size Location Type
963 ;; None
964 ;; Auto vars: Size Location Type
965 ;; t 4 7[BANK0 ] unsigned long
966 ;; i 1 6[BANK0 ] unsigned char
967 ;; Return value: Size Location Type
968 ;; 2 0[BANK0 ] unsigned short
969 ;; Registers used:
970 ;; wreg, status,2, status,0, pclath, cstack
971 ;; Tracked objects:
972 ;; On entry : 1F/0
973 ;; On exit : 1F/0
974 ;; Unchanged: FFFE0/0
975 ;; Data sizes: COMMON BANK0 BANK1 BANK2
976 ;; Params: 0 2 0 0
977 ;; Locals: 0 5 0 0
978 ;; Temps: 0 4 0 0
979 ;; Totals: 0 11 0 0
980 ;;Total ram usage: 11 bytes
981 ;; Hardware stack levels used: 1
982 ;; Hardware stack levels required when called: 1
983 ;; This function calls:
984 ;; ___lldiv
985 ;; This function is called by:
986 ;; _sendButton
987 ;; This function uses a non-reentrant model
988 ;;
989 075F _measureVoltage:
990 075F 30C1 movlw 193
991
992 ;main.c: 65: UInt8 i;
993 ;main.c: 66: UInt32 t = 0;
994
995 ; Regs used in _measureVoltage: [wreg+status,2+status,0+pclath+cstack]
996 0760 01A7 clrf measureVoltage@t
997 0761 01A8 clrf measureVoltage@t+1
998 0762 01A9 clrf measureVoltage@t+2
999 0763 01AA clrf measureVoltage@t+3
1000
1001 ;main.c: 68: FVRCON = 0b11000001;
1002 0764 0022 movlb 2 ; select bank2
1003 0765 0097 movwf 23 ;volatile
1004
1005 ;main.c: 69: ADCON1 = 0b11100000;
1006 0766 30E0 movlw 224
1007 0767 0021 movlb 1 ; select bank1
1008 0768 009E movwf 30 ;volatile
1009
1010 ;main.c: 70: ADCON0 = 0b01111101;
1011 0769 307D movlw 125
1012 076A 009D movwf 29 ;volatile
1013 076B l1106:
1014 ;main.c: 72: while(!FVRRDY);
1015
1016 076B 0022 movlb 2 ; select bank2
1017 076C 1F17 btfss 23,6
1018 076D 2F6B goto l1106
1019
1020 ;main.c: 74: for(i = 0; i < 16; i++){
1021 076E 0020 movlb 0 ; select bank0
1022 076F 01A6 clrf measureVoltage@i
1023 0770 l1109:
1024
1025 ;main.c: 75: GO = 1;
1026 0770 0021 movlb 1 ; select bank1
1027 0771 149D bsf 29,1
1028 0772 l1111:
1029 ;main.c: 76: while(GO);
1030
1031 0772 189D btfsc 29,1
1032 0773 2F72 goto l1111
1033
1034 ;main.c: 77: t += ADRES;
1035 0774 081B movf 27,w ;volatile
1036 0775 0020 movlb 0 ; select bank0
1037 0776 07A7 addwf measureVoltage@t,f
1038 0777 0021 movlb 1 ; select bank1
1039 0778 081C movf 28,w ;volatile
1040 0779 0020 movlb 0 ; select bank0
1041 077A 3DA8 addwfc measureVoltage@t+1,f
1042 077B 3000 movlw 0
1043 077C 3DA9 addwfc measureVoltage@t+2,f
1044 077D 3DAA addwfc measureVoltage@t+3,f
1045 077E 3010 movlw 16
1046 077F 0AA6 incf measureVoltage@i,f
1047 0780 0226 subwf measureVoltage@i,w
1048 0781 1C03 skipc
1049 0782 2F70 goto l1109
1050
1051 ;main.c: 78: }
1052 ;main.c: 80: t = (0x199998UL + (t >> 1)) / t;
1053 0783 082A movf measureVoltage@t+3,w
1054 0784 00F3 movwf ?___lldiv+3
1055 0785 0829 movf measureVoltage@t+2,w
1056 0786 00F2 movwf ?___lldiv+2
1057 0787 0828 movf measureVoltage@t+1,w
1058 0788 00F1 movwf ?___lldiv+1
1059 0789 0827 movf measureVoltage@t,w
1060 078A 00F0 movwf ?___lldiv
1061 078B 0827 movf measureVoltage@t,w
1062 078C 00A2 movwf ??_measureVoltage
1063 078D 0828 movf measureVoltage@t+1,w
1064 078E 00A3 movwf ??_measureVoltage+1
1065 078F 0829 movf measureVoltage@t+2,w
1066 0790 00A4 movwf ??_measureVoltage+2
1067 0791 082A movf measureVoltage@t+3,w
1068 0792 00A5 movwf ??_measureVoltage+3
1069 0793 3098 movlw 152
1070 0794 36A5 lsrf ??_measureVoltage+3,f
1071 0795 0CA4 rrf ??_measureVoltage+2,f
1072 0796 0CA3 rrf ??_measureVoltage+1,f
1073 0797 0CA2 rrf ??_measureVoltage,f
1074 0798 0722 addwf ??_measureVoltage,w
1075 0799 00F4 movwf ?___lldiv+4
1076 079A 3099 movlw 153
1077 079B 3D23 addwfc ??_measureVoltage+1,w
1078 079C 00F5 movwf ?___lldiv+5
1079 079D 3019 movlw 25
1080 079E 3D24 addwfc ??_measureVoltage+2,w
1081 079F 00F6 movwf ?___lldiv+6
1082 07A0 3000 movlw 0
1083 07A1 3D25 addwfc ??_measureVoltage+3,w
1084 07A2 00F7 movwf ?___lldiv+7
1085 07A3 27B6 fcall ___lldiv
1086 07A4 0873 movf ?___lldiv+3,w
1087 07A5 00AA movwf measureVoltage@t+3
1088 07A6 0872 movf ?___lldiv+2,w
1089 07A7 00A9 movwf measureVoltage@t+2
1090 07A8 0871 movf ?___lldiv+1,w
1091 07A9 00A8 movwf measureVoltage@t+1
1092 07AA 0870 movf ?___lldiv,w
1093 07AB 00A7 movwf measureVoltage@t
1094
1095 ;main.c: 82: FVRCON = 0b00000000;
1096 07AC 0022 movlb 2 ; select bank2
1097 07AD 0197 clrf 23 ;volatile
1098
1099 ;main.c: 83: ADCON0 = 0b00000000;
1100 07AE 0021 movlb 1 ; select bank1
1101 07AF 019D clrf 29 ;volatile
1102
1103 ;main.c: 85: return t;
1104 07B0 0020 movlb 0 ; select bank0
1105 07B1 0828 movf measureVoltage@t+1,w
1106 07B2 00A1 movwf ?_measureVoltage+1
1107 07B3 0827 movf measureVoltage@t,w
1108 07B4 00A0 movwf ?_measureVoltage
1109 07B5 0008 return
1110 07B6 __end_of_measureVoltage:
1111 07B6 __ptext197:
1112 ;; =============== function _led ends ============
1113
1114
1115 ;; *************** function ___lldiv *****************
1116 ;; Defined at:
1117 ;; line 5 in file "C:\Program Files\HI-TECH Software\PICC\9.81\sources\lldiv.c"
1118 ;; Parameters: Size Location Type
1119 ;; divisor 4 0[COMMON] unsigned long
1120 ;; dividend 4 4[COMMON] unsigned long
1121 ;; Auto vars: Size Location Type
1122 ;; quotient 4 8[COMMON] unsigned long
1123 ;; counter 1 12[COMMON] unsigned char
1124 ;; Return value: Size Location Type
1125 ;; 4 0[COMMON] unsigned long
1126 ;; Registers used:
1127 ;; wreg, status,2, status,0
1128 ;; Tracked objects:
1129 ;; On entry : 1F/0
1130 ;; On exit : 1F/0
1131 ;; Unchanged: FFFE0/0
1132 ;; Data sizes: COMMON BANK0 BANK1 BANK2
1133 ;; Params: 8 0 0 0
1134 ;; Locals: 5 0 0 0
1135 ;; Temps: 0 0 0 0
1136 ;; Totals: 13 0 0 0
1137 ;;Total ram usage: 13 bytes
1138 ;; Hardware stack levels used: 1
1139 ;; This function calls:
1140 ;; Nothing
1141 ;; This function is called by:
1142 ;; _measureVoltage
1143 ;; This function uses a non-reentrant model
1144 ;;
1145 07B6 ___lldiv:
1146
1147 ; Regs used in ___lldiv: [wreg+status,2+status,0]
1148 07B6 01F8 clrf ___lldiv@quotient
1149 07B7 01F9 clrf ___lldiv@quotient+1
1150 07B8 01FA clrf ___lldiv@quotient+2
1151 07B9 01FB clrf ___lldiv@quotient+3
1152 07BA 0873 movf ___lldiv@divisor+3,w
1153 07BB 0472 iorwf ___lldiv@divisor+2,w
1154 07BC 0471 iorwf ___lldiv@divisor+1,w
1155 07BD 0470 iorwf ___lldiv@divisor,w
1156 07BE 1903 skipnz
1157 07BF 2FEC goto l1851
1158 07C0 01FC clrf ___lldiv@counter
1159 07C1 L2:
1160 07C1 0AFC incf ___lldiv@counter,f
1161 07C2 1BF3 btfsc ___lldiv@divisor+3,7
1162 07C3 2FC9 goto l1839
1163 07C4 35F0 lslf ___lldiv@divisor,f
1164 07C5 0DF1 rlf ___lldiv@divisor+1,f
1165 07C6 0DF2 rlf ___lldiv@divisor+2,f
1166 07C7 0DF3 rlf ___lldiv@divisor+3,f
1167 07C8 2FC1 goto L2
1168 07C9 l1839:
1169 07C9 35F8 lslf ___lldiv@quotient,f
1170 07CA 0DF9 rlf ___lldiv@quotient+1,f
1171 07CB 0DFA rlf ___lldiv@quotient+2,f
1172 07CC 0DFB rlf ___lldiv@quotient+3,f
1173 07CD 0873 movf ___lldiv@divisor+3,w
1174 07CE 0277 subwf ___lldiv@dividend+3,w
1175 07CF 1D03 skipz
1176 07D0 2FDB goto u315
1177 07D1 0872 movf ___lldiv@divisor+2,w
1178 07D2 0276 subwf ___lldiv@dividend+2,w
1179 07D3 1D03 skipz
1180 07D4 2FDB goto u315
1181 07D5 0871 movf ___lldiv@divisor+1,w
1182 07D6 0275 subwf ___lldiv@dividend+1,w
1183 07D7 1D03 skipz
1184 07D8 2FDB goto u315
1185 07D9 0870 movf ___lldiv@divisor,w
1186 07DA 0274 subwf ___lldiv@dividend,w
1187 07DB u315:
1188 07DB 1C03 skipc
1189 07DC 2FE6 goto l1847
1190 07DD 0870 movf ___lldiv@divisor,w
1191 07DE 02F4 subwf ___lldiv@dividend,f
1192 07DF 0871 movf ___lldiv@divisor+1,w
1193 07E0 3BF5 subwfb ___lldiv@dividend+1,f
1194 07E1 0872 movf ___lldiv@divisor+2,w
1195 07E2 3BF6 subwfb ___lldiv@dividend+2,f
1196 07E3 0873 movf ___lldiv@divisor+3,w
1197 07E4 3BF7 subwfb ___lldiv@dividend+3,f
1198 07E5 1478 bsf ___lldiv@quotient,0
1199 07E6 l1847:
1200 07E6 36F3 lsrf ___lldiv@divisor+3,f
1201 07E7 0CF2 rrf ___lldiv@divisor+2,f
1202 07E8 0CF1 rrf ___lldiv@divisor+1,f
1203 07E9 0CF0 rrf ___lldiv@divisor,f
1204 07EA 0BFC decfsz ___lldiv@counter,f
1205 07EB 2FC9 goto l1839
1206 07EC l1851:
1207 07EC 087B movf ___lldiv@quotient+3,w
1208 07ED 00F3 movwf ?___lldiv+3
1209 07EE 087A movf ___lldiv@quotient+2,w
1210 07EF 00F2 movwf ?___lldiv+2
1211 07F0 0879 movf ___lldiv@quotient+1,w
1212 07F1 00F1 movwf ?___lldiv+1
1213 07F2 0878 movf ___lldiv@quotient,w
1214 07F3 00F0 movwf ?___lldiv
1215 07F4 0008 return
1216 07F5 __end_of___lldiv:
1217 07F5 PL2:
1218 07F5 083F movf sendButton@i,w
1219 07F6 3E2B addlw sendButton@packet& (0+255)
1220 07F7 0086 movwf 6
1221 07F8 0187 clrf 7
1222 07F9 0801 movf 1,w
1223 07FA 0008 return
1224 07FB PL3:
1225 07FB 0020 movlb 0 ; select bank0
1226 07FC 3004 movlw 4
1227 07FD 0ABF incf sendButton@i,f
1228 07FE 023F subwf sendButton@i,w
1229 07FF 0008 return
1230
1231 psect bssBANK0
1232 0046 __pbssBANK0:
1233 0046 _pressesSinceBattChange:
1234 0046 ds 4
1235
1236 psect cstackCOMMON
1237 0070 __pcstackCOMMON:
1238 0070 ?_led:
1239 0070 ??_led:
1240 ; 0 bytes @ 0x0
1241
1242 0070 ??_eeRead:
1243 ; 0 bytes @ 0x0
1244
1245 0070 ?_sendByte:
1246 ; 0 bytes @ 0x0
1247
1248 0070 ?_eeWrite:
1249 ; 0 bytes @ 0x0
1250
1251 0070 ?_sendButton:
1252 ; 0 bytes @ 0x0
1253
1254 0070 ?_main:
1255 ; 0 bytes @ 0x0
1256
1257 0070 ?_eeRead:
1258 ; 0 bytes @ 0x0
1259
1260 0070 ?___lldiv:
1261 ; 1 bytes @ 0x0
1262
1263 0070 eeRead@addr:
1264 ; 4 bytes @ 0x0
1265
1266 0070 eeWrite@data:
1267 ; 1 bytes @ 0x0
1268
1269 0070 ___lldiv@divisor:
1270 ; 1 bytes @ 0x0
1271
1272
1273 ; 4 bytes @ 0x0
1274 0070 ds 1
1275 0071 ??_sendByte:
1276 0071 ??_eeWrite:
1277 ; 0 bytes @ 0x1
1278
1279 0071 eeWrite@addr:
1280 ; 0 bytes @ 0x1
1281
1282
1283 ; 1 bytes @ 0x1
1284 0071 ds 1
1285 0072 sendByte@b:
1286
1287 ; 1 bytes @ 0x2
1288 0072 ds 1
1289 0073 sendByte@i:
1290
1291 ; 1 bytes @ 0x3
1292 0073 ds 1
1293 0074 ___lldiv@dividend:
1294
1295 ; 4 bytes @ 0x4
1296 0074 ds 4
1297 0078 ??___lldiv:
1298 0078 ___lldiv@quotient:
1299 ; 0 bytes @ 0x8
1300
1301
1302 ; 4 bytes @ 0x8
1303 0078 ds 4
1304 007C ___lldiv@counter:
1305
1306 ; 1 bytes @ 0xC
1307 007C ds 1
1308 007D ??_sendButton:
1309
1310 ; 0 bytes @ 0xD
1311 007D ds 1
1312
1313 psect cstackBANK0
1314 0020 __pcstackBANK0:
1315 0020 ?_measureVoltage:
1316
1317 ; 2 bytes @ 0x0
1318 0020 ds 2
1319 0022 ??_measureVoltage:
1320
1321 ; 0 bytes @ 0x2
1322 0022 ds 4
1323 0026 measureVoltage@i:
1324
1325 ; 1 bytes @ 0x6
1326 0026 ds 1
1327 0027 measureVoltage@t:
1328
1329 ; 4 bytes @ 0x7
1330 0027 ds 4
1331 002B sendButton@packet:
1332
1333 ; 12 bytes @ 0xB
1334 002B ds 12
1335 0037 sendButton@btn:
1336
1337 ; 1 bytes @ 0x17
1338 0037 ds 1
1339 0038 _sendButton$1951:
1340
1341 ; 2 bytes @ 0x18
1342 0038 ds 2
1343 003A sendButton@t:
1344
1345 ; 1 bytes @ 0x1A
1346 003A ds 1
1347 003B sendButton@v:
1348
1349 ; 2 bytes @ 0x1B
1350 003B ds 2
1351 003D sendButton@j:
1352
1353 ; 1 bytes @ 0x1D
1354 003D ds 1
1355 003E sendButton@crc:
1356
1357 ; 1 bytes @ 0x1E
1358 003E ds 1
1359 003F sendButton@i:
1360
1361 ; 1 bytes @ 0x1F
1362 003F ds 1
1363 0040 ??_main:
1364
1365 ; 0 bytes @ 0x20
1366 0040 ds 3
1367 0043 main@n:
1368
1369 ; 1 bytes @ 0x23
1370 0043 ds 1
1371 0044 main@btn:
1372
1373 ; 1 bytes @ 0x24
1374 0044 ds 1
1375 0045 main@t:
1376
1377 ; 1 bytes @ 0x25
1378 0045 ds 1
1379
1380 psect text200
1381 0000 __ptext200:
1382 ;; =============== function _eeRead ends ============
1383
1384 007E btemp set 126 ;btemp
1385 007E wtemp0 set 126
HI-TECH Software PICC Macro Assembler V9.81 build 7503
Symbol Table Tue Jun 14 21:20:09 2011
_GO 04E9 u315 07DB _PR2 001B
u557 0652 u567 06A1 u577 0723
u587 072B u597 0756 _led 074E
l1100 074B l1103 0000 l1111 0772
l2001 0000 l1114 0000 l1106 076B
l2003 0000 l2011 0000 l1109 0770
l2021 0000 l2013 0000 l1134 0000
l1151 067B l2031 0000 l2023 0659
l2015 0000 l2007 0000 l2025 065C
l2017 0000 l2009 0000 l1090 0000
l1154 0683 l2035 0000 l2027 0000
l2019 0000 l1157 0689 l2045 0000
l2037 0000 l2029 0661 l1087 0000
l1097 0000 l2057 0693 l2049 0681
l1354 0000 l2059 0000 l1811 0000
l1813 0000 l1821 0000 l1901 0729
l1815 0000 l1823 0000 l1831 0000
l1903 0730 l1817 0000 l1825 0000
l1841 0000 l1905 0000 l1913 06AA
l1827 0000 l1851 07EC l1931 0000
l1915 0000 l1907 0000 l1845 0000
l1829 0000 l1861 0000 l1941 0000
l1933 06C2 l1925 06B7 l1917 0000
?_led 0070 l1847 07E6 l1839 07C9
l1863 0000 l1855 0000 l1951 0000
l1943 0000 l1849 0000 l1865 0000
l1857 0000 l1881 0000 l1953 0000
l1859 0000 l1867 0000 l1971 06EC
l1963 06E8 l1955 0000 l1947 0000
l1939 06C3 l1885 0000 l1869 0000
l1893 0000 l1981 0000 l1965 0000
l1957 0000 l1949 0000 l1887 0000
l1879 0000 l1895 071D l1991 0000
l1975 06F3 l1889 0000 l1897 0000
l1993 0000 l1985 0000 l1979 0000
l1989 0000 l1999 070E _TMR2 001A
_WPUA 020C _main 062C fsr1h 0007
indf1 0001 fsr1l 0006 btemp 007E
start 0002 ??_led 0070 ?_main 0070
_ADRES 009B __end_of___lldiv 07F5 _T2CON 001C
_PORTA 000C _TRISA 008C __end_of_eeWrite 074E
main@n 0043 main@t 0045 status 0003
wtemp0 007E __end_of_main 06A7 ??_main 0040
_sendButton$1951 0038 _ADCON0 009D _ADCON1 009E
_EEADRL 0191 _CCPR1L 0291 _EEDATL 0193
_EECON1 0195 _EECON2 0196 _APFCON 011D
_ANSELA 018C _HFIOFL 04D3 _INTCON 000B
_FVRCON 0117 _FVRRDY 08BE _OSCCON 0099
_TMR2ON 00E2 _eeRead 0734 ??___lldiv 0078
??_eeWrite 0071 __end_of_sendByte 0734 __size_of_measureVoltage 0057
__pcstackCOMMON 0070 __pbssBANK0 0046 eeRead@addr 0070
__pmaintext 062C ?_eeRead 0070 sendButton@i 003F
sendButton@j 003D sendButton@t 003A sendButton@v 003B
_CCP1CON 0293 sendButton@crc 003E sendButton@btn 0037
_VREGCON 0197 ?_sendByte 0070 __size_of_eeRead 0008
___lldiv 07B6 _eeWrite 073C __size_of_led 0011
main@btn 0044 _sendButton 06A7 end_of_initialization 062A
_measureVoltage 075F ??_sendByte 0071 ___lldiv@divisor 0070
___lldiv@counter 007C __end_of_measureVoltage 07B6 __end_of_eeRead 073C
start_initialization 0626 __end_of_led 075F ?_sendButton 0070
?_measureVoltage 0020 ??_eeRead 0070 __pcstackBANK0 0020
__size_of_sendByte 001A __ptext200 0000 __ptext192 0000
__ptext193 06A7 __ptext194 071A __ptext195 075F
__ptext196 074E __ptext197 07B6 __ptext198 073C
__ptext199 0734 ?___lldiv 0070 ?_eeWrite 0070
__size_of_sendButton 0073 idloc_word 8000 eeWrite@addr 0071
eeWrite@data 0070 _EECON1bits 0195 __size_of___lldiv 003F
__size_of_eeWrite 0012 ??_measureVoltage 0022 sendByte@b 0072
sendByte@i 0073 ??_sendButton 007D __size_of_main 007B
_sendByte 071A __end_of_sendButton 071A sendButton@packet 002B
measureVoltage@i 0026 measureVoltage@t 0027 _INTCONbits 000B
___lldiv@dividend 0074 _pressesSinceBattChange 0046 _OPTION_REG 0095
___lldiv@quotient 0078
Código: Seleccionar todo
#include <htc.h>
volatile unsigned short CCPR1 @ 0x291;
#define _XTAL_FREQ 32000000
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
__CONFIG(WRT_OFF & PLLEN_OFF & PLLEN_OFF & BORV_19 & LVP_OFF);
__IDLOC(0000);
typedef unsigned char UInt8;
typedef unsigned short UInt16;
typedef unsigned long UInt32;
typedef signed char Int8;
typedef signed short Int16;
typedef signed long Int32;
#define NULL ((void*)0)
//versioning
static const UInt8 gSwVersion = 4;
//battery voltage
static UInt16 gBattCentiVolts = 0;
//PWM control
static UInt8 gLed[4] = {0,0,0,0};
static UInt16 gPwmCtr = 0;
//input data
static UInt8 gRxData[32];
static UInt8 gRxPos;
static UInt8 gRxMask;
static bit gRxDone;
//data for int
static UInt16 gIntCapturedTime;
static bit gIntFirstEdgeSeen;
UInt8 eeRead(UInt8 addr){
EECON1 = 0b00000000; //read data
EEADRL = addr;
EECON1bits.RD = 1; //do it
return EEDATL;
}
void eeWrite(UInt8 addr, UInt8 data){
static bit gie;
EECON1= 0b00000100; //write data
EEADRL = addr;
EEDATL = data;
gie = GIE;
INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
INTCONbits.GIE = gie;
while(EECON1bits.WR);
}
void log(UInt8 a){
static UInt16 addr = 0;
if(addr < 0x70) eeWrite(addr++, a);
}
void rxStart(void){
UInt8 i;
for(i = 0; i < sizeof(gRxData); i++) gRxData[i] = 0;
gRxPos = 0;
gRxMask = 0x80;
gRxDone = 0;
gIntFirstEdgeSeen = 0;
CCP1IF = 0;
CCP1IE = 1;
TMR2ON = 0;
TMR2IE = 1;
TMR2IF = 0;
CCP1CON = 0b00000100; //catch falling edge (IR turns on)
}
UInt8 rxDecode(void){ //0 if success, else error
UInt8 i, j, t, k;
if(gRxPos < 14) return 1; //size error
if(gRxData[0] != 0xFF) return 2; //preamble error
if(gRxData[1] != 0x05) return 3; //header error
//check crc
for(k = 0, i = 0; i < gRxPos - 3; i++){
t = gRxData[i + 2];
for(j = 0; j < 8; j++, t <<= 1){
k = (k << 1) ^ (((t ^ k) & 0x80) ? 0x83 : 0);
}
}
if(k != gRxData[gRxPos - 1]) return 4; //crc error
return 0;
}
static UInt32 getU32(UInt8* t){
UInt32 v = t[3];
v = (v << 8) | t[2];
v = (v << 8) | t[1];
v = (v << 8) | t[0];
return v;
}
static UInt16 getU16(UInt8* t){
UInt32 v = t[1];
v = (v << 8) | t[0];
return v;
}
static UInt8 getU8(UInt8* t){
return t[0];
}
//offsets for main data
#define OFF_MAGIC 0xFF //EEPROM offsets
#define OFF_MODE 0xFE
//offsets for OFF mode
#define OFF_OFF_PREV_MODE 0xCF
//offsets for SOLID mode
#define OFF_SOLID_B 0xC8
#define OFF_SOLID_G 0xC7
#define OFF_SOLID_R 0xC6
#define OFF_SOLID_W 0xC5
//offsets for FADE mode
#define OFF_FADE_SPEED 0xBF
#define OFF_FADE_BRI 0xBE
#define MAGIC 'M' //main magic val
#define MODE_OFF 0 //modes
#define MODE_SOLID 1
#define MODE_FADE 2
#define MODE_MAX 3
#define FPTR_INIT 0
#define FPTR_DESTROY 1
#define FPTR_BTN_UP 2
#define FPTR_BTN_DOWN 3
#define FPTR_BTN_O 4
#define FPTR_DATA_INIT 5
#define FPTR_RUN 6
#define FPTR_MAX 7
union{
struct{
UInt8 selector;
}solid;
struct{
struct{
UInt8 val : 5;
UInt8 changing : 1;
UInt8 rising: 1;
}tmp[4];
UInt8 speed:7;
UInt8 adjBri:1;
UInt8 bri;
UInt16 speedLeft;
}fade;
struct{
UInt16 configModeStatus;
}off;
}tempData;
UInt8 exponents[32];
#define log math_log
#include <math.h>
#include <float.h>
#undef log
static UInt16 gRngSeed = 0x87F6;
/*
config mode is entered from off mode by pressing buttons
up = 00 down = 01 O = 10. lower bits are earlier preses
11 = end of sequence
*/
static const UInt16 gConfigSteps = 0b11101001000100; //UDUDOO
static UInt8 rand(void){
UInt8 ret;
gRngSeed = gRngSeed * 0x5EED + 13;
ret = gRngSeed >> 5;
log(ret);
return ret;
}
void delay_ms(UInt16 ms){ //uses TMR1 so it accounts for all interrupts' lost time
UInt16 d, t;
while(ms){
d = (ms > 50) ? 50 : ms;
ms -= d;
d *= 1000;
t = TMR1;
while(TMR1 - t < d);
}
}
static void genExponents(UInt8 bri){
UInt8 i;
double t;
for(i = 0; i < 32; i++){
t = i;
t = exp(t / 9);
t -= 1;
t *= 8.4;
t *= bri;
t /= 255;
t += 0.5; //round
exponents[i] = (UInt8)t;
}
}
UInt8 mOffInit(UInt8 arg){
if(arg != MODE_OFF){ //save previous mode
eeWrite(OFF_OFF_PREV_MODE, arg);
}
gLed[0] = 0;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
tempData.off.configModeStatus = gConfigSteps;
return 0;
}
UInt8 mOffDestr(UInt8 arg){
return eeRead(OFF_OFF_PREV_MODE); //return old mode
}
UInt8 mOffDataInit(UInt8 arg){
eeWrite(OFF_OFF_PREV_MODE, MODE_FADE);
return 0;
}
static void cfgModeShowVal(UInt8 colorMarker, UInt32 v){
//marker
{
gLed[0] = 0;
gLed[1] = (colorMarker & 4) ? 100 : 0;
gLed[2] = (colorMarker & 2) ? 100 : 0;
gLed[3] = (colorMarker & 1) ? 100 : 0;
delay_ms(1000);
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
}
//number itself, one decimal digit at a time, in proper order
{
UInt32 t = v;
UInt8 digit = 0;
//count digits
while(t){
digit++;
t /= 10;
}
if(!digit) digit = 1; //ero is still one digit
//show them
t = 1;
while(--digit) t *= 10;
do{
digit = v / t;
v %= t;
t /= 10;
while(digit--){
delay_ms(300); //wait
gLed[0] = 10;
delay_ms(500); //blink
gLed[0] = 0;
}
delay_ms(300); //wait
gLed[0] = 255;
delay_ms(700); //show end of digit
gLed[0] = 0;
delay_ms(500); //wait
}while(t);
}
}
static void mOffCheckConfigMode(UInt8 btn){
UInt8 t = (tempData.off.configModeStatus & 3) ^ btn;
tempData.off.configModeStatus >>= 2;
if(!t && (tempData.off.configModeStatus & 3) == 0b11){ //right code and we're done
//config mode
{
gLed[0] = 0;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
cfgModeShowVal(0b010, gSwVersion); //green -> sw version
cfgModeShowVal(0b001, gBattCentiVolts); //blue -> batt voltage
gLed[0] = 0;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
}
tempData.off.configModeStatus = gConfigSteps;
}
else if(t) tempData.off.configModeStatus = gConfigSteps; //wrong code
}
UInt8 mOffUp(UInt8 arg){
mOffCheckConfigMode(0b00);
return 0;
}
UInt8 mOffDown(UInt8 arg){
mOffCheckConfigMode(0b01);
return 0;
}
UInt8 mOffO(UInt8 arg){
mOffCheckConfigMode(0b10);
return 0;
}
UInt8 mSolidInit(UInt8 arg){
gLed[0] = eeRead(OFF_SOLID_W);
gLed[1] = eeRead(OFF_SOLID_R);
gLed[2] = eeRead(OFF_SOLID_G);
gLed[3] = eeRead(OFF_SOLID_B);
tempData.solid.selector = 0;
return 0;
}
UInt8 mSolidDestr(UInt8 arg){
eeWrite(OFF_SOLID_W, gLed[0]);
eeWrite(OFF_SOLID_R, gLed[1]);
eeWrite(OFF_SOLID_G, gLed[2]);
eeWrite(OFF_SOLID_B, gLed[3]);
return 0;
}
UInt8 mSolidUp(UInt8 arg){
UInt16 t = gLed[tempData.solid.selector];
t += 1 + (t + 3) / 4;
if(t > 255) t = 255;
gLed[tempData.solid.selector] = t;
return 0;
}
UInt8 mSolidDown(UInt8 arg){
Int16 t = gLed[tempData.solid.selector];
t -= 1 + (t + 3) / 4;
if(t < 0) t = 0;
gLed[tempData.solid.selector] = t;
return 0;
}
UInt8 mSolidO(UInt8 arg){
UInt8 s0, s1, s2, s3;
if(++tempData.solid.selector == 4) tempData.solid.selector = 0;
s0 = gLed[0];
s1 = gLed[1];
s2 = gLed[2];
s3 = gLed[3];
gLed[0] = 0;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
delay_ms(100);
gLed[tempData.solid.selector] = 100;
delay_ms(500);
gLed[tempData.solid.selector] = 0;
delay_ms(100);
gLed[0] = s0;
gLed[1] = s1;
gLed[2] = s2;
gLed[3] = s3;
return 0;
}
UInt8 mSolidDataInit(UInt8 arg){
eeWrite(OFF_SOLID_W, 5);
eeWrite(OFF_SOLID_R, 5);
eeWrite(OFF_SOLID_G, 5);
eeWrite(OFF_SOLID_B, 100);
return 0;
}
UInt8 mFadeInit(UInt8 arg){
UInt8 i;
gLed[0] = 0;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
tempData.fade.speed = eeRead(OFF_FADE_SPEED);
tempData.fade.bri = eeRead(OFF_FADE_BRI);
tempData.fade.speedLeft = 1; //start soon
tempData.fade.adjBri = 0;
for(i = 0; i < 4; i++){
tempData.fade.tmp[i].val = 0;
tempData.fade.tmp[i].changing = 0;
}
genExponents(tempData.fade.bri);
return 0;
}
UInt8 mFadeDestr(UInt8 arg){
eeWrite(OFF_FADE_SPEED, tempData.fade.speed);
eeWrite(OFF_FADE_BRI, tempData.fade.bri);
return 0;
}
UInt8 mFadeUp(UInt8 arg){
UInt16 t;
if(tempData.fade.adjBri){
t = (((UInt16)tempData.fade.bri)*5)/4;
tempData.fade.bri = (t > 255) ? 255 : t;
genExponents(tempData.fade.bri);
}
else{
if(tempData.fade.speed > 2) tempData.fade.speed--;
}
return 0;
}
UInt8 mFadeDown(UInt8 arg){
UInt8 t;
if(tempData.fade.adjBri){
t = (((UInt16)tempData.fade.bri)*4)/5;
tempData.fade.bri = (t < 5) ? 5 : t;
genExponents(tempData.fade.bri);
}
else{
if(tempData.fade.speed < 40) tempData.fade.speed++;
}
return 0;
}
UInt8 mFadeO(UInt8 arg){
UInt8 s0, s1, s2, s3;
s0 = gLed[0];
s1 = gLed[1];
s2 = gLed[2];
s3 = gLed[3];
if(tempData.fade.adjBri){ //switch to adjusting speed
gLed[0] = 100;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
delay_ms(150);
gLed[0] = 0;
gLed[1] = 100;
delay_ms(150);
gLed[1] = 0;
gLed[2] = 100;
delay_ms(150);
gLed[2] = 0;
gLed[3] = 100;
delay_ms(150);
tempData.fade.adjBri = 0;
}
else{ //switch to adjusting brightness
gLed[0] = 0;
gLed[1] = 0;
gLed[2] = 0;
gLed[3] = 0;
delay_ms(50);
gLed[0] = 1;
delay_ms(100);
gLed[0] = 0;
delay_ms(50);
gLed[0] = 30;
delay_ms(100);
gLed[0] = 0;
delay_ms(50);
gLed[0] = 80;
delay_ms(100);
gLed[0] = 0;
delay_ms(50);
gLed[0] = 200;
delay_ms(100);
gLed[0] = 0;
delay_ms(50);
tempData.fade.adjBri = 1;
}
gLed[0] = s0;
gLed[1] = s1;
gLed[2] = s2;
gLed[3] = s3;
return 0;
}
UInt8 mFadeDataInit(UInt8 arg){
eeWrite(OFF_FADE_SPEED, 10);
eeWrite(OFF_FADE_BRI, 255);
return 0;
}
#define chance(__val) (rand() < (__val))
UInt8 mFadeRun(UInt8 arg){
UInt8 i, t;
if(!--tempData.fade.speedLeft){
tempData.fade.speedLeft = ((UInt16)tempData.fade.speed) << 7;
for(i = 0; i < 4; i++){
//first update based on current rise/fall, fancel them if we hit boundaries
if(tempData.fade.tmp[i].changing){
t = tempData.fade.tmp[i].val;
if(tempData.fade.tmp[i].rising){
if(t == 0x1F){
tempData.fade.tmp[i].changing = 0;
}
else{
t++;
}
}
else{
if(t == 0){
tempData.fade.tmp[i].changing = 0;
}
else{
t--;
}
}
tempData.fade.tmp[i].val = t;
}
//then decide what to do probabilistically
if(tempData.fade.tmp[i].changing && chance((0x1F - tempData.fade.tmp[i].val) / 4 + 1)){ //chance of stopping a rise or a fall is very small and lessens the higher the value
tempData.fade.tmp[i].changing = 0;
}
else if(!tempData.fade.tmp[i].changing && chance(8)){ //chance of starting a rise or a fall
tempData.fade.tmp[i].changing = 1;
tempData.fade.tmp[i].rising = !chance(tempData.fade.tmp[i].val << 3); //thehigher the value, the less likely the fall and not the rise
}
}
gLed[0] = exponents[tempData.fade.tmp[0].val]; //white is special (we dim it)
if(gLed[0] > 32) gLed[0] = ((gLed[0] - 32) >> 1) + 32;
for(i = 1; i < 4; i++) gLed[i] = exponents[tempData.fade.tmp[i].val];
}
return 0;
}
typedef UInt8 (*modeFunc)(UInt8 arg);
static const modeFunc gModeFns[MODE_MAX][FPTR_MAX] = {
{mOffInit, mOffDestr, mOffUp, mOffDown, mOffO, mOffDataInit, NULL},
{mSolidInit, mSolidDestr, mSolidUp, mSolidDown, mSolidO, mSolidDataInit, NULL},
{mFadeInit, mFadeDestr, mFadeUp, mFadeDown, mFadeO, mFadeDataInit, mFadeRun}
};
void init(void){
PORTA = 0b00000000; // output low
ANSELA = 0b00000000; // no analog pins
TRISA = 0b11101000; // all in, RA0,1,2,4 out
OSCCON = 0b11110000; // 32MHz
OPTION_REG = 0b10001000; // pullups off, Tmr0 @ Fosc/8
INTCON = 0b10100000; // ints on, TMR0 used for PWM
APFCON = 0b00000001; // CCP1 is on RA5
T1CON = 0b00110001; // TMR1 at Fosc/32 = 1 MHz
T2CON = 0b00001011; // TMR2 at Fosc/256 = 125 KHz, overflow interrupts dithered by 2, so overflowing at 244.14 Hz (every 4 ms or so)
//delay till everything is ready
__delay_ms(300);
while(!HFIOFL || !PLLR);
}
static UInt8 runFuncPtr(UInt8 funcIdx, UInt8 curMode, UInt8 arg){
modeFunc f = gModeFns[curMode][funcIdx];
return f ? f(arg) : 0;
}
void main(void){
UInt8 mode;
init();
//save/restore values
if(eeRead(OFF_MAGIC) == MAGIC){
mode = eeRead(OFF_MODE);
}
else{
for(mode = 0; mode < MODE_MAX; mode++) runFuncPtr(FPTR_DATA_INIT, mode, 0);
eeWrite(OFF_MAGIC, MAGIC);
eeWrite(OFF_MODE, mode = MODE_OFF);
}
rxStart(); //start initial receive
runFuncPtr(FPTR_INIT, mode, 0); //init this mode
//main loop
while(1){
UInt8 t;
UInt16 pt = 0;
if(pt != TMR1 >> 6){ //run at most once every 64ms
runFuncPtr(FPTR_RUN, mode, 0);
pt = TMR1 >> 6;
}
if(gRxDone){
t = rxDecode();
if(t == 0){
UInt32 pressesTotal = getU32(gRxData + 2);
UInt32 pressessSinceBattChange = getU32(gRxData + 6);
UInt8 whichBtn = getU8(gRxData + 12);
gBattCentiVolts = getU16(gRxData + 10);
if(whichBtn == 1){ //Mode
if(mode != MODE_OFF){ //mode button is ignored when off
runFuncPtr(FPTR_DESTROY, mode, 0);
if(++mode == MODE_MAX) mode = 1;
runFuncPtr(FPTR_INIT, mode, 0);
eeWrite(OFF_MODE, mode);
}
}
else if(whichBtn == 4){ //UP
runFuncPtr(FPTR_BTN_UP, mode, 0);
}
else if(whichBtn == 3){ //DOWN
runFuncPtr(FPTR_BTN_DOWN, mode, 0);
}
else if(whichBtn == 2){ //"O" = enter
runFuncPtr(FPTR_BTN_O, mode, 0);
}
else if(whichBtn == 0){ //On-Off
if(mode == MODE_OFF){
mode = runFuncPtr(FPTR_DESTROY, mode, 0); //returns new mode
runFuncPtr(FPTR_INIT, mode, 0);
}
else{
runFuncPtr(FPTR_DESTROY, mode, 0);
runFuncPtr(FPTR_INIT, MODE_OFF, mode);
mode = MODE_OFF;
}
}
}
rxStart();
}
}
while(1);
}
static void interrupt isr(void){
UInt8 t;
static bit v = 0;
if(TMR0IF){
TMR0IF = 0;
gPwmCtr++;
gPwmCtr &=~ 0x0200;
t = LATA &~ 0x17;
if((gPwmCtr<<1) < (UInt16)gLed[0]) t |= 0x01; //white always dimmer
if((gPwmCtr>>1) < gLed[1]) t |= 0x04; //red always brighter
if(gPwmCtr < gLed[2]) t |= 0x10;
if(gPwmCtr < gLed[3]) t |= 0x02;
LATA = t;
}
if(TMR2IF){ //timeout
TMR2IF = 0;
TMR2ON = 0;
gRxDone = 1;
CCP1CON = 0;
CCP1IF = 0;
}
if(CCP1IF){
CCP1IF = 0; //clear this flag
if(gIntFirstEdgeSeen){ //rx going on
if(CCP1CON & 1){ //begin timed period
gIntCapturedTime = CCPR1;
TMR2 = 0;
gRngSeed ^= gIntCapturedTime; //add randomness
}
else{ //end timed perioud
gIntCapturedTime = CCPR1 - gIntCapturedTime;
if(gIntCapturedTime > 1150ul) gRxData[gRxPos] |= gRxMask; //one
gRxMask >>= 1;
if(!gRxMask){
gRxMask = 0x80;
gRxPos++;
if(gRxPos == sizeof(gRxData)){
CCP1CON = 0;
gRxDone = 1;
}
}
}
}
else{ //rx just stared
gIntFirstEdgeSeen = 1;
TMR2ON = 1;
TMR2 = 0;
TMR2IE = 1;
TMR2IF = 0;
}
if(!gRxDone) CCP1CON ^= 1; //catch other edge
}
}
Código: Seleccionar todo
#include <htc.h>
#define _XTAL_FREQ 4000000
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
__CONFIG(WRT_OFF & PLLEN_OFF & PLLEN_OFF & BORV_19 & LVP_OFF);
__IDLOC(0000);
typedef unsigned char UInt8;
typedef unsigned short UInt16;
typedef unsigned long UInt32;
typedef signed char Int8;
typedef signed short Int16;
typedef signed long Int32;
static UInt32 pressesSinceBattChange = 0;
void led(void){ //half a ms or so
TMR2ON = 1; //timer2 on
TMR2 = 0; //reset timer2
CCP1CON |= 0b00001100; //PWM on
__delay_us(500);
CCP1CON &=~ 0b00001111; //PWM off
TMR2ON = 0; //timer2 off
}
UInt8 eeRead(UInt8 addr){
EECON1 = 0b00000000; //read data
EEADRL = addr;
EECON1bits.RD = 1; //do it
return EEDATL;
}
void sendByte(UInt8 b){ //manchester
UInt8 i = 8;
do{
led();
if(b & 0x80) __delay_us(1500);
else __delay_us(1000);
b <<= 1;
}while(--i);
}
void eeWrite(UInt8 addr, UInt8 data){
EECON1= 0b00000100; //write data
EEADRL = addr;
EEDATL = data;
INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
INTCONbits.GIE = 1;
while(EECON1bits.WR);
}
UInt16 measureVoltage(void){ //return in centivolts
UInt8 i;
UInt32 t = 0;
FVRCON = 0b11000001; //output 1.024 V to ADC
ADCON1 = 0b11100000; //ADC VREF is VDD
ADCON0 = 0b01111101; //ADC on, FVR as input
while(!FVRRDY);
for(i = 0; i < 16; i++){ //sample 16x, extra resolution bit :)
GO = 1;
while(GO);
t += ADRES;
}
t = (0x199998UL + (t >> 1)) / t; //rounding is nice
FVRCON = 0b00000000; //FVR off
ADCON0 = 0b00000000; //ADC off
return t;
}
void sendButton(UInt8 btn){
UInt8 i, t, j, crc = 0;
UInt8 packet[12];
UInt16 v;
//read, increment, stick into packet, and write back "total presses" value
for(i = 0; i < 4; i++) packet[i] = eeRead(i);
for(i = 0; i < 4; i++) if(++packet[i]) break;
for(i = 0; i < 4; i++) eeWrite(i, packet[i]);
//stick number of presses since last batt change into packet
packet[4] = pressesSinceBattChange;
packet[5] = pressesSinceBattChange >> 8;
packet[6] = pressesSinceBattChange >> 16;
packet[7] = pressesSinceBattChange >> 24;
pressesSinceBattChange++;
//stick pattery voltage into packet
v = measureVoltage();
packet[8] = v;
packet[9] = v >> 8;
//stick pressed button into packet
packet[10] = btn;
//calculate CRC and stick it into packet
for(i = 0; i < sizeof(packet) - 1; i++){
t = packet[i];
for(j = 0; j < 8; j++, t <<= 1){
crc = (crc << 1) ^ (((t ^ crc) & 0x80) ? 0x83 : 0);
}
}
packet[sizeof(packet) - 1] = crc;
//send prologue
sendByte(0xFF);
//send header
sendByte(0x05);
//send data
for(i = 0; i < sizeof(packet); i++) sendByte(packet[i]);
//send footer as needed
sendByte(0xFF);
}
void log(UInt8 a){
static UInt16 addr = 0;
if(addr < 0x100) eeWrite(addr++, a);
}
void main(void){
OSCCON = 0b11101000; // 4MHz
OPTION_REG = 0b00001000; // pullups on, TMR0 @ Fosc/4
ANSELA = 0b00000000; // no analog pins
PORTA = 0b00000000; // output low
WPUA = 0b00011111; // pullups for buttons
TRISA = 0b11011111; // RA5 out, others in
VREGCON = 0b00000010; // lower power sleep please
INTCON = 0b00000000; // ints off and blocked
APFCON = 0b00000001; // CCP1 on RA5
CCP1CON = 0b00000000; //prepare for PWM
T2CON = 0b00000000; //prepare timer2
CCPR1L = 13;
PR2 = 25;
__delay_ms(300);
while(1){
UInt8 t, n, btn;
//wait for button press
OSCCON = 0b00000011; //switch to 31 KHZ clock
while(1){
t = PORTA & 0x1F;
while((n = (PORTA & 0x1F)) == t);
btn = (t ^ n) & t; //what changed and is now low (btn down)
if(btn && !(btn & (btn - 1))) break; //nothing? or more than one bit then we have a button press
t = n;
}
//ramp up the oscillator
OSCCON = 0b11101000; // 4MHz
//figure out which button it is
t = 0;
while(btn >>= 1) t++;
btn = t;
//wait for oscillator to be ready
while(!HFIOFL);
//send the code forever
t = 10; //initial delay before autorepeat
do{
if(t == 10 || t == 0) sendButton(btn);
if(t) t--;
if((PORTA & 0x1F) != n) break;
__delay_ms(50);
}while(1);
}
}