1978 4.01 1980

Vol.4 n°1 (#31) january 1979

Vol.4 n°1 (#31) january 1979

(ddj_1979_01.jpg)

p.4 Programming Pastimes and Pleasures (p.2 in reprint volume 4)

p.4 Programming Pastimes and Pleasures (p.2 in reprint volume 4)

[author : Charles Wetherell] #Practice #GameBoard #Mathematics

Extract : «  Welcome to the first edition of Programming Pastimes and Pleasures, a column I hope will become a permanent feature of Dr. Dobb’s. Together we will explore the prosaic and fantastic possibilities of programming. Sometimes I will pose a problem to solve; sometimes I will discuss a programming technique or idea you may not have heard of; at other times I will tell you about a game you can play with your computer. At times I will be serious, and at other times I will be off-the-wall. Along the way, you will learn things you didn’t know before, and you will find wonderful new ways to waste time with your computer. Most of all, I hope you will have fun. [...] poker machines [...]  »

p.6 CHAOS: An Interactive Timeshared Operating System for the 8080 (p.4 in reprint volume 4)

p.6 CHAOS: An Interactive Timeshared Operating System for the 8080 (p.4 in reprint volume 4)

[author : Jeff Levinsky] #OperatingSystem #Listing #BASIC #Pascal #Shell #Electronic #Book

Extract : «  CHAOS, an acronym for the Clairemont High Advanced Operating System, and its successor, CHAOS II*, are time-shared interactive systems which operate on the 8080 microprocessor. The following provides an overview of the goals of the system, examples of how CHAOS is used, and a description of the internal structure of the system, with a brief discussion of the implementation of directories and command processing. For further information, references to other articles and texts are included. [...]

The UNIX™ system, developed by Bell Labs for the PDP-11 computer series, served as the external model for CHAOS. Internally, UNIX contains some well-conceived and relatively simple features that CHAOS was unable to emulate, due to the limitations of the 8080 processor and the inefficiency of floppy disk storage. To produce a smaller and faster system, the majority of CHAOS is written in assembly language, as opposed to a high level language such as C. CHAOS II was developed with both hard disks and 16-bit processors such as the Z8000 in mind, so that performance can be upgraded without extensive software revision. CHAOS, like UNIX, is designed to be simple for the novice to use as well as a powerful and flexible tool in the hands of the experienced. Unlike barebones operating systems and exclusively high level systems, such as CP/M and UCSD PASCAL, respectively, CHAOS attempts to provide a full spectrum of computer capabilities. [...]

Brooks, Frederick P., Jr. The Mythical Man-Month. Menlo Park: Addison-Wesley Publishing Company, 1975.

Gries, David. Compiler Construction for Digital Computers. New York: John Wiley & Sons, 1971.

Kernighan, Brian W., and Plauger, P.J. Software Tools. Menlo Park: Addison-Wesley Publishing Company, 1976.

Ritchie, Dennis M., and Thompson, Ken. "The UNIX Timesharing System." Communications of the ACM, XVII 7 (July, 1974), 365-375.

Shaw, Alan C. The Logical Design of Operating Systems. Englewood Cliffs, N.J.: Prentice-Hall, Inc., 1974.

Wirth, Niklaus, and Jensen, Kathleen. PASCAL User Manual and Report. New York: Springer-Verlag, 1975.  »

p.14 TUFIVE: An Improvement on Hexadecimal (p.12 in reprint volume 4)

p.14 TUFIVE: An Improvement on Hexadecimal (p.12 in reprint volume 4)

[author : Keneth A. Simons] #Encoding

Extract : «  The Need for More Compact Expression Of Numbers:

One of the first things a computer enthusiast learns is that, although the computer itself uses only binary—usually represented by 0 and 1—there are many possible ways in which numbers can be expressed at the input to the computer or from its output. There is, of course, decimal, based on the number 10; binary, based on 2; octal , based on 8; and hexadecimal, based on 16. [...]

How about TUFIVE, meaning, a system based on two raised to the fifth power, for the system based on 32. Following the same logic we would have TUSIX for a 64-based system, and we might even want to go back and reduce hexadecimal to TUFOR. [...]  »

p.16 SAM76 Language Update (p.14 in reprint volume 4)

p.16 SAM76 Language Update (p.14 in reprint volume 4)

[author : Ancelme Roichel] #Languages #Listing

Extract : «  This update will describe how the user may define a text to contain an assembly language program that will be executed when the text Is fetched. In addition a number of anomalies ani errors will be discussed and suggested corrections where practical will be shown.

This opportunity Is also taken to extend my appreciation to the several users who have taken the time to feed back comments and pointed out errors or anomalies In both the text material as well as In the object code. [...]  »

p.20 Two Additions to the Z-80 RAM Test (p.18 in reprint volume 4)

p.20 Two Additions to the Z-80 RAM Test (p.18 in reprint volume 4)

[author : Ronald Derynk and Bock W. Lee] #Listing #Assembly #Diagnostic #Memory

Extract : «  [...] As I studied the listing I noticed that John used three subroutines from the TDL ZAPPLE monitor. Unfortunately he did not give any indication as to what these routines were supposed to do. Since I do not have the ZAPPLE montior, I almost gave up trying to get the memory tester to work in my system. [...]  »

p.23 The Mystery of Ackermann’s Function (p.21 in reprint volume 4)

p.23 The Mystery of Ackermann’s Function (p.21 in reprint volume 4)

[author : Mike Gabrielson] #Listing #Assembly #ALGOL #Mathematics

Extract : «  I first encountered Ackermann’s function several years ago while reading D. W. Barron’s Recursive Techniques in Programming. [...]

Ackermann’s function has been the focus of a surprising amount of attention in the computer field. The excellent May 1977 issue of Computer (devoted to stack machines that month) contained an article by R.P. Blake titled “Exploring a Stack Architecture.” [...]  »

p.24 PET BASIC Renumber (p.22 in reprint volume 4)

p.24 PET BASIC Renumber (p.22 in reprint volume 4)

[author : Bill Seiler] #Listing #Assembly #Programming

Extract : «  PET Renumber occupies 384 bytes at the end of an 8K PET RAM memory. [...]

PET Renumber uses 1K of screen memory as a storage buffer for the old line numbers. It first copies the old line numbers to the screen buffer. On this first pass PET Renumber generates the new line numbers and inserts them at the beginning of each line. [...]  »

p.28 SAM76 Utility Function (And a Script Called Monkeys (p.26 in reprint volume 4)

p.28 SAM76 Utility Function (And a Script Called Monkeys (p.26 in reprint volume 4)

[author : Claude Kagen] #Languages #Programming

Extract : «  This article describes a set of “Utility Functions” written in the SAM76 language, whose purpose is to aid program development in that language by providing facilities for creating, displaying, and modifying texts. A familiarity with the language is for the most part assumed; the references at the end of tire article will direct the curious but uninformed reader where to seek enlightenment. [...]  »

p.32 Add a Trap Vector for Unimplemented 6502 Opcodes (p.30 in reprint volume 4)

p.32 Add a Trap Vector for Unimplemented 6502 Opcodes (p.30 in reprint volume 4)

[author : Carl W. Moser] #Listing #Assembly #Programming

Extract : «  NOTE: Ideas in this article are at the present purely conceptual and have not been implemented. They are believed to be valid and are presented in this preliminary stage for feedback to aid in the ultimate implementation.

One feature the 6502, 6800, 8080, and most other microprocessors lack is hardware to “trap” unimplemented opcodes. This can aid in debugging a program in that the processor would never “hang up” as can now happen especially when executing software not fully debugged. In fact there is at least one unimplemented opcode in the 6800 that requires a power down procedure to reset the processor. Fortunately the 6502 does not have to be powered down for any of its unimplemented opcodes. [...]  »

p.34 A Mastermind Player for the National Semiconductor SC/MP Microprocessor (p.32 in reprint volume 4)

p.34 A Mastermind Player for the National Semiconductor SC/MP Microprocessor (p.32 in reprint volume 4)

[author : Charles Kapps] #Listing #Assembly #GamePuzzle

Extract : «  The game of Mastermind is an adaptation of an old guessing game which has been marketed for the past several years by Invicta Plastics Ltd. The game comes with pegs in six different colors. Player number one chooses a combination of four pegs and player number two tries to guess the combination of colors chosen by player one. Each time player two guesses, player one scores the guess with black and white markers. Each black marker indicates that one peg matched the unknown pattern in both color and position. A white marker indicates that a color was right but was not in the right place. For example, if the hidden pattern was blue, white, blue, red, and the guess was red, blue, blue, blue, the score would be one black and two whites. Player two keeps guessing until he gets four black markers. The object is to finish with as few guesses as possible. [...]  »

p.36 Performing a Cost-Benefit Analysis of an Improvement Designed to Reduce Home Fuel Costs (p.34 in reprint volume 4)

p.36 Performing a Cost-Benefit Analysis of an Improvement Designed to Reduce Home Fuel Costs (p.34 in reprint volume 4)

[author : Michael Trombetta] #Listing #BASIC #Finance

Extract : «  Contemplating an improvement in your home heating system—anything from a new burner to solar heating—in order to reduce your fuel costs? Naturally you want to know whether cost is justified by potential savings. To determine if the improvement is justified we calculate the cost and the benefits of the improvement; i.e., we perform a cost-benefit analysis.

The improvement cost is calculated one of two ways, depending on whether the improvement is financed. If we pay for the improvement in a lump sum from our savings, the cost of the improvement is simply the amount of that lump sum payment. If, on the other hand, we finance the improvement with a home improvement loan, the cost of the improvement is the sum of the present values of the payments we will make to amortize the loan. [...]  »

p.38 A Primitive Report Generator Implemented in Zilog System Commands (p.36 in reprint volume 4)

p.38 A Primitive Report Generator Implemented in Zilog System Commands (p.36 in reprint volume 4)

[author : W. M. McKeeman] #Listing #Shell #Book

Extract : «  A report generator, implemented as a series of Zilog Development System commands, is reported. It is, of course, generated by the system it reports. Its salient feature is the automatic inclusion of otherwise independent material through access to the file system during report generation [...]

Bibliography

1. (anon.) RIO Operating System User's Manual, Zilog Inc., 10460 Bubb Rd., Mountain View, CA 95015 (April 1978).

2. (anon.) RIO Text Editor User's Manual, Zilog Inc., 10460 Bubb Rd., Mountain View, CA 95015 (January 1978).  »

p.40 Memory Map Program for the Z80/8080 (p.38 in reprint volume 4)

p.40 Memory Map Program for the Z80/8080 (p.38 in reprint volume 4)

[author : Robert Alkire] #Listing #Assembly #Memory #Diagnostic

Extract : «  After constructing several memory boards for my Z80 computer, I came to the inevitable conclusion that no two manufacturers use the same method of establishing the start address of a board. Since this only added to the confusion of my already confused computer, I decided to write a program that could assure me that all my boards were where they should be, addresswise.

This program displays a representation of the entire address range of my microprocessor, which in this case is 65536 bytes. This representation is accomplished by breaking the 65536 bytes into 256 blocks with 256 bytes to a block and by testing each block for the existance of RAM, PROM or the absence of memory. Then ASCII characters, corresponding to the type of memory in the blocks, are displayed in a 16 by 16 matrix. [...]  »