⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3dtesting.lis

📁 3D LCD for running graphical lCDs
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0380 8A93              st -y,R24
 0382 0E940000          xcall fpmule1x
 0386 8101              movw R16,R2
 0388 9201              movw R18,R4
 038A 0E940000          xcall fpsub2
 038E DE01              movw R26,R28
 0390 A259              subi R26,146  ; addi 110
 0392 BF4F              sbci R27,255
 0394 0D93              st x+,R16
 0396 1D93              st x+,R17
 0398 2D93              st x+,R18
 039A 3C93              st x,R19
 039C                   .dbline 73
 039C           ;         zt = x * sinay + z * cosay;                                                      // using X and Z
 039C 0A85              ldd R16,y+10
 039E 1B85              ldd R17,y+11
 03A0 2C85              ldd R18,y+12
 03A2 3D85              ldd R19,y+13
 03A4 CE01              movw R24,R28
 03A6 8E57              subi R24,126  ; offset = 130
 03A8 9F4F              sbci R25,255
 03AA 9A93              st -y,R25
 03AC 8A93              st -y,R24
 03AE 0E940000          xcall fpmule1
 03B2 1801              movw R2,R16
 03B4 2901              movw R4,R18
 03B6 0E81              ldd R16,y+6
 03B8 1F81              ldd R17,y+7
 03BA 2885              ldd R18,y+8
 03BC 3985              ldd R19,y+9
 03BE CE01              movw R24,R28
 03C0 8A57              subi R24,122  ; offset = 134
 03C2 9F4F              sbci R25,255
 03C4 9A93              st -y,R25
 03C6 8A93              st -y,R24
 03C8 0E940000          xcall fpmule1x
 03CC 8101              movw R16,R2
 03CE 9201              movw R18,R4
 03D0 0E940000          xcall fpadd2
 03D4 DE01              movw R26,R28
 03D6 AA58              subi R26,138  ; addi 118
 03D8 BF4F              sbci R27,255
 03DA 0D93              st x+,R16
 03DC 1D93              st x+,R17
 03DE 2D93              st x+,R18
 03E0 3C93              st x,R19
 03E2                   .dbline 74
 03E2           ;         x = xt;
 03E2 DE01              movw R26,R28
 03E4 A259              subi R26,146  ; addi 110
 03E6 BF4F              sbci R27,255
 03E8 2D90              ld R2,x+
 03EA 3D90              ld R3,x+
 03EC 4D90              ld R4,x+
 03EE 5C90              ld R5,x
 03F0 2A86              std y+10,R2
 03F2 3B86              std y+11,R3
 03F4 4C86              std y+12,R4
 03F6 5D86              std y+13,R5
 03F8                   .dbline 75
 03F8           ;         z = zt;
 03F8 DE01              movw R26,R28
 03FA AA58              subi R26,138  ; addi 118
 03FC BF4F              sbci R27,255
 03FE 2D90              ld R2,x+
 0400 3D90              ld R3,x+
 0402 4D90              ld R4,x+
 0404 5C90              ld R5,x
 0406 2E82              std y+6,R2
 0408 3F82              std y+7,R3
 040A 4886              std y+8,R4
 040C 5986              std y+9,R5
 040E                   .dbline 77
 040E           ; 
 040E           ;         xt = x * cosaz - y * sinaz;                                                      // finaly rotate around the Z axis
 040E 0A85              ldd R16,y+10
 0410 1B85              ldd R17,y+11
 0412 2C85              ldd R18,y+12
 0414 3D85              ldd R19,y+13
 0416 CE01              movw R24,R28
 0418 8257              subi R24,114  ; offset = 142
 041A 9F4F              sbci R25,255
 041C 9A93              st -y,R25
 041E 8A93              st -y,R24
 0420 0E940000          xcall fpmule1
 0424 1801              movw R2,R16
 0426 2901              movw R4,R18
 0428 0E85              ldd R16,y+14
 042A 1F85              ldd R17,y+15
 042C 2889              ldd R18,y+16
 042E 3989              ldd R19,y+17
 0430 CE01              movw R24,R28
 0432 8657              subi R24,118  ; offset = 138
 0434 9F4F              sbci R25,255
 0436 9A93              st -y,R25
 0438 8A93              st -y,R24
 043A 0E940000          xcall fpmule1x
 043E 8101              movw R16,R2
 0440 9201              movw R18,R4
 0442 0E940000          xcall fpsub2
 0446 DE01              movw R26,R28
 0448 A259              subi R26,146  ; addi 110
 044A BF4F              sbci R27,255
 044C 0D93              st x+,R16
 044E 1D93              st x+,R17
 0450 2D93              st x+,R18
 0452 3C93              st x,R19
 0454                   .dbline 78
 0454           ;         yt = x * sinaz + y * cosaz;                                                      // using X and Y
 0454 0A85              ldd R16,y+10
 0456 1B85              ldd R17,y+11
 0458 2C85              ldd R18,y+12
 045A 3D85              ldd R19,y+13
 045C CE01              movw R24,R28
 045E 8657              subi R24,118  ; offset = 138
 0460 9F4F              sbci R25,255
 0462 9A93              st -y,R25
 0464 8A93              st -y,R24
 0466 0E940000          xcall fpmule1
 046A 1801              movw R2,R16
 046C 2901              movw R4,R18
 046E 0E85              ldd R16,y+14
 0470 1F85              ldd R17,y+15
 0472 2889              ldd R18,y+16
 0474 3989              ldd R19,y+17
 0476 CE01              movw R24,R28
 0478 8257              subi R24,114  ; offset = 142
 047A 9F4F              sbci R25,255
 047C 9A93              st -y,R25
 047E 8A93              st -y,R24
 0480 0E940000          xcall fpmule1x
 0484 8101              movw R16,R2
 0486 9201              movw R18,R4
 0488 0E940000          xcall fpadd2
 048C DE01              movw R26,R28
 048E AE58              subi R26,142  ; addi 114
 0490 BF4F              sbci R27,255
 0492 0D93              st x+,R16
 0494 1D93              st x+,R17
 0496 2D93              st x+,R18
 0498 3C93              st x,R19
 049A                   .dbline 79
 049A           ;         x = xt;
 049A DE01              movw R26,R28
 049C A259              subi R26,146  ; addi 110
 049E BF4F              sbci R27,255
 04A0 2D90              ld R2,x+
 04A2 3D90              ld R3,x+
 04A4 4D90              ld R4,x+
 04A6 5C90              ld R5,x
 04A8 2A86              std y+10,R2
 04AA 3B86              std y+11,R3
 04AC 4C86              std y+12,R4
 04AE 5D86              std y+13,R5
 04B0                   .dbline 80
 04B0           ;         y = yt;
 04B0 DE01              movw R26,R28
 04B2 AE58              subi R26,142  ; addi 114
 04B4 BF4F              sbci R27,255
 04B6 2D90              ld R2,x+
 04B8 3D90              ld R3,x+
 04BA 4D90              ld R4,x+
 04BC 5C90              ld R5,x
 04BE 2E86              std y+14,R2
 04C0 3F86              std y+15,R3
 04C2 488A              std y+16,R4
 04C4 598A              std y+17,R5
 04C6                   .dbline 82
 04C6           ; 
 04C6           ;         x=x+xpos;                                                                                        // add the object position offset
 04C6 0A85              ldd R16,y+10
 04C8 1B85              ldd R17,y+11
 04CA 2C85              ldd R18,y+12
 04CC 3D85              ldd R19,y+13
 04CE CE01              movw R24,R28
 04D0 8256              subi R24,98  ; offset = 158
 04D2 9F4F              sbci R25,255
 04D4 9A93              st -y,R25
 04D6 8A93              st -y,R24
 04D8 0E940000          xcall fpadd1
 04DC 0A87              std y+10,R16
 04DE 1B87              std y+11,R17
 04E0 2C87              std y+12,R18
 04E2 3D87              std y+13,R19
 04E4                   .dbline 83
 04E4           ;         y=y+ypos;                                                                                        // for both x and y
 04E4 0E85              ldd R16,y+14
 04E6 1F85              ldd R17,y+15
 04E8 2889              ldd R18,y+16
 04EA 3989              ldd R19,y+17
 04EC CE01              movw R24,R28
 04EE 8E55              subi R24,94  ; offset = 162
 04F0 9F4F              sbci R25,255
 04F2 9A93              st -y,R25
 04F4 8A93              st -y,R24
 04F6 0E940000          xcall fpadd1
 04FA 0E87              std y+14,R16
 04FC 1F87              std y+15,R17
 04FE 288B              std y+16,R18
 0500 398B              std y+17,R19
 0502                   .dbline 84
 0502           ;         z=z+OFFSETZ-zpos;                                                                        // as well as Z
 0502 2E80              ldd R2,y+6
 0504 3F80              ldd R3,y+7
 0506 4884              ldd R4,y+8
 0508 5984              ldd R5,y+9
 050A 00E0              ldi R16,<L10
 050C 10E0              ldi R17,>L10
 050E 0E940000          xcall elpm32
 0512 3A93              st -y,R19
 0514 2A93              st -y,R18
 0516 1A93              st -y,R17
 0518 0A93              st -y,R16
 051A 8101              movw R16,R2
 051C 9201              movw R18,R4
 051E 0E940000          xcall fpadd2
 0522 CE01              movw R24,R28
 0524 8A55              subi R24,90  ; offset = 166
 0526 9F4F              sbci R25,255
 0528 9A93              st -y,R25
 052A 8A93              st -y,R24
 052C 0E940000          xcall fpsub1
 0530 0E83              std y+6,R16
 0532 1F83              std y+7,R17
 0534 2887              std y+8,R18
 0536 3987              std y+9,R19
 0538                   .dbline 86
 0538           ; 
 0538           ;         newx[i]=(x*64/z)+OFFSETX;                                                        // translate 3d to 2d coordinates for screen
 0538 00E0              ldi R16,<L11
 053A 10E0              ldi R17,>L11
 053C 0E940000          xcall elpm32
 0540 CE01              movw R24,R28
 0542 0A96              adiw R24,10
 0544 9A93              st -y,R25
 0546 8A93              st -y,R24
 0548 0E940000          xcall fpmule1
 054C CE01              movw R24,R28
 054E 0696              adiw R24,6
 0550 9A93              st -y,R25
 0552 8A93              st -y,R24
 0554 0E940000          xcall fpdiv1
 0558 1801              movw R2,R16
 055A 2901              movw R4,R18
 055C 00E0              ldi R16,<L12
 055E 10E0              ldi R17,>L12
 0560 0E940000          xcall elpm32
 0564 3A93              st -y,R19
 0566 2A93              st -y,R18
 0568 1A93              st -y,R17
 056A 0A93              st -y,R16
 056C 8101              movw R16,R2
 056E 9201              movw R18,R4
 0570 0E940000          xcall fpadd2
 0574 0E940000          xcall fpint
 0578 CE01              movw R24,R28
 057A 4296              adiw R24,18
 057C DE01              movw R26,R28
 057E AE56              subi R26,110  ; addi 146
 0580 BF4F              sbci R27,255
 0582 ED91              ld R30,x+
 0584 FC91              ld R31,x
 0586 EE0F              lsl R30
 0588 FF1F              rol R31
 058A E80F              add R30,R24
 058C F91F              adc R31,R25
 058E 1183              std z+1,R17
 0590 0083              std z+0,R16
 0592                   .dbline 87
 0592           ;         newy[i]=(y*64/z)+OFFSETY;                                                        // drawing so we can see the cube
 0592 00E0              ldi R16,<L11
 0594 10E0              ldi R17,>L11
 0596 0E940000          xcall elpm32
 059A CE01              movw R24,R28
 059C 0E96              adiw R24,14
 059E 9A93              st -y,R25
 05A0 8A93              st -y,R24
 05A2 0E940000          xcall fpmule1
 05A6 CE01              movw R24,R28
 05A8 0696              adiw R24,6
 05AA 9A93              st -y,R25
 05AC 8A93              st -y,R24
 05AE 0E940000          xcall fpdiv1
 05B2 1801              movw R2,R16
 05B4 2901              movw R4,R18
 05B6 00E0              ldi R16,<L10
 05B8 10E0              ldi R17,>L10
 05BA 0E940000          xcall elpm32
 05BE 3A93              st -y,R19
 05C0 2A93              st -y,R18
 05C2 1A93              st -y,R17
 05C4 0A93              st -y,R16
 05C6 8101              movw R16,R2
 05C8 9201              movw R18,R4
 05CA 0E940000          xcall fpadd2
 05CE 0E940000          xcall fpint
 05D2 CE01              movw R24,R28
 05D4 805C              subi R24,192  ; offset = 64
 05D6 9F4F              sbci R25,255
 05D8 DE01              movw R26,R28
 05DA AE56              subi R26,110  ; addi 146
 05DC BF4F              sbci R27,255
 05DE ED91              ld R30,x+
 05E0 FC91              ld R31,x
 05E2 EE0F              lsl R30
 05E4 FF1F              rol R31
 05E6 E80F              add R30,R24
 05E8 F91F              adc R31,R25
 05EA 1183              std z+1,R17
 05EC 0083              std z+0,R16
 05EE                   .dbline 88
 05EE           ;        }
 05EE           L7:
 05EE                   .dbline 61
 05EE FE01              movw R30,R28
 05F0 EE56              subi R30,110  ; addi 146
 05F2 FF4F              sbci R31,255
 05F4 8081              ldd R24,z+0
 05F6 9181              ldd R25,z+1
 05F8 0196              adiw R24,1
 05FA FE01              movw R30,R28

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -