Advertisement
12Me21

SBSY

Jul 31st, 2017
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. OPTION DEFINT
  2.  
  3. DIM KEYWORDS$[47],FUNCTIONS$[243]
  4. COPY KEYWORDS$,@KEYWORDS
  5. COPY FUNCTIONS$,@FUNCTIONS
  6.  
  7. @FUNCTIONS
  8. 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"
  9.  
  10. @KEYWORDS
  11. 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"
  12.  
  13. DEF CONTAINS$(ARRAY$,TARGET$)
  14. VAR LOW,HIGH=LEN(ARRAY$)-1
  15. WHILE LOW<=HIGH
  16. VAR MID=LOW+HIGH>>1
  17. VAR A$=ARRAY$[MID]
  18. IF A$<TARGET$ THEN
  19. LOW=MID+1
  20. ELSEIF A$>TARGET$ THEN
  21. HIGH=MID-1
  22. ELSE
  23. RETURN TRUE
  24. ENDIF
  25. WEND
  26. RETURN FALSE
  27. END
  28.  
  29. DEF UPPER$(STRING$)
  30. STRING$=STRING$+""
  31. FOR I=LEN(STRING$)-1 TO 0 STEP -1
  32. VAR A=ASC(STRING$[I])
  33. IF A>=97 && A<=122 THEN STRING$[I]=CHR$(A-32)
  34. NEXT
  35. RETURN STRING$
  36. END
  37.  
  38. ACLS
  39. N$=CHR$(10)
  40. R$=CHR$(13)
  41. Q$=CHR$(34)
  42.  
  43. C=MILLISEC
  44. I=-1
  45.  
  46. VAR CODE$=LOAD("TXT:ASTEROIDS",0)+" "
  47. GOSUB @SCAN
  48. WHILE 1
  49. IF C$=="." || (C$>="0" && C$<="9") THEN
  50. WHILE C$>="0" && C$<="9"
  51. GOSUB @SCAN
  52. WEND
  53. IF C$=="." THEN
  54. START=I
  55. REPEAT
  56. GOSUB @SCAN
  57. UNTIL C$<"0" || C$>"9"
  58. IF I==START+1 THEN GOTO @SKIP_E
  59. ENDIF
  60. IF C$=="E" THEN
  61. START=I
  62. REPEAT
  63. GOSUB @SCAN
  64. UNTIL C$<"0" || C$>"9"
  65. IF I==START+1 THEN
  66. DEC I
  67. PUSHKW 0
  68. GOTO @BAD_NUMBER
  69. ENDIF
  70.  
  71. ENDIF
  72. @SKIP_E
  73. IF C$=="#" THEN GOSUB @SCAN
  74. PUSHKW 1
  75. @BAD_NUMBER
  76.  
  77. ELSEIF (C$>="A" && C$<="Z") || C$=="_" THEN
  78. REPEAT
  79. GOSUB @SCAN
  80. UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"Z") && C$!="_"
  81. IF C$>="#" && C$<="%" THEN GOSUB @SCAN
  82. PUSHKW -1
  83.  
  84. ELSEIF C$=="&" THEN
  85. GOSUB @SCAN
  86. IF C$=="&" THEN
  87. GOSUB @SCAN
  88. PUSHKW 0
  89. ELSEIF C$=="H" THEN
  90. START=I
  91. REPEAT
  92. GOSUB @SCAN
  93. UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"F")
  94. IF I==START+1 THEN
  95. DEC I
  96. PUSHKW 0
  97. ELSE
  98. PUSHKW 1
  99. ENDIF
  100. ELSEIF C$=="B" THEN
  101. START=I
  102. REPEAT
  103. GOSUB @SCAN
  104. UNTIL C$!="0" && C$!="1"
  105. IF I==START+1 THEN
  106. DEC I
  107. PUSHKW 0
  108. ELSE
  109. PUSHKW 1
  110. ENDIF
  111. ELSE
  112. PUSHKW 0
  113. ENDIF
  114.  
  115. ELSEIF C$=="@" THEN
  116. REPEAT
  117. GOSUB @SCAN
  118. UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"Z") && C$!="_"
  119. PUSHKW 6
  120.  
  121. ELSEIF C$=="#" THEN
  122. START=I
  123. REPEAT
  124. GOSUB @SCAN
  125. UNTIL (C$<"0" || C$>"9") && (C$<"A" || C$>"Z")
  126. IF I==START+1 THEN
  127. PUSHKW 0
  128. ELSE
  129. PUSHKW 1
  130. ENDIF
  131.  
  132. ELSEIF C$==Q$ THEN
  133. REPEAT
  134. GOSUB @SCAN
  135. UNTIL C$==Q$ || C$==N$ || C$==R$
  136. IF C$==Q$ THEN GOSUB @SCAN
  137. PUSHKW 2
  138.  
  139. ELSEIF C$=="'" THEN
  140. REPEAT
  141. GOSUB @SCAN
  142. UNTIL C$==N$ || C$==R$
  143. PUSHKW 5
  144.  
  145. ELSEIF C$==" " THEN
  146. WAIT 1000
  147. ?MILLISEC-C
  148. STOP
  149.  
  150. ELSE
  151. GOSUB @SCAN
  152. PUSHKW 0
  153.  
  154. ENDIF
  155. WEND
  156.  
  157. STOP
  158.  
  159. VAR KEW=0
  160. DEF PUSHKW TYPE
  161. WORD$=MID$(CODE$,KEW,I-KEW)
  162. KEW=I
  163.  
  164. IF TYPE==-1 THEN 'KEYWORD/FUNCTION/TEXT
  165. VAR UWORD$=UPPER$(WORD$)
  166. IF CONTAINS$(KEYWORDS$,UWORD$) THEN
  167. GCOLOR RGB(55,163,237)
  168. ELSEIF CONTAINS$(FUNCTIONS$,UWORD$) THEN
  169. GCOLOR RGB(200,122,237)
  170. ELSE
  171. GCOLOR #WHITE
  172. ENDIF
  173. ELSEIF TYPE==0 THEN 'TEXT
  174. GCOLOR #WHITE
  175. ELSEIF TYPE==1 THEN 'NUMBER
  176. GCOLOR RGB(255,58,131)
  177. ELSEIF TYPE==2 THEN 'STRING
  178. GCOLOR RGB(0,255,64)
  179. ELSEIF TYPE==5 THEN 'COMMENT
  180. GCOLOR RGB(102,102,102)
  181. ELSEIF TYPE==6 THEN 'LABEL
  182. GCOLOR RGB(128,255,0)
  183. ENDIF
  184. GPRINT WORD$
  185. END
  186.  
  187. @SCAN
  188. INC I
  189. C$=CODE$[I]
  190. IF C$>="a" && C$<="z" THEN C$=CHR$(ASC(C$)-32)
  191. RETURN
  192.  
  193. GX=0
  194. GY=0
  195. DEF GPRINT S$
  196. VAR I
  197. FOR I=0 TO LEN(S$)-1
  198. GPUTCHR GX,GY,S$[I]
  199. GX=GX+7
  200. IF S$[I]==N$ THEN GX=0:GY=GY+9
  201. IF GX>400-7 THEN GX=0:GY=GY+9
  202. NEXT
  203. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement