source: buchla-68k/vlib/vputs.c @ 8c8b4e5

Last change on this file since 8c8b4e5 was 8c8b4e5, checked in by Thomas Lopatic <thomas@…>, 2 years ago

More volatile hardware accesses.

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2   =============================================================================
3        vputs.c -- video display string put functions
4        Version 2 -- 1987-03-30 -- D.N. Lynx Crowe
5        (c) Copyright 1987 -- D.N. Lynx Crowe
6
7        These functions drive the video character write function vputc()
8        which puts characters into a 82716 video RAM character object.
9
10        Full attribute format is assumed.
11   =============================================================================
12*/
13
14#include "ram.h"
15
16/*
17   =============================================================================
18        vputs(obase, row, col, str, attrib)
19
20        Write string str to video RAM object pointed to by obase
21        at (row,col) with attr used for all characters.
22   =============================================================================
23*/
24
25void vputs(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr)
26{
27        int16_t c;
28
29        while ((c = *str++)) {
30
31                vputc(obase, row, col, c, attr);
32
33                if (++col GE 64) {
34
35                        col = 0;
36
37                        if (++row GE 25)
38                                row = 0;
39                }
40        }
41}
42
43/*
44   =============================================================================
45        vputsa(obase, row, col, str, attrib)
46
47        Write string str in video RAM pointed to by obase starting
48        at (row, col) using attributes from the words pointed to by attr.
49   =============================================================================
50*/
51
52void vputsa(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr)
53{
54        int16_t c;
55
56        while ((c = *str++)) {
57
58                vputc(obase, row, col, c, *attr++);
59
60                if (++col GE 64) {
61
62                        col = 0;
63
64                        if (++row GE 25)
65                                row = 0;
66                }
67        }
68}
69
Note: See TracBrowser for help on using the repository browser.