Subversion Repositories Kolibri OS

Rev

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