NOLIST
;==============================================================================
; :
; This program is available from: :
; :
; Rho Enterprises :
; 4100 W. Colfax Ave. :
; Box 33 :
; Denver, CO 80204 :
; :
; Phone: 720-359-1467 Email: info@rhoent.com :
; :
; http://www.rhoent.com/ :
; :
;==============================================================================
;
;SXDEFS.INC by Loren Blaney and Richard Ottosen 14-FEB-2000
;
;
;Scenix SX Definitions for Microchip MPASM.
;
;REVISIONS:
;FEB-23-98, Released.
;MAR-21-98, Added ID label. Corrected XT & HS defs by swapping them.
; Removed ASCII defs. New STATUS defs.
;MAR-27-98, Added PAGEA, BANKA, FCALL, FGOTO, SKIP.
;APR-13-98, Added CSA, CSBE (etc.) macros. Enclose all arguments in parentheses.
; Indent macros.
;APR-23-98, Changed some comments.
;OCT-4-98, Removed "RADIX DEC", added processor type based on SX FUSEX bits,
; added Trim bits to FUSEX and other cleanup. R.O.
;OCT-14-98 BOSC defaults to a "1".
;NOV-4-98, Revised Pins, Trim bits and BOSC in DEVICE equates, removed some
; inversions. R.O.
;SEP-11-99, Added warnings and messages to BANK and PAGE macros. R.O.
;9-JAN-2000, Changed ID bytes to leave unused bits as ones. R.O.
;12-JAN-2000, Made variables in macros local. R.O.
;14-FEB-2000, Cleanup. R.O.
;Define special function registers:
INDF EQU 00h ;used for indirects thru fsr
RTCC EQU 01h ;real time clock/counter
PCL EQU 02h ;low 8 bits of PC
STATUS EQU 03h ;status bits
FSR EQU 04h ;file select register
PORTA EQU 05h ;I/O ports
PORTB EQU 06h ;supports multi-input wake-up (MIWU)
PORTC EQU 07h
;Define STATUS register bits:
CF EQU 0 ;carry
DCF EQU 1 ;digit carry
ZF EQU 2 ;zero
PDF EQU 3 ;sleep power down (true low)
TOF EQU 4 ;watchdog time out (true low)
PA0 EQU 5 ;page select (LSB)
PA1 EQU 6 ;page select
PA2 EQU 7 ;page select (MSB)
;Define port control registers:
TRISX EQU 0Fh ;tristate (1=input, 0=output)
PLP EQU 0Eh ;pullup (1=none, 0=20k)
LVL EQU 0Dh ;level (1=TTL, 0=CMOS)
ST EQU 0Ch ;Schmitt trigger (1=disabled, 0=enabled)
WKEN EQU 0Bh ;wake up (1=disabled, 0=enabled)
WKED EQU 0Ah ;wake up edge (1=falling, 0=rising)
WKPND EQU 09h ;wake up pending (1=pending, 0=none)
CMP EQU 08h ;comparator bit: 0=result, 6=output, 7=enabled
;Define device symbols for configuration words (FUSE & FUSEX):
OSCRC EQU b'00' ;external RC network (default, inverted)
OSCHS EQU b'01' ;high speed external crystal/resonator
OSCXT EQU b'10' ;normal external crystal/resonator
OSCLP EQU b'11' ;low power external crystal/resonator
WATCHDOG EQU 1 << 2 ;watchdog timer enabled
; default to disabled
PROTECT EQU 1 << 3 ;code protect enabled (inverted)
; default is to disable code protect
OSC4MHZ EQU b'1000' << 4 ;internal 4MHz
OSC2MHZ EQU b'1001' << 4 ;internal 2MHz
OSC1MHZ EQU b'1010' << 4 ;internal 1MHz
OSC500KHZ EQU b'1011' << 4 ;internal 500KHz
OSC250KHZ EQU b'1100' << 4 ;internal 250KHz
OSC125KHZ EQU b'1101' << 4 ;internal 125KHz
OSC62KHZ EQU b'1110' << 4 ;internal 62.5KHz
OSC31KHZ EQU b'1111' << 4 ;internal 31.25KHz
STACKX EQU 1 << d'8' ;stack is extended to 8 levels (inverted)
; default to 2 levels
OPTIONX EQU 1 << d'9' ;extend option register to 8 bits (inverted)
; default to 6 bits
SYNC EQU 1 << d'10' ;input syncing enabled (inverted)
; default to disabled
TURBO EQU 1 << d'11' ;turbo mode enabled (inverted)
; default to disabled
PAGES1 EQU b'00' << d'12' ;default
PAGES2 EQU b'01' << d'12'
PAGES4 EQU b'10' << d'12'
PAGES8 EQU b'11' << d'12'
BANKS1 EQU b'00' << d'14' ;default
BANKS2 EQU b'01' << d'14'
BANKS4 EQU b'10' << d'14'
BANKS8 EQU b'11' << d'14'
BOR40 EQU b'11' << d'16' ;4.0V brownout reset
BOR25 EQU b'10' << d'16' ;2.5
BOR13 EQU b'01' << d'16' ;1.3
;BOR00 EQU b'00' << d'16' ;disabled (default, inverted)
CARRYX EQU 1 << d'18' ;ADDWF & SUBWF use carry input (inverted)
; default is to ignore carry in
PRE7 EQU 1 << d'19' ;for changing the preset FUSEX bit 7 (inverted)
; default is no change
;for modifying factory IRC calibration
TRIM0 EQU b'0000' << d'20' ;highest frequency
TRIM3 EQU b'0001' << d'20' ;
TRIM6 EQU b'0010' << d'20' ;
TRIM9 EQU b'0011' << d'20' ; about 3% per step
TRIM12 EQU b'1000' << d'20' ;
TRIM15 EQU b'1001' << d'20' ;
TRIM18 EQU b'1010' << d'20' ;
TRIM21 EQU b'1011' << d'20' ;lowest frequency (default)
PINS18 EQU b'0' << d'22' ;default to 18 pin
PINS28 EQU b'1' << d'22'
_INVERT EQU 0F0F8Bh ;the default looks like a PIC16C54
_DEVICE SET DEVICE ^ _INVERT
_FUSE SET _DEVICE & 0FFFh
_FUSEX SET _DEVICE >> d'12'
;Select a Microchip processor enough like the Scenix processor to satisfy the
; assembler
_PINS SET (_FUSEX & 0400h) >> d'10'
_ROM SET _FUSEX & 003h
;Define macros for new Scenix instructions:
__NowBank SET 0 ;Default to bank 0 for both past and present
__LastBank SET 0 ; bank (like the H/W should but doesn't)
__NowPage SET 7 ;Default to top page for both
__LastPage SET 7 ; past and present page (like the H/W does)
;Define macro for ID label. Example:
; ID 'S', 'X', '-', 'D', 'e', 'm', 'o', ' '
ID MACRO A,B,C,D,E,F,G,H ;set up ID label
NOLIST
LOCAL _A,_B,_C,_D,_E,_F,_G,_H
_A SET A
_B SET B
_C SET C
_D SET D
_E SET E
_F SET F
_G SET G
_H SET H
ERRORLEVEL -220 ;don't display "address exceeds range" warning
ORG 1000h
;*** DATA (_A>>4)&0Fh, A&0Fh ;Unused bits are cleared
; DATA (_B>>4)&0Fh, B&0Fh
; DATA (_C>>4)&0Fh, C&0Fh
; DATA (_D>>4)&0Fh, D&0Fh
; DATA (_E>>4)&0Fh, E&0Fh
; DATA (_F>>4)&0Fh, F&0Fh
; DATA (_G>>4)&0Fh, G&0Fh
;*** DATA (_H>>4)&0Fh, H&0Fh
DATA (_A>>4)|0FF0h, A|0FF0h ;Unused bits are set
DATA (_B>>4)|0FF0h, B|0FF0h
DATA (_C>>4)|0FF0h, C|0FF0h
DATA (_D>>4)|0FF0h, D|0FF0h
DATA (_E>>4)|0FF0h, E|0FF0h
DATA (_F>>4)|0FF0h, F|0FF0h
DATA (_G>>4)|0FF0h, G|0FF0h
DATA (_H>>4)|0FF0h, H|0FF0h
ERRORLEVEL +220 ;restore warning message
ORG 0
LIST
ENDM
ERRORLEVEL -220 ;don't display "address exceeds range" warning
ORG 1010h
LIST
DATA _FUSE ;configuration bits (TURBO, SYNC, OPTIONX, etc.)
DATA _FUSEX ; (PINS, CARRYX, BOR40, BANKS, PAGES)
NOLIST
ERRORLEVEL +220 ;restore warning message
ORG 0
LIST
file: /Techref/scenix/lib/io/dev/video/sxdefs_inc.htm, 7KB, , updated: 2001/1/24 09:46, local time: 2025/1/12 15:13,
|
| ©2025 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://linistepper.com/techref/scenix/lib/io/dev/video/sxdefs_inc.htm"> scenix lib io dev video sxdefs_inc</A> |
Did you find what you needed?
|