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

📄 basic-52.sdi

📁 该应用软件可以实现大多数单片机的仿真实验
💻 SDI
📖 第 1 页 / 共 5 页
字号:
,,,STACKTP EQU     0FEH            ;ARG AND CONTROL STACK TOPS
,,,        ;
,,,        ; The character equates
,,,        ;
,,,CR      EQU     0DH             ;CARRIAGE RETURN
,,,LF      EQU     0AH             ;LINE FEED
,,,BELL    EQU     07H             ;BELL CHARACTER
,,,BS      EQU     08H             ;BACK SPACE
,,,CNTRLC  EQU     03H             ;CONTROL C
,,,CNTRLD  EQU     04H             ;CONTROL D
,,,NULL    EQU     00H             ;NULL
,,,        ;
,,,$EJECT
,,,        ;
,,,        ; The internal system equates
,,,        ;
,,,LINLEN  EQU     73              ;THE LENGTH OF AN INPUT LINE
,,,EOF     EQU     01              ;END OF FILE CHARACTER
,,,ASTKAH  EQU     01              ;ASTKA IS IN PAGE 1 OF RAM
,,,CSTKAH  EQU     00              ;CSTKA IS IN PAGE 0 OF RAM
,,,FTYPE   EQU     01              ;CONTROL STACK "FOR"
,,,GTYPE   EQU     02              ;CONTROL STACK "GOSUB"
,,,DTYPE   EQU     03              ;DO-WHILE/UNTIL TYPE
,,,ROMADR  EQU     8000H           ;LOCATION OF ROM
,,,        ;
,,,        ; The floating point equates
,,,        ;
,,,FPSIZ   EQU     6               ;NO. OF BYTES IN A FLOATING NUM
,,,DIGIT   EQU     FPSIZ-2         ;THE MANTISSA OF A FLOATING NUM
,,,STESIZ  EQU     FPSIZ+3         ;SIZE OF SYMBOL ADJUSTED TABLE ELEMENT
,,,FP_BASE EQU     1993H           ;BASE OF FLOATING POINT ROUTINES
,,,PSTART  EQU     512             ;START OF A PROGRAM IN RAM
,,,FSIZE   EQU     FPSIZ+FPSIZ+2+2+1
,,,        ;
,,,$EJECT
,,,        ;**************************************************************
,,,        ;
0047,,USENT,USENT:  ; User entry jump table
,,,        ;
,,,        ;**************************************************************
,,,        ;
0047,17 85,,        DW      CMND1           ;(00, 00H)COMMAND MODE JUMP
0049,12 15,,        DW      IFIX            ;(01, 01H)CONVERT FP TO INT
004B,0F E6,,        DW      PUSHAS          ;(02, 02H)PUSH VALUE ONTO ARG STACK
004D,0F DC,,        DW      POPAS           ;(03, 03H)POP VALUE OFF ARG STACK
004F,04 95,,        DW      PG1             ;(04, 04H)PROGRAM A PROM
0051,06 D0,,        DW      INLINE          ;(05, 05H)INPUT A LINE
0053,06 B7,,        DW      UPRNT           ;(06, 06H)PRINT A LINR
0055,06 9D,,        DW      CRLF            ;(07, 07H)OUTPUT A CRLF
,,,        ;
,,,        ;**************************************************************
,,,        ;
,,,        ; This is the operation jump table for arithmetics
,,,        ;
,,,        ;**************************************************************
,,,        ;
0057,13 9E,OPTAB,OPTAB:  DW      ALPAR           ;(08, 08H)LEFT PAREN
0059,13 1D,,        DW      AEXP            ;(09, 09H)EXPONENTAION
005B,11 A2,,        DW      AMUL            ;(10, 0AH)FP MUL
005D,17 3F,,        DW      AADD            ;(11, 0BH)FLOATING POINT ADD
005F,13 FC,,        DW      ADIV            ;(12, 0CH)FLOATING POINT DIVIDE
0061,17 1A,,        DW      ASUB            ;(13, 0DH)FLOATING POINT SUBTRACTION
0063,14 8A,,        DW      AXRL            ;(14, 0EH)XOR
0065,14 76,,        DW      AANL            ;(15, 0FH)AND
0067,14 7F,,        DW      AORL            ;(16, 10H)OR
0069,13 93,,        DW      ANEG            ;(17, 11H)NEGATE
006B,13 CD,,        DW      AEQ             ;(18, 12H)EQUAL
006D,13 D9,,        DW      AGE             ;(19, 13H)GREATER THAN OR EQUAL
006F,13 DD,,        DW      ALE             ;(20, 14H)LESS THAN OR EQUAL
0071,13 D3,,        DW      ANE             ;(21, 15H)NOT EQUAL
0073,13 C8,,        DW      ALT             ;(22, 16H)LESS THAN
0075,13 B7,,        DW      AGT             ;(23, 17H)GREATER THAN
,,,        ;
,,,$EJECT
,,,        ;***************************************************************
,,,        ;
,,,        ; This is the jump table for unary operators
,,,        ;
,,,        ;***************************************************************
,,,        ;
0077,13 81,,        DW      AABS            ;(24, 18H)ABSOLUTE VALUE
0079,13 5F,,        DW      AINT            ;(25, 19H)INTEGER OPERATOR
007B,13 87,,        DW      ASGN            ;(26, 1AH)SIGN OPERATOR
007D,14 88,,        DW      ANOT            ;(27, 1BH)ONE'S COMPLEMENT
007F,11 5F,,        DW      ACOS            ;(28, 1CH)COSINE
0081,11 C2,,        DW      ATAN            ;(29, 1DH)TANGENT
0083,11 63,,        DW      ASIN            ;(30, 1EH)SINE
0085,12 7F,,        DW      ASQR            ;(31, 1FH)SQUARE ROOT
0087,13 9F,,        DW      ACBYTE          ;(32, 20H)READ CODE
0089,13 19,,        DW      AETOX           ;(33, 21H)E TO THE X
008B,11 D2,,        DW      AATAN           ;(34, 22H)ARC TANGENT
008D,12 B2,,        DW      ALN             ;(35, 23H)NATURAL LOG
008F,13 A8,,        DW      ADBYTE          ;(36, 24H)READ DATA MEMORY
0091,13 B0,,        DW      AXBYTE          ;(37, 25H)READ EXTERNAL MEMORY
0093,14 71,,        DW      PIPI            ;(38, 26H)PI
0095,13 E3,,        DW      ARND            ;(39, 27H)RANDOM NUMBER
0097,14 9B,,        DW      AGET            ;(40, 28H)GET INPUT CHARACTER
0099,17 0F,,        DW      AFREE           ;(41, 29H)COMPUTE #BYTES FREE
009B,17 1F,,        DW      ALEN            ;(42, 2AH) COMPUTE LEN OF PORGRAM
009D,0F E2,,        DW      AXTAL           ;(43, 2BH) CRYSTAL
009F,16 41,,        DW      PMTOP           ;(44, 2CH)TOP OF MEMORY
00A1,17 27,,        DW      ATIME           ;(45, 2DH) TIME
00A3,14 AB,,        DW      A_IE            ;(46, 2EH) IE
00A5,14 AF,,        DW      A_IP            ;(47, 2FH) IP
00A7,14 B3,,        DW      ATIM0           ;(48, 30H) TIMER 0
00A9,14 B9,,        DW      ATIM1           ;(49, 31H) TIMER 1
00AB,14 BF,,        DW      ATIM2           ;(50, 32H) TIMER 2
00AD,14 C5,,        DW      AT2CON          ;(51, 33H) T2CON
00AF,14 C9,,        DW      ATCON           ;(52, 34H) TCON
00B1,14 CD,,        DW      ATMOD           ;(53, 35H) ATMOD
00B3,14 D1,,        DW      ARCAP2          ;(54, 36H) RCAP2
00B5,14 D7,,        DW      AP1             ;(55, 37H) P1
00B7,14 DB,,        DW      APCON           ;(56, 38H) PCON
00B9,0F 4C,,        DW      EXPRB           ;(57, 39H) EVALUATE AN EXPRESSION
00BB,16 4E,,        DW      AXTAL1          ;(58, 3AH) CALCULATE CRYSTAL
00BD,14 E2,,        DW      LINE            ;(59, 3BH) EDIT A LINE
00BF,15 AC,,        DW      PP              ;(60, 3CH) PROCESS A LINE
00C1,10 8C,,        DW      UPPL-3          ;(61, 3DH) UNPROCESS A LINE
00C3,0D 6E,,        DW      VAR             ;(62, 3EH) FIND A VARIABLE
00C5,0E D6,,        DW      GC              ;(63, 3FH) GET A CHARACTER
00C7,0E DE,,        DW      GCI             ;(64, 40H) GET CHARACTER AND INCREMENT
00C9,07 89,,        DW      INCHAR          ;(65, 41H) INPUT A CHARACTER
00CB,08 06,,        DW      CRUN            ;(66, 42H) RUN A PROGRAM
,,,$EJECT
00CD,01,OPBOL,OPBOL:  DB      1               ;
,,,        ;
00CE,0F,,        DB      15              ;LEFT PAREN
00CF,0E,,        DB      14              ;EXPONENTIAN **
00D0,0A,,        DB      10              ;MUL
00D1,08,,        DB      8               ;ADD
00D2,0A,,        DB      10              ;DIVIDE
00D3,08,,        DB      8               ;SUB
00D4,03,,        DB      3               ;XOR
00D5,05,,        DB      5               ;AND
00D6,04,,        DB      4               ;OR
00D7,0C,,        DB      12              ;NEGATE
00D8,06,,        DB      6               ;EQ
00D9,06,,        DB      6               ;GT
00DA,06,,        DB      6               ;LT
00DB,06,,        DB      6               ;NE
00DC,06,,        DB      6               ;LE
00DD,06,,        DB      6               ;GE
,,,        ;
00DE,0F,UOPBOL,UOPBOL: DB      15              ;AABS
00DF,0F,,        DB      15              ;AAINT
00E0,0F,,        DB      15              ;ASGN
00E1,0F,,        DB      15              ;ANOT
00E2,0F,,        DB      15              ;ACOS
00E3,0F,,        DB      15              ;ATAN
00E4,0F,,        DB      15              ;ASIN
00E5,0F,,        DB      15              ;ASQR
00E6,0F,,        DB      15              ;ACBYTE
00E7,0F,,        DB      15              ;E TO THE X
00E8,0F,,        DB      15              ;AATAN
00E9,0F,,        DB      15              ;NATURAL LOG
00EA,0F,,        DB      15              ;DBYTE
00EB,0F,,        DB      15              ;XBYTE
,,,        ;
,,,$EJECT
,,,        ;***************************************************************
,,,        ;
,,,        ; The ASCII printed messages.
,,,        ;
,,,        ;***************************************************************
,,,        ;
00EC,53 54 4F 50,STP,STP:    DB      'STOP"'
,,,        ;
00F1,54 52 59 20,IAN,IAN:    DB      'TRY AGAIN"'
,,,        ;
00FB,52 45 41 44,RDYS,RDYS:   DB      'READY"'
,,,        ;
0101,20 2D 20 49,INS,INS:    DB      ' - IN LINE "'
,,,        ;
,,,        ;**************************************************************
,,,        ;
,,,        ; This is the command jump table
,,,        ;
,,,        ;**************************************************************
,,,        ;
010D,08 06,CMNDD,CMNDD:  DW      CRUN            ;RUN
010F,10 3A,,        DW      CLIST           ;LIST
0111,0B 10,,        DW      CNULL           ;NULL
0113,06 54,,        DW      CNEW            ;NEW
0115,18 3F,,        DW      CCONT           ;CONTINUE
0117,04 61,,        DW      CPROG           ;PROGRAM A PROM
0119,17 71,,        DW      CXFER           ;TRANSFER FROM ROM TO RAM
011B,17 7D,,        DW      CRAM            ;RAM MODE
011D,05 36,,        DW      CROM            ;ROM MODE
011F,04 5A,,        DW      CIPROG          ;INTELLIGENT PROM PROGRAMMING
,,,        ;
,,,$EJECT
,,,        ;***************************************************************
,,,        ;
,,,        ; This is the statement jump table.
,,,        ;
,,,        ;**************************************************************
,,,        ;
0121,,STATD,STATD:  ;
0121,09 76,,        DW      SLET            ;LET            80H
0123,06 87,,        DW      SCLR            ;CLEAR          81H
0125,0A 7E,,        DW      SPUSH           ;PUSH VAR       82H
0127,0A B2,,        DW      SGOTO           ;GO TO          83H
0129,16 84,,        DW      STONE           ;TONE           84H
012B,0C 31,,        DW      SPH0            ;PRINT MODE 0   85H
012D,19 2C,,        DW      SUI             ;USER INPUT     86H
012F,19 31,,        DW      SUO             ;USER OUTPUT    87H
0131,0A 85,,        DW      SPOP            ;POP VAR        88H
0133,0C 35,,        DW      SPRINT          ;PRINT          89H
0135,0E 6C,,        DW      SCALL           ;CALL           8AH
0137,0D 6A,,        DW      SDIMX           ;DIMENSION      8BH
0139,06 04,,        DW      STRING          ;STRING ALLO    8CH
013B,16 F7,,        DW      SBAUD           ;SET BAUD       8DH
013D,19 19,,        DW      SCLOCK          ;CLOCK          8EH
013F,0C 33,,        DW      SPH1            ;PRINT MODE 1   8FH
,,,        ;
,,,        ; No direct mode from here on
,,,        ;
0141,08 5C,,        DW      SSTOP           ;STOP           90H
0143,0E 5F,,        DW      SOT             ;ON TIME        91H
0145,14 0B,,        DW      SONEXT          ;ON EXT INT     92H
0147,0B 16,,        DW      SRETI           ;RET FROM INT   93H
0149,0F 0E,,        DW      S_DO            ;DO             94H
014B,0B D6,,        DW      SRESTR          ;RESTOR         95H
014D,0F 05,,        DW      WCR             ;REM            96H
014F,0B 67,,        DW      SNEXT           ;NEXT           97H
0151,14 01,,        DW      SONERR          ;ON ERROR       98H
0153,0C F4,,        DW      S_ON            ;ON             99H
0155,0D FE,,        DW      SINPUT          ;INPUT          9AH
0157,0B EB,,        DW      SREAD           ;READ           9BH
0159,0E F5,,        DW      FINDCR          ;DATA           9CH
015B,0B 18,,        DW      SRETRN          ;RETURN         9DH
015D,0A 8E,,        DW      SIF             ;IF             9EH
015F,0B 35,,        DW      SGOSUB          ;GOSUB          9FH
0161,0A 44,,        DW      SFOR            ;FOR            A0H
0163,0B 04,,        DW      SWHILE          ;WHILE          A1H
0165,0B 09,,        DW      SUNTIL          ;UNTIL          A2H
0167,17 85,,        DW      CMND1           ;END            A3H
0169,18 5C,,        DW      I_DL            ;IDLE           A4H
016B,0F EE,,        DW      ST_A            ;STORE AT       A5H
016D,0F F2,,        DW      LD_A            ;LOAD AT        A6H
016F,05 0C,,        DW      PGU             ;PGM            A7H
0171,07 BC,,        DW      RROM            ;RUN A ROM      A9H
,,,        ;
,,,$EJECT
,,,        ;**************************************************************
,,,        ;
0173,,TOKTAB,TOKTAB: ; This is the basic token table
,,,        ;
,,,        ;**************************************************************
,,,        ;
,,,        ; First the tokens for statements
,,,        ;
0173,80,,        DB      80H             ;LET TOKEN
0174,4C 45 54,,        DB      'LET'
,,,        ;
0177,81,,        DB      81H             ;CLEAR TOKEN
0178,43 4C 45 41,,        DB      'CLEAR'
,,,        ;
017D,82,,        DB      82H             ;PUSH TOKEN
017E,50 55 53 48,,        DB      'PUSH'
,,,        ;
,,,T_GOTO  EQU     83H
,,,        ;
0182,83,,        DB      83H             ;GO TO TOKEN
0183,47 4F 54 4F,,        DB      'GOTO'
,,,        ;
0187,84,,        DB      84H             ;TOGGLE TOKEN
0188,50 57 4D,,        DB      'PWM'
,,,        ;
018B,85,,        DB      85H             ;PRINT HEX MODE 0
018C,50 48 30 2E,,        DB      'PH0.'
,,,        ;
0190,86,,        DB      86H             ;USER IN TOKEN
0191,55 49,,        DB      'UI'
,,,        ;
0193,87,,        DB      87H             ;USER OUT TOKEN
0194,55 4F,,        DB      'UO'
,,,        ;
0196,88,,        DB      88H             ;POP TOKEN
0197,50 4F 50,,        DB      'POP'
,,,        ;
,,,$EJECT
019A,89,,        DB      89H             ;PRINT TOKEN
019B,50 52 49 4E,,        DB      'PRINT'
01A0,89,,        DB      89H
01A1,50 2E,,        DB      'P.'            ;P. ALSO MEANS PRINT
01A3,89,,        DB      89H             ;? ALSO
01A4,3F,,        DB      '?'
,,,        ;
01A5,8A,,        DB      8AH             ;CALL TOKEN
01A6,43 41 4C 4C,,        DB      'CALL'
,,,        ;
01AA,8B,,        DB      8BH             ;DIMENSION TOKEN
01AB,44 49 4D,,        DB      'DIM'
,,,        ;
01AE,8C,,        DB      8CH             ;STRING TOKEN
01AF,53 54 52 49,,        DB      'STRING'
,,,        ;
01B5,8D,,        DB      8DH             ;SET BAUD RATE
01B6,42 41 55 44,,        DB      'BAUD'
,,,        ;
01BA,8E,,        DB      8EH             ;CLOCK
01BB,43 4C 4F 43,,        DB      'CLOCK'
,,,        ;
01C0,8F,,        DB      8FH             ;PRINT HEX MODE 1
01C1,50 48 31 2E,,        DB      'PH1.'
,,,        ;
,,,T_STOP  EQU     90H             ;STOP TOKEN
01C5,90,,        DB      T_STOP
01C6,53 54 4F 50,,        DB      'STOP'
,,,        ;
,,,T_DIR   EQU     T_STOP          ;NO DIRECT FROM HERE ON
,,,        ;
01CA,91,,        DB      T_STOP+1        ;ON TIMER INTERRUPT
01CB,4F 4E 54 49,,        DB      'ONTIME'

⌨️ 快捷键说明

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