📄 invaders.lst
字号:
MPASM 03.80 Released INVADERS.ASM 7-30-2004 12:15:53 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;*******************************************************
00002 ;* Code Produced by the *
00003 ;* PROTON+ Compiler. Version 3.0 *
00004 ;* Copyright Rosetta Technologies/Crownhill Associates *
00005 ;* Written by Les Johnson. 2004 *
00006 ;*******************************************************
00001 LIST
00002 ;{
00003 ;FILE F1 = INVADERS.BAS
00004 ;FILE F2 = c:\proton 2.2\INC\PROTON18_G8.INT
00005 ;}
00009 ;[Variable Listing]
00010 ;_B#VR1,002D,DT_BYTE,1
00011 ;_B#VR2,002E,DT_BYTE,1
00012 ;BASE_ENABLED,003D,DT_BYTE,9
00013 ;BASE_HITS,0046,DT_BYTE,9
00014 ;INVADER_XPOS,004F,DT_BYTE,18
00015 ;INVADER_YPOS,0061,DT_BYTE,18
00016 ;INVADER_ENABLED,0073,DT_BYTE,18
00017 ;SHIP_XPOS,0085,DT_BYTE,1
00018 ;MISSILE_YPOS,0086,DT_BYTE,1
00019 ;MISSILE_XPOS,0087,DT_BYTE,1
00020 ;SHIP_SPEED,0088,DT_BYTE,1
00021 ;INVADER_TICK,0089,DT_BYTE,1
00022 ;INVADER_MISSILE_TICK,008A,DT_BYTE,1
00023 ;SHIP_MISSILE_TICK,008B,DT_BYTE,1
00024 ;TEMP_LOOP,008C,DT_BYTE,1
00025 ;INVADERS_ENABLED,008D,DT_BYTE,1
00026 ;INVADER_SPEED,008E,DT_BYTE,1
00027 ;BASE_XPOS_TEST,008F,DT_BYTE,1
00028 ;INVADER_MISSILE_YPOS,0090,DT_BYTE,1
00029 ;INVADER_MISSILE_XPOS,0091,DT_BYTE,1
00030 ;INVADER_MISSILE_SPEED,0092,DT_BYTE,1
00031 ;DEFAULT_INVADER_SPEED,0093,DT_BYTE,1
00032 ;INVADER_MISSILE2_TICK,0094,DT_BYTE,1
00033 ;INVADER_MISSILE2_YPOS,0095,DT_BYTE,1
00034 ;INVADER_MISSILE2_XPOS,0096,DT_BYTE,1
00035 ;INVADER_MISSILE2_SPEED,0097,DT_BYTE,1
00036 ;SAUCER_XPOS,0098,DT_BYTE,1
00037 ;SAUCER_SPEED,0099,DT_BYTE,1
00038 ;SCORE,009A,DT_DWORD,4
00039 ;LEVEL,009E,DT_WORD,2
00040 ;LIVES,00A0,DT_BYTE,1
00041 ;RANDOM_VALUE,00A1,DT_BYTE,1
00042 ;[End Listing]
00043 #DEFINE _USELFSR 1
Message[308]: Warning level superseded by command line value. (2)
00044 LIST P = 18F452,F = INHX32 ,W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255
00045 #INCLUDE "c:\PROTON~1.2\INC\P18F452.lpb"
00001
00709 LIST
00046 #DEFINE XTAL 8
00047 #DEFINE _CORE 16
00048 #DEFINE _MAXRAM 1536
00049 #DEFINE _RAM_END 1535
00050 #DEFINE _MAXMEM 32768
00051 #DEFINE _ADC 8
00052 #DEFINE _ADC_RES 10
00053 #DEFINE _EEPROM 256
00054 #DEFINE RAM_BANKS 6
00055 #DEFINE _USART 1
00056 #DEFINE _USB 0
00057 #DEFINE _FLASH 1
00058 #DEFINE BANK0_START 128
00059 #DEFINE BANK0_END 255
00060 #DEFINE BANK1_START 256
00061 #DEFINE BANK1_END 511
00062 #DEFINE BANK2_START 512
00063 #DEFINE BANK2_END 767
00064 #DEFINE BANK3_START 768
00065 #DEFINE BANK3_END 1023
00066 #DEFINE BANK4_START 1024
00067 #DEFINE BANK4_END 1279
00068 #DEFINE BANK5_START 1280
00069 #DEFINE BANK5_END 1535
00070 #DEFINE BANKA_START 0
00071 #DEFINE BANKA_END 127
00072 #DEFINE _SYSTEM_VARIABLE_COUNT 49
00000000 00073 RAM_BANK = 0
00074 #DEFINE LCD#DTPORT PORTD
00075 #DEFINE LCD#DTPIN 4
00076 #DEFINE LCD#RSPORT PORTC
00077 #DEFINE LCD#RSPIN 1
00078 #DEFINE LCD#ENPORT PORTE
00079 #DEFINE LCD#ENPIN 0
00080 #DEFINE LCD#RWPORT PORTC
00081 #DEFINE LCD#RWPIN 0
00082 #DEFINE LCD#CS1PORT PORTE
00083 #DEFINE LCD#CS1PIN 1
00084 #DEFINE LCD#CS2PORT PORTE
00085 #DEFINE LCD#CS2PIN 2
00086 #DEFINE LCD#TYPE 1
00087 #DEFINE INTERNAL#FONT 1
00088 #DEFINE FONT_SLAVE#ADDR 0
00089 #INCLUDE "c:\PROTON~1.2\INC\REG_LD16.INC"
00001
00002 ; 16Cxxx Substitutions
00003
00004 #DEFINE CLRW CLRF WREG ; PIC16Cxxx code substitution (WREG is addressable)
00005 #DEFINE NEGW NEGF WREG ; PIC16Cxxx code substitution (WREG is addressable)
00006
00007 #DEFINE SKPC BTFSS STATUS,C
00008 #DEFINE SKPNC BTFSC STATUS,C
00009 #DEFINE CLRC BCF STATUS,C
00010 #DEFINE SETC BSF STATUS,C
00011 #DEFINE SKPZ BTFSS STATUS,Z
00012 #DEFINE SKPNZ BTFSC STATUS,Z
00013 #DEFINE CLRZ BCF STATUS,Z
00014 #DEFINE SETZ BSF STATUS,Z
00015
00016 ;-------------------------------------------------------------------------------------------------
00017 MOVFW MACRO VARIN
00018 MOVF VARIN,W
00019 ENDM
00020 ;-------------------------------------------------------------------------------------------------
00021 RLF MACRO VARIN,DEST
00022 RLCF VARIN,DEST
00023 ENDM
00024 ;-------------------------------------------------------------------------------------------------
00025 RRF MACRO VARIN,DEST
00026 RRCF VARIN,DEST
00027 ENDM
00028 ;-------------------------------------------------------------------------------------------------
00029 JUMP MACRO LABEL
00030 GOTO LABEL
00031 ENDM
00032 ;-------------------------------------------------------------------------------------------------
00033 F@CALL MACRO DEST
00034 IF (DEST < 1)
00035 CALL DEST
00036 ELSE
00037 IF (DEST > $)
00038 CALL DEST
00039 ELSE
00040 IF (DEST < ($ - 0X03FF))
00041 CALL DEST
00042 ELSE
00043 RCALL DEST
00044 ENDIF
00045 ENDIF
00046 ENDIF
00047 ENDM
00048 ;-------------------------------------------------------------------------------------------------
00049 F@JUMP MACRO DEST
00050
00051 IFDEF WATCHDOG_REQ
00052 IF ($ == DEST)
00053 CLRWDT ; Walk the dog
00054 ENDIF
00055 ENDIF
00056 IF (DEST < 1)
00057 GOTO DEST
00058 ELSE
00059 IF ((DEST) > $)
00060 GOTO DEST
00061 ELSE
00062 IF ((DEST) < ($ - 0X03FF))
00063 GOTO DEST
00064 ELSE
00065 BRA DEST
00066 ENDIF
00067 ENDIF
00068 ENDIF
00069 ENDM
00070 ;-------------------------------------------------------------------------------------------------
00071 IFDEF WATCHDOG_REQ
00072 CHK@SLF MACRO DEST
00073 IF ($ == DEST)
00074 CLRWDT ; Walk the dog
00075 ENDIF
00076 ENDM
00077 ENDIF
00078
00079 G@OTO MACRO DEST
00080 IF (DEST < 1)
00081 BTFSC STATUS,OV
00082 GOTO DEST
00083 ELSE
00084 IF (DEST > $)
00085 BTFSC STATUS,OV
00086 GOTO DEST
00087 ELSE
00088 IF (DEST < ($ - 127))
00089 BTFSC STATUS,OV
00090 GOTO DEST
00091 ELSE
00092 BOV DEST
00093 ENDIF
00094 ENDIF
00095 ENDIF
00096 ENDM
00097
00098 GO@TO MACRO DEST
00099 IF (DEST < 1)
00100 GOTO DEST
00101 ELSE
00102 IF (DEST > $)
00103 GOTO DEST
00104 ELSE
00105 IF (DEST < ($ - 0X03FF))
00106 GOTO DEST
00107 ELSE
00108 BRA DEST
00109 ENDIF
00110 ENDIF
00111 ENDIF
00112 ENDM
00113 ;-------------------------------------------------------------------------------------------------
00114 S@B MACRO VARIN
00115 IF ((VARIN > BANKA_END) & (VARIN < 0X0F80))
00116 IF ((VARIN & 0X0F00) != (RAM_BANK << 8))
00117 MOVLB (VARIN >> 8)
00118 RAM_BANK = (VARIN >> 8)
00119 ENDIF
00120 ENDIF
00121 ENDM
00122 ;-------------------------------------------------------------------------------------------------
00123 R@B MACRO
00124 IF(RAM_BANK != 0)
00125 MOVLB 0
00126 RAM_BANK = 0
00127 ENDIF
00128 ENDM
00129 ;-------------------------------------------------------------------------------------------------
00130 WREG_BYTE MACRO BYTEOUT
00131 S@B BYTEOUT
00132 MOVWF BYTEOUT
00133 R@B ; Reset the bank when the macro is finished
00134 ;movff WREG,byteout
00135 ENDM
00136 ;-------------------------------------------------------------------------------------------------
00137 WREG_BIT MACRO VAROUT,BITOUT
00138 S@B VAROUT
00139 BTFSC WREG,0
00140 BSF VAROUT,BITOUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -