1 | ****************************************
|
---|
2 | * Scrolling segment par segment. *
|
---|
3 | * D'une taille conséquente. *
|
---|
4 | * *
|
---|
5 | * Je pourrais gagner un peu de temps *
|
---|
6 | * CPU en faisant du code généré, mais *
|
---|
7 | * quoi ! On n'est pas des bêtes... *
|
---|
8 | ****************************************
|
---|
9 |
|
---|
10 | SIZE EQU HAUT*LONG/4
|
---|
11 | FONTE EQU $0000-SIZE*2
|
---|
12 | RAMA EQU $DF18-HAUT*40
|
---|
13 | HAUT EQU 112 multiple de 8 !
|
---|
14 | LONG EQU 5 segments par CHR$
|
---|
15 | DIR EQU $9F } début buffer
|
---|
16 | Z EQU 0 } à accès direct
|
---|
17 | CARTOU EQU 15 page $0000-$3FFF
|
---|
18 | ZZ EQU DIR*256+Z
|
---|
19 |
|
---|
20 | ORG DIR*256+Z
|
---|
21 | FDB 1,TEXTE,FONTE
|
---|
22 |
|
---|
23 | ORG $9800
|
---|
24 | G ORCC #80
|
---|
25 | LDD $E7E5
|
---|
26 | PSHS D,DP
|
---|
27 | LDA #DIR
|
---|
28 | TFR A,DP
|
---|
29 | STS RDP+2
|
---|
30 | CLR $E7E5
|
---|
31 | CLR $E7C5
|
---|
32 |
|
---|
33 | SYNCRO TST $E7E7
|
---|
34 | BPL *-3
|
---|
35 | TST $E7E7
|
---|
36 | BMI *-3
|
---|
37 |
|
---|
38 | LDD #8
|
---|
39 | STA $E7DB pour voir le temps
|
---|
40 | STB $E7DA CPU qu'il reste.
|
---|
41 | STA $E7DA
|
---|
42 |
|
---|
43 | LDX #RAMA+160
|
---|
44 | LDU <Z+4
|
---|
45 | LDA #HAUT/8
|
---|
46 | STA <Z
|
---|
47 | COPYA PULU D
|
---|
48 | STA -120,X
|
---|
49 | STB -80,X
|
---|
50 | PULU D
|
---|
51 | STA -40,X
|
---|
52 | STB ,X
|
---|
53 | PULU D
|
---|
54 | STA 40,X
|
---|
55 | STB 80,X
|
---|
56 | PULU D
|
---|
57 | STA 120,X
|
---|
58 | STB 160,X
|
---|
59 | LEAX 280,X
|
---|
60 | DEC <Z
|
---|
61 | BNE COPYA
|
---|
62 | PULU D
|
---|
63 | STU <Z+4
|
---|
64 |
|
---|
65 | TFR DP,A
|
---|
66 | STA <Z+6
|
---|
67 | LDA #HAUT/2
|
---|
68 | STA ZZ
|
---|
69 | LDU #RAMA+1
|
---|
70 | LDS #RAMA+8
|
---|
71 | SCROLA PULU CC,A,B,DP,X,Y
|
---|
72 | PSHS Y,X,DP,B,A,CC
|
---|
73 | LEAS 16,S
|
---|
74 | FDB $373F,$343F,$32E8,$1037
|
---|
75 | FDB $3F34,$3F32,$E810
|
---|
76 | FDB $373F,$343F,$32E8,$1037
|
---|
77 | FDB $3F34,$3F32,$E810
|
---|
78 | FDB $373F,$343F,$32E8,$1037
|
---|
79 | FDB $3F34,$3F32,$E810
|
---|
80 | FDB $373F,$343F,$32E8,$1037
|
---|
81 | FDB $3F34,$3F32,$E810
|
---|
82 | FDB $373F,$343F,$32E8
|
---|
83 | FCB 16
|
---|
84 | DEC ZZ
|
---|
85 | BNE SCROLA
|
---|
86 | CLR RAMA+HAUT*40
|
---|
87 |
|
---|
88 | LDA ZZ+6
|
---|
89 | TFR A,DP
|
---|
90 |
|
---|
91 | LDD #0
|
---|
92 | STA $E7DB pour voir le temps
|
---|
93 | STB $E7DA CPU qu'il reste.
|
---|
94 | STA $E7DA
|
---|
95 |
|
---|
96 | TST $E7C8
|
---|
97 | BNE RDP
|
---|
98 | DEC <Z+1
|
---|
99 | LBNE SYNCRO
|
---|
100 |
|
---|
101 | LDA #LONG
|
---|
102 | STA <Z+1
|
---|
103 | LDX <Z+2 lettre suivante
|
---|
104 | LDA ,X+
|
---|
105 | BNE *+7
|
---|
106 | LDX #TEXTE
|
---|
107 | LDA ,X+
|
---|
108 | LDU #FONTE
|
---|
109 | LDB #SIZE
|
---|
110 | ASLA
|
---|
111 | MUL
|
---|
112 | LEAU D,U
|
---|
113 | STU <Z+4
|
---|
114 | STX <Z+2
|
---|
115 | JMP SYNCRO
|
---|
116 |
|
---|
117 | RDP LDS #0
|
---|
118 | PULS D,DP
|
---|
119 | STD $E7E5
|
---|
120 | SWI
|
---|
121 | TEXTE FCB 1,2,3,4,5,6,7,8,9,0
|
---|
122 |
|
---|
123 | END
|
---|