[3ae31e9] | 1 | VSDD Functions in vlib
|
---|
| 2 | ----------------------
|
---|
| 3 |
|
---|
| 4 | CpyObj(from, to, w, h, sw)
|
---|
| 5 |
|
---|
| 6 | SelObj(obj)
|
---|
| 7 | SetObj(obj, type, bank, base, xpix, ypix, x0, y0, flags, pri)
|
---|
| 8 | SetPri(obj, pri)
|
---|
| 9 |
|
---|
| 10 | VHinit()
|
---|
| 11 | VIint()
|
---|
| 12 | VSinit()
|
---|
| 13 |
|
---|
| 14 | lseg(x1, y1, x2, y2, t)
|
---|
| 15 |
|
---|
| 16 | objclr(obj)
|
---|
| 17 | objoff(obj, line, num)
|
---|
| 18 | objon(obj, line, num)
|
---|
| 19 |
|
---|
| 20 | tsplot4(obase, nw, fg, row, col, str, pitch)
|
---|
| 21 |
|
---|
| 22 | vbank(b)
|
---|
| 23 | vbfill4(obj, obwidth, xmin, ymin, xmax, ymax, color)
|
---|
| 24 | vclrav(adr, row, col, atr, len)
|
---|
| 25 | vclrs(obase, row, col, nc, ch, atr)
|
---|
| 26 | vcputs(obase, nw, fg, bg, row, col, str)
|
---|
| 27 | vcputsv(obase, nw, fg, bg, row, col, str, pitch)
|
---|
| 28 | vfwait()
|
---|
| 29 | vmput(sbase, row, col, ms, ma)
|
---|
| 30 | vmputa(sbase, row, col, ms, ma)
|
---|
| 31 | vputa(sbase, row, col, attrib)
|
---|
| 32 | vputc(sbase, row, col, c, attrib)
|
---|
| 33 | vputcv(adr, row, col, chr, atr, cols)
|
---|
| 34 | vputp(octad, xloc, yloc, val)
|
---|
| 35 | vputs(sbase, row, col, str, attrib)
|
---|
| 36 | vputsa(sbase, row, col, str, attrib)
|
---|
| 37 | vputsav(sbase, row, col, str, attrib, len)
|
---|
| 38 | vputsv(sbase, row, col, str, attrib, len)
|
---|
| 39 | vsetav(adr, row, col, atr, len)
|
---|
| 40 | vsetcv(adr, row, col, cfb, len)
|
---|
| 41 | vsetpal(slot, red, grn, blu)
|
---|
| 42 | vsndpal(pp)
|
---|
| 43 | vsplot4(obase, nw, fg, row, col, str, pitch, ht, cgtab)
|
---|
| 44 | vspray4(vobj, vwid, fg, ml, vb, pitch)
|
---|
| 45 | vtext(obj, nc, row, col, ip)
|
---|
| 46 | vvputsv(obase, nw, fg, bg, row, col, str, pitch, ht, cgtab)
|
---|
| 47 | vwputm(obase, nw, fg, bg, row, col, ml)
|
---|
| 48 | vwputp(octad, xloc, yloc, val)
|
---|
| 49 | vwputs(obase, nw, fg, bg, row, col, str)
|
---|
| 50 | |
---|
| 51 |
|
---|
| 52 | Text string display functions
|
---|
| 53 | -----------------------------
|
---|
| 54 |
|
---|
| 55 | 1 byte per character, no attributes
|
---|
| 56 |
|
---|
| 57 | vtext(obj, nc, row, col, ip)
|
---|
| 58 |
|
---|
| 59 | 3 byte per character, full attributes
|
---|
| 60 |
|
---|
| 61 | vclrs(obase, row, col, nc, ch, atr)
|
---|
| 62 | vputc(sbase, row, col, c, attrib)
|
---|
| 63 | vputcv(adr, row, col, chr, atr, cols)
|
---|
| 64 | vputs(sbase, row, col, str, attrib)
|
---|
| 65 | vputsa(sbase, row, col, str, attrib)
|
---|
| 66 | vputsav(sbase, row, col, str, attrib, len)
|
---|
| 67 |
|
---|
| 68 | 2 bit per pixel graphics
|
---|
| 69 |
|
---|
| 70 | vwputm(obase, nw, fg, bg, row, col, ml)
|
---|
| 71 | vwputs(obase, nw, fg, bg, row, col, str)
|
---|
| 72 |
|
---|
| 73 | 4 bit per pixel graphics
|
---|
| 74 |
|
---|
| 75 | vcputs(obase, nw, fg, bg, row, col, str)
|
---|
| 76 | vcputsv(obase, nw, fg, bg, row, col, str, pitch)
|
---|
| 77 | vputsv(sbase, row, col, str, attrib, len)
|
---|
| 78 | vmput(sbase, row, col, ms, ma)
|
---|
| 79 | vmputa(sbase, row, col, ms, ma)
|
---|
| 80 | vsplot4(obase, nw, fg, row, col, str, pitch, ht, cgtab)
|
---|
| 81 | vspray4(vobj, vwid, fg, ml, vb, pitch)
|
---|
| 82 | vvputsv(obase, nw, fg, bg, row, col, str, pitch, ht, cgtab)
|
---|
| 83 | |
---|
| 84 |
|
---|
| 85 | Graphics display functions
|
---|
| 86 | --------------------------
|
---|
| 87 |
|
---|
| 88 | General
|
---|
| 89 |
|
---|
| 90 | lseg(x1, y1, x2, y2, t)
|
---|
| 91 |
|
---|
| 92 | 2 bit per pixel
|
---|
| 93 |
|
---|
| 94 | vwputp(octad, xloc, yloc, val)
|
---|
| 95 |
|
---|
| 96 | 4 bit per pixel
|
---|
| 97 |
|
---|
| 98 | vbfill4(obj, obwidth, xmin, ymin, xmax, ymax, color)
|
---|
| 99 | vputp(octad, xloc, yloc, val)
|
---|
| 100 | |
---|
| 101 |
|
---|
| 102 | Control functions
|
---|
| 103 | -----------------
|
---|
| 104 |
|
---|
| 105 | General
|
---|
| 106 |
|
---|
| 107 | CpyObj(from, to, w, h, sw)
|
---|
| 108 |
|
---|
| 109 | VHinit()
|
---|
| 110 | VIint()
|
---|
| 111 | VSinit()
|
---|
| 112 |
|
---|
| 113 | vbank(b)
|
---|
| 114 | vfwait()
|
---|
| 115 |
|
---|
| 116 | Object control
|
---|
| 117 |
|
---|
| 118 | SelObj(obj)
|
---|
| 119 | SetObj(obj, type, bank, base, xpix, ypix, x0, y0, flags, pri)
|
---|
| 120 | SetPri(obj, pri)
|
---|
| 121 |
|
---|
| 122 | objclr(obj)
|
---|
| 123 | objoff(obj, line, num)
|
---|
| 124 | objon(obj, line, num)
|
---|
| 125 |
|
---|
| 126 | Character attributes
|
---|
| 127 |
|
---|
| 128 | vclrav(adr, row, col, atr, len)
|
---|
| 129 | vputa(sbase, row, col, attrib)
|
---|
| 130 | vsetav(adr, row, col, atr, len)
|
---|
| 131 | vsetcv(adr, row, col, cfb, len)
|
---|
| 132 |
|
---|
| 133 | Palette
|
---|
| 134 |
|
---|
| 135 | vsetpal(slot, red, grn, blu)
|
---|
| 136 | vsndpal(pp)
|
---|
| 137 | |
---|
| 138 |
|
---|
| 139 | VSDD Software Object Control Table Entry Structure
|
---|
| 140 | --------------------------------------------------
|
---|
| 141 |
|
---|
| 142 | struct octent {
|
---|
| 143 |
|
---|
| 144 | uint ysize,
|
---|
| 145 | xsize;
|
---|
| 146 |
|
---|
| 147 | int objx,
|
---|
| 148 | objy;
|
---|
| 149 |
|
---|
| 150 | uint *obase;
|
---|
| 151 |
|
---|
| 152 | char opri,
|
---|
| 153 | obank;
|
---|
| 154 |
|
---|
| 155 | uint odtw0,
|
---|
| 156 | odtw1;
|
---|
| 157 | };
|
---|
| 158 |
|
---|
| 159 | |
---|
| 160 |
|
---|
| 161 | VSDD Functions by module
|
---|
| 162 | ------------------------
|
---|
| 163 |
|
---|
| 164 | acctrl.s objclr(obj)
|
---|
| 165 | objoff(obj, line, num)
|
---|
| 166 | objon(obj, line, num)
|
---|
| 167 |
|
---|
| 168 | lseg.c lseg(x1, y1, x2, y2, t)
|
---|
| 169 |
|
---|
| 170 | tsplot4.s tsplot4(obase, nw, fg, row, col, str, pitch)
|
---|
| 171 |
|
---|
| 172 | vbfill4.c vbfill4(obj, obwidth, xmin, ymin, xmax, ymax, color)
|
---|
| 173 |
|
---|
| 174 | vclrav.s vclrav(adr, row, col, atr, len)
|
---|
| 175 |
|
---|
| 176 | vclrs.c vclrs(obase, row, col, nc, ch, atr)
|
---|
| 177 |
|
---|
| 178 | vcputs.s vcputs(obase, nw, fg, bg, row, col, str)
|
---|
| 179 |
|
---|
| 180 | vcputsv.s vcputsv(obase, nw, fg, bg, row, col, str. pitch)
|
---|
| 181 |
|
---|
| 182 | vctrl.c vbank(b)
|
---|
| 183 | vfwait()
|
---|
| 184 |
|
---|
| 185 | vhinit.c VHinit()
|
---|
| 186 |
|
---|
| 187 | vmput.c vmput(sbase, row, col, ms, ma)
|
---|
| 188 | vmputa(sbase, row, col, ms, ma)
|
---|
| 189 |
|
---|
| 190 | vobjfns.c SelObj(obj)
|
---|
| 191 | SetPri(obj, pri)
|
---|
| 192 | SetObj(obj, type, bank, base, xpix, ypix, x0, y0, flags, pri)
|
---|
| 193 | CpyObj(from, to, w, h, sw)
|
---|
| 194 |
|
---|
| 195 | vputa.s vputa(sbase, row, col, attrib)
|
---|
| 196 |
|
---|
| 197 | vputc.s vputc(sbase, row, col, c, attrib)
|
---|
| 198 |
|
---|
| 199 | vputcv.s vputcv(adr, row, col, chr, atr, cols)
|
---|
| 200 |
|
---|
| 201 | vputp.s vputp(octad, xloc, yloc, val)
|
---|
| 202 |
|
---|
| 203 | vputs.c vputs(sbase, row, col, str, attrib)
|
---|
| 204 | vputsa(sbase, row, col, str, attrib)
|
---|
| 205 |
|
---|
| 206 | vputsv.c vputsv(sbase, row, col, str, attrib, len)
|
---|
| 207 | vputsav(sbase, row, col, str, attrib, len)
|
---|
| 208 |
|
---|
| 209 | |
---|
| 210 |
|
---|
| 211 | VSDD Functions by module -- continued
|
---|
| 212 | ------------------------
|
---|
| 213 |
|
---|
| 214 | vsetav.s vsetav(adr, row, col, atr, len)
|
---|
| 215 |
|
---|
| 216 | vsetcv.s vsetcv(adr, row, col, cfb, len)
|
---|
| 217 |
|
---|
| 218 | vsetpal.c vsetpal(slot, red, grn, blu)
|
---|
| 219 | vsndpal(pp)
|
---|
| 220 |
|
---|
| 221 | vsinit.c VSinit()
|
---|
| 222 |
|
---|
| 223 | vsplot4.s vsplot4(obase, nw, fg, row, col, str, pitch, ht, cgtab)
|
---|
| 224 |
|
---|
| 225 | vspray4.c vspray4(vobj, vwid, fg, ml, vb, pitch)
|
---|
| 226 |
|
---|
| 227 | vtext.c vtext(obj, nc, row, col, ip)
|
---|
| 228 |
|
---|
| 229 | vvputsv.s vvputsv(obase, nw, fg, bg, row, col, str, pitch, ht, cgtab)
|
---|
| 230 |
|
---|
| 231 | vwputm.c vwputm(obase, nw, fg, bg, row, col, ml)
|
---|
| 232 |
|
---|
| 233 | vwputp.s vwputp(octad, xloc, yloc, val)
|
---|
| 234 |
|
---|
| 235 | vwputs.s vwputs(obase, nw, fg, bg, row, col, str)
|
---|
| 236 | |
---|
| 237 |
|
---|
| 238 | CpyObj(from, to, w, h, sw)
|
---|
| 239 | unsigned int *from, *to;
|
---|
| 240 | int w, h, sw;
|
---|
| 241 |
|
---|
| 242 | Copy a 'w'-word by 'h'-line object from 'from' to 'to' with
|
---|
| 243 | a destination width of 'sw' words.
|
---|
| 244 |
|
---|
| 245 | SelObj(obj)
|
---|
| 246 | int obj;
|
---|
| 247 |
|
---|
| 248 | Select 'obj' as the current working object.
|
---|
| 249 |
|
---|
| 250 | SetObj(obj, type, bank, base, xpix, ypix, x0, y0, flags, pri)
|
---|
| 251 | int obj, type, bank, xpix, ypix, x0, y0, flags, pri;
|
---|
| 252 | unsigned int *base;
|
---|
| 253 |
|
---|
| 254 | Setup object 'obj' of type 'type' at 'base' in bank 'bank'
|
---|
| 255 | with height 'ypix' and width 'xpix' at initial location
|
---|
| 256 | 'x0','y0', with flags 'flags'. Assumes HRS EQ 1.
|
---|
| 257 | If 'pri' >= 0, display the object at priority level 'pri'.
|
---|
| 258 | Define a bitmap object if 'type' EQ 0, or a character object
|
---|
| 259 | if 'type' NE 0.
|
---|
| 260 |
|
---|
| 261 | SetPri(obj, pri)
|
---|
| 262 | int obj, pri;
|
---|
| 263 |
|
---|
| 264 | Display object 'obj' with priority 'pri'.
|
---|
| 265 |
|
---|
| 266 |
|
---|
| 267 | VHinit()
|
---|
| 268 |
|
---|
| 269 | Setup VSDD registers, clear access table, clear object table,
|
---|
| 270 | load character generator, set color lookup table defaults.
|
---|
| 271 | Defines major video system variables, since the linker isn't
|
---|
| 272 | smart enough to let me put them in a separate file.
|
---|
| 273 |
|
---|
| 274 | VIint()
|
---|
| 275 |
|
---|
| 276 | VSDD Vertical Interval interrupt handler. Enables display of
|
---|
| 277 | any object whose bit is set in vi_ctl. Bit 0 = object 0, etc.
|
---|
| 278 |
|
---|
| 279 | SetPri() uses BIOS(B_SETV, 25, VIint) to set the interrupt
|
---|
| 280 | vector and lets VIint() enable the object. If vi_dis
|
---|
| 281 | is set, SetPri() won't enable the interrupt or set the vector
|
---|
| 282 | so that several objects can be started up at once.
|
---|
| 283 |
|
---|
| 284 | This routine also sets the base address and scroll offset
|
---|
| 285 | for the score display object if vi_sadr is non-zero,
|
---|
| 286 | after a delay for VSDD FRAMESTOP synchronization.
|
---|
| 287 |
|
---|
| 288 | VSinit()
|
---|
| 289 |
|
---|
| 290 | Initialize VSDD software support variables.
|
---|
| 291 | |
---|
| 292 |
|
---|
| 293 | lseg(x1, y1, x2, y2, t)
|
---|
| 294 | short x1, y1, x2, y2, t;
|
---|
| 295 |
|
---|
| 296 | Draws a line from ('x1', 'y1') to ('x2', 'y2')
|
---|
| 297 | in drawing mode 't'.
|
---|
| 298 |
|
---|
| 299 | All coordinates are short integers in whatever plotting units the
|
---|
| 300 | 'point' function expects. No clipping or scaling is done, as this is
|
---|
| 301 | the lowest level 'line' primitive in the drawing code, and coordinates
|
---|
| 302 | are expected to have already been checked and found to be on screen.
|
---|
| 303 |
|
---|
| 304 | The 'point' variable must be initialized to point at the
|
---|
| 305 | pixel plotting function before this function is called. The pixel
|
---|
| 306 | plotting function is passed 3 arguments: the x coordinate, the y
|
---|
| 307 | coordinate, and the plotting mode. It is declared here as type 'short',
|
---|
| 308 | but any value it returns will be ignored.
|
---|
| 309 |
|
---|
| 310 | The register variable assignments were chosen based on the Alcyon C
|
---|
| 311 | compiler for the Atari 1040ST and reflect the capabilities of that
|
---|
| 312 | compiler. Other compilers may require different optimizations based
|
---|
| 313 | on their use of register variables.
|
---|
| 314 |
|
---|
| 315 | objclr(obj)
|
---|
| 316 | unsigned int obj;
|
---|
| 317 |
|
---|
| 318 | Clear bits in access table for object 'obj'.
|
---|
| 319 | Disables object 'obj'.
|
---|
| 320 |
|
---|
| 321 | objoff(obj, line, num)
|
---|
| 322 | unsigned int obj, line, num;
|
---|
| 323 |
|
---|
| 324 | Disable object obj at line thru line+num.
|
---|
| 325 |
|
---|
| 326 | objon(obj, line, num)
|
---|
| 327 | unsigned int obj, line, num;
|
---|
| 328 |
|
---|
| 329 | Enable object obj at line thru line+num.
|
---|
| 330 |
|
---|
| 331 | Assumes VSDD is looking at bank 0.
|
---|
| 332 | Assumes a screen height of 350 lines.
|
---|
| 333 | No error checks are done, so beware.
|
---|
| 334 | |
---|
| 335 |
|
---|
| 336 | tsplot4(obase, nw, fg, row, col, str, pitch)
|
---|
| 337 | int *obase, nw, fg, row, col, pitch;
|
---|
| 338 | char *str;
|
---|
| 339 |
|
---|
| 340 | Outputs characters from the string at 'str' to an 'nw'
|
---|
| 341 | character wide 4-bit per pixel graphics window at 'obase'
|
---|
| 342 | at ('row','col'), using 'fg' as the foreground color.
|
---|
| 343 | Uses cgtable[][256] as the VSDD formatted character
|
---|
| 344 | generator table. Assumes 12 bit high characters in the
|
---|
| 345 | cgtable. Uses 'pitch' as the vertical spacing between
|
---|
| 346 | character rows. No error checks are done.
|
---|
| 347 | The string must fit the output area (no overlaps, single line).
|
---|
| 348 |
|
---|
| 349 | unsigned
|
---|
| 350 | vbank(b)
|
---|
| 351 | unsigned b;
|
---|
| 352 |
|
---|
| 353 | Set VSDD Data Segment bank to b.
|
---|
| 354 | Return old bank select value.
|
---|
| 355 |
|
---|
| 356 | vbfill4(obj, obwidth, xmin, ymin, xmax, ymax, color)
|
---|
| 357 | unsigned *obj;
|
---|
| 358 | short obwidth, xmin, ymin, xmax, ymax;
|
---|
| 359 | register unsigned color;
|
---|
| 360 |
|
---|
| 361 | Video block fill blitter for 4 bit per pixel objects
|
---|
| 362 | Fills an area with a color. Coded for speed, not space.
|
---|
| 363 |
|
---|
| 364 | vclrav(adr, row, col, atr, len)
|
---|
| 365 | unsigned int *adr, row, col, atr, len;
|
---|
| 366 |
|
---|
| 367 | Clears attribute 'atr' at ('row', 'col') in the
|
---|
| 368 | full attribute text object at 'adr'
|
---|
| 369 | using a line length of 'len'.
|
---|
| 370 | |
---|
| 371 |
|
---|
| 372 | vclrs(obase, row, col, nc, ch, atr)
|
---|
| 373 | unsigned int obase[];
|
---|
| 374 | int row, col, nc, ch, atr;
|
---|
| 375 |
|
---|
| 376 | Clear 'nc' characters in the text object 'obase' to 'ch',
|
---|
| 377 | using atrributes 'atr', starting at ('row','col');
|
---|
| 378 |
|
---|
| 379 | No error checking is done, so beware.
|
---|
| 380 |
|
---|
| 381 | vcputs(obase, nw, fg, bg, row, col, str)
|
---|
| 382 | int *obase, nw, fg, bg, row, col;
|
---|
| 383 | char *str;
|
---|
| 384 |
|
---|
| 385 | Outputs characters from the string at 'str' to an 'nw'
|
---|
| 386 | character wide 4-bit per pixel graphics window at 'obase'
|
---|
| 387 | at ('row','col'), using 'fg' as the foreground color, and
|
---|
| 388 | 'bg' as the background color. Uses cgtable[][256] as the
|
---|
| 389 | VSDD formatted character generator table.
|
---|
| 390 | No error checks are done.
|
---|
| 391 |
|
---|
| 392 | vcputsv(obase, nw, fg, bg, row, col, str. pitch)
|
---|
| 393 | int *obase, nw, fg, bg, row, col, pitch;
|
---|
| 394 | char *str;
|
---|
| 395 |
|
---|
| 396 | Outputs characters from the string at 'str' to an 'nw'
|
---|
| 397 | character wide 4-bit per pixel graphics window at 'obase'
|
---|
| 398 | at ('row','col'), using 'fg' as the foreground color, and
|
---|
| 399 | 'bg' as the background color. Uses cgtable[][256] as the
|
---|
| 400 | VSDD formatted character generator table. Assumes 12 bit
|
---|
| 401 | high characters in the cgtable. Uses 'pitch' as the vertical
|
---|
| 402 | spacing between character rows. No error checks are done.
|
---|
| 403 | The string must fit the output area (no overlaps, single line).
|
---|
| 404 |
|
---|
| 405 | vfwait()
|
---|
| 406 |
|
---|
| 407 | Wait for a FRAMESTOP update to transpire.
|
---|
| 408 |
|
---|
| 409 | vmput(sbase, row, col, ms, ma)
|
---|
| 410 | uint *sbase, rwo, col, ma;
|
---|
| 411 | char *ms[];
|
---|
| 412 |
|
---|
| 413 | Copies lines from ms, with attribute ma, to sbase at (row,col).
|
---|
| 414 | |
---|
| 415 |
|
---|
| 416 | vmputa(sbase, row, col, ms, ma)
|
---|
| 417 | uint *sbase, row, col, *ma;
|
---|
| 418 | char *ms[];
|
---|
| 419 |
|
---|
| 420 | Copies lines from ms, with attributes from ma, to sbase at (row,col).
|
---|
| 421 |
|
---|
| 422 | vputa(sbase, row, col, attrib)
|
---|
| 423 | unsigned int *sbase, row, col, attrib;
|
---|
| 424 |
|
---|
| 425 | Stores attribute value 'attrib' for the character
|
---|
| 426 | located at ('row','col') in VSDD RAM starting at 'sbase'.
|
---|
| 427 | Assumes a 64 character line and full character attributes.
|
---|
| 428 |
|
---|
| 429 | vputc(sbase, row, col, c, attrib)
|
---|
| 430 | unsigned int *sbase, row, col, c, attrib;
|
---|
| 431 |
|
---|
| 432 | Stores character c at (row,col) in sbase with
|
---|
| 433 | attribute value attrib.
|
---|
| 434 |
|
---|
| 435 | vputcv(adr, row, col, chr, atr, cols)
|
---|
| 436 | unsigned int *adr, row, col, chr, atr, cols;
|
---|
| 437 |
|
---|
| 438 | Stores character 'chr' at ('row', 'col') in the
|
---|
| 439 | full attribute text object at 'adr' with
|
---|
| 440 | attribute value 'atr' using a line length of 'len'.
|
---|
| 441 |
|
---|
| 442 | int
|
---|
| 443 | vputp(octad, xloc, yloc, val)
|
---|
| 444 | struct octent *octad;
|
---|
| 445 | int xloc, yloc;
|
---|
| 446 |
|
---|
| 447 | Puts the pixel value 'val' at ('xloc','yloc') in the
|
---|
| 448 | 4-bit per pixel bitmap object described by 'octad'.
|
---|
| 449 |
|
---|
| 450 | vputs(sbase, row, col, str, attrib)
|
---|
| 451 | uint *sbase, row, col, attrib;
|
---|
| 452 | char *str;
|
---|
| 453 |
|
---|
| 454 | Write string str to video RAM object pointed to by sbase
|
---|
| 455 | at (row,col) with attrib used for all characters.
|
---|
| 456 | Full attribute format is assumed.
|
---|
| 457 |
|
---|
| 458 | vputsa(sbase, row, col, str, attrib)
|
---|
| 459 | uint *sbase, row, col, *attrib;
|
---|
| 460 | char *str;
|
---|
| 461 |
|
---|
| 462 | Write string str in video RAM pointed to by sbase starting
|
---|
| 463 | at (row, col) using attributes from the words pointed to
|
---|
| 464 | by attrib. Full attribute format is assumed.
|
---|
| 465 | |
---|
| 466 |
|
---|
| 467 | vputsav(sbase, row, col, str, attrib, len)
|
---|
| 468 | uint *sbase, row, col;
|
---|
| 469 | char *str;
|
---|
| 470 | uint *attrib, len;
|
---|
| 471 |
|
---|
| 472 | Write string str in video RAM pointed to by sbase starting
|
---|
| 473 | at (row, col) using attributes from the words pointed to
|
---|
| 474 | by attrib. Line length is len. Full attribute format
|
---|
| 475 | is assumed.
|
---|
| 476 |
|
---|
| 477 | vputsv(sbase, row, col, str, attrib, len)
|
---|
| 478 | uint *sbase, row, col;
|
---|
| 479 | char *str;
|
---|
| 480 | uint attrib, len;
|
---|
| 481 |
|
---|
| 482 | Write string str to video RAM object pointed to by sbase
|
---|
| 483 | at (row,col) with attrib used for all characters.
|
---|
| 484 | Line length is len. Full attribute format is assumed.
|
---|
| 485 |
|
---|
| 486 | vsetav(adr, row, col, atr, len)
|
---|
| 487 | unsigned int *adr, row, col, atr, len;
|
---|
| 488 |
|
---|
| 489 | Sets attribute 'atr' at ('row', 'col') in the
|
---|
| 490 | full attribute text object at 'adr'
|
---|
| 491 | using a line length of 'len'.
|
---|
| 492 |
|
---|
| 493 | vsetcv(adr, row, col, cfb, len)
|
---|
| 494 | unsigned int *adr, row, col, cfb, len;
|
---|
| 495 |
|
---|
| 496 | Sets colors 'cfb' at ('row', 'col') in the
|
---|
| 497 | full attribute text object at 'adr'
|
---|
| 498 | using a line length of 'len'.
|
---|
| 499 |
|
---|
| 500 | vsetpal(slot, red, grn, blu)
|
---|
| 501 | register unsigned slot, red, grn, blu;
|
---|
| 502 |
|
---|
| 503 | Set a palette RAM entry to a specific color
|
---|
| 504 |
|
---|
| 505 | slot 0..15 color entry number
|
---|
| 506 | red 0..3 red value
|
---|
| 507 | grn 0..3 green value
|
---|
| 508 | blu 0..3 blue value
|
---|
| 509 | |
---|
| 510 |
|
---|
| 511 | vsndpal(pp)
|
---|
| 512 | short pp[16][3];
|
---|
| 513 |
|
---|
| 514 | Send a palette table to the video palette RAM
|
---|
| 515 |
|
---|
| 516 | pp pointer to a short [16][3] array,
|
---|
| 517 |
|
---|
| 518 | where:
|
---|
| 519 | pp[n][0] = blue value
|
---|
| 520 | pp[n][1] = green value
|
---|
| 521 | pp[n][2] = red value
|
---|
| 522 |
|
---|
| 523 | n = slot number (0..15)
|
---|
| 524 |
|
---|
| 525 | vsplot4(obase, nw, fg, row, col, str, pitch, ht, cgtab)
|
---|
| 526 | uint *obase, nw, fg, row, col, pitch, ht, cgtab[][256];
|
---|
| 527 | char *str;
|
---|
| 528 |
|
---|
| 529 | Outputs characters from the string at 'str' to an 'nw'
|
---|
| 530 | character wide 4-bit per pixel graphics window at 'obase'
|
---|
| 531 | at ('row','col'), using 'fg' as the foreground color.
|
---|
| 532 | Uses cgtab[][256] as the VSDD formatted character
|
---|
| 533 | generator table. Assumes 'ht' bit high characters in the
|
---|
| 534 | cgtable. Uses 'pitch' as the vertical spacing between
|
---|
| 535 | character rows. No error checks are done.
|
---|
| 536 | The string must fit the output area (no overlaps, single line).
|
---|
| 537 | This function leaves the zero pixels alone and just sets the
|
---|
| 538 | one pixels to the foreground color, allowing overlapping
|
---|
| 539 | character cells.
|
---|
| 540 |
|
---|
| 541 | vspray4(vobj, vwid, fg, ml, vb, pitch)
|
---|
| 542 | unsigned *vobj;
|
---|
| 543 | short vwid, fg, vb, pitch;
|
---|
| 544 | char *ml[];
|
---|
| 545 |
|
---|
| 546 | Spray a pattern on the screen.
|
---|
| 547 |
|
---|
| 548 | Uses 'vobj' of width 'vwid' as the screen, 'fg' as the color,
|
---|
| 549 | 'vb' as the bank, 'pitch' as the vertical pitch, and 'ml' as
|
---|
| 550 | the pattern.
|
---|
| 551 |
|
---|
| 552 | If 'vb' EQ -1, the bank is not set. The color in 'fg' will
|
---|
| 553 | be taken from the lower 4 bits.
|
---|
| 554 |
|
---|
| 555 | The list 'ml' points at pairs of counts and characters.
|
---|
| 556 | The last count is -1, and the list terminates with a
|
---|
| 557 | null pointer.
|
---|
| 558 | |
---|
| 559 |
|
---|
| 560 | vtext(obj, nc, row, col, ip)
|
---|
| 561 | register unsigned *obj, nc, row, col;
|
---|
| 562 | register char *ip;
|
---|
| 563 |
|
---|
| 564 | Output a text string to the VSDD in 1 byte / character mode.
|
---|
| 565 | Assumes VSDD is pointing at bank 0.
|
---|
| 566 |
|
---|
| 567 | vvputsv(obase, nw, fg, bg, row, col, str, pitch, ht, cgtab)
|
---|
| 568 | uint *obase, nw, fg, bg, row, col, pitch, ht, cgtab[][256];
|
---|
| 569 | char *str;
|
---|
| 570 |
|
---|
| 571 | Outputs characters from the string at 'str' to an 'nw'
|
---|
| 572 | character wide 4-bit per pixel graphics window at 'obase'
|
---|
| 573 | at ('row','col'), using 'fg' as the foreground color, and
|
---|
| 574 | 'bg' as the background color. Uses cgtab[][256] as the
|
---|
| 575 | VSDD formatted character generator table. Assumes 'ht' line
|
---|
| 576 | high characters in the cg table. Uses 'pitch' as the vertical
|
---|
| 577 | spacing between character rows. No error checks are done.
|
---|
| 578 | The string must fit the output area (no overlaps, single line).
|
---|
| 579 |
|
---|
| 580 | vwputm(obase, nw, fg, bg, row, col, ml)
|
---|
| 581 | unsigned int *obase;
|
---|
| 582 | int nw, fg, bg;
|
---|
| 583 | char *ml[];
|
---|
| 584 |
|
---|
| 585 | Put a menu in a 2-bit per pixel graphics window.
|
---|
| 586 |
|
---|
| 587 | Writes the menu described by the list 'ml' in the
|
---|
| 588 | 'nw' character wide bitmap 'obase', using 'fg' for
|
---|
| 589 | the foreground color and 'bg' for the background.
|
---|
| 590 | The menu is at ('row','col') in the bitmap.
|
---|
| 591 |
|
---|
| 592 | int
|
---|
| 593 | vwputp(octad, xloc, yloc, val)
|
---|
| 594 | struct octent *octad;
|
---|
| 595 | int xloc, yloc;
|
---|
| 596 |
|
---|
| 597 | Writes the pixel value 'val' into the 2-bit per pixel
|
---|
| 598 | bitmap object described by 'octad' at ('xloc','yloc').
|
---|
| 599 | Upper left corner of screen is (0,0) origin.
|
---|
| 600 |
|
---|
| 601 | vwputs(obase, nw, fg, bg, row, col, str)
|
---|
| 602 | int *obase, nw, fg, bg, row, col;
|
---|
| 603 | char *str;
|
---|
| 604 |
|
---|
| 605 | Outputs characters from the string at 'str' to an 'nw'
|
---|
| 606 | character wide 2-bit per pixel graphics window at 'obase'
|
---|
| 607 | at ('row','col'), using 'fg' as the foreground color, and
|
---|
| 608 | 'bg' as the background color. Uses cgtable[][256] as the
|
---|
| 609 | VSDD formatted character generator table.
|
---|
| 610 | No error checks are done.
|
---|