Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- OPTION DEFINT
- DIM KEYWORDS$[47],FUNCTIONS$[243]
- COPY KEYWORDS$,@KEYWORDS
- COPY FUNCTIONS$,@FUNCTIONS
- @FUNCTIONS
- DATA "ABS","ACCEL","ACLS","ACOS","ARYOP","ASC","ASIN","ATAN","ATTR","BACKCOLOR","BACKTRACE","BEEP","BGANIM","BGCHK","BGCLIP","BGCLR","BGCOLOR","BGCOORD","BGCOPY","BGFILL","BGFUNC","BGGET","BGHIDE","BGHOME","BGLOAD","BGMCHK","BGMCLEAR","BGMCONT","BGMPAUSE","BGMPLAY","BGMPRG","BGMPRGA","BGMSET","BGMSETD","BGMSTOP","BGMVAR","BGMVOL","BGOFS","BGPAGE","BGPUT","BGROT","BGSAVE","BGSCALE","BGSCREEN","BGSHOW","BGSTART","BGSTOP","BGVAR","BIN$","BIQUAD","BQPARAM","BREPEAT","BUTTON","CALLIDX","CEIL","CHKCALL","CHKCHR","CHKFILE","CHKLABEL","CHKVAR","CHR$","CLASSIFY","CLIPBOARD","CLS","COLOR","COPY","COS","COSH","CSRX","CSRY","CSRZ","DATE$","DEG","DELETE","DIALOG","DISPLAY","DLCOPEN","DTREAD","EFCOFF","EFCON","EFCSET","EFCWET","ERRLINE","ERRNUM","ERRPRG","EXP","EXTFEATURE","FADE","FADECHK","FFT","FFTWFN","FILES","FILL","FLOOR","FONTDEF","FORMAT$","FREEMEM","GBOX","GCIRCLE","GCLIP","GCLS","GCOLOR","GCOPY","GFILL","GLINE","GLOAD","GOFS","GPAGE","GPAINT","GPRIO","GPSET","GPUTCHR","GSAVE","GSPOIT","GTRI","GYROA","GYROSYNC","GYROV","HARDWARE","HEX$","IFFT","INKEY$","INSTR","KEY","LEFT$","LEN","LOAD","LOCATE","LOG","MAINCNT","MAX","MICDATA","MICPOS","MICSAVE","MICSIZE","MICSTART","MICSTOP","MID$","MILLISEC","MIN","MPCOUNT","MPEND","MPGET","MPHOST","MPLOCAL","MPNAME$","MPRECV","MPSEND","MPSET","MPSTART","MPSTAT","OPTION","PCMCONT","PCMPOS","PCMSTOP","PCMSTREAM","PCMVOL","POP","POW","PRGDEL","PRGEDIT","PRGGET$","PRGINS","PRGNAME$","PRGSET","PRGSIZE","PRGSLOT","PROJECT","PUSH","RAD","RANDOMIZE","RENAME","RESULT","RGB","RGBREAD","RIGHT$","RINGCOPY","RND","RNDF","ROUND","RSORT","SAVE","SCROLL","SGN","SHIFT","SIN","SINH","SNDSTOP","SORT","SPANIM","SPCHK","SPCHR","SPCLIP","SPCLR","SPCOL","SPCOLOR","SPCOLVEC","SPDEF","SPFUNC","SPHIDE","SPHITINFO","SPHITRC","SPHITSP","SPHOME","SPLINK","SPOFS","SPPAGE","SPROT","SPSCALE","SPSET","SPSHOW","SPSTART","SPSTOP","SPUNLINK","SPUSED","SPVAR","SQR","STICK","STICKEX","STR$","SUBST$","SYSBEEP","TABSTEP","TALK","TALKCHK","TALKSTOP","TAN","TANH","TIME$","TMREAD","TOUCH","UNSHIFT","VAL","VERSION","VISIBLE","VSYNC","WAIT","WAVSET","WAVSETA","WIDTH","XOFF","XON","XSCREEN"
- @KEYWORDS
- DATA "AND","BREAK","CALL","COMMON","CONTINUE","DATA","DEC","DEF","DIM","DIV","ELSE","ELSEIF","END","ENDIF","EXEC","FALSE","FOR","GOSUB","GOTO","IF","INC","INPUT","LINPUT","MOD","NEXT","NOT","ON","OR","OUT","PRINT","READ","REM","REPEAT","RESTORE","RETURN","STEP","STOP","SWAP","THEN","TO","TRUE","UNTIL","USE","VAR","WEND","WHILE","XOR"
- DEF CONTAINS$(ARRAY$,TARGET$)
- VAR LOW,HIGH=LEN(ARRAY$)-1
- WHILE LOW<=HIGH
- VAR MID=LOW+HIGH>>1
- VAR A$=ARRAY$[MID]
- IF A$<TARGET$ THEN
- LOW=MID+1
- ELSEIF A$>TARGET$ THEN
- HIGH=MID-1
- ELSE
- RETURN TRUE
- ENDIF
- WEND
- RETURN FALSE
- END
- DEF UPPER$(STRING$)
- STRING$=STRING$+""
- FOR I=LEN(STRING$)-1 TO 0 STEP -1
- VAR A=ASC(STRING$[I])
- IF A>=97 && A<=122 THEN STRING$[I]=CHR$(A-32)
- NEXT
- RETURN STRING$
- END
- ACLS
- N$=CHR$(10)
- R$=CHR$(13)
- Q$=CHR$(34)
- C=MILLISEC
- I=-1
- VAR CODE$=LOAD("TXT:ASTEROIDS",0)+" "
- GOSUB @SCAN
- WHILE 1
- IF C$=="." || (C$>="0" && C$<="9") THEN
- WHILE C$>="0" && C$<="9"
- GOSUB @SCAN
- WEND
- IF C$=="." THEN
- START=I
- REPEAT
- GOSUB @SCAN
- UNTIL C$<"0" || C$>"9"
- IF I==START+1 THEN GOTO @SKIP_E
- ENDIF
- IF C$=="E" THEN
- START=I
- REPEAT
- GOSUB @SCAN
- UNTIL C$<"0" || C$>"9"
- IF I==START+1 THEN
- DEC I
- PUSHKW 0
- GOTO @BAD_NUMBER
- ENDIF
- ENDIF
- @SKIP_E
- IF C$=="#" THEN GOSUB @SCAN
- PUSHKW 1
- @BAD_NUMBER
- ELSEIF (C$>="A" && C$<="Z") || C$=="_" THEN
- REPEAT
- GOSUB @SCAN
- UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"Z") && C$!="_"
- IF C$>="#" && C$<="%" THEN GOSUB @SCAN
- PUSHKW -1
- ELSEIF C$=="&" THEN
- GOSUB @SCAN
- IF C$=="&" THEN
- GOSUB @SCAN
- PUSHKW 0
- ELSEIF C$=="H" THEN
- START=I
- REPEAT
- GOSUB @SCAN
- UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"F")
- IF I==START+1 THEN
- DEC I
- PUSHKW 0
- ELSE
- PUSHKW 1
- ENDIF
- ELSEIF C$=="B" THEN
- START=I
- REPEAT
- GOSUB @SCAN
- UNTIL C$!="0" && C$!="1"
- IF I==START+1 THEN
- DEC I
- PUSHKW 0
- ELSE
- PUSHKW 1
- ENDIF
- ELSE
- PUSHKW 0
- ENDIF
- ELSEIF C$=="@" THEN
- REPEAT
- GOSUB @SCAN
- UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"Z") && C$!="_"
- PUSHKW 6
- ELSEIF C$=="#" THEN
- START=I
- REPEAT
- GOSUB @SCAN
- UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"Z")
- IF I==START+1 THEN
- PUSHKW 0
- ELSE
- PUSHKW 1
- ENDIF
- ELSEIF C$==Q$ THEN
- REPEAT
- GOSUB @SCAN
- UNTIL C$==Q$ || C$==N$ || C$==R$
- IF C$==Q$ THEN GOSUB @SCAN
- PUSHKW 2
- ELSEIF C$=="'" THEN
- REPEAT
- GOSUB @SCAN
- UNTIL C$==N$ || C$==R$
- PUSHKW 5
- ELSEIF C$==" " THEN
- WAIT 1000
- ?MILLISEC-C
- STOP
- ELSE
- GOSUB @SCAN
- PUSHKW 0
- ENDIF
- WEND
- STOP
- VAR KEW=0
- DEF PUSHKW TYPE
- WORD$=MID$(CODE$,KEW,I-KEW)
- KEW=I
- IF TYPE==-1 THEN 'KEYWORD/FUNCTION/TEXT
- VAR UWORD$=UPPER$(WORD$)
- IF CONTAINS$(KEYWORDS$,UWORD$) THEN
- GCOLOR RGB(55,163,237)
- ELSEIF CONTAINS$(FUNCTIONS$,UWORD$) THEN
- GCOLOR RGB(200,122,237)
- ELSE
- GCOLOR #WHITE
- ENDIF
- ELSEIF TYPE==0 THEN 'TEXT
- GCOLOR #WHITE
- ELSEIF TYPE==1 THEN 'NUMBER
- GCOLOR RGB(255,58,131)
- ELSEIF TYPE==2 THEN 'STRING
- GCOLOR RGB(0,255,64)
- ELSEIF TYPE==5 THEN 'COMMENT
- GCOLOR RGB(102,102,102)
- ELSEIF TYPE==6 THEN 'LABEL
- GCOLOR RGB(128,255,0)
- ENDIF
- GPRINT WORD$
- END
- @SCAN
- INC I
- C$=CODE$[I]
- IF C$>="a" && C$<="z" THEN C$=CHR$(ASC(C$)-32)
- RETURN
- GX=0
- GY=0
- DEF GPRINT S$
- VAR I
- FOR I=0 TO LEN(S$)-1
- GPUTCHR GX,GY,S$[I]
- GX=GX+7
- IF S$[I]==N$ THEN GX=0:GY=GY+9
- IF GX>400-7 THEN GX=0:GY=GY+9
- NEXT
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement