⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defines.asm

📁 proteus 仿真实例
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*        title    DEFINES

        $IFDEF     HC11

*/***** HC11EVB defines *****/

ROMBEG:	EQU    $E000
ROMSIZE:	EQU    $2000
ACIAST:	EQU    $9800
ACIADT:	EQU    ACIAST+1
DFLOP:	EQU    $4000
SWPRE:	EQU    02           ; SOFTWARE PRESCALER VALUE.
*
*
*
SBASBEG:	equ    0
SBASEND:	equ    2
SVARBEG:	equ    4
SVAREND:	equ    6
SHILINE:	equ    8
AUTOSTF:	equ    10
SSTART:	equ    11

        $ELSE

*/***** 6809/FLEX development defines *****/

ROMBEG:	EQU    $8000
ROMSIZE:	EQU    $2000
RAMBEG:	EQU    $4000
RAMSIZE:	EQU    $2000
STACKP:	EQU    RAMBEG+RAMSIZE-1
SWSTACK:	EQU    RAMBEG+RAMSIZE-512
ACIAST:	EQU    $E010
ACIADT:	EQU    ACIAST+1
*
         ORG    $6000
*
SEEPROM:	EQU    *
SBASBEG:	RMB    2
SBASEND:	RMB    2
SVARBEG:	RMB    2
SVAREND:	RMB    2
AUTOSTF:	RMB    1
SHILINE:	RMB    2
SSTART:	EQU    *


        $ENDIF

*/***** hc11 (device dependant) defines *****/
 
EEPBASAD:	EQU    $B600   ; /* EEPROM base address */
MAXEESUB:	EQU    255     ; /* maximum EEP subscript */
*
*	I/O Register Offsets From The Base Address
*
PPROG:	EQU    $3B  ; /* EEPROM programing control register */
ADCTL:	EQU    $30  ; /* A-TO-D control/status register */
ADR1:	EQU    $31  ; /* A/D result register 1 */
ADR2:	EQU    $32  	 ; /* A/D result register 2 */
ADR3:	EQU    $33  	 ; /* A/D result register 3 */
ADR4:	EQU    $34  	 ; /* A/D result register 4 */
PORTAIO:	EQU    $00  	 ; /* PORTA I/O register */
PORTBIO:	EQU    $04  	 ; /* PORTB I/O register */
PORTCIO:	EQU    $03  	 ; /* PORTC I/O register */
DDRC:           EQU    $07       ; Portc direction register
PORTDIO:        EQU    $08       ; /* PORTD I/O register */
PORTEIO:	EQU    $0A  	 ; /* PORTE I/O register */
TCNT:	EQU    $0E  	 ; /* TIMER/COUNTER register */
TOC1REG:	EQU    $16  	 ; /* TIMER Output Compare 1 register */
TFLAG1:	EQU    $23  	 ; /* TIMER Flag #1 register */
TMSK1:	EQU    $22 	 ; /* TIMER Mask #1 register */
TMSK2:	EQU    $24 	 ; /* TIMER Mask #2 register */
OPTION:	EQU    $39 	 ; /* OPTION select register */
BAUD:	EQU    $2B 	 ; /* SCI baud rate select register */
SCCR1:	EQU    $2C 	 ; /* SCI control register #1 */
SCCR2:	EQU    $2D 	 ; /* SCI control register #2 */
SCSR:	EQU    $2E 	 ; /* SCI status register */
SCDR:	EQU    $2F 	 ; /* SCI transmit/recieve data register */
PACNT:	EQU    $27  	 ; /* PACC count register */
PACTL:	EQU    $26 	 ; /* PACC control register */
TFLG2:	EQU    $25 	 ; /* TIMER Flag #2 register */
INIT:	EQU    $3D    	 ; /* INIT (Base address of RAM & I/O Regs) Register */

*/***** misc. defines *****/
 
EOL:	EQU    13      ; /* end of line marker */
CR:	EQU    13      ; /* same as EOL */
LF:	EQU    10      ; /* linefeed character */
BS:	EQU    8       ; /* backspace character */
SPC:	EQU    32      ; /* space character */
MIDEOL:	EQU    ':'     ; /* mid EOL character */
COMMA:	EQU    ','     ; /* comma */
SEMI:	EQU    ';'     ; /* semicolin */
NUM:	EQU    1       ; /* getvar return flag */
STRING:	EQU    2       ; /* getvar return flag */
NULL:	EQU    0       ; /* null value */
CNTRLC:	EQU    3       ; /* control-c (break character) */
*
*
IBUFLEN:	EQU    80      ; /* input buffer max length */
TBUFLEN:	EQU    128     ; /* token buffer max length */
SWSTKSize:	EQU	592
*
OPSLEN:		 EQU	30	; /* operator stack length */
NUMSLEN:		 EQU	60	; /* operand stack length */
FORSLEN:	EQU	80	; /* FOR..NEXT stack length */
WHSLEN:		 EQU	16	; /* WHILE..ENDWH stack length */
GOSLEN:		 EQU	16	; /* GOSUB stack length */
*
*/***** define error codes *****/
 
LINRANG:	EQU    1       ; /* line number range error */
SYTXERR:	EQU    2       ; /* syntax error */
IVEXPERR:	EQU    3       ; /* invalid expression error */
UPARNERR:	EQU    4       ; /* unbalanced parentheses error */
DTMISERR:	EQU    5       ; /* data type mismatch error */
OPRTRERR:	EQU    6       ; /* illegal operator error */
ILVARERR:	EQU    7       ; /* illegal variable error */
ILTOKERR:	EQU    8       ; /* illegal token error */
OMEMERR:	EQU    9       ; /* out of memory error */
INTOVERR:	EQU    10      ; /* integer overflow error */
IVHEXERR:	EQU    11      ; /* invalid hex digit error */
HEXOVERR:	EQU    12      ; /* hex number overflow */
MISQUERR:	EQU    13      ; /* missing quote error */
MPARNERR:	EQU    14      ; /* missing open or closing parenthisis */
IONSYERR:	EQU    15      ; /* "ON" syntax error */
MTHENERR:	EQU    16      ; /* missing "THEN" in "IF" statement */
MTOERR:	EQU    17      ; /* missing "TO" in "FOR" statement */
LINENERR:	EQU    18      ; /* line number error */
IDTYERR:	EQU    19      ; /* illegal data type error */
EXPCXERR:	EQU    20      ; /* expression too complex (xlator token buff ovf.) */
MCOMAERR:	EQU    21      ; /* missing comma */
MCMSMERR:	EQU    22      ; /* missing comma or semicolin */
MSTKOERR:	EQU    23      ; /* math stack overflow error */
UNDIMERR:	EQU    24      ; /* undimentioned array error */
SUBORERR:	EQU    25      ; /* subscript out of range error */
ZDIVERR:	EQU    26      ; /* divide by zero error */
LNFERR:	EQU    27      ; /* line not found error */
GOSOVERR:	EQU    28      ; /* too many nested GOSUB's */
RWOGERR:	EQU    29      ; /* RETURN w/o GOSUB error */
WHSOVERR:	EQU    30      ; /* too many active WHILE's */
ENDWHERR:	EQU    31      ; /* ENDWH statement w/o WHILE */
ONARGERR:	EQU    32      ; /* ON argument is negative, zero, or too large */
NOSUBERR:	EQU    33      ; /* non-subscriptable variable found in DIM statem. */
REDIMERR:	EQU    34      ; /* variable has already been DIMensioned */
FORNXERR:	EQU    35      ; /* too many active FOR -- NEXT loops active */
MFRNXERR:	EQU    36      ; /* mismatched FOR -- NEXT statements. */
CNTCNERR:	EQU    37      ; /* can't continue */
ODRDERR:	EQU    38      ; /* out of data in read or restore statement */
NEGSUBER:	EQU    39      ; /* negative subscripts not allowed */
EESUBERR:	EQU    40      ; /* EEP() subscript negative or > 200 */
PRFUNERR:	EQU    41      ; /* function only allowed in print statement */
TABARGER:	EQU    42      ; /* argument <0 or >255 in TAB() function */
CHRARGER:	EQU    43      ; /* argument <0 or >255 in CHR$() function */
OVDV0ERR:	EQU    44      ; /* overflow or /0 error in FDIV() function */
INVCHERR:	EQU    45      ; /* invalid channel number in ADC() function */
PRTASERR:	EQU    46      ; /* tried to assign a value <0 or >255 to PORT(X) */
ILPRTERR:	EQU    47      ; /* illegal port error */
ILLIOERR:	EQU    48      ; /* illegal I/O vector number <0 or >7 */
UNINIERR:	EQU    49      ; /* uninitalized I/O vector */
HEX2AERR:	EQU    50      ; /* argument <0 or >255 in HEX2 function */
NOTALERR:	EQU    51      ; /* statement not allowed in direct mode */
NOTINTER:	EQU    52      ; /* an RETI statement executed when not in interrupt */
PACCARGE:	EQU    53      ; /* tried to assign a value of <0 or >255 to PACC */
INTMODER:	EQU    54      ; /* interrupt or count mode error in ONPACC */
EETOSMAL:	EQU    55      ; /* program storage EEPROM is Too Small */

*/* mathematical operator tokens */
 
OPARNTOK:	EQU    $10     ; /* '(' */
CPARNTOK:	EQU    $11     ; /* ')' */
ANDTOK:	EQU    $20     ; /* 'AND' */
ORTOK:	EQU    $21     ; /* 'OR' */
EORTOK:	EQU    $22     ; /* 'EOR' */
LTTOK:	EQU    $30     ; /* '<' */
GTTOK:	EQU    $31     ; /* '> */
LTEQTOK:	EQU    $32     ; /* '<=' */
GTEQTOK:	EQU    $33     ; /* '>=' */
EQTOK:	EQU    $34     ; /* '=' */
NOTEQTOK:	EQU    $35     ; /* '<>' */
PLUSTOK:	EQU    $40     ; /* '+' */
MINUSTOK:	EQU    $41     ; /* '-' */
SPLUSTOK:	EQU    $42     ; /* '+' */
MULTTOK:	EQU    $50     ; /* '*' */
DIVTOK:	EQU    $51     ; /* '/' */
MODTOK:	EQU    $52     ; /* '%' */
PWRTOK:	EQU    $60     ; /* '^' */
INDIRTOK:	EQU    $70     ; /* '@' */
NOTTOK:	EQU    $71     ; /* 'NOT' */
NEGTOK:	EQU    $72     ; /* '-' (uniary minus) */
 
*/* keyword tokens */
 
LETTOK:	EQU    $01     ; /* LET */
IMLETTOK:	EQU    $02     ; /* implied LET */
PRINTTOK:	EQU    $03     ; /* PRINT */
FORTOK:	EQU    $04     ; /* FOR */
NEXTTOK:	EQU    $05     ; /* NEXT */
TRONTOK:	EQU    $06     ; /* TRON */
TROFFTOK:	EQU    $07     ; /* TROFF */
POKETOK:	EQU    $08     ; /* POKE */
DIMTOK:	EQU    $09     ; /* DIM */
REMTOK:	EQU    $0A     ; /* REM */
PACCTOK:	EQU    $0B     ; /* PACC */
DATATOK:	EQU    $0C     ; /* DATA */
READTOK:	EQU    $0D     ; /* READ */
RESTRTOK:	EQU    $0E     ; /* RESTORE */
GOSUBTOK:	EQU    $0F     ; /* GOSUB */
GOTOTOK:	EQU    $12     ; /* GOTO */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -