source: thomson/code/3rdparty/sources1-hmel/DEMO-TR.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: 15.1 KB
Line 
1 TITLE TO-DEMO:Traitements
2* ---------------------------------
3 PAGE
4
5****************************************
6* *
7* Traitements *
8* *
9****************************************
10
11
12*=======================================
13* S/P fenetre de demo
14* permet de modifier la palette et
15* la couleur de tour via des
16* poussoirs 'zone'
17* De choisir un mode vidéo via un
18* poussoir 'zone' redéfini
19* (bidon !)
20* d'utiliser des poussoirs 'balise'
21* de manipuler des inverseurs
22* 'zone' et 'balise'
23*=======================================
24
25XXDEMO EQU *
26 LEAS -39,S
27PBLEU SET 0
28PVERT SET 1
29PROUGE SET 2
30NOPAL SET 3
31MTOUR SET 4
32MMODE SET 5
33MPAL SET 7 32 octets palette
34*---------------------------------------
35
36 LDX #FENINF
37 LDD 3,X
38 JSR POPUP
39 JSR FENOUV
40
41 LDA TOUR
42 STA MTOUR,S
43
44 LDA #16
45 LDX #PALETE
46 LEAY MPAL,S
47LIPAI LDU ,X++
48 STU ,Y++
49 DECA
50 BNE LIPAI ->
51
52 LDB MODVID
53 STB MMODE,S
54 LDX #TMNGR
55BAFMV LDA ,X
56 CMPA #$FF
57 BEQ PERMO pas trouve ->
58 CMPA MMODE,S
59 BEQ POKMO ->
60 LEAX 17,X
61 BRA BAFMV ->
62PERMO LDX #TMNGR
63POKMO STX MMODE,S
64
65* Initialisation des parametres dynami
66* ques de la fenetre
67
68 CLR NOPAL,S
69EXCI00 LEAX MPAL,S
70 LDA NOPAL,S
71 LSLA
72 LEAX A,X
73 LDA ,X
74 ANDA #$0F
75 STA PBLEU,S
76 LDA 1,X
77 LSRA
78 LSRA
79 LSRA
80 LSRA
81 STA PVERT,S
82 LDA 1,X
83 ANDA #$0F
84 STA PROUGE,S
85
86EXECI0 JSR FENDES
87 LDB #$5A coul palette
88 JSR FENCH
89 CLRA
90 LDB NOPAL,S
91 LDX #BUF
92 LDY #2
93 JSR BINDCD
94 JSR FENEDI
95
96 LDA PBLEU,S
97 LDB PVERT,S
98 LSLB
99 LSLB
100 LSLB
101 LSLB
102 ORB PROUGE,S
103 TFR D,Y
104 LEAX MPAL,S
105 LDA NOPAL,S
106 LSLA
107 STY A,X
108 PSHS Y
109 LDA #ORANGE utilisé pour visu
110 LDX #0 temporaire couleur
111 JSR SETP sélectionnée
112
113 LDB #$48 hexa palette
114 JSR FENCH
115 LDX #BUF
116 PULS D
117 JSR BINHX2
118 LDX #BUF
119 LDB 1,X
120 JSR FENPUT
121 LDB #HT
122 JSR FENPUT
123 LDB 2,X
124 JSR FENPUT
125 LDB #HT
126 JSR FENPUT
127 LDB 3,X
128 JSR FENPUT
129
130 LEAX MPAL,S coul tour
131 LDA MTOUR,S
132 LSLA
133 LDY A,X
134 LDA #PARME utilisé pour visu
135 LDX #0 temporaire couleur
136 JSR SETP tour
137 LDB #$59
138 JSR FENCH
139 CLRA
140 LDB MTOUR,S
141 LDX #BUF
142 LDY #2
143 JSR BINDCD
144 JSR FENEDI
145
146 LDB #$4D mode vidéo
147 JSR FENCH
148 LDX MMODE,S
149 LEAX 2,X
150 JSR FENEDI
151
152EXECI1 JSR FENACT
153
154EXECI2 JSR FENPOP
155 TSTB
156 BEQ EXECI2 ->
157 CMPB #'T +Tour
158 LBEQ XIPLT ->
159 CMPB #'U -Tour
160 LBEQ XIMNT ->
161 CMPB #'P +Palette
162 LBEQ XIPLP ->
163 CMPB #'Q -Palette
164 LBEQ XIMNP ->
165 CMPB #'B +Bleu
166 LBEQ XIPLB ->
167 CMPB #'C -Bleu
168 LBEQ XIMNB ->
169 CMPB #'V +Vert
170 LBEQ XIPLV ->
171 CMPB #'W -Vert
172 LBEQ XIMNV ->
173 CMPB #'R +Rouge
174 LBEQ XIPLR ->
175 CMPB #'S -Rouge
176 LBEQ XIMNR ->
177 CMPB #'M Mode
178 LBEQ XIMOD ->
179
180 CMPB #RC
181 LBEQ XIRC ->
182 CMPB #FF RAZ
183 LBEQ XIRET ->
184 LBRA EXECI2 ->
185
186*** mode
187XIMOD EQU *
188 LDX MMODE,S
189 LEAX 17,X
190 STX MMODE,S
191 LDA ,X
192 CMPA #$FF
193 LBNE EXECI0 ->
194 LDX #TMNGR
195 STX MMODE,S
196 LBRA EXECI0 ->
197
198*** + tour
199XIPLT EQU *
200 INC MTOUR,S
201 LDA MTOUR,S
202 CMPA #16
203 LBLT EXECI0 ->
204 CLR MTOUR,S
205 LBRA EXECI0 ->
206
207*** - tour
208XIMNT EQU *
209 DEC MTOUR,S
210 LBGE EXECI0 ->
211 LDA #15
212 STA MTOUR,S
213 LBRA EXECI0 ->
214
215*** + palette
216XIPLP EQU *
217 INC NOPAL,S
218 LDA NOPAL,S
219 CMPA #16
220 LBLT EXCI00 ->
221 CLR NOPAL,S
222 LBRA EXCI00 ->
223
224*** - palette
225XIMNP EQU *
226 DEC NOPAL,S
227 LBGE EXCI00 ->
228 LDA #15
229 STA NOPAL,S
230 LBRA EXCI00 ->
231
232*** + bleu
233XIPLB EQU *
234 INC PBLEU,S
235 LDA PBLEU,S
236 CMPA #16
237 LBLT EXECI0 ->
238 CLR PBLEU,S
239 LBRA EXECI0 ->
240
241*** -bleu
242XIMNB EQU *
243 DEC PBLEU,S
244 LBGE EXECI0 ->
245 LDA #15
246 STA PBLEU,S
247 LBRA EXECI0 ->
248
249*** + vert
250XIPLV EQU *
251 INC PVERT,S
252 LDA PVERT,S
253 CMPA #16
254 LBLT EXECI0 ->
255 CLR PVERT,S
256 LBRA EXECI0 ->
257
258*** - vert
259XIMNV EQU *
260 DEC PVERT,S
261 LBGE EXECI0 ->
262 LDA #15
263 STA PVERT,S
264 LBRA EXECI0 ->
265
266*** + rouge
267XIPLR EQU *
268 INC PROUGE,S
269 LDA PROUGE,S
270 CMPA #16
271 LBLT EXECI0 ->
272 CLR PROUGE,S
273 LBRA EXECI0 ->
274
275*** - rouge
276XIMNR EQU *
277 DEC PROUGE,S
278 LBGE EXECI0 ->
279 LDA #15
280 STA PROUGE,S
281 LBRA EXECI0 ->
282
283*** validation
284XIRC EQU *
285 LDA MTOUR,S tour
286 STA TOUR
287
288 LDA #16
289 LEAX MPAL,S
290 LDY #PALETE
291ECPAI1 LDU ,X++
292 STU ,Y++
293 DECA
294 BNE ECPAI1 ->
295
296 LDA #PARME
297 LDX #0
298 LDY PALDEF+26
299 JSR SETP
300
301 LDA #ORANGE
302 LDX #0
303 LDY PALDEF+30
304 JSR SETP
305
306 LDB #1
307 JSR FENFER
308 JSR FENACT
309 LDB #$FF
310 LEAS 39,S
311 RTS ->>
312
313* Fin menu info video
314*---------------------------------------
315
316XIRET CLRB
317 JSR FENFER
318 LDA #ORANGE
319 LDX #0
320 LDY PALDEF+30
321 JSR SETP
322 LDA #PARME
323 LDX #0
324 LDY PALDEF+26
325 JSR SETP
326 JSR FENACT
327 CLRB
328 LEAS 39,S
329 RTS
330
331
332*=======================================
333* S/P fenetre de demo des possibilités
334* de saisie.
335* Défini trois champ de saisie de
336* types différents et un inverseur
337* Sur appuis d'un pouusoir, rend la
338* valeur lue dans ce champ
339* NB: les procédures de conversion
340* sont fournies pour récupérer des
341* valeurs binaires à partir des
342* chaines de texte lues.
343*=======================================
344
345XXGRIL EQU *
346*---------------------------------------
347
348 LDX #FENDEM
349 LDD 3,X
350 JSR POPUP
351 JSR FENOUV
352
353EXECD1 JSR FENACT
354
355EXECD2 JSR FENPOP
356 TSTB
357 BEQ EXECD2 ->
358 CMPB #134 visu texte
359 LBEQ XDTXT ->
360 CMPB #135 visu hexa
361 LBEQ XDHEX ->
362 CMPB #136 visu décim.
363 LBEQ XDDEC ->
364 CMPB #137 visu invers
365 LBEQ XDINV ->
366
367 CMPB #FF RAZ
368 LBEQ XDRET ->
369 LBRA EXECD2 ->
370
371*** visu inverseur
372XDINV EQU *
373 LDB #133 invers. à lire
374 JSR FENCH
375 LDA VAL,X
376 LDX #MON
377 CMPA #ON
378 BEQ XDAFF
379 LDX #MOFF
380 BRA XDAFF ->
381
382*** visu champ texte
383XDTXT EQU *
384 LDB #130 champ à lire
385 BRA XDVIS ->
386
387*** visu champ hexa
388XDHEX EQU *
389 LDB #131 champ à lire
390 BRA XDVIS ->
391
392*** visu champ décimal
393XDDEC EQU *
394 LDB #132 champ à lire
395
396*** lecture et visu des champs
397XDVIS LDX #BUF lecture champ
398 CLR BUF
399 JSR FENLCZ
400
401XDAFF PSHS X
402 JSR FENDES car sinon les
403* réactivation faites dans FENCH ..
404* entrainent un repositionnement
405* sur la première zone de saisie !
406 LDB #140 visu résultat
407 JSR FENCH
408 JSR FENFON efface
409 PULS X
410 JSR FENEDI
411 LBRA EXECD1 ->
412
413* Fin menu démo grille saisie
414*---------------------------------------
415
416XDRET CLRB
417 JSR FENFER
418 JSR FENACT
419 CLRB
420 RTS
421
422
423*=======================================
424* S/P menu déroulant de gestion fichier
425*=======================================
426
427MENFIC EQU *
428 LEAS -2,S
429MANO SET 0
430*---------------------------------------
431
432 LDX #FENFIC
433 LDD 3,X
434 JSR POPUP
435 JSR FENOUV
436
437EXECF0 LDB #ESC
438 JSR PUTC
439 LDB #$4D
440 JSR PUTC
441 LDB #BLANC
442 JSR FENCF
443 LDD #$0211 Disque courant
444 LDY #$0201
445 JSR FENLOF
446 LDB DKDRV
447 ADDB #$30
448 JSR PUTC
449 LDB #TRANSP
450 JSR FENCF
451 LDB #ESC
452 JSR PUTC
453 LDB #$4C
454 JSR PUTC
455
456EXECF1 JSR FENACT
457
458
459EXECF2 JSR FENPOP
460 TSTB
461 BEQ EXECF2 ->
462 CMPB #'P
463 LBEQ XFUNIT ->
464 CMPB #'I
465 LBEQ XFINIT ->
466 CMPB #'C
467 LBEQ XFCATA ->
468 CMPB #'R
469 LBEQ XFRENO ->
470 CMPB #'S
471 LBEQ XFSUPR ->
472 CMPB #'D
473 LBEQ XFDUPL ->
474 CMPB #'L
475 LBEQ XFLIRE ->
476 CMPB #'E
477 LBEQ XFECRI ->
478 CMPB #FF RAZ
479 LBEQ XFRET ->
480 LBRA EXECF2 ->
481
482*** Préciser unité
483XFUNIT EQU *
484 LBSR FENCH Inverser pouss.
485 LBSR FENIVD
486 LDX #FENVID sélection
487 LDA #11
488 LDB #24
489 LBSR POPUP
490 JSR FENOUV
491 LDA #BKMANO manoeuvre
492 STA BANKC
493 LDX #ZONTRA
494 LDY #LGZTRA
495 LDU #$FFFF
496 LBSR DOSSEL
497 CLRB
498 LBSR FENFER
499 LDB #$50 Inverser pouss.
500 LBSR FENCH
501 LBSR FENIVD
502 LBRA EXECF0 ->
503
504*** Initialiser
505XFINIT EQU *
506 LBSR FENCH Inverser pouss.
507 LBSR FENIVD
508 LDX #FENVID sélection
509 LDA #15
510 LDB #24
511 LBSR POPUP
512 JSR FENOUV
513 LDA #BKMANO manoeuvre
514 STA BANKC
515 LDX #ZONTRA
516 LDY #LGZTRA
517 LBSR DOSINI
518 CLRB
519 LBSR FENFER
520 LDB #$49 Inverser pouss.
521 LBSR FENCH
522 LBSR FENIVD
523 LBRA EXECF1 ->
524
525*** Catalogue
526XFCATA EQU *
527 LBSR FENCH Inverser pouss.
528 LBSR FENIVD
529 LDX #FENVID sélection
530 LDD #$0200
531 LBSR FENOUV
532 LDA #BKMANO manoeuvre
533 STA BANKC
534 LDX #ZONTRA
535 LDY #LGZTRA
536 LBSR DOSCAT
537 CLRB
538 LBSR FENFER
539 LDB #$43 Inverser pouss.
540 LBSR FENCH
541 LBSR FENIVD
542 LBRA EXECF1 ->
543
544*** Renommer fichier
545XFRENO EQU *
546 LBSR FENCH Inverser pouss.
547 LBSR FENIVD
548 LDX #FENVID sélection
549 LDD #$0500
550 LBSR FENOUV
551 LDA #BKMANO manoeuvre
552 STA BANKC
553 LDX #ZONTRA
554 LDY #LGZTRA
555 LBSR DOSREN
556 CLRB
557 LBSR FENFER
558 LDB #$52 Inverser pouss.
559 LBSR FENCH
560 LBSR FENIVD
561 LBRA EXECF1 ->
562
563*** Supprimer fichier
564XFSUPR EQU *
565 LBSR FENCH Inverser pouss.
566 LBSR FENIVD
567 LDX #FENVID sélection
568 LDD #$0500
569 LBSR FENOUV
570 LDA #BKMANO manoeuvre
571 STA BANKC
572 LDX #ZONTRA
573 LDY #LGZTRA
574 LBSR DOSSUP
575 CLRB
576 LBSR FENFER
577 LDB #$53 Inverser pouss.
578 LBSR FENCH
579 LBSR FENIVD
580 LBRA EXECF1 ->
581
582*** Dupliquer fichier
583XFDUPL EQU *
584 LBSR FENCH Inverser pouss.
585 LBSR FENIVD
586 LDX #FENVID Sélection
587 LDD #$0500
588 LBSR FENOUV
589 LDA #BKMANO manoeuvre
590 STA BANKC
591 LDX #ZONTRA
592 LDY #LGZTRA
593 LBSR DOSDUP
594 CLRB
595 LBSR FENFER
596 LDB #$44 Inverser pouss.
597 LBSR FENCH
598 LBSR FENIVD
599 LBRA EXECF1 ->
600
601*** Lire fichier
602XFLIRE EQU *
603* Ce qui suit pour que le poussoir
604* soit inversé pendant une phase de
605* traitement qui peut être longue
606
607 LBSR FENCH Inverser pouss.
608 LBSR FENIVD
609
610* La saisie du fichier s'opère grace
611* au DOS iconique 'enveloppé' dans TO-FE
612* pour pouvoir revenir au menu déroulant
613* il faut ouvrir une fenêtre vide à
614* laquelle sera ajoutée la fenêtre de
615* saisie !!!
616
617 LDX #FILNAM filtre .ASM
618XLIRZ CLR ,X+
619 CMPX #FILNAM+8
620 BNE XLIRZ ->
621 LDA #'A
622 LDB #'S
623 STD ,X++
624 LDA #'M
625 STA ,X+
626 LDX #FENVID sélection
627 LDD #$0500
628 LBSR FENOUV
629 LDA #BKMANO manoeuvre
630 STA BANKC
631 LDX #ZONTRA
632 LDY #LGZTRA
633 LDU #MLIRE
634 LBSR DOSFIL
635 LBEQ XLIRZ9 RAZ ->
636 LBCS XLIRZ9 erreur ->
637
638 LDX #FILNAM fich cour.
639 LDY #DESCOU
640BMEMFC LDA ,X+
641 STA ,Y+
642 CMPX #FILNAM+8
643 BNE BMEMFC ->
644
645* On simule ici la lecture d'un fichier
646* à afficher à l'écran... pour cela, il
647* faut fermer toutes les fenêtres (2 niv
648* -eaux puis remonter également de deux
649* niveaux pour les procédures de dialo-
650* -gue.
651
652CPNOF LDB #2
653 JSR FENFER
654
655 JSR FENACT
656 LEAS 2,S
657 LDB #$FF
658 RTS ->>
659
660XLIRZ9 CLRB
661 LBSR FENFER
662
663* Le poussoir redevient normal
664
665 LDB #'L Inverser pouss.
666 LBSR FENCH
667 LBSR FENIVD
668 LBRA EXECF1 ->
669
670*** Ecrire fichier
671XFECRI EQU *
672 JSR FENCH
673 JSR FENIVD
674
675 LDX #FENVID Sélection
676 LDD #$0505
677 LBSR FENOUV
678
679 LDY #FILNAM nom défaut
680 LDX #DESCOU
681 LDA #8
682ECAL0 LDB ,X+
683 STB ,Y+
684 DECA
685 BNE ECAL0 ->
686 LDA #'A
687 LDB #'S
688 STD ,Y++
689 LDA #'M
690 STA ,Y+
691
692 LDX #MCOMAL commentaire
693 LDA #8
694ECAL00 LDB ,X+
695 STB ,Y+
696 DECA
697 BNE ECAL00 ->
698
699 LDA #BKMANO
700 STA BANKC
701 LDX #ZONTRA
702 LDY #LGZTRA
703 LDU #MVFICH
704 LBSR DOSCZI
705 LBEQ XFCRFF RAZ ->
706 LBCS XFCRFF erreur ->
707
708 LDD #$0309 vérifier non
709 LBSR FENLOF existence
710 JSR DOSTST
711 LBCS XFCRFF existe ->
712
713* Ici on simule le retour au fond pour
714* pouvoir par exemple coder l'image
715* avant de l'écrire !
716
717 LDB #2
718 JSR FENFER
719
720 JSR FENACT
721 LEAS 2,S
722 LDB #$FF
723 RTS ->>
724
725XFCRFF CLRB
726 JSR FENFER
727
728XFECRF LDB #'E
729 JSR FENCH
730 JSR FENIVD
731 LBRA EXECF1 ->
732
733* Fin menu fichier
734*---------------------------------------
735
736XFRET CLRB
737 JSR FENFER
738 JSR FENACT
739 CLRB
740 LEAS 2,S
741 RTS
Note: See TracBrowser for help on using the repository browser.