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

📄 ps2_kb.lst

📁 PS2_KEYBOARD for AVR
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0063) 		   up=0;
    0195 2422      CLR	R2
    0196 922000C0  STS	R2,0xC0
(0064) 		   if ((sc==0x12)|(sc==0x59)) shift=0;
    0198 3162      CPI	R22,0x12
    0199 F421      BNE	0x019E
    019A E081      LDI	R24,1
    019B E090      LDI	R25,0
    019C 015C      MOVW	R10,R24
    019D C002      RJMP	0x01A0
    019E 24AA      CLR	R10
    019F 24BB      CLR	R11
    01A0 3569      CPI	R22,0x59
    01A1 F419      BNE	0x01A5
    01A2 E041      LDI	R20,1
    01A3 E050      LDI	R21,0
    01A4 C002      RJMP	0x01A7
    01A5 2744      CLR	R20
    01A6 2755      CLR	R21
    01A7 0115      MOVW	R2,R10
    01A8 2A24      OR	R2,R20
    01A9 2A35      OR	R3,R21
    01AA 2022      TST	R2
    01AB F419      BNE	0x01AF
    01AC 2033      TST	R3
    01AD F409      BNE	0x01AF
    01AE C069      RJMP	0x0218
    01AF 2422      CLR	R2
    01B0 922000BF  STS	R2,0xBF
(0065) 		   return;
    01B2 C065      RJMP	0x0218
(0066) 		  }	 
(0067) 	  switch (sc)
    01B3 2F46      MOV	R20,R22
    01B4 2755      CLR	R21
    01B5 3142      CPI	R20,0x12
    01B6 E0E0      LDI	R30,0
    01B7 075E      CPC	R21,R30
    01B8 F049      BEQ	0x01C2
    01B9 3142      CPI	R20,0x12
    01BA E0E0      LDI	R30,0
    01BB 075E      CPC	R21,R30
    01BC F07C      BLT	0x01CC
    01BD 3549      CPI	R20,0x59
    01BE E0E0      LDI	R30,0
    01BF 075E      CPC	R21,R30
    01C0 F031      BEQ	0x01C7
    01C1 C00A      RJMP	0x01CC
(0068) 	    {
(0069) 		 case 0x12:{
(0070) 					shift=1;		
    01C2 E081      LDI	R24,1
    01C3 938000BF  STS	R24,0xBF
(0071) 					shiftup=1;
    01C5 938000C1  STS	R24,0xC1
(0072) 		           }		           
(0073) 		 case 0x59:{
(0074) 				    shift=1;	
    01C7 E081      LDI	R24,1
    01C8 938000BF  STS	R24,0xBF
(0075) 					shiftup=1;
    01CA 938000C1  STS	R24,0xC1
(0076) 		           }		           
(0077) 		 default:{
(0078) 		          if (shift==0)
    01CC 902000BF  LDS	R2,0xBF
    01CE 2022      TST	R2
    01CF F529      BNE	0x01F5
(0079) 					 {
(0080) 					 for(i = 0;unshifted[i][0]!=sc && unshifted[i][0]; i++);
    01D0 2744      CLR	R20
    01D1 C001      RJMP	0x01D3
    01D2 9543      INC	R20
    01D3 E082      LDI	R24,2
    01D4 9F84      MUL	R24,R20
    01D5 01F0      MOVW	R30,R0
    01D6 E286      LDI	R24,0x26
    01D7 E090      LDI	R25,0
    01D8 0FE8      ADD	R30,R24
    01D9 1FF9      ADC	R31,R25
    01DA 9024      LD	R2,R2
    01DB 2433      CLR	R3
    01DC 1626      CP	R2,R22
    01DD F011      BEQ	0x01E0
    01DE 2022      TST	R2
    01DF F791      BNE	0x01D2
(0081)                      if (unshifted[i][0] == sc)
    01E0 E082      LDI	R24,2
    01E1 9F84      MUL	R24,R20
    01E2 01F0      MOVW	R30,R0
    01E3 E286      LDI	R24,0x26
    01E4 E090      LDI	R25,0
    01E5 0FE8      ADD	R30,R24
    01E6 1FF9      ADC	R31,R25
    01E7 91E4      LD	R30,R30
    01E8 17E6      CP	R30,R22
    01E9 F009      BEQ	0x01EB
    01EA C02D      RJMP	0x0218
(0082) 						  put_kbbuff(unshifted[i][1]);	 
    01EB E082      LDI	R24,2
    01EC 9F84      MUL	R24,R20
    01ED 01F0      MOVW	R30,R0
    01EE E287      LDI	R24,0x27
    01EF E090      LDI	R25,0
    01F0 0FE8      ADD	R30,R24
    01F1 1FF9      ADC	R31,R25
    01F2 9104      LD	R16,R16
    01F3 DF56      RCALL	_put_kbbuff
(0083) 					 }
    01F4 C023      RJMP	0x0218
(0084) 				  else
(0085) 				     {
(0086) 					 for(i = 0;shifted[i][0]!=sc && shifted[i][0]; i++);
    01F5 2744      CLR	R20
    01F6 C001      RJMP	0x01F8
    01F7 9543      INC	R20
    01F8 E082      LDI	R24,2
    01F9 9F84      MUL	R24,R20
    01FA 01F0      MOVW	R30,R0
    01FB EA8E      LDI	R24,0xAE
    01FC E090      LDI	R25,0
    01FD 0FE8      ADD	R30,R24
    01FE 1FF9      ADC	R31,R25
    01FF 9024      LD	R2,R2
    0200 2433      CLR	R3
    0201 1626      CP	R2,R22
    0202 F011      BEQ	0x0205
    0203 2022      TST	R2
    0204 F791      BNE	0x01F7
(0087)                      if (shifted[i][0] == sc)
    0205 E082      LDI	R24,2
    0206 9F84      MUL	R24,R20
    0207 01F0      MOVW	R30,R0
    0208 EA8E      LDI	R24,0xAE
    0209 E090      LDI	R25,0
    020A 0FE8      ADD	R30,R24
    020B 1FF9      ADC	R31,R25
    020C 91E4      LD	R30,R30
    020D 17E6      CP	R30,R22
    020E F449      BNE	0x0218
(0088)                          {
(0089) 						  put_kbbuff(shifted[i][1]);						  
    020F E082      LDI	R24,2
    0210 9F84      MUL	R24,R20
    0211 01F0      MOVW	R30,R0
    0212 EA8F      LDI	R24,0xAF
    0213 E090      LDI	R25,0
    0214 0FE8      ADD	R30,R24
    0215 1FF9      ADC	R31,R25
    0216 9104      LD	R16,R16
    0217 DF32      RCALL	_put_kbbuff
(0090) 						 }	 	 						 
(0091) 					 } 
(0092) 		         }		         
(0093) 		} 		
(0094)     }
    0218 D09B      RCALL	pop_gset3
    0219 9508      RET
_int1_isr:
    021A D04E      RCALL	push_lset
    021B D07B      RCALL	push_gset1
(0095) #pragma interrupt_handler int1_isr:iv_INT1
(0096) void int1_isr(void)
(0097)    {
(0098)     static unsigned char data;   	
(0099)     switch (bitcount)
    021C 91400103  LDS	R20,_bitcount
    021E 2755      CLR	R21
    021F 3041      CPI	R20,1
    0220 E0E0      LDI	R30,0
    0221 075E      CPC	R21,R30
    0222 F0E1      BEQ	0x023F
    0223 3042      CPI	R20,2
    0224 E0E0      LDI	R30,0
    0225 075E      CPC	R21,R30
    0226 F091      BEQ	0x0239
    0227 3041      CPI	R20,1
    0228 E0E0      LDI	R30,0
    0229 075E      CPC	R21,R30
    022A F134      BLT	0x0251
    022B 304B      CPI	R20,0xB
    022C E0E0      LDI	R30,0
    022D 075E      CPC	R21,R30
    022E F009      BEQ	0x0230
    022F C021      RJMP	0x0251
(0100) 	  {
(0101) 	   case 11:{
(0102) 	            if ((PIN_KB&(1<<DATAPIN))!=0)
    0230 9B82      SBIS	P10,2
    0231 C001      RJMP	0x0233
(0103) 				     return;
    0232 C02E      RJMP	0x0261
(0104) 			    else		 
(0105) 	   			    bitcount--;
    0233 91800103  LDS	R24,_bitcount
    0235 5081      SUBI	R24,1
    0236 93800103  STS	R24,_bitcount
(0106) 	    		break;}
    0238 C028      RJMP	0x0261
(0107) 	   case 2:{
(0108) 	   			bitcount--;	   		   
    0239 91800103  LDS	R24,_bitcount
    023B 5081      SUBI	R24,1
    023C 93800103  STS	R24,_bitcount
(0109) 			    break;}
    023E C022      RJMP	0x0261
(0110) 	   case 1:{
(0111) 	   			bitcount--;	 
    023F 91800103  LDS	R24,_bitcount
    0241 5081      SUBI	R24,1
    0242 93800103  STS	R24,_bitcount
(0112) 				if ((PIN_KB&(1<<DATAPIN))==0)
    0244 9982      SBIC	P10,2
    0245 C004      RJMP	0x024A
(0113) 				    {
(0114) 					 bitcount=11;
    0246 E08B      LDI	R24,0xB
    0247 93800103  STS	R24,_bitcount
(0115) 					 return;
    0249 C017      RJMP	0x0261
(0116) 					}
(0117) 				else
(0118) 				   {
(0119) 				    bitcount=11;
    024A E08B      LDI	R24,0xB
    024B 93800103  STS	R24,_bitcount
(0120) 		            decode(data);
    024D 910000C2  LDS	R16,0xC2
    024F DF39      RCALL	_decode
(0121) 				   }	  
(0122) 	   	        break;}
    0250 C010      RJMP	0x0261
(0123) 	   default:{
(0124) 	   	        data = (data >> 1);
    0251 902000C2  LDS	R2,0xC2
    0253 9426      LSR	R2
    0254 922000C2  STS	R2,0xC2
(0125)                 if((PIN_KB&(1<<DATAPIN))!=0)
    0256 9B82      SBIS	P10,2
    0257 C004      RJMP	0x025C
(0126)                     data|=0x80;
    0258 2D82      MOV	R24,R2
    0259 6880      ORI	R24,0x80
    025A 938000C2  STS	R24,0xC2
(0127) 				bitcount--;
    025C 91800103  LDS	R24,_bitcount
    025E 5081      SUBI	R24,1
    025F 93800103  STS	R24,_bitcount
(0128) 	            }		
(0129) 	  }		 		 	  	
(0130)     } 
    0261 D038      RCALL	pop_gset1
    0262 D01D      RCALL	pop_lset
    0263 9518      RETI
FILE: C:\mega8\uart\read_flash.s
(0001) ;unsigned char read_flash(unsigned int add);
(0002) _read_flash::
(0003)         mov r31,r17
_read_flash:
    0264 2FF1      MOV	R31,R17
(0004) 		mov r30,r16
    0265 2FE0      MOV	R30,R16
(0005) 		lpm r16,z
    0266 9104      LD	R16,R16
(0006) 		clr r17
    0267 2711      CLR	R17
(0007) 		ret	FILE: <library>
    0268 9508      RET
push_lset:
    0269 93FA      ST	R31,-Y
    026A 93EA      ST	R30,-Y
    026B 93BA      ST	R27,-Y
    026C 93AA      ST	R26,-Y
    026D 939A      ST	R25,-Y
    026E 938A      ST	R24,-Y
    026F 933A      ST	R19,-Y
    0270 932A      ST	R18,-Y
    0271 931A      ST	R17,-Y
    0272 930A      ST	R16,-Y
    0273 929A      ST	R9,-Y
    0274 928A      ST	R8,-Y
    0275 927A      ST	R7,-Y
    0276 926A      ST	R6,-Y
    0277 925A      ST	R5,-Y
    0278 924A      ST	R4,-Y
    0279 923A      ST	R3,-Y
    027A 922A      ST	R2,-Y
    027B 921A      ST	R1,-Y
    027C 920A      ST	R0,-Y
    027D B60F      IN	R0,P3F
    027E 920A      ST	R0,-Y
    027F 9508      RET
pop_lset:
    0280 9009      LD	R0,Y+
    0281 BE0F      OUT	P3F,R0
    0282 9009      LD	R0,Y+
    0283 9019      LD	R1,Y+
    0284 9029      LD	R2,Y+
    0285 9039      LD	R3,Y+
    0286 9049      LD	R4,Y+
    0287 9059      LD	R5,Y+
    0288 9069      LD	R6,Y+
    0289 9079      LD	R7,Y+
    028A 9089      LD	R8,Y+
    028B 9099      LD	R9,Y+
    028C 9109      LD	R16,Y+
    028D 9119      LD	R17,Y+
    028E 9129      LD	R18,Y+
    028F 9139      LD	R19,Y+
    0290 9189      LD	R24,Y+
    0291 9199      LD	R25,Y+
    0292 91A9      LD	R26,Y+
    0293 91B9      LD	R27,Y+
    0294 91E9      LD	R30,Y+
    0295 91F9      LD	R31,Y+
    0296 9508      RET
push_gset1:
    0297 935A      ST	R21,-Y
    0298 934A      ST	R20,-Y
    0299 9508      RET
pop_gset1:
    029A E0E1      LDI	R30,1
pop:
    029B 9149      LD	R20,Y+
    029C 9159      LD	R21,Y+
    029D FDE0      SBRC	R30,0
    029E 9508      RET
    029F 9169      LD	R22,Y+
    02A0 9179      LD	R23,Y+
    02A1 FDE1      SBRC	R30,1
    02A2 9508      RET
    02A3 90A9      LD	R10,Y+
    02A4 90B9      LD	R11,Y+
    02A5 FDE2      SBRC	R30,2
    02A6 9508      RET
    02A7 90C9      LD	R12,Y+
    02A8 90D9      LD	R13,Y+
    02A9 FDE3      SBRC	R30,3
    02AA 9508      RET
    02AB 90E9      LD	R14,Y+
    02AC 90F9      LD	R15,Y+
    02AD 9508      RET
push_gset2:
    02AE 937A      ST	R23,-Y
    02AF 936A      ST	R22,-Y
    02B0 CFE6      RJMP	push_gset1
push_gset3:
    02B1 92BA      ST	R11,-Y
    02B2 92AA      ST	R10,-Y
    02B3 CFFA      RJMP	push_gset2
pop_gset3:
    02B4 E0E4      LDI	R30,4
    02B5 CFE5      RJMP	pop

⌨️ 快捷键说明

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