Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. CR .( SFF.F)
  2. \ ' ANSI>OEM TO ANSI><OEM
  3. \ ' OEM>ANSI TO ANSI><OEM
  4.  
  5. REQUIRE DUPENDCASE ~mak/case.f
  6.  
  7. CR .( DC=) ' DUPENDCASE .
  8.  
  9. VARIABLE START-LAB
  10. VARIABLE FINISH-LAB
  11. VARIABLE START-LIST
  12. VARIABLE FINISH-LIST
  13. VARIABLE START-LIST2
  14. VARIABLE FINISH-LIST2
  15. VARIABLE FINISH-LIST3
  16. VARIABLE START-VAR
  17. VARIABLE FINISH-VAR
  18. VARIABLE START-ARRAY
  19. VARIABLE FINISH-ARRAY
  20.  0 VALUE IMAGE-END
  21. S" lib/ext/disasm2.f" INCLUDED
  22.  1000 CELLS ALLOCATE DROP DUP START-VAR   ! FINISH-VAR   !
  23.  1000 CELLS ALLOCATE DROP DUP START-LIST  ! FINISH-LIST  !
  24.  1000 CELLS ALLOCATE DROP DUP START-LIST2 ! FINISH-LIST2 !
  25.  1000 CELLS ALLOCATE DROP DUP START-LAB   ! FINISH-LAB   !
  26.  100  CELLS ALLOCATE DROP DUP START-ARRAY ! FINISH-ARRAY !
  27.  
  28. \ REQUIRE [IF] ~mak/CompIF.f
  29. REQUIRE [IFNDEF] ~nn/lib/ifdef.f
  30. \ REQUIRE (* ~af/lib/comments.f
  31.  
  32. : CC HERE DROP ; IMMEDIATE
  33.  
  34. : KDD KEY DROP ;
  35.  
  36. VARIABLE HSSSS
  37. VARIABLE ZSSSS
  38. 0 VALUE ALITERAL-CODE
  39.  
  40. \ !!! REQUIRE Z" ~mak/~af/lib/c/zstr.f
  41.  
  42. [IFNDEF] PARSE-WORD : PARSE-WORD NextWord  ;
  43. [THEN]
  44.  
  45. [IFNDEF] PSKIP  : PSKIP SKIP ;
  46. [THEN]
  47. \ : KEY MKEY ;: KEY? MKEY? ;
  48. \ REQUIRE SEE lib/ext/disasm.f
  49. \ REQUIRE SEE lib/ext/disasm1.f
  50. : B, C, ; : B@ C@ ; : B! C! ; : /CHAR 1 ;
  51. : PARSE-NAME NextWord ;
  52. \ : UMIN 2DUP U< IF DROP EXIT THEN NIP ;
  53.  
  54. REQUIRE {              ~ac\lib\locals.f
  55.  
  56. \ REQUIRE {              lib\ext\locals.f
  57.  
  58. [IFDEF] z z : z d
  59. [THEN]
  60.  
  61. [IFDEF] d z ; POSTPONE d d IMMEDIATE
  62. [THEN]
  63.  
  64. WARNING 0! \ ÷òîáû íå áûëî ñîîáùåíèé isn't unique
  65.  
  66. S" lib/include/tools.f"                     INCLUDED
  67.  
  68. C" CELL-"  FIND NIP 0=
  69. [IF] : CELL- 1 CELLS - ;
  70. [THEN]
  71. C" U>"  FIND NIP 0=
  72. [IF] : U> SWAP U< ;
  73. [THEN]
  74. C" D-" FIND NIP 0=
  75. [IF]
  76. : D- ( D1 D2  -- FLAG )
  77.       DNEGATE D+ ;
  78. [THEN]
  79. C" D=" FIND NIP 0=
  80. [IF]
  81. : D= ( D1 D2  -- FLAG )
  82.        D- D0= ;
  83. [THEN]
  84.  
  85. C" \S" FIND NIP 0=
  86. [IF]
  87. : \S            \ comment to end of file
  88.      SOURCE-ID FILE-SIZE DROP
  89.      SOURCE-ID REPOSITION-FILE DROP
  90.      [COMPILE] \ ; IMMEDIATE
  91. [THEN]
  92.  
  93. S" ~mak/utils_.f"                    INCLUDED
  94.  
  95. \ S" lib/ext/spf-asm.f"            INCLUDED
  96. \ ALSO ASSEMBLER ALSO ASM-HIDDEN
  97. \ '  NOOP IS  CODE-ALIGN
  98. \ PREVIOUS PREVIOUS
  99.  
  100. S" ~mak/asm/ASM.FRT"                   INCLUDED
  101.  
  102.  
  103. \ S" lib/include/tools.f"          INCLUDED
  104.  
  105.  
  106. C" LAST-HERE" FIND NIP 0= VALUE INLINEVAR
  107.  
  108. ' DUP VALUE 'DUP
  109. 0 VALUE RESERVE
  110. USER-HERE CONSTANT USER-HERE-SET
  111. USER-HERE-SET TO RESERVE
  112. MODULE: GSPF0
  113. S" src/global.f"              INCLUDED
  114. ;MODULE
  115.  
  116. S" src/global.f"              INCLUDED
  117. S" src/tc_spfopt.f"           INCLUDED
  118.  
  119. ' _CONSTANT-CODE        TO CONSTANT-CODE
  120. ' _CREATE-CODE          TO CREATE-CODE
  121. ' _CLITERAL-CODE        TO CLITERAL-CODE      
  122. ' _SLITERAL-CODE        TO SLITERAL-CODE      
  123.  
  124. \ : TOMM_SIZE TO MM_SIZE ;
  125.  
  126. DIS-OPT
  127. \ VOCABULARY GSPF0
  128. : ?HS
  129. HERE           CELL- @
  130. HERE HSSSS @ + CELL- @  <>
  131. IF CR
  132.   HERE           CELL- @ H.
  133.   HERE HSSSS @ + CELL- @ H.
  134.   -1  ABORT"  HSSSS "
  135. THEN
  136. ;
  137. : TT 0 IF THEN ;
  138.  
  139. \ : CODE ?HS CODE ;
  140.  
  141. \ ALSO GGSPF0
  142. ALSO GSPF0 DEFINITIONS
  143.  
  144. : >R POSTPONE >R ; IMMEDIATE
  145. : R> POSTPONE R> ; IMMEDIATE
  146. CR
  147. 0x10 TOMM_SIZE
  148. HERE   DUP H.
  149. HERE 0xF OR 1+ DP !
  150. HERE   DUP H.  MM_SIZE H.
  151.  
  152.  HERE ZSSSS  !   0 HSSSS  !
  153. 0x11223344 , 0x55667788 , ?HS
  154. S" src/gspf0.f"              INCLUDED
  155. CR MM_SIZE H.
  156.  
  157. PREVIOUS  ( PREVIOUS  ) DEFINITIONS
  158.  
  159. \ ALSO GSPF0
  160. MM_SIZE H.
  161. [IFDEF] S"_L"  S" _LL"   S"_L" PLACE [THEN]
  162.  
  163. \ S" src/global.f"              INCLUDED
  164. CR
  165. 0x10 TOMM_SIZE
  166. HERE   DUP H.
  167. HERE 0xF OR 1+ DP !
  168. HERE   DUP H.  MM_SIZE H.
  169. ZSSSS @ HERE - HSSSS !
  170. 0x11223344 , 0x55667788 , ?HS
  171. S" src/gspf0.f"              INCLUDED
  172.  
  173. \ Òóò ìîæíî îïðåäåëèòü êàêèå òî ñâîè ñëîâà äëÿ ïðîáû.
  174. \ ×òîáû íå áûëî îøèáîê, êàêîé òî ôàéë ñêðèïòà äîëæåí áûòü ïîäãðóæåí. Ïðèìåð íèæå.
  175. \ HERE TO IMAGE-END
  176.  
  177. \ VARIABLE lm
  178. \ VECT m
  179. \ 0 CONSTANT m
  180. \ : doTest 2000000 0 DO m @  2 +  I @ 4 + * I ! LOOP  ;
  181. \ ðàññêîìåíòèðîâàâ íèæå ýòó ñòðîêó è îòìå÷åííûå íèæå * ìîæíî ïîëó÷èòü âåñü êîä ó÷àñòâóþùèé
  182. \ ïðè âûïîëíåíèè äàííîé íèæå ñòðîêè  
  183. \  : doTest 10 0 DO  I .  LOOP  ;
  184.  
  185. \ Òóò çàãðóæàåì èíòåðåñóþøèé íàñ ñêðèïò.
  186.  
  187. \ ×èñëî çàãðóæàåìûõ ñêðèïòîâ íå îãðàíè÷åííî.
  188.  
  189. \ H-STDOUT VALUE File
  190. \ HERE TO IMAGE-END
  191. \ : File:
  192. \   NextWord DUP >R
  193. \   HEAP-COPY DUP R> R/W CREATE-FILE-SHARED THROW TO File FREE THROW
  194. \ ;
  195.  
  196. \ File: Test.log \ Ýòî èìÿ ôàéëà êóäà âûâîäèì.
  197.  
  198. \ H-STDOUT >R File TO H-STDOUT DROP \ âêëþ÷åíèå âûâîäà
  199. \ ïðîãðàììû ïîëüçîâàòåëÿ
  200.  
  201. \ S" example.f" INCLUDED
  202.  
  203. \ Ñëîâà êîòîðûå ìû õîòèì äèçàñåìáëèðîâàòü.
  204. \ Åñëè â âàøåé ïðîãðàììå íóæíî èïîëüçîâàòü íåñêîëüêî ñëîâ-ïðîöåäóð, òî
  205. \ ëó÷ùå äèçàñåìáëèðîâàòü âìåñòå. Òîãäà îíè áóäóò ññûëàòüñÿ íà îáùèé ðåâóðñ îïðåäåëåíèé.
  206. \ Åñëè íóæíà âñÿ ïðîãðàììà, òî äèçàññåìáëèðóåì ãëàâíîå îïðåäåëåíèå.
  207. \ * íèæå ýòó
  208. \ '  doTest DISASM-LIST  \ Ñëîââî " ' " Ïîëó÷àåò àäðåñ ñëåäóþøåãî çà íèì ñëîâà, ñëîâî  DISASM-LIST ïîíÿòíî èç íàçâàíèÿ.
  209. \ '  WildCMP-U1 DISASM-LIST
  210. \ êîíåö
  211. \ * à òàêæå ýòó
  212. \ TYPE-ALL
  213.  
  214. \ File FLUSH-FILE THROW R> TO H-STDOUT \ âûêëþ÷åíèå âûâîäà
  215. \ CR
  216. \ : B I I I */ ;
  217. \ ' B SEE2
  218. \ SEE  B
  219.  \ ' doTest DISASM-LIST
  220. \ ' doTest SEE2
  221. \ ' m SEE2
  222. \ ' B DISASM-LIST  \ Ñëîââî " ' " Ïîëó÷àåò àäðåñ ñëåäóþøåãî çà íèì ñëîâà, ñëîâî  DISASM-LIST ïîíÿòíî èç íàçâàíèÿ.
  223. \ êîíåö
  224.  
  225.  \ CR TYPE-ALL
  226.  
  227. \ START-LIST @ FREE DROP
  228. \ START-LIST2 @ FREE DROP
  229. \ START-LAB  @ FREE DROP
  230. \ START-VAR  @ FREE DROP
  231. \ START-ARRAY @ FREE DROP
  232.