URL
https://opencores.org/ocsvn/395_vgs/395_vgs/trunk
Subversion Repositories 395_vgs
[/] [395_vgs/] [trunk/] [src/] [PIC18/] [intro.casm] - Rev 32
Compare with Previous | Blame | View Log
;/////////////////////////////////////////////////////////////////////////////////;// Code Generator: BoostC Compiler and Linker - http://www.picant.com/c2c/c.html;// License Type : Full License;// Limitations : PIC18 max code size:Unlimited, max RAM banks:Unlimited, Non commercial use only;/////////////////////////////////////////////////////////////////////////////////#include <system.h>#include "gpu_pic.h"//Loads the source address (registers 0, 1, and 2) into the GPUvoid load_s_addr(unsigned long address){portc = 0x02; //Load least significant byte0122 0E02 MOVLW 0x020124 6E82 MOVWF gbl_portcportb = (char) (0x000000FF & address);0126 503D MOVF load_s_add_0000C_arg_address, W0128 0BFF ANDLW 0xFF012A 6E81 MOVWF gbl_portbporta = 0x01; //enable load012C 0E01 MOVLW 0x01012E 6E80 MOVWF gbl_portaporta = 0x00; //load complete0130 6A80 CLRF gbl_portaaddress >>= 8;0132 503E MOVF load_s_add_0000C_arg_address+D'1', W0134 6E3D MOVWF load_s_add_0000C_arg_address0136 503F MOVF load_s_add_0000C_arg_address+D'2', W0138 6E3E MOVWF load_s_add_0000C_arg_address+D'1'013A 5040 MOVF load_s_add_0000C_arg_address+D'3', W013C 6E3F MOVWF load_s_add_0000C_arg_address+D'2'013E 6A40 CLRF load_s_add_0000C_arg_address+D'3'portc = 0x01; //Load middle byte0140 0E01 MOVLW 0x010142 6E82 MOVWF gbl_portcportb = (char) (0x000000FF & address);0144 503D MOVF load_s_add_0000C_arg_address, W0146 0BFF ANDLW 0xFF0148 6E81 MOVWF gbl_portbporta = 0x01; //enable load014A 0E01 MOVLW 0x01014C 6E80 MOVWF gbl_portaporta = 0x00; //load complete014E 6A80 CLRF gbl_portaaddress >>= 8;0150 503E MOVF load_s_add_0000C_arg_address+D'1', W0152 6E3D MOVWF load_s_add_0000C_arg_address0154 503F MOVF load_s_add_0000C_arg_address+D'2', W0156 6E3E MOVWF load_s_add_0000C_arg_address+D'1'0158 5040 MOVF load_s_add_0000C_arg_address+D'3', W015A 6E3F MOVWF load_s_add_0000C_arg_address+D'2'015C 6A40 CLRF load_s_add_0000C_arg_address+D'3'portc = 0x00; //Load most significant byte015E 6A82 CLRF gbl_portcportb = (char) (0x000000FF & address);0160 503D MOVF load_s_add_0000C_arg_address, W0162 0BFF ANDLW 0xFF0164 6E81 MOVWF gbl_portbporta = 0x01; //enable load0166 0E01 MOVLW 0x010168 6E80 MOVWF gbl_portaporta = 0x00; //load complete016A 6A80 CLRF gbl_portareturn;}016C 0012 RETURNvoid load_t_addr(unsigned long address){portc = 0x05;016E 0E05 MOVLW 0x050170 6E82 MOVWF gbl_portcportb = (char) (0x000000FF & address);0172 503D MOVF load_t_add_0000B_arg_address, W0174 0BFF ANDLW 0xFF0176 6E81 MOVWF gbl_portbporta = 0x01;0178 0E01 MOVLW 0x01017A 6E80 MOVWF gbl_portaporta = 0x00;017C 6A80 CLRF gbl_portaaddress >>= 8;017E 503E MOVF load_t_add_0000B_arg_address+D'1', W0180 6E3D MOVWF load_t_add_0000B_arg_address0182 503F MOVF load_t_add_0000B_arg_address+D'2', W0184 6E3E MOVWF load_t_add_0000B_arg_address+D'1'0186 5040 MOVF load_t_add_0000B_arg_address+D'3', W0188 6E3F MOVWF load_t_add_0000B_arg_address+D'2'018A 6A40 CLRF load_t_add_0000B_arg_address+D'3'portc = 0x04;018C 0E04 MOVLW 0x04018E 6E82 MOVWF gbl_portcportb = (char) (0x000000FF & address);0190 503D MOVF load_t_add_0000B_arg_address, W0192 0BFF ANDLW 0xFF0194 6E81 MOVWF gbl_portbporta = 0x01;0196 0E01 MOVLW 0x010198 6E80 MOVWF gbl_portaporta = 0x00;019A 6A80 CLRF gbl_portaaddress >>= 8;019C 503E MOVF load_t_add_0000B_arg_address+D'1', W019E 6E3D MOVWF load_t_add_0000B_arg_address01A0 503F MOVF load_t_add_0000B_arg_address+D'2', W01A2 6E3E MOVWF load_t_add_0000B_arg_address+D'1'01A4 5040 MOVF load_t_add_0000B_arg_address+D'3', W01A6 6E3F MOVWF load_t_add_0000B_arg_address+D'2'01A8 6A40 CLRF load_t_add_0000B_arg_address+D'3'portc = 0x03;01AA 0E03 MOVLW 0x0301AC 6E82 MOVWF gbl_portcportb = (char) (0x000000FF & address);01AE 503D MOVF load_t_add_0000B_arg_address, W01B0 0BFF ANDLW 0xFF01B2 6E81 MOVWF gbl_portbporta = 0x01;01B4 0E01 MOVLW 0x0101B6 6E80 MOVWF gbl_portaporta = 0x00;01B8 6A80 CLRF gbl_portareturn;}01BA 0012 RETURNvoid load_s_lines(unsigned lines){portc = 0x07;01BC 0E07 MOVLW 0x0701BE 6E82 MOVWF gbl_portcportb = (char) (0x00FF & lines);01C0 503D MOVF load_s_lin_0000A_arg_lines, W01C2 0BFF ANDLW 0xFF01C4 6E81 MOVWF gbl_portbporta = 0x01;01C6 0E01 MOVLW 0x0101C8 6E80 MOVWF gbl_portaporta = 0x00;01CA 6A80 CLRF gbl_portalines >>= 8;01CC 503E MOVF load_s_lin_0000A_arg_lines+D'1', W01CE 6E3D MOVWF load_s_lin_0000A_arg_lines01D0 6A3E CLRF load_s_lin_0000A_arg_lines+D'1'portc = 0x06;01D2 0E06 MOVLW 0x0601D4 6E82 MOVWF gbl_portcportb = (char) (0x00FF & lines);01D6 503D MOVF load_s_lin_0000A_arg_lines, W01D8 0BFF ANDLW 0xFF01DA 6E81 MOVWF gbl_portbporta = 0x01;01DC 0E01 MOVLW 0x0101DE 6E80 MOVWF gbl_portaporta = 0x00;01E0 6A80 CLRF gbl_portareturn;}01E2 0012 RETURNvoid load_l_size(unsigned size){portc = 0x09;01E4 0E09 MOVLW 0x0901E6 6E82 MOVWF gbl_portcportb = (char) (0x00FF & size);01E8 503D MOVF load_l_siz_00009_arg_size, W01EA 0BFF ANDLW 0xFF01EC 6E81 MOVWF gbl_portbporta = 0x01;01EE 0E01 MOVLW 0x0101F0 6E80 MOVWF gbl_portaporta = 0x00;01F2 6A80 CLRF gbl_portasize >>= 8;01F4 503E MOVF load_l_siz_00009_arg_size+D'1', W01F6 6E3D MOVWF load_l_siz_00009_arg_size01F8 6A3E CLRF load_l_siz_00009_arg_size+D'1'portc = 0x08;01FA 0E08 MOVLW 0x0801FC 6E82 MOVWF gbl_portcportb = (char) (0x000F & size);01FE 503D MOVF load_l_siz_00009_arg_size, W0200 0B0F ANDLW 0x0F0202 6E81 MOVWF gbl_portbporta = 0x01;0204 0E01 MOVLW 0x010206 6E80 MOVWF gbl_portaporta = 0x00;0208 6A80 CLRF gbl_portareturn;}020A 0012 RETURNvoid load_alphaOp( bool alphaOp){portc = 0x0A;020C 0E0A MOVLW 0x0A020E 6E82 MOVWF gbl_portcif (alphaOp)0210 A03D BTFSS load_alpha_00008_arg_alphaOp,00212 D003 BRA label268435770021A label268435770portb = 0x01;0214 0E01 MOVLW 0x010216 6E81 MOVWF gbl_portbelse0218 D001 BRA label268435773021C label268435773portb = 0x00;021A 6A81 CLRF gbl_portbporta = 0x01;021C 0E01 MOVLW 0x01021E 6E80 MOVWF gbl_portaporta = 0x00;0220 6A80 CLRF gbl_portareturn;}0222 0012 RETURNvoid draw(){porta = 00000010b; //initialize draw0116 0E02 MOVLW 0x020118 6E80 MOVWF gbl_portaporta = 00000000b; //draw command recieved, so turn off draw bit011A 6A80 CLRF gbl_portawhile ( !(portd & 10000000b) ) //hang here till we recieve idle from GPU011C label268435830011C AE83 BTFSS gbl_portd,7011E D7FE BRA label268435830{}}0120 0012 RETURN//draw a fullscreen backgroundvoid drawtobackground ( Bitmap source ){load_t_addr(0x00000000);02BA 6A3D CLRF load_t_add_0000B_arg_address02BC 6A3E CLRF load_t_add_0000B_arg_address+D'1'02BE 6A3F CLRF load_t_add_0000B_arg_address+D'2'02C0 6A40 CLRF load_t_add_0000B_arg_address+D'3'02C2 ECB7F000 CALL load_t_add_0000Bload_s_addr(source.address);02C6 5020 MOVF drawtoback_00007_arg_source, W02C8 6E3D MOVWF load_s_add_0000C_arg_address02CA 5021 MOVF drawtoback_00007_arg_source+D'1', W02CC 6E3E MOVWF load_s_add_0000C_arg_address+D'1'02CE 5022 MOVF drawtoback_00007_arg_source+D'2', W02D0 6E3F MOVWF load_s_add_0000C_arg_address+D'2'02D2 5023 MOVF drawtoback_00007_arg_source+D'3', W02D4 6E40 MOVWF load_s_add_0000C_arg_address+D'3'02D6 EC91F000 CALL load_s_add_0000Cload_s_lines(source.lines);02DA 5026 MOVF drawtoback_00007_arg_source+D'6', W02DC 6E3D MOVWF load_s_lin_0000A_arg_lines02DE 5027 MOVF drawtoback_00007_arg_source+D'7', W02E0 6E3E MOVWF load_s_lin_0000A_arg_lines+D'1'02E2 ECDEF000 CALL load_s_lin_0000Aload_l_size(source.width);02E6 5024 MOVF drawtoback_00007_arg_source+D'4', W02E8 6E3D MOVWF load_l_siz_00009_arg_size02EA 5025 MOVF drawtoback_00007_arg_source+D'5', W02EC 6E3E MOVWF load_l_siz_00009_arg_size+D'1'02EE ECF2F000 CALL load_l_siz_00009load_alphaOp(false);02F2 903D BCF load_alpha_00008_arg_alphaOp,002F4 EC06F001 CALL load_alpha_00008draw();02F8 EC8BF000 CALL draw_00000}02FC 0012 RETURNvoid drawsprite (Sprite sprite){unsigned long destination_address = sprite.position.y * 160;0224 502C MOVF drawsprite_00000_arg_sprite+D'12', W0226 6E35 MOVWF __mul_32_3_00006_arg_a0228 502D MOVF drawsprite_00000_arg_sprite+D'13', W022A 6E36 MOVWF __mul_32_3_00006_arg_a+D'1'022C 502E MOVF drawsprite_00000_arg_sprite+D'14', W022E 6E37 MOVWF __mul_32_3_00006_arg_a+D'2'0230 502F MOVF drawsprite_00000_arg_sprite+D'15', W0232 6E38 MOVWF __mul_32_3_00006_arg_a+D'3'0234 0EA0 MOVLW 0xA00236 6E39 MOVWF __mul_32_3_00006_arg_b0238 6A3A CLRF __mul_32_3_00006_arg_b+D'1'023A 6A3B CLRF __mul_32_3_00006_arg_b+D'2'023C 6A3C CLRF __mul_32_3_00006_arg_b+D'3'023E EC4CF000 CALL __mul_32_3_000060242 5000 MOVF CompTempVarRet0, W0244 6E31 MOVWF drawsprite_00000_1_destina_0000D0246 5001 MOVF CompTempVarRet0+D'1', W0248 6E32 MOVWF drawsprite_00000_1_destina_0000D+D'1'024A 5002 MOVF CompTempVarRet0+D'2', W024C 6E33 MOVWF drawsprite_00000_1_destina_0000D+D'2'024E 5003 MOVF CompTempVarRet0+D'3', W0250 6E34 MOVWF drawsprite_00000_1_destina_0000D+D'3'destination_address += sprite.position.x;0252 5028 MOVF drawsprite_00000_arg_sprite+D'8', W0254 2631 ADDWF drawsprite_00000_1_destina_0000D, F0256 5029 MOVF drawsprite_00000_arg_sprite+D'9', W0258 2232 ADDWFC drawsprite_00000_1_destina_0000D+D'1', F025A 502A MOVF drawsprite_00000_arg_sprite+D'10', W025C 2233 ADDWFC drawsprite_00000_1_destina_0000D+D'2', F025E 502B MOVF drawsprite_00000_arg_sprite+D'11', W0260 2234 ADDWFC drawsprite_00000_1_destina_0000D+D'3', Fload_t_addr(destination_address);0262 5031 MOVF drawsprite_00000_1_destina_0000D, W0264 6E3D MOVWF load_t_add_0000B_arg_address0266 5032 MOVF drawsprite_00000_1_destina_0000D+D'1', W0268 6E3E MOVWF load_t_add_0000B_arg_address+D'1'026A 5033 MOVF drawsprite_00000_1_destina_0000D+D'2', W026C 6E3F MOVWF load_t_add_0000B_arg_address+D'2'026E 5034 MOVF drawsprite_00000_1_destina_0000D+D'3', W0270 6E40 MOVWF load_t_add_0000B_arg_address+D'3'0272 ECB7F000 CALL load_t_add_0000Bload_s_addr(sprite.image.address);0276 5020 MOVF drawsprite_00000_arg_sprite, W0278 6E3D MOVWF load_s_add_0000C_arg_address027A 5021 MOVF drawsprite_00000_arg_sprite+D'1', W027C 6E3E MOVWF load_s_add_0000C_arg_address+D'1'027E 5022 MOVF drawsprite_00000_arg_sprite+D'2', W0280 6E3F MOVWF load_s_add_0000C_arg_address+D'2'0282 5023 MOVF drawsprite_00000_arg_sprite+D'3', W0284 6E40 MOVWF load_s_add_0000C_arg_address+D'3'0286 EC91F000 CALL load_s_add_0000Cload_s_lines(sprite.image.lines);028A 5026 MOVF drawsprite_00000_arg_sprite+D'6', W028C 6E3D MOVWF load_s_lin_0000A_arg_lines028E 5027 MOVF drawsprite_00000_arg_sprite+D'7', W0290 6E3E MOVWF load_s_lin_0000A_arg_lines+D'1'0292 ECDEF000 CALL load_s_lin_0000Aload_l_size(sprite.image.width);0296 5024 MOVF drawsprite_00000_arg_sprite+D'4', W0298 6E3D MOVWF load_l_siz_00009_arg_size029A 5025 MOVF drawsprite_00000_arg_sprite+D'5', W029C 6E3E MOVWF load_l_siz_00009_arg_size+D'1'029E ECF2F000 CALL load_l_siz_00009if (sprite.alpha)02A2 5230 MOVF drawsprite_00000_arg_sprite+D'16', F02A4 E004 BZ label26843575502AE label268435755load_alphaOp(true);02A6 803D BSF load_alpha_00008_arg_alphaOp,002A8 EC06F001 CALL load_alpha_00008else02AC D003 BRA label26843576102B4 label268435761load_alphaOp(false);02AE 903D BCF load_alpha_00008_arg_alphaOp,002B0 EC06F001 CALL load_alpha_00008draw();02B4 EC8BF000 CALL draw_00000}02B8 0012 RETURN#include <system.h>#include "gpu_pic.h"#include "input.h"#pragma CLOCK_FREQ 50000000 //required for accurate delay functionality//#pragma DATA 0x2007, 0x3F3A //Configuration bits to prevent having to configure in programmervoid scene1(void){char i = 0;char j = 0;//initalize graphics to original settingsBitmap black;black.address = 0x0001C200;black.lines = 0x00F0;black.width = 0x00A0;Sprite near_future;near_future.image.address = 0x00025800;near_future.image.lines = 0x000B;near_future.image.width = 0x00A0;near_future.position.x = 0;near_future.position.y = 63;near_future.alpha = 0;Sprite eye_anim;eye_anim.image.address = 0x00026CA0;eye_anim.image.lines = 0x001B;eye_anim.image.width = 0x001F;eye_anim.position.x = 14;eye_anim.position.y = 135;eye_anim.alpha = 0;Sprite eye_mask;eye_mask.image.address = 0x0001C200;eye_mask.image.lines = 0x001B;eye_mask.image.width = 0x001F;eye_mask.position.x = 14;eye_mask.position.y = 135;eye_mask.alpha = 0;Sprite compass;compass.image.address = 0x00029A40;compass.image.lines = 0x0006;compass.image.width = 0x002D;compass.position.x = 51;compass.position.y = 134;compass.alpha = 0;Sprite lines;lines.image.address = 0x00029E00;lines.image.lines = 0x001A;lines.image.width = 0x004F;lines.position.x = 73;lines.position.y = 76;lines.alpha = 0;Sprite bars;bars.image.address = 0x0002AE94;bars.image.lines = 15;bars.image.width = 0x002F;bars.position.x = 10;bars.position.y = 81;bars.alpha = 0;Sprite outline;outline.image.address = 0x00027D80;outline.image.lines = 46;outline.image.width = 43;outline.position.x = 27;outline.position.y = 130;outline.alpha = 1;//right limit is about 94,//left limit is about 51/*Sprite north;north.image.address = 0x00029ACA;north.image.lines = 6;north.image.width = 2;north.position.x = 92;north.position.y = 128;north.alpha = 1;Sprite east;east.image.address = 0x00029ACE;east.image.lines = 6;east.image.width = 2;east.position.x = 51;east.position.y = 128;east.alpha = 1;Sprite south;south.image.address = 0x00029AD2;south.image.lines = 6;south.image.width = 2;south.position.x = 65;south.position.y = 128;south.alpha = 1;Sprite west;west.image.address = 0x00029AD6;west.image.lines = 6;west.image.width = 2;west.position.x = 80;west.position.y = 128;west.alpha = 1;*///fade in introduction textdrawtobackground(black);delay_s(2);drawsprite(near_future);delay_ms(255);near_future.image.address = 0X00025EE0;drawtobackground(black);drawsprite(near_future);delay_ms(255);near_future.image.address = 0X000265C0;drawtobackground(black);drawsprite(near_future);delay_s(2);//black screen - dramatic pausedrawtobackground(black);delay_s(2);//draw eye open animationfor (i = 0; i < 5; i++){drawsprite(eye_mask);drawsprite(eye_anim);eye_anim.image.address += 0x00000020;delay_ms(100);}//draw and animate compassj = 30;for ( i = 0; i < 5; i++)//slow down{drawsprite(compass);//1compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//2compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//3compass.image.address -= 0x0000005C;delay_ms(j);j+= 15;}j=20;for ( i = 0; i < 5; i++)//reverse{compass.image.address += 0x0000005C;drawsprite(compass);//3compass.image.address -= 0x0000002E;delay_ms(j);drawsprite(compass);//2compass.image.address -= 0x0000002E;delay_ms(j);drawsprite(compass);//1delay_ms(j);j+= 15;}j=150;for ( i = 0; i < 3; i++)//speed up{drawsprite(compass);//1compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//2compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//3compass.image.address -= 0x0000005C;delay_ms(j);j-= 60;}drawsprite (lines);drawsprite (bars);j=10;for ( i = 0; i < 2; i++)//slow down{drawsprite(compass);compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//2compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//3compass.image.address -= 0x0000005C;delay_ms(j);j+= 40;}lines.image.address = 0x00029E50;lines.image.width = 0x004B;bars.image.address += 0x00000960;bars.image.width = 0x0035;drawsprite (lines);drawsprite (bars);drawsprite(compass);compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//2compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//3compass.image.address -= 0x0000005C;delay_ms(j);j+= 40;lines.image.address = 0x0002AE40;lines.image.width = 0x0053;bars.image.address += 0x0000960;drawsprite (lines);drawsprite (bars);//last compass animation//drawsprite (north);//drawsprite (south);//drawsprite (east);//drawsprite (west);drawsprite(compass);compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//2compass.image.address += 0x0000002E;delay_ms(j);drawsprite(compass);//3compass.image.address -= 0x0000005C;delay_ms(j);drawsprite(compass);//1lines.image.address = 0x0002BE80;bars.image.address += 0x00000961;bars.image.width = 0x0036;drawsprite (lines);drawsprite (bars);delay_ms(200);lines.image.address = 0x0002CEC0;lines.image.lines = 32;lines.image.width = 84;lines.position.x = 72;lines.position.y = 75;bars.image.address += 0x00000960;drawsprite (bars);drawsprite (lines);delay_ms(50);bars.image.address = 0x000713E0;bars.image.lines = 21;bars.image.width = 62;bars.position.x = 4;bars.position.y = 80;drawsprite (bars);drawsprite (lines);//glitch stuff upfor (i = 0; i < 50; i++){bars.image.address = 0x000713E0;lines.image.address = 0x000821E0;drawsprite(bars);drawsprite (lines);delay_ms(5);bars.image.address = 0x000706C0;lines.image.address = 0x0002CEC0;drawsprite(bars);drawsprite (lines);delay_ms(5);}//draw overlaydrawsprite (outline);for (i = 0; i < 30; i++){bars.image.address = 0x000713E0;lines.image.address = 0x000821E0;drawsprite(bars);drawsprite (lines);delay_ms(5);bars.image.address = 0x000706C0;lines.image.address = 0x0002CEC0;drawsprite(bars);drawsprite (lines);delay_ms(5);}//draw eye close animation with overlayeye_anim.image.address = 0x00026D20;for (i = 0; i < 5; i++){drawsprite(eye_mask);drawsprite(eye_anim);drawsprite(outline);eye_anim.image.address -= 0x00000020;delay_ms(50);}//draw eye open with overlayeye_anim.image.address = 0x00026CA0;for (i = 0; i < 5; i++){drawsprite(eye_mask);drawsprite(eye_anim);drawsprite(outline);eye_anim.image.address += 0x00000020;delay_ms(50);}delay_ms(255);//draw rest of overlaydrawsprite(eye_mask);outline.position.x = 24;outline.image.address = 0x00027DAB;outline.image.width = 46;drawsprite(outline);drawsprite(compass);delay_ms(200);outline.image.address = 0x00027DD9;outline.image.width = 60;drawsprite(outline);drawsprite(compass);delay_s(2);return;}void scene2(void){char i = 0;char j = 0;//initalize graphics to original settingsBitmap black;black.address = 0x0001C200;black.lines = 0x00F0;black.width = 0x00A0;Sprite pilot;pilot.image.address = 0x000AB180;//0x000A4740;pilot.image.lines = 170;pilot.image.width = 77;pilot.position.x = 20;pilot.position.y = 39;pilot.alpha = 1;Sprite screen0;screen0.image.address = 0x000A86AD;screen0.image.lines = 69;screen0.image.width = 40;screen0.position.x = 72;screen0.position.y = 71;screen0.alpha = 1;Sprite screen1;screen1.image.address = 0x000A4F0D;screen1.image.lines = 89;screen1.image.width = 59;screen1.position.x = 72;screen1.position.y = 59;screen1.alpha = 1;Sprite screen2;screen2.image.address = 0x0009E5C0;screen2.image.lines = 156;screen2.image.width = 57;screen2.position.x = 49;screen2.position.y = 25;screen2.alpha = 1;Sprite screen3;screen3.image.address = 0x0009E5F9;screen3.image.lines = 156;screen3.image.width = 38;screen3.position.x = 106;screen3.position.y = 25;screen3.alpha = 1;Sprite screen4;screen4.image.address = 0x0009A060;screen4.image.lines = 111;screen4.image.width = 40;screen4.position.x = 13;screen4.position.y = 3;screen4.alpha = 1;Sprite screen5;screen5.image.address = 0x0009A095;screen5.image.lines = 111;screen5.image.width = 21;screen5.position.x = 67;screen5.position.y = 3;screen5.alpha = 1;Sprite screen6;screen6.image.address = 0x00099EEB;screen6.image.lines = 17;screen6.image.width = 17;screen6.position.x = 120;screen6.position.y = 2;screen6.alpha = 1;Sprite screen7;screen7.image.address = 0x000AA575;screen7.image.lines = 20;screen7.image.width = 16;screen7.position.x = 143;screen7.position.y = 188;screen7.alpha = 1;Sprite boot0;boot0.image.address = 0x000A478D;boot0.image.lines = 12;boot0.image.width = 59;boot0.position.x = 6;boot0.position.y = 15;boot0.alpha = 1;Sprite boot1;boot1.image.address = 0x000A0EBF;boot1.image.lines = 9;boot1.image.width = 65;boot1.position.x = 6;boot1.position.y = 29;boot1.alpha = 1;Sprite boot2;boot2.image.address = 0x000A145F;boot2.image.lines = 9;boot2.image.width = 65;boot2.position.x = 6;boot2.position.y = 44;boot2.alpha = 1;Sprite boot3;boot3.image.address = 0x000A19FF;boot3.image.lines = 9;boot3.image.width = 26;boot3.position.x = 6;boot3.position.y = 58;boot3.alpha = 1;Sprite boot4;boot4.image.address = 0x00099AC0;boot4.image.lines = 9;boot4.image.width = 60;boot4.position.x = 6;boot4.position.y = 73;boot4.alpha = 1;Sprite boot5;boot5.image.address = 0x00099AFC;boot5.image.lines = 9;boot5.image.width = 60;boot5.position.x = 66;boot5.position.y = 73;boot5.alpha = 1;drawtobackground (black);delay_s(1);drawsprite(pilot);delay_ms(200);drawsprite(screen0);//flash newest screenfor (i = 0; i < 10; i++){drawtobackground(black);drawsprite(pilot);delay_ms(25);drawsprite(screen0);delay_ms(25);}drawsprite(screen1);for (i = 0; i < 10; i++){drawtobackground(black);drawsprite(pilot);drawsprite(screen0);delay_ms(25);drawsprite(screen1);delay_ms(25);}drawsprite(screen2);drawsprite(screen3);for (i = 0; i < 10; i++){drawtobackground(black);drawsprite(pilot);drawsprite(screen0);drawsprite(screen1);delay_ms(25);drawsprite(screen2);drawsprite(screen3);delay_ms(25);if (i == 3)pilot.image.address = 0x000AB1CD;}delay_ms(255);drawsprite(screen4);drawsprite(screen5);drawsprite(screen6);drawsprite(screen7);for (i = 0; i < 10; i++){drawtobackground(black);drawsprite(pilot);drawsprite(screen0);drawsprite(screen1);drawsprite(screen2);drawsprite(screen3);delay_ms(25);drawsprite(screen4);drawsprite(screen5);drawsprite(screen6);drawsprite(screen7);delay_ms(25);if (i == 7)pilot.image.address = 0x000A4740;}delay_s (1);drawsprite(boot0);delay_ms(255);delay_ms(255);drawsprite(boot1);delay_ms(255);delay_ms(255);delay_ms(255);drawsprite(boot2);delay_s(2);drawsprite(boot3);delay_ms(255);drawsprite(boot4);drawsprite(boot5);delay_s(1);return;}void scene4(void){char i = 0;char j = 0;Bitmap black;black.address = 0x0001C200;black.lines = 0x00F0;black.width = 0x00A0;Sprite skyline;skyline.image.address = 0x00090510;skyline.image.lines = 320;skyline.image.width = 0;skyline.position.x = 80;skyline.position.y = 0;skyline.alpha = 0;Sprite plane_1;plane_1.image.address = 0x0008B7E0;plane_1.image.lines = 123;plane_1.image.width = 40;plane_1.position.x = 0;plane_1.position.y = 200;plane_1.alpha = 1;Sprite plane_2;plane_2.image.address = 0x0008B808;plane_2.image.lines = 123;plane_2.image.width = 40;plane_2.position.x = 40;plane_2.position.y = 200;plane_2.alpha = 1;Sprite plane_3;plane_3.image.address = 0x0008B830;plane_3.image.lines = 123;plane_3.image.width = 40;plane_3.position.x = 80;plane_3.position.y = 200;plane_3.alpha = 1;Sprite plane_4;plane_4.image.address = 0x0008B858;plane_4.image.lines = 123;plane_4.image.width = 40;plane_4.position.x = 120;plane_4.position.y = 200;plane_4.alpha = 1;drawtobackground(black);for (i = 0; i <80 ; i++){drawsprite (skyline);drawsprite (plane_1);drawsprite (plane_2);drawsprite (plane_3);drawsprite (plane_4);//do some slide fx hereskyline.image.width +=2;skyline.image.address --;skyline.position.x --;plane_1.position.y -= 1;plane_2.position.y -= 1;plane_3.position.y -= 1;plane_4.position.y -= 1;delay_ms(20 + i/2);}delay_s(3);}void scene5(void){char i = 0;char j = 0;unsigned long takeoff_addr[8] ={0x0002E720,0x000332C0,0x00037E60,0x0003CA00,0x00040BA0,0x00044D40,0x00049840,0x0004E3E0};char takeoff_lines[8] ={121,121,121,105,105,120,120,121};Bitmap black;black.address = 0x0001C200;black.lines = 0x00F0;black.width = 0x00A0;Sprite takeoff;takeoff.image.address = takeoff_addr[0];takeoff.image.lines = takeoff_lines[0];takeoff.image.width = 160;takeoff.position.x = 0;takeoff.position.y = 49;takeoff.alpha = 0;drawtobackground(black);//accelerate planefor (i = 0; i < 15 ; i++){for ( j = 0; j < 8; j++){drawsprite (takeoff);takeoff.image.address = takeoff_addr[j];takeoff.image.lines = takeoff_lines[j];delay_ms (100 - (i * 4));}}//max speedfor (i = 0; i < 10 ; i++){for ( j = 0; j < 8; j++){drawsprite (takeoff);takeoff.image.address = takeoff_addr[j];takeoff.image.lines = takeoff_lines[j];delay_ms(40);}}}void bootup(void){char i = 0;0334 6A05 CLRF bootup_00000_1_ichar j = 0;0336 6A06 CLRF bootup_00000_1_jBitmap black;black.address = 0x0001C200;0338 6A07 CLRF bootup_00000_1_black033A 0EC2 MOVLW 0xC2033C 6E08 MOVWF bootup_00000_1_black+D'1'033E 0E01 MOVLW 0x010340 6E09 MOVWF bootup_00000_1_black+D'2'0342 6A0A CLRF bootup_00000_1_black+D'3'black.lines = 0x00F0;0344 0EF0 MOVLW 0xF00346 6E0D MOVWF bootup_00000_1_black+D'6'0348 6A0E CLRF bootup_00000_1_black+D'7'black.width = 0x00A0;034A 0EA0 MOVLW 0xA0034C 6E0B MOVWF bootup_00000_1_black+D'4'034E 6A0C CLRF bootup_00000_1_black+D'5'Sprite frame;frame.image.address = 0x00376800;0350 6A0F CLRF bootup_00000_1_frame0352 0E68 MOVLW 0x680354 6E10 MOVWF bootup_00000_1_frame+D'1'0356 0E37 MOVLW 0x370358 6E11 MOVWF bootup_00000_1_frame+D'2'035A 6A12 CLRF bootup_00000_1_frame+D'3'frame.image.lines = 160;035C 0EA0 MOVLW 0xA0035E 6E15 MOVWF bootup_00000_1_frame+D'6'0360 6A16 CLRF bootup_00000_1_frame+D'7'frame.image.width = 79;0362 0E4F MOVLW 0x4F0364 6E13 MOVWF bootup_00000_1_frame+D'4'0366 6A14 CLRF bootup_00000_1_frame+D'5'frame.position.x = 0;0368 6A17 CLRF bootup_00000_1_frame+D'8'036A 6A18 CLRF bootup_00000_1_frame+D'9'036C 6A19 CLRF bootup_00000_1_frame+D'10'036E 6A1A CLRF bootup_00000_1_frame+D'11'frame.position.y = 0;0370 6A1B CLRF bootup_00000_1_frame+D'12'0372 6A1C CLRF bootup_00000_1_frame+D'13'0374 6A1D CLRF bootup_00000_1_frame+D'14'0376 6A1E CLRF bootup_00000_1_frame+D'15'frame.alpha = 0;0378 6A1F CLRF bootup_00000_1_frame+D'16'//reset frame to centerframe.position.x = 40;037A 0E28 MOVLW 0x28037C 6E17 MOVWF bootup_00000_1_frame+D'8'037E 6A18 CLRF bootup_00000_1_frame+D'9'0380 6A19 CLRF bootup_00000_1_frame+D'10'0382 6A1A CLRF bootup_00000_1_frame+D'11'frame.position.y = 40;0384 0E28 MOVLW 0x280386 6E1B MOVWF bootup_00000_1_frame+D'12'0388 6A1C CLRF bootup_00000_1_frame+D'13'038A 6A1D CLRF bootup_00000_1_frame+D'14'038C 6A1E CLRF bootup_00000_1_frame+D'15'drawtobackground(black);038E 500E MOVF bootup_00000_1_black+D'7', W0390 6E27 MOVWF drawtoback_00007_arg_source+D'7'0392 500D MOVF bootup_00000_1_black+D'6', W0394 6E26 MOVWF drawtoback_00007_arg_source+D'6'0396 500C MOVF bootup_00000_1_black+D'5', W0398 6E25 MOVWF drawtoback_00007_arg_source+D'5'039A 500B MOVF bootup_00000_1_black+D'4', W039C 6E24 MOVWF drawtoback_00007_arg_source+D'4'039E 500A MOVF bootup_00000_1_black+D'3', W03A0 6E23 MOVWF drawtoback_00007_arg_source+D'3'03A2 5009 MOVF bootup_00000_1_black+D'2', W03A4 6E22 MOVWF drawtoback_00007_arg_source+D'2'03A6 5008 MOVF bootup_00000_1_black+D'1', W03A8 6E21 MOVWF drawtoback_00007_arg_source+D'1'03AA 5007 MOVF bootup_00000_1_black, W03AC 6E20 MOVWF drawtoback_00007_arg_source03AE EC5DF001 CALL drawtoback_00007delay_ms(200);03B2 0EC8 MOVLW 0xC803B4 6E20 MOVWF delay_ms_00000_arg_del03B6 EC02F000 CALL delay_ms_00000//play boot moviefor (i = 0; i < 21; i++)03BA 6A05 CLRF bootup_00000_1_i03BC label26843721203BC 0E15 MOVLW 0x1503BE 6005 CPFSLT bootup_00000_1_i03C0 D072 BRA label26843721304A2 2A05 INCF bootup_00000_1_i, F04A4 D78B BRA label26843721204A6 label268437213{//show 'left' framedrawsprite (frame);03C2 501F MOVF bootup_00000_1_frame+D'16', W03C4 6E30 MOVWF drawsprite_00000_arg_sprite+D'16'03C6 501E MOVF bootup_00000_1_frame+D'15', W03C8 6E2F MOVWF drawsprite_00000_arg_sprite+D'15'03CA 501D MOVF bootup_00000_1_frame+D'14', W03CC 6E2E MOVWF drawsprite_00000_arg_sprite+D'14'03CE 501C MOVF bootup_00000_1_frame+D'13', W03D0 6E2D MOVWF drawsprite_00000_arg_sprite+D'13'03D2 501B MOVF bootup_00000_1_frame+D'12', W03D4 6E2C MOVWF drawsprite_00000_arg_sprite+D'12'03D6 501A MOVF bootup_00000_1_frame+D'11', W03D8 6E2B MOVWF drawsprite_00000_arg_sprite+D'11'03DA 5019 MOVF bootup_00000_1_frame+D'10', W03DC 6E2A MOVWF drawsprite_00000_arg_sprite+D'10'03DE 5018 MOVF bootup_00000_1_frame+D'9', W03E0 6E29 MOVWF drawsprite_00000_arg_sprite+D'9'03E2 5017 MOVF bootup_00000_1_frame+D'8', W03E4 6E28 MOVWF drawsprite_00000_arg_sprite+D'8'03E6 5016 MOVF bootup_00000_1_frame+D'7', W03E8 6E27 MOVWF drawsprite_00000_arg_sprite+D'7'03EA 5015 MOVF bootup_00000_1_frame+D'6', W03EC 6E26 MOVWF drawsprite_00000_arg_sprite+D'6'03EE 5014 MOVF bootup_00000_1_frame+D'5', W03F0 6E25 MOVWF drawsprite_00000_arg_sprite+D'5'03F2 5013 MOVF bootup_00000_1_frame+D'4', W03F4 6E24 MOVWF drawsprite_00000_arg_sprite+D'4'03F6 5012 MOVF bootup_00000_1_frame+D'3', W03F8 6E23 MOVWF drawsprite_00000_arg_sprite+D'3'03FA 5011 MOVF bootup_00000_1_frame+D'2', W03FC 6E22 MOVWF drawsprite_00000_arg_sprite+D'2'03FE 5010 MOVF bootup_00000_1_frame+D'1', W0400 6E21 MOVWF drawsprite_00000_arg_sprite+D'1'0402 500F MOVF bootup_00000_1_frame, W0404 6E20 MOVWF drawsprite_00000_arg_sprite0406 EC12F001 CALL drawsprite_00000//show 'right' frameif (i > 18)040A 0E12 MOVLW 0x12040C 6405 CPFSGT bootup_00000_1_i040E D005 BRA label268437220041A label268437220delay_ms(100);0410 0E64 MOVLW 0x640412 6E20 MOVWF delay_ms_00000_arg_del0414 EC02F000 CALL delay_ms_00000else0418 D004 BRA label2684372260422 label268437226delay_ms(60);041A 0E3C MOVLW 0x3C041C 6E20 MOVWF delay_ms_00000_arg_del041E EC02F000 CALL delay_ms_00000frame.image.address += 80;0422 0E50 MOVLW 0x500424 260F ADDWF bootup_00000_1_frame, F0426 0E00 MOVLW 0x000428 2210 ADDWFC bootup_00000_1_frame+D'1', F042A 0E00 MOVLW 0x00042C 2211 ADDWFC bootup_00000_1_frame+D'2', F042E 0E00 MOVLW 0x000430 2212 ADDWFC bootup_00000_1_frame+D'3', Fdrawsprite (frame);0432 501F MOVF bootup_00000_1_frame+D'16', W0434 6E30 MOVWF drawsprite_00000_arg_sprite+D'16'0436 501E MOVF bootup_00000_1_frame+D'15', W0438 6E2F MOVWF drawsprite_00000_arg_sprite+D'15'043A 501D MOVF bootup_00000_1_frame+D'14', W043C 6E2E MOVWF drawsprite_00000_arg_sprite+D'14'043E 501C MOVF bootup_00000_1_frame+D'13', W0440 6E2D MOVWF drawsprite_00000_arg_sprite+D'13'0442 501B MOVF bootup_00000_1_frame+D'12', W0444 6E2C MOVWF drawsprite_00000_arg_sprite+D'12'0446 501A MOVF bootup_00000_1_frame+D'11', W0448 6E2B MOVWF drawsprite_00000_arg_sprite+D'11'044A 5019 MOVF bootup_00000_1_frame+D'10', W044C 6E2A MOVWF drawsprite_00000_arg_sprite+D'10'044E 5018 MOVF bootup_00000_1_frame+D'9', W0450 6E29 MOVWF drawsprite_00000_arg_sprite+D'9'0452 5017 MOVF bootup_00000_1_frame+D'8', W0454 6E28 MOVWF drawsprite_00000_arg_sprite+D'8'0456 5016 MOVF bootup_00000_1_frame+D'7', W0458 6E27 MOVWF drawsprite_00000_arg_sprite+D'7'045A 5015 MOVF bootup_00000_1_frame+D'6', W045C 6E26 MOVWF drawsprite_00000_arg_sprite+D'6'045E 5014 MOVF bootup_00000_1_frame+D'5', W0460 6E25 MOVWF drawsprite_00000_arg_sprite+D'5'0462 5013 MOVF bootup_00000_1_frame+D'4', W0464 6E24 MOVWF drawsprite_00000_arg_sprite+D'4'0466 5012 MOVF bootup_00000_1_frame+D'3', W0468 6E23 MOVWF drawsprite_00000_arg_sprite+D'3'046A 5011 MOVF bootup_00000_1_frame+D'2', W046C 6E22 MOVWF drawsprite_00000_arg_sprite+D'2'046E 5010 MOVF bootup_00000_1_frame+D'1', W0470 6E21 MOVWF drawsprite_00000_arg_sprite+D'1'0472 500F MOVF bootup_00000_1_frame, W0474 6E20 MOVWF drawsprite_00000_arg_sprite0476 EC12F001 CALL drawsprite_00000if (i > 18)047A 0E12 MOVLW 0x12047C 6405 CPFSGT bootup_00000_1_i047E D005 BRA label268437236048A label268437236delay_ms(100);0480 0E64 MOVLW 0x640482 6E20 MOVWF delay_ms_00000_arg_del0484 EC02F000 CALL delay_ms_00000else0488 D004 BRA label2684372420492 label268437242delay_ms(60);048A 0E3C MOVLW 0x3C048C 6E20 MOVWF delay_ms_00000_arg_del048E EC02F000 CALL delay_ms_00000//skip down to next two framesframe.image.address += 25520;0492 0EB0 MOVLW 0xB00494 260F ADDWF bootup_00000_1_frame, F0496 0E63 MOVLW 0x630498 2210 ADDWFC bootup_00000_1_frame+D'1', F049A 0E00 MOVLW 0x00049C 2211 ADDWFC bootup_00000_1_frame+D'2', F049E 0E00 MOVLW 0x0004A0 2212 ADDWFC bootup_00000_1_frame+D'3', F}return;}04A6 0012 RETURNvoid main( void ){//Configure port Aadcon1 = 0x07; //disable analog inputs04A8 0E07 MOVLW 0x0704AA 6EC1 MOVWF gbl_adcon1trisa = 00000000b;04AC 6A92 CLRF gbl_trisa//Configure port Btrisb = 0x00;04AE 6A93 CLRF gbl_trisb//Configure port Ctrisc = 10000000b;04B0 0E80 MOVLW 0x8004B2 6E94 MOVWF gbl_trisc//Configure port Dtrisd = 10000000b;04B4 6E95 MOVWF gbl_trisd//Initialize port Aporta = 0x00;04B6 6A80 CLRF gbl_porta//Initialize port Bportb = 0x00;04B8 6A81 CLRF gbl_portb//Initialize port Cportc = 0x00;04BA 6A82 CLRF gbl_portc//Initialize port Dportc = 0x00;04BC 6A82 CLRF gbl_portc//wait for GPU to get ready//START OF REAL PROGRAM--------------------------------------------//char input;//setupinput();bootup(); //draw bootup logo04BE EC9AF001 CALL bootup_00000/* //Endless loopwhile( true ){scene1();scene2();scene4();scene5();//final haltdelay_s(5);}*///ERIC input stuffchar temp;setupinput();04C2 EC7FF001 CALL setupinput_00000while( true )04C6 label26843726404DE D7F3 BRA label268437264{temp = getinput();04C6 EC8AF001 CALL getinput_0000004CA 5000 MOVF CompTempVarRet0, W04CC 6E04 MOVWF main_1_tempif(temp & 11110111b)04CE 0EF7 MOVLW 0xF704D0 1404 ANDWF main_1_temp, W04D2 A4D8 BTFSS STATUS,Z{set_bit(portd, 0);04D4 8083 BSF gbl_portd,0}if(temp & 11111011b)04D6 0EFB MOVLW 0xFB04D8 1404 ANDWF main_1_temp, W04DA A4D8 BTFSS STATUS,Z{clear_bit(portd, 0);04DC 9083 BCF gbl_portd,0}}}#include <system.h>#include "input.h"#pragma CLOCK_FREQ 50000000char getinput(){//C4 SDO//C5 SDI//C6 TX//C7 RX//clear_bit(portd, 5);//delay_ms(10);set_bit(portd, 5);0314 8A83 BSF gbl_portd,5delay_us(12);0316 0E0C MOVLW 0x0C0318 6E05 MOVWF delay_us_00000_arg_del031A EC3EF000 CALL delay_us_00000clear_bit(portd, 5);031E 9A83 BCF gbl_portd,5delay_us(6);0320 0E06 MOVLW 0x060322 6E05 MOVWF delay_us_00000_arg_del0324 EC3EF000 CALL delay_us_00000set_bit(rcsta, SREN); //Single reception0328 8AAB BSF gbl_rcsta,5if(pir1 & 0b00100000)032A AA9E BTFSS gbl_pir1,5032C D002 BRA label2684375100332 label268437510{return rcreg;032E 50AE MOVF gbl_rcreg, W0330 6E00 MOVWF CompTempVarRet0}}0332 0012 RETURNvoid setupinput(void){clear_bit(trisc, 6);02FE 9C94 BCF gbl_trisc,6set_bit(trisc, 7);0300 8E94 BSF gbl_trisc,7set_bit(trisc, 5);0302 8A94 BSF gbl_trisc,5spbrg = 255;0304 68AF SETF gbl_spbrgset_bit(txsta,SYNC);0306 88AC BSF gbl_txsta,4set_bit(rcsta,SPEN);0308 8EAB BSF gbl_rcsta,7set_bit(txsta,CSRC);030A 8EAC BSF gbl_txsta,7clear_bit(rcsta, SREN);030C 9AAB BCF gbl_rcsta,5clear_bit(rcsta, CREN);030E 98AB BCF gbl_rcsta,4//set_bit(pie1, RCIE); //enable interrupts//RCIF will be set when reception//is completed//interrupt is generated when//RCIE was set//read RCREG to get dataclear_bit(portd, 5);0310 9A83 BCF gbl_portd,5}0312 0012 RETURN// read all 8 bits, then decide which way to move the sprite// table of values here//*********************************************************// should probably have separate signals for each button...//*********************************************************//from high bit to low bit// Left Right Down Up Start Select B A// 11111111 - no button pushed// 11111110 - A// 11111101 - B// 11111011 - Select// 11110111 - Start// 11101111 - Up// 11011111 - Down// 10111111 - Right// 01111111 - Left// Other possible functionality// 01011111 - Diagonal Left/Down// 10011111 - Diagonal Right/Down// 01101111 - Diagonal Left/Up// 10101111 - Diagonal Right/Up////////////////////////////////////////// Code with no source :-)////////////////////////////////////////0000 EF70F002 GOTO _startup0004 delay_ms_00000; { delay_ms ; function begin0004 5220 MOVF delay_ms_00000_arg_del, F0006 A4D8 BTFSS STATUS,Z0008 EF07F000 GOTO label4026531859000C 0012 RETURN000E label4026531859000E 0EFF MOVLW 0xFF0010 label40265318600010 0000 NOP0012 0000 NOP0014 0000 NOP0016 0000 NOP0018 0000 NOP001A 0000 NOP001C 0000 NOP001E 0000 NOP0020 0000 NOP0022 0000 NOP0024 0000 NOP0026 0000 NOP0028 0000 NOP002A 0000 NOP002C 0000 NOP002E 0000 NOP0030 0000 NOP0032 0000 NOP0034 0000 NOP0036 0000 NOP0038 0000 NOP003A 0000 NOP003C 0000 NOP003E 0000 NOP0040 0000 NOP0042 0000 NOP0044 0000 NOP0046 0000 NOP0048 0000 NOP004A 0000 NOP004C 0000 NOP004E 0000 NOP0050 0000 NOP0052 0000 NOP0054 0000 NOP0056 0000 NOP0058 0000 NOP005A 0000 NOP005C 0000 NOP005E 0000 NOP0060 0000 NOP0062 0000 NOP0064 0000 NOP0066 0000 NOP0068 0000 NOP006A 0FFF ADDLW 0xFF006C A4D8 BTFSS STATUS,Z006E EF08F000 GOTO label40265318600072 0000 NOP0074 2E20 DECFSZ delay_ms_00000_arg_del, F0076 EF07F000 GOTO label4026531859007A 0012 RETURN; } delay_ms function end007C delay_us_00000; { delay_us ; function begin007C 5205 MOVF delay_us_00000_arg_del, F007E A4D8 BTFSS STATUS,Z0080 EF43F000 GOTO label40265318440084 0012 RETURN0086 label40265318440086 0E02 MOVLW 0x020088 label40265318450088 0FFF ADDLW 0xFF008A A4D8 BTFSS STATUS,Z008C EF44F000 GOTO label40265318450090 2E05 DECFSZ delay_us_00000_arg_del, F0092 EF43F000 GOTO label40265318440096 0012 RETURN; } delay_us function end0098 __mul_32_3_00006; { __mul_32_32 ; function begin0098 6A00 CLRF CompTempVarRet0009A 6A01 CLRF CompTempVarRet0+D'1'009C 6A02 CLRF CompTempVarRet0+D'2'009E 6A03 CLRF CompTempVarRet0+D'3'00A0 6A02 CLRF CompTempVarRet0+D'2'00A2 6A03 CLRF CompTempVarRet0+D'3'00A4 5035 MOVF __mul_32_3_00006_arg_a, W00A6 0239 MULWF __mul_32_3_00006_arg_b00A8 50F3 MOVF gbl_prodl, W00AA 6E00 MOVWF CompTempVarRet000AC 50F4 MOVF gbl_prodh, W00AE 6E01 MOVWF CompTempVarRet0+D'1'00B0 5036 MOVF __mul_32_3_00006_arg_a+D'1', W00B2 0239 MULWF __mul_32_3_00006_arg_b00B4 50F3 MOVF gbl_prodl, W00B6 2601 ADDWF CompTempVarRet0+D'1', F00B8 50F4 MOVF gbl_prodh, W00BA 2202 ADDWFC CompTempVarRet0+D'2', F00BC B0D8 BTFSC gbl_status,000BE 2A03 INCF CompTempVarRet0+D'3', F00C0 5037 MOVF __mul_32_3_00006_arg_a+D'2', W00C2 0239 MULWF __mul_32_3_00006_arg_b00C4 50F3 MOVF gbl_prodl, W00C6 2602 ADDWF CompTempVarRet0+D'2', F00C8 50F4 MOVF gbl_prodh, W00CA 2203 ADDWFC CompTempVarRet0+D'3', F00CC 5038 MOVF __mul_32_3_00006_arg_a+D'3', W00CE 0239 MULWF __mul_32_3_00006_arg_b00D0 50F3 MOVF gbl_prodl, W00D2 2603 ADDWF CompTempVarRet0+D'3', F00D4 5035 MOVF __mul_32_3_00006_arg_a, W00D6 023A MULWF __mul_32_3_00006_arg_b+D'1'00D8 50F3 MOVF gbl_prodl, W00DA 2601 ADDWF CompTempVarRet0+D'1', F00DC 50F4 MOVF gbl_prodh, W00DE 2202 ADDWFC CompTempVarRet0+D'2', F00E0 B0D8 BTFSC gbl_status,000E2 2A03 INCF CompTempVarRet0+D'3', F00E4 5036 MOVF __mul_32_3_00006_arg_a+D'1', W00E6 023A MULWF __mul_32_3_00006_arg_b+D'1'00E8 50F3 MOVF gbl_prodl, W00EA 2602 ADDWF CompTempVarRet0+D'2', F00EC 50F4 MOVF gbl_prodh, W00EE 2203 ADDWFC CompTempVarRet0+D'3', F00F0 5037 MOVF __mul_32_3_00006_arg_a+D'2', W00F2 023A MULWF __mul_32_3_00006_arg_b+D'1'00F4 50F3 MOVF gbl_prodl, W00F6 2603 ADDWF CompTempVarRet0+D'3', F00F8 5035 MOVF __mul_32_3_00006_arg_a, W00FA 023B MULWF __mul_32_3_00006_arg_b+D'2'00FC 50F3 MOVF gbl_prodl, W00FE 2602 ADDWF CompTempVarRet0+D'2', F0100 50F4 MOVF gbl_prodh, W0102 2203 ADDWFC CompTempVarRet0+D'3', F0104 5036 MOVF __mul_32_3_00006_arg_a+D'1', W0106 023B MULWF __mul_32_3_00006_arg_b+D'2'0108 50F3 MOVF gbl_prodl, W010A 2603 ADDWF CompTempVarRet0+D'3', F010C 5035 MOVF __mul_32_3_00006_arg_a, W010E 023C MULWF __mul_32_3_00006_arg_b+D'3'0110 50F3 MOVF gbl_prodl, W0112 2603 ADDWF CompTempVarRet0+D'3', F0114 0012 RETURN; } __mul_32_32 function end04E0 _startup04E0 EF54F002 GOTO main
