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

📄 basic11.sdi

📁 该应用软件可以实现大多数单片机的仿真实验
💻 SDI
📖 第 1 页 / 共 5 页
字号:
E2A9,15,,         FCB    IFTOK
E2AA,E9 07,,         FDB    XIF
E2AC,49 4E 50 55 54,INPUT:, INPUT:  FCC    "INPUT"
E2B1,00,,         FCB    0
E2B2,16,,         FCB    INPUTTOK
E2B3,EA 40,,         FDB    XINPUT
E2B5,50 52 49 4E 54,PRINT:, PRINT:  FCC    "PRINT"
E2BA,00,,         FCB    0
E2BB,03,,         FCB    PRINTTOK
E2BC,E9 D8,,         FDB    XPRINT
E2BE,3F,,         FCC    "?"
E2BF,00,,         FCB    0
E2C0,03,,         FCB    PRINTTOK
E2C1,E9 D8,,         FDB    XPRINT
E2C3,46 4F 52,FOR:, FOR:    FCC    "FOR"
E2C6,00,,         FCB    0
E2C7,04,,         FCB    FORTOK
E2C8,E9 70,,         FDB    XFOR
E2CA,4E 45 58 54,NEXT:, NEXT:   FCC    "NEXT"
E2CE,00,,         FCB    0
E2CF,05,,         FCB    NEXTTOK
E2D0,E9 CB,,         FDB    XNEXT
E2D2,53 54 4F 50,STOPSS:, STOPSS: FCC    "STOP"
E2D6,00,,         FCB    0
E2D7,17,,         FCB    STOPTOK
E2D8,E3 FB,,         FDB    XSTOP
E2DA,45 4E 44 57 48,ENDWH:, ENDWH:  FCC    "ENDWH"
E2DF,00,,         FCB    0
E2E0,1A,,         FCB    ENDWHTOK
E2E1,E3 FB,,         FDB    XENDWH
E2E3,45 4E 44,ENDS:, ENDS:   FCC    "END"
E2E6,00,,         FCB    0
E2E7,18,,         FCB    ENDTOK
E2E8,E3 FB,,         FDB    XEND
E2EA,52 45 4D,REM:, REM:    FCC    "REM"
E2ED,00,,         FCB    0
E2EE,0A,,         FCB    REMTOK
E2EF,E3 FC,,         FDB    XREM
E2F1,54 52 4F 4E,TRON:, TRON:   FCC    "TRON"
E2F5,00,,         FCB    0
E2F6,06,,         FCB    TRONTOK
E2F7,E3 FB,,         FDB    XTRON
E2F9,54 52 4F 46 46,TROFF:, TROFF:  FCC    "TROFF"
E2FE,00,,         FCB    0
E2FF,07,,         FCB    TROFFTOK
E300,E3 FB,,         FDB    XTROFF
E302,57 48 49 4C 45,WHILE:, WHILE:  FCC    "WHILE"
E307,00,,         FCB    0
E308,19,,         FCB    WHILETOK
E309,EA 8B,,         FDB    XWHILE
E30B,50 4F 4B 45,POKE:, POKE:   FCC    "POKE"
E30F,00,,         FCB    0
E310,08,,         FCB    POKETOK
E311,E7 FA,,         FDB    XPOKE
E313,44 49 4D,DIM:, DIM:    FCC    "DIM"
E316,00,,         FCB    0
E317,09,,         FCB    DIMTOK
E318,EA 58,,         FDB    XDIM
E31A,45 45 50,EEP:, EEP:    FCC    "EEP"
E31D,00,,         FCB    0
E31E,1B,,         FCB    EEPTOK
E31F,E8 13,,         FDB    XEEP
E321,50 4F 52 54 41,PORTA:, PORTA:  FCC    "PORTA"
E326,00,,         FCB    0
E327,1C,,         FCB    PORTATOK
E328,E4 18,,         FDB    XPORTA
E32A,50 4F 52 54 42,PORTB:, PORTB:  FCC    "PORTB"
E32F,00,,         FCB    0
E330,1D,,         FCB    PORTBTOK
E331,E4 18,,         FDB    XPORTB
E333,50 4F 52 54 43,PORTC:, PORTC:  FCC    "PORTC"
E338,00,,         FCB    0
E339,1E,,         FCB    PORTCTOK
E33A,E4 18,,         FDB    XPORTC
E33C,50 4F 52 54 44,PORTD:, PORTD:  FCC    "PORTD"
E341,00,,         FCB    0
E342,1F,,         FCB    PORTDTOK
E343,E4 18,,         FDB    XPORTD
E345,49 4E 42 59 54 45,INBYTES:, INBYTES:        FCC    "INBYTE"
E34B,00,,         FCB    0
E34C,23,,         FCB    INBYTTOK
E34D,EA 83,,         FDB    XINBYTE
E34F,54 49 4D 45,TIME:, TIME:   FCC    "TIME"
E353,00,,         FCB    0
E354,24,,         FCB    TIMETOK
E355,EA 93,,         FDB    XTIME
E357,52 45 54 49,RETI:, RETI:   FCC    "RETI"
E35B,00,,         FCB    0
E35C,27,,         FCB    RETITOK
E35D,E3 FB,,         FDB    XRETI
E35F,50 41 43 43,PACC:, PACC:   FCC    "PACC"
E363,00,,         FCB    0
E364,0B,,         FCB    PACCTOK
E365,EA 93,,         FDB    XPACC
E367,53 4C 45 45 50,SLEEP:, SLEEP:  FCC    "SLEEP"
E36C,00,,         FCB    0
E36D,29,,         FCB    SLEEPTOK
E36E,E3 FB,,         FDB    XSLEEP
E370,52 54 49 4D 45,RTIMES:, RTIMES: FCC    "RTIME"
E375,00,,         FCB    0
E376,2A,,         FCB    RTIMETOK
E377,E3 FB,,         FDB    XRTIME
E379,00,,         FCB    0           ; END OF TABLE MARKER.
,,,
,,, *blanks()
,,, *{
,,, * short spcnt;
,,, * spcnt=0;
,,, * while(*ibufptr==SPC) { ibufptr++; spcnt++; }
,,, *
,,, BLANKS: EQU    *
E37A,3C,,         PSHX
E37B,DE 00,,         LDX    IBUFPTR
E37D,5F,,         CLRB
E37E,A6 00,BLANKS1:, BLANKS1:        LDAA   0,X
E380,81 20,,         CMPA   #SPC
E382,26 04,,         BNE    BLANKS2
E384,5C,,         INCB
E385,08,,         INX
E386,20 F6,,         BRA    BLANKS1
,,, *
,,, * if(spcnt==0) return;
,,, *
E388,5D,BLANKS2:, BLANKS2:        TSTB
E389,26 02,,         BNE    BLANKS3
E38B,38,,         PULX
E38C,39,,         RTS
,,, *
,,, * if(spcnt>1)
,,, *  {
,,, *   *tbufptr++=MSCNTOK;
,,, *   *tbufptr++=spcnt;
,,, *  }
,,, *
E38D,DF 00,BLANKS3:, BLANKS3:        STX    IBUFPTR
E38F,DE 02,,         LDX    TBUFPTR
E391,C1 01,,         CMPB   #1
E393,27 0C,,         BEQ    BLANKS4
E395,86 7F,,         LDAA   #MSCNTOK
E397,A7 00,,         STAA   0,X
E399,08,,         INX
E39A,E7 00,BLANKS5:, BLANKS5:        STAB   0,X
E39C,08,,         INX
E39D,DF 02,,         STX    TBUFPTR
E39F,38,,         PULX
E3A0,39,,         RTS
,,, *
,,, * else
,,, *  {
,,, *   *tbufptr++=SSCNTOK;
,,, *  }
,,, * return;
,,, *}
,,, *
E3A1,C6 7E,BLANKS4:, BLANKS4:        LDAB   #SSCNTOK
E3A3,20 F5,,         BRA    BLANKS5
,,, *
,,, *
,,, *<><><><><><><> NOTE: THIS FUNCTION NOT NEEDED <><><><><><><>
,,, *
,,, */**************************************
,,, *             match()
,,, * try to find match between *lit and
,,, * *ibufptr. if match found, ibufptr is
,,, * advanced to point beyond *lit. the
,,, * string pointed to by lit must be null
,,, * terminated.
,,, ***************************************/
,,, *
,,, *match(lit)
,,, *char *lit;
,,, *{
,,, * int k;
,,, * if(k=streq(ibufptr,lit))
,,, * {
,,, *  ibufptr+=k;
,,, *  return(1);
,,, * }
,,, * return(0);
,,, *}
,,,
,,, */****************************************
,,, *               streq()
,,, * compare srt1 to str2. str2 must be null
,,, * terminated.
,,, *****************************************/
,,, *
,,, *streq(str1,str2)
,,, *char *str1,*str2;
,,, *{
,,, * int k;
,,, * k=0;
,,, * while(str2[k])         /* we're not at the end of string2 */
,,, * {
,,, *  if((str1[k])!=(str2[k])) return(0);
,,, *  k++;
,,, * }
,,, * return(k);
,,, *}
,,, *
,,, STREQ:  EQU    *
E3A5,DC 00,,         LDD    IBUFPTR     ; SAVE VALUE OF POINTER.
,,, *        PSHD
E3A7,37,,         PSHB
E3A8,36,,         PSHA
E3A9,A6 00,STREQU4:, STREQU4:        LDAA   0,X
E3AB,27 12,,         BEQ    STREQU2
E3AD,8D 1B,STREQU1:, STREQU1:        BSR    GETNXCHR
E3AF,BD E0 FA,,         jsr    ToUpper  ; Make the character upper case.
E3B2,A1 00,,         CMPA   0,X
E3B4,27 06,,         BEQ    STREQU3
,,, *        PULD
E3B6,32,,         PULA
E3B7,33,,         PULB
E3B8,DD 00,,         STD    IBUFPTR
E3BA,0C,,         CLC
E3BB,39,,         RTS
E3BC,08,STREQU3:, STREQU3:        INX
E3BD,20 EA,,         BRA    STREQU4
E3BF,32,STREQU2:, STREQU2:        PULA
E3C0,33,,         PULB
E3C1,0D,,         SEC
E3C2,39,,         RTS
,,, *
,,, *
,,, *        THIS ROUTINE GETS THE NEXT CHARACTER FROM THE INPUT BUFFER.
,,, *
,,, *
E3C3,3C,GETCHR:, GETCHR: PSHX               ; SAVE THE X REGISTER.
E3C4,DE 00,,         LDX    IBUFPTR     ; GET POINTER.
E3C6,A6 00,,         LDAA   0,X         ; GET A CHARACTER.
E3C8,38,,         PULX               ; RESTORE X.
E3C9,39,,         RTS                ; RETURN.
,,, *
,,, *
,,, *        THIS ROUTINE GETS THE NEXT CHARACTER FROM THE INPUT BUFFER
,,, *        AND ADVANCES THE POINTER TO POINT TO THE NEXT CHARACTER.
,,, *
,,, *
E3CA,8D F7,GETNXCHR:, GETNXCHR:       BSR    GETCHR
,,, *                       FALL THROUGH TO INCIBP.
,,, *
,,, *
,,, *        THIS ROUTINE JUST INCREMENTS THE INPUT BUFFER POINTER.
,,, *
,,, *
E3CC,3C,INCIBP:, INCIBP: PSHX               ; SAVE X.
E3CD,DE 00,,         LDX    IBUFPTR     ; GET POINTER.
E3CF,08,INCIBP1:, INCIBP1:        INX                ; ADVANCE POINTER.
E3D0,DF 00,,         STX    IBUFPTR     ; UPDATE POINTER.
E3D2,38,INCIBP2:, INCIBP2:        PULX               ; RESTORE X
E3D3,39,,         RTS                ; RETURN.
,,, *
,,, *
,,, *        THIS ROUTINE PUTS THE WORD IN THE D-REG. INTO THE TOKEN BUFFER
,,, *        AND ADVANCES THE TOKEN BUFFER POINTER.
,,, *
,,, *
E3D4,8D 01,PUTDTOK:, PUTDTOK:        BSR    PUTTOK      ; PUT THE FIRST BYTE INTO THE TOKEN BUFFER.
E3D6,17,,         TBA                ; PUT THE 2ND BYTE INTO A.
,,, *                            ; FALL THROUGH TO PUTTOK.
,,, *
,,, *
,,, *        THIS ROUTINE PUTS THE CHARACTER IN THE A-REG. INTO THE TOKEN
,,, *        BUFFER AND ADVANCES THE TOKEN BUFFER POINTER.
,,, *
,,, *
E3D7,3C,PUTTOK:, PUTTOK: PSHX               ; SAVE X.
E3D8,37,,         pshb
E3D9,36,,         psha                                    ; (9/12/89).
E3DA,DE 02,,         LDX    TBUFPTR     ; GET POINTER.
E3DC,A7 00,,         STAA   0,X         ; PUT CHARACTER.
E3DE,08,PUTTOK1:, PUTTOK1:        INX                ; ADVANCE POINTER.
E3DF,DF 02,,         STX    TBUFPTR     ; SAVE POINTER.
,,,
E3E1,DC 4B,,         LDD    TKNBUFS     ; get the starting address of the token buffer.
E3E3,C3 00 80,,         ADDD   #TBUFLEN    ; add the length of the buffer to it.
E3E6,1A 93 02,,         CPD    TBUFPTR     ; IS THE TOKEN BUFFER FULL?
E3E9,32,,         pula                                    ; (9/12/89).
E3EA,33,,         pulb               ; restore the b reg.
E3EB,22 E5,,         BHI    INCIBP2     ; NO. RESTORE X AND RETURN.
E3ED,86 14,,         LDAA   #EXPCXERR   ; YES. FLAG THE ERROR.
E3EF,7E EA 98,,         JMP    RPTERR      ; GO REPORT IT.
,,, #Include  'BASICLB2.Asm'
,,, *        title    BASICLB2
,,, *        page
,,, *
,,, *
,,, *<><><><><><> NOTE: FUNCTION PERFORMED IN "XLATE" <><><><><><>
,,, *
,,, */***** xmideol() *****/
,,, *
,,, *xmideol()
,,, *{
,,, * *tbufptr++=MEOLTOK;
,,, * ++ibufptr;
,,, * return;
,,, *}
,,, *
,,, *
,,, *
,,, */****** common code for GOSUB and GOTO *****/
,,, *
,,, *xgo(gotok)
,,, *char gotok;
,,, *{
,,, * int num;
,,, * *tbufptr++=gotok;      /* put GOTO or GOSUB token in buffer */
,,, * blanks();              /* skip blanks before line number */
,,, * *tbufptr++=LCONTOK;    /* put line number constant token in buffer */
,,, * num=getlinum();        /* get line number */
,,, * if(num==0) errcode=LINENERR;   /* if 0, line number error */
,,, * if(errcode) return;    /* if error, return */
,,, * putint(num);           /* put line number in buffer */
,,, * return;
,,, *}
,,, *
,,, XGOSUB: EQU    *
,,, XGOTO:  EQU    *
,,, *        JSR    BLANKS
E3F2,86 A8,,         LDAA   #LCONTOK
E3F4,8D E1,,         BSR    PUTTOK
E3F6,BD E1 6C,,         JSR    GETLINUM
E3F9,20 D9,XGOTO2:, XGOTO2: BRA    PUTDTOK
,,, *
,,, *
,,, *<><><><><><> ROUTINE NOT NEEDED <><><><><><>
,,, *
,,, */***** GOSUB *****/
,,, *
,,, *xgosub()
,,, *{
,,, * xgo(GOSUBTOK);
,,, * return;
,,, *}
,,, *
,,, *
,,, *<><><><><><> ROUTINE NOT NEEDED <><><><><><>
,,, *
,,, */***** GOTO *****/
,,, *
,,, *xgoto()
,,, *{
,,, * xgo(GOTOTOK);
,,, * return;
,,, *}
,,,
,,, */***** RETURN *****/
,,, *
,,, *xreturn()
,,, *{
,,, * *tbufptr++=RETNTOK;    /* put RETURN token in buffer */
,,, * return;

⌨️ 快捷键说明

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