© 2000 Scenix Semiconductor, Inc. All rights reserved. - 14 - www.scenix.com SX48BD/SX52BD/SX52BD75/SX52BD100 4.0 SPECIAL-FUNCTION REGISTERS The CPU uses a set of special-function registers to con- trol operation of the device. The CPU registers include an 8-bit working register (W), which serves as a pseudo accumulator. It holds the sec- ond   operand   of   an   instruction,   receives   the   literal   in immediate  type  instructions,  and  also  can  be  program- selected as the destination register. A set of 31 file registers serves as the primary accumula- tor. One of these registers holds the first operand of an instruction  and  another  can  be  program-selected  as  the destination register. The first 10 file registers include the Real-Time   Clock/Counter   register   (RTCC),   the   lower eight  bits  of  the  12-bit  Program  Counter  (PC),  the  8-bit STATUS  register,  five  port  control  registers  for  Ports  A through E, the 8-bit File Select Register (FSR), and INDF (used for indirect addressing). The five low-order bits of the FSR register select one of the 31 file registers in the indirect addressing mode. Call- ing for the file register located at address 00h (INDF) in any    of    the    file-oriented    instructions    selects    indirect addressing,  which  uses  the  FSR  register.  It  should  be noted that the file register at address 00h is not a physi- cally implemented register. The CPU also contains an 8- level, 12-bit hardware push/pop stack for subroutine link- age. 4.1 PC Register (02h) The PC register holds the lower eight bits of the program counter.  It  is  accessible  at  run  time  to  perform  branch operations. The upper three bits are located in the STA- TUS register (PA2:0), bit 8 is not accessible. 4.2 STATUS Register (03h) The  STATUS  register  holds  the  arithmetic  status  of  the ALU, the page select bits, and the reset state. The  STA- TUS  register  is  accessible  during  run  time,  except  that bits  PD  and  TO  are  read-only.  It  is  recommended  that only SETB and CLRB instructions be used on this regis- ter. Care should be exercised when writing to the STA- TUS  register  as  the  ALU  status  bits  are  updated  upon completion  of  the  write  operation,  possibly  leaving  the STATUS   register   with   a   result   that   is   different   than intended. Table 4-1.  Special-Function Registers Addr Name Function 00h INDF Used for indirect addressing 01h RTCC Real Time Clock/Counter 02h PC Program Counter (low byte) 03h STATUS Holds Status bits of ALU 04h FSR File Select Register 05h RA Port RA data register 06h RB Port RB data register 07h RC Port RC data register 08h RD Port RD data register 09h RE Port RE data register PA2 PA1 PA0 TO PD Z DC C Bit 7 Bit 0 Bit 7-5:  Program memory page select bits PA2:PA0 000 = Page 0 (000h – 1FFh) 001 = Page 1 (200h – 3FFh) ... 111 = Page 7 (E00h – FFFh) Bit 4: Time Out bit, TO (Read Only) 1 = Set to 1 after power up and upon exe- cution of CLRWDT or SLEEP instructions 0 = A watchdog time-out occurred Bit 3: Power Down bit, PD (Read Only) 1= Set to a 1 after power up and upon ex- ecution of the CLR !WDT instruction 0 = Cleared to a ‘0’ upon execution of SLEEP instruction Bit 2: Zero bit, Z (affected by most logical, arithmetic, and data movement instructions 1 = Result of math operation is zero 0 = Result of math operation is non-zero Bit 1: Digit Carry bit, DC After Addition: 1 = A carry from bit 3 occurred 0 = No carry from bit 3 occurred After Subtraction: 1 = No borrow from bit 3 occurred 0 = A borrow from bit 3 occurred Bit 0: Carry bit, C After Addition: 1 = A carry from bit 7 of the result occurred 0 = No carry from bit 7 of the result oc- cured. After Subtraction: 1 = No borrow from bit 7 of the result oc- curred 0 = A borrow from bit 7 of the result oc- curred Rotate (RR or RL) Instructions: The carry bit is loaded with the low or high order bit, respectively When CF bit of the FUSEX register is cleared to 0, Carry bit works as input for ADD and SUB instructions.