annotate 3rdparty/utils/view/view_rle.a @ 2719:2fda91bdc268 lwtools-port

added httpd
author Boisy Pitre <boisy.pitre@nuance.com>
date Thu, 26 Jul 2012 11:01:43 -0500
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 RLE picture format *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
4 * *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
5 * RLEshowpic -- 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_rle_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 double rmb 1 Yes, double each line, and double each pixel count.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
24 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
25
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
26 RLEshowpic:
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
27 bsr header Read header info, set palettes, etc.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
28
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
29 lbsr setscreen
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
30 lbsr setpals
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
31 lbsr setbuffer
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
32
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
33 ldd #0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
34 showpicloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
35 lbsr getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
36 lbsr putline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
37 tst double
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
38 beq nodoub
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
39 lbsr putline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
40 nodoub
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
41 addd #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
42 cmpd #192
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
43 bne showpicloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
44 rts
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
45
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
46 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
47 * read header info from file, and set window type information
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
48 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
49 vsect dp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
50 endoffile rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
51 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
52
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
53
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
54 header
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
55 pshs a,b,x,y,u
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
56 ldd #$003f Set palettes to white on black
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
57 std palette,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
58 lda #6
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
59 sta <type
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
60
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
61 head0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
62 lbsr I_GetByte The start of an RLE picture is an ESC G sequence.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
63 lbcs _error
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
64 cmpa #27
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
65 bne head0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
66 head1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
67 lbsr I_GetByte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
68 lbcs _error
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
69 cmpa #27
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
70 beq head1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
71 cmpa #'G
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
72 bne head0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
73
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
74 lbsr I_GetByte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
75 lbcs _error
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
76 cmpa #'H
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
77 beq headmisc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
78 cmpa #'M
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
79 lbne E$Format Illegal format!
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
80 com double Turn on double flag.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
81
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
82 headmisc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
83 * Set some miscellaneous variables
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
84 clr <cyclestart
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
85 lda #1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
86 sta <cycleend So we can toggle black/white
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
87 ldd #120
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
88 std <cyclerate
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
89
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
90 clr <cycle Turn off cycling
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
91 clr <extranum No color rotation
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
92 ldd <Skiplines
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
93 cmpd #$ffff Is Skiplines still default?
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
94 bne headskip No, don't change it.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
95 ldd #0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
96 std <Skiplines Set it to 0
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
97 headskip
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
98 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
99
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
100 vsect dp
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
101 mask fcb $40 Mask to set a pixel
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
102 foreground rmb 1 In foreground or background? default=0.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
103 count rmb 1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
104 endsect
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
105
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
106 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
107 * Getline
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
108 *
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
109 getline
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 * Clear out linebuff
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
112 leau linebuff,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
113 ldb #160
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
114 getline3
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
115 clr ,u+
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
116 decb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
117 bne getline3
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
118 * If at end of file, leave it that way
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
119 tst endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
120 lbne getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
121 * Get a line from the file
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
122 leax linebuff+8,y
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
123 clrb
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
124 lda count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
125 bne setdoit
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
126 getbyte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
127 com foreground
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
128 lbsr I_GetByte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
129 bcs geteof
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
130 suba #$20
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
131 blo getbyte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
132 tst double
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
133 beq setdoit
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
134 lsla Double count.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
135 setdoit
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
136 sta count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
137 beq getbyte
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
138 setloop
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
139 bsr pixset Set/reset this pixel
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
140 dec count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
141 decb Count down pixels on line
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
142 beq getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
143 tst count
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
144 beq getbyte End of repeat, get another byte.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
145 bra setloop End of line, save leftover and quit.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
146 * Handle EOF situation, any I/O error should come here.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
147 geteof
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
148 cmpb #E$EOF
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
149 bne getline4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
150 com endoffile
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
151 bra getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
152 getline4
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
153 lbra _error If not EOF, just exit with error.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
154 getline1
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
155 puls a,b,x,y,u,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
156
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
157 pixset
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
158 pshs a
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
159 tst foreground
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
160 bne pixreset If in background, don't set the pixel.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
161 lda ,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
162 ora mask
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
163 sta ,x
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
164 andcc #^Carry clear the carry flag.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
165 pixreset
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
166 ror mask
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
167 bcc pixend If we went past the end of the byte,
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
168 ror mask Get the two mask bits out of the carry
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
169 leax 1,x Bump X to next byte.
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
170 pixend
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
171 ror mask
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
172 puls a,pc
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
173
6b23465701c0 Tim Kientzle's VIEW
boisy
parents:
diff changeset
174 endsect