Public (software) Library Programming Library Descriptions and Compilation Copyright 1994 Nelson Ford ALL RIGHTS RESERVED. Duplication, reprinting and distribution of these descriptions is restricted. See LICENSE.DOC in the PSL_NEWS directory for complete information Also see TOOLS and GEN_VID for tools and routines for multiple languages, including Assembler. =====Assembly Language Contents: -----ASM_DISM: assemblers, disassemblers, cross-assemblers -----COMMUNICA: assembler routines for communications & LANs -----DAT_TIME: date and time routines for assembler -----DOS_ACCS: assembler routines for accessing DOS, DOS functions, etc. -----GENERAL: various assembler routines -----HUMOR -----INPUT: assembler data entry routines -----MACROS: assembler macros -----MEMORY: assembler code for TSR's, memory management, etc. -----NUMERIC: assembly source for numeric manipulation -----SIMULATR: simulators for other CPUs -----SOUNDS: assm. routines for sound generating -----TOOLS: assembler tools -----TUTORS: assembly language tutorials & information -----VIDEO: assembler video routines =========================================================== -----ASM_DISM: assemblers, disassemblers, cross-assemblers [A86_D86] A86 & D86 (Isaacson, Eric ASP; $80) is a full-featured, professional- quality assembler that is as highly compatible with the standard Intel/IBM assembly language as possible, given design and language enhancements necessary to make A86 "significantly better" than MASM. Support for the additional instructions of the IIT-2C87 and the 80387 floating-point coprocessors and compatibility with programs written for MASM are included. The A86 manual is so thorough that it can be used to learn 86 assembly language. Also included is an outstanding debugger, D86. An AFIX package is provided which is a set of machine-readable specifications for modifying 61 ASM files from PC Magazine's utilities so that they will assemble under A86. [ASMGEN] ASMGen 2.01 (Gersbach, J. and Damke, J.; $?) generates cross-referenced assembly language code from any executable file. [ASSEMBL] Assemble (Fulford, George; $10) is a simple assembler for Intel 8088/8086 instruction set, written in TPascal. [CHASM] Chasm (Cheap Assembler) (Whitman, David; $0) is an assembler written in uncompiled BASIC. This is a good learning tool. It also offers symbolic debugging support with Trace86 (a commercial product). [CROS_ASM] Cross Assemblers Series I and II (Micept Instruments Inc.; $49/each) is a set of two-pass assemblers for the Intel 8051/52, 8044, 8048, 8080, 8085, 8096, and Z80 cpus. These versions do not support macros, conditional assembly nor included files, but are otherwise very complete. [D4851Z] D4851Z (Post, Jeffery, L.; $0) are intelligent cross disassemblers for the MCS-48 and 8051/8052 micro- controllers and for the Z80 microprocessor. It includes D48, a new version of D51, and all new DZ80. ASM and HEX files are included. [DASM] DASM (Williams, Dave; $0) is a disassembler for 8086 COM files up to 32K in size. Source code is included. [DISASM] DisASM is a disassembler written in Basic. [LASS] Little Assembler 1.0 (Mooney, Dorothy R.; $?) is an 8088 assembler for small programs. It will create only COM files. It is perfect for Q&D jobs and for laptops with limited disk space - LASS is only 11k. Separate source files may be linked during assembly. [MD86] MD86 (Calkins, Clark A.; $18) is an interactive disassembler for taking Intel 8086 programs apart and generating source code files compatible with MASM. [OBJ2ASM] OBJ2Asm converts OBJ files to assembler source files. [SIM01] Sim01 (Lueschow, Kevin; $5) is a debugging tool that simulates a 6801/6800. It lets you look at and change the registers and memory. It also disassembles the code that the program counter is about to execute, and allows you to simulate the interrupts. [TASM30] TASM 3.0 (Thomas N. Anderson, reg. fee: $40) is a table-driven cross-assembler for the DOS environment. Assembly source code can be assembled with TASM and the resulting object code transferred to the target microprocessor system via PROM or other mechanisms. Currently versions for the 6502, 8048, 8051, 8080/8085 and Z80 microprocessors are supported, but you can also build versions for other 8 bit microprocessors. [UN_ASM] Un-Asm (Gordon, Guy C.; $20) converts the unassembled listing of a .COM file from DEBUG into an .ASM file which can be modified and re-assembled with the Macro assembler. [YILMAZ] Yilmaz Disassembler 1.1 (Towfeek, Yilmaz; $25) is an interactive disassembler. It teaches assembly language by allowing the user to be a part of the disassembling process. You can disassemble in different modes such as visibility of machine codes, visibility of data labels and using different data format. Requires 400K free memory. [ZANYSOFT] ZanySoft Debugger (Kirmse, Christopher; $25) is a symbolic debugger for most common assemblers such as MASM, TASM, and A86. Features include pull down menus, multiple movable and resizable windows, quick-key combinations, and macros. It is fast, easy and only 40K. -----COMMUNICA: assembler routines for communications & LANs [BAUDOT] Baudot (Hand, Peter; $0) is assembler source for an ASCII-Baudot terminal emulator. [IBMTOK] IBMToken (Brian Fisher, reg. fee: $0) is assembler source code for an Ethernet packet driver for the IBM Token Ring adapter card. -----DAT_TIME: date and time routines for assembler [DATER1] Dater is the assembler source, OBJ and LIB files for calculating days between dates. [DELAYS] Delays (Cravener, William; $0) creates timed pauses from milliseconds to minutes. [WAITASM] Wait (Doyle, J. L.; $0) is a flexible MASM procedure that can be used in multiple ways within one program. It can be used to cause a delay of varying length depending on the value of the variable passed to it by the calling procedure. Though written for MASM, it could easily be modified for use with high level languages as well. -----DOS_ACCS: assembler routines for accessing DOS, DOS functions, etc. [CHIPS] Chips (Shea, Pat; $0) is assembler source for processor/coprocessor detection for V20, 8086, 88, 186, 286, 386 and sort of on the 486. Detects 8087, 287, 387. [CMOS] CMOS is assembler source for a program that will dump your CMOS data to disk. The executable is included. [CMOSTD] CMOSTD (Cravener, William; $0) is code for retrieving and displaying CMOS time and date. [FMT_CAH] FMT 1.0 (Hardesty, Clair Alan; $10-$25) is the assembler source code (and executable) for a full-fledged disk formatting utility. Features include fast formatting, installing the system, bypassing the "insert disk" prompt, redirectable output, and extensive error trapping. -----GENERAL: various assembler routines [ASM32] ASM32 1.1 is a library of assembly-language subroutines designed for use with the START32 DOS extender/startup code. (Douglas Herr, reg. fee: $25-50) [ASMLIB] ASMLib 3.7 (Herr, Douglas R.; $25-$100) is a collection of 120 subroutines for assembly language programmers. It features screen manipulation, equipment detection, a line editor, string manipulation, CGA/Hercules/EGA/VGA/Super VGA graphics, and much more. [ASMWIZ] Assembly Wizard's Library 1.6 (Hanlin, Thomas G. III; $29) is a collection of over 150 routines for programming in assembly language. It includes sound effects, parsing, advanced file support, mouse handling, string functions, lightning screen I/O, 32-bit math, high-resolution timers, graphics support and much more. [BR136B] BR136 is assembler source code for a ISPF/PDF program that allows you to browse most VSAM, BDAM, and multi-volume data sets. (Gilbert Saint-Flour, reg. fee: $0) [COREAID] CoreAids Macro Assembler Subroutine Library Utilities 1.0 (CoreTechs, reg. fee: $0) is a set of over 50 MASM routines that modify memory block size, write character attributes to the screen, set cursor position, get a line of text from the keyboard, display and convert between hexadecimal and ASCII codes, control buffers, load and executes other programs, and more. [FUNPCK2] FunPck2 (Cravener, William; $0) is assembler source code (and executables) for a collection of utilities: display big print, convert decimal-hex-binary, change cursor size, display free disk space, display directory listing, display text files, change files from upper/lower case, switch monitors. [SPLAY] Splay (Paul O'Nolan, reg. fee: $0) contains the TASM source for Splay Tree data compression and expansion. It includes OOP version, OBJ files, and TASM code for pre-compression string packing. -----HUMOR [INSTRUC] Humorous Assembler Instruction Set (American Gumby Corporation; $0) is a very old set of Assembly Language Mnemonics with a humorous twist. [REALPROG.TXT] RealProg.TXT - definition of a "real programmer". -----INPUT: assembler data entry routines [E_DN] "E" (Nye, David; $0) is TASM source and executable for a text editor. Features include block operations and search/replace. -----MACROS: assembler macros [8087] 8087.ASM - code macros for 8087. [AMACROS] A-Macros 2.10 (Endoh, Hortens S.; $0) is an assembler macro package for Microsoft's Macro Assembler MASM to write control structures easier in source code. [Assemble] Assemble.MAC - macro library for assemblies. [BIOS] BIOS data area equates and function call macros. [DOS] DOS equates, function call macros, and structures. [EQUATE.INC] Equate.INC - useful equates for assemblies. [GENKMACA.ASM] GenkMacA.ASM - library of general purpose macros. [GENLMACB.ASM] GenlMacB.ASM - library of general purpose macros. [INTERUPT.MAC] Interupt.MAC - macros for items that replace BIOS calls. [LMS] LMS 2.50 (Hurukawa, Satoru; $?) is a set of macros to be used with the Optasm assembler, by SLR Systems. By using these macro sets, you may find it easier to express certain conditional jumps and labelings. Some routine codes are expanded automatically with these macros. [M8087.MAC] M8087.MAC - file of macros for 8087 support. [MACRO.ASM] Macro.ASM - DOS Function call macros. [MACRO.INC] Macro.INC - A few DOS service macros. [ONEKEY.ASM] OneKey.ASM - make your own macros. [SKELETON.ASM] Skeleton.ASM - skeleton for coding asm program. [STRUCT.MAC] Struct.MAC - structured control macros. [STRUTEST.ASM] Strutest.ASM - test program for structured control macros. -----MEMORY: assembler code for TSR's, memory management, etc. [AMISLIB@] AMISLIB 0.9 (Brown, Ralf; $0) is source for creating small TSRs which can load high, detect hot-key con- flicts, and which may be unloaded in any order. Source for several sample TSRs is included. [BUFFYS] Buffy's World 1.0 is assembler code which illustrates how to write a TSR. (John Jardine, reg. fee: $0) [CLOCKJC] Clock (Chavez, Joe L.; $0) is an example of how to create a TSR clock. Source code included. [CLOK_SH] Clok-SH (Hopson, Scott; $0) is the assembler source and executable for a TSR to display the time in a corner of the screen. In our tests, it quickly lost time to the system clock, but the code is of interest anyway. [CM_INT] CM_INT (Martin, Charles ASP; $0) is a TSR Interrupt service for Assembly programmers. It includes editable data entry line with prompt string, julian date conversion, ASCII string to binary number conversion, screen and line print services. [FAKEHI] FakeHI .09 (Tony Ingenoso, reg. fee: $0) is assembler source for a program which implements enough of the XMS spec to allow SMARTDRV 4.X to run on an 8088 or 640K 286 that has a hardware EMS board. [HUGE] Huge 1.0 demonstrates the use of huge pointers in assembler. You can randomly access data across segments. Source code and executable are included. (Paul Carmichael, reg. fee: $0) [INT5] INT5 (Giannini, Mario; $0) is assembly language source code and .COM file for a sample interrupt handler and TSR. [PRNWAT] Printer Watch is ASM code that shows how to write a TSR that monitors printer activity, allowing you to make character/control substitutions, etc. [SCBL_SH] ScBl-SH (Hopson, Scott; $0) is assembler source and executable for a TSR to blank the screen. [TSRTEST] TSRTest (Thompson, Gary; $0) is assembler source code for a small TSR, meant to illustrate how to write TSR's. [XLIB31] XLIB 3.1 is an assembly language library which can greatly simplify protected-mode programming. EASYX library included for those unfamiliar with assembly language. Procedures added to access memory-mapped input/output devices. (Technilib, reg. fee: $40) -----NUMERIC: assembly source for numeric manipulation [FLOATADD] Floatadd - floating point addition. [NUMVERT] Numvert (Swift-Ware; $0) contains assembler source code for a utility to convert decimal, hex, and binary numbers. A compiled executable is also included. [POINTR] Pointr (Cravener, William; $0) is commented assembly source code showing how to change the graphics mouse pointer. [QMATH10] QMath 1.0 (Moser, Roger; $0) is a set of fast 64-bit signed integer arithmetic routines in assembler. -----SIMULATR: simulators for other CPUs [C25SIM] C25SIM is a simulator for the Texas Instruments TMS320C25 digital signal processor. (Will Ware, reg. fee: $20) [PC370_1, PC370_2, PC370_3] PC/370 (Higgins, Donald S.; $45) is a PC/370 Virtual Machine. The PC/370 package provides the capability to assemble, link, and execute IBM 370 assembler programs on any 80x86 MSDOS micro computer such as the IBM PC, XT, or AT. [SIM85] Sim85 (Lueschow, Kevin; $15) is an 8085 simulator that assists in writing code for the 8085 processor. It shows code, memory, ports, and registers simultaneously while allowing you to step through or run through the code non-stop. [SIM68] SIM68 (Fisch, Perry J.; $25) S19 object code. EGA/VGA monitor is required to support the I/O and A/D simulator modules. 512K is also required. -----SOUNDS: assm. routines for sound generating [FUNPCK3] FunPck3 (Cravener, William; $0) is a set of six different sound effects: telephone, phasor, whooper, siren, Cheer, and Ncounter. Assembler source code is included for each. [FUNPCK4] FunPck4 (Cravener, William; $0) is a set of more sound effects routines in assembler (with executables): arcade game sounds, motor, telephone, falling/rising sound, and a country tune. [IN_OUT] In-Out (Cravener, William; $0) shows how to create sounds through the PC's speaker. Source and examples are included. [PORT_IN] Port-In-Out (Cravener. William; $0) is a tutorial and sample code for making sounds on the PC's speaker. ----TOOLS: assembler tools [A86_MAKE] A86_Make is a Make batch file for the shareware assembler, "A86". [ASMFLO] AsmFlow (Quantum Software; $0) generates flow charts, tree diagrams and provides a variety of other functions for assembly language programmers. [ASSEM] Assem (Richwell, Gunner; $5) contains several programs: FOFFSET.COM will compute the offset value for a given segment:offset combination and a new segment value. FPHYS.COM will compute the physical address value for a given segment:offset combination. FSEGMENT.COM will compute the segment value for a given segment:offset combination and a new offset value. [ASMEDI] Assembler Editor 1.2 is a multi-window assembler editor for use with any assembler. It allows you to use a mouse to open, resize, and move windows. There are pull-down menu choices for assembling, linking, debugging, and setting configuration options. (Kip Irvine, reg. fee: $0) [CASE] Case (Bly, Vincent; $0) is for assembly language programmers who wish to write their source in all caps and their comments in lower case. It provides automatic case switching and indicates the current case by the shape of the cursor. [DISP_REG] Disp-Reg (Gilbrech, Skip; $?) will display registers as set by loader. [FPANEL] FPanel is a PC Front Panel Simulation. It displays the contents of the IP, FLAG, SS, ES and DS registers at the top of the screen. Assembler source is included. (res:1k) [MPUBLIC] MPublic 2.0 (Derouen, Craig; $0) parses MASM and TASM source files and builds a public statement file for all symbols for use with debuggers. It automatically excludes local labels as defined by MASM and TASM. Includes C source code. [LOAD] Load (Laboratory Microsystems; $?) will load .COM files bigger than 64k. [OBJSNOOP] ObjSnoop - will find and display label references in .OBJ files. [OPER] Oper (Duncan, Ray; $?) will test Microsoft assembler operators, show operation of various operators and demonstrate some notational idiosyncracies. [PRHEX] PRHex - displays 4 hexadecimal numbers contained in AX. [PX] PX Procedure Cross Referencer (Dunford, Christopher J.; $?) is a procedure documenter. It allows you to print out all of the procedure prologues in a "dictionary" and to then print a cross reference of all procedural calls; i.e., a listing of which procs call which procs. [REPRTJJ] Report (Johnsen, James L.; $0) will return a report of what is in what register when the program enters. [SNAP_D] Snap_D (Gentry, Don; $?) is a user written interrupt service routine. It is designed for assembly language programmers to provide debugging assistance. It will print selected portions of memory when invoked. [TED] TED 1.40j is an editor for Turbo Assembler. (Magik Manu++, reg. fee: $0) [TIMSTK11] TimeStack 1.10 allows assembly language programmers to document how long a function takes to execute, find its worst stack depth usage, and check for stack imbalances. (BE, Inc., reg. fee: $133) [TRACE2] Trace02 (Fricano, C. P.; $?) will display the current values of the CS:IP registers. The CS:IP can be sampled a maximum of 18 times per second. This program must be the last inperupt handler loaded. [UASM_LST] UAsm-Lst.BAS removes addresses from files created from debug unassemble script files and inserts labels. A script file (ASCII) is created with the debug instructions. -----TUTORS: assembly language tutorials & information [80X393] 80x393 (Uwe E. Schirm, reg. fee: $0) is a collection of text files and ASM modules for Assembler programmers. It includes a list of books for assembler beginners, hardware tutorials, tips for debugging programs, instructions for creating various programs for sound cards, as well as several modules for controlling devices, diagnostics, and much more. [ASMMAG4] Assembly Language Magazine (Patrick and David O'Riva., reg. fee: $0) is a set of electronic publications with articles, reviews, and sample programs for Assembly Language enthusiasts. [ASMTUTR] Assembly Language Tutorial (ASMTUTR) (Auerbach, Joshua; $0) is a beginner's tutorial in Assembler. It includes the 8086/8088 instruction set. [MACHO] (Groff Software; $5-$20) in Assembly Language. It starts with a discussion of HEX arithmetic, touches on such basic tasks as multiplication and division, and ends with some advanced ideas such as BIN addition. This 14-Lesson course covers ground slowly and thoroughly and there are many tests to make sure you understand everything as you go along. It can be used with nothing more than DEBUG and no assembly language program is required. [PC_ASSEM] The PC Assembler Helper and Tutor (Nelson, Chuck; $10) is a program and tutorial designed to help those who are just starting to learn assembly language as well as those who know some assembler instructions, but want to have a firmer grasp of the complete instruction set for the 8086. It supports both Turbo Assembler and A86. PCAHT provides input and output of all standard 8086/8087 integral data types. These include 1 byte, 2 byte, 4 byte and 8 byte signed and unsigned numbers along with 1 byte and 2 byte hex, ASCII and binary data. Lastly, there is I/O for 10 byte BCD numbers. The interface has been designed so that beginners can use it with a minimum of trouble. There are also 30 pages of help for those BASIC programmers who want to use assembler language. [TRNCOMP] Training Computer (Castle Oaks Computer Services; $10) is a tutorial on machine and assembly languages. It includes a computer simulator and assembly programs; lessons in their use; example programs; and question and answer exercises. -----VIDEO: assembler video routines [LAMBDA] Lambda (Duro, Albert; $0) demonstrates how to use Interrupt 10H, Function 11H, Subfunction 0, to create an alternate character and substitute it for the default characters. [SCRNSAV] ScreenSave (SCRNSAV) (Barlow, Troy; $0) is a MASM routine that demonstrates using DOS from a TSR. It saves a MCGA 256-color palette and screen to disk. [SHADOW] Shadow (Cravener, William; $0) is assembler code which shows how to create a shadowed window box, as well as how to save a copy of the current video screen contents, fill the screen with a background, pop down a window box, shadow the window box along the right and bottom sides, wait for a keypress then restore original screen contents. [WINDOW1] Window1 (Blanford, Joe; $?) is actually a demo of how to make and use windows with machine language programs for MS-DOS. The source code is provided to allow you to modify and integrate it into your programs for better displays using colored windows.