source: buchla-68k/vlib/vputsv.c@ 6099cac

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

More volatile hardware accesses.

  • Property mode set to 100644
File size: 1.7 KB
RevLine 
[f40a309]1/*
2 =============================================================================
3 vputsv.c -- video display string put functions
4 Version 1 -- 1988-10-06 -- D.N. Lynx Crowe
5 (c) Copyright 1988 -- 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
[b28a12e]14#include "ram.h"
[f40a309]15
16/*
17 =============================================================================
[09d1345]18 vputsv(obase, row, col, str, attr, len)
[f40a309]19
[09d1345]20 Write string str to video RAM object pointed to by obase
21 at (row,col) with attr used for all characters. Line length is len.
[f40a309]22 =============================================================================
23*/
24
[8c8b4e5]25void vputsv(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr, int16_t len)
[f40a309]26{
[09d1345]27 int16_t c;
[f40a309]28
[c80943f]29 while ((c = *str++)) {
[f40a309]30
[09d1345]31 vputcv(obase, row, col, c, attr, len);
[f40a309]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 =============================================================================
[09d1345]45 vputsav(obase, row, col, str, attr, len)
[f40a309]46
[09d1345]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.
[f40a309]49 Line length is len.
50 =============================================================================
51*/
52
[8c8b4e5]53void vputsav(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr, int16_t len)
[f40a309]54{
[09d1345]55 int16_t c;
[f40a309]56
[c80943f]57 while ((c = *str++)) {
[f40a309]58
[09d1345]59 vputcv(obase, row, col, c, *attr++, len);
[f40a309]60
61 if (++col GE 64) {
62
63 col = 0;
64
65 if (++row GE 25)
66 row = 0;
67 }
68 }
69}
[6262b5c]70
Note: See TracBrowser for help on using the repository browser.