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

📄 ata_wc.lst

📁 This is the famous CD-ROM interfacing using 8051. It also contains schematic.
💻 LST
📖 第 1 页 / 共 5 页
字号:
                      00280                 
                      00281                                                                  
00AB                  00282 AtaCmdCloseDoor:
00AB   301B           00283         movlw   0x1b
00AC   00A2           00284         movwf   AtaPacket
00AD   3003           00285         movlw   0x03
00AE   00A6           00286         movwf   AtaPacket+4
00AF   2???           00287         call    AtaWritePacket
00B0   2???           00288         call    AtaReadPacketEmpty
00B1   1903           00289         btfsc   status,z                                               
00B2   0008           00290         return                                      
00B3   0BD6           00291         decfsz  AtaErrorRetries,f
00B4   2???           00292         goto    AtaCmdCloseDoor                     
00B5   2???           00293         call    AtaReset                                                      
00B6   0008           00294         return
                      00295                                                                  
                      00296                        
                      00297                                                         
                      00298                
                      00299                 
                      00300                                                                  
00B7                  00301 AtaCmdOpenDoor:
00B7   301B           00302         movlw   0x1b
00B8   00A2           00303         movwf   AtaPacket
00B9   3002           00304         movlw   0x02
00BA   00A6           00305         movwf   AtaPacket+4
00BB   2???           00306         call    AtaWritePacket
00BC   2???           00307         call    AtaReadPacketEmpty
00BD   1903           00308         btfsc   status,z                                               
00BE   0008           00309         return                                      
00BF   0BD6           00310         decfsz  AtaErrorRetries,f
00C0   2???           00311         goto    AtaCmdOpenDoor                      
00C1   2???           00312         call    AtaReset                                                      
00C2   0008           00313         return
                      00314                                                                  
                      00315                       
                      00316                                                 
                      00317                
                      00318                 
                      00319                                                                  
                      00320 #ifdef LCD
                      00321 AtaCmdInquiry:
                      00322         movlw   0x12
                      00323         movwf   AtaPacket
                      00324         movlw   0xff
                      00325         movwf   AtaPacket+4
                      00326         call    AtaWritePacket
                      00327         call    AtaReadPacketInquiry
                      00328         btfsc   status,z                                               
MPASM  4.00 Released                               ATA_WC.ASM   4-4-2005  11:55:09         PAGE 16


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00329         return                                      
                      00330         decfsz  AtaErrorRetries,f
                      00331         goto    AtaCmdInquiry                               
                      00332         call    AtaReset                                                      
                      00333         return
                      00334 #endif
                      00335                                                                  
                      00336                       
                      00337                                                                
                      00338                
                      00339                 
                      00340                                                                  
00C3                  00341 AtaCmdReadToc:
00C3   3043           00342         movlw   0x43
00C4   00A2           00343         movwf   AtaPacket
00C5   3002           00344         movlw   0x02
00C6   00A3           00345         movwf   AtaPacket+1
00C7   30FF           00346         movlw   0xff
00C8   00A9           00347         movwf   AtaPacket+7
00C9   30FF           00348         movlw   0xff
00CA   00AA           00349         movwf   AtaPacket+8
00CB   2???           00350         call    AtaWritePacket
00CC   2???           00351         call    AtaReadPacketToc
00CD   1903           00352         btfsc   status,z                                               
00CE   0008           00353         return                                      
00CF   0BD6           00354         decfsz  AtaErrorRetries,f
00D0   2???           00355         goto    AtaCmdReadToc                               
00D1   2???           00356         call    AtaReset                                                      
00D2   0008           00357         return
                      00358                                                                  
                      00359                              
                      00360                                                          
                      00361                
                      00362                 
                      00363                                                                  
00D3                  00364 AtaCmdReadSubChannel:
00D3   3042           00365         movlw   0x42
00D4   00A2           00366         movwf   AtaPacket
00D5   3002           00367         movlw   0x02
00D6   00A3           00368         movwf   AtaPacket+1
00D7   3040           00369         movlw   0x40
00D8   00A4           00370         movwf   AtaPacket+2
00D9   3001           00371         movlw   0x01
00DA   00A5           00372         movwf   AtaPacket+3
00DB   30FF           00373         movlw   0xff
00DC   00A9           00374         movwf   AtaPacket+7
00DD   30FF           00375         movlw   0xff
00DE   00AA           00376         movwf   AtaPacket+8
00DF   2???           00377         call    AtaWritePacket
00E0   2???           00378         call    AtaReadPacketSubChannel
00E1   1903           00379         btfsc   status,z                                                       
00E2   0008           00380         return                                              
00E3   0BD6           00381         decfsz  AtaErrorRetries,f
MPASM  4.00 Released                               ATA_WC.ASM   4-4-2005  11:55:09         PAGE 17


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00E4   2???           00382         goto    AtaCmdReadSubChannel                        
00E5   2???           00383         call    AtaReset                                                              
00E6   0008           00384         return
                      00385                                                                  
                      00386                 
                      00387                                                                  
                      00388                                                                  
                      00389                        
                      00390                                             
                      00391                                     
                      00392                 
                      00393                                                                  
00E7                  00394 AtaWritePacket:
00E7   300A           00395         movlw   0x0a                                                           
00E8   00B0           00396         movwf   AtaDataLsb
00E9   3006           00397         movlw   ATA_REG_DRIVEHEAD
00EA   2???           00398         call    AtaWriteRegister
                      00399 
00EB   01B0           00400         clrf    AtaDataLsb                                                   
00EC   3001           00401         movlw   ATA_REG_FEATURES
00ED   2???           00402         call    AtaWriteRegister
                      00403 
00EE   01B0           00404         clrf    AtaDataLsb                                            
00EF   3004           00405         movlw   ATA_REG_CYLINDERLOW
00F0   2???           00406         call    AtaWriteRegister
                      00407 
00F1   01B0           00408         clrf    AtaDataLsb
00F2   3005           00409         movlw   ATA_REG_CYLINDERHIGH
00F3   2???           00410         call    AtaWriteRegister
                      00411 
00F4   30A0           00412         movlw   ATA_COMMAND_PACKET                   
00F5   00B0           00413         movwf   AtaDataLsb
00F6   3007           00414         movlw   ATA_REG_COMMAND
00F7   2???           00415         call    AtaWriteRegister
                      00416         
                      00417                                                      
00F8   2???           00418         call    Delay10ms 
                      00419 
                      00420                   
00F9                  00421 AtaWc2:
00F9   3007           00422         movlw   ATA_REG_STATUS                          
00FA   2???           00423         call    AtaReadRegister
00FB   0830           00424         movf    AtaDataLsb,w
00FC   3908           00425         andlw   0x08
00FD   1903           00426         btfsc   status,z
00FE   2???           00427         goto    AtaWc2
                      00428         
00FF   1303           00429         bcf             status,rp1                                      
0100   1683           00430         bsf             status,rp0                              
0101   3000           00431         movlw   PORTB_CONFIG2                                       
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0102   0086           00432         movwf   trisb
0103   3000           00433         movlw   PORTC_CONFIG2
MPASM  4.00 Released                               ATA_WC.ASM   4-4-2005  11:55:09         PAGE 18


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0104   0087           00434         movwf   trisc   
0105   1303           00435         bcf             status,rp1                                             
0106   1283           00436         bcf             status,rp0      
0107   1085           00437         bcf             porta,ATA_A0                                       
0108   1105           00438         bcf             porta,ATA_A1
0109   1185           00439         bcf             porta,ATA_A2
010A   3006           00440         movlw   0x06                                                      
010B   00A0           00441         movwf   AtaCounter      
010C   3022           00442         movlw   AtaPacket
010D   0084           00443         movwf   fsr
010E                  00444 AtaWP1:
010E   0800           00445         movf    indf,w                          
010F   0086           00446         movwf   portb                   
0110   0A84           00447         incf    fsr,f
0111   0800           00448         movf    indf,w                          
0112   0087           00449         movwf   portc   
0113   2???           00450         call    Delay10ms
0114   0A84           00451         incf    fsr,f
0115   1285           00452         bcf             porta,ATA_IOW                       
0116   2???           00453         call    Delay10ms
0117   1685           00454         bsf             porta,ATA_IOW                           
0118   2???           00455         call    Delay10ms
0119   0BA0           00456         decfsz  AtaCounter,f
011A   2???           00457         goto    AtaWP1                                    
                      00458 
                      00459                                                              
011B   300C           00460         movlw   D'12'                   
011C   00A0           00461         movwf   AtaCounter
011D   3022           00462         movlw   AtaPacket
011E   0084           00463         movwf   fsr
011F   0180           00464 Au1:    clrf    indf    
0120   0A84           00465         incf    fsr,f
0121   0BA0           00466         decfsz  AtaCounter,f
0122   2???           00467         goto    Au1     
0123   0008      

⌨️ 快捷键说明

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