1976 2.03 1978

Vol.2 n°3 (#13) march 1977

Vol.2 n°3 (#13) march 1977

(ddj_1977_03.jpg)

p.8 Tiny Linkage Editor for "relocatable code" on 8080’s and Z-80’s (p.122 in reprint volume 2)

p.8 Tiny Linkage Editor for "relocatable code" on 8080’s and Z-80’s (p.122 in reprint volume 2)

[author : Dan M. Shaw] #Listing #Assembly #Programming

Extract : «  Have you ever tried to move a subroutine from one part of memory to another? It’s a real hassle. You have to find all the branch instructions and all the loads and stores that refer to specific locations and then reassemble the code so it will reflect the changed locations. Even if you have a text editor and an assembler, it’s a hassle.

One way out of this mess is to write "relocatable code." What does that mean? To put it simply, relocatable code contains no absolute addresses. The Z-80 has branch instructions which use relative addressing. [...]  »

p.10 Proposal for Standard Z-80 Code (p.124 in reprint volume 2)

p.10 Proposal for Standard Z-80 Code (p.124 in reprint volume 2)

[author : Peter G. Formaniak] #Programming

Extract : «  [...] MOSTEK has developed a standard for Z-80 object code which is upward compatible with the current Intel hex format. The format handles relocatable and linkable programs. We are suggesting that this format be adopted for Z-80 software products to produce some standardization in the industry. This information is not proprietary and is not copyrighted. You may use the information at your discretion. [...]

An "object module" is the output from an assembler. One or more object modules can be placed into memory by a loader. The output from the loader is called a "load module" [...]  »

p.12 Graphics on the Poly-88 (p.126 in reprint volume 2)

p.12 Graphics on the Poly-88 (p.126 in reprint volume 2)

[author : Harvey A. Cohen] #Display #Graphics

Extract : «  In the Nov/Dec 76 issue of DDJ Jef Raskin gave a careful review of the Poly—88 personal computer. However this review was rather hardware oriented and did not seek to evaluate the graphics capacity of the Poly—88 which is a bonus (i.e. free) feature of this system.

A Rose by any other name...

To start discussing graphics, it helps to distinguish between interactive graphics, dynamic graphics and data graphics (though in particular set-ups the distinction may be blurred). In interactive graphics what's on the screen can be varied substantially (including partial erasure) by an input from the user. Thus interactive graphics requires a facility for updating pictures and a convenient representation of the current state of the screen. In dynamic graphics substantial shapes move about the graphic screen to give a coarse grained cartoon effect. Speed is of the essence in dynamic graphics, and the capabilities of Poly for such performance requires a demonstration. (Read on!) Finally there is what I call data graphics, where a long string of data just gets output to the screen. Of course any device that calls itself a graphic system can perform data graphics. [...]  »

p.15 Extended Accuracy Arithmetic Routines (p.129 in reprint volume 2)

p.15 Extended Accuracy Arithmetic Routines (p.129 in reprint volume 2)

[author : M.G. Dineley] #Mathematics

Extract : «  Dear Sirs,

Much to my pleasant surprise and amazement I received a complimentary copy of Dr. Dobbs and I am very impressed by it.

I enclose the source paper tape and limited documentation for an x "Extended Accuracy Arithmetic" package that I wrote. It's written for an 8080, is 776 DEC. bytes long and will handle positive and negative numbers of up to 10**308 magnitude; the larger numbers being a little slow. It works excellently with numbers in the range 40 - 80 bits.

Maybe you know of enthusiasts who are interested in solving combinatorial and permutation, or any other problems that require large "crunching" power; this package will handle 170! with its capacity for up to 2K bit word lengths.

I’m very impressed with "Tiny Basic" and would like to know more about it.

Any criticisms, bugs, praise or correspondence to me at the following address. [...]  »

p.23 Algorithm for computing square roots (p.137 in reprint volume 2)

p.23 Algorithm for computing square roots (p.137 in reprint volume 2)

[author : James A. Hinds] #Mathematics #Algorithm

Extract : «  I have only recently dug into your exercises and teeth moving and am impressed.

I do have one negative observation (a complaint). Super Classy Text Editor "A" for 8080's is hunky dory (and deserves space, no dung!) but is impossible to translate for a TMS 9900. This is because machine to machine conversions are less than humane. Since your readers often remark with pride about the plethora of computer systems in their club they might be interested in human understandable techniques in addition to machine readable stuff. [...]  »

p.25 8080 Disassembler Written in MITS 3.2 BASIC (p.139 in reprint volume 2)

p.25 8080 Disassembler Written in MITS 3.2 BASIC (p.139 in reprint volume 2)

[author : Jef Raskin] #Listing #BASIC #Programming

Extract : «  I was pleased to see this program, since it enables one to disassemble all kinds of obscure software. In particular, MITS BASIC itself. The author of this well-written program is rather a perfectionist, and wishes to remain anonymous.

I think she or he is altogether too modest — it seems to be well organized and has been tested carefully. The program is designed for a CRT such as the Lear-Seigler ADM-3. You may have to modify the well-marked CRT terminal specific control characters (such as "clear screen" commands) to make it operate on your system. If you are stuck with a teletype, still more modification will be necessary, but the program is quite clear, and readily adapted. [...]  »

p.30 M6800 Disassembler (p.144 in reprint volume 2)

p.30 M6800 Disassembler (p.144 in reprint volume 2)

[author : Gordon Stallings] #Listing #Assembly #Programming

p.34 Proposed Tiny PILOT (p.148 in reprint volume 2)

p.34 Proposed Tiny PILOT (p.148 in reprint volume 2)

[author : Dennis Allison] #Languages #Programming

Extract : «  [...] This note describes a proposed syntax and semantics for a programming language based on PILOT 73 but suitable for a minimal resources implementation on a microprocessor. The language is embedded in a program creation and editing facility suitable for interactive program development. [...]

A program in TINY PILOT (TP) is a collection of numbered lines. The line numbers impose an ordering on program statements and must be in the range 1..32767. Line numbers serve as names for program statements in exactly the same fashion as they do in BASIC. [...]  »

p.36 An SC/MP Subroutine Supervisor (p.150 in reprint volume 2)

p.36 An SC/MP Subroutine Supervisor (p.150 in reprint volume 2)

[author : Richard K. Peterson] #Listing #Assembly #Programming

Extract : «  Having enjoyed your fine magazine for a year now, I am finally getting around to making a contribution. Attached is a subroutine supervisor for the SC/MP which provides the jump-to-subroutine capability enjoyed by users of the 8080 and other CPU’s. (It goes them one better by allowing unlimited depth of indirect addressing.) [...]  »

p.41 The Selectric Typewriter as An Output Device (p.152 in reprint volume 2)

p.41 The Selectric Typewriter as An Output Device (p.152 in reprint volume 2)

[author : Rod Graves] #Electronic #Printer

Extract : «  The first true Input/Output device based on the electric typewriter was introduced in the 1940’s. Small solenoids were developed so that forty-two of them could be placed beneath a standard 8½'' keyboard to operate the forty-two letters on the standard electric typewriter. For transmitting there were also forty-two switch contacts struck by the keys so that each key triggered a signal from the typewriter to the reader of the tabulating machine. Logistic problems such as cables large enough to house 56 connecting wires were not important because the distances were never more than a few feet. Transmitting data from place-to-place around the country was done either by mail or by teletype, then reproduced at the tabulating center. This concept was successful until the mid-fifties when the first UNIVAC computer was introduced. This event spurred IBM to introduce its first truly electronic computer which was released at about the same time as their first "Selectric" typewriter. Actually, the Selectric was developed as an I/O device for the System 360. In this case it’s the Selectric we’re interested in because of its basic operating theory of "single element" typing.

For the first time an electric typewriter was logically coded to produce a single character from a spherical element containing 88 characters. Each keyboard position was mechanically coded to operate a selection mechanism capable of moving type element into position for the desired character. The keyboard was a MECHANICAL input device to a BINARY LOGIC system accessing the forty-four characters in each hemisphere of the type element. Rotating the element 180 degrees made another forty-four characters available in "upper case". To those people seeking a computer terminal, this provided access to and from the unit on 38 fewer cables and was adaptable to encoding in an Extended Binary Coded Decimal (EBCD) system.

Let us now get a look at the mechanics of the Selectric typewriter to better understand what's needed to operate it electrically to and from remote locations.

Aside from printing data characters, the terminal must be capable of performing five additional functions, viz: Carrier Return, Tab, Line Feed, Backspace and Shift. Each of these functions must be coded as a single character for transmitting. [...]  »