Subversion Repositories Kolibri OS

Rev

Rev 1437 | Rev 1515 | 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   ; адрес буфера для параметров (не используется)
1512 mario79 53
  dd     cur_dir_path         ; зарезервировано
31 halyavin 54
 
1512 mario79 55
include '..\..\..\macros.inc' ; макросы облегчают жизнь ассемблерщиков!
1418 mario79 56
include '..\..\..\develop\libraries\box_lib\load_lib.mac'
57
 
58
;include 'MACROS.INC'
59
;include 'load_lib.mac'
60
 
1512 mario79 61
@use_library
62
 
31 halyavin 63
include 'debug.inc'
1418 mario79 64
 
31 halyavin 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:
1418 mario79 79
        mcall 68, 11
80
 
1512 mario79 81
load_libraries l_libs_start,end_l_libs
82
 
83
;OpenDialog	initialisation
84
	push    dword OpenDialog_data
85
	call    [OpenDialog_Init]
86
 
31 halyavin 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
134 diamond 95
    je   load_file;top_red
31 halyavin 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:
139 diamond 110
        mov     eax, 70
111
        and     [fileattr+32], 0
112
        mov     ebx, attrinfo
485 heavyiron 113
        mcall
139 diamond 114
        mov     ebx, [fileattr+32]
115
        test    eax, eax
116
        jz      .sizok
117
        mov     dword [fileinfo.name], N_A
118
.sizok:
31 halyavin 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
134 diamond 136
red:                    ; перерисовать окно
31 halyavin 137
 
134 diamond 138
    call draw_window    ; вызываем процедуру отрисовки окна
31 halyavin 139
 
140
;---------------------------------------------------------------------
141
;---  ЦИКЛ ОБРАБОТКИ СОБЫТИЙ  ----------------------------------------
142
;---------------------------------------------------------------------
143
 
144
still:
134 diamond 145
    mcall 10            ; функция 10 - ждать события
31 halyavin 146
 
134 diamond 147
    cmp  eax,1          ; перерисовать окно ?
148
    je   red            ; если да - на метку red
149
    cmp  eax,3          ; нажата кнопка ?
150
    je   button         ; если да - на button
31 halyavin 151
 
152
;---------------------------------------------------------------------
153
 
154
 
134 diamond 155
  key:                  ; нажата клавиша на клавиатуре
156
    mcall 2             ; функция 2 - считать код символа (в ah)
157
    cmp  ah,104         ; HELP
31 halyavin 158
    jne  .nohelp
159
  .help:
160
    xor  [mode],RTF_HELP
161
    test [mode],RTF_HELP
134 diamond 162
    jz   load_file
31 halyavin 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:
134 diamond 183
    cmp  ah,114         ; R - redraw
184
    je   red
185
    cmp  ah,99          ; C - color
31 halyavin 186
    jne  .nocolor
187
  .color:
188
    xor  [mode],RTF_COLORLESS
189
    jmp  red
190
  .nocolor:
134 diamond 191
    cmp  ah,97          ; A - alignment
31 halyavin 192
    jne  .noalign
193
  .alignment:
194
    xor  [mode],RTF_ALIGNLESS
195
    jmp  red
196
  .noalign:
134 diamond 197
    cmp  ah,44          ; < - pitch dec
31 halyavin 198
    jne  .nopd
199
  .decp:
200
    dec  [pitch]
201
    jmp  red
202
  .nopd:
134 diamond 203
    cmp  ah,46          ; < - pitch inc
31 halyavin 204
    jne  .nopi
205
  .incp:
206
    inc  [pitch]
207
    jmp  red
208
  .nopi:
134 diamond 209
    cmp  ah,180         ; Home
210
    je   top_red
31 halyavin 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
134 diamond 228
    jl   red
31 halyavin 229
    mov  [top],TOP
230
    cmp  cx,[top]
134 diamond 231
    je   still
31 halyavin 232
    jmp  red
233
  .nopgup:
234
    cmp  ah,178 ;arrUp
235
    jne  .noarup
236
    add  [top],CHARH
237
    cmp  [top],TOP
134 diamond 238
    jl   red
31 halyavin 239
    mov  [top],TOP
240
    cmp  cx,[top]
134 diamond 241
    je   still
31 halyavin 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
134 diamond 262
    cmp  ah,108         ; L - load
1512 mario79 263
    jne  still
31 halyavin 264
  .file_open:
1418 mario79 265
;---------------------------------------------------------------------
266
;OpenDialog_start:
267
;	copy_path	open_dialog_name,path,library_path,0
268
 
1512 mario79 269
	push    dword OpenDialog_data
270
	call    [OpenDialog_Start]
1418 mario79 271
 
1512 mario79 272
;	cmp	[OpenDialog_data.status],2 ; OpenDialog does not start
273
;	je	.sysxtree  ; 	some kind of alternative, instead OpenDialog
1418 mario79 274
	cmp	[OpenDialog_data.status],1
275
	je	prep_load
1436 mario79 276
	jmp	still
1418 mario79 277
;---------------------------------------------------------------------
1512 mario79 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
31 halyavin 286
;---------------------------------------------------------------------
287
 
288
  button:
134 diamond 289
    mcall 17            ; 17 - получить идентификатор нажатой кнопки
31 halyavin 290
    cmp   ah,2
134 diamond 291
    je    key.help
31 halyavin 292
    cmp   ah,3
134 diamond 293
    je    key.color
31 halyavin 294
    cmp   ah,4
134 diamond 295
    je    key.alignment
31 halyavin 296
    cmp   ah,5
134 diamond 297
    je    key.file_open
31 halyavin 298
    cmp   ah,6
134 diamond 299
    je    key.incp
31 halyavin 300
    cmp   ah,7
134 diamond 301
    je    key.decp
31 halyavin 302
  if RENDER eq FREE
303
    cmp   ah,8
134 diamond 304
    je    key.zminus
31 halyavin 305
    cmp   ah,9
134 diamond 306
    je    key.zplus
31 halyavin 307
  end if
134 diamond 308
    cmp   ah, 1         ; если НЕ нажата кнопка с номером 1,
309
    jne   .noexit       ;  вернуться
31 halyavin 310
 
311
  .exit:
134 diamond 312
    mcall -1            ; иначе конец программы
31 halyavin 313
  .noexit:
314
    cmp   ah,20
315
    jne   still
316
    mcall 37,1
317
    and   eax,0xffff
318
    cmp   eax,[HClick]
134 diamond 319
    je    still
31 halyavin 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
 
134 diamond 337
    mcall 12, 1                    ; функция 12: сообщить ОС об отрисовке окна
338
                                   ; 1 - начинаем рисовать
339
 
31 halyavin 340
    mcall 0, <10,WINW>, <100,WINH>, WIN_COLOR,0x805080D0, 0x005080D0
485 heavyiron 341
    mcall 4, <8,8>, 0x10DDEEFF, title, titlesize-title
31 halyavin 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]
134 diamond 358
    je   .nochg
31 halyavin 359
  .chg:
360
    mov  [wSave],ebx
134 diamond 361
    or   [mode],RTF_TOEOF
31 halyavin 362
    and  [HDoc],0
363
    and  [line_count],0
364
    mov  [HClick],-100
365
  .nochg:
1195 diamond 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
 
31 halyavin 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
1195 diamond 440
    add  ebx,2 shl 16+13
31 halyavin 441
    mov  ecx,dword[prcinfo+46]
1195 diamond 442
    add  ecx,40 shl 16-35
31 halyavin 443
    mov  edx,20+1 shl 29
444
    mcall 8
445
    mov  ecx,[HClick]
446
    shl  ecx,16
1195 diamond 447
    add  ecx,6-3 shl 16 + 7
31 halyavin 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:
134 diamond 512
    mcall 12, 2                    ; функция 12: сообщить ОС об отрисовке окна
513
                                   ; 2, закончили рисовать
514
    ret                            ; выходим из процедуры
31 halyavin 515
 
516
if GUTTER eq 1
517
   arrow db 0x19
518
end if
519
;---------------------------------------------------------------------
520
;---  ДАННЫЕ ПРОГРАММЫ  ----------------------------------------------
521
;---------------------------------------------------------------------
522
 
523
; интерфейс программы многоязычный
524
;  Вы можете задать язык в MACROS.INC (lang fix язык)
485 heavyiron 525
 
526
title:
1195 diamond 527
  db 'RTF Reader v1.    (     ):'
485 heavyiron 528
titlesize:
31 halyavin 529
btn_text:
1399 diamond 530
    db 'Load Aligment Color Help    <      >'
1195 diamond 531
if RENDER eq FREE
532
    db '    Zoom+ Zoom- '
533
  end if
31 halyavin 534
btn_end:
1418 mario79 535
;---------------------------------------------------------------------
1512 mario79 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
;---------------------------------------------------------------------
1418 mario79 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
1436 mario79 575
.filename_area		dd 0	;+40
576
.filter_area		dd Filter
31 halyavin 577
 
1418 mario79 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:
1436 mario79 586
dd Filter.end - Filter
587
.1:
1418 mario79 588
db 'RTF',0
589
.end:
590
db 0
591
;---------------------------------------------------------------------
139 diamond 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
 
31 halyavin 601
fileinfo:
602
  dd 0
603
.block:
604
  dd 0
139 diamond 605
  dd 0
31 halyavin 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
1195 diamond 625
;  db '/HD/1/RTF/texts/RULEBOOK.RTF',0
31 halyavin 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:
134 diamond 648
fname_buf:
649
        rb      1024+16
139 diamond 650
fileattr rd 40/4
31 halyavin 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 ?
134 diamond 703
I_END:                             ; метка конца программы
485 heavyiron 704
 
705
procinfo process_information
31 halyavin 706
rb RTFSIZE
707
esp1:
708
rb ESPSIZE
709
sys_mem:
710
rb ESPSIZE
1418 mario79 711
;---------------------------------------------------------------------
712
temp_dir_pach:
713
        rb 4096
1512 mario79 714
cur_dir_path:
715
	rb 4096
716
library_path:
717
	rb 4096
1418 mario79 718
;---------------------------------------------------------------------
134 diamond 719
esp_end: