home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser 1998 October
/
STC_CD_10_1998.iso
/
ONLINE
/
DFUE
/
STARFAX
/
FDDKIT_FTQ
/
FAX_LOAD.LST
next >
Wrap
File List
|
1998-09-26
|
2KB
|
71 lines
' How to load a fax file
'
' Note: Global arrays must be implemented
' Don't forget to load the Inline file "faxdecode.inl"
' This is just an example source, you can use any other language allowing
' to call assembler with parameters on stack.
'
' Reserve some RAM for the Image
'
'
ram%=MAX(MIN(MALLOC(-1)-40960,216*4800),216*2400)
maxline&=ram% DIV 216
'
' Store the Infos somewhere
'
bild_w&(win&)=1728 !IMG width
bild_h&(win&)=maxline& !Hight
bild_i&(win&)=1728\16 !Integers
bild_x&(win&)=128 !X offset
bild_y&(win&)=0 !Y "
bild_name$(win&)=f$ !A file name
bild_zoom&(win&)=1 !Zoom factor (1)
bild%(win&)=MALLOC(ram%) !IMG RAM
'
' Load INLINE here, (PRESS HELP AT NEXT LINE!)
INLINE faxdecode%,2000
'
IF bild%(win&)>0 !OK???
'
IF INT{faxpage%}=21581 !256 bytes Header Present? <TM-FAX>
fax_autor$(win&)=CHAR{faxpage%+170} !Get autor
fax_res&=BYTE{faxpage%+29} !resolution (0=98 or 1=198 dpi)
SUB len%,256
BMOVE faxpage%+256,faxpage%,len%
ELSE
fax_autor$(win&)="unknown"
fax_res&=1
ENDIF
'
~GRAF_MOUSE(2,0)
'
FOR a%=0 TO len%-1 STEP 4096
$C+
back&=C:faxdecode%(L:faxpage%+a%,L:bild%(win&),L:MIN(4096,len%-a%),SGN(a%))
bild_y&(win&)=MAX(back&-wh&,0)
'
IF view&>0
redraw(win&) !YOU MAY REDRAW HERE
ENDIF
'
~GRAF_MKSTATE(mx&,my&,mz&,i&)
EXIT IF (i& AND 4)>0
NEXT a%
'
bild_zeilen&=back& !Number of lines
'
bild_h&(win&)=bild_zeilen&
'
IF fax_res&=0 !Zoom 98>198 dpi
zoom
ENDIF
'
IF bild_h&(win&)<(maxline&-4) !Give back some memory
~GEMDOS(74,0,L:bild%(win&),L:((bild_h&(win&)+4)*2*bild_i&(win&)))
ENDIF
'
~GRAF_MOUSE(0,0)
ELSE
~FORM_ERROR(4)
ENDIF