Volume  1                                           copyright (c) Infus 1994
Issue   1
version 1.01                   
(Biscuit 2)

Ŀ            
Ĵ            
Ĵ            
Ĵ            
Ĵ            
                                    
			
Inus Productions - found 01/23/94



Introduction

    Infus is a small group of programmers who are dedicated to the production 
of high quality software for the betterment of mankind.  Uhhh, yeah right.  
No, we are just a group of computer phreaks, mostly high school kids, who 
write great programs in our free time.  The purpose of this journal is to      
distribute information about our software, and to offer help to other 
programmers.  This is not a hacking journal, but we may occasionally touch on 
topics relating to virii and cracking.  The material in this journal will not 
be restricted to programming, so we will include articles on hardware as well 
as software.  This is a soft-copy, free publication that is not written by
paid writers.  There is no set release date ... new issues will be released
when we feel like it.  New issues will most likely be released along with new
Infus software releases.  We will accept articles from anyone, as long as
they meet the requirements.

Please feel free to distribute this issue.  Our main mode of distribution for
this journal will be through bulletin boards.  The Infus headquarters BBS is:
     
      Tasty Petunia Vomit   (602) 813-1859
      Sysop:  Nifty Corpse (co-founder of Inus)

Right now, Infus is composed of five members.  We are always looking for new
people to join.  To join, you must program fluently in at least one language.
We are looking for those knowledgeable in languages such as C++, Pascal, and
ASM, but we will accept anyone with programming experience.  Contact the
sysop of Tasty Petunia Vomit BBS if you are interested.

Here is what Infus looks like so far:
      
    Nifty Corpse
      Age:  17
      Programming:  Pascal, BASIC
      
    Ender  
      Age:  17
      Programming:  Pascal, Assembly, BASIC

    Amerist A'Toll
      Age:  17
      Programming:  C++, Assembly, BASIC 

    Anjin
      Age: 15
      Programming:  BASIC

    Jei Embek
      Age: 17
      Programming:  BASIC, Pascal

    Philippe Conway
      Age: 16
      Programming:  BASIC, Pascal

    Eric Barendt
      Age: 15
      Programming:  Pascal, BASIC

These are all of the members so far.  We are a new group, and we are looking
for new members.  Rank is not important in Infus since we do not believe in
that type of personnel hierarchy.  Age is definitely not an issue.  We only
judge on a basis of programming ability.



Table of Contents 


  01  -  Infus Releases and Projects
  02  -  New Vocabulary List
  03  -  Book List
  04  -  Article 1:
	   "Using Inline Assembly Language with Turbo Pascal"
	   written by Ender
  05  -  Conclusion


1.  Infus Releases

Since Infus is very new, we have a lot of ideas, but few releases.  
But, here is what we have so far:

AutoMessenger 1.0  -  This is a Renegade BBS utility that allows users to 
  enter messages which are displayed to all users at logon.  It has the
  following special features:  chat mode, multiple drop file support, ASCII
  and ANSI support, multi-node support, a sysop window, and total
  configurability.             

CyberCode 3.0  -  This is a computer language that is totally menu-driven.  
  It allows you to write simple and quick programs with minimal typing 
  involved.  The menu system consists of a group of windows in 
  which you can edit programs, change options, and scan through 
  files. 

AutoMessenger 1.1  -  New version of Automessenger that fixes some bugs in 
  the first release but also adds a nice feature that lets the user change
  colors in his automessage.

Yep, you got it ... we only have three releases so far.  But wait!  We have
many, many projects.  Here they are:

CyberHex 1.0  -  This is a hex editor that uses re-sizeable, moveable windows 
  to display information.  It has many options, and supports a mouse.
  Release date:  CyberHex is nearing completion.  It will probably be
  released by the Summer of '94.

Investigator 1.0 - This is a sysop log analysis utility for Renegade BBS's.
  It lets the sysop scan the logs for various information on BBS activity.
  Release date:  Investigator is in the middle of production.  It will
  hopefully be released by the Summber of '94.

TPV-CBV 1.0 - Another Renegade callback-verifier that will e-mail the sysop
  with a status report.

DosMacro 1.0 - DOS macro utility.  Still in early stages of production.

These projects will most likely be released before the summer.  We have
several other projects that are in the planning stages.



2.  New Vocabulary List

Here are the latest new slang words we have seen on the nets.  We will add
to this section of the journal whenever we see knew jargon.  

  game lamer : (n) someone who only calls BBS's to play the online games.
  pcr poster : (n) a person who posts messages in the public bases that
    are lame and pointless only to raise their post-to-call ratio.  Game
    lamers are usually known for pcr-posting.
  prolly : (adv) mutation of the word "probably" to save typing time.
  hehe : (n) a very common word that symbolizes laughter.
  reverse-trendyism : (n) a condition someone has when they purposely alter
    there behavior in order to be less like other people.


3.  Book List

Here are some books on programming that we feel are the best in their
category.  We will add to this list as we find new books.

Pascal:
  Ezzell, Ben.  Graphics Routines in TP 6.0.  Addison-Wesley
  Weiskamp, Keith, and Loren Heiny.  Power Graphics Using Turbo Pascal 6.0.  
       Coriolis Group Book.

Assembly Language:
  Wyatt, Allen L.  Using Assembly Language.  Que.
  Wyatt, Allen L.  Advanced Assembly Language.  Que.



4.  Article 1


	      Using Inline Assembly Language with Turbo Pascal

			    Written by: Ender

			     Version 1.00

			  (c) Copyright 1994


     Ever feel the need for greater power and efficiency in your Pascal
programs?  Ever need a command that Turbo Pascal lacked?  Well, you can
fulfill these needs, and greatly enhance your programs by using inline
assembly language commands.  Assembly language is the most powerful tool you
can add to your Pascal programs.  If you program with an assembler, then
you already know this.  If not, then I reccommend that you try learning a
little assembly language.
     Turbo Pascal offers two ways for you to use assembly language in your
programs.  The first is the "asm" statement with which you can use direct
assembly language commands.  The second method is to use the Pascal commands
for accessing the registers and interrupts.  This article will focus on the
first method only.

Inline Assembly
---------------
  Here is the structure of the inline assembly statement:

	  procedure Test;
	  begin
	    asm                    { tells the compiler to start using ASM }
	      mov ah,1             { assembly language commands            }
	      int $10
	    end;                   { end of ASM statement                  }
	  end

If your procedure only has inline assembly commands in it and no Pascal
commands, you can use the "assembler" statement:

	  procedure Test;
	  assembler;                { takes place of "begin" }
	  asm
	    mov ah,1
	    int $10
	  end;


Source Code 1
-------------
Here is a procedure to adjust the size of the cursor.  The cursor is made up
of 8 lines, from 0 to 7.  Put the line you want it to start on in "StartLine"
and then line you want the cursor to end with in "EndLine".  

	  procedure Size_Cursor(StartLine, EndLine : ShortInt);
	  assembler;
	  asm
	    mov ah,1                          { Select service 1 }
	    mov ch,StartLine                  { Load start line of cursor }
	    mov cl,EndLine                    { Load end line of cursor }
	    int $10                           { Call the interrupt }
	  end;

Examples:
     Size_Cursor(6, 7);      { Standard cursor ... bottom two lines }
     Size_Cursor(0, 7);      { Block cursor ... all lines filled    }
     Size_Cursor(0, 0);      { Only top line of cursor shows        }
     Size_Cursor(-1, -1);    { Makes the cursor disappear           }


Source Code 2
-------------
     This procedure allows you to configure the keyboard.  You can adjust
how long the keyboard waits until it starts repeating characters, and you
can also adjust how fast it responds.

	  procedure Set_Keyboard(KeyDelay, RepeatRate : byte);
	  assembler;
	  asm
	    mov ah,3                       { Select service 3    }
	    mov al,5                       { Select subservice 5 }
	    mov bh,KeyDelay                { Load delay time     }
	    mov bl,RepeatRate              { Load repeate rate   }
	    int $16                        { Call the interrupt  }
	  end;

"KeyDelay" is the amount of time to wait before repeating a key.  "Repeat
rate" is the rate at which to repeat characters.  To allow fast keyboard
performance, then load KeyDelay and RepeatRate with 0.  The lower the values,
the faster the performance.

Examples:
     Set_Keyboard(0, 0);         { Fastest }
     Set_Keyboard(3, 31);        { Slowest }


Source Code 3
-------------
This procedure will print the screen.

	  procedure Print_Screen;
	  assembler;
	  asm
	    int 5
	  end;


Source Code 4
-------------
     This function returns the value of a character on the screen at
position "x" and "y".

	  function Read_Char(x, y : byte) : char;
	  begin
	    GotoXY(x, y);
	    asm
	      mov ah,8
	      mov bh,0
	      int $10
	      mov Read_Char,al
	    end;
	  end;

Example:
     ch := Read_Char(1, 1);    { Store character on screen at (1, 1) in ch }
     ch := Read_Char(24, 10);
	   

*** END OF ARTICLE ***            
	      


5.  Conclusion

     So, this was our first issue.  The next issues will include many more 
articles and information.  This was mainly an introductory issue.  We thank 
you for reading the Infus Journal, and we encourage you to send us your own 
articles, opinions, and ideas.  Thanks!
