source: thomson/code/3rdparty/sources5-hmel/TO-SNAP/SNAP-MN.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 100755
File size: 27.4 KB
Line 
1 TITLE TO-SNAP:Menusderoulants
2* ---------------------------------
3 PAGE
4
5****************************************
6* *
7* Menu déroulants *
8* *
9****************************************
10
11
12*=======================================
13* S/P menu déroulant de gestion info
14*=======================================
15
16MENINF EQU *
17 LEAS -39,S
18PBLEU SET 0
19PVERT SET 1
20PROUGE SET 2
21NOPAL SET 3
22MTOUR SET 4
23MMODE SET 5
24MPAL SET 7 32 octets palette
25*---------------------------------------
26
27 LDX #FENINF
28 LDD 3,X
29 JSR POPUP
30 JSR FENOUV
31
32 LDA NUMPHO
33 LDX #TABBK
34 LDA A,X
35 STA BANKC
36
37 LDA TOUR
38 STA MTOUR,S
39
40 LDA #16
41 LDX #PALPHO
42 LEAY MPAL,S
43LIPAI LDU ,X++
44 STU ,Y++
45 DECA
46 BNE LIPAI ->
47
48 LDA NUMPHO
49 LDX #TABMOD
50 LDB A,X
51 STB MMODE,S
52 LDX #TMNGR
53BAFMV LDA ,X
54 CMPA #$FF
55 BEQ PERMO pas trouve ->
56 CMPA MMODE,S
57 BEQ POKMO ->
58 LEAX 17,X
59 BRA BAFMV ->
60PERMO LDX #TMNGR
61POKMO STX MMODE,S
62
63 CLR NOPAL,S
64EXCI00 LEAX MPAL,S
65 LDA NOPAL,S
66 LSLA
67 LEAX A,X
68 LDA ,X
69 ANDA #$0F
70 STA PBLEU,S
71 LDA 1,X
72 LSRA
73 LSRA
74 LSRA
75 LSRA
76 STA PVERT,S
77 LDA 1,X
78 ANDA #$0F
79 STA PROUGE,S
80
81EXECI0 JSR FENDES
82 LDB #$5A coul palette
83 JSR FENCH
84 CLRA
85 LDB NOPAL,S
86 LDX #BUF
87 LDY #2
88 JSR BINDCD
89 JSR FENEDI
90
91 LDA PBLEU,S
92 LDB PVERT,S
93 LSLB
94 LSLB
95 LSLB
96 LSLB
97 ORB PROUGE,S
98 TFR D,Y
99 LEAX MPAL,S
100 LDA NOPAL,S
101 LSLA
102 STY A,X
103 PSHS Y
104 LDA #ORANGE
105 LDX #0
106 JSR SETP
107
108 LDB #$48 hexa palette
109 JSR FENCH
110 LDX #BUF
111 PULS D
112 JSR BINHX2
113 LDX #BUF
114 LDB 1,X
115 JSR FENPUT
116 LDB #HT
117 JSR FENPUT
118 LDB 2,X
119 JSR FENPUT
120 LDB #HT
121 JSR FENPUT
122 LDB 3,X
123 JSR FENPUT
124
125 LEAX MPAL,S coul tour
126 LDA MTOUR,S
127 LSLA
128 LDY A,X
129 LDA #PARME
130 LDX #0
131 JSR SETP
132 LDB #$59
133 JSR FENCH
134 CLRA
135 LDB MTOUR,S
136 LDX #BUF
137 LDY #2
138 JSR BINDCD
139 JSR FENEDI
140
141 LDB #$4D mode vidéo
142 JSR FENCH
143 LDX MMODE,S
144 LEAX 2,X
145 JSR FENEDI
146
147EXECI1 JSR FENACT
148
149EXECI2 JSR FENPOP
150 TSTB
151 BEQ EXECI2 ->
152 CMPB #$54 +Tour
153 LBEQ XIPLT ->
154 CMPB #$55 -Tour
155 LBEQ XIMNT ->
156 CMPB #$50 +Palette
157 LBEQ XIPLP ->
158 CMPB #$51 -Palette
159 LBEQ XIMNP ->
160 CMPB #$42 +Bleu
161 LBEQ XIPLB ->
162 CMPB #$43 -Bleu
163 LBEQ XIMNB ->
164 CMPB #$56 +Vert
165 LBEQ XIPLV ->
166 CMPB #$57 -Vert
167 LBEQ XIMNV ->
168 CMPB #$52 +Rouge
169 LBEQ XIPLR ->
170 CMPB #$53 -Rouge
171 LBEQ XIMNR ->
172 CMPB #$4D Mode
173 LBEQ XIMOD ->
174
175 CMPB #RC
176 LBEQ XIRC ->
177 CMPB #FF RAZ
178 LBEQ XIRET ->
179 LBRA EXECI2 ->
180
181*** mode
182XIMOD EQU *
183 LDX MMODE,S
184 LEAX 17,X
185 STX MMODE,S
186 LDA ,X
187 CMPA #$FF
188 LBNE EXECI0 ->
189 LDX #TMNGR
190 STX MMODE,S
191 LBRA EXECI0 ->
192
193*** + tour
194XIPLT EQU *
195 INC MTOUR,S
196 LDA MTOUR,S
197 CMPA #16
198 LBLT EXECI0 ->
199 CLR MTOUR,S
200 LBRA EXECI0 ->
201
202*** - tour
203XIMNT EQU *
204 DEC MTOUR,S
205 LBGE EXECI0 ->
206 LDA #15
207 STA MTOUR,S
208 LBRA EXECI0 ->
209
210*** + palette
211XIPLP EQU *
212 INC NOPAL,S
213 LDA NOPAL,S
214 CMPA #16
215 LBLT EXCI00 ->
216 CLR NOPAL,S
217 LBRA EXCI00 ->
218
219*** - palette
220XIMNP EQU *
221 DEC NOPAL,S
222 LBGE EXCI00 ->
223 LDA #15
224 STA NOPAL,S
225 LBRA EXCI00 ->
226
227*** + bleu
228XIPLB EQU *
229 INC PBLEU,S
230 LDA PBLEU,S
231 CMPA #16
232 LBLT EXECI0 ->
233 CLR PBLEU,S
234 LBRA EXECI0 ->
235
236*** -bleu
237XIMNB EQU *
238 DEC PBLEU,S
239 LBGE EXECI0 ->
240 LDA #15
241 STA PBLEU,S
242 LBRA EXECI0 ->
243
244*** + vert
245XIPLV EQU *
246 INC PVERT,S
247 LDA PVERT,S
248 CMPA #16
249 LBLT EXECI0 ->
250 CLR PVERT,S
251 LBRA EXECI0 ->
252
253*** - vert
254XIMNV EQU *
255 DEC PVERT,S
256 LBGE EXECI0 ->
257 LDA #15
258 STA PVERT,S
259 LBRA EXECI0 ->
260
261*** + rouge
262XIPLR EQU *
263 INC PROUGE,S
264 LDA PROUGE,S
265 CMPA #16
266 LBLT EXECI0 ->
267 CLR PROUGE,S
268 LBRA EXECI0 ->
269
270*** - rouge
271XIMNR EQU *
272 DEC PROUGE,S
273 LBGE EXECI0 ->
274 LDA #15
275 STA PROUGE,S
276 LBRA EXECI0 ->
277
278*** validation
279XIRC EQU *
280 LDA MTOUR,S tour
281 STA TOUR
282 STA TOUPHO
283
284 LDA #16
285 LEAX MPAL,S
286 LDY #PALPHO
287ECPAI LDU ,X++
288 STU ,Y++
289 DECA
290 BNE ECPAI ->
291
292 LDA #16
293 LEAX MPAL,S
294 LDY #PALETE
295ECPAI1 LDU ,X++
296 STU ,Y++
297 DECA
298 BNE ECPAI1 ->
299
300 LDA NUMPHO
301 LDX #TABMOD
302 LDY MMODE,S
303 LDB ,Y
304 STB A,X mode "hard"
305 LDB 1,Y
306 STB MBSPHO mode "basic"
307 LDA #15
308 LDX #0
309 LDY PALDEF+30
310 JSR SETP
311
312 LDB #1
313 JSR FENFER
314 JSR SELMOD
315 JSR FENACT
316 LDB #$FF
317 LEAS 39,S
318 RTS ->>
319
320* Fin menu info video
321*---------------------------------------
322
323XIRET CLRB
324 JSR FENFER
325 LDA #ORANGE
326 LDX #0
327 LDY PALDEF+30
328 JSR SETP
329 LDA #PARME
330 LDX #0
331 LDY PALDEF+26
332 JSR SETP
333 JSR FENACT
334 CLRB
335 LEAS 39,S
336 RTS
337
338
339*=======================================
340* S/P menu déroulant gestion diaporama
341*=======================================
342
343MENCAT EQU *
344 LEAS -3,S
345PHO SET 0
346PHONEW SET 1
347CPTR SET 2
348*---------------------------------------
349
350 LDX #FFPEL
351 LDD #$0101
352 JSR FENOUV
353
354* Compteur anim.
355
356 LDD MEMTPO
357 LDY #2
358 LDX #BUF
359 JSR BINDCD
360 LDB #255
361 JSR FENCH
362 LDX #BUF
363 JSR FENEDI
364
365* Interdire et tramer les photos non
366* accessibles
367
368EXECC0 LDA MAXPHO
369 STA PHO,S
370BINVPH INC PHO,S
371 LDB PHO,S
372 CMPB #22
373 BEQ EXECC1 ->
374 ADDB #200
375 JSR FENCH
376 JSR FENTRA
377 LDB #INTERD
378 STB VAL,X
379 BRA BINVPH ->
380
381* visualiser les noms
382
383EXECC1 LDB #-1
384 STB PHO,S
385BVINM INC PHO,S
386 LDB PHO,S
387 CMPB #22
388 BEQ EXECC2 ->
389 LDX #TABPHO
390 TST B,X
391 BEQ BVINM ->
392 ADDB #200
393 JSR FENCH
394 LDX #TABNOM
395 LDB PHO,S
396 LDA #8
397 MUL
398 LEAX B,X
399 LDA #8
400BVINM1 LDB ,X+
401 JSR FENPUT
402 DECA
403 BNE BVINM1 ->
404 BRA BVINM ->
405
406EXECC2 LDA #$FF
407 STA PHO,S photo sélectioné
408 JSR FENACT
409
410EXECC3 JSR FEN
411 TSTB
412 BEQ EXECC3 ->
413 CMPB #$56 V
414 LBEQ XCVOIR ->
415 CMPB #$53 S
416 LBEQ XCSUP ->
417 CMPB #$41 A
418 LBEQ XCANIM ->
419 CMPB #$45 E
420 LBEQ XCECHA ->
421 CMPB #FF RAZ
422 LBEQ XCRET ->
423 CMPB #200
424 BCS EXECC3 ->
425 CMPB #222
426 BCC EXECC3 ->
427
428*** Sélection de l'une des photos
429*** 200..221 -> 0..21
430 SUBB #200
431 CMPB MAXPHO
432 LBGT EXECC3 ->
433 STB PHONEW,S
434 CMPB PHO,S
435 LBEQ SERD1 sup select ->
436
437 TST PHO,S
438 LBMI SERD0 ->
439
440 LDB #$45 2ème select.
441 JSR FENCH
442 LDB VAL,X
443 CMPB #OFF
444 LBEQ SERD00 ->
445 LDB #OFF mode echange
446 STB VAL,X
447 JSR FENIVD
448
449 LDX #TABPHO Echange des type
450 LDA PHO,S
451 LDB A,X
452 STB CPTR,S
453
454 LDB PHONEW,S
455 LDB B,X
456 STB A,X
457
458 LDA PHONEW,S
459 LDB CPTR,S
460 STB A,X
461
462 LDX #TABMOD Echange des mode
463 LDA PHO,S
464 LDB A,X
465 STB CPTR,S
466
467 LDB PHONEW,S
468 LDB B,X
469 STB A,X
470
471 LDA PHONEW,S
472 LDB CPTR,S
473 STB A,X
474
475 LDX #TABBK Echange des bank
476 LDA PHO,S
477 LDB A,X
478 STB CPTR,S
479
480 LDB PHONEW,S
481 LDB B,X
482 STB A,X
483
484 LDA PHONEW,S
485 LDB CPTR,S
486 STB A,X
487
488 LDX #TABNOM Echange des noms
489 LDA PHO,S
490 LDB #8
491 MUL
492 LEAX B,X
493 LDY #TABNOM
494 LDA PHONEW,S
495 LDB #8
496 MUL
497 LEAY B,Y
498
499 LDU #8
500XGNM LDA ,X
501 LDB ,Y
502 STA ,Y+
503 STB ,X+
504 LEAU -1,U
505 CMPU #0
506 BNE XGNM ->
507
508 LDA PHO,S cas d'une des
509 LDB PHONEW,S
510* CMPA PHOTIR
511 BEQ EXGVI0 ->
512 EXG A,B
513* CMPA PHOTIR
514 BEQ EXGVI0 ->
515 BRA EXGVID ->
516EXGVI0 EQU *
517*XGVI0 STB PHOTIR
518
519EXGVID JSR FENDES
520 LDB PHO,S restaure vidéo
521 ADDB #200 des 2 photos
522 JSR FENCH
523 JSR FENIVD
524 LDB PHO,S
525 LDA #8
526 MUL
527 LDX #TABNOM
528 LEAX B,X
529 LDA #8
530EXGV0 LDB ,X+
531 JSR FENPUT
532 DECA
533 BNE EXGV0 ->
534
535 LDB PHONEW,S
536 ADDB #200
537 JSR FENCH
538 JSR FENIVD
539 LDB PHONEW,S
540 LDA #8
541 MUL
542 LDX #TABNOM
543 LEAX B,X
544 LDA #8
545EXGV1 LDB ,X+
546 JSR FENPUT
547 DECA
548 BNE EXGV1 ->
549
550 JSR FENCNT
551
552 LDA #$FF
553 STA PHO,S
554 LBRA EXECC3 ->
555
556SERD00 JSR FENDES raz autre sélect
557 LDB PHO,S
558 ADDB #200
559 JSR FENCH
560 JSR FENIVD
561 JSR FENCNT
562SERD0 LDB PHONEW,S
563 STB PHO,S
564 LBRA EXECC3 ->
565
566SERD1 JSR FENDES
567 LDA #$FF
568 STA PHO,S
569 LDB #$45
570 JSR FENCH
571 LDA VAL,X
572 CMPA #ON
573 BEQ SERD10 ->
574 JSR FENCNT
575 LBRA EXECC3 ->
576SERD10 LDB #OFF invalide mode
577 STB VAL,X échange
578 JSR FENIVD
579 LBRA EXECC1 ->
580
581*** Voir la photo sélectionnée
582XCVOIR EQU *
583 LDB PHO,S
584 LBMI EXECC3 ->
585 STB NUMPHO
586
587 LDB #2 retour niveau 1
588 JSR FENFER
589
590 JSR SELMOD
591
592 JSR DECPHO
593
594 JSR FENACT
595 LEAS 3,S
596 LDB #$FF
597 RTS ->>
598
599*** positionnement flag "echange"
600XCECHA EQU *
601 LDB PHO,S
602 LBPL EXECC3 ->
603
604 LDB #$45
605 JSR FENCH
606 LDA VAL,X
607 CMPA #OFF
608 LBEQ EXECC3 ->
609 JSR FENDES interdit si pas
610 LDB #$45 de sélection
611 JSR FENCH
612 LDB #OFF
613 STB VAL,X
614 JSR FENIVD
615 JSR FENCNT
616 LBRA EXECC3 ->
617
618*** Supprimer la photo sélectionnée
619XCSUP EQU *
620 LDA PHO,S
621 LBMI EXECC3 ->
622
623 JSR DELPHO
624 EXG A,B
625 ADDB #200
626 JSR FENCH
627 JSR FENFON
628 LBRA EXECC1 ->
629
630*** Animer la pellicule
631XCANIM EQU *
632 LDX #TABPHO verif pas tout
633 CLRA vierge
634 CLR CPTR,S
635BVERIR TST A,X
636 BEQ SVERIR ->
637 INC CPTR,S
638SVERIR INCA
639 CMPA MAXPHO
640 BLE BVERIR ->
641 LDA CPTR,S
642 CMPA #1
643 LBLE EXECC3 ->
644
645 LDB #255
646 LDX #BUF
647 JSR FENLCZ
648 LDD #0
649 LDY #100
650 JSR DECBIN
651 STD MEMTPO
652 STB CPTR,S memo
653
654 LDB #2 retour niveau 1
655 JSR FENFER
656
657 LDA NUMPHO
658 STA PHO,S
659 LBRA XXBAN1 ->
660BANIM JSR GETC test interrup.
661 TSTB
662 BNE BANSTO ->
663 JSR LPIN
664 BCC XBANIM ->
665BANSTO JSR FORCV0 page vid 0
666 JSR SELDEF mode vidéo def.
667 LDA #DBKPIL
668 STA BANKC
669 LDX #$A000 conf. interrup.
670 LDD #$0D11
671 JSR TBREAK
672 LBCS FBANIM ->
673 LDX #500
674
675XBANIM TST MEMTPO+1
676 BEQ XXBAN1 ->
677 LEAX -1,X
678 BNE BANIM ->
679 LDX #500
680 DEC CPTR,S
681 BNE BANIM ->
682 LDA MEMTPO+1
683 STA CPTR,S compteur en sec
684
685XXBAN1 LDX #TABPHO
686 LDA NUMPHO
687XXBANI TST A,X
688 BNE XXXBAN ->
689 INCA
690 CMPA MAXPHO
691 BLE XXBANI ->
692 CLRA
693 BRA XXBANI ->
694
695XXXBAN STA NUMPHO
696 STA PHO,S pour abandon
697 JSR DCCPHO
698
699 LDX #666
700
701 INC NUMPHO
702 LDA NUMPHO
703 CMPA MAXPHO
704 LBLE BANIM ->
705 CLR NUMPHO
706 LBRA BANIM ->
707
708FBANIM LDA PHO,S
709 STA NUMPHO
710 JSR SELMOD
711 JSR FENACT
712 LEAS 3,S
713 LDB #$FF
714 RTS ->>
715
716* Fin menu catalogue
717*---------------------------------------
718
719XCRET LDB #2 retour niveau 1
720 JSR FENFER car photo peut
721 JSR SELMOD etre supprimée
722 JSR DECPHO ou echangée
723 JSR FENACT
724 LDB #$FF
725 LEAS 3,S
726 RTS
727
728
729*=======================================
730* S/P menu déroulant de gestion fichier
731*=======================================
732
733MENFIC EQU *
734 LEAS -2,S
735MANO SET 0
736*---------------------------------------
737
738 LDX #FENFIC
739 LDD 3,X
740 JSR POPUP
741 JSR FENOUV
742
743EXECF0 LDB #ESC
744 JSR PUTC
745 LDB #$4D
746 JSR PUTC
747 LDB #BLANC
748 JSR FENCF
749 LDD #$0211 Disque courant
750 LDY #$0201
751 JSR FENLOF
752 LDB DKDRV
753 ADDB #$30
754 JSR PUTC
755 LDB #TRANSP
756 JSR FENCF
757 LDB #ESC
758 JSR PUTC
759 LDB #$4C
760 JSR PUTC
761
762EXECF1 JSR FENACT
763
764
765EXECF2 JSR FENPOP
766 TSTB
767 BEQ EXECF2 ->
768 CMPB #$50 P
769 LBEQ XFUNIT ->
770 CMPB #$49 I
771 LBEQ XFINIT ->
772 CMPB #$43 C
773 LBEQ XFCATA ->
774 CMPB #$52 R
775 LBEQ XFRENO ->
776 CMPB #$53 S
777 LBEQ XFSUPR ->
778 CMPB #$44 D
779 LBEQ XFDUPL ->
780 CMPB #$4C L
781 LBEQ XFLIRE ->
782 CMPB #$45 E
783 LBEQ XFECRI ->
784 CMPB #FF RAZ
785 LBEQ XFRET ->
786 LBRA EXECF2 ->
787
788*** Préciser unité
789XFUNIT EQU *
790 LBSR FENCH Inverser pouss.
791 LBSR FENIVD
792 LDX #FENVID sélection
793 LDA #11
794 LDB #24
795 LBSR POPUP
796 JSR FENOUV
797 LDA BKMANO manoeuvre
798 STA BANKC
799 LDX #ZONTRA
800 LDY #LGZTRA
801 LDU #$FFFF
802 LBSR DOSSEL
803 CLRB
804 LBSR FENFER
805 LDB #$50 Inverser pouss.
806 LBSR FENCH
807 LBSR FENIVD
808 LBRA EXECF0 ->
809
810*** Initialiser
811XFINIT EQU *
812 LBSR FENCH Inverser pouss.
813 LBSR FENIVD
814 LDX #FENVID sélection
815 LDA #15
816 LDB #24
817 LBSR POPUP
818 JSR FENOUV
819 LDA BKMANO manoeuvre
820 STA BANKC
821 LDX #ZONTRA
822 LDY #LGZTRA
823 LBSR DOSINI
824 CLRB
825 LBSR FENFER
826 LDB #$49 Inverser pouss.
827 LBSR FENCH
828 LBSR FENIVD
829 LBRA EXECF1 ->
830
831*** Catalogue
832XFCATA EQU *
833 LBSR FENCH Inverser pouss.
834 LBSR FENIVD
835 LDX #FENVID sélection
836 LDD #$0200
837 LBSR FENOUV
838 LDA BKMANO manoeuvre
839 STA BANKC
840 LDX #ZONTRA
841 LDY #LGZTRA
842 LBSR DOSCAT
843 CLRB
844 LBSR FENFER
845 LDB #$43 Inverser pouss.
846 LBSR FENCH
847 LBSR FENIVD
848 LBRA EXECF1 ->
849
850*** Renommer fichier
851XFRENO EQU *
852 LBSR FENCH Inverser pouss.
853 LBSR FENIVD
854 LDX #FENVID sélection
855 LDD #$0500
856 LBSR FENOUV
857 LDA BKMANO manoeuvre
858 STA BANKC
859 LDX #ZONTRA
860 LDY #LGZTRA
861 LBSR DOSREN
862 CLRB
863 LBSR FENFER
864 LDB #$52 Inverser pouss.
865 LBSR FENCH
866 LBSR FENIVD
867 LBRA EXECF1 ->
868
869*** Supprimer fichier
870XFSUPR EQU *
871 LBSR FENCH Inverser pouss.
872 LBSR FENIVD
873 LDX #FENVID sélection
874 LDD #$0500
875 LBSR FENOUV
876 LDA BKMANO manoeuvre
877 STA BANKC
878 LDX #ZONTRA
879 LDY #LGZTRA
880 LBSR DOSSUP
881 CLRB
882 LBSR FENFER
883 LDB #$53 Inverser pouss.
884 LBSR FENCH
885 LBSR FENIVD
886 LBRA EXECF1 ->
887
888*** Dupliquer fichier
889XFDUPL EQU *
890 LBSR FENCH Inverser pouss.
891 LBSR FENIVD
892 LDX #FENVID Sélection
893 LDD #$0500
894 LBSR FENOUV
895 LDA BKMANO manoeuvre
896 STA BANKC
897 LDX #ZONTRA
898 LDY #LGZTRA
899 LBSR DOSDUP
900 CLRB
901 LBSR FENFER
902 LDB #$44 Inverser pouss.
903 LBSR FENCH
904 LBSR FENIVD
905 LBRA EXECF1 ->
906
907*** Lire fichier
908XFLIRE EQU *
909 LBSR FENCH Inverser pouss.
910 LBSR FENIVD
911
912 LDB #$10
913 JSR FENCH
914 LDB VAL,X
915 CMPB #ON
916 LBEQ XFLALB ->
917
918* lecture unitaire
919
920 LDX #FILNAM filtre .MAP
921XLIRZ CLR ,X+
922 CMPX #FILNAM+8
923 BNE XLIRZ ->
924 LDD #$4D41
925 STD ,X++
926 LDA #$50
927 STA ,X+
928 LDX #FENVID sélection
929 LDD #$0500
930 LBSR FENOUV
931 LDA BKMANO manoeuvre
932 STA BANKC
933 LDX #ZONTRA
934 LDY #LGZTRA
935 LDU #MLIRE
936 LBSR DOSFIL
937 LBEQ XLIRZ9 RAZ ->
938 LBCS XLIRZ9 erreur ->
939
940 LDX #FILNAM fich cour.
941 LDY #DESCOU
942BMEMFC LDA ,X+
943 STA ,Y+
944 CMPX #FILNAM+8
945 BNE BMEMFC ->
946
947 LDA NUMPHO
948 STA OLDPHO
949 JSR PHOCH recherche disp.
950 LBCS XLIRZ9 pas ->
951 CLRA
952 JSR LECPHO lecture photo
953 LBCS XLIRZF ->
954
955* Nb: un FENFER de 2 niveau est executé
956* dans LECPHO !!!
957
958CPNOF JSR SELMOD
959 JSR FENACT
960 LEAS 2,S
961 LDB #$FF
962 RTS ->>
963
964* lecture générique
965
966XFLALB LDX #FILNAM filtre 00.MAP
967XLIRZG CLR ,X+
968 CMPX #FILNAM+6
969 BNE XLIRZG ->
970 LDD #$3030
971 STD ,X++
972 LDD #$4D41
973 STD ,X++
974 LDA #$50
975 STA ,X+
976 LDX #FENVID sélection
977 LDD #$0500
978 LBSR FENOUV
979 LDA BKMANO manoeuvre
980 STA BANKC
981 LDX #ZONTRA
982 LDY #LGZTRA
983 LDU #MLIRE
984 LBSR DOSFIL
985 LBEQ XLIRZ9 RAZ ->
986 LBCS XLIRZ9 erreur ->
987
988 LDX #FILNAM fich cour.
989 LDY #DESALB
990BMEMFG LDA ,X+
991 STA ,Y+
992 CMPX #FILNAM+8
993 BNE BMEMFG ->
994
995 CLR NUMALB
996
997 LDA NUMPHO 1ere
998 STA OLDPHO
999 JSR PHOCH recherche disp.
1000 LBCS XLIRZ9 Pas ->
1001 CLRA 1ére existe !
1002 JSR LECPHO lecture photo
1003 LBCS XLIRZF ->
1004 BRA CPNO3 ->
1005
1006CPNO2 LDA NUMPHO
1007 STA OLDPHO
1008 JSR PHOCH pas 1ere
1009 BCC CPNO2B ->
1010 LDA OLDPHO
1011 STA NUMPHO
1012 LBRA CPNOF ->
1013CPNO2B LDA #$FF suivante facult
1014 JSR LECPHO
1015 BCC CPNO3 ->
1016 LDA OLDPHO
1017 STA NUMPHO
1018 LBRA CPNOF ->
1019
1020CPNO3 JSR GETC test interrup.
1021 TSTB
1022 BNE CPNOTB ->
1023 JSR LPIN
1024 BCC CPNOCN ->
1025CPNOTB JSR SELDEF mode vidéo def.
1026 LDA #DBKPIL
1027 STA BANKC
1028 LDX #$A000 conf. interrup.
1029 LDD #$0D11
1030 JSR TBREAK
1031 PSHS CC
1032* LDA OLDPHO
1033* STA NUMPHO
1034 JSR SELMOD
1035 PULS CC
1036 LBCS CPNOF ->
1037
1038CPNOCN INC NUMALB
1039 CLRA composition nom
1040 LDB NUMALB fichier suivant
1041 LDX #FILNAM+6
1042 LDY #2
1043 JSR BINDCD
1044 LDA FILNAM+6
1045 CMPA #$20
1046 LBNE CPNO2 ->
1047 LDA #$30
1048 STA FILNAM+6
1049 LBRA CPNO2 ->
1050
1051XLIRZF LDA OLDPHO
1052 STA NUMPHO
1053XLIRZ9 CLRB
1054 LBSR FENFER
1055 LDB #$4C Inverser pouss.
1056 LBSR FENCH
1057 LBSR FENIVD
1058 LBRA EXECF1 ->
1059
1060*** Ecrire fichier
1061XFECRI EQU *
1062 JSR FENCH
1063 JSR FENIVD
1064
1065 LDB #$10
1066 JSR FENCH
1067 LDB VAL,X
1068 CMPB #ON
1069 LBNE XFECR1 ->
1070
1071* écriture générique
1072
1073 CLR NUMALB
1074 LDX #TABPHO verif pas tout
1075 CLRA vierge
1076BVERIE LDB A,X
1077 BNE ECAL11 ->
1078 INCA
1079 CMPA MAXPHO
1080 BLE BVERIE ->
1081 LDX #MPELVI
1082 JSR FENERR
1083 LBRA XFECRF ->
1084
1085ECAL11 STA PRMPHO
1086 LDX #FENVID Sélection
1087 LDD #$0505
1088 LBSR FENOUV
1089
1090ECAL13 LDY #FILNAM nom défaut
1091 LDX #DESALB
1092 LDA #6
1093ECAL19 LDB ,X+
1094 STB ,Y+
1095 DECA
1096 BNE ECAL19 ->
1097 LDD #$2323
1098 STD ,Y++
1099 LDD #$4D41
1100 STD ,Y++
1101 LDA #$50
1102 STA ,Y+
1103
1104 LDX #MCOMAL
1105 LDA #8
1106ECAL10 LDB ,X+
1107 STB ,Y+
1108 DECA
1109 BNE ECAL10 ->
1110
1111 LDA BKMANO saisir nom
1112 STA BANKC
1113 LDX #ZONTRA
1114 LDY #LGZTRA
1115 LDU #MVPEL
1116 LBSR DOSCZI
1117 LBEQ XFCRFF RAZ ->
1118 LBCS XFCRFF erreur ->
1119
1120 LDD FILNAM+6 vérifier numéro
1121 CMPD #$2323 libre
1122 BEQ ECAL12 ->
1123 LDX #MNUMP
1124 JSR FENERR
1125 LDD #0
1126 JSR FENLOF
1127 BRA ECAL13 ->
1128
1129ECAL12 LDD #$3030
1130 STD FILNAM+6 1er fichier
1131 LDD #$0309 vérifier non
1132 LBSR FENLOF existence (1er!)
1133 JSR DOSTST
1134 LBCS XFCRFF existe ->
1135
1136 LDB #2
1137 JSR FENFER
1138
1139 LDA NUMPHO
1140 STA OLDPHO
1141 LDA PRMPHO
1142 STA NUMPHO
1143
1144ECAL14 JSR GETC test interrup.
1145 TSTB
1146 BNE ECALTB ->
1147 JSR LPIN
1148 BCC ECALCN ->
1149ECALTB JSR SELDEF mode vidéo def.
1150 LDA #DBKPIL
1151 STA BANKC
1152 LDX #$A000 conf. interrup.
1153 LDD #$0D11
1154 JSR TBREAK
1155 LBCS ECAL2S ->
1156
1157ECALCN JSR DECPHO
1158
1159 JSR ECRPHO
1160 LBCS ECAL3S erreur ->
1161
1162 LDX #TABPHO
1163 LDA NUMPHO
1164 STA OLDPHO
1165ECAL15 INCA
1166 STA NUMPHO
1167 CMPA MAXPHO
1168 BGT ECAL2S ->
1169 TST A,X
1170 BEQ ECAL15 ->
1171 LDX #FILNAM+6 nouveau nom
1172 INC NUMALB
1173 CLRA
1174 LDB NUMALB
1175 LDY #2
1176 JSR BINDCD
1177 LDA #$4D
1178 STA FILNAM+8 (0 de fin!)
1179 LDA FILNAM+6
1180 CMPA #$20
1181 BNE ECAL14 ->
1182 LDA #$30
1183 STA FILNAM+6
1184 BRA ECAL14 ->
1185
1186ECAL2S LDA OLDPHO arret
1187 STA NUMPHO
1188 LDX #FILNAM+6 nouveau nom
1189 INC NUMALB pour purge suiv.
1190 CLRA
1191 LDB NUMALB
1192 LDY #2
1193 JSR BINDCD
1194 LDA #$4D
1195 STA FILNAM+8
1196 LDA FILNAM+6
1197 CMPA #$20
1198 BNE ECA22S ->
1199 LDA #$30
1200 STA FILNAM+6
1201ECA22S LDB #KILL
1202 JSR EXTRA
1203 TSTB
1204 BEQ ECAL2S ->
1205ECAL3S JSR SELMOD
1206 JSR FENACT
1207 LEAS 2,S
1208 LDB #$FF
1209 RTS ->>
1210
1211* écriture unitaire
1212
1213XFECR1 LDA NUMPHO
1214 LDX #TABPHO
1215 TST A,X
1216 BNE ECPH0 ->
1217 LDX #MPASPH pas de photo
1218 JSR FENERR courante !
1219 LBRA XFECRF ->
1220
1221ECPH0 LDX #FENVID Sélection
1222 LDD #$0505
1223 LBSR FENOUV
1224
1225 LDY #FILNAM nom défaut
1226 LDX #DESCOU
1227 LDA #8
1228ECAL0 LDB ,X+
1229 STB ,Y+
1230 DECA
1231 BNE ECAL0 ->
1232 LDD #$4D41
1233 STD ,Y++
1234 LDA #$50
1235 STA ,Y+
1236
1237 LDX #MCOMAL
1238 LDA #8
1239ECAL00 LDB ,X+
1240 STB ,Y+
1241 DECA
1242 BNE ECAL00 ->
1243
1244 LDA BKMANO
1245 STA BANKC
1246 LDX #ZONTRA
1247 LDY #LGZTRA
1248 LDU #MVFICH
1249 LBSR DOSCZI
1250 LBEQ XFCRFF RAZ ->
1251 LBCS XFCRFF erreur ->
1252
1253 LDD #$0309 vérifier non
1254 LBSR FENLOF existence
1255 JSR DOSTST
1256 LBCS XFCRFF existe ->
1257
1258 LDB #2
1259 JSR FENFER
1260
1261 JSR SELMOD
1262
1263 JSR ECRPHO
1264
1265 JSR FENACT
1266 LEAS 2,S
1267 LDB #$FF
1268 RTS ->>
1269
1270XFCRFF CLRB
1271 JSR FENFER
1272
1273XFECRF LDB #$45
1274 JSR FENCH
1275 JSR FENIVD
1276 LBRA EXECF1 ->
1277
1278* Fin menu fichier
1279*---------------------------------------
1280
1281XFRET CLRB
1282 JSR FENFER
1283 JSR FENACT
1284 CLRB
1285 LEAS 2,S
1286 RTS
1287
1288*=======================================
1289* S/P mode d'emploi
1290*=======================================
1291
1292 FDB 0
1293TABHLP FDB HLP1
1294 FDB HLP2
1295 FDB HLP3
1296 FDB HLP4
1297 FDB HLP5
1298 FDB HLP6
1299 FDB HLP7
1300 FDB 0
1301
1302EMPPHO EQU *
1303 LEAS -2,S
1304PTHLP SET 0
1305*---------------------------------------
1306
1307 LDX #FENHLP
1308 LDD #$0000
1309 JSR FENOUV
1310
1311 LDD #TABHLP
1312 STD PTHLP,S
1313
1314EXECM0 LDD #$0301
1315 LDY #$1326
1316 JSR FENLOF
1317 JSR FENFON
1318
1319 LDD #$0100
1320 LDY #$1226
1321 JSR FENLOR
1322 LDX [PTHLP,S]
1323 JSR FENTXT
1324
1325 LDX [PTHLP,S]
1326 CMPX #HLP5
1327 BNE EXECM1 ->
1328 LDX #MIGDIN
1329 LDY #BUF
1330BCOPMG LDA ,X+
1331 STA ,Y+
1332 CMPX #FMIGDI
1333 BNE BCOPMG ->
1334
1335 LDX #BUF
1336 LDB #MIG
1337 JSR EXTRA
1338
1339EXECM1 JSR FENACT
1340
1341EXECM2 JSR FEN
1342 CMPB #FF
1343 LBEQ XMRET ->
1344 CMPB #RC
1345 LBEQ XMRET ->
1346 CMPB #LF
1347 LBEQ HLPSUI ->
1348 CMPB #VT
1349 LBEQ HLPPRE ->
1350 BRA EXECM2 ->
1351
1352*** passage à la page help suivante
1353HLPSUI EQU *
1354 LDX PTHLP,S
1355 LEAX 2,X
1356 LDD ,X
1357 CMPD #0
1358 BEQ PBSHLP ->
1359 STX PTHLP,S
1360 JSR FENDES
1361 LBRA EXECM0 ->
1362PBSHLP LDB #7
1363 JSR FENPUT
1364 LBRA EXECM2
1365
1366*** passage à la page help précédente
1367HLPPRE EQU *
1368 LDX PTHLP,S
1369 LEAX -2,X
1370 LDD ,X
1371 CMPD #0
1372 BEQ PBPHLP ->
1373 STX PTHLP,S
1374 JSR FENDES
1375 LBRA EXECM0 ->
1376PBPHLP LDB #7
1377 JSR FENPUT
1378 LBRA EXECM2 ->
1379
1380* Fin menu mode d'emploi
1381*---------------------------------------
1382
1383XMRET CLRB
1384 JSR FENFER
1385 JSR FENACT
1386 CLRB
1387 LEAS 2,S
1388 RTS
Note: See TracBrowser for help on using the repository browser.