1 | ****************************************
|
---|
2 | *Conversion d'une image CGA en BITMAP-4*
|
---|
3 | ****************************************
|
---|
4 | ********* (c) Doctor Lô 1991 ***********
|
---|
5 |
|
---|
6 |
|
---|
7 | BANK EQU 15 où est l'image CGA
|
---|
8 | DIR EQU $9E accès direct au
|
---|
9 | Z EQU $FD buffer "variables"
|
---|
10 |
|
---|
11 | ORG $9E00
|
---|
12 | G ORCC #80
|
---|
13 | PSHS DP
|
---|
14 | LDA #DIR
|
---|
15 | TFR A,DP
|
---|
16 | LDA #33 mode BITMAP4 plans
|
---|
17 | STA $E7DC
|
---|
18 |
|
---|
19 | LDU #$A000 source CGA
|
---|
20 | LDX #$A000 } destination TO
|
---|
21 | LDY #$C000 }
|
---|
22 |
|
---|
23 |
|
---|
24 | LDA #40 une ligne = 40 o.
|
---|
25 | STA <Z+2 (sur chaque plan)
|
---|
26 | LIGNE CLR <Z }
|
---|
27 | CLR <Z+1 } pour les calculs
|
---|
28 |
|
---|
29 | LDD #$8080
|
---|
30 | BITA ,U premier octet CGA
|
---|
31 | BEQ *+6 =4 bits forts du
|
---|
32 | ORB <Z+1 premier octet de
|
---|
33 | STB <Z+1 chaque bitplan TO.
|
---|
34 | LDD #$4080
|
---|
35 | BITA ,U
|
---|
36 | BEQ *+6
|
---|
37 | ORB <Z
|
---|
38 | STB <Z
|
---|
39 | LDD #$2040
|
---|
40 | BITA ,U
|
---|
41 | BEQ *+6
|
---|
42 | ORB <Z+1
|
---|
43 | STB <Z+1
|
---|
44 | LDD #$1040
|
---|
45 | BITA ,U
|
---|
46 | BEQ *+6
|
---|
47 | ORB <Z
|
---|
48 | STB <Z
|
---|
49 | LDD #$0820
|
---|
50 | BITA ,U
|
---|
51 | BEQ *+6
|
---|
52 | ORB <Z+1
|
---|
53 | STB <Z+1
|
---|
54 | LDD #$0420
|
---|
55 | BITA ,U
|
---|
56 | BEQ *+6
|
---|
57 | ORB <Z
|
---|
58 | STB <Z
|
---|
59 | LDD #$0210
|
---|
60 | BITA ,U
|
---|
61 | BEQ *+6
|
---|
62 | ORB <Z+1
|
---|
63 | STB <Z+1
|
---|
64 | LDD #$0110
|
---|
65 | BITA ,U+
|
---|
66 | BEQ *+6
|
---|
67 | ORB <Z
|
---|
68 | STB <Z
|
---|
69 |
|
---|
70 | LDD #$8008
|
---|
71 | BITA ,U deuxième octet CGA
|
---|
72 | BEQ *+6 =4 bits faibles du
|
---|
73 | ORB <Z+1 premier octet de
|
---|
74 | STB <Z+1 chaque bitplan TO.
|
---|
75 | LDD #$4008
|
---|
76 | BITA ,U
|
---|
77 | BEQ *+6
|
---|
78 | ORB <Z
|
---|
79 | STB <Z
|
---|
80 | LDD #$2004
|
---|
81 | BITA ,U
|
---|
82 | BEQ *+6
|
---|
83 | ORB <Z+1
|
---|
84 | STB <Z+1
|
---|
85 | LDD #$1004
|
---|
86 | BITA ,U
|
---|
87 | BEQ *+6
|
---|
88 | ORB <Z
|
---|
89 | STB <Z
|
---|
90 | LDD #$0802
|
---|
91 | BITA ,U
|
---|
92 | BEQ *+6
|
---|
93 | ORB <Z+1
|
---|
94 | STB <Z+1
|
---|
95 | LDD #$0402
|
---|
96 | BITA ,U
|
---|
97 | BEQ *+6
|
---|
98 | ORB <Z
|
---|
99 | STB <Z
|
---|
100 | LDD #$0201
|
---|
101 | BITA ,U
|
---|
102 | BEQ *+6
|
---|
103 | ORB <Z+1
|
---|
104 | STB <Z+1
|
---|
105 | LDD #$0101
|
---|
106 | BITA ,U+
|
---|
107 | BEQ *+6
|
---|
108 | ORB <Z
|
---|
109 | STB <Z
|
---|
110 |
|
---|
111 | CLR $E7E5 affichage écran de
|
---|
112 | LDD <Z
|
---|
113 | STA ,X+ 1er octet bitplanB
|
---|
114 | STB ,Y+ 1er octet bitplanA
|
---|
115 | LDA #BANK
|
---|
116 | STA $E7E5 retour image CGA.
|
---|
117 | DEC <Z+2
|
---|
118 | LBNE LIGNE
|
---|
119 |
|
---|
120 | LEAU $1FB0,U entrelacement CGA:
|
---|
121 | CMPU #$DF40 une ligne sur deux
|
---|
122 | BLO *+6 => A000
|
---|
123 | LEAU -$3FB0,U C000
|
---|
124 | CMPX #$BF40 A050
|
---|
125 | LBNE LIGNE-4 C050 ...
|
---|
126 |
|
---|
127 | PULS DP,PC see you later !
|
---|
128 | END
|
---|