1980 6.01 1982

Vol.6 n°1 (#51) january 1981

Vol.6 n°1 (#51) january 1981

(ddj_1981_01.jpg)

p.3 Editorial (p.2 in reprint volume 6)

p.3 Editorial (p.2 in reprint volume 6)

[author : Marlin Ouverson] #Edito

Extract : «  Change has been called the essence of manifestation. DDJ is growing continually, and is under the guidance of a new editor. The position carries with it a keen responsibility not only to the readers, but to the ideals of the publisher. These are of such broad impact and general im portance that the commitment to them can only be met by calling together many voices to speak within the pages of this publication. [...]  »

Extract : «  [...]  »

TABLE OF CONTENTS

p.4 Letters (p.3 in reprint volume 6)

p.4 Letters (p.3 in reprint volume 6)

Extract : «  Note on Multiple File Transfer [...]

One-Byte Opcodes [...]

Captured by the Capitalists? [...]

Pascal Postscript [...]  »

p.7 Dobb’s Ex Machina (p.5 in reprint volume 6)

p.7 Dobb’s Ex Machina (p.5 in reprint volume 6)

#Experience

Extract : «  Occasionally, a reader of Dr. Dobb’s Journal will experience poor product performance or what he considers to be a company’s failure to provide the quality of service they advertise. If his own honest attempts to resolve the situation fail, he may then take recourse to the impartial (if not heavenly) mediation of Dobb’s Ex Machina.

When writing a complaint to us, please send backup data (e.g., carbons or photocopies of letters you have sent to the company in question, replies received, copies of registered receipts). It is not possible to cover all complaints received, but we will publish a representative sample. DDJ has no particular ax to grind with any seller or manufacturer, but we will pay close attention to those companies about which we receive numerous and consistent complaints. [...]  »

p.8 What FORTH Is? (p.6 in reprint volume 6)

p.8 What FORTH Is? (p.6 in reprint volume 6)

[author : H. T. GORDON] #Forth #Programming #Listing

Extract : «  [...] The great creative idea in FORTH is its enhancement of interpreter logic to make possible the construction not only of new "primitives," but of commands that consist of sequences of such primitives, that (like a machine-language program) can be run without interruption. Freeing a command-language from the restriction of single-step execution profoundly influences its development. The opcode-like primitives must be designed to interact in sequence, since they are the instruction set of a "virtual" machine that is being emulated on a simpler, real machine. The program-like complex commands require the high-level equivalent of a CPU program-counter, and also branching primitives to make possible loops and conditional jumps.

What — and where — are the FORTH primitives?

There is a universal tendency for innovations to develop a special jargon either of neologisms or of pre-existing words whose meaning can be stretched to include som ething rather different. Since a command-code consists of one or more ASCII characters (not including, but delimited by, spaces) it is, in some sense, a "word." The command-set is therefore like a vocabulary. The list in which the command-codes are stored, with their definitions, has some nebulous kinship to a dictionary. In reality, it is a unitary file, organized as a linked list so that it can be searched through. The basic primitives are in its lower region, and it is extensible at its high end, new user-defined commands being appended in chronological order. The structure of each entry in the list consists of a uniform "head," followed by a "body" (definition) determined by the logic of the "defining word" primitive used to construct it. The body of every primitive command is a program written in the machine-code of the CPU being used by the FORTH system, terminated by a return to whatever control program in the "kernel" happens to be in charge. The kernel machine-code programs, located below the dictionary in memory, control all FORTH operations. [...]  »

p.17 Of Interest (p.14 in reprint volume 6)

p.17 Of Interest (p.14 in reprint volume 6)

#Software #Programming #Computer #OperatingSystem #OtherMagazine #Interface #Office

Extract : «  Cassette Pascal For the Apple II [...]

$199 Computer [...]

CP/M-86 Operating System [...]

PET Users Magazine [...]

IEEE-696 Prototype Card [...]

Word Processing Report [...]  »

p.19 Z-80 File Comparator (p.15 in reprint volume 6)

p.19 Z-80 File Comparator (p.15 in reprint volume 6)

[author : Donald E. Faulkner] #Listing #Assembly

Extract : «  Many times in the last few years, I’ve found myself in need of a routine permitting a byte-by-byte comparison between two files in memory. Such comparisons between old and newly purchased "improved" versions of programs can quickly point to the locations of any modifications which may have been made. Then, when the addresses have been ferreted out, the disassembler generally makes quick work of disclosing the nature of such program changes. The routine is very handy also for validating the source code generated by disassemblers. Often, portions of disassembled object code turnout to be data tables, ASCII strings, etc., rather than valid instructions. After correcting the new source listings to properly recreate the tables and strings, the code can be validated by reassembling in to object code and comparing with the original machine code. [...]  »

p.20 Z-80 Video Drivers (p.16 in reprint volume 6)

p.20 Z-80 Video Drivers (p.16 in reprint volume 6)

[author : Anthony Skjellum] #Listing #Assembly #Display

Extract : «  Memory-mapped video displays are widely used in microcomputer systems. They afford considerable output flexibility and are generally less expensive than a standard CRT unit. The major advantage of the memory-mapped display is the fact that the contents of the display may be accessed like any other memory in the microprocessor. This capability is lacking in CRT’s. However, standard terminal functions must be provided for by software. This software has to be designed carefully and with the desired application in mind, in order to provide maximum capability and efficiency.

In this article several video drivers are included in their complete form. First a basic implementation is presented to exemplify the general concepts behind the design of such a driver. Then, a full implementation is presented along with discussion of the features and approaches used to implement them. As part of the discussion, a special purpose driver is included that handles cursor positioning in a Life simulation program. [...]  »

p.40 Software Review "8080/Z-80 Editor, Assembler, Disassembler" (p.36 in reprint volume 6)

p.40 Software Review "8080/Z-80 Editor, Assembler, Disassembler" (p.36 in reprint volume 6)

[author : J. N. DEMAS] #Software #Review #Programming #Listing #Assembly

Extract : «  If you have had your North Star floppy disc system for a while, you are beginning to recognize that there are a lot of things which can be done either much faster or only in machine code. You may have tried entering machine language programs in hexadecimal through the monitor; this effort probably lasted only 20 or 30 minutes — unless you were truly desperate. Now that you are ready to select one of the many disc-based assemblers, the following thoughts should be kept in mind.

First, like good books and fine wine, no piece of software is suitable for everyone. Further, no piece of software will do exactly what you want, in exactly the way you want it done. I describe here what I consider to be a delightful discbased assembly language software development package from XL Computer Products (P.O. Box 805, Mesa, AZ 85202). The package consists of an EDITOR, ASSEMBLER, and DISASSEMBLER. I describe the strengths, weaknesses, and overall operating characteristics of the system so that you can determine whether this package satisfies your needs. [...]  »

p.45 Book Reviews (p.41 in reprint volume 6)

p.45 Book Reviews (p.41 in reprint volume 6)

#Book

Extract : «  A PRIMER ON STRUCTURED DESIGN By Richardson, Butler, Tomlinson Published by PBI-Petrocelli 232 pages, $17.50 [...]

THE CP/M HANDBOOK WITH MP/M By Rodney Zaks Published by Sybex 321 pages, $13.95 paperbound [...]  »

p.46 Intext — An Input Routine for Text Editors (p.42 in reprint volume 6)

p.46 Intext — An Input Routine for Text Editors (p.42 in reprint volume 6)

[author : Greg Smith] #Algorithm #Listing #BASIC #DataEntry

Extract : «  Anyone who has attempted to write a text editor in North Star BASIC is almost certain to have come across the problem of generating a Line Length Error when inputting text. The following passage shows how I overcame this problem using North Star BASIC Release 4.

The problem begins with the maximum line length allowed in North Star BASIC (normally 132 characters). If more than 132 characters are input from the terminal in succession, without being interrupted by a carriage return, a Line Length Error is generated and the program will crash. A typical input sequence which will cause a Line Length Error is given in Listing 1.

This error can now be avoided by utilizing the INCHARS function, available in Release 4 BASIC. This function waits for a character to be input from the term inal and then returns th at character as a single character string. [...]  »

p.49 Turing Machine Simulation (p.45 in reprint volume 6)

p.49 Turing Machine Simulation (p.45 in reprint volume 6)

[author : J. L. Lawrence] #Listing #BASIC #Languages #Simulation #Programming

Extract : «  [...] Someone once stated, "If a computer can do it, I can write it in FORTRAN." This statement, stated in different words, was actually discussed by mathematicians and logicians before computers were ever invented. The research done in the early 1930’s produced some very interesting results. Several computational models were proposed and all were shown to be equivalent. These proposed models are interesting only from a theoretical point of view but they do show that very little hardware is actually required to build a computer and that the languages currently in use (i.e., FORTRAN, COBOL, LISP, etc.) are universal languages. What this means is that a program written in one language can also be written in any other language, including the computational models proposed in the 1930’s! [...]  »