source: thomson/code/3rdparty/sources4-divers/SPRINT.ASM@ ceffc47

main
Last change on this file since ceffc47 was ceffc47, checked in by Adrien Destugues <pulkomandy@…>, 10 years ago

Add that collection of 3rdparty source I had lying on my disk for some time...

git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5

  • Property mode set to 100644
File size: 8.4 KB
Line 
1 TITLE SPRINT
2* V1.0 du 10.11.91
3* Guyot daniel 73 83 09 43
4* Machine TO et imprimante Citizen 120D+
5ECRIT EQU $0800
6CLOSE EQU $10
7OPEN EQU $40
8STAD EQU $4000
9ENDAD EQU $5F40
10* basic 1.0
11LECVIR EQU $08F3
12SNERRO EQU $0900 $07F3
13LECVAR EQU $1108 $0EB8
14LEVAR1 EQU $111A $0EF1
15INTERP EQU $201D $2B38
16*
17RSOPC EQU $602B
18SCRMOD EQU $605F
19NBSUP EQU $6773
20TABSUP EQU $6774
21ADRSUP EQU $6776
22*
23PRC EQU $E7C3
24RSCO EQU $E812
25
26 ORG $9000
27
28EXEC LDA #1
29 STA NBSUP
30 TFR PC,D
31 ADDD #$0014
32 STD TABSUP D -> TABFON
33 ADDD #$0006
34 STD ADRSUP D -> INTFON
35 ADDD #$001E
36 STD ADRFON,PCR D -> SPRINT
37 RTS
38
39TABFON FCC "SPRIN"
40 FCB $80+'T
41
42ADRFON RMB 2
43
44INTFON SUBA #$F9 $F9=$80+$79
45 CMPA #$00 fonction non
46 BLO INT2 implantée
47 LDD #$0F00
48 LEAX TAB5,PCR
49INT1 STB ,X+ mise à 0 des
50 DECA buffeurs
51 BNE INT1
52 LEAX ADRFON,PCR
53 JMP INTERP
54INT2 JMP SNERRO
55
56SPRINT CMPA #$00 Copie simple
57 BEQ START
58 CMPA #$2C , -> var suite
59 BEQ SPR1
60 CMPA #$3A : -> fin instr
61 BEQ START
62 JSR LECVAR
63 CMPB #$01 copie simple
64 BLO INT2
65 CMPB #$03 copie triple
66 BHI INT2 à venir
67 DECB
68 STB TAB5,PCR mode copie
69 CMPA #$2C
70 BNE START
71SPR1 JSR LECVIR
72 BEQ SPR2
73 JSR LECVAR
74 CMPB #$00 0 colonne
75 BLO INT2
76 CMPB #$20 32 colonnes
77 BHI INT2
78 STB TAB5+2,PCR nb colonnes
79 CMPA #$2C
80 BNE START
81SPR2 JSR LEVAR1
82 CMPB #$00 0 ligne
83 LBLO INT2
84 CMPB #$2F 47 lignes
85 LBHI INT2
86 STB TAB5+3,PCR nb lignes
87
88START PSHS U,Y,X,DP,B,A,CC
89 LEAX TAB0,PCR initialisation
90 LBSR FOR0
91 LDA #OPEN ouverture //
92 STA RSOPC
93 LBSR IMP0
94 LDD #ECRIT écrit caracter
95 STA RSOPC
96 LBSR IMP0
97 LDB SCRMOD
98 CMPB #$80 mode 80/40 col
99 BNE STA0 0 -> 40 col
100 INC TAB5+5,PCR 1 -> 80 col
101STA0 TST TAB5,PCR
102 BEQ SCOP copie simple
103
104 LBRA DCOP copie double
105
106TAB0 FCB 23
107 FCB $48,$1B dblfp off
108 FCB $46,$1B gras off
109 FCB $00,$78,$1B nql off
110 FCB $01,$55,$1B undir on
111 FCB $42,$43,$1B lpag 66
112 FCB $50,$1B pica
113 FCB $39,$1B
114 FCB $00,$35,$7E,$1B epson
115 FCB $40,$1B raz
116* interligne 24/216 pouce
117TAB1 FCB 3
118 FCB $18,$33,$1B
119* lg ligne 256+231=2*200+87(marge)
120TAB2 FCB 5
121 FCB $01,$E7,$05,$2A,$1B
122* lg ligne 256+64=320 (marge=0)
123TAB3 FCB 5
124 FCB $01,$40,$05,$2A,$1B
125TAB4 FCB 13
126 FCB $0A,$0D LF CR
127 FCB $40,$1B
128 FCB $00,$55,$1B undir off
129* pica espacement normal
130 FCB $00,$33,$7E,$1B
131 FCB $32,$1B 1/6 pouce
132TAB5 RMB 15
133
134SCOP LDX #$0000
135 LDA #$05 72p/p max 576
136 STA TAB3+3,PCR
137 TST TAB5+5,PCR
138 BEQ SCO1
139
140 LDA #$07 144p/p max1152
141 STA TAB3+3,PCR
142 LEAX $140,X 320 pts
143
144SCO1 LEAX $140,X 320 pts
145 LDB #$08
146 LDA TAB5+2,PCR nb colonnes
147 TST TAB5+5,PCR
148 BEQ SCO2
149
150 ASLA
151SCO2 MUL
152 LEAX D,X
153 STX TAB3+1,PCR
154 STD TAB5+1,PCR
155
156 LDA #$0A
157 STA TAB5+4,PCR
158
159 LDX #STAD
160 STX TAB5+7,PCR
161 LDD TAB5+3,PCR nb ligne
162 TSTA
163 BEQ SDE1
164 LBSR FOR2
165SDE1 PSHS X
166 LEAX TAB1,PCR interligne
167 LBSR FOR0
168 LEAX TAB3,PCR longueur lg
169 LBSR FOR0
170 PULS X
171
172 LDD TAB5+1,PCR nb colonnes
173 PSHS A
174 TFR B,A
175 TSTA
176 BEQ SDE2
177 CLRB
178 LBSR FOR2
179SDE2 PULS A
180 TSTA
181 BEQ SDE3
182 DECA
183 PSHS A
184 LDA #$FF
185 LBSR FOR2
186 LBSR IMP0
187 BRA SDE2
188
189SDE3 CLR TAB5+10,PCR
190
191SDE4 LDA #$08
192 STA TAB5+11,PCR
193SDE5 CLR TAB5+12,PCR
194 CLR TAB5+13,PCR
195 LDB TAB5+10,PCR
196 LDX TAB5+7,PCR
197 LEAX B,X
198SDE6 LDA TAB5+11,PCR
199 STA TAB5+14,PCR
200
201 TST TAB5+6,PCR
202 BNE SDE7
203 LBSR RAMA 0 -> ramA
204 BRA SDE8
205SDE7 LBSR RAMB 1 -> ramB
206
207SDE8 LDB ,X
208
209SDE9 RORB
210 TFR CC,A
211 DEC TAB5+14,PCR
212 BNE SDE9
213 TFR A,CC
214
215SDE10 ROL TAB5+13,PCR
216 INC TAB5+12,PCR
217 LDA TAB5+12,PCR
218 CMPA #$08 fin col caract
219 BEQ SDE11
220 LEAX $28,X ligne suivante
221 BRA SDE6
222
223SDE11 DEC TAB5+11,PCR -1 col caract
224 LDB TAB5+13,PCR bits col carac
225
226 BSR IMP0 ecrit col car
227
228 LDA TAB5+11,PCR
229 BNE SDE5 si>0 continuer
230
231
232 TST TAB5+5,PCR flag scrmod
233 BEQ COL0
234 TST TAB5+6,PCR flag ram ecran
235 BNE COL0
236 INC TAB5+6,PCR
237 BRA SDE4
238
239COL0 CLR TAB5+6,PCR
240
241 INC TAB5+10,PCR
242 LDA TAB5+10,PCR
243 CMPA #$28 nb colonnes
244 LBNE SDE4
245
246 INC TAB5+9,PCR
247
248 LDB #$0D fin de ligne
249 BSR IMP0
250 PSHS X
251 LEAX TAB1,PCR interligne
252 BSR FOR0
253 PULS X
254 LDB #$0A
255 BSR IMP0
256
257 LDA TAB5+9,PCR
258 CMPA #$19 nb lignes
259 LBEQ FIN2 fin ecran
260
261 LDD #$0140
262 LDX TAB5+7,PCR
263 LEAX D,X
264 STX TAB5+7,PCR
265 LBRA SDE1
266
267FOR0 LDA ,X transf tab(s)
268FOR1 LDB A,X
269 BSR IMP0
270 DECA
271 BNE FOR1
272 RTS
273FOR2 BSR IMP0
274 DECA
275 BNE FOR2
276 RTS
277
278RAMA LDA PRC ecran forme
279 ORA #$01
280 STA PRC
281 RTS
282
283RAMB LDA PRC ecran fond
284 ANDA #$FE
285 STA PRC
286 RTS
287
288IMP0 JMP RSCO
289
290DCOP LDD #$060A
291 STD TAB5+3,PCR
292 LDD #$5700
293 STD TAB5+1,PCR
294DDE0 LDX #STAD
295 LEAX -40,X
296 STX TAB5+7,PCR flag limite ecr
297 LDY #ENDAD
298 LEAY -40,Y
299 LDD TAB5+3,PCR
300 BSR FOR2
301DDE2 CLR TAB5+9,PCR 4bits poid fort
302DDE3 PSHS X
303 LEAX TAB1,PCR interligne
304 BSR FOR0
305 LEAX TAB2,PCR longueur lg
306 BSR FOR0
307 PULS X
308
309 LDD TAB5+1,PCR
310 BSR FOR2
311 TFR Y,X Y->X adr octet
312
313GPL0 TST TAB5+6,PCR flag ram ecran
314 BNE GPL1
315 BSR RAMA 0 -> ramA
316 BRA GPL2
317GPL1 BSR RAMB 1 -> ramB
318GPL2 LDA ,X
319 TST TAB5+5,PCR flag scrmod
320 BEQ GPL3
321 TFR A,B
322 BRA IMP1
323GPL3 CLRB
324 TST TAB5+9,PCR flag passe
325 BEQ GPL4
326 ROLA
327 ROLA
328 ROLA
329 ROLA
330GPL4 ROLA
331 BCS GPL8
332GPL5 ROLA
333 BCS GPL9
334GPL6 ROLA
335 BCS GPL10
336GPL7 ROLA
337 BCS GPL11
338 BRA IMP1
339GPL8 LDB #$C0
340 BRA GPL5
341GPL9 ADDB #$30
342 BRA GPL6
343GPL10 ADDB #$0C
344 BRA GPL7
345GPL11 ADDB #$03
346
347IMP1 LBSR IMP0 copie
348 LBSR IMP0
349 LEAX -40,X on remonte 1 lg
350 CMPX TAB5+7,PCR borne 3FD8/4000
351 BNE GPL2 2eme passe
352 LDB #$0D FIN2 de lg
353 LBSR IMP0
354 PSHS X
355 LEAX TAB1,PCR interlg
356 LBSR FOR0
357 PULS X
358 LDB #$0A
359 LBSR IMP0
360 TST TAB5+5,PCR
361 BEQ IMP2
362 INC TAB5+9,PCR
363IMP2 TST TAB5+9,PCR
364 BNE COL1 si S=1 -> COL 0
365 INC TAB5+9,PCR 4 b poid faible
366 LBRA DDE3
367
368COL1 TST TAB5+5,PCR flag scrmod
369 BEQ COL3
370 TST TAB5+6,PCR flag ram ecran
371 BNE COL2 si 1 -> RAMA
372 INC TAB5+6,PCR
373 LBRA DDE2
374COL2 CLR TAB5+6,PCR
375COL3 LEAY 1,Y
376 CMPY #ENDAD
377 BEQ FIN2
378 INC TAB5+8,PCR
379 LBRA DDE2
380
381FIN2 LEAX TAB4,PCR
382 LBSR FOR0
383 LDA CLOSE
384 STA RSOPC
385 LBSR IMP0
386 PULS U,Y,X,DP,B,A,CC,PC
387 END
Note: See TracBrowser for help on using the repository browser.