source: thomson/code/3rdparty/sources3-lambinet/unknown/DIFFUSIO.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.5 KB
Line 
1****** 10/10/89 *******
2****** P.I.O. *******
3****** V 1.02 *******
4****** EQUATES ******
5
6T EQU $8000
7DIXIEM EQU T
8SECOND EQU T+1
9MINUTE EQU T+2
10HEURE EQU T+3
11JOUR EQU T+4
12MOIS EQU T+5
13ANNEE EQU T+6
14AFTIME EQU T+7
15TEXT EQU T+8
16DEBTXT EQU T+10
17PTEXT EQU T+12
18QUART EQU T+14
19PTCAR EQU T+15
20
21SAVS1 EQU T+19
22SAVS2 EQU T+21
23LINAFF EQU T+23
24ZONE EQU T+24
25GECAR EQU T+26
26VITES EQU T+28
27FLVIT EQU T+29
28COMPT EQU T+30
29APPRO EQU T+31
30SAVCAR EQU T+32
31TABCOU EQU T+34
32TABCO0 EQU T+36
33TABCOD EQU T+244
34NBRBOU EQU T+372
35TABBOU EQU T+373 20 boucles maxi
36TABSPG EQU T+433 50 sprog maxi
37TURBO0 EQU T+533
38TURBO1 EQU TURBO0+$7D0
39MEMSC0 EQU TURBO1+$7D0
40MEMSC1 EQU MEMSC0+$2A0
41PROG EQU MEMSC1+$2A0
42
43TIMER EQU $E7C6
44
45****** INITIALISATION ******
46
47 ORG PROG
48G PSHS U,Y,X,DP,B,A,CC
49 LDB #$14
50 JSR $E803
51 LDA $6019
52 ORA #2
53 STA $6019
54 LDB #$FA
55 JSR $E806
56 LDD #$FB04
57 STA $E7CC
58 STB $E7CE
59 ORCC #$50
60 LDX #$8000
61 LDU #0
62CLEAR STU ,X++
63 CMPX #$8400
64 BNE CLEAR
65 STS SAVS1
66 LDA #3
67 STA APPRO
68 STA QUART
69 LDA #$24
70 STA $E7E6
71 LDX #$0004
72 STX DEBTXT
73 STX PTEXT
74 LDX #$0200
75 STX VITES
76 LDX #$9800
77 STX GECAR
78 LDA #8
79 STA $E7E5
80 LDX #TABCO0
81 STX TABCOU
82 LDD #$4080
83C0 STA 64,X
84 STB 48,X
85 STB 32,X
86 STA 16,X
87 STB ,X+
88 ADDA #8
89 INCB
90 CMPB #$88
91 BNE C0
92 CLRA
93 CLRB
94C1 STA 64,X
95 STB 48,X
96 STB 32,X
97 STA 16,X
98 STB ,X+
99 ADDA #8
100 INCB
101 CMPB #$8
102 BNE C1
103 LDX #TABCOD
104 CLR COMPT
105C2 LDA COMPT
106 CMPA #128
107 BNE C23
108 LEAX -256,X
109C23 CLRB
110 LSRA
111 BCC C3
112 ORB #8
113C3 LSRA
114 BCC C4
115 ORB #$10
116C4 LSRA
117 BCC C5
118 ORB #$20
119C5 LSRA
120 BCC C6
121 ORB #1
122C6 LSRA
123 BCC C7
124 ORB #2
125C7 LSRA
126 BCC C8
127 ORB #4
128C8 LSRA
129 BCC C9
130 ORB #$80
131C9 LSRA
132 BCC C10
133 ORB #$40
134C10 STB ,X+
135 INC COMPT
136 BNE C2
137 LDX #TURBO0
138 BSR H10
139 LDX #TURBO1
140 BSR H10
141 LDX #TURBO1+6
142 LDU #MEMSC1+1
143 STU ,X
144 LDA #0
145 STA LINAFF
146 LBRA INTER
147
148H10 LEAX 7,X
149 LDY #TURBO-1
150 LDA #16
151I0 LDU ,Y++
152 LDB #64
153I1 STU ,X
154 LEAX 31,X
155 DECB
156 BNE I1
157 LEAX -1982,X
158 DECA
159 BNE I0
160 LEAX -39,X
161 LDD #$10FF
162 LDU #SAVS2
163 STD ,X++
164 STU ,X++
165 LDB #$CE
166 LDU #MEMSC0+1
167 STD ,X++
168 STU ,X
169 LEAX 1986,X
170 LDU #$8400
171 STU ,X++
172 LDU #SAVS2
173 LDB #$FE
174 STD ,X++
175 STU ,X++
176 LDA #$39
177 STA ,X
178 RTS
179
180INITOU STB LINAFF
181 BSR INIZON
182 BSR INICOU
183 BSR INIFOR
184 LBSR INIMS0
185 LBSR INIMS1
186 LBRA INITUR
187
188TURBO PULS CC,A,B,DP,X,Y,U
189 LEAS -1,S
190 PSHS U,Y,X,DP,B,A,CC
191 LEAS -$5AC6,S
192 PSHS U,Y,X,DP,B,A,CC
193 LEAS 50,S
194 PSHS U,Y,X,DP,B,A,CC
195 LEAS 50,S
196 PSHS U,Y,X,DP,B,A,CC
197 LEAS 50,S
198 PSHS U,Y,X,DP,B,A,CC
199 LEAS $5A63,S
200
201INIZON LDA LINAFF Calcule la fin
202 CMPA #34 de la zone
203 LBHI FINIZO
204 LDB #160
205 MUL
206 ADDD #$4A00
207 STD ZONE
208FINIZO RTS
209
210INICOU LDU ZONE Initial. des
211 BSR RAMB couleurs
212 LDX #$C0C0
213 LDY #$C0C0
214 LDD #$C000
215I3 PSHU Y,X,A
216 PSHU Y,X,A
217 DECB
218 BNE I3
219 RTS
220
221INIFOR LDU ZONE Efface la zone
222 LDA $E7C3 par initial. de
223 ORA #1 la forme à $F0
224 STA $E7C3
225 LDX #$F0F0
226 LDY #$F0F0
227 LDD #$F000
228I2 PSHU Y,X,A
229 PSHU Y,X,A
230 DECB
231 BNE I2
232RAMB LDA $E7C3
233 ANDA #$FE
234 STA $E7C3
235 RTS
236
237INIMS0 LDU #MEMSC0+672
238 LDX TABCOU
239 LDA ,X
240 ADDA 16,X
241 TFR A,B
242 TFR D,X
243 TFR D,Y
244 LDB #168
245PI0 PSHU X,Y
246 DECB
247 BNE PI0
248 RTS
249
250INIMS1 LDU #MEMSC1+672
251 LDX TABCOU
252 LDA 16,X
253 ADDA 32,X
254 TFR A,B
255 TFR D,X
256 TFR D,Y
257 LDB #168
258PI1 PSHU X,Y
259 DECB
260 BNE PI1
261 RTS
262
263INITUR LDU ZONE
264 LEAU -$9F6-MEMSC0,U
265 LDY #TURBO0+6
266 TFR U,D
267 NEGA
268 COMB
269 TFR D,X
270 LEAX -$162,X
271 LDA #16
272I4 LDB #4
273I5 LEAY 10,Y
274 STU ,Y
275 LEAY 21,Y
276 STX ,Y
277 DECB
278 BNE I5
279 LEAX 2,X
280 STX ,Y
281 LEAU $76,U
282 LEAX -$78,X
283 DECA
284 BNE I4
285 LDU ZONE
286 LEAU -$9F6-MEMSC1,U
287 LDY #TURBO1+6
288 TFR U,D
289 NEGA
290 COMB
291 TFR D,X
292 LEAX -$162,X
293 LDA #16
294I6 LDB #4
295I7 LEAY 10,Y
296 STU ,Y
297 LEAY 21,Y
298 STX ,Y
299 DECB
300 BNE I7
301 LEAX 2,X
302 STX ,Y
303 LEAU $76,U
304 LEAX -$78,X
305 DECA
306 BNE I6
307 RTS
308
309MEMZON LBSR INIZON
310 LDU #MEMSC0+$29E
311 LDY ZONE
312 LDA #16
313MZO0 LDB #20
314MZO1 LDX ,--Y
315 PSHU X
316 DECB
317 BNE MZO1
318 LEAY -$78,Y
319 LEAU -2,U
320 DECA
321 BNE MZO0
322 LBRA INITUR
323
324ATTRAM LDA #$31
325 STA $E7C1
326ATTRA0 LDA $E7E7
327 BPL ATTRA0
328TRAME LDA $E7E7
329 BMI TRAME
330 LDA #$30
331 STA $E7C1
332 RTS
333
334INTER BSR ATTRAM
335 LDX #$30D4
336 STX TIMER
337 BSR QUICK
338UN LDX TIMER
339 CMPX #$2710
340 BHI UN
341 BSR QUICK
342DEUX LDX TIMER
343 CMPX #$1D4C
344 BHI DEUX
345 BSR QUICK
346TROIS LDX TIMER
347 CMPX #$1388
348 BHI TROIS
349 BSR QUICK
350QUATRE LDX TIMER
351 CMPX #$09C4
352 BHI QUATRE
353 BSR QUICK
354 BRA INTER
355
356QUICK LDA $E7C3
357 BITA #8
358 LBEQ FINAL
359 LDA VITES
360 CMPA #1
361 BNE V023
362 COM FLVIT
363 LBEQ TURBO0
364V023 LDA QUART
365 CMPA APPRO
366 BLO ANCCAR
367 LDX PTEXT
368 LDA ,X+
369 STX PTEXT
370 CMPA #$20
371 LBLO CARSPC
372 STA SAVCAR
373 CLR QUART
374 LDB #64
375 MUL
376 ADDD GECAR
377 BRA AFFICH
378ANCCAR INCA
379 STA QUART
380 CMPA #4
381 BLO PASAPP
382 LDD #$800
383 ADDD GECAR
384 BRA AFFICH
385PASAPP LDD PTCAR
386 ADDD #16
387AFFICH STD PTCAR
388 LDA VITES
389 BEQ GLIMEM
390 BSR MODMEM
391 LDA VITES
392 CMPA #1
393 BNE V23
394 LBRA TURBO1
395V23 LBSR TURBO0
396 LDA VITES
397 CMPA #2
398 BLS SV
399 INC QUART
400 LDD PTCAR
401 ADDD #16
402 STD PTCAR
403GLIMEM BSR MODMEM
404 LDU #MEMSC0+1
405 LDA #16
406GL0 LDB #8
407GL1 PULU X,Y,DP
408 LEAU -1,U
409 PSHU X,Y,DP
410 LEAU 6,U
411 DECB
412 BNE GL1
413 LEAU 2,U
414 DECA
415 BNE GL0
416SV RTS
417MODMEM LDX PTCAR
418 LDY TABCOU
419 LDU #MEMSC0+41
420B2 LDA ,U
421 ANDA #$0F
422 ORA #$10
423 LDB A,Y
424 LDA ,X
425 STA ,U
426 LSRA
427 LSRA
428 LSRA
429 LSRA
430 ADDB A,Y
431 STB 671,U
432 ORA #$10
433 LDB A,Y
434 LDA ,X+
435 ANDA #$0F
436 ADDB A,Y
437 STB -1,U
438 LEAU 42,U
439 CMPU #MEMSC1
440 BLO B2
441 RTS
442
443CARSPC ORCC #$50
444 COM FLVIT
445 LDU #DISPAT
446 LSLA
447 JMP [A,U]
448
449DISPAT FDB NUL,APP,BOU,COU,DEB,EFF
450 FDB FIN,GEC,HEU,INV,JOU,KLI
451 FDB LAR,MIX,NUL,ORI,PAU,NUL
452 FDB REP,SPG,TRA,UTI,VIT,NUL
453 FDB NUL,NUL,NUL,NUL,NUL,NUL
454 FDB NUL,NUL
455
456INPUT LDB ,X+
457 CMPB #10
458 LBHI QUICK
459 LDA #10
460 MUL
461 TFR D,U
462 LDB ,X+
463 CMPB #10
464 LBHI QUICK
465 LEAU B,U
466 TFR U,D
467 STX PTEXT
468 RTS
469
470NUL RTS
471
472APP LDA ,X+
473 STX PTEXT
474 CMPA #3
475 BHI NUL
476 ADDA #3
477 STA APPRO
478 LBRA QUICK
479BOU LDA NBRBOU
480 INCA
481 STA NBRBOU
482 CMPA #16
483 BLS BOUD
484BOUR LDD ,X+
485 CMPD #$0602
486 BNE BOUR
487 STD PTEXT
488 DEC NBRBOU
489 BRA NUL
490BOUD LDY #TABBOU
491 LEAY A,Y
492 LEAY A,Y
493 LEAY A,Y
494 BSR INPUT
495 STB ,Y+
496 BEQ BOUR
497 STX ,Y
498 LBRA QUICK
499COU LDA ,X+
500 CMPA #1
501 BNE COUI
502 BSR CINPUT
503 BRA COUA
504CINPUT LDD ,X++
505 STX PTEXT
506 CMPA #15
507 LBHI QUICK
508 CMPB #15
509 LBHI QUICK
510 RTS
511COUA PSHS A,B
512 LDX #TABCO0
513 LEAY 48,X
514 LDB B,Y
515 STB A,X
516 ORA #$20
517 STB A,X
518 PULS B,A
519 ORB #$10
520 LDB B,Y
521 ORA #$10
522 STB A,X
523 LBRA QUICK
524COUI CMPA #9
525 BNE COUP
526 BSR CINPUT
527 PSHS A,B
528 LDX #TABCO0
529 LDA B,X
530 LDB ,S
531 LDB B,X
532 PSHS B
533 LDB 1,S
534 STA B,X
535 PULS B
536 LDA 1,S
537 STB A,X
538 LEAX 16,X
539 LDB 1,S
540 LDA B,X
541 LDB ,S
542 LDB B,X
543 PSHS B
544 LDB 1,S
545 STA B,X
546 PULS B
547 LDA 1,S
548 STB A,X
549 LDX #TABCO0
550 PULS A,B
551 LEAX A,X
552 LDA ,X
553 STA 32,X
554 LDX #TABCO0
555 LEAX B,X
556 LDA ,X
557 STA 32,X
558 LBRA QUICK
559COUP CMPA #16
560 BNE COUR
561 CLRB
562COUP0 LDU #TABCO0
563 LDA ,X+
564 CMPA #15
565 BHI COUP1
566 LEAY A,U
567 LEAU B,U
568 LDA 48,Y
569 STA ,U
570 STA 32,U
571 LDA 64,Y
572 STA 16,U
573COUP1 INCB
574 CMPB #16
575 BNE COUP0
576 STX PTEXT
577 LBRA QUICK
578COUR CMPA #18
579 BNE COUT
580 STX PTEXT
581 LDB #8
582 LDX #TABCO0
583BCOUR LDU 64,X
584 STU 16,X
585 LDU 48,X
586 STU 32,X
587 STU ,X++
588 DECB
589 BNE BCOUR
590 LBRA QUICK
591COUT CMPA #20
592 BNE SCOUT
593 LDA ,X+
594 STX PTEXT
595 CMPA #15
596 BHI SCOUT
597 CMPA #8
598 BLO ADDCOU
599 ADDA #$18
600ADDCOU ADDA #$60
601 LDB #$1B
602 JSR $E803
603 TFR A,B
604 JSR $E803
605 LBSR RAMB
606SCOUT LBRA QUICK
607
608DEB LDX DEBTXT
609 STX PTEXT
610 LBRA QUICK
611
612EFF LDU #$5F40
613 LDA $E7C3
614 ORA #1
615 STA $E7C3
616 LDA #$F0
617 TFR A,DP
618 LDX #$F0F0
619 LDY #$F0F0
620 LDA #10
621EFFT0 LDB #160
622EFFT1 PSHU DP,X,Y
623 DECB
624 BNE EFFT1
625 DECA
626 BNE EFFT0
627 LBSR RAMB
628 LDU #$5F40
629 LDX TABCOU
630 LDA ,X
631 ORA 16,X
632 TFR A,B
633 TFR A,DP
634 TFR D,X
635 TFR D,Y
636 LDA #10
637EFFT2 LDB #160
638EFFT3 PSHU DP,X,Y
639 DECB
640 BNE EFFT3
641 DECA
642 BNE EFFT2
643 LBRA ATTKLI
644
645FIN LDA ,X+
646 CMPA #2
647 LBHI QUICK
648 BEQ FINB
649FINAL CLR $E7E6
650 LDD #$F71F
651 STA $E7CC
652 STB $E7CE
653 LDA #$31
654 STA $E7C1
655 LDS SAVS1
656K PULS CC,A,B,DP,X,Y,U,PC
657FINB CMPA #2
658 LBNE QUICK
659 LDA NBRBOU
660 LDU #TABBOU
661 LEAU A,U
662 LEAU A,U
663 LEAU A,U
664 DEC ,U+
665 BEQ FINC
666 LDX ,U
667 STX PTEXT
668 LBRA QUICK
669FINC DEC NBRBOU
670 STX PTEXT
671 BRA FINC-3
672
673GEC LDA ,X+
674 STX PTEXT
675 CMPA #3
676 LBHI QUICK
677 LDB #8
678 BITA #2
679 BEQ GEC0
680 LDB #9
681GEC0 STB $E7E5
682 BITA #1
683 BNE GEC1
684 LDX #$9800
685 BRA GEC1+3
686GEC1 LDX #$B800
687 STX GECAR
688 LBRA QUICK
689
690INV LDX #TABCO0
691 LDD ,X
692 EXG A,B
693 STD ,X
694 STD 32,X
695 LDD 16,X
696 EXG A,B
697 STD 16,X
698 LBRA QUICK
699
700KLI LBSR INPUT
701 STB COMPT
702 LEAS -1,S
703BC LDU ZONE
704 LDX TABCOU
705 LDA ,X
706 ADDA 16,X
707 TFR A,B
708 TFR D,X
709 TFR D,Y
710 LDB #$A0
711BC0 PSHU X,Y
712 PSHU X,Y
713 PSHU X,Y
714 PSHU X,Y
715 DECB
716 BNE BC0
717 LDX #$6000
718BC1 LEAX -1,X
719 BNE BC1
720 LDY ZONE
721 LEAY -$A00+5,Y
722 LDU #MEMSC0
723 LDA #8
724 STA ,S
725BC2 PULU DP,A,B,X
726 EXG Y,U
727 PSHU X,B,A,DP
728 LEAU 45,U
729 PSHU X,B,A,DP
730 LEAU 45,U
731 PSHU X,B,A,DP
732 LEAU 45,U
733 PSHU X,B,A,DP
734 LEAU -$6E,U
735 EXG Y,U
736 DEC ,S
737 BNE BC2
738 LDA #8
739 STA ,S
740 LEAU 2,U
741 LEAY $78,Y
742 CMPY ZONE
743 BLO BC2
744 LDX #$C000
745BC3 LEAX -1,X
746 BNE BC3
747 DEC COMPT
748 BNE BC
749 LEAS 1,S
750
751ATTKLI LDX TIMER
752 CMPX #$9FF
753 BLO ATTKLI
754 RTS
755
756ORI LBSR INPUT
757 CMPB #34
758 LBHI QUICK
759 LBSR INITOU
760 LBRA MEMZON
761
762PAU LBSR INPUT
763 LSLB
764TEMPO LDX #0
765 LEAX -1,X
766 BNE TEMPO+3
767 DECB
768 BNE TEMPO
769 LBRA ATTKLI
770
771TRA LBSR INPUT
772 CMPB #34
773 LBHI QUICK
774 SUBB LINAFF
775 LBEQ QUICK
776 BMI MON0
777 STB COMPT
778DES1 INC LINAFF
779 LBSR INIZON
780 LBSR ATTRAM
781 LDU ZONE
782 LEAU -$A5,U
783 LDA #16
784DES2 LDB #8
785DES3 PULU X,Y,DP
786 LEAU $28,U
787 PSHU X,Y,DP
788 LEAU $2D,U
789 PSHU X,Y,DP
790 LEAU $2D,U
791 PSHU X,Y,DP
792 LEAU $2D,U
793 PSHU X,Y,DP
794 LEAU -$A5,U
795 DECB
796 BNE DES3
797 LEAU -$78,U
798 DECA
799 BNE DES2
800 DEC COMPT
801 BNE DES1
802 BRA TRAS
803MON0 NEGB
804 STB COMPT
805MON1 DEC LINAFF
806 LBSR INIZON
807 LDU ZONE
808 LEAU -$960,U
809 LDA #16
810MON2 LDB #8
811MON3 PULU X,Y,DP
812 LEAU -$28,U
813 PSHU X,Y,DP
814 LEAU -$23,U
815 PSHU X,Y,DP
816 LEAU -$23,U
817 PSHU X,Y,DP
818 LEAU -$23,U
819 PSHU X,Y,DP
820 LEAU $A5,U
821 DECB
822 BNE MON3
823 LEAU $78,U
824 DECA
825 BNE MON2
826 LBSR ATTRAM
827 DEC COMPT
828 BNE MON1
829
830TRAS LBSR MEMZON
831 LBRA ATTKLI
832
833VIT LDA ,X+
834 STX PTEXT
835 CMPA #3
836 LBHI QUICK
837 STA VITES
838 CMPA #2
839 LBEQ QUICK
840 CLR FLVIT
841 LDU #TABCOD
842 LDX #MEMSC0
843B3 LDB #39
844B4 LDA ,X+
845 ANDA #$87
846 LEAY A,U
847 LDA ,X
848 ANDA #$78
849 LDA A,Y
850 STA $2A0,X
851 DECB
852 BNE B4
853 LEAX 3,X
854 CMPX #MEMSC1
855 BLO B3
856 LBRA QUICK
857
858
859HEU RTS
860JOU RTS
861LAR RTS
862MIX RTS
863REP RTS
864SPG RTS
865UTI RTS
866
867 END
Note: See TracBrowser for help on using the repository browser.