1 | ******************************
|
---|
2 | * *
|
---|
3 | * DUPLEX : Système d'échange *
|
---|
4 | * de données entre *
|
---|
5 | * TO8, TO8D, TO9+ *
|
---|
6 | * et Minitel, en *
|
---|
7 | * un seul sens *
|
---|
8 | * Michel à la fois. *
|
---|
9 | * SAINT-BRIANT ASCI (c) *
|
---|
10 | * * version
|
---|
11 | ************************* du 15/7/93
|
---|
12 |
|
---|
13 |
|
---|
14 | * Les accents sont transcodés dans les
|
---|
15 | * deux sens.
|
---|
16 |
|
---|
17 |
|
---|
18 | ORG $9000
|
---|
19 |
|
---|
20 |
|
---|
21 | * EMISSION DE DONNEES A 1200 BAUDS
|
---|
22 | * DONNEES SUR 7 bits, 1 bit start
|
---|
23 | * 1 bit stop, parité paire
|
---|
24 | * compatible MINITEL
|
---|
25 | * les données sont inscrites sur la
|
---|
26 | * bank courante depuis $A000 et ter-
|
---|
27 | * minées par un code supérieur à $7F
|
---|
28 | * ($FF ou 255 par exemple)
|
---|
29 |
|
---|
30 | EMIT PSHS U,Y,X,DP,B,A,CC
|
---|
31 | ORCC #$50
|
---|
32 | LDD #$E7FD
|
---|
33 | TFR A,DP
|
---|
34 | STB <$C2
|
---|
35 | LDB <$C5
|
---|
36 | PSHS B,A
|
---|
37 | LDU #$A000
|
---|
38 | CLRB
|
---|
39 | EMIT0 LDA #$07
|
---|
40 | STA ,S
|
---|
41 | LDX #$61
|
---|
42 | STX <$C6
|
---|
43 | LDA #$A2
|
---|
44 | STA <$C5
|
---|
45 | CLRA
|
---|
46 | BSR ROUT2
|
---|
47 | EMIT1 LSRB
|
---|
48 | BCS EMIT2
|
---|
49 | BSR ROUT2
|
---|
50 | BRA EMIT3
|
---|
51 | EMIT2 BSR ROUT1
|
---|
52 | INCA
|
---|
53 | EMIT3 DEC ,S
|
---|
54 | BNE EMIT1
|
---|
55 | BITA #$01
|
---|
56 | BNE EMIT4
|
---|
57 | BSR ROUT2
|
---|
58 | BRA EMIT5
|
---|
59 | EMIT4 BSR ROUT1
|
---|
60 | EMIT5 LDA #10
|
---|
61 | EMIT6 DECA
|
---|
62 | BNE EMIT6
|
---|
63 | BSR ROUT1
|
---|
64 | LDB ,U+
|
---|
65 | BMI FINEMI
|
---|
66 | CMPB #$16
|
---|
67 | BNE EMIT0
|
---|
68 | LDB #$19
|
---|
69 | BRA EMIT0
|
---|
70 | FINEMI LDA <$C5
|
---|
71 | ORA #$80
|
---|
72 | STA <$C5
|
---|
73 | LDX #$0033
|
---|
74 | EMIT7 LEAX -1,X
|
---|
75 | BNE EMIT7
|
---|
76 | PULS A,B
|
---|
77 | STB <$C5
|
---|
78 | LDD #$1800
|
---|
79 | STD <$C6
|
---|
80 | PULS CC,A,B,DP,X,Y,U,PC
|
---|
81 |
|
---|
82 |
|
---|
83 | ROUT1 PSHS X,A
|
---|
84 | LDX #$0061
|
---|
85 | TEMPO1 LEAX -1,X
|
---|
86 | BNE TEMPO1
|
---|
87 | LDA <$C5
|
---|
88 | ORA #$80
|
---|
89 | BRA FINROU
|
---|
90 | ROUT2 PSHS X,A
|
---|
91 | LDX #$0061
|
---|
92 | TEMPO2 LEAX -1,X
|
---|
93 | BNE TEMPO2
|
---|
94 | LDA <$C5
|
---|
95 | ANDA #$7F
|
---|
96 | BRA FINROU
|
---|
97 | FINROU STA <$C5
|
---|
98 | PULS A,X,PC
|
---|
99 |
|
---|
100 |
|
---|
101 |
|
---|
102 | * RECEPTION DE DONNEES A 1200 BAUDS
|
---|
103 | * DONNEES SUR 7 bits, 1 bit start
|
---|
104 | * 1 bit stop, parité paire
|
---|
105 | * compatible MINITEL
|
---|
106 | * les données sont inscrites sur la
|
---|
107 | * bank courante depuis $A000 tant que
|
---|
108 | * la touche 'Envoi' n'est pas pressée.
|
---|
109 | * -> code 0 pour la fin des données.
|
---|
110 |
|
---|
111 |
|
---|
112 | RECEIV PSHS U,Y,X,DP,B,A,CC
|
---|
113 | LDU #$A000
|
---|
114 | LDA #$E7
|
---|
115 | PSHS A
|
---|
116 | TFR A,DP
|
---|
117 | RECE1 LDA #$08
|
---|
118 | STA ,S
|
---|
119 | LDA <$CA
|
---|
120 | ANDA #$C4
|
---|
121 | STA <$CA
|
---|
122 | LDA <$C8
|
---|
123 | LDY #$0000
|
---|
124 | LDB #$1E
|
---|
125 | TEMPO3 LEAY -1,Y
|
---|
126 | BNE RECE2
|
---|
127 | DECB
|
---|
128 | BEQ RECE10
|
---|
129 | LDY #$0000
|
---|
130 | RECE2 LDA <$CA
|
---|
131 | BITA #$40
|
---|
132 | BEQ TEMPO3
|
---|
133 | ANDCC #$FE
|
---|
134 | LDX #$0013
|
---|
135 | RECE4 LEAX -1,X
|
---|
136 | BNE RECE4
|
---|
137 | RECE5 BCC RECE7
|
---|
138 | BSR RECE12
|
---|
139 | BCS RECE6
|
---|
140 | RORB
|
---|
141 | ANDCC #$FE
|
---|
142 | BRA RECE9
|
---|
143 | RECE6 RORB
|
---|
144 | ORCC #$01
|
---|
145 | BRA RECE9
|
---|
146 | RECE7 BSR RECE14
|
---|
147 | BCC RECE8
|
---|
148 | RORB
|
---|
149 | ORCC #$01
|
---|
150 | BRA RECE9
|
---|
151 | RECE8 RORB
|
---|
152 | ANDCC #$FE
|
---|
153 | BRA RECE9
|
---|
154 | RECE9 DEC ,S
|
---|
155 | BNE RECE5
|
---|
156 | ANDB #$7F
|
---|
157 | BRA RECE11
|
---|
158 | RECE10 LDB #$FF
|
---|
159 | RECE11 LDA -1,U
|
---|
160 | CMPD #$1341
|
---|
161 | BEQ FINREC
|
---|
162 | CMPB #$19
|
---|
163 | BNE ECRIRE
|
---|
164 | LDB #$16
|
---|
165 | ECRIRE STB ,U+
|
---|
166 | BRA RECE1
|
---|
167 | FINREC CLR -1,U
|
---|
168 | PULS A
|
---|
169 | PULS CC,A,B,DP,X,Y,U,PC
|
---|
170 |
|
---|
171 | RECE12 LDA <$CA
|
---|
172 | ANDA #$C4
|
---|
173 | STA <$CA
|
---|
174 | LDA <$C8
|
---|
175 | BSR TEMPO4
|
---|
176 | LDA <$CA
|
---|
177 | ANDA #$40
|
---|
178 | BNE RECE15
|
---|
179 | RECE13 ORCC #$01
|
---|
180 | RTS
|
---|
181 | RECE14 LDA <$CA
|
---|
182 | ORA #$10
|
---|
183 | STA <$CA
|
---|
184 | LDA <$C8
|
---|
185 | BSR TEMPO4
|
---|
186 | LDA <$CA
|
---|
187 | ANDA #$40
|
---|
188 | BNE RECE13
|
---|
189 | RECE15 ANDCC #$FE
|
---|
190 | RTS
|
---|
191 | TEMPO4 LDX #$005E
|
---|
192 | TEMPO5 LEAX -1,X
|
---|
193 | BNE TEMPO5
|
---|
194 | RTS
|
---|
195 |
|
---|
196 | END
|
---|