[Coco] inline asm in C

Bill Pierce ooogalapasooo at aol.com
Thu Nov 1 14:13:15 EDT 2012


I don't know if this is what you want...
I use RMA code in C programs and use VSECT and VSECT [DP] to store my variables used in the ML.
Then they can be referenced by C code as "extern" and "extern direct"
In ML they are as normal with VSECT in ",U" (lda data,u) and VSECT [DP] in DP (lda <data)
If you want use them from C make sure you put a ":" (colon) after the label as that makes it global i.e.
Data: rmb 2

Not sure if that's what you are refering to or not...
hope it helps
Bill P

Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Bill Pierce
ooogalapasooo at aol.com




-----Original Message-----
From: Retro Canada <retrocanada76 at gmail.com>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Sent: Thu, Nov 1, 2012 2:02 pm
Subject: [Coco] inline asm in C


Hi,

What is the best way to put your embedded asm code to work with your C
local variables ?

I'm using global variables to do so, but I wonder if there is a better
way like this:

unsigned ASM1;
unsigned ASM2;

main()
{
  char *work_buf;
 unsigned start, fil_size;
...

ASM1 = work_buf + start;
ASM2 = fil_size - start;
#asm
 pshs a,x,y
 ldx ASM1
 ldy ASM2
_MOVE
 lda 1,x
 sta ,x+
 leay -1,y
 bne _MOVE
 puls a,x,y
#endasm

}

Thxs,

-- 
Panasonic FSA1-WSX
Commodore 64
Commodore 64C
Commodore 128
Apple //c
TRS-Color Computer 3
TI-99/4A
..and more coming!

--
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco

 



More information about the Coco mailing list