Volume 1 copyright (c) Infus 1994 Issue 1 version 1.01 (Biscuit 2) ÚÄÄÄÄÄÜÜÜÜÜÜÜÄÄÄÄÜÄÄÄÄÜÄÄÄÄÄÜßÜÄÄÄÄÜÄÄÄÄÜÄÄÄÄÄÜÜÄÄÄÄÄÄ¿ ÃÄÄÄÄÄÄÄÄÞÄÄÄÄÄÄÞÄÝÄÄÞÄÄÄÄÄÛÄÄÄÄÄÄÞÄÄÄÄÄÝÄÄÄÜßÄÄßÄÄÄÄÄ´ ÃÄÄÄÄÄÄÄÄÝÄÄÄÄÄÄÝÄÝÄÄÝÄÄÄÄÞÝÄÄÄÄÄÄÝÄÄÄÄÞÄÄÄÄÄßÜÄÄÄÄÄÄÄ´ ÃÄÄÄÄÄÄÄÞÄÄÄÄÄÄÞÄÄÝÄÞÄÄÄßßßÛßßßÄÄÞÄÄÄÄÄÝÄÄÄÄÄÄÄÝÄÄÄÄÄÄ´ ÃÄÄÄÄÄÄÄÝÄÄÄÄÄÄÝÄÄÝÄÝÄÄÄÄÄÄÝÄÄÄÄÄÛÄÄÄÜßÄÄÜÄÄÄÜßÄÄÄÄÄÄÄ´ ÀÄÄÄÄßßßßßßßÄÄßÄÄÄßßÄÄÄÜÄÄÛÄÄÄÄÄÄÄßßßÄÄÄÄÄßßßÄÄÄÄÄÄÄÄÄÙ ßß InŸus 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 InŸus) 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!