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

📄 3dtesting.lis

📁 3D LCD for running graphical lCDs
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 05FC EE56              subi R30,110  ; addi 146
 05FE FF4F              sbci R31,255
 0600 9183              std z+1,R25
 0602 8083              std z+0,R24
 0604                   .dbline 61
 0604 8731              cpi R24,23
 0606 E0E0              ldi R30,0
 0608 9E07              cpc R25,R30
 060A 0CF4              brge X13
 060C 0FCE              xjmp L6
 060E           X13:
 060E           X0:
 060E                   .dbline 90
 060E           ; 
 060E           ;     for (i=0; i<22; i++)                                                                         // draw the lines that make up the object
 060E 0024              clr R0
 0610 1124              clr R1
 0612 FE01              movw R30,R28
 0614 EE56              subi R30,110  ; addi 146
 0616 FF4F              sbci R31,255
 0618 1182              std z+1,R1
 061A 0082              std z+0,R0
 061C           L13:
 061C                   .dbline 91
 061C           ;     {
 061C                   .dbline 92
 061C           ;        vertex=ff[i]-1;                                                                   // temp = start vertex for this line
 061C 80E0              ldi R24,<_ff
 061E 90E0              ldi R25,>_ff
 0620 DE01              movw R26,R28
 0622 AE56              subi R26,110  ; addi 146
 0624 BF4F              sbci R27,255
 0626 ED91              ld R30,x+
 0628 FC91              ld R31,x
 062A EE0F              lsl R30
 062C FF1F              rol R31
 062E E80F              add R30,R24
 0630 F91F              adc R31,R25
 0632 6791              elpm R22,Z+
 0634 7691              elpm R23,Z
 0636 6150              subi R22,1
 0638 7040              sbci R23,0
 063A                   .dbline 93
 063A           ;        sx=newx[vertex];                                                                  // set line start x to vertex[i] x position
 063A CE01              movw R24,R28
 063C 4296              adiw R24,18
 063E FB01              movw R30,R22
 0640 EE0F              lsl R30
 0642 FF1F              rol R31
 0644 E80F              add R30,R24
 0646 F91F              adc R31,R25
 0648 2080              ldd R2,z+0
 064A 3180              ldd R3,z+1
 064C 30920700          sts _sx+1,R3
 0650 20920600          sts _sx,R2
 0654                   .dbline 94
 0654           ;        sy=newy[vertex];                                                                  // set line start y to vertex[i] y position
 0654 CE01              movw R24,R28
 0656 805C              subi R24,192  ; offset = 64
 0658 9F4F              sbci R25,255
 065A FB01              movw R30,R22
 065C EE0F              lsl R30
 065E FF1F              rol R31
 0660 E80F              add R30,R24
 0662 F91F              adc R31,R25
 0664 2080              ldd R2,z+0
 0666 3180              ldd R3,z+1
 0668 30920500          sts _sy+1,R3
 066C 20920400          sts _sy,R2
 0670                   .dbline 95
 0670           ;        vertex=gg[i]-1;                                                                   // temp = end vertex for this line
 0670 80E0              ldi R24,<_gg
 0672 90E0              ldi R25,>_gg
 0674 DE01              movw R26,R28
 0676 AE56              subi R26,110  ; addi 146
 0678 BF4F              sbci R27,255
 067A ED91              ld R30,x+
 067C FC91              ld R31,x
 067E EE0F              lsl R30
 0680 FF1F              rol R31
 0682 E80F              add R30,R24
 0684 F91F              adc R31,R25
 0686 6791              elpm R22,Z+
 0688 7691              elpm R23,Z
 068A 6150              subi R22,1
 068C 7040              sbci R23,0
 068E                   .dbline 96
 068E           ;        ex=newx[vertex];                                                                          // set line end x to vertex[i+1] x position
 068E CE01              movw R24,R28
 0690 4296              adiw R24,18
 0692 FB01              movw R30,R22
 0694 EE0F              lsl R30
 0696 FF1F              rol R31
 0698 E80F              add R30,R24
 069A F91F              adc R31,R25
 069C 2080              ldd R2,z+0
 069E 3180              ldd R3,z+1
 06A0 30920300          sts _ex+1,R3
 06A4 20920200          sts _ex,R2
 06A8                   .dbline 97
 06A8           ;        ey=newy[vertex];                                                                          // set line end y to vertex[i+1] y position
 06A8 CE01              movw R24,R28
 06AA 805C              subi R24,192  ; offset = 64
 06AC 9F4F              sbci R25,255
 06AE FB01              movw R30,R22
 06B0 EE0F              lsl R30
 06B2 FF1F              rol R31
 06B4 E80F              add R30,R24
 06B6 F91F              adc R31,R25
 06B8 2080              ldd R2,z+0
 06BA 3180              ldd R3,z+1
 06BC 30920100          sts _ey+1,R3
 06C0 20920000          sts _ey,R2
 06C4                   .dbline 98
 06C4           ;          if(sx>255 | sy>255 | ex>255 | ey>255)
 06C4 8FEF              ldi R24,255
 06C6 90E0              ldi R25,0
 06C8 20900600          lds R2,_sx
 06CC 30900700          lds R3,_sx+1
 06D0 8215              cp R24,R2
 06D2 9305              cpc R25,R3
 06D4 1CF4              brge L19
 06D6           X1:
 06D6 41E0              ldi R20,1
 06D8 50E0              ldi R21,0
 06DA 02C0              xjmp L20
 06DC           L19:
 06DC 4427              clr R20
 06DE 5527              clr R21
 06E0           L20:
 06E0 8FEF              ldi R24,255
 06E2 90E0              ldi R25,0
 06E4 20900400          lds R2,_sy
 06E8 30900500          lds R3,_sy+1
 06EC 8215              cp R24,R2
 06EE 9305              cpc R25,R3
 06F0 1CF4              brge L21
 06F2           X2:
 06F2 81E0              ldi R24,1
 06F4 7C01              movw R14,R24
 06F6 02C0              xjmp L22
 06F8           L21:
 06F8 EE24              clr R14
 06FA FF24              clr R15
 06FC           L22:
 06FC 8FEF              ldi R24,255
 06FE 90E0              ldi R25,0
 0700 20900200          lds R2,_ex
 0704 30900300          lds R3,_ex+1
 0708 8215              cp R24,R2
 070A 9305              cpc R25,R3
 070C 1CF4              brge L23
 070E           X3:
 070E 81E0              ldi R24,1
 0710 6C01              movw R12,R24
 0712 02C0              xjmp L24
 0714           L23:
 0714 CC24              clr R12
 0716 DD24              clr R13
 0718           L24:
 0718 8FEF              ldi R24,255
 071A 90E0              ldi R25,0
 071C 20900000          lds R2,_ey
 0720 30900100          lds R3,_ey+1
 0724 8215              cp R24,R2
 0726 9305              cpc R25,R3
 0728 1CF4              brge L25
 072A           X4:
 072A 81E0              ldi R24,1
 072C 5C01              movw R10,R24
 072E 02C0              xjmp L26
 0730           L25:
 0730 AA24              clr R10
 0732 BB24              clr R11
 0734           L26:
 0734 1A01              movw R2,R20
 0736 2E28              or R2,R14
 0738 3F28              or R3,R15
 073A 2C28              or R2,R12
 073C 3D28              or R3,R13
 073E 2A28              or R2,R10
 0740 3B28              or R3,R11
 0742 2220              tst R2
 0744 11F4              brne X5
 0746 3320              tst R3
 0748 91F0              breq L17
 074A           X5:
 074A                   .dbline 99
 074A           ;          {
 074A                   .dbline 100
 074A           ;              sx=255;
 074A 8FEF              ldi R24,255
 074C 90E0              ldi R25,0
 074E 90930700          sts _sx+1,R25
 0752 80930600          sts _sx,R24
 0756                   .dbline 101
 0756           ;                  sy=255;
 0756 90930500          sts _sy+1,R25
 075A 80930400          sts _sy,R24
 075E                   .dbline 102
 075E           ;                  ex=255;
 075E 90930300          sts _ex+1,R25
 0762 80930200          sts _ex,R24
 0766                   .dbline 103
 0766           ;                  ey=255;
 0766 90930100          sts _ey+1,R25
 076A 80930000          sts _ey,R24
 076E                   .dbline 104
 076E           ;          }
 076E           L17:
 076E                   .dbline 105
 076E           ;          DisplyLine(sx, sy, ex, ey, 1);
 076E 81E0              ldi R24,1
 0770 90E0              ldi R25,0
 0772 9D83              std y+5,R25
 0774 8C83              std y+4,R24
 0776 20900000          lds R2,_ey
 077A 30900100          lds R3,_ey+1
 077E 3B82              std y+3,R3
 0780 2A82              std y+2,R2
 0782 20900200          lds R2,_ex
 0786 30900300          lds R3,_ex+1
 078A 3982              std y+1,R3
 078C 2882              std y+0,R2
 078E 20910400          lds R18,_sy
 0792 30910500          lds R19,_sy+1
 0796 00910600          lds R16,_sx
 079A 10910700          lds R17,_sx+1
 079E 4FD1              xcall _DisplyLine
 07A0                   .dbline 106
 07A0           ;     }
 07A0           L14:
 07A0                   .dbline 90
 07A0 FE01              movw R30,R28
 07A2 EE56              subi R30,110  ; addi 146
 07A4 FF4F              sbci R31,255
 07A6 8081              ldd R24,z+0
 07A8 9181              ldd R25,z+1
 07AA 0196              adiw R24,1
 07AC FE01              movw R30,R28
 07AE EE56              subi R30,110  ; addi 146
 07B0 FF4F              sbci R31,255
 07B2 9183              std z+1,R25
 07B4 8083              std z+0,R24
 07B6                   .dbline 90
 07B6 8631              cpi R24,22
 07B8 E0E0              ldi R30,0
 07BA 9E07              cpc R25,R30
 07BC 0CF4              brge X14
 07BE 2ECF              xjmp L13
 07C0           X14:
 07C0           X6:
 07C0                   .dbline 107
 07C0           ;          LcdDsiplayRefresh();
 07C0 0E940000          xcall _LcdDsiplayRefresh
 07C4                   .dbline 108
 07C4           ;          GuiDisStringF3(0,7,"MEGA128 16MHz  128X64",1);
 07C4 81E0              ldi R24,1
 07C6 90E0              ldi R25,0
 07C8 9B83              std y+3,R25
 07CA 8A83              std y+2,R24
 07CC 80E0              ldi R24,<L27
 07CE 90E0              ldi R25,>L27
 07D0 9983              std y+1,R25
 07D2 8883              std y+0,R24
 07D4 27E0              ldi R18,7
 07D6 30E0              ldi R19,0
 07D8 0027              clr R16
 07DA 1127              clr R17
 07DC 0E940000          xcall _GuiDisStringF3
 07E0                   .dbline 111
 07E0           ;          //Delayms(20);                       // delay for a while to allow looking at the cube
 07E0           ;        //ClrDisplyBuffer();                   // clear the screen to remove old cube
 07E0           ;       for (i=0; i<22; i++)            
 07E0 0024              clr R0
 07E2 1124              clr R1
 07E4 FE01              movw R30,R28
 07E6 EE56              subi R30,110  ; addi 146
 07E8 FF4F              sbci R31,255
 07EA 1182              std z+1,R1
 07EC 0082              std z+0,R0
 07EE           L28:
 07EE                   .dbline 112
 07EE           ;     {
 07EE                   .dbline 113
 07EE           ;        vertex=ff[i]-1;      
 07EE 80E0              ldi R24,<_ff
 07F0 90E0              ldi R25,>_ff
 07F2 DE01              movw R26,R28
 07F4 AE56              subi R26,110  ; addi 146
 07F6 BF4F              sbci R27,255
 07F8 ED91              ld R30,x+
 07FA FC91              ld R31,x
 07FC EE0F              lsl R30
 07FE FF1F              rol R31
 0800 E80F              add R30,R24
 0802 F91F              adc R31,R25
 0804 6791              elpm R22,Z+
 0806 7691              elpm R23,Z
 0808 6150              subi R22,1
 080A 7040              sbci R23,0
 080C                   .dbline 114
 080C           ;        sx=newx[vertex];       
 080C CE01              movw R24,R28
 080E 4296              adiw R24,18
 0810 FB01              movw R30,R22
 0812 EE0F              lsl R30
 0814 FF1F              rol R31
 0816 E80F              add R30,R24
 0818 F91F              adc R31,R25
 081A 2080              ldd R2,z+0
 081C 3180              ldd R3,z+1
 081E 30920700          sts _sx+1,R3
 0822 20920600          sts _sx,R2
 0826                   .dbline 115
 0826           ;        sy=newy[vertex];  
 0826 CE01              movw R24,R28
 0828 805C              subi R24,192  ; offset = 64
 082A 9F4F              sbci R25,255
 082C FB01              movw R30,R22
 082E EE0F              lsl R30

⌨️ 快捷键说明

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