Acorn Arcade forums: Programming: Using *FX from within C
|
Using *FX from within C |
|
Cauchy (16:30 5/4/2013) Raeddie (04:42 6/4/2013) Cauchy (12:42 6/4/2013) msww (07:58 6/4/2013)
|
|
John O'Meara |
Message #122279, posted by Cauchy at 16:30, 5/4/2013 |
Member
Posts: 43
|
Hi, I can call *Cat and *Time from within C by using the system() function,like; system("Time");, and it does the job, but system("FX\x00"); fails to display the OS and version and its date as *FX 0 does. Then I wrote the following code piece: void OSByte0(void) { _kernel_swi_regs regs; regs.r[0] = 0; regd.r[1] = 0; _kernel_swi(OS_Byte, ®s, ®s); } Which I think is the same as *FX0, and ran that, and the same result as with system("FX\x00"); nothing. Anyone any ideas on what I am doing wrong in both cases? Thanks in advance. |
|
[ Log in to reply ] |
|
Holger Palmroth |
Message #122283, posted by Raeddie at 04:42, 6/4/2013, in reply to message #122279 |
Member
Posts: 58
|
"FX\x00" is "FX" followed by a zero byte. You want "FX0", all in plain ASCII, no fancy escape sequences involved. |
|
[ Log in to reply ] |
|
Matthew Wightman |
Message #122284, posted by msww at 07:58, 6/4/2013, in reply to message #122279 |
Member
Posts: 4
|
Then I wrote the following code piece: void OSByte0(void) { _kernel_swi_regs regs; regs.r[0] = 0; regd.r[1] = 0; _kernel_swi(OS_Byte, ®s, ®s); } Which I think is the same as *FX0 According to the documentation for OS_Byte 0 , it works by returning that information as an error. Thus the return value from _kernel_swi will be a pointer to a _kernel_error containing the message you are after. |
|
[ Log in to reply ] |
|
John O'Meara |
Message #122285, posted by Cauchy at 12:42, 6/4/2013, in reply to message #122283 |
Member
Posts: 43
|
Thanks for the reply. calling like this: system("FX0"); to get the effect of *FX 0. Still the same problem; no display is outputed. Edit. Actually it seems as if it works with g++ but not with Castle's C compiler. Also I got OSByte0() working thanks for that too.
[Edited by Cauchy at 17:27, 6/4/2013] |
|
[ Log in to reply ] |
|
|
Acorn Arcade forums: Programming: Using *FX from within C |