Subversion Repositories Kolibri OS

Rev

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

  1. ( “¯à ¢«¥­¨¥ ¯ ¬ïâìî.
  2.   Windows-§ ¢¨á¨¬ë¥ á«®¢ .
  3.   Copyright [C] 1992-1999 A.Cherezov ac@forth.org
  4.   ¥¢¨§¨ï - ᥭâï¡àì 1999
  5. )
  6. \ 94 MEMORY
  7.  
  8. USER THREAD-HEAP   \ åí­¤« 娯  ⥪ã饣® ¯®â®ª 
  9.  
  10. \ VARIABLE USER-OFFS \ ᬥ饭¨¥ ¢ ®¡« á⨠¤ ­­ëå ¯®â®ª ,
  11.                    \ £¤¥ ᮧ¤ îâáï ­®¢ë¥ ¯¥à¥¬¥­­ë¥
  12. : ERR
  13. \  IF 0 ELSE DUP GetLastError THEN
  14. ;
  15.  
  16. : USER-ALLOT ( n -- )
  17.   USER-OFFS +!
  18.  
  19. \ ¢ë஢­ï¥¬ ¢ USER-CREATE ~day
  20. \  USER-OFFS @ +   \ á ­ ç «  ¯à¨¡ ¢«ï¥¬
  21. \  CELL 1- +  [ CELL NEGATE ] LITERAL AND \ ¯®â®¬ ¢ëà ¢­¨¢ ¥¬
  22. \  USER-OFFS !
  23. ;
  24.  
  25. : USER-HERE ( -- n )
  26.   USER-OFFS @
  27. ;
  28.  
  29. : ALLOCATE ( u -- a-addr ior ) \ 94 MEMORY
  30. \  á¯à¥¤¥«¨âì u ¡ ©â ­¥¯à¥à뢭®£® ¯à®áâà ­á⢠ ¤ ­­ëå. “ª § â¥«ì ¯à®áâà ­á⢠
  31. \ ¤ ­­ëå ­¥ ¨§¬¥­ï¥âáï í⮩ ®¯¥à æ¨¥©. ¥à¢®­ ç «ì­®¥ ᮤ¥à¦¨¬®¥ ¢ë¤¥«¥­­®£®
  32. \ ãç á⪠ ¯ ¬ï⨠­¥®¯à¥¤¥«¥­®.
  33. \ …᫨ à á¯à¥¤¥«¥­¨¥ ãᯥ譮, a-addr - ¢ë஢­¥­­ë©  ¤à¥á ­ ç «  à á¯à¥¤¥«¥­­®©
  34. \ ®¡« á⨠¨ ior ­®«ì.
  35. \ …᫨ ®¯¥à æ¨ï ­¥ ¯à®è« , a-addr ­¥ ¯à¥¤áâ ¢«ï¥â ¯à ¢¨«ì­ë©  ¤à¥á ¨ ior -
  36. \ § ¢¨áï騩 ®â ॠ«¨§ æ¨¨ ª®¤ ¢¢®¤ -¢ë¢®¤ .
  37.  5 68 SYS3 0 ;
  38.  
  39. : FREE ( a-addr -- ior ) \ 94 MEMORY
  40. \ ‚¥à­ãâì ­¥¯à¥à뢭ãî ®¡« áâì ¯à®áâà ­á⢠ ¤ ­­ëå, ¨­¤¨æ¨à㥬ãî a-addr, á¨á⥬¥
  41. \ ¤«ï ¤ «ì­¥©è¥£® à á¯à¥¤¥«¥­¨ï. a-addr ¤®«¦¥­ ¨­¤¨æ¨à®¢ âì ®¡« áâì
  42. \ ¯à®áâà ­á⢠ ¤ ­­ëå, ª®â®à ï à ­¥¥ ¡ë«  ¯®«ã祭  ¯® ALLOCATE ¨«¨ RESIZE.
  43. \ “ª § â¥«ì ¯à®áâà ­á⢠ ¤ ­­ëå ­¥ ¨§¬¥­ï¥âáï ¤ ­­®© ®¯¥à æ¨¥©.
  44. \ …᫨ ®¯¥à æ¨ï ãᯥ譠, ior ­®«ì. …᫨ ®¯¥à æ¨ï ­¥ ¯à®è« , ior - § ¢¨áï騩 ®â
  45. \ ॠ«¨§ æ¨¨ ª®¤ ¢¢®¤ -¢ë¢®¤ .
  46.  5 68 SYS3 DROP 0 ;
  47.  
  48. : RESIZE ( a-addr1 u -- a-addr2 ior ) \ 94 MEMORY
  49. \ ˆ§¬¥­¨âì à á¯à¥¤¥«¥­¨¥ ­¥¯à¥à뢭®£® ¯à®áâà ­á⢠ ¤ ­­ëå, ­ ç¨­ î饣®áï á
  50. \  ¤à¥á  a-addr1, à ­¥¥ à á¯à¥¤¥«¥­­®£® ¯® ALLOCATE ¨«¨ RESIZE, ­  u ¡ ©â.
  51. \ u ¬®¦¥â ¡ëâì ¡®«ìè¥ ¨«¨ ¬¥­ìè¥, 祬 ⥪ã騩 à §¬¥à ®¡« áâ¨.
  52. \ “ª § â¥«ì ¯à®áâà ­á⢠ ¤ ­­ëå ­¥ ¨§¬¥­ï¥âáï ¤ ­­®© ®¯¥à æ¨¥©.
  53. \ …᫨ ®¯¥à æ¨ï ãᯥ譠, a-addr2 - ¢ë஢­¥­­ë©  ¤à¥á ­ ç «  u ¡ ©â
  54. \ à á¯à¥¤¥«¥­­®© ¯ ¬ï⨠¨ ior ­®«ì. a-addr2 ¬®¦¥â, ­® ­¥ ¤®«¦¥­, ¡ëâì ⥬ ¦¥
  55. \ á ¬ë¬, çâ® ¨ a-addr1. …᫨ ®­¨ ­¥®¤¨­ ª®¢ë, §­ ç¥­¨ï, ᮤ¥à¦ é¨¥áï ¢ ®¡« áâ¨
  56. \ a-addr1, ª®¯¨àãîâáï ¢ a-addr2 ¢ ª®«¨ç¥á⢥ ¬¨­¨¬ «ì­®£® ¨§ à §¬¥à®¢ íâ¨å
  57. \ ¤¢ãå ®¡« á⥩. …᫨ ®­¨ ®¤¨­ ª®¢ë, §­ ç¥­¨ï, ᮤ¥à¦ é¨¥áï ¢ ®¡« áâ¨,
  58. \ á®åà ­ïîâáï ¤® ¬¨­¨¬ «ì­®£® ¨§ u ¨«¨ ¯¥à¢®­ ç «ì­®£® à §¬¥à . …᫨ a-addr2 ­¥
  59. \ â®â ¦¥, çâ® ¨ a-addr1, ®¡« áâì ¯ ¬ï⨠¯® a-addr1 ¢®§¢à é ¥âáï á¨á⥬¥
  60. \ ᮣ« á­® ®¯¥à æ¨¨ FREE.
  61. \ …᫨ ®¯¥à æ¨ï ­¥ ¯à®è« , a-addr2 à ¢¥­ a-addr1, ®¡« áâì ¯ ¬ï⨠a-addr1 ­¥
  62. \ ¨§¬¥­ï¥âáï, ¨ ior - § ¢¨áï騩 ®â ॠ«¨§ æ¨¨ ª®¤ ¢¢®¤ -¢ë¢®¤ .
  63.  THROW  ABORT" RESIZE is't in system"
  64. ;
  65.  
  66.  
  67.