?? rc5.asm
字號:
TAM 0
LXY COLNO_SEC
XAM 0
INC_COUNTER:
LXY COUNTERA
TAM 0
A 1
NOP
XAM 0
RT
INC_COUNTERA_S:
LXY COUNTERA_S
TAM 0
A 1
NOP
XAM 0
RT
COL_TRAN:
LXY COUNTERB
TAM 0
LXY COLNO_NEW
XAM 0
RT
COLADD8:
LXY COUNTERB
TAM 0
A DIGT8
NOP
LXY COLNO_NEW
XAM 0
RT
;=====================================
;; CODE TABLE.
;=====================================
.ORG 0300H
;;;;;;;G3
.DW 11AH ;K22 ;-----D0
.DW 13DH ;K19
.DW 0FFH ;K--
.DW 0FFH ;K21
.DW 035H ;K20
.DW 009H ;K17
.DW 03CH ;K18
.DW 121H ;K15 ;-----D7
;;;;;;;G2
.DW 011H ;K16
.DW 024H ;K13
.DW 018H ;K10
.DW 004H ;K12
.DW 000H ;K14
.DW 038H ;K11
.DW 028H ;K09
.DW 008H ;K08
;============================
.ORG 0310H
;;;;;G1
.DW 030H ;K07
.DW 025H ;K04
.DW 0FFH ;K--
.DW 010H ;K06
.DW 020H ;K05
.DW 02CH ;K02
.DW 007H ;K03
.DW 00CH ;K01
;;;G0
.DW 0FFH ;K28
.DW 01CH ;K25
.DW 0FFH ;K--
.DW 0FFH ;K24
.DW 0FFH ;K26
.DW 031H ;K23
.DW 02DH ;K27
.DW 0FFH ;K--
;=========================
.ORG 0320H
;;;;E0
.DW 122H ;K31
.DW 11AH ;K34
.DW 0FFH ;K--
.DW 00DH ;K33
.DW 12AH ;K32
.DW 102H ;K29
.DW 112H ;K30
.DW 0FFH ;K--
;=====================================================
; RAM CLEAR
;=====================================================
RAMCL0:
LXY 0,11 ;(X) <- 0 ,(Y) <- 11
RAMCL1:
LXY 1,11 ;(X) <- 1 ,(Y) <- 11
RAMCL2:
LXY 2,11 ;(X) <- 2 ,(Y) <- 11
RAMCL3:
LXY 3,11 ;(X) <- 3 ,(Y) <- 11
RAMCL:
LA 15 ;(A) <- F
XAMD 0 ;(A) <-> (M) ,Y-1
BL RAMCL
RT
;======================================================
WAIT20: NOP ;
WAIT19: NOP ;
WAIT18: NOP ;
WAIT17: NOP ;
WAIT16: NOP ;
WAIT15: NOP ;
WAIT14: NOP ;
WAIT13: NOP ;
WAIT12: NOP ;
WAIT11: NOP ;
WAIT10: NOP ;
WAIT9: NOP ;
WAIT8: NOP ;
WAIT7: NOP ;
WAIT6: NOP ;
WAIT5: NOP ;
WAIT4: RT ;
;*******************************************************
; BIT DATA TRANSMIT
;*******************************************************
BIT2SEND:
LA DIGT1 ;BIT=0
TBA
LA DIGTF
T1AB
LA DIGTD
Pre2Htime:
SNZT1
B Pre2Htime
TV2A
LA DIGT5
TV1A
LA DIGT1
TBA
LA DIGTF
T1AB
RC
Send2Clow:
SNZT1
B Send2Clow
RT
BITSEND:
SZC
BL FIRST_OSC ;BIT=1
LA DIGT1 ;BIT=0
TBA
LA DIGTF
T1AB
PreHtime:
SNZT1
B PreHtime
LA DIGT5
TV1A
LA DIGT1
TBA
LA DIGTF
T1AB
RC
SendClow:
SNZT1
B SendClow
TABE
RAR
SZC
LA DIGT1
LA DIGT5
TV1A
RT
;=================================================
FIRST_OSC:
LA DIGT1
TBA
LA DIGTF
T1AB
Htime:
SNZT1
B Htime
LA DIGT5
TV1A
LA DIGT1
TBA
LA DIGTF
T1AB
RC
Sendlow:
SNZT1
B Sendlow
TABE
RAR
SZC
LA DIGT5
LA DIGT1
TV1A
RT
;=======================================================
SEND_1BIT:
TAM 0
XAMI 0
RAR
SZC
BL SC_1
RC
BL ROT_1
SC_1:
SC
ROT_1:
TAM 0 ;The toggle bit is transfered to A.
TEAB
BML BITSEND ;BIT DATA TRANSMIT
RT
TOGGLE:
TAM 0
RAR
SZC
BL TGFIRST_OSC ;BIT=1
LA DIGT1 ;BIT=0
TBA
LA DIGTF
T1AB
TGPreHtime:
SNZT1
B TGPreHtime
LA DIGT5
TV1A
LA DIGT1
TBA
LA DIGTF
T1AB
RC
TGSendClow:
SNZT1
B TGSendClow
LXY CUSTOMH
TAM 0
RAR
SZC
LA DIGT1
LA DIGT5
TV1A
RT
;=================================================
TGFIRST_OSC:
LA DIGT1
TBA
LA DIGTF
T1AB
TGHtime:
SNZT1
B TGHtime
LA DIGT5
TV1A
LA DIGT1
TBA
LA DIGTF
T1AB
RC
TGSendlow:
SNZT1
B TGSendlow
LXY CUSTOMH
TAM 0
RAR
SZC
LA DIGT5
LA DIGT1
TV1A
RT
;*******************************************************
; WORD DATA TRANSMIT
;*******************************************************
WORD:
BML CHECK_NEXDATBIT
RAR ;0 ;Clear C
TEAB
BML BITSEND ;BIT DATA TRANSMIT
TABE
RAR ;1
TEAB
BML BITSEND ;BIT DATA TRANSMIT
TABE
RAR ;2
TEAB
BML BITSEND ;BIT DATA TRANSMIT
TABE
RAR ;3
TEAB
BML BITSEND ;BIT DATA TRANSMIT
TABE
RT
SEND_2BIT:
BML CHECK_NEXDATBIT
RAR ;0 ;Clear C
TEAB
BML BITSEND ;BIT DATA TRANSMIT
TABE
RAR ;1
LA 1
TEAB
BML BITSEND ;BIT DATA TRANSMIT
TABE
RT
;==================================================
CHECK_NEXDATBIT:
TAM 0
XAMI 0
TEAB
TAM 0
RAR
SZC
BL SC_BIT
RC
BL ROT_DATA
SC_BIT:
SC
ROT_DATA:
TABE
RT
;==================================================
;this program compare twice key if equal.
;if equal,return and skip
;if no equal, save new scan key and no skip
;==================================================
COMP_KEY:
LXY ROWNO_NEW
TAM 0
LXY ROWNO_SAE
SEAM
BL NoEqual
LXY COLNO_NEW
TAM 0
LXY COLNO_SAE
SEAM
BL NoEqual
RT
NoEqual:
LXY ROWNO_NEW
TAM 0
LXY ROWNO_SAE
XAM 0
LXY COLNO_NEW
TAM 0
LXY COLNO_SAE
XAM 0
RTS
;=================================================
;;================================================
COLD1:
SEA 0
BL RESCAN2
BL WAITKEY
RESCAN2:
LXY ROWNO_OLD
LA DIGTF
XAMI 0 ;ROWNO_OLD
LA DIGTF
XAMI 0 ;COLNO_OLD
LA DIGTF
XAMI 0 ;ROWNO_SAE
LA DIGTF
XAM 0 ;COLNO_SAE
BL RESCAN
;============================================================
COLD_BOOT:
BML RAMCL0 ;RAM CLEAR TO F
BML RAMCL1 ;RAM CLEAR
BML RAMCL2 ;RAM CLEAR
BML RAMCL3
WAITKEY:
LXY 0,7
SETD_H: SD
DEY
BL SETD_H ;SET D0-D7=1.
LXY ROWNO_CUR
LA DIGTF
XAMI 0
LA DIGTF
XAM 0
LXY ROWNO_SAE
LA DIGTF
XAMI 0
LA DIGTF
XAM 0
LA DIGTF ;all G/E port expect E0!!!set pull-down transistor
TPU0A ;and key-on wakeup valid
LA DIGT0 ;set D7-D4 port no pull-down transistor.
TPU1A ;and key-on wakeup invalid.
POF ; WAIT FOR PRESS KEY
.END
;======================================================
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -