📄 tg1286~1.lst
字号:
92CE B6 44 ldA *__r4
92D0 87 pshA
92D1 B6 43 ldA *__r3
92D3 87 pshA
92D4 B6 42 ldA *__r2
92D6 87 pshA
92D7 CD 9998 jsr __mul16
92DA A7 04 aiS #4
92DC 4E 4D43 mov *__rlo,*__r3
92DF 4E 4C42 mov *__rhi,*__r2
92E2 B6 41 ldA *__r1
92E4 B0 43 sub *__r3
92E6 B7 41 stA *__r1
92E8 B6 40 ldA *__r0
92EA B2 42 sbc *__r2
92EC B7 40 stA *__r0
92EE 4F clrA
92EF E7 02 stA 2,X
92F1 E7 01 stA 1,X
92F3 B6 41 ldA *__r1
92F5 E7 04 stA 4,X
92F7 B6 40 ldA *__r0
92F9 E7 03 stA 3,X
92FB 2A 04 bpl 0x9301
92FD 63 02 com 2,X
92FF 63 01 com 1,X
(0093) mistake=(x-Cx)*(x-Cx)+(y-Cy)*(y-Cy)-CR*CR;
(0094) //误差在范围之内时,显示该点
(0095) if((mistake<=GrCilMV)&&(mistake>=-GrCilMV))
9301 3F 42 clr *__r2
9303 3F 41 clr *__r1
9305 3F 40 clr *__r0
9307 E6 0B ldA 11,X
9309 B7 43 stA *__r3
930B E6 04 ldA 4,X
930D 87 pshA
930E E6 03 ldA 3,X
9310 87 pshA
9311 E6 02 ldA 2,X
9313 87 pshA
9314 E6 01 ldA 1,X
9316 87 pshA
9317 B6 43 ldA *__r3
9319 87 pshA
931A B6 42 ldA *__r2
931C 87 pshA
931D B6 41 ldA *__r1
931F 87 pshA
9320 B6 40 ldA *__r0
9322 87 pshA
9323 CD 98AC jsr __cmp32
9326 A7 08 aiS #8
9328 93 03 ble 0x932D
932A CC 93C4 jmp 0x93C4
932D 3F 40 clr *__r0
932F E6 0B ldA 11,X
9331 B7 41 stA *__r1
9333 B6 40 ldA *__r0
9335 40 negA
9336 87 pshA
9337 B6 41 ldA *__r1
9339 40 negA
933A B7 41 stA *__r1
933C 86 pulA
933D A2 00 sbc #0
933F B7 40 stA *__r0
9341 4E 4143 mov *__r1,*__r3
9344 4E 4042 mov *__r0,*__r2
9347 3F 41 clr *__r1
9349 3F 40 clr *__r0
934B 3D 42 tst *__r2
934D 2A 04 bpl 0x9353
934F 33 41 com *__r1
9351 33 40 com *__r0
9353 E6 04 ldA 4,X
9355 87 pshA
9356 E6 03 ldA 3,X
9358 87 pshA
9359 E6 02 ldA 2,X
935B 87 pshA
935C E6 01 ldA 1,X
935E 87 pshA
935F B6 43 ldA *__r3
9361 87 pshA
9362 B6 42 ldA *__r2
9364 87 pshA
9365 B6 41 ldA *__r1
9367 87 pshA
9368 B6 40 ldA *__r0
936A 87 pshA
936B CD 98AC jsr __cmp32
936E A7 08 aiS #8
9370 91 52 blt 0x93C4
(0096) {
9372 E6 0C ldA 12,X
9374 A1 01 cmp #1
9376 26 0D bne 0x9385
(0097) if(GrE==1) LcdShGr1P(y,x);//显示该点
9378 E6 05 ldA 5,X
937A 87 pshA
937B F6 ldA 0,X
937C 87 pshA
937D CD 94FC jsr _LcdShGr1P
9380 A7 02 aiS #2
9382 95 tSX
9383 20 3F bra 0x93C4
(0098) //清除该点
(0099) else if(y<=31) LcdShGr16P(y,(x/16),0);
9385 F6 ldA 0,X
9386 A1 1F cmp #31
9388 22 1C bhi 0x93A6
938A 45 0000 ldHX #0x0000
938D 89 pshX
938E 8B pshH
938F 95 tSX
9390 AF 02 aiX #2
9392 E6 05 ldA 5,X
9394 AE 10 ldX #16
9396 8C clrH
9397 52 div
9398 95 tSX
9399 AF 02 aiX #2
939B 87 pshA
939C F6 ldA 0,X
939D 87 pshA
939E CD 9569 jsr _LcdShGr16P
93A1 A7 04 aiS #4
93A3 95 tSX
93A4 20 1E bra 0x93C4
(0100) else LcdShGr16P(y-32,x/16+8,0);
93A6 45 0000 ldHX #0x0000
93A9 89 pshX
93AA 8B pshH
93AB 95 tSX
93AC AF 02 aiX #2
93AE E6 05 ldA 5,X
93B0 AE 10 ldX #16
93B2 8C clrH
93B3 52 div
93B4 95 tSX
93B5 AF 02 aiX #2
93B7 AB 08 add #8
93B9 87 pshA
93BA F6 ldA 0,X
93BB A0 20 sub #32
93BD 87 pshA
93BE CD 9569 jsr _LcdShGr16P
93C1 A7 04 aiS #4
93C3 95 tSX
(0101) }
93C4 6C 05 inc 5,X
93C6 E6 09 ldA 9,X
93C8 EB 0A add 10,X
93CA B7 40 stA *__r0
93CC E6 05 ldA 5,X
93CE B1 40 cmp *__r0
93D0 22 03 bhi 0x93D5
93D2 CC 9262 jmp 0x9262
93D5 7C inc 0,X
93D6 E6 08 ldA 8,X
93D8 EB 0A add 10,X
93DA B7 40 stA *__r0
93DC F6 ldA 0,X
93DD B1 40 cmp *__r0
93DF 22 03 bhi 0x93E4
93E1 CC 9259 jmp 0x9259
(0102) }
(0103) //LcdShGr1P(Cy,Cx);//显示圆心
(0104) Wtite_Command(0b00110000);//基本指令
93E4 A6 30 ldA #48
93E6 87 pshA
93E7 CD 959F jsr _Wtite_Command
93EA A7 01 aiS #1
93EC 95 tSX
93ED A7 06 aiS #6
93EF 81 rts
_LcdShGrRe:
RC --> X+0
LC --> X+2
TBC --> X+4
i --> X+6
y --> X+7
Px --> X+8
GrE --> X+12
ln --> X+11
93F0 A7 F7 aiS #-9
93F2 95 tSX
(0105) }
(0106)
(0107) /*LcdShGrRe:在Lcd的指定行上显示或取消矩型边框------------------------------*
(0108) *功 能:在Lcd上指定行上显示或取消矩型边框 *
(0109) *参 数:ln为指定的行数(0-3), GrE确定图形是否有效 *
(0110) *返 回:无 *
(0111) *-------------------------------------------------------------------------*/
(0112) void LcdShGrRe(INT8U ln,INT8U GrE)
(0113) {
93F3 E6 0B ldA 11,X
93F5 27 04 beq 0x93FB
93F7 A1 02 cmp #2
93F9 26 04 bne 0x93FF
(0114) INT8U Px,y; //行页号坐标,列坐标
(0115) INT8U i; //循环变量
(0116) INT16S LC,RC,TBC; //左,右和上下边框色
(0117) //[确定ln所在行的起始坐标(左上角)]
(0118) if((ln==0)||(ln==2)) y=0;
93FB 6F 07 clr 7,X
93FD 20 04 bra 0x9403
(0119) else y=16;
93FF A6 10 ldA #16
9401 E7 07 stA 7,X
(0120) if(ln<=1) Px=0;
9403 E6 0B ldA 11,X
9405 A1 01 cmp #1
9407 22 04 bhi 0x940D
9409 6F 08 clr 8,X
940B 20 04 bra 0x9411
(0121) else Px=8;
940D A6 08 ldA #8
940F E7 08 stA 8,X
(0122) //[确定有无边框(有GrE决定)]
(0123) if(GrE==1) //有表框
9411 E6 0C ldA 12,X
9413 A1 01 cmp #1
9415 26 18 bne 0x942F
(0124) {TBC=65535;LC=32768;RC=1;}
9417 A6 FF ldA #-1
9419 E7 04 stA 4,X
941B A6 FF ldA #-1
941D E7 05 stA 5,X
941F A6 80 ldA #-128
9421 E7 02 stA 2,X
9423 A6 00 ldA #0
9425 E7 03 stA 3,X
9427 4F clrA
9428 F7 stA 0,X
9429 A6 01 ldA #1
942B E7 01 stA 1,X
942D 20 0B bra 0x943A
(0125) else //无边框
(0126) {TBC=0;LC=0;RC=0;}
942F 6F 05 clr 5,X
9431 6F 04 clr 4,X
9433 6F 03 clr 3,X
9435 6F 02 clr 2,X
9437 6F 01 clr 1,X
9439 7F clr 0,X
(0127) Wtite_Command(0b00110110);//扩展指令,绘图开
943A A6 36 ldA #54
943C 87 pshA
943D CD 959F jsr _Wtite_Command
9440 A7 01 aiS #1
9442 95 tSX
(0128) //[在Lcd上指定行上显示矩型边框]
(0129) for(i=0;i<=7;i++,Px++)
9443 6F 06 clr 6,X
9445 20 2A bra 0x9471
(0130) {
9447 E6 05 ldA 5,X
9449 87 pshA
944A E6 04 ldA 4,X
944C 87 pshA
944D E6 08 ldA 8,X
944F 87 pshA
9450 E6 07 ldA 7,X
9452 87 pshA
9453 CD 9569 jsr _LcdShGr16P
9456 A7 04 aiS #4
9458 95 tSX
(0131) LcdShGr16P(y,Px,TBC); //显示上边框
(0132) LcdShGr16P(y+15,Px,TBC); //显示下边框
9459 E6 05 ldA 5,X
945B 87 pshA
945C E6 04 ldA 4,X
945E 87 pshA
945F E6 08 ldA 8,X
9461 87 pshA
9462 E6 07 ldA 7,X
9464 AB 0F add #15
9466 87 pshA
9467 CD 9569 jsr _LcdShGr16P
946A A7 04 aiS #4
946C 95 tSX
(0133) }
946D 6C 06 inc 6,X
946F 6C 08 inc 8,X
9471 E6 06 ldA 6,X
9473 A1 07 cmp #7
9475 23 D0 bls 0x9447
(0134) for(i=1,y++,Px--;i<=14;i++,y++)
9477 A6 01 ldA #1
9479 E7 06 stA 6,X
947B 6C 07 inc 7,X
947D 6A 08 dec 8,X
947F 20 29 bra 0x94AA
(0135) {
9481 E6 01 ldA 1,X
9483 87 pshA
9484 F6 ldA 0,X
9485 87 pshA
9486 E6 08 ldA 8,X
9488 87 pshA
9489 E6 07 ldA 7,X
948B 87 pshA
948C CD 9569 jsr _LcdShGr16P
948F A7 04 aiS #4
9491 95 tSX
(0136) LcdShGr16P(y,Px,RC); //显示右边框
(0137) LcdShGr16P(y,Px-7,LC); //显示左边框
9492 E6 03 ldA 3,X
9494 87 pshA
9495 E6 02 ldA 2,X
9497 87 pshA
9498 E6 08 ldA 8,X
949A A0 07 sub #7
949C 87 pshA
949D E6 07 ldA 7,X
949F 87 pshA
94A0 CD 9569 jsr _LcdShGr16P
94A3 A7 04 aiS #4
94A5 95 tSX
(0138) }
94A6 6C 06 inc 6,X
94A8 6C 07 inc 7,X
94AA E6 06 ldA 6,X
94AC A1 0E cmp #14
94AE 23 D1 bls 0x9481
(0139) Wtite_Command(0b00110000);//基本指令
94B0 A6 30 ldA #48
94B2 87 pshA
94B3 CD 959F jsr _Wtite_Command
94B6 A7 01 aiS #1
94B8 95 tSX
94B9 A7 09 aiS #9
94BB 81 rts
_LcdShGrClr:
y --> X+0
Px --> X+1
94BC A7 FE aiS #-2
94BE 95 tSX
(0140) }
(0141)
(0142) /*LcdShGrClr:在Lcd上清图形显示屏-------------------------------------------*
(0143) *功 能:在Lcd上清图形显示屏(清GDRAM) *
(0144) *参 数:无 *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -