From: Steve K. <sk...@ou...> - 2000-09-11 22:05:39
|
I registered on Source Forge as skenton, so go ahead and add me. I am waiting on a new portable to arrive (any day now ....) before I download and install the whole development environment and take a try at building the compiler from the cvs source. I have just been looking at code generator gen.c from something I downloaded quite a while back to see what the sdcc project was all about. Just recently I got back to it, but I'm not current yet. In the mean time, I looked into the Z80 to see if it could be made to handle critical sections the way I want to do the msc-51 i.e. only turn them back on when leaving the section if they were really on when entering the section. Below is a snippet that should do the trick. Sorry if the sytax is slightly off, I have not hacked the Z80 in about 20 years (since the 4mhz Z80A was hot news) Whoever is doing the Z80 code generator might find this interesting. ; <save A/F if need be> ld A,I ; test the state of IFF2. This is a special use of the parity flag jnp isoff ; if IFF2 is alreay clear then parity flag is 0 di ; disable interrupts and clear IFF1 and IFF2 isoff: push PSW ; save the entry state on the stack for later ; This is the critical section, interrupts are now disabled pop PSW ; retrieve the entry state from the stack jnp alldone ; if interrupts were disabled on entry (parity flag = 0) leave them off ei ; enable interrupts by setting IFF1 and IFF2 alldone: ; <restore A/F if saved above> ; At this point interrupts match the state when we entered at the top ; If they were disabled then they are disabled now ditto for enabled FYI Steve Kenton |
From: Sandeep D. <sa...@dd...> - 2000-09-12 01:15:23
|
Done -----Original Message----- From: sdc...@li... [mailto:sdc...@li...]On Behalf Of Steve Kenton Sent: Monday, September 11, 2000 3:05 PM To: sdc...@li... Subject: [sdcc-devel] I registered, add me I registered on Source Forge as skenton, so go ahead and add me. I am waiting on a new portable to arrive (any day now ....) before I download and install the whole development environment and take a try at building the compiler from the cvs source. I have just been looking at code generator gen.c from something I downloaded quite a while back to see what the sdcc project was all about. Just recently I got back to it, but I'm not current yet. In the mean time, I looked into the Z80 to see if it could be made to handle critical sections the way I want to do the msc-51 i.e. only turn them back on when leaving the section if they were really on when entering the section. Below is a snippet that should do the trick. Sorry if the sytax is slightly off, I have not hacked the Z80 in about 20 years (since the 4mhz Z80A was hot news) Whoever is doing the Z80 code generator might find this interesting. ; <save A/F if need be> ld A,I ; test the state of IFF2. This is a special use of the parity flag jnp isoff ; if IFF2 is alreay clear then parity flag is 0 di ; disable interrupts and clear IFF1 and IFF2 isoff: push PSW ; save the entry state on the stack for later ; This is the critical section, interrupts are now disabled pop PSW ; retrieve the entry state from the stack jnp alldone ; if interrupts were disabled on entry (parity flag = 0) leave them off ei ; enable interrupts by setting IFF1 and IFF2 alldone: ; <restore A/F if saved above> ; At this point interrupts match the state when we entered at the top ; If they were disabled then they are disabled now ditto for enabled FYI Steve Kenton _______________________________________________ sdcc-devel mailing list sdc...@li... http://lists.sourceforge.net/mailman/listinfo/sdcc-devel |