📄 3dtesting.lis
字号:
.module _3dtesting.c
.area text(rom, con, rel)
0000 .dbfile F:\CODE\LCD1286418\3dtesting.c
.area lit(rom, con, rel)
0000 _aa::
0000 0800 .word 8
0002 F8FF .word -8
0004 F8FF .word -8
0006 0800 .word 8
0008 0800 .word 8
000A F8FF .word -8
000C F8FF .word -8
000E 0800 .word 8
0010 0800 .word 8
0012 0800 .word 8
0014 0800 .word 8
0016 0800 .word 8
0018 0800 .word 8
001A 0000 .word 0
001C 0400 .word 4
001E FCFF .word -4
0020 F8FF .word -8
0022 F8FF .word -8
0024 F8FF .word -8
0026 F8FF .word -8
0028 F8FF .word -8
002A F8FF .word -8
002C F8FF .word -8
002E .dbsym e aa _aa A[46:23]kI
002E _bb::
002E 0800 .word 8
0030 0800 .word 8
0032 F8FF .word -8
0034 F8FF .word -8
0036 0800 .word 8
0038 0800 .word 8
003A F8FF .word -8
003C F8FF .word -8
003E 0000 .word 0
0040 FCFF .word -4
0042 0400 .word 4
0044 FEFF .word -2
0046 0200 .word 2
0048 0800 .word 8
004A 0800 .word 8
004C 0800 .word 8
004E 0400 .word 4
0050 0400 .word 4
0052 0400 .word 4
0054 FCFF .word -4
0056 FCFF .word -4
0058 FCFF .word -4
005A 0000 .word 0
005C .dbsym e bb _bb A[46:23]kI
005C _cc::
005C F8FF .word -8
005E F8FF .word -8
0060 F8FF .word -8
0062 F8FF .word -8
0064 0800 .word 8
0066 0800 .word 8
0068 0800 .word 8
006A 0800 .word 8
006C 0600 .word 6
006E FAFF .word -6
0070 FAFF .word -6
0072 0000 .word 0
0074 0000 .word 0
0076 FAFF .word -6
0078 0600 .word 6
007A 0600 .word 6
007C FAFF .word -6
007E 0000 .word 0
0080 0600 .word 6
0082 0600 .word 6
0084 0000 .word 0
0086 FAFF .word -6
0088 0000 .word 0
008A .dbsym e cc _cc A[46:23]kI
008A _ff::
008A 0100 .word 1
008C 0200 .word 2
008E 0300 .word 3
0090 0400 .word 4
0092 0500 .word 5
0094 0600 .word 6
0096 0700 .word 7
0098 0800 .word 8
009A 0100 .word 1
009C 0200 .word 2
009E 0300 .word 3
00A0 0400 .word 4
00A2 0900 .word 9
00A4 0900 .word 9
00A6 0C00 .word 12
00A8 0E00 .word 14
00AA 0E00 .word 14
00AC 1100 .word 17
00AE 1300 .word 19
00B0 1400 .word 20
00B2 1500 .word 21
00B4 1600 .word 22
00B6 .dbsym e ff _ff A[44:22]kI
00B6 _gg::
00B6 0200 .word 2
00B8 0300 .word 3
00BA 0400 .word 4
00BC 0100 .word 1
00BE 0600 .word 6
00C0 0700 .word 7
00C2 0800 .word 8
00C4 0500 .word 5
00C6 0500 .word 5
00C8 0600 .word 6
00CA 0700 .word 7
00CC 0800 .word 8
00CE 0A00 .word 10
00D0 0B00 .word 11
00D2 0D00 .word 13
00D4 0F00 .word 15
00D6 1000 .word 16
00D8 1300 .word 19
00DA 1400 .word 20
00DC 1500 .word 21
00DE 1200 .word 18
00E0 1700 .word 23
00E2 .dbsym e gg _gg A[44:22]kI
.area data(ram, con, rel)
0000 .dbfile F:\CODE\LCD1286418\3dtesting.c
0000 _rotx::
0000 .blkb 4
.area idata
0000 00000000 .word 0x0,0x0
.area data(ram, con, rel)
0004 .dbfile F:\CODE\LCD1286418\3dtesting.c
0004 .dbsym e rotx _rotx D
0004 _roty::
0004 .blkb 4
.area idata
0004 00000000 .word 0x0,0x0
.area data(ram, con, rel)
0008 .dbfile F:\CODE\LCD1286418\3dtesting.c
0008 .dbsym e roty _roty D
0008 _rotz::
0008 .blkb 4
.area idata
0008 00000000 .word 0x0,0x0
.area data(ram, con, rel)
000C .dbfile F:\CODE\LCD1286418\3dtesting.c
000C .dbsym e rotz _rotz D
.area text(rom, con, rel)
0000 .dbfile F:\CODE\LCD1286418\3dtesting.c
0000 .dbfunc e cube _cube fV
0000 ; loop -> <dead>
0000 ; cosaz -> y+142
0000 ; sinaz -> y+138
0000 ; cosay -> y+134
0000 ; sinay -> y+130
0000 ; cosax -> y+126
0000 ; sinax -> y+122
0000 ; zt -> y+118
0000 ; yt -> y+114
0000 ; xt -> y+110
0000 ; newy -> y+64
0000 ; newx -> y+18
0000 ; y -> y+14
0000 ; x -> y+10
0000 ; z -> y+6
0000 ; vertex -> R22,R23
0000 ; i -> y+146
0000 ; zpos -> y+166
0000 ; ypos -> y+162
0000 ; xpos -> y+158
.even
0000 _cube::
0000 0E940000 xcall push_arg4
0004 0E940000 xcall push_xgsetF0FC
0008 EF97 sbiw R28,63
000A EF97 sbiw R28,63
000C 6697 sbiw R28,22 ; offset = 148
000E .dbline -1
000E .dbline 31
000E ; #include <iom128v.h>
000E ; #include "avr.h"
000E ; #include "math.h"
000E ;
000E ; #define OFFSETX 63
000E ; #define OFFSETY 31
000E ; #define OFFSETZ 31
000E ;
000E ; /////////////////////////////////立方体加文字//////////////////////////////////////////////////
000E ; const signed int aa[23]={8,-8,-8,8,8,-8,-8,8,8,8,8,8,8,0,4,-4,-8,-8,-8,-8,-8,-8,-8}; // x data for shape vertex
000E ; const signed int bb[23]={8,8,-8,-8,8,8,-8,-8,0,-4,4,-2,2,8,8,8,4,4,4,-4,-4,-4,0}; // y data for shape vertex
000E ; const signed int cc[23]={-8,-8,-8,-8,8,8,8,8,6,-6,-6,0,0,-6,6,6,-6,0,6,6,0,-6,0}; // z data for shape vertex
000E ;
000E ; const int ff[22]={1,2,3,4,5,6,7,8,1,2,3,4,9,9,12,14,14,17,19,20,21,22}; // start vertex for lines
000E ; const int gg[22]={2,3,4,1,6,7,8,5,5,6,7,8,10,11,13,15,16,19,20,21,18,23}; // end vertex for lines
000E ; //////////////////////////////////////////////////////////////////////////////////////////////
000E ;
000E ; extern unsigned char displaybuffer[8][128];
000E ; int sx,sy,ex,ey; // define global vars for calling graphics subroutines
000E ; float rotx=0.0; // starting amount of x rotation
000E ; float roty=0.0; // starting amount of y rotation
000E ; float rotz=0.0; // starting amount of z rotation
000E ;
000E ; void cube (float xpos,float ypos,float zpos); // define the subroutines this one is the actual cube routine
000E ;
000E ; /***************************************
000E ; * FUNCTION NAME: cube
000E ; * DESCRIPTION: 3d-cube显示
000E ; /***************************************/
000E ; void cube(float xpos,float ypos,float zpos) // routine to draw and calc 3d cube
000E ; {
000E .dbline 44
000E ; int newx[23]; // translated screen x co-ordinates for vertex
000E ; int newy[23]; // translated screen y co-ordinates for vertex
000E ; int i,loop; // temp variable for loops
000E ; int vertex;
000E ; float xt,yt,zt,x,y,z,sinax,cosax,sinay,cosay,sinaz,cosaz; // lots of work variables
000E ; //float xpos=0.0; // position for object in 3d space, in x
000E ; //float ypos=0.0; // y
000E ; //float zpos=0.0; // and z values
000E ; //float rotx=0.0; // starting amount of x rotation
000E ; //float roty=0.0; // starting amount of y rotation
000E ; //float rotz=0.0; // starting amount of z rotation
000E ;
000E ; xpos=xpos+0.0; // move the object
000E DE01 movw R26,R28
0010 A256 subi R26,98 ; addi 158
0012 BF4F sbci R27,255
0014 2D90 ld R2,x+
0016 3D90 ld R3,x+
0018 4D90 ld R4,x+
001A 5C90 ld R5,x
001C 00E0 ldi R16,<L2
001E 10E0 ldi R17,>L2
0020 0E940000 xcall elpm32
0024 3A93 st -y,R19
0026 2A93 st -y,R18
0028 1A93 st -y,R17
002A 0A93 st -y,R16
002C 8101 movw R16,R2
002E 9201 movw R18,R4
0030 0E940000 xcall fpadd2
0034 DE01 movw R26,R28
0036 A256 subi R26,98 ; addi 158
0038 BF4F sbci R27,255
003A 0D93 st x+,R16
003C 1D93 st x+,R17
003E 2D93 st x+,R18
0040 3C93 st x,R19
0042 .dbline 45
0042 ; ypos=ypos+0.0; // it would wander off screen
0042 DE01 movw R26,R28
0044 AE55 subi R26,94 ; addi 162
0046 BF4F sbci R27,255
0048 2D90 ld R2,x+
004A 3D90 ld R3,x+
004C 4D90 ld R4,x+
004E 5C90 ld R5,x
0050 00E0 ldi R16,<L2
0052 10E0 ldi R17,>L2
0054 0E940000 xcall elpm32
0058 3A93 st -y,R19
005A 2A93 st -y,R18
005C 1A93 st -y,R17
005E 0A93 st -y,R16
0060 8101 movw R16,R2
0062 9201 movw R18,R4
0064 0E940000 xcall fpadd2
0068 DE01 movw R26,R28
006A AE55 subi R26,94 ; addi 162
006C BF4F sbci R27,255
006E 0D93 st x+,R16
0070 1D93 st x+,R17
0072 2D93 st x+,R18
0074 3C93 st x,R19
0076 .dbline 46
0076 ; zpos=zpos+0.0; // really quick, so leave it centered
0076 DE01 movw R26,R28
0078 AA55 subi R26,90 ; addi 166
007A BF4F sbci R27,255
007C 2D90 ld R2,x+
007E 3D90 ld R3,x+
0080 4D90 ld R4,x+
0082 5C90 ld R5,x
0084 00E0 ldi R16,<L2
0086 10E0 ldi R17,>L2
0088 0E940000 xcall elpm32
008C 3A93 st -y,R19
008E 2A93 st -y,R18
0090 1A93 st -y,R17
0092 0A93 st -y,R16
0094 8101 movw R16,R2
0096 9201 movw R18,R4
0098 0E940000 xcall fpadd2
009C FE01 movw R30,R28
009E EA55 subi R30,90 ; addi 166
00A0 FF4F sbci R31,255
00A2 0083 std z+0,R16
00A4 1183 std z+1,R17
00A6 2283 std z+2,R18
00A8 3383 std z+3,R19
00AA .dbline 48
00AA ;
00AA ; rotx=rotx+0.02; // rotate the cube on X axis
00AA 40900200 lds R4,_rotx+2
00AE 50900300 lds R5,_rotx+2+1
00B2 20900000 lds R2,_rotx
00B6 30900100 lds R3,_rotx+1
00BA 00E0 ldi R16,<L3
00BC 10E0 ldi R17,>L3
00BE 0E940000 xcall elpm32
00C2 3A93 st -y,R19
00C4 2A93 st -y,R18
00C6 1A93 st -y,R17
00C8 0A93 st -y,R16
00CA 8101 movw R16,R2
00CC 9201 movw R18,R4
00CE 0E940000 xcall fpadd2
00D2 10930100 sts _rotx+1,R17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -