📄 lcd.asm
字号:
; ***** * * ***** * * ******
; * * * * * ** ** * *
; * ***** * * * * * * ******
; * * * * * * * * * *
; ***** * * ***** * * * *
;============================================================================================
; ***** * * ***** * * ******
; * * * * * ** ** * *
; * ***** * * * * * * ******
; * * * * * * * * * *
; ***** * * ***** * * * *
;------------------------
;LCD DISPLAY
;=========================================================================
;==================================================================================
AllLcdOn:
LDA #FFH
JMP LcdSet
AllLcdOff:
LDA #00H
LcdSet:
STHN LCD_00
STHN LCD_10
STHN LCD_20
STA LCD_00+1
STA LCD_10+1
STA LCD_20+1
STA LCD_00+2
STA LCD_10+2
STA LCD_20+2
RTS
;===================================================================
DispLcdRout:
JNB B_FlashDisp,ExitDispLcdRout
CLRB B_FlashDisp
JNB B_FlashGmDisp,DispLcdRout1
JSR DispGmRout
DispLcdRout1
JNB B_FlashLifeDisp,DispLcdRout2
JSR DispLifeLcd
DispLcdRout2
JNB B_FlashLevelDisp,DispLcdRout3
JSR DispLevelLcd
DispLcdRout3
JNB B_FlashWolfDisp,DispLcdRout4
JSR DispWolfPigLcd
DispLcdRout4
JNB B_FlashSocDisp,ExitDispLcdRout
JMP DispSocArrow
ExitDispLcdRout
RTS
;===================================================================
DispGmRout
CLRB B_FlashGmDisp
SMB5 LCD_20+1 ;37
RMB4 LCD_20+1 ;36
RMB4 LCD_10+1
JB B_Gm2Flag,DispGm2Rout
DispGm1Rout
SMB4 LCD_20+1
JMP DispLcdRoutC
DispGm2Rout
SMB4 LCD_10+1
DispLcdRoutC:
RMB5 LCD_10+1 ;ov
JNB B_GmOvFlag,ExitDispGmRout
SMB5 LCD_10+1
ExitDispGmRout
RTS
;===================================================================
DispLifeLcd:
CLRB B_FlashLifeDisp
RMB3 LCD_20+1
RMB2 LCD_20+1
RMB1 LCD_20+1
BBS1 R_Life,LifeLcd_3
BBS0 R_Life,LifeLcd_1
RTS
LifeLcd_3:
BBR0 R_Life,LifeLcd_2
SMB1 LCD_20+1
LifeLcd_2:
SMB2 LCD_20+1
LifeLcd_1:
SMB3 LCD_20+1
RTS
;===============================================
DispLevelLcd:
CLRB B_FlashLevelDisp
SMB7 LCD_20
RMB5 LCD_20
RMB5 LCD_10
RMB5 LCD_00
RMB4 LCD_00
BBS2 R_Level,LevelLcd_4
BBS1 R_Level,LevelLcd_3
BBS0 R_Level,LevelLcd_1
RTS
;----------------------------------------------------
LevelLcd_4:
SMB4 LCD_00
RTS
;---------------------------------------------------
LevelLcd_3:
BBR0 R_Level,LevelLcd_2 ;10
SMB5 LCD_00
RTS
;----------------------------------------------------
LevelLcd_2:
SMB5 LCD_10
RTS
;-------------------------------------------------------
LevelLcd_1:
SMB5 LCD_20
RTS
;===================================================================
DispWolfPigLcd:
CLRB B_FlashWolfDisp
JB B_Gm2Flag,DispGm2WolfPigLcd
DispGm1WolfLcd
RMB6 LCD_20+1
RMB0 LCD_20+2
RMB2 LCD_20+2
RMB1 LCD_20+2
BBS0 R_Wolf1Pig2Move,WolfLcdMiddle
BBS1 R_Wolf1Pig2Move,WolfLcdRight
WolfLcdLeft:
SMB6 LCD_20+1
JNB B_LoseLive,DispGm1PigLcd
SMB1 LCD_20+2
JMP DispGm1PigLcd
;-------------------------------------------------
WolfLcdMiddle:
SMB0 LCD_20+2
JNB B_LoseLive,DispGm1PigLcd
SMB1 LCD_20+2
JMP DispGm1PigLcd
;-------------------------------------------------
WolfLcdRight:
SMB2 LCD_20+2
JNB B_LoseLive,DispGm1PigLcd
SMB1 LCD_20+2
JMP DispGm1PigLcd
;-------------------------------------------------
;-------------------------------------------------
DispGm1PigLcd
RMB4 LCD_00+1
RMB2 LCD_10+1
RMB7 LCD_10
BBS1 R_Pig1Wolf2Move,PigLcdMiddle
BBS2 R_Pig1Wolf2Move,PigLcdRight
BBS0 R_Pig1Wolf2Move,PigLcdLeft
RTS
PigLcdLeft:
SMB4 LCD_00+1
RTS
;-------------------------------------------------
PigLcdMiddle:
SMB2 LCD_10+1
RTS
;-------------------------------------------------
PigLcdRight:
SMB7 LCD_10
RTS
;-------------------------------------------------
;-------------------------------------------------
DispGm2WolfPigLcd:
DispGm2WolfLcd:
RMB3 LCD_00+1
RMB1 LCD_10+1
RMB6 LCD_10
; RMB3 LCD_10+1
; RMB0 LCD_20+1
; RMB6 LCD_20
BBR0 R_Pig1Wolf2Move,Gm2WolfLcdMiddle
SMB3 LCD_00+1
Gm2WolfLcdMiddle
BBR1 R_Pig1Wolf2Move,Gm2WolfLcdRight
SMB1 LCD_10+1
Gm2WolfLcdRight:
BBR2 R_Pig1Wolf2Move,DispGm2PigLcd
SMB6 LCD_10
JMP DispGm2PigLcd
;-------------------------------------------------
;-------------------------------------------------
DispGm2PigLcd
RMB7 LCD_20+1
RMB1 LCD_10+2
RMB3 LCD_20+2
BBS0 R_Wolf1Pig2Move,Gm2PigLcdMiddle
BBS1 R_Wolf1Pig2Move,Gm2PigLcdRight
Gm2PigLcdLeft:
SMB7 LCD_20+1
RTS
;-------------------------------------------------
Gm2PigLcdMiddle:
SMB1 LCD_10+2
RTS
;-------------------------------------------------
Gm2PigLcdRight:
SMB3 LCD_20+2
RTS
;==========================================================================
DispSocArrow:
CLRB B_FlashSocDisp
JB B_Gm2Flag,DispArrowLcd
DispSocLcd:
RMB5 LCD_00+1 ;1
RMB1 LCD_00+1
RMB7 LCD_00
RMB6 LCD_00+1
RMB0 LCD_00+2
RMB2 LCD_00+2
RMB6 LCD_10+1
RMB0 LCD_10+2
RMB2 LCD_10+2 ;9
DispSocRow1
BBR0 SocRow1,DispSocRow11 ;SocRow1&ArrowRow1
SMB5 LCD_00+1
DispSocRow11
BBR1 SocRow1,DispSocRow12
SMB1 LCD_00+1
DispSocRow12
BBR2 SocRow1,DispSocRow2
SMB7 LCD_00
DispSocRow2
BBR0 SocRow2,DispSocRow21
SMB6 LCD_00+1
DispSocRow21
BBR1 SocRow2,DispSocRow22
SMB0 LCD_00+2
DispSocRow22
BBR2 SocRow2,DispSocRow3
SMB2 LCD_00+2
DispSocRow3
BBR0 SocRow3,DispSocRow31
SMB6 LCD_10+1
DispSocRow31
BBR1 SocRow3,DispSocRow32
SMB0 LCD_10+2
DispSocRow32
BBR2 SocRow3,DispSocDispExit
SMB2 LCD_10+2
DispSocDispExit
RTS
DispArrowLcd:
RMB2 LCD_00+1 ;1
RMB0 LCD_10+1 ;2
RMB6 LCD_00 ;3
RMB7 LCD_00+1 ;4
RMB0 LCD_00+1 ;5
RMB3 LCD_00+2 ;6
RMB7 LCD_10+1 ;7
RMB1 LCD_00+2 ;8
RMB3 LCD_10+2 ;9
ArrowRow1
BBR0 SocRow1,ArrowRow11
SMB2 LCD_00+1
ArrowRow11
BBR1 SocRow1,ArrowRow12
SMB0 LCD_10+1
ArrowRow12
BBR2 SocRow1,ArrowRow2
SMB6 LCD_00
ArrowRow2
BBR0 SocRow2,ArrowRow21
SMB7 LCD_00+1
ArrowRow21
BBR1 SocRow2,ArrowRow22
SMB0 LCD_00+1
ArrowRow22
BBR2 SocRow2,ArrowRow3
SMB3 LCD_00+2
ArrowRow3
BBR0 SocRow3,ArrowRow31
SMB7 LCD_10+1
ArrowRow31
BBR1 SocRow3,ArrowRow32
SMB1 LCD_00+2
ArrowRow32
BBR2 SocRow3,ArrowDispExit
SMB3 LCD_10+2
ArrowDispExit
RTS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -