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

📄 3dtesting.lis

📁 3D LCD for running graphical lCDs
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0830 FF1F              rol R31
 0832 E80F              add R30,R24
 0834 F91F              adc R31,R25
 0836 2080              ldd R2,z+0
 0838 3180              ldd R3,z+1
 083A 30920500          sts _sy+1,R3
 083E 20920400          sts _sy,R2
 0842                   .dbline 116
 0842           ;        vertex=gg[i]-1;      
 0842 80E0              ldi R24,<_gg
 0844 90E0              ldi R25,>_gg
 0846 DE01              movw R26,R28
 0848 AE56              subi R26,110  ; addi 146
 084A BF4F              sbci R27,255
 084C ED91              ld R30,x+
 084E FC91              ld R31,x
 0850 EE0F              lsl R30
 0852 FF1F              rol R31
 0854 E80F              add R30,R24
 0856 F91F              adc R31,R25
 0858 6791              elpm R22,Z+
 085A 7691              elpm R23,Z
 085C 6150              subi R22,1
 085E 7040              sbci R23,0
 0860                   .dbline 117
 0860           ;        ex=newx[vertex];       
 0860 CE01              movw R24,R28
 0862 4296              adiw R24,18
 0864 FB01              movw R30,R22
 0866 EE0F              lsl R30
 0868 FF1F              rol R31
 086A E80F              add R30,R24
 086C F91F              adc R31,R25
 086E 2080              ldd R2,z+0
 0870 3180              ldd R3,z+1
 0872 30920300          sts _ex+1,R3
 0876 20920200          sts _ex,R2
 087A                   .dbline 118
 087A           ;        ey=newy[vertex];
 087A CE01              movw R24,R28
 087C 805C              subi R24,192  ; offset = 64
 087E 9F4F              sbci R25,255
 0880 FB01              movw R30,R22
 0882 EE0F              lsl R30
 0884 FF1F              rol R31
 0886 E80F              add R30,R24
 0888 F91F              adc R31,R25
 088A 2080              ldd R2,z+0
 088C 3180              ldd R3,z+1
 088E 30920100          sts _ey+1,R3
 0892 20920000          sts _ey,R2
 0896                   .dbline 119
 0896           ;          if(sx>255 | sy>255 | ex>255 | ey>255)
 0896 8FEF              ldi R24,255
 0898 90E0              ldi R25,0
 089A 20900600          lds R2,_sx
 089E 30900700          lds R3,_sx+1
 08A2 8215              cp R24,R2
 08A4 9305              cpc R25,R3
 08A6 1CF4              brge L34
 08A8           X7:
 08A8 81E0              ldi R24,1
 08AA 7C01              movw R14,R24
 08AC 02C0              xjmp L35
 08AE           L34:
 08AE EE24              clr R14
 08B0 FF24              clr R15
 08B2           L35:
 08B2 8FEF              ldi R24,255
 08B4 90E0              ldi R25,0
 08B6 20900400          lds R2,_sy
 08BA 30900500          lds R3,_sy+1
 08BE 8215              cp R24,R2
 08C0 9305              cpc R25,R3
 08C2 1CF4              brge L36
 08C4           X8:
 08C4 81E0              ldi R24,1
 08C6 6C01              movw R12,R24
 08C8 02C0              xjmp L37
 08CA           L36:
 08CA CC24              clr R12
 08CC DD24              clr R13
 08CE           L37:
 08CE 8FEF              ldi R24,255
 08D0 90E0              ldi R25,0
 08D2 20900200          lds R2,_ex
 08D6 30900300          lds R3,_ex+1
 08DA 8215              cp R24,R2
 08DC 9305              cpc R25,R3
 08DE 1CF4              brge L38
 08E0           X9:
 08E0 81E0              ldi R24,1
 08E2 5C01              movw R10,R24
 08E4 02C0              xjmp L39
 08E6           L38:
 08E6 AA24              clr R10
 08E8 BB24              clr R11
 08EA           L39:
 08EA 8FEF              ldi R24,255
 08EC 90E0              ldi R25,0
 08EE 20900000          lds R2,_ey
 08F2 30900100          lds R3,_ey+1
 08F6 8215              cp R24,R2
 08F8 9305              cpc R25,R3
 08FA 1CF4              brge L40
 08FC           X10:
 08FC 61E0              ldi R22,1
 08FE 70E0              ldi R23,0
 0900 02C0              xjmp L41
 0902           L40:
 0902 6627              clr R22
 0904 7727              clr R23
 0906           L41:
 0906 1701              movw R2,R14
 0908 2C28              or R2,R12
 090A 3D28              or R3,R13
 090C 2A28              or R2,R10
 090E 3B28              or R3,R11
 0910 262A              or R2,R22
 0912 372A              or R3,R23
 0914 2220              tst R2
 0916 11F4              brne X11
 0918 3320              tst R3
 091A 91F0              breq L32
 091C           X11:
 091C                   .dbline 120
 091C           ;          {
 091C                   .dbline 121
 091C           ;              sx=255;
 091C 8FEF              ldi R24,255
 091E 90E0              ldi R25,0
 0920 90930700          sts _sx+1,R25
 0924 80930600          sts _sx,R24
 0928                   .dbline 122
 0928           ;                  sy=255;
 0928 90930500          sts _sy+1,R25
 092C 80930400          sts _sy,R24
 0930                   .dbline 123
 0930           ;                  ex=255;
 0930 90930300          sts _ex+1,R25
 0934 80930200          sts _ex,R24
 0938                   .dbline 124
 0938           ;                  ey=255;
 0938 90930100          sts _ey+1,R25
 093C 80930000          sts _ey,R24
 0940                   .dbline 125
 0940           ;          }
 0940           L32:
 0940                   .dbline 126
 0940           ;          DisplyLine(sx, sy, ex, ey, 0);
 0940 2224              clr R2
 0942 3324              clr R3
 0944 3D82              std y+5,R3
 0946 2C82              std y+4,R2
 0948 20900000          lds R2,_ey
 094C 30900100          lds R3,_ey+1
 0950 3B82              std y+3,R3
 0952 2A82              std y+2,R2
 0954 20900200          lds R2,_ex
 0958 30900300          lds R3,_ex+1
 095C 3982              std y+1,R3
 095E 2882              std y+0,R2
 0960 20910400          lds R18,_sy
 0964 30910500          lds R19,_sy+1
 0968 00910600          lds R16,_sx
 096C 10910700          lds R17,_sx+1
 0970 66D0              xcall _DisplyLine
 0972                   .dbline 127
 0972           ;     }
 0972           L29:
 0972                   .dbline 111
 0972 FE01              movw R30,R28
 0974 EE56              subi R30,110  ; addi 146
 0976 FF4F              sbci R31,255
 0978 8081              ldd R24,z+0
 097A 9181              ldd R25,z+1
 097C 0196              adiw R24,1
 097E FE01              movw R30,R28
 0980 EE56              subi R30,110  ; addi 146
 0982 FF4F              sbci R31,255
 0984 9183              std z+1,R25
 0986 8083              std z+0,R24
 0988                   .dbline 111
 0988 8631              cpi R24,22
 098A E0E0              ldi R30,0
 098C 9E07              cpc R25,R30
 098E 0CF4              brge X15
 0990 2ECF              xjmp L28
 0992           X15:
 0992           X12:
 0992                   .dbline -2
 0992           L1:
 0992                   .dbline 0 ; func end
 0992 EF96              adiw R28,63
 0994 EF96              adiw R28,63
 0996 6696              adiw R28,22  ; offset = 148
 0998 0E940000          xcall pop_xgsetF0FC
 099C 2496              adiw R28,4
 099E 0895              ret
 09A0                   .dbsym l loop 7 I
 09A0                   .dbsym l cosaz 142 D
 09A0                   .dbsym l sinaz 138 D
 09A0                   .dbsym l cosay 134 D
 09A0                   .dbsym l sinay 130 D
 09A0                   .dbsym l cosax 126 D
 09A0                   .dbsym l sinax 122 D
 09A0                   .dbsym l zt 118 D
 09A0                   .dbsym l yt 114 D
 09A0                   .dbsym l xt 110 D
 09A0                   .dbsym l newy 64 A[46:23]I
 09A0                   .dbsym l newx 18 A[46:23]I
 09A0                   .dbsym l y 14 D
 09A0                   .dbsym l x 10 D
 09A0                   .dbsym l z 6 D
 09A0                   .dbsym r vertex 22 I
 09A0                   .dbsym l i 146 I
 09A0                   .dbsym l zpos 166 D
 09A0                   .dbsym l ypos 162 D
 09A0                   .dbsym l xpos 158 D
 09A0                   .dbend
 09A0                   .dbfunc e WriteDot _WriteDot fV
 09A0           ;          temp2 -> R20
 09A0           ;              a -> R10
 09A0           ;          temp1 -> R14
 09A0           ;          color -> y+10
 09A0           ;              y -> R10
 09A0           ;              x -> R12
                        .even
 09A0           _WriteDot::
 09A0 0E940000          xcall push_xgsetF0FC
 09A4 A22E              mov R10,R18
 09A6 C02E              mov R12,R16
 09A8                   .dbline -1
 09A8                   .dbline 135
 09A8           ;  }
 09A8           ;  
 09A8           ; /***************************************
 09A8           ; *  FUNCTION NAME: WriteDot
 09A8           ; *  DESCRIPTION:
 09A8           ; /***************************************/
 09A8           ; void WriteDot(unsigned char x,unsigned char y,unsigned char color)
 09A8           ; {
 09A8                   .dbline 137
 09A8           ;     unsigned char temp1,temp2,a;
 09A8           ;       if(x>127 | y>63)
 09A8 8FE7              ldi R24,127
 09AA 8C15              cp R24,R12
 09AC 18F4              brsh L45
 09AE           X16:
 09AE 61E0              ldi R22,1
 09B0 70E0              ldi R23,0
 09B2 02C0              xjmp L46
 09B4           L45:
 09B4 6627              clr R22
 09B6 7727              clr R23
 09B8           L46:
 09B8 8FE3              ldi R24,63
 09BA 8A15              cp R24,R10
 09BC 18F4              brsh L47
 09BE           X17:
 09BE 41E0              ldi R20,1
 09C0 50E0              ldi R21,0
 09C2 02C0              xjmp L48
 09C4           L47:
 09C4 4427              clr R20
 09C6 5527              clr R21
 09C8           L48:
 09C8 1B01              movw R2,R22
 09CA 242A              or R2,R20
 09CC 352A              or R3,R21
 09CE 2220              tst R2
 09D0 11F4              brne X18
 09D2 3320              tst R3
 09D4 09F0              breq L43
 09D6           X18:
 09D6                   .dbline 138
 09D6           ;           return;
 09D6 31C0              xjmp L42
 09D8           L43:
 09D8                   .dbline 139
 09D8           ;       temp1 = y / 8;                                                     /* GET VALUE OF WHICH PAGE */
 09D8 EA2C              mov R14,R10
 09DA E694              lsr R14
 09DC E694              lsr R14
 09DE E694              lsr R14
 09E0                   .dbline 140
 09E0           ;     temp2 = y % 8;                             /* GET VALUE OF WHICH Y-OFFSET */
 09E0 18E0              ldi R17,8
 09E2 0A2D              mov R16,R10
 09E4 0E940000          xcall mod8u
 09E8 402F              mov R20,R16
 09EA                   .dbline 141
 09EA           ;       a = displaybuffer[temp1][x];                           /* READ NOW SEGMENT VALUE */
 09EA 80E8              ldi R24,128
 09EC 8E9D              mul R24,R14
 09EE 1001              movw R2,R0
 09F0 80E0              ldi R24,<_displaybuffer
 09F2 90E0              ldi R25,>_displaybuffer
 09F4 280E              add R2,R24
 09F6 391E              adc R3,R25
 09F8 EC2D              mov R30,R12
 09FA FF27              clr R31
 09FC E20D              add R30,R2
 09FE F31D              adc R31,R3
 0A00 A080              ldd R10,z+0
 0A02                   .dbline 143
 0A02           ;       
 0A02           ;       if(color == 0)                                                     /* DOT ON/OFF */
 0A02 0A84              ldd R0,y+10
 0A04 0020              tst R0
 0A06 41F4              brne L49
 0A08           X19:
 0A08                   .dbline 144
 0A08           ;               a&=~(1<<temp2);
 0A08 01E0              ldi R16,1
 0A0A 142F              mov R17,R20
 0A0C 0E94000

⌨️ 快捷键说明

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