📄 lcd.lis
字号:
017F ; if((mistake<=GrCilMV)&&(mistake>=-GrCilMV))
017F 3F00 clr *__r2
0181 3F00 clr *__r1
0183 3F00 clr *__r0
0185 E60B lda 11,X
0187 B700 sta *__r3
0189 E604 lda 4,X
018B 87 psha
018C E603 lda 3,X
018E 87 psha
018F E602 lda 2,X
0191 87 psha
0192 E601 lda 1,X
0194 87 psha
0195 B600 lda *__r3
0197 87 psha
0198 B600 lda *__r2
019A 87 psha
019B B600 lda *__r1
019D 87 psha
019E B600 lda *__r0
01A0 87 psha
01A1 CD0000 jsr __cmp32
01A4 A708 ais #8
01A6 9303 ble X2
01A8 CC0242 jmp L21
01AB X2:
01AB 3F00 clr *__r0
01AD E60B lda 11,X
01AF B700 sta *__r1
01B1 B600 lda *__r0
01B3 40 nega
01B4 87 psha
01B5 B600 lda *__r1
01B7 40 nega
01B8 B700 sta *__r1
01BA 86 pula
01BB A200 sbc #0
01BD B700 sta *__r0
01BF 4E0000 mov *__r1,*__r3
01C2 4E0000 mov *__r0,*__r2
01C5 3F00 clr *__r1
01C7 3F00 clr *__r0
01C9 3D00 tst *__r2
01CB 2A04 bpl X1
01CD 3300 com *__r1
01CF 3300 com *__r0
01D1 X1:
01D1 E604 lda 4,X
01D3 87 psha
01D4 E603 lda 3,X
01D6 87 psha
01D7 E602 lda 2,X
01D9 87 psha
01DA E601 lda 1,X
01DC 87 psha
01DD B600 lda *__r3
01DF 87 psha
01E0 B600 lda *__r2
01E2 87 psha
01E3 B600 lda *__r1
01E5 87 psha
01E6 B600 lda *__r0
01E8 87 psha
01E9 CD0000 jsr __cmp32
01EC A708 ais #8
01EE 9152 blt L21
01F0 .dbline 96
01F0 ; {
01F0 .dbline 97
01F0 ; if(GrE==1) LcdShGr1P(y,x);//显示该点
01F0 E60C lda 12,X
01F2 A101 cmp #1
01F4 260D bne L23
01F6 .dbline 97
01F6 E605 lda 5,X
01F8 87 psha
01F9 F6 lda ,X
01FA 87 psha
01FB CD037A jsr _LcdShGr1P
01FE A702 ais #2
0200 95 tsx
0201 203F bra L24
0203 L23:
0203 .dbline 99
0203 ; //清除该点
0203 ; else if(y<=31) LcdShGr16P(y,(x/16),0);
0203 F6 lda ,X
0204 A11F cmp #31
0206 221C bhi L25
0208 .dbline 99
0208 450000 ldhx #0
020B 89 pshx
020C 8B pshh
020D 95 tsx
020E AF02 aix #2
0210 E605 lda 5,X
0212 AE10 ldx #16
0214 8C clrh
0215 52 div
0216 95 tsx
0217 AF02 aix #2
0219 87 psha
021A F6 lda ,X
021B 87 psha
021C CD03E7 jsr _LcdShGr16P
021F A704 ais #4
0221 95 tsx
0222 201E bra L26
0224 L25:
0224 .dbline 100
0224 ; else LcdShGr16P(y-32,x/16+8,0);
0224 450000 ldhx #0
0227 89 pshx
0228 8B pshh
0229 95 tsx
022A AF02 aix #2
022C E605 lda 5,X
022E AE10 ldx #16
0230 8C clrh
0231 52 div
0232 95 tsx
0233 AF02 aix #2
0235 AB08 add #8
0237 87 psha
0238 F6 lda ,X
0239 A020 sub #32
023B 87 psha
023C CD03E7 jsr _LcdShGr16P
023F A704 ais #4
0241 95 tsx
0242 L26:
0242 L24:
0242 .dbline 101
0242 ; }
0242 L21:
0242 .dbline 102
0242 L18:
0242 .dbline 91
0242 6C05 inc 5,X
0244 L20:
0244 .dbline 91
0244 E609 lda 9,X
0246 EB0A add 10,X
0248 B700 sta *__r0
024A E605 lda 5,X
024C B100 cmp *__r0
024E 2203 bhi X3
0250 CC00E0 jmp L17
0253 X3:
0253 L14:
0253 .dbline 90
0253 7C inc ,X
0254 L16:
0254 .dbline 90
0254 E608 lda 8,X
0256 EB0A add 10,X
0258 B700 sta *__r0
025A F6 lda ,X
025B B100 cmp *__r0
025D 2203 bhi X4
025F CC00D7 jmp L13
0262 X4:
0262 .dbline 104
0262 ; }
0262 ; //LcdShGr1P(Cy,Cx);//显示圆心
0262 ; Wtite_Command(0b00110000);//基本指令
0262 A630 lda #48
0264 87 psha
0265 CD041D jsr _Wtite_Command
0268 A701 ais #1
026A 95 tsx
026B .dbline -2
026B L12:
026B A706 ais #6
026D .dbline 0 ; func end
026D 81 rts
026E .dbsym l y 0 c
026E .dbsym l mistake 1 L
026E .dbsym l x 5 c
026E .dbsym l GrE 12 c
026E .dbsym l GrCilMV 11 c
026E .dbsym l CR 10 c
026E .dbsym l Cx 9 c
026E .dbsym l Cy 8 c
026E .dbend
026E .dbfunc e LcdShGrRe _LcdShGrRe fV
026E ; RC -> 0,X
026E ; LC -> 2,X
026E ; TBC -> 4,X
026E ; i -> 6,X
026E ; y -> 7,X
026E ; Px -> 8,X
026E ; GrE -> 12,X
026E ; ln -> 11,X
026E _LcdShGrRe::
026E .dbline -1
026E A7F7 ais #-9
0270 95 tsx
0271 .dbline 113
0271 ; }
0271 ;
0271 ; /*LcdShGrRe:在Lcd的指定行上显示或取消矩型边框------------------------------*
0271 ; *功 能:在Lcd上指定行上显示或取消矩型边框 *
0271 ; *参 数:ln为指定的行数(0-3), GrE确定图形是否有效 *
0271 ; *返 回:无 *
0271 ; *-------------------------------------------------------------------------*/
0271 ; void LcdShGrRe(INT8U ln,INT8U GrE)
0271 ; {
0271 .dbline 118
0271 E60B lda 11,X
0273 2704 beq L30
0275 A102 cmp #2
0277 2604 bne L28
0279 L30:
0279 .dbline 118
0279 ; INT8U Px,y; //行页号坐标,列坐标
0279 ; INT8U i; //循环变量
0279 ; INT16S LC,RC,TBC; //左,右和上下边框色
0279 ; //[确定ln所在行的起始坐标(左上角)]
0279 ; if((ln==0)||(ln==2)) y=0;
0279 6F07 clr 7,X
027B 2004 bra L29
027D L28:
027D .dbline 119
027D ; else y=16;
027D A610 lda #16
027F E707 sta 7,X
0281 L29:
0281 .dbline 120
0281 ; if(ln<=1) Px=0;
0281 E60B lda 11,X
0283 A101 cmp #1
0285 2204 bhi L31
0287 .dbline 120
0287 6F08 clr 8,X
0289 2004 bra L32
028B L31:
028B .dbline 121
028B ; else Px=8;
028B A608 lda #8
028D E708 sta 8,X
028F L32:
028F .dbline 123
028F ; //[确定有无边框(有GrE决定)]
028F ; if(GrE==1) //有表框
028F E60C lda 12,X
0291 A101 cmp #1
0293 2618 bne L33
0295 .dbline 124
0295 ; {TBC=65535;LC=32768;RC=1;}
0295 .dbline 124
0295 A6FF lda #-1
0297 E704 sta 4,X
0299 A6FF lda #-1
029B E705 sta 5,X
029D .dbline 124
029D A680 lda #-128
029F E702 sta 2,X
02A1 A600 lda #0
02A3 E703 sta 3,X
02A5 .dbline 124
02A5 4F clra
02A6 F7 sta ,X
02A7 A601 lda #1
02A9 E701 sta 1,X
02AB .dbline 124
02AB 200B bra L34
02AD L33:
02AD .dbline 126
02AD ; else //无边框
02AD ; {TBC=0;LC=0;RC=0;}
02AD .dbline 126
02AD 6F05 clr 5,X
02AF 6F04 clr 4,X
02B1 .dbline 126
02B1 6F03 clr 3,X
02B3 6F02 clr 2,X
02B5 .dbline 126
02B5 6F01 clr 1,X
02B7 7F clr ,X
02B8 .dbline 126
02B8 L34:
02B8 .dbline 127
02B8 ; Wtite_Command(0b00110110);//扩展指令,绘图开
02B8 A636 lda #54
02BA 87 psha
02BB CD041D jsr _Wtite_Command
02BE A701 ais #1
02C0 95 tsx
02C1 .dbline 129
02C1 ; //[在Lcd上指定行上显示矩型边框]
02C1 ; for(i=0;i<=7;i++,Px++)
02C1 6F06 clr 6,X
02C3 202A bra L38
02C5 L35:
02C5 .dbline 130
02C5 .dbline 131
02C5 E605 lda 5,X
02C7 87 psha
02C8 E604 lda 4,X
02CA 87 psha
02CB E608 lda 8,X
02CD 87 psha
02CE E607 lda 7,X
02D0 87 psha
02D1 CD03E7 jsr _LcdShGr16P
02D4 A704 ais #4
02D6 95 tsx
02D7 .dbline 132
02D7 E605 lda 5,X
02D9 87 psha
02DA E604 lda 4,X
02DC 87 psha
02DD E608 lda 8,X
02DF 87 psha
02E0 E607 lda 7,X
02E2 AB0F add #15
02E4 87 psha
02E5 CD03E7 jsr _LcdShGr16P
02E8 A704 ais #4
02EA 95 tsx
02EB .dbline 133
02EB L36:
02EB .dbline 129
02EB 6C06 inc 6,X
02ED 6C08 inc 8,X
02EF L38:
02EF .dbline 129
02EF E606 lda 6,X
02F1 A107 cmp #7
02F3 23D0 bls L35
02F5 .dbline 134
02F5 ; {
02F5 ; LcdShGr16P(y,Px,TBC); //显示上边框
02F5 ; LcdShGr16P(y+15,Px,TBC); //显示下边框
02F5 ; }
02F5 ; for(i=1,y++,Px--;i<=14;i++,y++)
02F5 A601 lda #1
02F7 E706 sta 6,X
02F9 6C07 inc 7,X
02FB 6A08 dec 8,X
02FD 2029 bra L42
02FF L39:
02FF .dbline 135
02FF .dbline 136
02FF E601 lda 1,X
0301 87 psha
0302 F6 lda ,X
0303 87 psha
0304 E608 lda 8,X
0306 87 psha
0307 E607 lda 7,X
0309 87 psha
030A CD03E7 jsr _LcdShGr16P
030D A704 ais #4
030F 95 tsx
0310 .dbline 137
0310 E603 lda 3,X
0312 87 psha
0313 E602 lda 2,X
0315 87 psha
0316 E608 lda 8,X
0318 A007 sub #7
031A 87 psha
031B E607 lda 7,X
031D 87 psha
031E CD03E7 jsr _LcdShGr16P
0321 A704 ais #4
0323 95 tsx
0324 .dbline 138
0324 L40:
0324 .dbline 134
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -