CHAP01.TXT Version 1.01 01/29/85 Leonard Gilberg 74126,2044 Robert Flagg 72466,2332 THE JOYS OF ASSEMBLY This "Cookbook" is the brainchild of Robert Flagg [72466,2332], Leonard Gilberg [74126,2044], Bonnell Frost [74076,223] and others, who, with the blessing of Frank Fallon (SYSOP), felt it would be helpful if some members of the Sig, new and otherwise, had an oppor tunity to see the struggles of members new to CP/M learning the ins and outs of using ASM, LASM3 and/or ZASM. Some of the "Recipes" here are the contribution of several members of the Sig who are grateful to have the opportunity to pass along information given to them by more ex perienced members when they were struggling too. Too often, members are afraid to ask for help, thinking that the question is too basic or that they will appear "dumb". The only dumb question is the unasked one because there are always others eager to pass along advice and excited about the opportunity to repay the favors given them in the beginning, by helping someone else along. Should this Cookbook be approved and placed in "use", we will all be happy to have been a part of it, especially, if it is of help to any one. Normally, files with the extension .ASM, when down- loaded, are transformed into files with the extension .COM after the application of some version of ASM.COM and LOAD.COM. At that time, they are ready to run as in the case of any other .COM file you have by simply typing the filename without the .COM extension. In some cases, for example where the program is installed as a patch, in WordStar for instance, you will stop after the use of ASM so that the file will have a .HEX extension. You will not, in such cases, use the LOAD.COM procedure. There are some rarer variations of this, but they are beyond the scope of this discussion. For the sake of terminology, the .ASM is referred to as the "Source Code" file and the .COM file as the "Object Code" file. You may one of those who "almost" understand what is being said about a particular program or action, but really are not sure because some of the words are strange. You may be afraid that if you ask what the word or words mean, everyone will think you're so dumb they won't want to talk to you anymore. Perish the thought! For those of you who feel you need it, here is our attempt at some sort of table of definitions. DEFINITIONS ALGORITHM - Generally, a special method of solving a certain kind of problem. ASSEMBLERS - Those programs, such as ASM.COM, LASM.COM & ZASM.COM, which take an Assembly Language Source File and create two other files--the object code .HEX file and the diagnostic .PRN file. COMPILER - A language translator which takes as input source code in a high-level language such as Fortran, C, Pascal, or Cobol and generates as output either assembler-input code or object code directly. DDT - An utility program, by Digital Research Institute (DRI), supplied with CP/M and used to "debug" programs. Hence the name DDT (cute, huh?). Used to break a program down into its 8080 mnemonics so that those who know what they are can make the changes desired. DDT is RAM-memory oriented. DU - Another utility program, designed by Ward Christensen which works, essentially, the same as DDT, with a little different configuration, and now followed by DUU.COM. DU is oriented to work on disk memory. ENTRY POINTS - The specific location in a program where an Overlay or other modification to the program begins. GENERIC - A non-specific class, general in nature. HEX - A "shorthand" reference to Hexidecimal values, usually known as Intel format, and created by the ASM program. Also used as a file extension, i.e., Filename.HEX. Also, a situation which exists when Mother Nature discovers that you forgot to put surge protectors on your equipment and calls down the elements to teach you better. INITIALIZATION - A command or sequence of commands which readies equipment or a program for execution as desired. Normally used in connection with setting equipment, such as printers, to their default values. INTERACTIVE - In the computereze climate, this is usually a point in a program where you input information from the keyboard or "interact" with the program. LANGUAGE - A word which describes the particular type of instruc tion to a computer. The "language" must be structured in such a way that the computer "understands" and is able to convert the instructions contained in the "language" into object code. Examples could be Assembly, Cobol, Fortran, C, Pascal, Forth, etc. LOAD - The program, usually supplied with CP/M, which takes the .HEX file generated by the ASM program and converts it into a .COM program ready to run. LOAD.COM and MLOAD.COM are examples. MACHINE LANGUAGE - Binary code, a series of 1's and 0's, which is the only instruction that a computer understands. Every other language is either translated, interpreted, compiled, assembled or loaded so as to, ultimately, reach machine language. MICROPROCESSOR - Usually, a silicon chip (such as Intel's 8080 or Zilog Z-80, such as is used in the Kaypro). MNEMONICS - "Short-hand" or abbreviated instructions required by a particular language processor in order for the compiler or assembler to generate object code. OBJECT FILE - The file which contains the binary code which you always wanted when you started with the "Source File." Usually this is a .HEX or a .COM file. OFFSET - Has more than one meaning. In 8 bit operation, such as CP/M, usually means a hexidecimal position or address other than the "usual" or "expected" location or address. Normally given as an auxilliary address in the command where it is used. OVERLAY - A method allowing a group of changes to be made in an existing program. The "overlay" program is typically a smaller program which, when "overlaid" on an existing program, changes part of the instructions in the existing program. Overlays are commonly used to configure "generic" software to enable it to run on specific hardware setups. PATCH, PATCHING - The process of changing a program byte-by-byte. Often used when smaller changes are required to customize a program. SCREEN CLEARING - The act of giving or causing to be given a command or series of commands which cause the CRT to clear or become blank. SEQUENCE - A series of commands, structured to give a computer specific instructions to accomplish. Usually, must be given in a pre-set or predetermined order. SOURCE FILE - The program written in a human-understandable language which assemblers or compilers will convert to machine- understandable object code. SPECS - Short for specifications. SUB - An extension (.SUB) for a source file of commands for the SUBMIT or EX program. ZCPR - A Z80 Command Processor replacement for the CP/M Console Command Processor (CCP) which performs a new and different set of commands as well as the familiar CP/M commands. Author is Rick Conn.