📄 gepe456.lst
字号:
022B 309C 00775 MOVLW B'10011100' ; text & graphic on, cursor & blink off
022C 2514 00776 CALL SENDCMD ; send command
00777
022D 01A8 00778 CLRF ADRMSB ; TEXT HOME ADDRESS $00xx
022E 3000 00779 MOVLW 0
022F 00A7 00780 MOVWF ADRLSB
0230 242B 00781 CALL CMDADR ; send command address
0231 3040 00782 MOVLW TXHOME ;
0232 2514 00783 CALL SENDCMD ; send command
00784
0233 3002 00785 MOVLW 2 ; set graphic address ($02xx)
0234 00A8 00786 MOVWF ADRMSB
0235 3000 00787 MOVLW 0 ; set column
0236 254D 00788 CALL LINE0 ; set cell number for line stated
0237 3010 00789 MOVLW 16 ; character quantity to be affected
0238 00A1 00790 MOVWF LOOPC ;
0239 01A9 00791 CLRF ATTRIB
023A 24BF 00792 CALL SETATTR
00793
023B 3002 00794 MOVLW 2 ; set graphic address ($02xx)
023C 00A8 00795 MOVWF ADRMSB
MPASM 02.30 Released GEPE456.ASM 1-25-2001 12:25:31 PAGE 16
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
023D 3006 00796 MOVLW 6 ; set column
023E 253B 00797 CALL LINE6 ; set cell number for line stated
023F 3009 00798 MOVLW 9 ; character quantity
0240 00A1 00799 MOVWF LOOPC ;
0241 01A9 00800 CLRF ATTRIB
0242 24BF 00801 CALL SETATTR ;
00802
0243 3002 00803 MOVLW 2 ; set graphic address ($02xx)
0244 00A8 00804 MOVWF ADRMSB
0245 3006 00805 MOVLW 6 ; set column
0246 2538 00806 CALL LINE7 ; set cell number for line stated
0247 3009 00807 MOVLW 9 ; character quantity
0248 00A1 00808 MOVWF LOOPC ;
0249 01A9 00809 CLRF ATTRIB
024A 24BF 00810 CALL SETATTR ;
00811
00812 ; ** start of AND-OR XOR mode proper **
00813
024B 01A8 00814 CLRF ADRMSB ; TEXT HOME ADDRESS $00xx
024C 3000 00815 MOVLW 0
024D 00A7 00816 MOVWF ADRLSB
024E 242B 00817 CALL CMDADR ; send command address
024F 3040 00818 MOVLW TXHOME ;
0250 2514 00819 CALL SENDCMD ; send command
00820
0251 300F 00821 MOVLW 15 ;
0252 00A2 00822 MOVWF LOOPD ; set line start
0253 3001 00823 AND2 MOVLW 1 ; set column number
0254 00A7 00824 MOVWF ADRLSB
0255 0822 00825 MOVF LOOPD,W ; set graph line
0256 254F 00826 CALL GLINE ; multiply by line length
0257 300A 00827 MOVLW 10 ; character quantity
0258 00A1 00828 MOVWF LOOPC ;
0259 30AA 00829 MOVLW B'10101010' ; fill graphic with val shown
025A 1C22 00830 BTFSS LOOPD,0
025B 3055 00831 MOVLW B'01010101' ; fill graphic with val shown
025C 00A9 00832 MOVWF ATTRIB
025D 24BF 00833 CALL SETATTR ; send value
025E 0AA2 00834 INCF LOOPD,F ; inc line count
025F 0822 00835 MOVF LOOPD,W
0260 3A21 00836 XORLW 33 ; has line count reached max?
0261 1D03 00837 BTFSS STATUS,Z
0262 2A53 00838 GOTO AND2
00839
0263 00840 SETAND ; ** SET AND-OR-XOR MODE ** TRY ANY OF THESE OPTIONS:
0263 3081 00841 MOVLW B'10000001' ; internal CG RAM mode, XOR
00842 ; movlw %10000000 ; internal CG RAM mode, OR
00843 ; movlw %10000011 ; internal CG RAM mode, AND
0264 2514 00844 CALL SENDCMD ; send command
00845
00846 ; ** CHANGE DISPLAY MODE ** TRY ANY OF THESE OPTIONS:
0265 309C 00847 MOVLW B'10011100' ; text & graphic on, cursor & blink off
00848 ; movlw %10010100 ; text on, graphic off, cursor & blink off
MPASM 02.30 Released GEPE456.ASM 1-25-2001 12:25:31 PAGE 17
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00849 ; movlw %10011000 ; text off, graphic on, cursor & blink off
0266 2514 00850 CALL SENDCMD ; send command
0267 0008 00851 RETURN
00852
00853 ;******* DEMO 8 GET GRAPHICS (BIRD) FROM EEPROM, DRAW & REPEAT SHIFT RIGHT ***
00854
0268 246A 00855 DEMO8 CALL CLRTXT
0269 247C 00856 CALL CLRGRAPH
00857
026A 3010 00858 MOVLW 16 ; change column length to 16
026B 00AD 00859 MOVWF COLUMN
026C 2448 00860 CALL TEXTAREA ; SET TEXT AREA
026D 244F 00861 CALL GRAPHAREA ; SET GRAPHIC AREA
00862
026E 3080 00863 MOVLW B'10000000' ; internal CG RAM mode, OR
026F 2514 00864 CALL SENDCMD ; send command
0270 309C 00865 MOVLW B'10011100' ; text & graphic on, cursor & blink off
0271 2514 00866 CALL SENDCMD ; send command
00867
0272 01A8 00868 EPE CLRF ADRMSB ; show EPE text PT1
0273 3001 00869 MOVLW 1 ; set column
0274 00A7 00870 MOVWF ADRLSB
0275 254D 00871 CALL LINE0 ; set line
0276 3009 00872 MOVLW 9 ; character quantity
0277 00A1 00873 MOVWF LOOPC ;
0278 3010 00874 MOVLW 16 ; position in table
0279 00A0 00875 MOVWF LOOPB ; set table loop counter
027A 24B2 00876 CALL SHWTXT ;
00877
027B 01A8 00878 CLRF ADRMSB ; set and show EPE text PT2
027C 300B 00879 MOVLW 11 ; set column
027D 00A7 00880 MOVWF ADRLSB
027E 254D 00881 CALL LINE0 ; set line
027F 3004 00882 MOVLW 4 ; character quantity
0280 00A1 00883 MOVWF LOOPC ;
0281 301E 00884 MOVLW 30 ; position in table
0282 00A0 00885 MOVWF LOOPB ; set table loop counter
0283 24B2 00886 CALL SHWTXT ;
00887
0284 1703 00888 BSF STATUS,RP1 ; set PIC's Page 2 and EEPROM reading address
0285 018D 00889 CLRF EEADR
0286 1303 00890 BCF STATUS,RP1
00891
0287 01A2 00892 CLRF LOOPD
0288 01A3 00893 CLRF LOOPE
00894
0289 0823 00895 BIRDX MOVF LOOPE,W
028A 00A7 00896 MOVWF ADRLSB ; set column
028B 3014 00897 MOVLW 20 ; set line
028C 254F 00898 CALL GLINE ; multiply by line length to get address
00899
028D 3020 00900 BIRD2 MOVLW 32 ; get & show BIRD details from EEPROM
028E 00A0 00901 MOVWF LOOPB
MPASM 02.30 Released GEPE456.ASM 1-25-2001 12:25:31 PAGE 18
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
028F 255D 00902 BIRD2A CALL PRMGET
0290 241C 00903 CALL ONEWRITE
0291 082D 00904 MOVF COLUMN,W
0292 07A7 00905 ADDWF ADRLSB,F
0293 1803 00906 BTFSC STATUS,C
0294 0AA8 00907 INCF ADRMSB,F
0295 0BA0 00908 DECFSZ LOOPB,F
0296 2A8F 00909 GOTO BIRD2A
0297 0AA3 00910 INCF LOOPE,F
0298 1E23 00911 BTFSS LOOPE,4
0299 2A89 00912 GOTO BIRDX
00913
029A 1703 00914 BEAK1 BSF STATUS,RP1
029B 30CA 00915 MOVLW 202 ; set for reading from EEPROM byte 202
029C 008D 00916 MOVWF EEADR
029D 1303 00917 BCF STATUS,RP1
029E 3003 00918 MOVLW 3 ;
029F 00A1 00919 MOVWF LOOPC
00920
02A0 3014 00921 MOVLW H'14' ; CG RAM start address $1400 + 128
02A1 00A8 00922 MOVWF ADRMSB ; (character code $90)
02A2 3080 00923 MOVLW 128 ;
02A3 00A7 00924 MOVWF ADRLSB ;
02A4 2432 00925 CALL SCREENADR ; set screen write address
02A5 30B0 00926 MOVLW AWRON ; AUTO WRITE ON
02A6 2514 00927 CALL SENDCMD ; send command
00928
02A7 255D 00929 BK2 CALL PRMGET ; get BIRD beak details from EEPROM
02A8 2426 00930 CALL AUTOWRITE ; auto write beak as character $90
02A9 0A8D 00931 INCF EEADR,F ; just 3 lines of eeprom taken as $90
02AA 0BA1 00932 DECFSZ LOOPC,F ; is assumed to have been cleared earlier
02AB 2AA7 00933 GOTO BK2
02AC 30B2 00934 MOVLW AWROFF ; AUTO WRITE OFF
02AD 2514 00935 CALL SENDCMD ; send command
00936
02AE 3033 00937 MOVLW 51 ; start line for water
02AF 00A3 00938 MOVWF LOOPE
02B0 300C 00939 MOVLW 12 ; number of lines to be filled
02B1 00A2 00940 MOVWF LOOPD
00941
02B2 3000 00942 WATER MOVLW 0 ; draw "WATER"
02B3 00A7 00943 MOVWF ADRLSB ; set column
02B4 0823 00944 MOVF LOOPE,W ; set line
02B5 254F 00945 CALL GLINE ; multiply by line length
02B6 3010 00946 MOVLW 16 ; character quantity
02B7 00A1 00947 MOVWF LOOPC
02B8 30AA 00948 MOVLW B'10101010' ; "WATER" pattern - try changing this value
02B9 00A9 00949 MOVWF ATTRIB
02BA 24BF 00950 CALL SETATTR
02BB 0AA3 00951 INCF LOOPE,F
02BC 0BA2 00952 DECFSZ LOOPD,F
02BD 2AB2 00953 GOTO WATER
00954
MPASM 02.30 Released GEPE456.ASM 1-25-2001 12:25:31 PAGE 19
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
02BE 301C 00955 MOVLW 28
02BF 00A3 00956 MOVWF LOOPE
02C0 3034 00957 MOVLW JOIN00 ; clear JOIN variables
02C1 0084 00958 MOVWF FSR
02C2 0180 00959 CLRJOIN CLRF INDF ;JKJ: removed ',F'
02C3 0A84 00960 INCF FSR,F
02C4 0BA3 00961 DECFSZ LOOPE,F
02C5 2AC2 00962 GOTO CLRJOIN
02C6 3006 00963 MOVLW 6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -