annotate 3rdparty/utils/view/view_vef.a @ 3222:c086a5d69b78

Corrected ,pc should have been ,pcr in KRNP3.asm
author David Ladd <drencor-xeen@users.sourceforge.net>
date Wed, 20 Dec 2017 23:28:18 -0600
parents 37fd74e6fad8
children
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 vef picture format *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
4 * *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
5 * VEFshowpic -- 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
1912
37fd74e6fad8 Now assembles with rma, uses os9defs.d in c3
boisy
parents: 1777
diff changeset
17 use os9defs.d
1706
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_vef_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
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
24 endofpic rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
25 VEFtype rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
26 numpics rmb 1 Total number of pictures to load.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
27 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
28
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
29 SetVF:
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
30 tst <format
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
31 bne SetVF1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
32 sta numpics Set total number of pictures.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
33 lda #VEFFormat
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
34 sta <format
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
35 SetVF1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
36 rts
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
37
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
38 VEFshowpic:
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
39 clra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
40 VEFshow1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
41 bsr showvef
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
42 inca
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
43 cmpa numpics
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
44 bne VEFshow1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
45
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
46 * Now, were we displaying multiple pix??
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
47 lda numpics
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
48 cmpa #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
49 beq onepic
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
50 lda <cyclestart Disable cycling
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
51 sta <cycleend
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
52 lda #$ff
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
53 sta <flipping Enable flipping.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
54 ldd #2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
55 std <fliprate
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
56 onepic
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
57 rts
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
58
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
59 showvef
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
60 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
61 bsr header Get header info
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
62 lbsr setscreen Set up screen
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
63 lbsr setpals Set up palettes
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
64
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
65 lbsr setbuffer Set up Get/Put Buffer
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
66 std linesize Store size of line in bytes.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
67 lda VEFtype
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
68 cmpa #2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
69 bne showvef00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
70 ldd linesize Screen type 2 is simulated, so halve the linesize value
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
71 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
72 rorb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
73 std linesize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
74 showvef00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
75
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
76 ldd <Skiplines Skip lines at top.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
77 beq skip01
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
78 skip00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
79 lbsr getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
80 subd #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
81 bne skip00
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
82 skip01
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
83
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
84 ldd #00 Now display 192 lines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
85 showpicloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
86 lbsr getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
87 lbsr putline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
88 addd #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
89 cmpd #192
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
90 bne showpicloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
91
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
92 showpicclear
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
93 lbsr getline Now read until end of picture (to prepare for next file).
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
94 tst endofpic
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
95 beq showpicclear
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
96
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
97 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
98
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
99 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
100 * read header info from file, and set window type information
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
101 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
102 vsect dp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
103 endoffile rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
104 compression rmb 1 0= Normal, $80=Squashed
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
105 count rmb 1 Counts number packets to decode
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
106 linesleft rmb 1 Counts down lines in picture.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
107 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
108
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
109 header
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
110 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
111 clr endofpic
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
112 ldb #200
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
113 stb linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
114 leax altbuff,y read in type and palettes into altbuff
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
115 pshs y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
116 ldy #18
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
117 lbsr I_Read
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
118 lbcs _error
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
119 puls y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
120 leax altbuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
121 lda ,x+ This byte is the compression type: 0=none, $80=squashed.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
122 beq header10
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
123 cmpa #$80 Squashed format
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
124 lbne E$Format
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
125 header10
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
126 sta compression
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
127 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
128 cmpa #4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
129 lbhi E$Format
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
130 sta VEFtype
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
131 tst <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
132 bne headtype
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
133 leau headtable,pcr
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
134 lda a,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
135 sta <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
136 headtype
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
137 leau palette,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
138 ldb #16
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
139 headloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
140 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
141 sta ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
142 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
143 bne headloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
144 bra headmisc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
145 headtable fcb 8,7,8,6,5
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
146 headmisc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
147 * Set some miscellaneous variables
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
148 lda #8 Set first, last palette for animation
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
149 sta <cyclestart
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
150 lda #15
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
151 sta <cycleend
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
152 ldd #5 Default animation delay
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
153 std <cyclerate
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
154 lda #0 No color rotation
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
155 sta <extranum
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
156 ldd <Skiplines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
157 cmpd #$ffff Is Skiplines still default?
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
158 bne headskip No, don't change it.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
159 ldd #8
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
160 std <Skiplines Set it to 8.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
161 headskip
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
162 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
163
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
164 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
165 * Getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
166 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
167 getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
168 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
169 * First, fill buffers with all zeros
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
170 leau linebuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
171 ldb #160
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
172 getline3
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
173 clr ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
174 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
175 bne getline3
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
176 * If at end of file, leave it that way
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
177 tst endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
178 bne getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
179 * If at end of picture, leave it that way
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
180 tst endofpic
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
181 bne getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
182 * Decrement lines left in pic, set endofpic if appropriate
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
183 dec linesleft
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
184 bne morelines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
185 com endofpic
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
186 morelines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
187 * Test compression method
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
188 tst compression
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
189 bmi squash
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
190 * Get an unsquashed line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
191 pshs y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
192 leax linebuff,y read in one line of screen
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
193 ldy linesize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
194 lbsr I_Read
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
195 puls y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
196 lbcs getline2 Error through EOF check.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
197 bra getline0 Now exit.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
198 * Get a squashed line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
199 squash
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
200 leau linebuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
201 ldb #2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
202 stb count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
203 squash1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
204 lbsr I_GetByte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
205 bcs getline2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
206 tfr a,b
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
207 clra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
208 leax altbuff,y Use AltBuff to store data to unsquash
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
209 pshs y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
210 tfr d,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
211 lbsr I_Read
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
212 puls y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
213 lbcs getline2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
214 ldd linesize
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
215 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
216 rorb Always decode half a line at a time.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
217 bsr unsquash
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
218 dec count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
219 bne squash1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
220 bra getline0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
221 * Handle read error
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
222 getline2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
223 cmpb #E$EOF
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
224 bne getline4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
225 com endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
226 bra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
227 * Finished reading line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
228 getline0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
229 lda VEFtype
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
230 cmpa #2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
231 bne getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
232 bsr expand
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
233 bra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
234 * Handle bad errors
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
235 getline4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
236 lbra _error If not EOF, just exit with error.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
237 * Exit getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
238 getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
239 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
240
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
241 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
242 * Expand a 160 pixel 16-color line to a 320 pixel 16-color line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
243 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
244 expand
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
245 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
246 leax linebuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
247 leay exptable,pcr
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
248 ldd linesize (Actually fits in just B)
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
249 leax d,x X points to end of 160 pixel line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
250 leau d,x U points to end of 320 pixel line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
251 exploop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
252 lda ,-x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
253 anda #$0f
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
254 lda a,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
255 sta ,-u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
256 lda ,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
257 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
258 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
259 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
260 lsra
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
261 lda a,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
262 sta ,-u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
263 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
264 bne exploop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
265 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
266
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
267 exptable fcb $00,$11,$22,$33,$44,$55,$66,$77,$88,$99,$AA,$BB,$CC,$DD,$EE,$FF
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
268
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
269 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
270 * X points to data to unsquash, U points to destination buffer
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
271 * unsquashed result will be exactly B bytes.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
272 * Exit: U points to end of unsquashed, all else unchanged.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
273 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
274 vsect dp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
275 unsq_count rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
276 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
277
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
278 unsquash
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
279 pshs a,b,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
280 stb unsq_count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
281 unsq_loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
282 ldb ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
283 beq unsq_end
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
284 bpl gl_straight
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
285 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
286 * Deal with repeated byte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
287 gl_comp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
288 andb #$7f Strip off high bit
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
289 gl_comp2
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
290 sta ,u+ Store a copy of this byte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
291 dec unsq_count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
292 beq unsq_end
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
293 decb decrement repeat count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
294 bne gl_comp2 Not done, loop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
295 bra unsq_loop Done, get another control value from file.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
296 * Deal with straight section
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
297 gl_straight
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
298 lda ,x+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
299 sta ,u+ store it
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
300 dec unsq_count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
301 beq unsq_end
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
302 decb count down bytes left
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
303 bne gl_straight
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
304 bra unsq_loop If done, get next section
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
305 unsq_end
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
306 puls a,b,x,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
307
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
308 endsect