Thanks for the info... That is exactly what I am doing (although my
screen size is 80 by 40 and with attribute bytes like dos used to be).
This is actually just an FPGA project to learn with. Implementing a z80,
a 640x480 vga core (text only so far), an SD card, etc. All running
software compiled with sdcc hopefully :)
Thanks for more pointers!
Kevin
Richard Gray wrote:
> I gather from elsewhere that your target is a Z80? If so, you need at least
> an '-mz80' on the command line, thus you would use...
>
> sdcc -mz80 putchar.c
>
> On your code - I would comment that you're using a '=' on your if comparison,
> you probably mean '=='. I would simplify the pointer declarations too with a
> typedef, then things might be clearer for the compiler. If you're declaring
> an absolute address in memory, then you should use something like this array
> declaration I used on a recent project...
>
> typedef unsigned char byte_t;
>
> volatile byte_t __at 0xD000 VideoRAM[25*40];
>
> The 'volatile' keyword may or may not be appropriate in your application, but
> the '__at' allows you to declare an absolute address. The byte_t type I
> declare is useful because 8-bit signed integers (chars) aren't all that
> useful much of the time. If you need a signed integer, you will probably want
> short or int.
>
> On Tuesday 05 May 2009 02:35:11 Kevin Zee wrote:
>
>> I have gotten the libraries to build an am trying (unsuccessfully) to
>> make a custom putchar.c (I removed the putchar.s file). This is what I
>> have so far:
>>
>> #include "memory.h"
>> void putchar(char ch) {
>> *(unsigned char *)pScreen = video;
>> *(unsigned char *)pX = caratx;
>> *(unsigned char *)pY = caraty;
>>
>> char x;
>> char y;
>>
>> x = pX;
>> y = pY;
>>
>> pScreen += y * 160;
>> pScreen += x * 2;
>>
>> if (ch = 0x0d) {
>> // Adjust the cursor position, checking to see if we need to
>> scrool the screen
>>
>> return;
>> }
>>
>> return;
>> }
>>
>>
>> It gets errors on just about every line. The first error says syntax
>> error: token 'char' where I declare x. Then, everywhere that a variable
>> is mentioned, it says undefined identifier - even when I declare a variable
>>
>> the .h file is.
>> #ifndef MEMORY_H
>> #define MEMORY_H
>>
>> #define caratx 0x1FFE
>> #define caraty 0x1FFF
>> #define video 0x2000
>>
>> #endif
>>
>> I simply use "sdcc putchar.c" without quotes to compile.
>>
>> I have been trying for hours to get this thing to work. What am I doing
>> wrong?
>>
>>
> <snip>
>
>
>
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user