Rev 736 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
;LAST UPDATE: 30.06.2019 savelij
;
: H-
; L-
READCMOS DI
PUSH BC
LD BC,CMOSD_SET_ADR
OUT (C),H
LD B,HIGH (CMOSD_RD_WR)
IN L,(C)
JR OFF_CMOS
;
: H-
; L-
WRITECMOS DI
PUSH BC
LD BC,CMOSD_SET_ADR
OUT (C),H
LD B,HIGH (CMOSD_RD_WR)
OUT (C),L
OFF_CMOS POP BC
LD A,L
AND A
RET
CMOS_RW ROMCALL P5_READ_BYTE,ROM_RST83
LD A,(NEXTBYTERST8)
ADD A,A
ADD A,LOW (CMOSRW_TAB)
LD L,A
ADC A,HIGH (CMOSRW_TAB)
SUB L
LD H,A
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
JP (HL)
CMOSRW_TAB DW INIT_CMOS ;
CRC CMOS
DW EREAD_CMOS ;
CMOS
DW EWRITE_CMOS ;
CMOS
CRC
DW CLEAR_CMOS ;
CMOS
;
CRC16
CRC
;
: HL=CRC16
READCMOS2BUF PUSH DE
LD DE,CMOS4CRC16
PUSH DE
LD H,CMOS_BYTE_00
LD B,ECMOS_DEFAULT-CMOS_DEFAULT
RDCMOS2BUF1 CALL READCMOS
LD (DE),A
INC DE
DEC H
DJNZ RDCMOS2BUF1
POP HL
PUSH HL
POP IX ;IX=
CRC
EX DE,HL
AND A
SBC HL,DE ;HL=
ROMCALL CRC16_FAST,ROM_RST81
POP DE
RET
;
CMOS
EREAD_CMOS LD HL,(RREG_L) ;H=
CALL READCMOS
LD (RREG_L),HL ;
L
PUSH AF
POP HL
LD (RREG_F),HL ;
A
RET
;
CMOS
CRC
EWRITE_CMOS LD HL,(RREG_L)
;
CMOS
CRC
IWRITECMOS PUSH IX
PUSH DE
CALL WRITECMOS
CALL READCMOS2BUF
EX DE,HL
LD H,CRCCMOSHIGH
LD L,D
CALL WRITECMOS
DEC H
LD L,E
CALL WRITECMOS
POP DE
POP IX
RET
INIT_CMOS CALL READCMOS2BUF ;
CMOS
EX DE,HL ;CRC DE
LD H,CRCCMOSHIGH
CALL READCMOS ; CRC
LD C,L
LD H,CRCCMOSLOW
CALL READCMOS ; CRC
LD H,C
AND A
SBC HL,DE ;
RET Z ;
,
CLEAR_CMOS LD HL,CMOS_DEFAULT ;
LD DE,CMOS4CRC16 ;
PUSH DE
LD BC,ECMOS_DEFAULT-CMOS_DEFAULT
LDIR ;
POP DE
PUSH DE
LD H,CMOS_BYTE_00
LD B,ECMOS_DEFAULT-CMOS_DEFAULT
INITCMOS3 LD A,(DE)
INC DE
LD L,A
CALL WRITECMOS
DEC H
DJNZ INITCMOS3 ;
CMOS
POP HL
PUSH HL
POP IX
EX DE,HL
AND A
SBC HL,DE
ROMCALL CRC16_FAST,ROM_RST81
EX DE,HL
LD H,CRCCMOSHIGH
LD L,D
CALL WRITECMOS ; CRC
DEC H
LD L,E
JP WRITECMOS ; CRC