📄 ata_wc.lst
字号:
00000048 00035 TrackStatus equ 0x48
00036
00000049 00037 TrackTempNr equ 0x49
0000004A 00038 TrackStartNr equ 0x4a ;initialise to 1
00039
0000004B 00040 AtaTemp equ 0x4b
0000004C 00041 AtaReadBytesLsb equ 0x4c
0000004D 00042 AtaReadBytesMsb equ 0x4d
00043
0000004E 00044 AdcMsb equ 0x4e
0000004F 00045 AdcLsb equ 0x4f
00046
00000050 00047 KeyEventTemp1 equ 0x50
00000051 00048 KeyEventTemp2 equ 0x51
00049
00000052 00050 timera equ 0x52
00000053 00051 timerb equ 0x53
00000054 00052 timerc equ 0x54
00000055 00053 AtaRegister equ 0x55
00000056 00054 AtaErrorRetries equ 0x56
00055 ;*******************
00056 ;PORT CONFIGURATIONS
00057 ;*******************
00058 ;analog key input, IDE control signals
00000001 00059 PORTA_CONFIG1 equ 0x01 ;bit5: out,out,out,out,out,in :bit0
00000005 00060 ATA_IOW equ 5
00000004 00061 ATA_IOR equ 4
00000003 00062 ATA_A2 equ 3
00000002 00063 ATA_A1 equ 2
00000001 00064 ATA_A0 equ 1
00000000 00065 KEYS equ 0
00066
00067 ;used as a bidirectional data bus for IDE_D00/D15
000000FF 00068 PORTB_CONFIG1 equ 0xff ;bit7: in,in,in,in,in,in,in,in :bit0
000000FF 00069 PORTC_CONFIG1 equ 0xff ;bit7: in,in,in,in,in,in,in,in :bit0
00070
00000000 00071 PORTB_CONFIG2 equ 0x00 ;bit7: out,out,out,out,out,out,out,out :bit0
00000000 00072 PORTC_CONFIG2 equ 0x00 ;bit7: out,out,out,out,out,out,out,out :bit0
00073
00074
00075 ;lcd data bus D0/D4, IDE reset, status leds
00000000 00076 PORTD_CONFIG1 equ 0x00 ;bit7: out,in,out,out,out,out,out,out :bit0
00000007 00077 ATA_RST equ 7
00000006 00078 LED_3 equ 6
00000005 00079 LED_2 equ 5
00000004 00080 LED_STATUS equ 4
00081
00082 ;lcd control signals
00000000 00083 PORTE_CONFIG1 equ 0x00 ;bit2: out,out,out :bit0
00000002 00084 LCD_CLK equ 2
00000001 00085 LCD_RW equ 1
00000000 00086 LCD_RS equ 0
00087
MPASM 4.00 Released ATA_WC.ASM 4-4-2005 11:55:09 PAGE 9
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00088 ;keypad events
00000000 00089 KEY_EVENT_PLAY_STOP equ 0
00000001 00090 KEY_EVENT_NEXT equ 1
00000002 00091 KEY_EVENT_PREVIOUS equ 2
00000003 00092 KEY_EVENT_OPEN_CLOSE equ 3
00000004 00093 KEY_EVENT_PAUSE_ONOFF equ 4
00000005 00094 KEY_EVENT_LCD_INFO equ 5
00095
00096 ;key states (bit in variable KeyState)
00000000 00097 KEY_STATE_PLAY_STOP equ 0
00000001 00098 KEY_STATE_PAUSE_ONOFF equ 1
00000002 00099 KEY_STATE_OPEN_CLOSE equ 2
00100
00101
00102 ;keypad inputs voltages
00103 ;DigValue=(Vin*1023)/5
00104 ;KEYPAD_NO_KEY equ 73 ;msb=0,lsb=73 (0x49) ;<0,35V
00105 ;KEYPAD_PAUSE_ONOFF equ 74 ;msb=0,lsb=74(0x4a) ;0,36V-0,71V-1,06V
00106 ;KEYPAD_PREVIOUS equ 219 ;msb=0,lsb=219(0xdb) ;1,07V-1,43V-1,7
8V
00107 ; equ 365 ;msb=1,lsb=109(0x6d)
00108 ;KEYPAD_PLAY_STOP equ 366 ;msb=1,lsb=110(0x6e) ;1,79V-2,14V-2,4
9V
00109 ;KEYPAD_NEXT equ 512 ;msb=2,lsb=0 ;2,50V-2
,86V-3,20V
00110 ;KEYPAD_OPEN_CLOSE equ 657 ;msb=2,lsb=145(0x91) ;3,21V-3,57V-3,92V
00111 ; equ 803 ;msb=3,lsb=35(0x23)
00112 ;KEYPAD_LCD_INFO equ 804 ;msb=3,lsb=36(0x24) ;3,93V-4,29V-4,6
4V
00113 ;KEYPAD_MORE_THAN_ONE_KEY equ 951 ;msb=3,lsb=183(0xb7) ;>4,65V
00012 include "ata.inc"
00001 ;****************************************************************
00002 ;* MUSIC CD PLAYER - MuCoP
00003 ;* BY KEITH WILSON
00004 ;* VERSION 1
00005 ;****************************************************************
00006
00007
00008 ;ATA registers
00000000 00009 ATA_REG_DATA equ 0x00
00000001 00010 ATA_REG_ERROR equ 0x01
00000001 00011 ATA_REG_FEATURES equ 0x01
00000002 00012 ATA_REG_SECTORCOUNT equ 0x02
00000003 00013 ATA_REG_SECTORNUMBER equ 0x03
00000004 00014 ATA_REG_CYLINDERLOW equ 0x04
00000005 00015 ATA_REG_CYLINDERHIGH equ 0x05
00000006 00016 ATA_REG_DRIVEHEAD equ 0x06
00000007 00017 ATA_REG_STATUS equ 0x07
00000007 00018 ATA_REG_COMMAND equ 0x07
00019
00020 ;ATA commands
000000A1 00021 ATA_COMMAND_IDENTIFY_DRIVE equ 0xa1
000000A0 00022 ATA_COMMAND_PACKET equ 0xa0
MPASM 4.00 Released ATA_WC.ASM 4-4-2005 11:55:09 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00023
00024
00013
00014
00015
00016
0000 00017 global AtaUpdate
0000 00018 global AtaInit
00019
00020
00021
00022
0000 00023 extern Delay1ms
0000 00024 extern Delay10ms
0000 00025 extern Delay200ms
0000 00026 extern Delay5s
00027
00028 _rom1 code
00029
00030
00031
00032
00033
00034
0000 00035 AtaUpdate:
0000 0834 00036 movf KeyEvent,w
0001 3A00 00037 xorlw 0x00
0002 1903 00038 btfsc status,z
0003 0008 00039 return
0004 1608 00040 bsf portd,LED_STATUS
0005 300A 00041 movlw D'10'
0006 00D6 00042 movwf AtaErrorRetries
00043
00044
00045
00046
0007 1935 00047 btfsc KeyState,KEY_STATE_OPEN_CLOSE
0008 2??? 00048 goto Iu2
0009 1C34 00049 btfss KeyEvent,KEY_EVENT_PLAY_STOP
000A 2??? 00050 goto Iu2
000B 1835 00051 btfsc KeyState,KEY_STATE_PLAY_STOP
000C 2??? 00052 goto Kst
000D 2??? 00053 Kpl: call AtaCmdReadToc
000E 0838 00054 movf TrackStartMSF_M,w
000F 00A5 00055 movwf AtaPacket+3
0010 0839 00056 movf TrackStartMSF_S,w
0011 00A6 00057 movwf AtaPacket+4
0012 083A 00058 movf TrackStartMSF_F,w
0013 00A7 00059 movwf AtaPacket+5
0014 2??? 00060 call AtaCmdPlayAudio
0015 1435 00061 bsf KeyState,KEY_STATE_PLAY_STOP
0016 10B5 00062 bcf KeyState,KEY_STATE_PAUSE_ONOFF
0017 2??? 00063 goto IuEnd
MPASM 4.00 Released ATA_WC.ASM 4-4-2005 11:55:09 PAGE 11
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0018 2??? 00064 Kst: call AtaCmdStopAudio
0019 1035 00065 bcf KeyState,KEY_STATE_PLAY_STOP
001A 2??? 00066 goto IuEnd
00067
00068
00069
00070
00071
001B 1935 00072 Iu2: btfsc KeyState,KEY_STATE_OPEN_CLOSE
001C 2??? 00073 goto Iu3
001D 18B5 00074 btfsc KeyState,KEY_STATE_PAUSE_ONOFF
001E 2??? 00075 goto Iu3
001F 1CB4 00076 btfss KeyEvent,KEY_EVENT_NEXT
0020 2??? 00077 goto Iu3
0021 0ACA 00078 incf TrackStartNr,f
0022 1C35 00079 btfss KeyState,KEY_STATE_PLAY_STOP
0023 2??? 00080 goto IuEnd
0024 2??? 00081 call AtaCmdReadSubChannel
0025 0A44 00082 incf TrackCurrentNr,w
0026 00CA 00083 movwf TrackStartNr
0027 2??? 00084 call AtaCmdReadToc
0028 0838 00085 movf TrackStartMSF_M,w
0029 00A5 00086 movwf AtaPacket+3
002A 0839 00087 movf TrackStartMSF_S,w
002B 00A6 00088 movwf AtaPacket+4
002C 083A 00089 movf TrackStartMSF_F,w
002D 00A7 00090 movwf AtaPacket+5
002E 2??? 00091 call AtaCmdPlayAudio
002F 2??? 00092 goto IuEnd
00093
00094
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -