From: Ullrich von Bassewitz (uz_at_musoftware.de)
Date: 2003-01-09 12:37:25
Hi!
On Tue, Jan 07, 2003 at 10:44:08AM +0100, Piotr Fusik wrote:
> #define F_IEN 0x04 /* I flag */
>
> >>> What's 'IEN' ? I is the 'Interrupt Disable' flag.
It was not a very good idea to use other names, so I have replaced all flag
definitions as follows:
--------------------------------------------------------------------------
/* Defines for the flags in the regs structure */
#define F6502_N 0x80 /* N flag */
#define F6502_V 0x40 /* V flag */
#define F6502_B 0x10 /* B flag */
#define F6502_D 0x08 /* D flag */
#define F6502_I 0x04 /* I flag */
#define F6502_Z 0x02 /* Z flag */
#define F6502_C 0x01 /* C flag */
--------------------------------------------------------------------------
Using the standard flag shortcuts should make it easier for programmers to use
the #defines. I will keep the old flag #defines in the header file for one
release but comment them out, so people can see what has changed when looking
into the header file.
> * regs structure are passed into the routine and the results are passed
> * out. Some of the flags are ignored on input. The called routine must
> * end with an RTS.
> */
> void __fastcall__ _sys (struct regs* r);
>
> >>> Which flags are ignored? Why?
The break and interrupt disable flag are ignored. I'm not sure if the break
flag can be set by PHA/PLP anyway. My copy of Rodney Zacks "Programming the
6502" says the B flag can be set by PLP, but other books disagree. Allowing to
set the I flag would make sense, I think.
> >>> There should be tax in place of first tay.
Ok, fixed.
> and #%11001011
>
> >>> Bits 4 and 5 are ignored by plp on 6502, but not on 65816, I think.
> >>> I'm not sure about other CPUs.
> >>> Enabling interrupts is not a good idea IMHO.
So I will change this to %11001111 to remove the break flag.
Regards
Uz
--
Ullrich von Bassewitz uz_at_musoftware.de
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-01-09 12:37:33 CET