[cc65] Nested Functions

From: Tedder, Kevin <kevin.tedder1capgemini.com>
Date: 2005-04-04 15:42:00
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient,  you are not authorized to read, print, retain, copy, disseminate,  distribute, or use this message or any part thereof. If you receive this  message in error, please notify the sender immediately and delete all  copies of this message.

  

Help!!!!

I need to declare a nested function and get the following error every time I
compile it with CC65.  

What am I doing wrong?

 

===Output===

cc65 -T -O -I ..\..\include -t bbc main.c

main.c(13): Warning: Function must be extern

main.c(13): Error: `;' expected

 

 

===source code===

void main(void)

{

    int a;

    int i = 1;

    void xHelp(void)

    {

        cprintf("Help Message\r\n");

    };

    for (i=2; i<10; ++i)

    {

        a = a + i;

        xHelp();

    };

}

 

This techinque will eventually be used to develop a Sideways Rom (SWR) for a
BBC Micro. As SWRs have no concept of BSS and DATA segments I can not use
them for this. With SWRs, the data area is defined at runtime from the OS
and passes a pointer to it when calling the SWR service routine. I intend to
use the C Stack to hold all variables (as this data will only last for the
duration of the service call). Therefore on entry to main() all variables
will be declared and pushed onto the stack and can then be referenced from
other (nested) functions as they will be in scope.

 

Kevin.



begin 666 image001.jpg
M_]C_X `02D9)1@`!`@$`2 !(``#_[02R4&AO=&]S:&]P(#,N, `X0DE-`^D`
M`````'@``P```$@`2 `````#!@)2__?_]P,/`EL#1P4H`_P``@```$@`2 ``
M```"V (H``$```!D`````0`#`P,````!)P\``0`!````````````````8 @`
M&0&0```````````````````````````````````````````X0DE-`^T`````
M`! `2 ````$``0!(`````0`!.$))30/S```````(```````````X0DE-! H`
M``````$``#A"24TG$ ``````"@`!``````````(X0DE-`_4``````$@`+V9F
M``$`;&9F``8```````$`+V9F``$`H9F:``8```````$`,@````$`6@````8`
M``````$`-0````$`+0````8```````$X0DE-`_@``````' ``/__________
M__________________\#Z ````#_____________________________`^@`
M````_____________________________P/H`````/__________________
M__________\#Z ``.$))300````````"```X0DE-! (```````(``#A"24T$
M" ``````$ ````$```) ```"0 `````X0DE-! D``````J(````!````@ ``
M``(```& ```#`````H8`& `!_]C_X `02D9)1@`!`@$`2 !(``#__@`G1FEL
M92!W<FET=&5N(&)Y($%D;V)E(%!H;W1O<VAO<*@@-"XP`/_N``Y!9&]B90!D
M@ ````'_VP"$``P(" @)" P)"0P1"PH+$14/# P/%1@3$Q43$Q@1# P,# P,
M$0P,# P,# P,# P,# P,# P,# P,# P,# P,# P!#0L+#0X-$ X.$!0.#@X4
M% X.#@X4$0P,# P,$1$,# P,# P1# P,# P,# P,# P,# P,# P,# P,# P,
M# P,#/_ `!$(``(`@ ,!(@`"$0$#$0'_W0`$``C_Q $_```!!0$!`0$!`0``
M```````#``$"! 4&!P@)"@L!``$%`0$!`0$!``````````$``@,$!08'" D*
M"Q ``00!`P($`@4'!@@%`PPS`0`"$0,$(1(Q!4%181,B<8$R!A21H;%"(R05
M4L%B,S1R@M%#!R624_#A\6-S-1:BLH,F1)-49$7"HW0V%])5XF7RLX3#TW7C
M\T8GE*2%M)7$U.3TI;7%U>7U5F9VAI:FML;6YO8W1U=G=X>7I[?'U^?W$0`"
M`@$"! 0#! 4&!P<&!34!``(1`R$Q$@1!46%Q(A,%,H&1%*&Q0B/!4M'P,R1B
MX7*"DD-3%6-S-/$E!A:BLH,')C7"TD235*,79$55-G1EXO*SA,/3=>/S1I2D
MA;25Q-3D]*6UQ=7E]59F=H:6IK;&UN;V)S='5V=WAY>GM\?_V@`,`P$``A$#
M$0`_`/1.B?T*OZ7\U3]+C^:K_F_Y*T%\K))(?JE)?*R2*GZI27RLDDI^J4E\
MK))*?JE)?*R22GZI27RLDDI^J4E\K))*?JE)?*R22G__V3A"24T$!@``````
M!P`!`````0$`__X`)T9I;&4@=W)I='1E;B!B>2!!9&]B92!0:&]T;W-H;W"H
M(#0N, #_[@`.061O8F4`9( ````!_]L`A `," @-"0T5# P5&A00%!H@&QH:
M&R B%Q<7%Q<B$0P,# P,#!$,# P,# P,# P,# P,# P,# P,# P,# P,# P,
M`0T-#1$.$1L1$1L4#@X.%!0.#@X.%!$,# P,#!$1# P,# P,$0P,# P,# P,
M# P,# P,# P,# P,# P,# P,# S_P `1" `8!: #`2(``A$!`Q$!_]T`! !:
M_\0!/P```04!`0$!`0$``````````P`!`@0%!@<("0H+`0`!!0$!`0$!`0``
M```````!``(#! 4&!P@)"@L0``$$`0,"! (%!P8(!0,,,P$``A$#!"$2,05!
M46$3(G&!,@84D:&Q0B,D%5+!8C,T<H+10P<EDE/PX?%C<S46HK*#)D235&1%
MPJ-T-A?25>)E\K.$P]-UX_-&)Y2DA;25Q-3D]*6UQ=7E]59F=H:6IK;&UN;V
M-T=79W>'EZ>WQ]?G]Q$``@(!`@0$`P0%!@<'!@4U`0`"$0,A,1($05%A<2(3
M!3*!D12AL4(CP5+1\#,D8N%R@I)#4Q5C<S3Q)086HK*#!R8UPM)$DU2C%V1%
M539T9>+RLX3#TW7C\T:4I(6TE<34Y/2EM<75Y?569G:&EJ:VQM;F]B<W1U=G
M=X>7I[?'_]H`# ,!``(1`Q$`/P"OT3^GX_\`QK/^J:O6UY)T4_K^/_QK/^J:
MO6@\>*$EL62'9?768>X`^94,C(%3)!$_%<UD7;@ZWF)/^:FDTN>L&J=<U]2N
MIV9K+F6&0QP+1X!WYO\`T5TJ*E)))(J4DDDDI22222E))))*4DDDDI22222E
M))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDD
MDI22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E)
M)))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDD
MI22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E))
M))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI
M22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E)))
M)*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI22222E))))*4DDDDI2
M2222E))))*4DDDDI22222E))))*4DDDDI22222G_T)]&ZH*GTXS**7.=8 ZQ
M[=UD./\`@_W'L_,78_L.E_TA8?"3_P"0:OG9) K0_2U'375-VU^P>8:[_OJS
M<KH>0^0W7<8.G_F;%\]I(:)?I;H71*^DUN#0/4L(+R.-/HM9_):M1?*J227Z
MJ27RJDBI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27R
MJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI
M^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE
M\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)
M*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI
M)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J
M22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZ
MJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27R
MJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI
M^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE
M\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)
M*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI
M)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J22GZJ27RJDDI^JDE\JI)*?JI)?*J
922GZJ27RJDDI^JDE\JI)*?JI)?*J22G_V0``
`
end
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Mon Apr 4 15:42:07 2005

This archive was generated by hypermail 2.1.8 : 2005-04-04 15:42:13 CEST