Rev 261 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
261 | ddp | 1 | .EQU DMLZ_DATA =0 |
2 | .EQU DMLZ_TEMP =1 |
||
3 | .EQU DMLZ_TMP2 =2 |
||
4 | .EQU DMLZ_TMP3 =3 |
||
5 | .EQU DMLZ_XL =4 |
||
6 | .EQU DMLZ_XH =5 |
||
7 | .EQU DMLZ_JUMP =6 |
||
8 | ; |
||
9 | ;-------------------------------------- |
||
10 | ; |
||
11 | .DSEG |
||
12 | DMLZ_Z: .BYTE 2 |
||
13 | DMLZ_REGS: .BYTE 7 |
||
14 | .CSEG |
||
15 | ; |
||
16 | ;-------------------------------------- |
||
17 | ;in: Z,RAMPZ == 㪠��⥫� �� 㯠������� ����� |
||
18 | DMLZ_INIT: |
||
19 | STSZ DMLZ_Z |
||
20 | LDIZ DMLZ_REGS |
||
21 | LDI TEMP,$80 |
||
22 | STD Z+DMLZ_TEMP,TEMP |
||
23 | LDI TEMP,LOW(MEGABUFFER) |
||
24 | STD Z+DMLZ_TMP2,TEMP |
||
25 | LDI TEMP,HIGH(MEGABUFFER) |
||
26 | STD Z+DMLZ_TMP3,TEMP |
||
27 | STD Z+DMLZ_JUMP,FF |
||
28 | RET |
||
29 | ;(�� ������ RAMPZ ����� �맮���� DMLZ_GETBYTE) |
||
30 | ;-------------------------------------- |
||
31 | ;out: sreg.Z == CLR - �ᯥ譮, SET - ����� ������ |
||
32 | ; DATA == ��।��� ���� |
||
33 | DMLZ_GETBYTE: |
||
34 | LDIZ DMLZ_REGS |
||
35 | LDD DATA,Z+DMLZ_DATA |
||
36 | LDD TEMP,Z+DMLZ_TEMP |
||
37 | LDD TMP2,Z+DMLZ_TMP2 |
||
38 | LDD TMP3,Z+DMLZ_TMP3 |
||
39 | LDD XL,Z+DMLZ_XL |
||
40 | LDD XH,Z+DMLZ_XH |
||
41 | LDD R0,Z+DMLZ_JUMP |
||
42 | LDSZ DMLZ_Z |
||
43 | TST R0 |
||
44 | BRMI DMLZ_MS |
||
45 | BREQ DMLZ_METKA0 |
||
46 | RJMP DMLZ_METKA1 |
||
47 | ; |
||
48 | DMLZ_MS:ELPM R0,Z+ |
||
49 | STSZ DMLZ_Z |
||
50 | LDIZ DMLZ_REGS |
||
51 | STD Z+DMLZ_JUMP,NULL |
||
52 | DMLZ_OUT: |
||
53 | STD Z+DMLZ_DATA,DATA |
||
54 | STD Z+DMLZ_TEMP,TEMP |
||
55 | STD Z+DMLZ_XL,XL |
||
56 | STD Z+DMLZ_XH,XH |
||
57 | MOV XL,TMP2 |
||
58 | MOV XH,TMP3 |
||
59 | ST X+,R0 |
||
60 | SUBI XH,HIGH(MEGABUFFER) ; |
||
61 | ANDI XH,DBMASK_HI ;address warp |
||
62 | ADDI XH,HIGH(MEGABUFFER) ; |
||
63 | STD Z+DMLZ_TMP2,XL |
||
64 | STD Z+DMLZ_TMP3,XH |
||
65 | MOV DATA,R0 |
||
66 | CLZ |
||
67 | RET |
||
68 | |||
69 | DMLZ_METKA0: |
||
70 | DMLZ_M0:LDI WH,$02 |
||
71 | LDI WL,$FF |
||
72 | DMLZ_M1:ADD TEMP,TEMP |
||
73 | BRNE DMLZ_M2 |
||
74 | ELPM TEMP,Z+ |
||
75 | ROL TEMP |
||
76 | DMLZ_M2:ROL WL |
||
77 | BRCC DMLZ_M1 |
||
78 | DEC WH |
||
79 | BRNE DMLZ_X2 |
||
80 | LDI DATA,2 |
||
81 | ASR WL |
||
82 | BRCS DMLZ_N1 |
||
83 | INC DATA |
||
84 | INC WL |
||
85 | BREQ DMLZ_N2 |
||
86 | LDI WH,$03 |
||
87 | LDI WL,$3F |
||
88 | RJMP DMLZ_M1 |
||
89 | |||
90 | DMLZ_X2:DEC WH |
||
91 | BRNE DMLZ_X3 |
||
92 | LSR WL |
||
93 | BRCS DMLZ_MS |
||
94 | INC WH |
||
95 | RJMP DMLZ_M1 |
||
96 | |||
97 | DMLZ_X6:ADD DATA,WL |
||
98 | DMLZ_N2:LDI WH,$04 |
||
99 | LDI WL,$FF |
||
100 | RJMP DMLZ_M1 |
||
101 | |||
102 | DMLZ_N1:INC WL |
||
103 | BRNE DMLZ_M4 |
||
104 | INC WH |
||
105 | DMLZ_N5:ROR WL |
||
106 | BRCS DMLZ_END |
||
107 | ROL WH |
||
108 | ADD TEMP,TEMP |
||
109 | BRNE DMLZ_N6 |
||
110 | ELPM TEMP,Z+ |
||
111 | ROL TEMP |
||
112 | DMLZ_N6:BRCC DMLZ_N5 |
||
113 | ADD DATA,WH |
||
114 | LDI WH,6 |
||
115 | RJMP DMLZ_M1 |
||
116 | DMLZ_X3:DEC WH |
||
117 | BRNE DMLZ_X4 |
||
118 | LDI DATA,1 |
||
119 | RJMP DMLZ_M3 |
||
120 | DMLZ_X4:DEC WH |
||
121 | BRNE DMLZ_X5 |
||
122 | INC WL |
||
123 | BRNE DMLZ_M4 |
||
124 | LDI WH,$05 |
||
125 | LDI WL,$1F |
||
126 | RJMP DMLZ_M1 |
||
127 | DMLZ_X5:DEC WH |
||
128 | BRNE DMLZ_X6 |
||
129 | MOV WH,WL |
||
130 | DMLZ_M4:ELPM WL,Z+ |
||
131 | DMLZ_M3:DEC WH |
||
132 | MOV XL,WL |
||
133 | MOV XH,WH |
||
134 | ADD XL,TMP2 |
||
135 | ADC XH,TMP3 |
||
136 | DMLZ_LDIR: |
||
137 | SUBI XH,HIGH(MEGABUFFER) ; |
||
138 | ANDI XH,DBMASK_HI ;address warp |
||
139 | ADDI XH,HIGH(MEGABUFFER) ; |
||
140 | LD R0,X+ |
||
141 | STSZ DMLZ_Z |
||
142 | LDIZ DMLZ_REGS |
||
143 | STD Z+DMLZ_JUMP,ONE |
||
144 | RJMP DMLZ_OUT |
||
145 | |||
146 | DMLZ_METKA1: |
||
147 | DEC DATA |
||
148 | BRNE DMLZ_LDIR |
||
149 | |||
150 | RJMP DMLZ_M0 |
||
151 | ; |
||
152 | DMLZ_END: |
||
153 | SEZ |
||
154 | RET |
||
155 | ; |
||
156 | ;-------------------------------------- |
||
157 | ; |