WDC816CC and sprintf

Programming the 6502 microprocessor and its relatives in assembly and other languages.
Post Reply
User avatar
AndrewP
Posts: 368
Joined: 30 Aug 2021
Location: South Africa

WDC816CC and sprintf

Post by AndrewP »

... Or it might be better to call this WDC816CC and anything from fcntl as it seems that all the low level I/O stuff is missing.

Still if anyone has managed to use sprintf with WDC's C compiler I would dearly love to know how.

Compiling with the Large memory model (-ml) and linking with the Large C library (-lcl)

Code: Select all

wdc816cc.exe  -bs -DUSING_816 -ml -wr -wu -so -sp -lt -pb -pp -px -o Main.obj Main.c
wdcln.exe -C20000,00000 -g -t -sz -HB -obin\VideoUpload.bin Main.obj -lcl -lml
then I get the following undefined symbols:

Code: Select all

Undefined symbol: ~~unlink
Undefined symbol: ~~close
Undefined symbol: ~~isatty
Undefined symbol: ~~write
Undefined symbol: ~~lseek
I also tried compiling with the Small memory model (-ms) and linking with the Small C library (-lcs)

Code: Select all

wdc816cc.exe  -bs -DUSING_816 -mcs -wr -wu -so -sp -lt -pb -pp -px -o Main.obj Main.c
wdcln.exe -g -t -sz -HB -obin\VideoUpload.bin Main.obj -lcs -lms
but still get similar undefined symbols:

Code: Select all

Undefined symbol: _~unlink
Undefined symbol: _~close
Undefined symbol: _~isatty
Undefined symbol: _~write
Undefined symbol: _~lseek
So I don't think it's a Large or Compact only deficiency.
User avatar
Yuri
Posts: 371
Joined: 28 Feb 2023
Location: Texas

Re: WDC816CC and sprintf

Post by Yuri »

Does anything work in their library?

If you need a printf() function, I have one of those I wrote:
https://raw.githubusercontent.com/Kelma ... snprintf.c


XD
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: WDC816CC and sprintf

Post by BigDumbDinosaur »

Yuri wrote:
Does anything work in their library?

If you need a printf() function, I have one of those I wrote:
https://raw.githubusercontent.com/Kelma ... snprintf.c

I suspect the TIDE library is all relocatable assembly language stuff.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
AndrewP
Posts: 368
Joined: 30 Aug 2021
Location: South Africa

Re: WDC816CC and sprintf

Post by AndrewP »

Yuri wrote:
Does anything work in their library?

If you need a printf() function, I have one of those I wrote
Thank you, that looks nice and compact - I do believe I will be borrowing it :D

Most of the standard C library works (it's only the far heap stuff and fcntl I've had issues with) and the mathematical stuff works, floats, long ints, quotients, multiplication etc... The problem is that some of the standard functions depend on malloc (as opposed to farmalloc) and I don't fully understand how to make that play nicely with the large memory model.
BigDumbDinosaur wrote:
I suspect the TIDE library is all relocatable assembly language stuff.
It's gotta be. I haven't tried decompiling it (and don't have an emulator to step through it yet either) but the locations of the standard C functions move around and some of the calls seem non-C; i.e. they must be assembly.
Post Reply