source: buchla-68k/ram/etstrn.c@ 6262b5c

Last change on this file since 6262b5c was 6262b5c, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Added include files for global functions and variables.

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*
2 =============================================================================
3 etstrn.c -- section edit group transposition field handlers
4 Version 3 -- 1989-11-14 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
8#include "all.h"
9
10extern void ttcpos(int16_t row, int16_t col);
11
12extern uint16_t *obj8;
13
14extern int16_t grptran;
15extern int16_t sdmctl;
16extern int16_t vtccol;
17extern int16_t vtcrow;
18extern int16_t vtxval;
19extern int16_t vtyval;
20
21extern int8_t dspbuf[];
22
23/*
24 =============================================================================
25 et_strn() -- load edit buffer
26 =============================================================================
27*/
28
29int16_t et_strn(int16_t n)
30{
31 sprintf(ebuf, "%c%02d", grptran < 0 ? '-' : '+', abs(grptran));
32
33 ebflag = TRUE;
34
35 return(SUCCESS);
36}
37
38/*
39
40*/
41
42/*
43 =============================================================================
44 ef_strn() -- parse edit buffer
45 =============================================================================
46*/
47
48int16_t ef_strn(int16_t n)
49{
50 register int16_t ival;
51
52 ebuf[3] = '\0';
53 ival = ((ebuf[1] - '0') * 10) + (ebuf[2] - '0');
54
55 ebflag = FALSE;
56
57 if ((ival NE 0) AND (ebuf[0] EQ '-'))
58 ival = -ival;
59
60 grptran = ival;
61
62 return(SUCCESS);
63}
64
65/*
66 =============================================================================
67 rd_strn() -- redisplay field
68 =============================================================================
69*/
70
71int16_t rd_strn(int16_t n)
72{
73 sprintf(dspbuf, "%c%02d", grptran < 0 ? '-' : '+', abs(grptran));
74
75 if (v_regs[5] & 0x0180)
76 vbank(0);
77
78 vputs(obj8, 7, 22, dspbuf, SDMENUBG);
79
80 return(SUCCESS);
81}
82
83/*
84
85*/
86
87/*
88 =============================================================================
89 nd_strn() -- data entry
90 =============================================================================
91*/
92
93int16_t nd_strn(int16_t n, int16_t k)
94{
95 register int16_t ec;
96
97 if (sdmctl NE 4)
98 return(FAILURE);
99
100 if ((vtccol GE 22) AND (vtccol LE 24))
101 ec = vtccol - 22;
102 else
103 return(FAILURE);
104
105 if (ec EQ 0) {
106
107 if (k EQ 8)
108 k = '-';
109 else if (k EQ 9)
110 k = '+';
111 else
112 return(FAILURE);
113 } else
114 k += '0';
115
116 ebuf[ec] = k;
117
118 if (v_regs[5] & 0x0180)
119 vbank(0);
120
121 vputc(obj8, 7, vtccol, k, (SDBGMM | (SD_ENTR << 4)));
122
123 if (vtccol < 24) {
124
125 ++vtccol;
126 vtxval = CTOX(vtccol);
127 ttcpos(vtcrow, vtccol);
128 }
129
130 return(SUCCESS);
131}
132
Note: See TracBrowser for help on using the repository browser.