home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / CTFASMTT.ZIP / LESSON9.DOC < prev    next >
Text File  |  1994-10-29  |  2KB  |  131 lines

  1. LESSON9 - INCLUDING INFO IN THE EXE
  2.  
  3. the method to this is almost the same as extrn/public, the way
  4. to this is using the prog "binobj" which comes with tp/bp or bc/tc
  5. and use is a following :
  6. "binobj" <InputFileName> <OutputFileName> <PublicName>
  7. lets say we have pic.dat and we want the public to be dat1 then :
  8. "binobj pic.dat pic.obj dat1" and <-
  9. lets say it was a data of screen made with pascal :
  10.  
  11. program example ;
  12.   uses dos,crt ;
  13.   var
  14.     z:file ;
  15. begin
  16.   assign (z,'pic.dat') ;
  17.   rewrite (z,1) ;
  18.   blockwrite (z,mem[$b800:0],4000) ;
  19.   close (z) ;
  20. end.
  21.  
  22. this will give us a screen file, and now how to show it :
  23.  
  24. sseg segment
  25.   db 10 dup (?)
  26. ends
  27.  
  28. cseg segment
  29. assume cs:cseg,ss:sseg,ds:cseg,es:nothing
  30.  
  31. extrn dat1:far
  32.  
  33. start :
  34.  
  35. push ds        ; we must save it
  36.  
  37. mov ax,seg dat1 ; points to extrn seg
  38. mov ds,ax
  39. mov si,offset dat1
  40.  
  41. mov ax,0b800h  ; adress of screen
  42. mov es,ax
  43. mov di,0
  44.  
  45. mov cx,2000    ; to speed up use movsw (4000 bytes/2)
  46. rep movsw
  47.  
  48. pop ds
  49.  
  50. mov ax,4c00h
  51. int 21h
  52. ends
  53. end start
  54. end
  55.  
  56. this will write the pic to the screen, compiling goes like that :
  57.  
  58. "binobj ...."
  59. "tasm filename.asm"
  60. "tlink filename pic.obj"
  61.  
  62. and that's it, but what if we use a picture, then ???
  63. well you will have to open a new segment for the extrn :
  64. newseg segment
  65.   extrn dat1
  66. ends
  67.  
  68. this way you will avoid passing the 64k, if your data passes 64k then
  69. split it or use protected mode (how, learn it, it ain't easy) ;
  70.  
  71. writing a picture to screen (graphic)
  72.  
  73. program example ;
  74.   uses dos,crt ;
  75.   var
  76.     z:file ;
  77. begin
  78.   assign (z,'pic.dat') ;
  79.   rewrite (z,1) ;
  80.   blockwrite (z,mem[$a000:0],64000) ;
  81.   close (z) ;
  82. end.
  83.  
  84. sseg segment
  85.   db 10 dup (?)
  86. ends
  87.  
  88. cseg segment
  89. assume cs:cseg,ss:sseg,ds:cseg,es:nothing
  90.  
  91. extrn dat1:far
  92.  
  93. start :
  94.  
  95. push ds        ; we must save it
  96.  
  97. mov ax,13h
  98. int 10h         ; goes to graphic mode 320*200*256
  99.  
  100. mov ax,seg dat1 ; points to extrn seg
  101. mov ds,ax
  102. mov si,offset dat1
  103.  
  104. mov ax,0a000h  ; adress of screen
  105. mov es,ax
  106. mov di,0
  107.  
  108. mov cx,32000    ; and,,.... it's on the screen
  109. rep movsw
  110.  
  111. mov ax,0
  112. int 16h         ; pause
  113.  
  114. mov ax,3
  115. int 10h         ; goes back to text
  116. pop ds
  117.  
  118. mov ax,4c00h
  119. int 21h
  120. ends
  121. end start
  122. end
  123.  
  124. compiling :
  125.  
  126. "binobj pic.dat pic.obj dat1"
  127. "tasm filename"
  128. "tlink filename pic"
  129.  
  130. and run, this program doesn't have pal, if you want to add, then go figure
  131. it out (I can't teach you every thing)