Ti Constructor
 
Loading...
Searching...
No Matches
textio.c
Go to the documentation of this file.
1
13#pragma once
14
15
20void setPenRow(char row) __naked __z88dk_fastcall __preserves_regs(bc, de){
21 #asm
22 ld a, l
23 ld (penRow), a
24
25 ret
26 #endasm
27}
32void setPenCol(char col) __naked __z88dk_fastcall __preserves_regs(bc, de){
33 #asm
34 ld a, l
35
36 ld (penCol), a
37
38 ret
39 #endasm
40}
43void resetPen() __naked __preserves_regs(bc, de, hl){
44 #asm
45 xor a, a
46
47 ld (penCol), a
48 ld (penRow), a
49 ret
50 #endasm;
51}
56void fputs(char* loc) __naked __z88dk_fastcall{
57 #asm
58 push ix
59 fputs_char_loop:
60 ld a, (hl)
61 or a
62 jp z, fputs_end
63 abcall(_VPutMap)
64 inc hl
65 jp fputs_char_loop
66
67 fputs_end:
68 pop ix
69 ret
70 #endasm
71}
76void println(char* loc) __z88dk_fastcall{
77 fputs(loc);
78 #asm
79 ld a, (penRow)
80 ld b, 6
81 add b
82 ld (penRow), a
83
84 xor a, a
85 ld (penCol), a
86 #endasm;
87}
90void newline() __naked{
91 #asm
92 ld a, (penRow)
93 ld b, 6
94 add b
95 ld (penRow), a
96
97 xor a, a
98 ld (penCol), a
99 ret
100 #endasm
101}
105void printc(char ch) __naked __z88dk_fastcall{
106 #asm
107 ld a, l
108 push ix
109 abcall(_VPutMap)
110 pop ix
111 ret
112 #endasm
113}
114
115#if defined(USE_NUMBER) || defined(DOXYGEN)
116
126void number(int num) __naked __z88dk_fastcall {
127 #asm
128
129 ld bc,55536
130 call OneDigit_
131 ld bc,64536
132 call OneDigit_
133 ld bc,65436
134 call OneDigit_
135 ld c,-10
136 call OneDigit_
137 ld c,b
138OneDigit_: ld a,47 ;replace with $16 (for $17-$20)
139DivideMe_: inc a
140 add hl,bc
141 jr c,DivideMe_
142 sbc hl,bc
143
144 cp '0'
145 ret z
146 push ix
147 abcall(_VPutMap)
148 pop ix
149 ret
150
151
152 #endasm
153}
154#endif
155
156#if defined(USE_HEXDUMP) || defined(DOXYGEN)
157
159const char hexTab[16] = {'0', '1', '2', '3', '4', '5', '6', '7',
160 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', };
161
162
167void hexdump(char v)__naked {
168 #asm
169 pop hl ; Get input
170 pop bc ; and perserve
171 push bc
172 push hl
173
174 push ix
175
176 ld a, c
177 ld hl, _hexTab
178 and a, 0xF0
179 SRL a
180 SRL a
181 SRL a
182 SRL a
183
184 ld e, a
185 ld d, 0
186 add hl, de
187 ld a, (hl)
188 abcall(_VPutMap)
189
190 ld a, c
191 ld hl, _hexTab
192 and a, 0x0F
193 ld e, a
194 ld d, 0
195 add hl, de
196 ld a, (hl)
197 abcall(_VPutMap)
198
199
200 pop ix
201 ret
202 #endasm
203}
209void doubleHexdump(int v) __naked __z88dk_fastcall{
210 #asm
211
212 push hl
213 push hl
214 inc sp
215 call _hexdump
216 inc sp
217 call _hexdump
218 pop hl
219 ret
220 #endasm
221}
222
223#endif
#define abcall(__LABEL__)
The asm for a bcall.
Definition essentials.c:71
void hexdump(char v) __naked
print the hex of a char to the screen
Definition textio.c:167
void doubleHexdump(int v) __naked __z88dk_fastcall
Prints a 16-bit int to the screen.
Definition textio.c:209
void setPenRow(char row) __naked __z88dk_fastcall __preserves_regs(bc
set the row that is currently selectd