📄 yyzd.asm
字号:
jmp LoadInit
yy_zd_KeyDown:
Lkeytone
lda <YYZDState
asl
tax
jmp (KeyDownStateFunc,x)
EEScreenUp:
ldy #20
?0:
lda TextBuffor+20,y
sta TextBuffor,y
iny
cpy #160
bcc ?0
lda #' '
?1:
sta TextBuffor,y
iny
cpy #180
bcc ?1
rts
EEScreenDown:
ldy #160
?0:
lda TextBuffor,y
sta TextBuffor+20,y
dey
cpy #20
bcs ?0
ldy #20
lda #' '
?1:
sta TextBuffor,y
iny
cpy #40
bcc ?1
LSETCUR 0,1
LPRINT EE_LEMMA_BUFFER
jsr KillEE_IN_BUFFER
ldy #0ffh
?2 iny
lda EE_LEMMA_BUFFER,y
sta EE_IN_BUFFER,y
bne ?2
rts
KillEE_IN_BUFFER:
ldy #0
lda #0
?0 sta EE_IN_BUFFER,y
iny
cpy #20
bcc ?0
rts
CopyTextLine0ToEEINBUFFER:
jsr KillEE_IN_BUFFER
ldy #20
?0 dey
lda TextBuffor,y
cmp #' '
beq ?0
?1:
lda TextBuffor,y
sta EE_IN_BUFFER,y
dey
bpl ?1
rts
CopyTextLine1ToEEINBUFFER:
jsr KillEE_IN_BUFFER
ldy #40
?0 dey
lda TextBuffor,y
cmp #' '
beq ?0
?1:
lda TextBuffor,y
sta EE_IN_BUFFER-20,y
dey
cpy #20
bcs ?1
rts
OnlyEnterKey:
lda <KeyNo
cmp #EnterKey
beq ?0
cmp #EscKey
bne ?1
lda <InputLen
bne ?2
stz <ExtraMode
lda #<dictmenu
sta StrAddrL
lda #>dictmenu
sta StrAddrH
stz ItemStart
lda #4
sta ItemOffset
stz MenuBufNO
jsr LJSR
dw fu_lu_bank
dw fu_lu_esckey_program-1
?2:
jmp yy_zd_Load
?1: jmp jmp_LMAINU
;================== Enter Key ==========================
?0:
lda TextBuffor+40
cmp #' '
bne ?00
LscanF 10010100b
jmp ExitWithoutUpDate
?00:
jsr CopyTextLine0ToEEINBUFFER
EnterToViewExp:
LSetScreen 1
jsr EE_LOCATE_ADDR
jsr EE_FIRST_PAGE
add_add_add:
Llight_Lcd_Icon icon_downpage
Llight_Lcd_Icon icon_uppage
lda #IconUp&0ffh
trb IconDown>>8
lda #IconDown&0ffh
trb IconDown>>8
lda EE_PAGE_END
bne ?HaveNoNextPage
lda #IconDown&0ffh
tsb IconDown>>8
?HaveNoNextPage:
LDA #VIEWEXPLAINE
STA <YYZDState
jmp ExitWithUpDate
ViewExplainState:
lda <KeyNo
CMP #PgUp
BEQ LASTWORD000
CMP #PgDown
;BEQ NEXTWORD000
bne next000
jmp NEXTWORD000
next000:
cmp #DownKey
BNE ?0
JMP DownViewExp000
?0:
cmp #UpKey
beq ?UpViewExp
cmp #EscKey
beq ?ExitViewExp
jmp ExitWithoutUpDate
?ExitViewExp:
lda #<EE_HELP_1
sta HelptextpL
lda #>EE_HELP_1
sta HelptextpH
; lda <InvertItem
; cmp #88
; beq ?FisrtState
;?FisrtState:
; jsr CopyDataToEEINBUFFER
LSETSCREEN 3
lda #10010100b
sta <ScanFF
smb5 <SysF ;; Set cursor on
stz <YYZDState
jmp YYZDFirstStep
?UpViewExp:
lda #IconUp&0ffh
and IconDown>>8
bne ?HaveLastPage
jmp ExitWithoutUpDate
?HaveLastPage:
jsr EE_INIT_R_ADDR
jsr EE_FIRST_PAGE
lda #IconUp&0ffh
trb IconDown>>8
lda #IconDown&0ffh
trb IconDown>>8
lda EE_PAGE_END
bne ?HaveNoNextPage
lda #IconDown&0ffh
tsb IconDown>>8
?HaveNoNextPage:
jmp ExitWithUpDate
; ***************************************************************************
; * *
; ***************************************************************************
LASTWORD000:
JSR EE_PGUP_WORD
CMP #0
BEQ ?LASTWORD0
jsr EE_FIRST_PAGE
jmp add_add_add
?LASTWORD0:
Llight_Lcd_Icon icon_downpage
Loff_Lcd_Icon icon_uppage
refresh_icon_pg:
jsr CALL_LUpdateScreen
jmp jmp_LMAINU
refresh_icon:
jmp InvertWord
; ***************************************************************************
; * *
; ***************************************************************************
NEXTWORD000:
;PUTSIO #22H
;PUTSIO <_EE_FAR_PTRB_3
;PUTSIO <_EE_FAR_PTRB_2
;PUTSIO <_EE_FAR_PTRB_1
;PUTSIO <_EE_FAR_PTRB_0
LDA <_EE_FAR_PTRB_3
CMP #(END_WORD_ADDR>>24)
BNE ?EE_NEXT_WORD0
LDA <_EE_FAR_PTRB_2
CMP #(END_WORD_ADDR>>16)
BNE ?EE_NEXT_WORD0
LDA <_EE_FAR_PTRB_1
CMP #(END_WORD_ADDR>>8)
BNE ?EE_NEXT_WORD0
LDA <_EE_FAR_PTRB_0
CMP #(END_WORD_ADDR)
BNE ?EE_NEXT_WORD0
BRA ?NEXTWORDX
?EE_NEXT_WORD0:
JSR EE_NEXT_WORD0
jsr EE_FIRST_PAGE
jmp add_add_add
?NEXTWORDX:
Llight_Lcd_Icon icon_uppage
Loff_Lcd_Icon icon_downpage
jmp refresh_icon_pg
; ***************************************************************************
DownViewExp000:
lda EE_PAGE_END
beq ?HaveNextPage
jmp ExitWithoutUpDate
?HaveNextPage:
jsr EE_NEXT_PAGE
lda #IconUp&0ffh
tsb IconDown>>8
lda EE_PAGE_END
beq ?HaveNextPage0
lda #IconDown&0ffh
trb IconDown>>8
?HaveNextPage0:
jmp ExitWithUpDate
CopyDataToEEINBUFFER:
lda <InvertItem
asl
asl
sta <INSL
asl
asl
adc <INSL
adc #20
tay
ldx #0
?1:
lda TextBuffor,y
cmp #' '
bne ?0
lda TextBuffor+1,y
cmp #' '
beq ?2
lda #' '
?0: sta EE_IN_BUFFER,x
inx
iny
cpx #20
bcc ?1
?2: stz EE_IN_BUFFER,x
stx <InputLen
rts
;===============================================================================
; ADD BY Y.L
;
;===============================================================================
set_iconup:
lda #IconUp&0ffh
tsb IconDown>>8
rts
set_icondown:
lda #IconDown&0ffh
tsb IconDown>>8
rts
clr_iconup:
lda #IconUp&0ffh
trb IconDown>>8
rts
clr_icondown:
lda #IconDown&0ffh
trb IconDown>>8
rts
;查找是否到达最后页,若是则返回0,反之置1
is_have_nextpage:
LDA <_EE_FAR_PTRB_3
CMP #(END_WORD_ADDR_B>>24)
BNE is_have_nextpage11
LDA <_EE_FAR_PTRB_2
CMP #(END_WORD_ADDR_B>>16)
BNE is_have_nextpage11
LDA <_EE_FAR_PTRB_1
CMP #(END_WORD_ADDR_B>>8)
BNE is_have_nextpage11
LDA <_EE_FAR_PTRB_0
CMP #END_WORD_ADDR_B
bcc is_have_nextpage11
;putsio #00h
lda #0
bra is_have_nextpage12
is_have_nextpage11:
;putsio #11h
lda #1
is_have_nextpage12:
rts
JMP_lmainu:
lmainu
JMP_lmain:
lmain
CALL_LUPDATESCREEN:
LUPDATESCREEN
RTS
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -