Subversion Repositories pentevo

Rev

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
;