Subversion Repositories Kolibri OS

Rev

Rev 1436 | Rev 1512 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 halyavin 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
 
529 spraid 22
BGIFONT_PATH equ '/sys/fonts/'
31 halyavin 23
FONT_NAME equ 'LITT'
1195 diamond 24
TOP =55
31 halyavin 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
 
134 diamond 43
  use32              ; включить 32-битный режим ассемблера
44
  org    0x0         ; адресация с нуля
31 halyavin 45
 
134 diamond 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         ; зарезервировано
31 halyavin 54
 
485 heavyiron 55
include '..\..\..\MACROS.INC' ; макросы облегчают жизнь ассемблерщиков!
1418 mario79 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
 
31 halyavin 63
include 'debug.inc'
1418 mario79 64
 
65
	use_OpenDialog
31 halyavin 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:
1418 mario79 80
        mcall 68, 11
81
;OpenDialog initialisation
82
init_OpenDialog	OpenDialog_data
83
 
31 halyavin 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
134 diamond 92
    je   load_file;top_red
31 halyavin 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:
139 diamond 107
        mov     eax, 70
108
        and     [fileattr+32], 0
109
        mov     ebx, attrinfo
485 heavyiron 110
        mcall
139 diamond 111
        mov     ebx, [fileattr+32]
112
        test    eax, eax
113
        jz      .sizok
114
        mov     dword [fileinfo.name], N_A
115
.sizok:
31 halyavin 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
134 diamond 133
red:                    ; перерисовать окно
31 halyavin 134
 
134 diamond 135
    call draw_window    ; вызываем процедуру отрисовки окна
31 halyavin 136
 
137
;---------------------------------------------------------------------
138
;---  ЦИКЛ ОБРАБОТКИ СОБЫТИЙ  ----------------------------------------
139
;---------------------------------------------------------------------
140
 
141
still:
134 diamond 142
    mcall 10            ; функция 10 - ждать события
31 halyavin 143
 
134 diamond 144
    cmp  eax,1          ; перерисовать окно ?
145
    je   red            ; если да - на метку red
146
    cmp  eax,3          ; нажата кнопка ?
147
    je   button         ; если да - на button
31 halyavin 148
 
149
;---------------------------------------------------------------------
150
 
151
 
134 diamond 152
  key:                  ; нажата клавиша на клавиатуре
153
    mcall 2             ; функция 2 - считать код символа (в ah)
154
    cmp  ah,104         ; HELP
31 halyavin 155
    jne  .nohelp
156
  .help:
157
    xor  [mode],RTF_HELP
158
    test [mode],RTF_HELP
134 diamond 159
    jz   load_file
31 halyavin 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:
134 diamond 180
    cmp  ah,114         ; R - redraw
181
    je   red
182
    cmp  ah,99          ; C - color
31 halyavin 183
    jne  .nocolor
184
  .color:
185
    xor  [mode],RTF_COLORLESS
186
    jmp  red
187
  .nocolor:
134 diamond 188
    cmp  ah,97          ; A - alignment
31 halyavin 189
    jne  .noalign
190
  .alignment:
191
    xor  [mode],RTF_ALIGNLESS
192
    jmp  red
193
  .noalign:
134 diamond 194
    cmp  ah,44          ; < - pitch dec
31 halyavin 195
    jne  .nopd
196
  .decp:
197
    dec  [pitch]
198
    jmp  red
199
  .nopd:
134 diamond 200
    cmp  ah,46          ; < - pitch inc
31 halyavin 201
    jne  .nopi
202
  .incp:
203
    inc  [pitch]
204
    jmp  red
205
  .nopi:
134 diamond 206
    cmp  ah,180         ; Home
207
    je   top_red
31 halyavin 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
134 diamond 225
    jl   red
31 halyavin 226
    mov  [top],TOP
227
    cmp  cx,[top]
134 diamond 228
    je   still
31 halyavin 229
    jmp  red
230
  .nopgup:
231
    cmp  ah,178 ;arrUp
232
    jne  .noarup
233
    add  [top],CHARH
234
    cmp  [top],TOP
134 diamond 235
    jl   red
31 halyavin 236
    mov  [top],TOP
237
    cmp  cx,[top]
134 diamond 238
    je   still
31 halyavin 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
134 diamond 259
    cmp  ah,108         ; L - load
31 halyavin 260
    jne  stilld
261
  .file_open:
1418 mario79 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
1436 mario79 272
	jmp	still
1418 mario79 273
;---------------------------------------------------------------------
274
.sysxtree:
134 diamond 275
    or   [mode],RTF_OPENING
31 halyavin 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:
134 diamond 285
    mcall 17            ; 17 - получить идентификатор нажатой кнопки
31 halyavin 286
    cmp   ah,2
134 diamond 287
    je    key.help
31 halyavin 288
    cmp   ah,3
134 diamond 289
    je    key.color
31 halyavin 290
    cmp   ah,4
134 diamond 291
    je    key.alignment
31 halyavin 292
    cmp   ah,5
134 diamond 293
    je    key.file_open
31 halyavin 294
    cmp   ah,6
134 diamond 295
    je    key.incp
31 halyavin 296
    cmp   ah,7
134 diamond 297
    je    key.decp
31 halyavin 298
  if RENDER eq FREE
299
    cmp   ah,8
134 diamond 300
    je    key.zminus
31 halyavin 301
    cmp   ah,9
134 diamond 302
    je    key.zplus
31 halyavin 303
  end if
134 diamond 304
    cmp   ah, 1         ; если НЕ нажата кнопка с номером 1,
305
    jne   .noexit       ;  вернуться
31 halyavin 306
 
307
  .exit:
134 diamond 308
    mcall -1            ; иначе конец программы
31 halyavin 309
  .noexit:
310
    cmp   ah,20
311
    jne   still
312
    mcall 37,1
313
    and   eax,0xffff
314
    cmp   eax,[HClick]
134 diamond 315
    je    still
31 halyavin 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
 
134 diamond 333
    mcall 12, 1                    ; функция 12: сообщить ОС об отрисовке окна
334
                                   ; 1 - начинаем рисовать
335
 
31 halyavin 336
    mcall 0, <10,WINW>, <100,WINH>, WIN_COLOR,0x805080D0, 0x005080D0
485 heavyiron 337
    mcall 4, <8,8>, 0x10DDEEFF, title, titlesize-title
31 halyavin 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]
134 diamond 354
    je   .nochg
31 halyavin 355
  .chg:
356
    mov  [wSave],ebx
134 diamond 357
    or   [mode],RTF_TOEOF
31 halyavin 358
    and  [HDoc],0
359
    and  [line_count],0
360
    mov  [HClick],-100
361
  .nochg:
1195 diamond 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
 
31 halyavin 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
1195 diamond 436
    add  ebx,2 shl 16+13
31 halyavin 437
    mov  ecx,dword[prcinfo+46]
1195 diamond 438
    add  ecx,40 shl 16-35
31 halyavin 439
    mov  edx,20+1 shl 29
440
    mcall 8
441
    mov  ecx,[HClick]
442
    shl  ecx,16
1195 diamond 443
    add  ecx,6-3 shl 16 + 7
31 halyavin 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:
134 diamond 508
    mcall 12, 2                    ; функция 12: сообщить ОС об отрисовке окна
509
                                   ; 2, закончили рисовать
510
    ret                            ; выходим из процедуры
31 halyavin 511
 
512
if GUTTER eq 1
513
   arrow db 0x19
514
end if
515
;---------------------------------------------------------------------
516
;---  ДАННЫЕ ПРОГРАММЫ  ----------------------------------------------
517
;---------------------------------------------------------------------
518
 
519
; интерфейс программы многоязычный
520
;  Вы можете задать язык в MACROS.INC (lang fix язык)
485 heavyiron 521
 
522
title:
1195 diamond 523
  db 'RTF Reader v1.    (     ):'
485 heavyiron 524
titlesize:
31 halyavin 525
btn_text:
1399 diamond 526
    db 'Load Aligment Color Help    <      >'
1195 diamond 527
if RENDER eq FREE
528
    db '    Zoom+ Zoom- '
529
  end if
31 halyavin 530
btn_end:
1418 mario79 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
1436 mario79 543
.filename_area		dd 0	;+40
544
.filter_area		dd Filter
31 halyavin 545
 
1418 mario79 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:
1436 mario79 554
dd Filter.end - Filter
555
.1:
1418 mario79 556
db 'RTF',0
557
.end:
558
db 0
559
;---------------------------------------------------------------------
139 diamond 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
 
31 halyavin 569
fileinfo:
570
  dd 0
571
.block:
572
  dd 0
139 diamond 573
  dd 0
31 halyavin 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
1195 diamond 593
;  db '/HD/1/RTF/texts/RULEBOOK.RTF',0
31 halyavin 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:
134 diamond 616
fname_buf:
617
        rb      1024+16
139 diamond 618
fileattr rd 40/4
31 halyavin 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 ?
134 diamond 671
I_END:                             ; метка конца программы
485 heavyiron 672
 
673
procinfo process_information
31 halyavin 674
rb RTFSIZE
675
esp1:
676
rb ESPSIZE
677
sys_mem:
678
rb ESPSIZE
1418 mario79 679
;---------------------------------------------------------------------
680
temp_dir_pach:
681
        rb 4096
682
;---------------------------------------------------------------------
134 diamond 683
esp_end: