annotate 3rdparty/utils/view/view_st.a @ 1706:6b23465701c0

Tim Kientzle's VIEW
author boisy
date Tue, 10 Aug 2004 23:46:24 +0000
parents
children b7fb6a9aead4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1706
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
1 *****************************************************************************
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
2 * *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
3 * SUBS for st picture format *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
4 * *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
5 * STshowpic -- Displays picture, using putline routine *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
6 * *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
7 *****************************************************************************
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
8
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
9 check macro
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
10 pshs b,cc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
11 ldb #\1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
12 os9 F$PErr
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
13 puls b,cc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
14 endm
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
15
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
16 ifp1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
17 use /dd/defs/os9defs.a
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
18 endc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
19
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
20 psect view_st_a,0,0,0,0,0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
21
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
22 vsect dp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
23 linesize rmb 2 Bytes per line.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
24 totlines rmb 2 total lines in picture.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
25 curline rmb 2 Number of current screen line.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
26 fitcount rmb 2 Used to decide what lines to skip.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
27 linesleft rmb 2 Lines left in picture.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
28 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
29
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
30 STshowpic:
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
31 bsr header Get header info
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
32
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
33 ldd <Skiplines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
34 beq skip01
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
35 skip00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
36 lbsr getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
37 subd #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
38 bne skip00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
39 skip01
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
40
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
41 spscreens
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
42 lbsr getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
43
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
44 tst <endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
45 bne showpicend
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
46 lbsr setscreen Set up screen
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
47 lbsr setpals Set up palettes
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
48 lbsr setbuffer Set up Get/Put Buffer
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
49
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
50 ldd #00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
51 std curline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
52 showpicloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
53 lbsr putline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
54 ldd fitcount
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
55 addd totlines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
56 spget
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
57 std fitcount
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
58 lbsr getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
59 tst <Size
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
60 bne spnofit
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
61 ldd fitcount
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
62 subd #192
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
63 bge spget
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
64 std fitcount
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
65 spnofit
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
66 ldd curline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
67 addd #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
68 std curline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
69 cmpd #192
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
70 bne showpicloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
71 ldd linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
72 cmpd #16
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
73 bhi spscreens
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
74 showpicend
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
75 rts
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
76
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
77 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
78 * read header info from file, and set window type information
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
79 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
80 vsect dp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
81 endoffile rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
82 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
83
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
84 header
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
85 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
86 leax altbuff,y read in type and palettes into altbuff
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
87 pshs y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
88 ldy #34
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
89 lbsr I_Read
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
90 lbcs _error
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
91 puls y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
92 leax altbuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
93 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
94
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
95 lda ,x+ This byte is the screen type.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
96
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
97 bne head0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
98 lda #8
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
99 sta <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
100 ldd #200
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
101 std totlines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
102 std linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
103 ldd #160
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
104 std linesize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
105 bra headpals
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
106 head0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
107
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
108 cmpa #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
109 bne head1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
110 lda #7
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
111 sta <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
112 ldd #200
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
113 std totlines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
114 std linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
115 ldd #160
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
116 std linesize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
117 bra headpals
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
118 head1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
119
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
120 cmpa #2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
121 bne head2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
122 lda #5 640 2-color screen.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
123 sta <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
124 ldd #400
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
125 std totlines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
126 std linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
127 ldd #80
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
128 std linesize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
129 bra headpals
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
130 head2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
131
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
132 headpals
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
133 leau palette,y Need to expand palettes out to 3 bytes/palette
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
134 ldb #16 16 palettes to expand out.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
135 headexp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
136 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
137 anda #$0f Red is in lower nybble of first byte.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
138 sta ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
139 lda ,x Second byte is: upper nybble green, lower nybble blue.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
140 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
141 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
142 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
143 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
144 sta ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
145 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
146 anda #$0f
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
147 sta ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
148 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
149 bne headexp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
150
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
151 lbsr palscale First, scale so largest is 255
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
152 lbsr palconv Convert palette values from ST to CoCo format
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
153
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
154 * Set some miscellaneous variables
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
155 lda <cyclestart No cycling
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
156 sta <cycleend
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
157 clr <extranum No color rotation
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
158
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
159 ldd <Skiplines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
160 cmpd #$ffff Is Skiplines still default?
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
161 bne headskip No, don't change it.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
162 ldd #0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
163 std <Skiplines Set it to 0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
164 headskip
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
165
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
166 lda <Size
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
167 bpl headsize Default size is BIG
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
168 lda #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
169 sta <Size
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
170 headsize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
171
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
172 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
173
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
174 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
175 * Getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
176 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
177 getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
178 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
179 * First, fill buffers with all zeros
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
180 leau linebuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
181 leax altbuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
182 ldb #160
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
183 getline3
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
184 clr ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
185 clr ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
186 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
187 bne getline3
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
188 * If at end of file, leave it that way
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
189 tst endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
190 beq getline5
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
191 ldd #0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
192 std linesleft First, set number of lines remaining to zero.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
193 lbra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
194 getline5
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
195 * Count down lines left
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
196 ldd linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
197 bne getline6
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
198 com endoffile If no lines left, force end of file condition.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
199 lbra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
200 getline6
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
201 subd #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
202 std linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
203 * Get a line from the file
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
204 leax altbuff,y read in one line of screen
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
205 pshs y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
206 ldy <linesize Warning: Mung Y!
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
207 lbsr I_Read
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
208 puls y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
209 lbcs geteof Error through EOF check.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
210 * Now, we have to interleave the bits to get CoCo screen format.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
211 leax altbuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
212 leau linebuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
213 ldy <linesize Total number of bytes to convert.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
214 lda <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
215
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
216 cmpa #5
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
217 bne conv5
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
218 cnv5loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
219 lda ,x+ This type screen, just copy the data.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
220 sta ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
221 leay -1,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
222 bne cnv5loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
223 lbra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
224 conv5
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
225
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
226 cmpa #7 Type 7 screen requires 2-way interleaving.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
227 bne conv7
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
228 cnv7loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
229 lbsr twolev
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
230 leax 1,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
231 lbsr twolev
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
232 leax 3,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
233 leay -4,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
234 bne cnv7loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
235 lbra getline1 Now we're done.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
236 conv7
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
237
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
238 cmpa #8 Type 8 screen requires 4-way interleaving.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
239 bne conv8
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
240 cnv8loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
241 lbsr fourlev Convert 4 bytes out of 8 -- X-X-X-X-
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
242 leax 1,x Offset to next 4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
243 lbsr fourlev Convert 4 bytes out of 8 -- -X-X-X-X
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
244 leax 7,x Now, skip to next 8.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
245 leay -8,y Count down number of bytes.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
246 bne cnv8loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
247 bra getline1 Now exit.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
248 conv8
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
249 bra getline1 Now exit.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
250
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
251 geteof
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
252 cmpb #E$EOF
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
253 bne getline4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
254 com endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
255 bra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
256 getline4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
257 lbra _error If not EOF, just exit with error.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
258 getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
259 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
260
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
261 * converts bytes 0,x 2,x 4,x and 6,x into 4 CoCo-format bytes
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
262 * at [u]. U is advanced by 4, other regs unchanged.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
263
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
264 fourtab
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
265 fdb $0000,$0001,$0010,$0011,$0100,$0101,$0110,$0111
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
266 fdb $1000,$1001,$1010,$1011,$1100,$1101,$1110,$1111
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
267
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
268 fourlev
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
269 pshs a,b,x,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
270 leay fourtab,pcr
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
271 ldb #4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
272 pshs b 4 bytes to worry about.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
273 bra fourlev1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
274 fourlev0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
275 lsl 3,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
276 rol 2,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
277 rol 1,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
278 rol ,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
279 fourlev1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
280 lda ,x Get high nybble of byte.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
281 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
282 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
283 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
284 anda #$1e
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
285 ldd a,y Expand it out.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
286 ora ,u Or it into stuff so far.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
287 orb 1,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
288 std ,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
289 lda ,x++ Get low nybble, and advance to next byte.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
290 anda #$0f
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
291 lsla
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
292 ldd a,y Expand it out.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
293 ora 2,u Or into stuff so far.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
294 orb 3,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
295 std 2,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
296 dec ,s Have we done all four bytes?
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
297 bne fourlev0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
298 puls b Clean up stack.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
299 leau 4,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
300 puls a,b,x,y,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
301
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
302 twolev
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
303 bsr twolev1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
304 twolev1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
305 pshs a,b
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
306 ldb #4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
307 twoloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
308 lsl ,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
309 rola
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
310 lsl 2,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
311 rola
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
312 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
313 bne twoloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
314 sta ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
315 puls a,b,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
316
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
317
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
318 endsect