Rev 736 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
507 | savelij | 1 | |
831 | savelij | 2 | ;LAST UPDATE: 30.06.2019 savelij |
507 | savelij | 3 | |
4 | ;
: H-
|
||
5 | ; L-
|
||
6 | READCMOS DI |
||
7 | PUSH BC |
||
8 | LD BC,CMOSD_SET_ADR |
||
9 | OUT (C),H |
||
10 | LD B,HIGH (CMOSD_RD_WR) |
||
11 | IN L,(C) |
||
12 | JR OFF_CMOS |
||
13 | |||
14 | ;
: H-
|
||
15 | ; L- |
||
16 | WRITECMOS DI |
||
17 | PUSH BC |
||
18 | LD BC,CMOSD_SET_ADR |
||
19 | OUT (C),H |
||
20 | LD B,HIGH (CMOSD_RD_WR) |
||
21 | OUT (C),L |
||
623 | savelij | 22 | OFF_CMOS POP BC |
507 | savelij | 23 | LD A,L |
24 | AND A |
||
25 | RET |
||
26 | |||
831 | savelij | 27 | CMOS_RW ROMCALL P5_READ_BYTE,ROM_RST83 |
585 | savelij | 28 | LD A,(NEXTBYTERST8) |
29 | ADD A,A |
||
30 | ADD A,LOW (CMOSRW_TAB) |
||
31 | LD L,A |
||
32 | ADC A,HIGH (CMOSRW_TAB) |
||
33 | SUB L |
||
34 | LD H,A |
||
35 | LD A,(HL) |
||
36 | INC HL |
||
37 | LD H,(HL) |
||
38 | LD L,A |
||
39 | JP (HL) |
||
40 | |||
41 | CMOSRW_TAB DW INIT_CMOS ; CRC CMOS |
||
593 | savelij | 42 | DW EREAD_CMOS ; CMOS |
43 | DW EWRITE_CMOS ; CMOS CRC |
||
585 | savelij | 44 | DW CLEAR_CMOS ; CMOS |
45 | |||
46 | ;
CRC16
CRC |
||
47 | ;
: HL=CRC16 |
||
593 | savelij | 48 | READCMOS2BUF PUSH DE |
49 | LD DE,CMOS4CRC16 |
||
507 | savelij | 50 | PUSH DE |
678 | savelij | 51 | LD H,CMOS_BYTE_00 |
52 | LD B,ECMOS_DEFAULT-CMOS_DEFAULT |
||
585 | savelij | 53 | RDCMOS2BUF1 CALL READCMOS |
54 | LD (DE),A |
||
507 | savelij | 55 | INC DE |
678 | savelij | 56 | DEC H |
585 | savelij | 57 | DJNZ RDCMOS2BUF1 |
58 | POP HL |
||
59 | PUSH HL |
||
60 | POP IX ;IX= CRC |
||
61 | EX DE,HL |
||
507 | savelij | 62 | AND A |
585 | savelij | 63 | SBC HL,DE ;HL= |
831 | savelij | 64 | ROMCALL CRC16_FAST,ROM_RST81 |
593 | savelij | 65 | POP DE |
66 | RET |
||
507 | savelij | 67 | |
646 | savelij | 68 | ;
CMOS |
593 | savelij | 69 | EREAD_CMOS LD HL,(RREG_L) ;H= |
585 | savelij | 70 | CALL READCMOS |
71 | LD (RREG_L),HL ; L |
||
72 | PUSH AF |
||
73 | POP HL |
||
74 | LD (RREG_F),HL ; A |
||
507 | savelij | 75 | RET |
76 | |||
646 | savelij | 77 | ;
CMOS
CRC |
593 | savelij | 78 | EWRITE_CMOS LD HL,(RREG_L) |
646 | savelij | 79 | ;
CMOS
CRC |
593 | savelij | 80 | IWRITECMOS PUSH IX |
81 | PUSH DE |
||
82 | CALL WRITECMOS |
||
585 | savelij | 83 | CALL READCMOS2BUF |
507 | savelij | 84 | EX DE,HL |
585 | savelij | 85 | LD H,CRCCMOSHIGH |
86 | LD L,D |
||
507 | savelij | 87 | CALL WRITECMOS |
585 | savelij | 88 | DEC H |
89 | LD L,E |
||
593 | savelij | 90 | CALL WRITECMOS |
91 | POP DE |
||
585 | savelij | 92 | POP IX |
507 | savelij | 93 | RET |
94 | |||
585 | savelij | 95 | INIT_CMOS CALL READCMOS2BUF ; CMOS |
623 | savelij | 96 | EX DE,HL ;CRC DE |
585 | savelij | 97 | LD H,CRCCMOSHIGH |
98 | CALL READCMOS ; CRC |
||
99 | LD C,L |
||
100 | LD H,CRCCMOSLOW |
||
101 | CALL READCMOS ; CRC |
||
102 | LD H,C |
||
103 | AND A |
||
104 | SBC HL,DE ; |
||
105 | RET Z ; , |
||
106 | CLEAR_CMOS LD HL,CMOS_DEFAULT ; |
||
107 | LD DE,CMOS4CRC16 ; |
||
108 | PUSH DE |
||
109 | LD BC,ECMOS_DEFAULT-CMOS_DEFAULT |
||
110 | LDIR ; |
||
111 | POP DE |
||
112 | PUSH DE |
||
678 | savelij | 113 | LD H,CMOS_BYTE_00 |
114 | LD B,ECMOS_DEFAULT-CMOS_DEFAULT |
||
585 | savelij | 115 | INITCMOS3 LD A,(DE) |
116 | INC DE |
||
507 | savelij | 117 | LD L,A |
585 | savelij | 118 | CALL WRITECMOS |
678 | savelij | 119 | DEC H |
623 | savelij | 120 | DJNZ INITCMOS3 ; CMOS |
585 | savelij | 121 | POP HL |
122 | PUSH HL |
||
123 | POP IX |
||
124 | EX DE,HL |
||
125 | AND A |
||
507 | savelij | 126 | SBC HL,DE |
831 | savelij | 127 | ROMCALL CRC16_FAST,ROM_RST81 |
585 | savelij | 128 | EX DE,HL |
129 | LD H,CRCCMOSHIGH |
||
130 | LD L,D |
||
131 | CALL WRITECMOS ; CRC |
||
132 | DEC H |
||
133 | LD L,E |
||
134 | JP WRITECMOS ; CRC |