Metropoli BBS
VIEWER: $readme.doc MODE: TEXT (ASCII)
*********************************************************************
Source code from the book:

		  Mastering
		Turbo Assembler

		by Tom Swan
		(Hayden,1989)

***********************************************************************


PART I  Programming with the Turbo Assembler

-1-  Intro

-2- First steps
	FF.asm		- sends form feed to printer
	COMSHELL.asm 	- shell for *.COM files
	EXESHELL.asm  	- shell for *.EXE files
	PR132.asm  	- selects compressed 132-character printer output

-3- A bit of binary

-4- Using Turbo Assembly language instructions
       These are used with the Turbo Debugger as detailed in the book.
	MOV.asm		- MOV demo
	PUSHPOP.asm 	- PUSH/POP demo
	ADDSUB.asm 	- ADD/SUB/INC/DEC demo
	MULDIV.asm 	- MUL/DIV/IMUL/IDIV demo
	ANDORXOR.asm 	- AND/OR/XOR demo
	SHIFT.asm       - SHIFT demo
	SUBDEMO.asm     - Subroutine demo

-5- Simple data structures
	STRINGS.asm 	- string procedures
	STRIO.asm       - string i/o procedures
	ECHOSTR.asm     - string read test
	MAIN/MODULE.asm - simplified external example

-6- Complex data structures
	STRUC.asm   	- structure demo for Turbo DEBUGGER
	VERSION.asm     - automatic program version demo
	BINASC.asm      - binary to ascii conversion routines
	EQUIP.asm       - displays PC equipment information
	CONVERT.asm     - converts binary/hexadecimal/decimal numbers

-7- Input and Output
	FILTER.asm 	- filter shell
	SCREEN.asm 	- memory mapped video screen output routines
	CHARS.asm       - displays character/attribute reference
	KEYBOARD.asm    - keyboard input routines
	KEYS.asm        - displays key values

-8- Macros and conditional turbo assembly
	DOSMACS.asm     - subset of DOS Macros for Turbo Assembler (Ideal mode)

-9- Disk file processing
	DISKERR.asm  	- disk error handler
	PARAMS.asm	- parse   DOS command-line parameters
	SHOWPARAM.asm	- display  "    "      "     "
	KOPY.asm	- copy input to output
	DR.asm          - display disk directory

-10- Interrupt handling
	SLOWMO.asm	- slow motion interrupt generator (to slow PC for games)
	DIV286.asm      - 80286/386 divide-fault ISR installer
	DIVFAULT.asm    - divide-fault demo
	ASYNCH.asm 	- asychronous serial communications module
	TRM.asm  	- terminal emulator w/control-code debugging
	SINGLE.asm      - single-step (trap) demo

-11- Advanced topics
	A. Binary Coded Decimals (popular in business applications).
		BCD.asm		- bcd routines
	B. Processing tables.
		TABLE.asm	- using tables for gaining speed
		BOXCHAR.asm 	- uses table to map ALT keys to give
				  box drawing characters
	C. Using Segments in programs
		HARDSHEL.asm 	- shell for *.EXE files with Unsimplified Segments
		COLDBOOT.asm	-  performs reboot
	D. Programming the 80286
		BOUND286.asm	- bound test (to be used ONLY on 80286/386 systems!)


PART II  Multi-Language programming

-12- Optimizing "PASCAL"
	PASSHELL.asm	- shell for TurboPascal *.OBJ modules
	PASDEMO.asm     - a crazy demo of how to pass code/data between PASCAL/TASM
	PASDEMO.pas     -  "     "          "    "             "   "
	FILLSTR.asm     - external pascal string filler function
	FILLSTR.pas     -      "            "             "
	STR.pas         -  string conversion
	STR.asm         -    "       "

-13- Optimizing "C"
	TALLY.c 	- short example of in-line assembly code
	UPDOWN.c        - in-line assembly code function demo
	CSHELL.asm      - shell for Turbo C *.obj modules
	CFILLSTR.c      - calling assembly language functions from Turbo C demo
	CFILLSTR.asm    -    "               "                "


PART III   Reference

-14- 8086/88, 80286, 80386 Reference Guide

-15- Turbo Assembler Reference

Appendix 1 - Bibliography

Appendix 2 - Answers to Exercises

_____________________________________________________________________________
Also ...
-----------------------------------------------------------------------------

NOTE:  	Now available on a public BBS near you is the
	program ASMED.

	This program is great in that it adds the Turbo Pascal/Turbo C
	Interactive Environment to TASM !!!!!!!!!!!!!!!!!
	(well not quite but NICE try !)


NOTE about TURBO ASSEMBLER's Ideal mode (from page 7 of book):

	"Turbo Assembler is actually two assemblers in one.
	Normally, Turbo Assembler processes programs written in the popular MASM syntax.
	For assembling programs downloaded from bullein boards, copied from time-share
	systems, or gleaned from MASM books, this is the method to use.
		(ALL ASM) Examples in this book use Turbo Assembler's
	IDEAL MODE, which I believe to be superior to MASM syntax-especially
	for writing stand-alone assembly language programs.  With IDEAL mode,
	programs assemble faster and are less prone to developing bugs
	that can result from MASM's many known quirks and syntactical freedoms.
	(The Turbo Assembler User's Guide spells out the difference between
	MASM & Ideal mode instructions.)
		In addition to extra speed and the absence of Quirky behavior,
	Ideal mode offers other advantages.  Structures (similar to Pascal records
	or C structures) can repeat member field names.  Assembler directives are
	easier to remember and use.  Equated symbols and expressions always
	have predictable values.  And formats for various memory-addressing
	modes must conform to generally recognized guidelines.  If you don't yet
	grasp the significance of some of these items, you'll have to trust my
	opinion: Ideal mode is what PC programmer's have needed for years.
		Don't be concerned that, by learning Ideal mode, you'll be
	shut out from using thousands of lines of MASM code in the public
	domain.  After learning Ideal mode, you'll be able to read and
	understand MASM-mode programs with Little effort.  Most differences
	between the two modes of programming are subtle-a spelling change here,
	an operand reversal there.  I regularly read & work in both syntaxes
	without difficulty, but I prefer using Ideal mode for new projects."


NOTE: this book comes with a handy Reference Card that contains
      all the instructions for the 8086/8088/80286/80386 processors and
      it comes with numerous Exercises at the end of each chapter with
      answers for the exercises in the Appendix.
***********************************************************************


[ RETURN TO DIRECTORY ]