Subversion Repositories Kolibri OS

Rev

Rev 1437 | Rev 1515 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;   RTF READER FOR MENUET v1.
  2. ;   Written in pure assembler by Ivushkin Andrey aka Willow
  3. ;
  4. ;---------------------------------------------------------------------
  5. M64 equ 64*1024
  6. N_A equ 0x412f4e
  7. RTFSIZE equ M64
  8. RTFSTACKSIZE equ M64
  9. BGIFONTSIZE equ 120*1024
  10. ESPSIZE equ M64
  11. LMARGIN equ 20
  12. CHARW equ 6
  13. CHARH equ 11
  14. WINW  equ 600
  15. WINH  equ 450
  16. WIN_COLOR equ 0x3f0f0f0
  17. DEFCOLOR equ 0x303030
  18. ;RENDER equ PIX
  19. ;RENDER equ BGI
  20. RENDER equ FREE
  21.  
  22. BGIFONT_PATH equ '/sys/fonts/'
  23. FONT_NAME equ 'LITT'
  24. TOP =55
  25. MODE equ RTF
  26. INVALHEX equ 0
  27. RTF_COLORLESS equ 1
  28. RTF_ALIGNLESS equ 2
  29. RTF_NO1STLINE equ 4
  30. RTF_OPENING   equ 8
  31. RTF_HELP      equ 16
  32. RTF_VALID     equ 32
  33. RTF_BLIND     equ 64
  34. RTF_TOEOF     equ 128
  35. RTF_BOTTOM    equ 256
  36. STEPBYSTEP equ 10
  37. DEBUG_BLOCK equ 10
  38. SHOWALIGN equ 10
  39. GUTTER equ 10
  40. BENCH  equ 0;1
  41. syms equ 12
  42.  
  43.   use32              ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
  44.   org    0x0         ;  ¤à¥á æ¨ï á ­ã«ï
  45.  
  46.   db     'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
  47.   dd     0x01        ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
  48.   dd     START       ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
  49.   dd     I_END0      ; à §¬¥à ¯à®£à ¬¬ë
  50.   dd     esp_end     ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
  51.   dd     sys_mem     ;  ¤à¥á ¢¥à設ë áâíª 
  52.   dd     fname_buf   ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
  53.   dd     cur_dir_path         ; § à¥§¥à¢¨à®¢ ­®
  54.  
  55. include '..\..\..\macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
  56. include '..\..\..\develop\libraries\box_lib\load_lib.mac'
  57.  
  58. ;include 'MACROS.INC'
  59. ;include 'load_lib.mac'
  60.  
  61. @use_library
  62.  
  63. include 'debug.inc'
  64.  
  65. if ~ RENDER eq PIX
  66.   TOP=TOP+4
  67.   include 'bgifont.inc'
  68. end if
  69. include 'rtf_lite.inc'
  70. include 'ascl.inc'
  71. ;---------------------------------------------------------------------
  72. ;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
  73. ;---------------------------------------------------------------------
  74. help_file:
  75. file  'reader.rtf'
  76. help_end:
  77.  
  78. START:
  79.         mcall 68, 11
  80.  
  81. load_libraries l_libs_start,end_l_libs
  82.  
  83. ;OpenDialog     initialisation
  84.         push    dword OpenDialog_data
  85.         call    [OpenDialog_Init]
  86.  
  87.     mov  [pitch],2
  88.   if ~ RENDER eq PIX
  89.     mov  edx,FONT_NAME
  90.     mov  edi,save_limit
  91.     BGIfont_Prepare
  92.   end if
  93.  start2:
  94.     cmp  byte[fname_buf],0
  95.     je   load_file;top_red
  96.     jmp  noactivate
  97.  prep_load:
  98. ;    mcall 18,3,dword[prcinfo+30]
  99.  noactivate:
  100. ;    and  ebp,not RTF_OPENING
  101. ;    and  ebp,not RTF_HELP
  102.  
  103. ;    and  [mode],not RTF_OPENING
  104.     and  [mode],not (RTF_HELP+RTF_OPENING)
  105.     mov  ecx,16
  106.     mov  edi,fileinfo.name
  107.     mov  esi,fname_buf
  108.     rep  movsd
  109.  load_file:
  110.         mov     eax, 70
  111.         and     [fileattr+32], 0
  112.         mov     ebx, attrinfo
  113.         mcall
  114.         mov     ebx, [fileattr+32]
  115.         test    eax, eax
  116.         jz      .sizok
  117.         mov     dword [fileinfo.name], N_A
  118. .sizok:
  119.     and  [wSave],0
  120.     mov  [HClick],-100
  121.     mov  eax,ebx
  122.     and  eax,RTFSIZE-1
  123.     add  eax,I_END
  124.     mov  [tail],eax
  125.     shr  ebx,16
  126. ;    dpd ebx
  127.     mov  [max_block],ebx
  128.     xor  eax,eax
  129.     mov  ecx,256
  130.     mov  edi,fileinfo.name
  131.     repne scasb
  132.     sub  edi,fileinfo.name+1
  133.     mov  [fname_size],edi
  134. top_red:
  135.     mov  [top],TOP
  136. red:                    ; ¯¥à¥à¨á®¢ âì ®ª­®
  137.  
  138.     call draw_window    ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
  139.  
  140. ;---------------------------------------------------------------------
  141. ;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
  142. ;---------------------------------------------------------------------
  143.  
  144. still:
  145.     mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
  146.  
  147.     cmp  eax,1          ; ¯¥à¥à¨á®¢ âì ®ª­® ?
  148.     je   red            ; ¥á«¨ ¤  - ­  ¬¥âªã red
  149.     cmp  eax,3          ; ­ ¦ â  ª­®¯ª  ?
  150.     je   button         ; ¥á«¨ ¤  - ­  button
  151.  
  152. ;---------------------------------------------------------------------
  153.  
  154.  
  155.   key:                  ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
  156.     mcall 2             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
  157.     cmp  ah,104         ; HELP
  158.     jne  .nohelp
  159.   .help:
  160.     xor  [mode],RTF_HELP
  161.     test [mode],RTF_HELP
  162.     jz   load_file
  163.     mov  ecx,help_end-help_file
  164.     mov  [block_end],ecx
  165.     add  [block_end],I_END
  166.     mov  [tail],ecx
  167.     add  [tail],I_END
  168.     mov  esi,help_file
  169.     mov  edi,I_END
  170.     rep  movsb
  171. ;    or   [mode],RTF_HELP
  172.     xor  eax,eax
  173.     mov  [max_block],eax
  174.     jmp  top_red
  175.   .nohelp:
  176. ;    test [mode],RTF_HELP
  177. ;    jz   .nohelp2
  178. ;    and  [mode],not RTF_HELP
  179. ;    cmp  dword[fileinfo.name],N_A
  180. ;    je   still
  181. ;    jmp  prep_load
  182.   .nohelp2:
  183.     cmp  ah,114         ; R - redraw
  184.     je   red
  185.     cmp  ah,99          ; C - color
  186.     jne  .nocolor
  187.   .color:
  188.     xor  [mode],RTF_COLORLESS
  189.     jmp  red
  190.   .nocolor:
  191.     cmp  ah,97          ; A - alignment
  192.     jne  .noalign
  193.   .alignment:
  194.     xor  [mode],RTF_ALIGNLESS
  195.     jmp  red
  196.   .noalign:
  197.     cmp  ah,44          ; < - pitch dec
  198.     jne  .nopd
  199.   .decp:
  200.     dec  [pitch]
  201.     jmp  red
  202.   .nopd:
  203.     cmp  ah,46          ; < - pitch inc
  204.     jne  .nopi
  205.   .incp:
  206.     inc  [pitch]
  207.     jmp  red
  208.   .nopi:
  209.     cmp  ah,180         ; Home
  210.     je   top_red
  211.     mov  ebx,dword[prcinfo+46]
  212.     sub  ebx,TOP+15
  213.     cmp  ah,183 ;PgDn
  214.     jne  .nopgdn
  215.     sub  [top],bx
  216.     jmp  red
  217.   .nopgdn:
  218.     cmp  ah,177 ;arrDn
  219.     jne  .noardn
  220.     sub  [top],CHARH
  221.     jmp  red
  222.   .noardn:
  223.     mov  cx,[top]
  224.     cmp  ah,184 ;PgUp
  225.     jne  .nopgup
  226.     add  [top],bx
  227.     cmp  [top],TOP
  228.     jl   red
  229.     mov  [top],TOP
  230.     cmp  cx,[top]
  231.     je   still
  232.     jmp  red
  233.   .nopgup:
  234.     cmp  ah,178 ;arrUp
  235.     jne  .noarup
  236.     add  [top],CHARH
  237.     cmp  [top],TOP
  238.     jl   red
  239.     mov  [top],TOP
  240.     cmp  cx,[top]
  241.     je   still
  242.     jmp  red
  243.   .noarup:
  244.   if  RENDER eq FREE
  245.     cmp  ah,56 ;zoom+
  246.     jne  .noplus
  247.   .zplus:
  248.     fld  [FreeFontscale]
  249.     fmul [Zoomscale]
  250.   .zoom:
  251.     fstp [FreeFontscale]
  252.     jmp  red
  253.   .noplus:
  254.     cmp  ah,54 ;zoom-
  255.     jne  .nominus
  256.   .zminus:
  257.     fld  [FreeFontscale]
  258.     fdiv [Zoomscale]
  259.     jmp  .zoom
  260.   .nominus:
  261.   end if
  262.     cmp  ah,108         ; L - load
  263.     jne  still
  264.   .file_open:
  265. ;---------------------------------------------------------------------
  266. ;OpenDialog_start:
  267. ;       copy_path       open_dialog_name,path,library_path,0
  268.        
  269.         push    dword OpenDialog_data
  270.         call    [OpenDialog_Start]
  271.  
  272. ;       cmp     [OpenDialog_data.status],2 ; OpenDialog does not start
  273. ;       je      .sysxtree  ;    some kind of alternative, instead OpenDialog
  274.         cmp     [OpenDialog_data.status],1
  275.         je      prep_load
  276.         jmp     still
  277. ;---------------------------------------------------------------------  
  278. ;.sysxtree:
  279. ;    or   [mode],RTF_OPENING
  280. ;    opendialog draw_window, prep_load, st_1, fname_buf
  281. ;  st_1:
  282. ;    and  [mode],not RTF_OPENING
  283. ;    jmp  still;red
  284. ;  stilld:
  285. ;    jmp  still
  286. ;---------------------------------------------------------------------
  287.  
  288.   button:
  289.     mcall 17            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
  290.     cmp   ah,2
  291.     je    key.help
  292.     cmp   ah,3
  293.     je    key.color
  294.     cmp   ah,4
  295.     je    key.alignment
  296.     cmp   ah,5
  297.     je    key.file_open
  298.     cmp   ah,6
  299.     je    key.incp
  300.     cmp   ah,7
  301.     je    key.decp
  302.   if RENDER eq FREE
  303.     cmp   ah,8
  304.     je    key.zminus
  305.     cmp   ah,9
  306.     je    key.zplus
  307.   end if
  308.     cmp   ah, 1         ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
  309.     jne   .noexit       ;  ¢¥à­ãâìáï
  310.  
  311.   .exit:
  312.     mcall -1            ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
  313.   .noexit:
  314.     cmp   ah,20
  315.     jne   still
  316.     mcall 37,1
  317.     and   eax,0xffff
  318.     cmp   eax,[HClick]
  319.     je    still
  320.     mov   [HClick],eax
  321.     sub   eax,25
  322.     mul   [HDoc]
  323.     mov   ebx,dword[prcinfo+46]
  324.     sub   ebx,25
  325.     div   ebx
  326.     dpd   eax
  327.     mov   [top],TOP
  328.     sub   [top],ax
  329.     dps   'B'
  330.     jmp   red;still
  331. ;---------------------------------------------------------------------
  332. ;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
  333. ;---------------------------------------------------------------------
  334.  
  335. draw_window:
  336.  
  337.     mcall 12, 1                    ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
  338.                                    ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
  339.  
  340.     mcall 0, <10,WINW>, <100,WINH>, WIN_COLOR,0x805080D0, 0x005080D0
  341.     mcall 4, <8,8>, 0x10DDEEFF, title, titlesize-title
  342.     mov  esi,ecx
  343.     mcall 47,0x30000,isymImplemented,<114,8>
  344.     add  edx,36 shl 16
  345.     mcall ,,isymMax
  346.     add  edx,40 shl 16
  347.     mov  esi,0x104e00e7;0x10f27840
  348.     cmp  dword[fileinfo.name],N_A
  349.     jne  .noNA
  350.     mov  esi,0x10ff0000
  351.   .noNA:
  352.     mcall 4,edx,esi,fileinfo.name,[fname_size]
  353.     mov  edi,prcinfo
  354.     mcall 9,edi,-1
  355.     and  [mode],not RTF_TOEOF
  356.     mov  ebx,[edi+42]
  357.     cmp  ebx,[wSave]
  358.     je   .nochg
  359.   .chg:
  360.     mov  [wSave],ebx
  361.     or   [mode],RTF_TOEOF
  362.     and  [HDoc],0
  363.     and  [line_count],0
  364.     mov  [HClick],-100
  365.   .nochg:
  366.  
  367.  
  368. mcall 13,<5,dword[prcinfo+42]>,<21,21>,0x8000459a
  369.  
  370. mcall 8,7*65536+39,23*65536+16,5,0x459a           ;load
  371. mcall 8,46*65536+57,23*65536+16,4,0x459a ;align
  372. mcall 8,103*65536+44,23*65536+16,3,0x459a   ;color
  373. mcall 8,147*65536+37,23*65536+16,2,0x459a        ;help
  374.  
  375. mcall 8,184*65536+44,23*65536+16,7,0x459a ;prev
  376. mcall 8,229*65536+46,23*65536+16,6,0x459a      ;next
  377.  
  378. if RENDER eq FREE
  379. mcall 8,276*65536+44,23*65536+16,9,0x459a ;zoom+
  380. mcall 8,320*65536+44,23*65536+16,8,0x459a ;zoom-
  381. end if
  382.  
  383.  
  384.  
  385.  
  386. ;    sub  ebx,60
  387. ;    shl  ebx,16
  388. ;    mov  bx,12
  389. ;    mov  ecx,5 shl 16+12
  390. ;    mov  esi,0xb810e7
  391. ;    mov  edx,2
  392. ; BTN_SPACE equ 14 shl 16
  393. ;    mcall 8             ;2
  394. ;    sub  ebx,BTN_SPACE
  395. ;    inc  edx
  396. ;    mcall 8,,,,0x459a    ;3
  397. ;    sub  ebx,BTN_SPACE
  398. ;    inc  edx
  399. ;    mcall ,,,,0x107a30  ;4
  400. ;    sub  ebx,BTN_SPACE
  401. ;    inc  edx
  402. ;    mcall ,,,,0xcc0000  ;5
  403. ;    sub  ebx,BTN_SPACE
  404. ;    inc  edx
  405. ;    mcall ,,,,0x575f8c  ;6
  406. ;    sub  ebx,BTN_SPACE
  407. ;    inc  edx
  408. ;    mcall ,,,,0x575f8c  ;7
  409. ;  if RENDER eq FREE
  410. ;    sub  ebx,BTN_SPACE
  411. ;    inc  edx
  412. ;    mcall ,,,,0x6a73d0  ;8
  413. ;    sub  ebx,BTN_SPACE
  414. ;    inc  edx
  415. ;    mcall ,,,,0xd048c8  ;9
  416. ;  end if
  417. ;text
  418. ;    shr  ecx,16
  419. ;    mov  bx,cx
  420. ;    add  ebx,3 shl 16+3
  421.     mcall 4,10*65536+27,0x10ddeeff,btn_text,btn_end-btn_text
  422.  
  423.     sub  dword[prcinfo+42],LMARGIN
  424.     sub  dword[prcinfo+46],CHARH
  425.  if GUTTER eq 1
  426.     mov  ebx,LMARGIN shl 16+20
  427.     mov  ecx,20
  428.     mov  eax,4
  429.     mov  edx,arrow
  430.     mov  esi,1
  431.   .loop1:
  432.     push ecx
  433.     mcall ,,0xff0000
  434.     pop  ecx
  435.     add  ebx,50 shl 16
  436.     loop .loop1
  437.  end if
  438.     mov  ebx,dword[prcinfo+42]
  439.     shl  ebx,16
  440.     add  ebx,2 shl 16+13
  441.     mov  ecx,dword[prcinfo+46]
  442.     add  ecx,40 shl 16-35
  443.     mov  edx,20+1 shl 29
  444.     mcall 8
  445.     mov  ecx,[HClick]
  446.     shl  ecx,16
  447.     add  ecx,6-3 shl 16 + 7
  448.     mcall 13,,,0xe26830
  449.  if MODE eq RTF
  450.     test [mode],RTF_OPENING
  451.     jne  .ex
  452.     and  [mode],not (RTF_BOTTOM);+RTF_TOEOF)
  453.     mov  [colorptr],colortbl
  454.     mov  eax,DEFCOLOR
  455.     mov  edi,colortbl
  456.     mov  ecx,16
  457.     rep  stosd
  458.     xor  eax,eax
  459.     mov  [cGroup],eax
  460.     mov  edi,Chp
  461.     mov  ecx,SIZE_save
  462.     rep  stosb
  463.     mov  ax,[top]
  464.     mov  word[Free+6],10
  465.     mov  word[Free+4],ax
  466.     mov  esi,I_END
  467.     call RtfParse
  468.     dpd  eax
  469.     dps  'Lines='
  470.     mov  eax,[line_count]
  471.     dpd  eax
  472.     newline
  473. ;    movzx  eax,word[Free+4]
  474. ;    dpd  eax
  475.     mov  eax,dword[prcinfo+42]
  476.     mov  edx,WIN_COLOR
  477.     call draw_progress
  478. if BENCH eq 1
  479.     mcall 26,9
  480.     sub  eax,[bench]
  481.     dps  <13,10,'Bench='>
  482.     dpd  eax
  483. end if
  484.  else
  485.     mov  [char],0
  486.     mov  ebx,10 shl 16+TOP
  487.     mov  ecx,16
  488.   .l0:
  489.     push ecx
  490.     mov  ecx,16
  491.   .l1:
  492.     push ecx
  493.   if RENDER eq BGI
  494.     mov  edx,char
  495.     mov  ecx,0x48000000
  496.     mov  esi,1
  497.     BGIfont_Outtext
  498.   else
  499.     mcall 4,,0x10000000,char,1
  500.   end if
  501.     pop  ecx
  502.     inc  [char]
  503.     add  ebx,(CHARW+3) shl 16
  504.     loop .l1
  505.     pop  ecx
  506.     add  ebx,CHARH+2
  507.     and  ebx,0x0000ffff
  508.     add  ebx,10 shl 16
  509.     loop .l0
  510.  end if
  511.  .ex:
  512.     mcall 12, 2                    ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
  513.                                    ; 2, § ª®­ç¨«¨ à¨á®¢ âì
  514.     ret                            ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
  515.  
  516. if GUTTER eq 1
  517.    arrow db 0x19
  518. end if
  519. ;---------------------------------------------------------------------
  520. ;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
  521. ;---------------------------------------------------------------------
  522.  
  523. ; ¨­â¥àä¥©á ¯à®£à ¬¬ë ¬­®£®ï§ëç­ë©
  524. ;  ‚ë ¬®¦¥â¥ § ¤ âì ï§ëª ¢ MACROS.INC (lang fix ï§ëª)
  525.  
  526. title:
  527.   db 'RTF Reader v1.    (     ):'
  528. titlesize:
  529. btn_text:
  530.     db 'Load Aligment Color Help    <      >'
  531. if RENDER eq FREE
  532.     db '    Zoom+ Zoom- '
  533.   end if
  534. btn_end:
  535. ;---------------------------------------------------------------------
  536. l_libs_start:
  537.  
  538. library01  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
  539. err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
  540.  
  541. end_l_libs:
  542. ;---------------------------------------------------------------------
  543. system_dir_ProcLib                      db '/sys/lib/proc_lib.obj',0
  544.  
  545. head_f_i:
  546. head_f_l        db 'error',0
  547.  
  548. err_message_found_lib2          db 'proc_lib.obj - Not found!',0
  549.  
  550. err_message_import2                     db 'proc_lib.obj - Wrong import!',0
  551.  
  552. ;---------------------------------------------------------------------
  553. align 4
  554. ProcLib_import:
  555. OpenDialog_Init         dd aOpenDialog_Init
  556. OpenDialog_Start        dd aOpenDialog_Start
  557. ;OpenDialog__Version    dd aOpenDialog_Version
  558.         dd      0
  559.         dd      0
  560. aOpenDialog_Init        db 'OpenDialog_init',0
  561. aOpenDialog_Start       db 'OpenDialog_start',0
  562. ;aOpenDialog_Version    db 'Version_OpenDialog',0
  563. ;---------------------------------------------------------------------
  564. OpenDialog_data:
  565. .type                   dd 0
  566. .procinfo               dd procinfo ;+4
  567. .com_area_name          dd communication_area_name ;+8
  568. .com_area               dd 0 ;+12
  569. .opendir_pach           dd temp_dir_pach ;+16
  570. .dir_default_pach       dd communication_area_default_pach ;+20
  571. .start_path             dd open_dialog_path ;+24
  572. .draw_window            dd draw_window ;+28
  573. .status                 dd 0 ;+32
  574. .openfile_pach          dd fname_buf ;+36
  575. .filename_area          dd 0    ;+40
  576. .filter_area            dd Filter
  577.  
  578. communication_area_name:
  579.         db 'FFFFFFFF_open_dialog',0
  580. open_dialog_path:
  581.         db '/sys/File Managers/opendial',0
  582. communication_area_default_pach:
  583.         db '/rd/1',0
  584.  
  585. Filter:
  586. dd Filter.end - Filter
  587. .1:
  588. db 'RTF',0
  589. .end:
  590. db 0
  591. ;---------------------------------------------------------------------
  592. attrinfo:
  593.         dd      5
  594.         dd      0
  595.         dd      0
  596.         dd      0
  597.         dd      fileattr
  598.         db      0
  599.         dd      fileinfo.name
  600.  
  601. fileinfo:
  602.   dd 0
  603. .block:
  604.   dd 0
  605.   dd 0
  606. .size  dd 1
  607.   dd I_END
  608. .name:
  609. ;   db '//'
  610. ;  db ' /HD/1/RTF/texts/FASM.TXT',0
  611. ;  db '/HD/1/RTF/TEST2.RTF',0
  612. ;  db '/HD/1/RTF/texts/index_ru.RTF',0
  613. ;  db '/HD/1/RTF/texts/stas.RTF',0
  614. ;  db '/HD/1/RTF/texts/zed.RTF',0
  615. ;  db '/HD/1/RTF/PRACT.RTF',0
  616. ;  db '/HD/1/RTF/SETUP2.RTF',0
  617. ;  db '/HD/1/RTF/texts/TC_RU.RTF',0
  618. ;  db '/HD/1/RTF/texts/WORD.RTF',0
  619. ;  db '/HD/1/RTF/texts/WORD97.RTF',0
  620. ;  db '/HD/1/RTF/texts/MASTAPP.RTF',0
  621. ;  db '/HD/1/RTF/texts/1c_tor77.RTF',0
  622. ;  db '/HD/1/RTF/texts/RELATION.RTF',0
  623. ;  db '/HD/1/RTF/texts/PLANETS.RTF',0
  624. ;  db '/HD/1/RTF/texts/LOTRRUS.RTF',0
  625. ;  db '/HD/1/RTF/texts/RULEBOOK.RTF',0
  626. ;  db '/HD/1/RTF/texts/RULEBK2.RTF',0
  627. ;  db '/HD/1/RTF/texts/GLEB.RTF',0
  628. ;  db '/HD/1/RTF/texts/DWG13_14.RTF',0
  629. ;  db '/HD/1/RTF/texts/LK.RTF',0
  630.  
  631. ;  db '/HD/1/RTF/texts/JUSTIFY.RTF',0
  632.    rb  256-($-.name)
  633. ;---------------------------------------------------------------------
  634. ;blind db ?
  635. if RENDER eq PIX
  636. ;  rd 2
  637.   Free rd 9
  638. else
  639. if RENDER eq BGI
  640.   FreeFontscale dd 0.07
  641. else
  642.   Zoomscale dd 1.15
  643.   FreeFontscale dd 0.04
  644. end if
  645.   Free BGIfree FONT_NAME,0,0,1.0,1.0,char,1,0x44000000,0
  646. end if
  647. I_END0:
  648. fname_buf:
  649.         rb      1024+16
  650. fileattr rd 40/4
  651. if BENCH eq 1
  652.   bench dd ?
  653. end if
  654. tail dd ?
  655. cGroup dd ?
  656. Chp:
  657.   CHP
  658. Pap:
  659.   PAP
  660. Sep:
  661.   SEP
  662. Dop:
  663.   DOP
  664. rds db ?
  665. ris db ?
  666. cbBin dd ?
  667. lParam dd ?
  668. fSkipDestIfUnk db ?
  669. mode dd ?
  670. curheight dw ?
  671. maxheight dw ?
  672. RetroBlock dd ?
  673. RetroSave:
  674.   SAVE
  675. prcinfo rb 1024
  676. RetroPtr dd ?
  677. colorptr dd ?
  678. colortbl rd 16
  679. ct_end:
  680. fname_size dd ?
  681. max_block dd ?
  682. cur_block dd ?
  683. HDoc dd ?
  684. HClick dd ?
  685. top dw ?
  686. line_count dd ?
  687. par_count  dd ?
  688. char db ?
  689. pitch db ?
  690. wSave dd ?
  691. RetroXY dd ?
  692. RetroGroup dd ?
  693.  
  694. save_stack:
  695. rb RTFSTACKSIZE
  696. save_limit:
  697. rb BGIFONTSIZE
  698.  
  699. listptr dd ?
  700. szKeyword rb 31
  701. szParameter rb 21
  702. block_end dd ?
  703. I_END:                             ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
  704.  
  705. procinfo process_information
  706. rb RTFSIZE
  707. esp1:
  708. rb ESPSIZE
  709. sys_mem:
  710. rb ESPSIZE
  711. ;---------------------------------------------------------------------
  712. temp_dir_pach:
  713.         rb 4096
  714. cur_dir_path:
  715.         rb 4096
  716. library_path:
  717.         rb 4096
  718. ;---------------------------------------------------------------------
  719. esp_end:
  720.