📄 acmftsj_n.asm
字号:
MOV OFTREG,XA
MOV XA,HOUR
SUBS XA,BC
BR TSETOF1
MOV XA,HOUR
MOV BC,XA
MOV XA,OFTIME
SUBS XA,BC
NOP
TSETOF2:
MOV WORKA,XA
MOV XA,#3CH
MOV WORKB,XA
CALL !MULTB
MOV XA,OFMTIME
MOV OFMTREG,XA
MOV BC,XA
MOV XA,MIN
SUBS XA,BC
BR TSETOF3
MOV XA,MIN
MOV BC,XA
MOV XA,OFMTREG
SUBS XA,BC
NOP
MOV BC,XA
MOV XA,WORKB
ADDS XA,BC
BR S40_1
INCS WORKA
NOP
MOV WORKB,XA
S40_1: MOV REM96B+6,XA
MOV WMIN,XA
MOV XA,WORKA
MOV REM96B+16,A
MOV WMIN+2,A
SKT ONTIMEF
BR TSETOF_4
TSETOF_5:
SET1 TTF
CALL !DCOMP
SKF DFLG71F
BR S40_11
CLR1 TIMONF
S40_12: CLR1 ONTIMEF
SEL MB1
SET1 DFLG10.3
SEL MB0
SET1 (REM96B+8).3
MOV XA,ONTIME
MOV BC,XA
MOV ONTREG,XA
MOV XA,HOUR
SUBS XA,BC
BR TSETOF_1
MOV XA,HOUR
MOV BC,XA
MOV XA,ONTREG
SUBS XA,BC
NOP
TSETOF_2:
MOV WORKA,XA
MOV XA,#3CH
MOV WORKB,XA
CALL !MULTB
MOV XA,ONMTIME
MOV ONMTREG,XA
MOV BC,XA
MOV XA,MIN
SUBS XA,BC
BR TSETOF_3
MOV XA,MIN
MOV BC,XA
MOV XA,ONMTREG
SUBS XA,BC
NOP
MOV BC,XA
MOV XA,WORKB
ADDS XA,BC
BR S40_10
INCS WORKA
NOP
MOV WORKB,XA
S40_10: MOV REM96B+14,XA
SKF TIMONF
MOV WMIN,XA
MOV XA,WORKA
SKF TIMONF
MOV WMIN+2,A
MOV REM96B+17,A
SKF TIMONF
BR MYGOD2
MOV XA,REM96B+14
MOV WMINREG,XA
MOV A,REM96B+17
MOV WMINREG+2,A
MYGOD_2:MOV XA,WMIN
MOV BC,XA
MOV XA,WMINREG
SUBS XA,BC
BR MYGOD_20
MOV WMINREG,XA
MOV A,WMINREG+2
DECS A
NOP
MOV WMINREG+2,A
BR WHAT2
MYGOD_20:
MOV WMINREG,XA
WHAT2: MOV XA,#WMIN+2
MOV HL,XA
MOV A,WMINREG+2
SUBS A,@HL
NOP
MOV WMINREG+2,A
S40_13: SKT ONOF
BR S40_14
SKT TIMONF
BR ACM4
SKT OFFF
SET1 ONOFF
CLR1 OFFF
; CALL !OFFDISP
RET
ACM4: SKT OFFF
SET1 ONOFF
CLR1 OFFF
RET
MYGOD2: MOV XA,REM96B+6
MOV WMINREG,XA
MOV A,REM96B+16
MOV WMINREG+2,A
BR MYGOD_2
TSETOF_4:
SKF TIMONF
BR WANG1
BR S40_13
WANG1: SET1 OFFF
BR TSETOF_5
S40_14: SKT TIMOFF
BR ACM5
CLR1 ONOFF
CALL !ONDISP
RET
ACM5: CLR1 ONOFF
SET1 ONF
CALL !ONDISP
RET
S40_11: CLR1 TIMOFF
SET1 TIMONF
BR S40_12
;
TSETOF_1:
MOV BC,XA
MOV XA,#18H
SUBS XA,BC
NOP
SKE A,#08H
BR TSETOF_2
SKE X,#01H
BR TSETOF_2
MOV XA,#00H
BR TSETOF_2
TSETOF_3:
MOV BC,XA
MOV XA,#WORKB
MOV HL,XA
SKE @HL,#0H
BR AIR2
INCS L
NOP
SKE @HL,#0H
BR AIR2
MOV XA,#WORKA
MOV HL,XA
SKE @HL,#0H
BR AIR2
MOV A,#05H
MOV WORKA,A
MOV XA,#0A0H
MOV WORKB,XA
AIR2:
MOV XA,WORKB
SUBS XA,BC
BR SETOF_30
MOV WORKB,XA
MOV XA,WORKA
DECS XA
NOP
SETOF_31:
MOV WORKA,XA
MOV XA,WORKB
BR S40_10
SETOF_30:
MOV WORKB,XA
BR S40_10
;
TSETOF1:
MOV BC,XA
MOV XA,#18H
SUBS XA,BC
NOP
SKE A,#08H
BR TSETOF2
SKE X,#01H
BR TSETOF2
MOV XA,#00H
BR TSETOF2
TSETOF3:MOV BC,XA
MOV XA,#WORKB
MOV HL,XA
SKE @HL,#0H
BR AIR1
INCS L
NOP
SKE @HL,#0H
BR AIR1
MOV XA,#WORKA
MOV HL,XA
SKE @HL,#0H
BR AIR1
MOV A,#05H
MOV WORKA,A
MOV XA,#0A0H
MOV WORKB,XA
AIR1: MOV XA,WORKB
SUBS XA,BC
BR TSETOF30
MOV WORKB,XA
MOV XA,WORKA
DECS XA
NOP
TSETOF31:
MOV WORKA,XA
MOV XA,WORKB
BR S40_1
TSETOF30:
MOV WORKB,XA
BR S40_1
;****************DISPLAY OFFTIME SUB***************
DISOFT CSEG INBLOCK
MOV XA,OFTIME
; MOV BC,#0CH
; SUBS XA,BC
; BR DISOFT0
; SEL MB1
; SET1 DFLG6.3
; CLR1 DFLG6.1
; SET1 DFLG6.0
; SEL MB0
; MOV BC,#00H
; MOV XA,OFTIME
; SKE XA,BC
; BR DISOFT1
; MOV XA,#0CH
; BR DISOFT1
;DISOFT0:SEL MB1
; SET1 DFLG6.3
; CLR1 DFLG6.0
; SET1 DFLG6.1
; SEL MB0
; MOV BC,#00H
; SKE XA,BC
; BR DISOFT1
; MOV XA,#0CH
DISOFT1:MOV BCD,XA
CALL !CHTOBCD
MOV XA,BCD
MOV DE,XA
CALL !LCDSEG
SEL MB1
OR A,#1000B
MOV DFLG28,A
XCH A,X
MOV DFLG5,A
SKE D,#0H
BR DISOFT2
CLR1 DFLG6.2
CLR1 DFLG6.1
CLR1 DFLG6.0
BR DISOFT3
DISOFT2_1:
SET1 DFLG6.0
SET1 DFLG6.1
CLR1 DFLG6.2
BR DISOFT3
DISOFT2:SKE D,#01H
BR DISOFT2_1
SET1 DFLG6.2
SET1 DFLG6.1
CLR1 DFLG6.0
DISOFT3:SEL MB0
MOV XA,OFMTIME
MOV BCD,XA
CALL !CHTOBCD
MOV XA,BCD
MOV DE,XA
CALL !LCDSEG
SKF ONOF
OR A,#1000B
SEL MB1
MOV DFLG24,A
XCH A,X
MOV DFLG25,A
SEL MB0
MOV A,D
CALL !LCDSEG
SEL MB1
MOV DFLG26,A
XCH A,X
MOV DFLG27,A
SEL MB0
SKF TTF
BR DISOFT5
SKT TIMONF
BR DISOFT4
DISOFT5:CALL !DCOMP
RET
DISOFT4:SKT ONTIMEF
RET
BR DISOFT5
;
;===================================================================
; TRANSMIT SUBROUTINE
;===================================================================
REMOCON CSEG INBLOCK
SEL MB1
SET1 DFLG23.0
SEL MB0
CLR1 KEYF
SET1 TRANF
SET1 DISP1SF
MOV A,#0H
MOV DISP1S,A
MOV HL,#REM96B
MOV XA,@HL
MOV BC,XA
INCS HL
NOP
INCS HL
NOP
REMOCON1:
MOV XA,@HL
ADDS XA,BC
NOP
MOV BC,XA
INCS HL
NOP
INCS HL
NOP
SKE L,#06H
BR REMOCON1
SKE H,#07H
BR REMOCON1
MOV REM96B+22,XA
SEL MB15
MOV XA,#20H
MOV PMGB,XA
mov a,#00h
mov port2,a
mov xa,#24h
mov pmgb,xa
MOV A,#0011B
MOV CLOM,A ;DISABAL CLOCK OUTPUT
MOV XA,#1DH ;HOW MUCH CP
MOV TMOD1,XA ;INTERVAL TIME: 2.97ms
MOV XA,#01101100B ;CP=1/(2.5M/256)=102.5;;;SETTIME=102.5*(28+1)=2.97MS
MOV TM1,XA ;CP
MOV A,#1011B
MOV CLOM,A ;ENABAL CLOCK OUT
SEL MB0
MOV A,#0H
MOV TPARA,A ;TPARA=0
CLR1 RMTRF ;SET TANSMIT DATA
CLR1 PCLONF
CLR1 CDRPTF
EI IET1
RET
INTT1 CSEG INBLOCK
PUSH XA
PUSH HL
PUSH BS
MOV A,TPARA
ADDS A,#0FH
BR RMODE0 ;TPARA=0,RMODE0
ADDS A,#0FH
BR RMODE1
ADDS A,#0FH
BR RMODE2
ADDS A,#0FH
BR RMODE3
ADDS A,#0FH
BR RMODE4
ADDS A,#0FH
BR RMODE5
ADDS A,#0FH
BR RMODE6
BR RMODE7
RMODE0: MOV XA,#2AH ;INTERVAL=4.32MS
RMODE3: MOV XA,#15H ;INTERVAL=2.25MS
MOV TMOD1,XA
MOV XA,#01101100B ;102.5us
RM5: MOV TM1,XA
SET1 TM1.3
MOV A,#0000B
MOV CLOM,A ;STOP CLOCK OUT
SET1 PCLONF
MOV XA,#0FFH-96 ;96bit code
MOV RMDCT,XA
RMODE6: INCS TPARA
RRTRN: POP BS
POP HL
POP XA
RETI
RMODE1: MOV XA,#00111100B ;12.8us
MOV TM1,XA
SET1 TM1.3
SKT PCLONF
BR RM01
MOV A,TPARA
DECS A
MOV TPARA,A
RMODE4: MOV XA,#00111100B ;12.8us
MOV TM1,XA
SET1 TM1.3
INCS TPARA
MOV A,#1011B
MOV CLOM,A
CLR1 PCLONF
MOV XA,#29H ;0.54ms,high level
; MOV XA,#2AH ;NEXT CHANGE
MOV TMOD1,XA
BR RRTRN
RM01: MOV A,#0000B
MOV CLOM,A
SET1 PCLONF
INCS RMDCT
BR RM02
INCS RMDCT+1
BR RM02
INCS TPARA
MOV XA,#0C2H ;
MOV TMOD1,XA
MOV XA,#01011100B ;409.6us
MOV TM1,XA
SET1 TM1.3
BR RRTRN
RM02: MOV HL,#REM96B+23
SHFT: MOV A,@HL
RORC A
MOV @HL,A
DECS HL
NOP
MOV XA,#5FH
SKE XA,HL
BR SHFT
SET1 (REM96B+23).3
SKT CY
CLR1 (REM96B+23).3
SKT CY
MOV XA,#29H ;0.54ms,low level
MOV XA,#7DH ;1.62ms
; MOV XA,#2AH ;NEXT CHANGE
; MOV XA,#7EH
MOV TMOD1,XA
BR RRTRN
RMODE2: ;CONTINUE TRANSMISSION HEAD CODE DO
RMODE7: SKT RMTRF ;TRANSMITING FLAG TEST
BR RTREND
MOV XA,#57H
MOV TMOD1,XA
MOV XA,#01101100B
MOV TM1,XA
SET1 TM1.3
MOV A,#1011B
MOV CLOM,A
SKF CDRPTF
MOV A,#0H
MOV A,#3H
MOV TPARA,A
BR RRTRN
;
RTREND: DI IET1
CLR1 TRANF
SKT (REM96B+18).2
BR RTREND1
CLR1 (REM96B+18).2
BR RRTRN
RTREND1:CLR1 LEDOFFF
BR RRTRN
RMODE5: MOV XA,#74H
MOV TMOD1,XA
MOV XA,#01011100B
BR RM5
;
;**********************************************
; MACHINE ON/OFF SUBROUTINE
;***********************************************
;
;***************ON DISPLAY SUBROUTINE*********************************
;CAN BE USED TO TIME SET ON DISPLAY,ON KEY DO.but in on key do,
;the sleep and JHQ should be done special.
;WHEN ON,IN PREVIOUS PROGRAM,IF NESSCESARY,ONLY ON KEY PRESSED ONOFF FLAG NEED TO SET,OTHER IS NO.
;
ONDISP CSEG INBLOCK
SKT ONOF
BR NOONKEY ;NO ON KEY PRESSED
SKF TIMONF
BR NOONKEY
CLR1 FLA5SF
CLR1 FLA5SFF
CLR1 ONTIMEF
CLR1 OFTIMEF
CLR1 FLASHONF
CLR1 FLASHOFF
CLR1 FLASECF
MOV A,#0H
MOV FLA5SC,A
CLR1 TSETF
CLR1 TTF
CLR1 TIMONF
CLR1 (REM96B+12).2
CLR1 (REM96B+8).2
CLR1 (REM96B+8).3
SEL MB1
MOV A,#0H
MOV DFLG5,A
MOV DFLG28,A
MOV DFLG26,A
MOV DFLG27,A
MOV DFLG25,A
MOV DFLG24,A
MOV DFLG6,A
CLR1 DFLG7.0
CLR1 DFLG7.1
SEL MB0
ONDISP0:CALL !DISVANE
SKF AUTOF
BR AUTOM ;AUTO MODE
SKF COOLF
BR COOLM
SKF DRYF
BR DRYM
SKF FANF
BR FA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -