1976_02_07 1976 02 07
User Manual: 1976_02_07
Open the PDF directly: View PDF
.
Page Count: 16
| Download | |
| Open PDF In Browser | View PDF |
= "'"H* — ";—/*;///:. = i==: ==-t-"'++ + + f= ';i'r'+"-i+-+ . . . +-"; "/;Ua88S$se33aW0sS&§SS0+-i::. .: / : . . . . : . . . . :-+0@e#N#NSN§##N3S-$$#%g3S*U*=:";/'/;/. : : : .. SO*':-'—.;.;;.;/:.;:. xX"— !*isiC'XI=++ ii.R-";///;;.//:./^ / -3-Xl'i.? l-XX-T-'JURUi 'J'^'JX f'i iHt i-^ 18'JX *--Mtt -jWC'3' <:-:.'"ta-.i:si-.j'*t-3.^ x^J'-HJ/ tJ* - + X - + ...NRf-jOf xi=ii >*+tT+++" : ' 'r:, ;! — !;- '-<— H==;I=:—=s=i+'3?+"'-++""-'"+""" .-"—-''-'< L— . . . . . . . . '*ixtII====?i-+'I++3+++-t" +""--"".-"" ;--34HH,!3K#.' -aui 3§ ^.tlniKfHR&T'Y"^.^'--"" *X+ = =?+ ""' " "7+-*UU+=X'-''&+"/ "" ssxTIi +K3* "'ijOSa/'- Tab!e of Contents Bits and Pieces Monitor in Lumber Production CMPCTER-LOADER HAM on the Side Sma!! Computer Networking Q&A Hardware C!itches Fieid Testing the Aitair 8800 2 4 6 9 10 14 16 iU+=I%Xi—;/-;;/.;-;.;; LETTER TO THE EOtTOR Dear Ed., While programming my Altair computer, I detected a potential problem with the 8800 SIO-B (ACR) I/O card which may be of interest to other users. Although there is a solution, it's not entirely satisfactory. I hope someone else can supply a better one. The problem is that an input program written at one location will work while at another it won't. The program and the address at which the program won't work is listed as follows: 001 IN 002 Stat chan 003 RRC 004 JC 005 L 006 H 007 IN 010 Data chan 011 ETC 333 002 017 332 001 any page 333 003 The problem occurs if the program is written in a location such that the low order address of the instruction (RRC) following the input instruction (2nd byte) is equivalent to the data channel address which is 003 in this case. The result is that if a string of characters is being input, about 1 in 20 will be lost. During machine cycle 1 (Ml) of the input instruction (see Figure 1), the first byte (333) is read into the processor and during M2 the address of the device (002-status channel) is read in. During M3 the processor outputs the device number (as an address) from which data is also to be read. The processor reads in the data during T3 of M3. During each of the machine cycles of any instruction, the processor outputs a status word which is latched into the status register (on the CPU card) by the coincidence of 01 and sync. The status word is used to control memory and I/O cards. In this case the status Bits a n d Pieces BY: On The C over SONDRA KOPPENHEFFER FATAL ACCIDENT DAMPENS THE CHRISTMAS SPIRIT UPDATE SERVICE TAKES A SEAT IN HISTORY Sending Christmas packages through the mail is a part of the holiday spirit. However, packages have been known to experience quite a lot of trauma before reaching their intended destination. Let me contrive an example to convey the message of this article. The advertisement for Computer Notes Review, Vol. 1, has generated many inquiries concerning our update service. However, this service was discontinued six months ago. We feel that any benefits you would have received through the Update Service, are now directly available in Computer Notes. Your disk, never having much of a Christmas spirit, has decided to take a vacation. No amount of intuition or technical ability will convince that marvel of technology to work. Giving up on the disk, for more enjoyable holiday activities, you finally decide to give MITS a try at repairing the disk. . . . About a week later, you receive a phone call from MITS, explaining that your disk had been involved in a fatal accident. Upon arrival at MITS, the disk had been severely damaged, and the $200.00 for which you had insured it, wasn't nearly enough to cover the doctor's bills. Your bereavement is turned into shock when you are told that you will have to pay a $350.00 bill for repair of the disk. The gentleman in this story had to learn about our postal system the hard way. But this type of misfortune should be a lesson to all Altair owners who send their units back to MITS for repair. Always insure your system for at least the amount that you originally paid for it. Even if the case is the only part of your system damaged in transit, you will still be billed $170.00 for repairing the case. So remember to send us your unit by registered mail and make sure it's insured for the full amount. Page Two This picture of Ron Roberts, president of the Altair Software Distribution Company, is just one example of digital art produced on an Altair 8800b computer. This system was developed by The Computer Systemcenter in Atlanta and uses a Panasonic video camera, a Centronics printer and a commercially available digitizer, in addition to an 8800b with special interfaces and custom'software. The system works by assessing the relative amount of gray in a TV picture, setting a character on the printer that approximately corresponds to that perceived amount of gray and finally, printing the picture. CUSTOMERS SUBMIT MISSING PAPER REPORT - MASSIVE SEARCH BEGUN * AT MITS This paragraph is dedicated to all those customers who have recently purchased an Altair computer through one of our dealers. We've received many calls and letters asking why new customers have not started receiving Computer Notes. We depend upon our dealers to submit the names of all those persons who purchase an Altair through their store. This procedure generally takes three weeks to one month. Once in a while a dealer inadvertently misses a name and we are therefore unable to place that customer's name on our mailing list. If you find yourself in the situation which I just described, please contact the dealer from whom you purchased your Altair. Following up on this procedure will help limit any duplication in your subscription. COMPLETE RECORD OF PURCHASES NEEDED If you have ordered systems through both MITS and one of our dealers, you might find it to your best interest to send us copies of all of your dealer purchases so that we might update your file. If we have complete records for all Altair products which you have purchased, you can depend on much more efficient and rapid service. Continued on Page Seven C O M P L E T E R y " [ i O T E S Editor Andrea Lewis Asst. Editor Linda Biocki Production Tom Antreasian A) M c C a h o n Steve Wedeen Grace B r o w n Contributors Tommy Staten GeneDiai Charies Oisen Dougtas L. J o n e s Mike Hunter Bob Matthews Sondra Koppenheffer Jim Wiggins Rich Haber Bruce Fowter CN/December 1 9 7 6 VMACC-H SLATED FOR MAY Book Review By Charles Olsen Practical Microcomputer Programming The Intel 8080 The second annual World Altair Computer Convention(WACC-II), scheduled for May 18-21 at the Albuquerque Convention Center, promises to be even more spectacular than last year's, with the largest collection of Altair equipment, dealers and computer experts anywhere in the country. Attendance is estimated at more than 1,000 computer enthusiasts, which is well over the unexpected 750 people who gathered at last year's WACC. The four-day convention will be geared to both the hobbyist and small businesses but will also include displays of many other special applications for large businesses, industry, education and the home. All of our Altair dealers will be at the convention to display various systems and answer any questions. A banquet will be held on May 20, and the last day of the convention will be reserved for various special events, such as awarding prizes and conducting tours of the Albuquerque-Santa Fe areas. Lodging will be available at the Albuquerque Inn, which is connected by an underground walk-way to the Convention Center next door. Only those people who confirm their reservations early will get their choice of rooms at the Albuquerque Inn. Additional accommodations will be available at the local Sheraton and Hilton hotels, only a 10-minute drive from downtown Albuquerque. Details concerning the WACC-II schedule, seminars, dealer contacts, prizes and tickets for the banquet will appear in next month's issue of Computer Notes as well as other computer magazines. If you have any further questions about WACC-11, please feel free to contact me. Charles Olsen Director of PR MITS, Inc. CN/December 1 9 7 6 By: Mike Hunter Although most microcomputer users usually prefer to use a high level language, such as BASIC, when writing programs, they are often either compelled by necessity or motivated by interest to use machine code or assembler instead. Learning how to manipulate the ones and zeroes as well as the various mnemonics can be confusing for anyone. But it's particularly devastating to the programmer who has only one or two kilobytes of memory and thus has no other choice but to use machine code. The literature available from the chip manufacturers sometimes provides only brief explanations of machine code functions. For the novice microcomputer user, such descriptions are often as cryptic as the mnemonics. One excellent solution to this problem is Weller, Schatzel and Nice's brand new book, Practical Microcomputer Programming The Intel 8080. The book provides the novice with over 300 pages of all the information necessary to begin programming a microcomputer. Although the book is aimed at beginners, it's still a very helpful, detailed source of reference material for programming experts. The 18 chapters of the book cover a wide variety of topics, including binary addition, how to use the stack pointer and how to interface the 8080 to complex peripherals. Each chapter begins with a discussion of a basic concept followed by instructions on how to implement the concept with the 8080 machine code. The book is based on a conTM figuration consisting of a Teletype and an Altair 8800, which was assembled by one of the authors. The authors wrote their own unique assembly program to be used as the main example program throughout the book. Many instructive texts are often boring as well as difficult to understand. However, Practical Microcomputer Programming is not only interesting but is written in a style that even beginners can follow. The authors help alleviate the drudgery and confusion of working through examples b y using such names as Tom, Dick and Harry as variables rather than the traditional X and Y . The final chapters of the book discuss such questions as, "How do I interface my 8080 microcomputer to an analog device, or terminal, and how can it be used in a real time mode?" The last chapter deals appropriately enough with the final step in the programming process—debugging. This chapter describes many procedures for discovering the source of an error. In general I'd recommend this book as a valuable source of programming information for any 8080 microcomputer user. Practical Microcomputer Programming—The Intel 8080 is available for $21.95 from: Northern Technical Books Box 62 Evanston, 111. 60204 N e w F o C ! u b r m e d State University of New York at Stony Brook recently formed the Home Brew Computer Club to promote informal discussions of a variety of both hardware and software topics. Most members have their own systems (8080 and 6800) to discuss and demonstrate. The club also has access to a number of simulators and cross-assemblers on the university computer. For further information, contact: Ludwig Broun Professor of Engineering College of Engineering and Applied Sciences State University of New York at Stony Brook Stony Brook, NY 11794 The Altair User Group Software Library is in the process of being transferred to the same facility that houses the new Altair Software Distribution Company. Because we are in the middle of this transition and because there were only a few entries for December, no contest winners were chosen this month. All entries received in December will be included in the January contest. Check the January issue of CN for further new developments in the Altair Users Group Software Library. Page Thirteen Case Study: Monitoring Lumber Production with an Altair Computer By Tommy Staten Ms.. &tate.M. m^ZZ m a n a g g A H.C. Hodges LumbgA Compact/ Panama C^tt/, F f o ^ ^ a . Since the H. C. Hodges Lumber Company first opened, we've had difficulty keeping track of our production. The lumber was being tallied daily as it was stacked, but at the end of each month, there was a considerable discrepancy between what was counted and what was inventoried. Obviously, this caused quite a few problems. So I devised a method of using an Altair computer to monitor production. I chose the Altair 8800 microcomputer because I am convinced that no other manufacturer matches the MITS Altair system in either hardware or software support. Price was also a factor. Although the Altair is not the cheapest computer on the market, it has proven it was certainly worth the cost by being a very reliable and efficient system for our lumber company. The following description is only one example of how an Altair system can be used in an industrial application. The possible uses of such a microcomputer system are almost limitless, not only within the lumber industry but in any operation where production control and cost effective monitoring systems are required. In the past three years more and more manufacturers have begun to incorporate solid state electronic circuitry in their system controls rather than using the usual magnetic relays, mechanical switches, limit swiches, etc. These methods were fine for the actual operation of a machine, but they proved to be very clumsy for automatic control of equipment. The advent of solid state electronics in system controls has resulted in increased production that's less expensive and more efficient. With automatic controls, "down time" or lost production is also minimal. The lumber industry is a prime example of how solid state electronics in system controls have been effectively used to accurately monitor daily production while saving both time and labor costs. Four years ago the average lumber mill used 15 to 20 men to sort and stack rough cut lumber as it came out of the mill. The usual procedure utilized a 150-foot lumber conveyor chain that moved the lumber from the cutting saw area. As the lumber came out, men stationed on both sides of the conveyor would pull, sort and P a g e Four stack the lumber according to size. Today, that long conveyor still exists, but instead of 15 men, only one--the control operator--is needed to get the job done. This change was made possible by using a new dropsorter built by Harvey Engineering, Little Rock, Arkansas. The dropsorter is a low voltage, solid state binary logic control system that uses primarily CMOS ICs and some TTL. Although the limit switches were not entirely eliminated, their use was limited strictly to generating timing and measurement signals. The following description explains how the system works. Dropsorter: Sequence of Operation The dropsorter control logic system is composed primarily of five printed circuit boards interconnected with 26 conductor ribbon cables. Control system input signals of 24 VDC are supplied to the I/O board from limit switch contact closures and/or operator control push buttons. When a piece of lumber passes through the measuring section of the sorter infeed, certain limit switches are actuated, and width, length and thickness signals are coupled from the I/O board to the measuring board where they are connected to 12 VDC binary logic. The signals are then coupled to the display board, which displays the actual board dimensions. A proper dimensional display indicates that the external switches,'I/O board and measuring board are functioning properly. At the same time the input signal is displayed, the binary coded signal is also fed to the program coding board. The function of the coding board is to assign a two-bit binary bay address to each major lumber dimension(represented by the binary coded signal). Any lumber dimension which does not have a programmed lumber bay address is automatically dropped in a designated drop-out bay. The two-bit binary bay address is coupled from the program board to the memory or shift board, where the binary bay address can be seen from the time a piece of lumber is measured until the reset limit switch resets the system for the next measurement. The two-bit binary address also enters a multichannel shift register, which shifts one position for every revolution of the dropsorter head shaft. The d u m b e r of shifts required for a board to travel to a specific bay must be predetermined, and the memory or shift board should be preprogrammed for the proper number of shifts before sending an output signal to a designated bay. Custom Interface Required: The display board uses TTL logic exclusively and supplies the necessary signals for our interface. The interface was designed for us by Warren Stardup, who is a partnertechnician with Microcomputer Systems, Inc. of Tampa, Florida. The interface converts the TTL to serial, using a UART (Universal Asynchronous Receiver Transmitter). Data is then transmitted from the mill site to the office computer via a 20 mA current loop. Each board size is represented by a standard ASCII Character. The proper ASCII code is signaled to the UART through a diode matrix on the interface board. System Configuration: The system includes an Altair 8800 computer with an upgraded power supply and memory that consists of two Dutronics 8K Static RAM boards and one MITS 4K Dynamic Memory board for a total of 20K. However, only about 10K bytes of this are used for both the BASIC interpreter and the lumber program. Both programs are loaded into the Altair computer through a MITS ACR board. I hope to have our MITS PROM board with the BASIC bootstrap loader up and running soon, because so far, I'm the only person who can load the computer. On several occasions I've been rousted from bed to go down to the mill during the night shift, because a thunder storm has caused a momentary loss of power. Somehow, these power failures always seem to occur during my "off" shift, usually when I'm at home in bed. The lumber data comes from the interface to one port of a MITS 2SI0 board. This port is wired for a 20 mA current loop. The other port on the 2SI0 board is wired RS232 and connects an ADM-3 Lear Seigler Continued CN/December 1 9 7 6 8080 Monitoring Lumber Production With an Altair Computer Continued programming problems? CRT to the processor. All data is displayed and constantly updated on the CRT. The information shown on the CRT is copied down by hand at the end of each shift. We also have a spare SWTP video terminal and hope to acquire some sort of hard copy printer in the very near future. Software: The software was written by Bill Turner, a software genius from Microcomputer Systems, Inc. of Tampa. Bill is also one of the well-known authors of SWTP's BASIC. !F you need to know how to: Our program is written in 8K BASIC. Data is displayed in a two dimension matrix (7,6). The display is constantly updated as each board is measured. Boards actually come through the sorter at a rate of one every two seconds, so most of the processor's time is spent simply waiting for an input. To make use of this wasted time, I plan to use another interface which will scan the logs as they are about to be cut and compute the measurement with what comes out of the sorter, to give the actual recovery of all logs that are processed. * service interrupts * domutti-precision arithmetic + convert n u m b e r bases * h a n d i e arrays a n d tabies * controicompiex peripherais * u s e the stack pointer The program also has the ability to record all data accumulated on a cassette tape, at a predetermined board count, which is usually every 1,000 boards. In case of a momentary loss of power, this will preserve all of the data accumulated at that particular time. The cassette obviously won't be needed once we get the printer. Since we began using the Altair system, our inventory discrepancies have been eliminated, much to our bookkeepers' appreciation. But the real merit of the system is that now office personnel can simply glance at the CRT to see exactly what is being produced in the mill. If we have orders for long stock, but the trend on the display is for short stock, we simply get on the intercom and ask our workers to cut the long pieces into shorter ones. This proves invaluable when dealing with truckloads of orders which vary in size from day to day. CN/December 1 9 7 6 * d e b u g your programs THEN . . . Practica! Microcomputer Programming: The !nte! 8080 is the book you've been waiting for. Written by apptication programming peopie for apptication programmers, this is not a book of theory, but a book of step by step soiutions to rea! probtems. !n eighteen chapters and more than 100 exampte programs it shows you exactty how to do ait of the things tisted above and many, many more with 8080 assembty !anguage. A comp!ete programmer's guide to using the 8080, it aiso contains the futt source text of a minicomputer cross assembier and a debug program for 8080 based systems. This couid be the best programming information bargain you wii! ever see. < ) K < CN Northern Technotogy Books Box 62, Evanston, [itinois 60204 Ptease send my copy of Practica! Microcomputer Programming: The tnte) 8 0 8 0 at $21.95. ED check enctosed H H ! H Name ! Company H Address ! City D money order enciosed tMinois residents add $ 1 . 1 0 state saies tax. NcfC.O.D. piease. Ptease type or print State. ZipPage Thirteen CMPCTER-LOADER Masters Paper-Tape Reader BY: DOUGLAS L. JONES The Altair 680b PROM monitor is truly 256 bytes of total cleverness. It enables you to (L)oad, (M)emory inspect and modify, increment to the (N)ext address, (J)ump to a program that is in memory or (P)roceed from the presently interrupted point. That's a lot of software power on a little ROM chip. If the I/O part of my computer system, an old clunker model-33 T e l e t y p e ^ were up to snuff, everything would be just fine. But it isn't so. Couple the insatiable ability of my clunker 33 to drop bits on the paper-tape reader with the checks and cross-checks of the (L)oad loop in the PROM monitor, and you've got instant frustration. CMPCTER-LOADER was written in an attempt to show that man is able to master even a paper-tape reader. The supports Motorola consists Altair 680b PROM monitor what is know as the paper-tape format. This of three important points: S0 (ignore) (ignore) S1BBAAAADDDDDDDDCC S9 (ignore) (ignore) Where: S0=Start of a header block which for our purposes can be ignored. Sl=Start of a valid data block. BB=Block count of all remaining data in this block. AAAA=Start address to load DDDD=Hexadecimal data being loaded. CC=Checksum value. S9=A11 data blocks finished (return to exec . . or whatever). The data blocks are in ASCII and are printable as local copy on the T e l e t y p e ^ . Each is followed by carriage returns and line-feeds. Since they are not part of the data, these characters will not be 'loaded' but will only perform machine control— a well thought out format in all respects. The PROM monitor easily handles this Motorola Format. The (L)oad command will cause the monitor to begin the load loop routine. Any data that does not begin with 'SI' is totally ignored. Once recogni- tion of an 'SI' data block-mark occurs, the monitor is locked into a data-block format: 1. 2. 3. Only hexadecimal characters are allowed-up to and including the checksum. The checksum is actually computed and must agree mathematically with the data being loaded. An S9 data block will terminate loading. But herein lies part of the problem. A jump out of the load loop and back to the EXEC of the monitor will occur not only on recognition of an S9 data block, but also in the middle of a valid data block, if it recognizes a non-hex character, or at the end of a data block if the checksum computed is not correct. Functionally: 10 20 30 RECEIVE BUM CHARACTER JUMP OUT OF LOAD LOOP AND BACK TO EXEC SEND OUT PROMPT (CR) (LF) (.) 40 RECEIVE A CHARACTER 50 IS IT (L), (J), (M), (N), or (P) ?? HECK NO (LAUGH A LITTLE) THEN JUMP TO 30 60 Relief is on its way. First, by sending either a constant B1 or a D1 to the TeletypeTM port (address F000), the paper-tape reader can be under complete software control. That should solve half of the problem--let the computer control the paper-tape reader. Let's look at something else: S11300A0BD... Imagine trying to load a rather lengthy paper tape such as the MITS 680 BASIC, with the PROM monitor. The (L)oad command is typed and the paper tape started. One of the first data blocks loaded is address 00F3 with a constant FF. This will at least kill the echo so that your printer does not type out some 480 lines of 'Sldatadatadatadata...". But the loading of the tape is rather boring so you decide to run up-stairs to make coffee, or to watch some more of the movie... and that's when it happens. BD is to be loaded at address 00A0. We want to deposit a binary 10111101 at that address. But the 'B' is ASCII 01000010 and the 'D' is ASCII 01000100. Half of each character is information saying that "this is an ASCII character". So it takes a lot of software shennanigans to strip off the ASCII, left justify, inclusive OR the data, etc., just to load BD at one address. If the BD were in binary on the paper tape to begin with, it could be loaded at the appropriate address in half the number of paper-tape characters. Inevitably, the paper-tape reader will goof. It might read one of the data characters as a non-hex character and/or it will compute a checksum incorrectly. The PROM monitor says to itself: "Ok. You blew it. The heck with this incorrect jazz, it's back to the EXEC for me." So it looks like we're going to build a LOADER. It will accept pure binary data, so it will cut the load time considerably. It will recognize bummers and will stop the papertape reader. These were the starting criteria for the dual programs CMPCTER-LOADER. The program falls through the load loop and returns to the EXEC at entry line CRLF. The EXEC will respond with a (CR) (LF) and then a prompt character (.). After the prompt character, the only thing that is supposed to be typed is (L), (M), (N), (J) or (P). But t!?§ paper-tape reader has meanwhile continued on its merry way. It does not stop shoving non-command characters into the PROM. The PROM is out of the load loop and, therefore, does not like any of the characters that it is receiving. Another character is received, it doesn't 'compute', so it again responds with the prompt characters. Some 42 feet of paper go by on the TeletypeTM while you break your neck trying to get back down-stairs to shut it off. HARDWARE REQUIREMENTS 1. 33 ASR T e l e t y p e ^ running full duplex to the computer. This allows different data to be input and output in addition to suppressing output when needed (killing the echo). 2. Paper-tape reader under software control. This will allow stopping the reader on recognition of an error. NOTE: All paper-tape reader control functions must be strapped out. Examples: EOT End of Tape X-OFF WRU Who are you (Kicks of answer-back drum) Continued CN/December 1 9 7 6 CMPCTER-LOADER Masters Paper-Tape Reader Continued If received, any of these characters will cause something detrimental to happen. Pure binary characters will b e sent to the printer, the odds of hitting these control functions are quite high. Although both the CMPCTER (compactor) program and the LOADER program exist in the Motorola format, they are small enough so that you can manage to get them in even the most finicky TeletypeTM. CMPCTER will take your Motorola style 680 BASIC or ASSEMBLER tape and compact it to the new binary format. This needs to be done only once for each of your big tapes. The loader must be pre-loaded. It's entered before the compacted BASIC or ASSEMBLER tape and is actually the mechanism that brings in the compacted tape. The compacted tape is of a binary nature, so the LOADER will handle it. CMPCTER Let's assume that you want to compact a particular program tape—the MITS EDITOR/ASSEMBLER, for example. It's supplied in the lengthy Motorola format. The starting address of the EDITOR is 0107. Remember^ the tape needs to be^ compacted only One time. Using the (L)oad command, load the CMPCTER program via the Altair PROM monitor. During loading, it will kill th6 echo, stop the tape reader at completion and return echo. Type the letter 'J', so that control returns to the EXEC. Load the paper tape to be compacted into the reader, but do not start the reader yet. 0000. Start CMPCTER by typing (J)ump CMPCTER will respond with a question mark. It's asking you at what address you want to start your compacted tape program. Type in 0107. At the completion of typing the '7', quickly reach over and turn-on the paper-tape punch. CMPCTER will start to punch out the leader. When the leader stops, turn on the paper-tape reader. What happens next is rather odd. The computer will read in one block at a time, stop the paper-tape reader and proceed to punch out that block in compacted form. The T e l e t y p e T M printer will be making rather weird motions as it's responding to the binary data fed to it. Every so often, some ASCII data might even go b y , but usually it will just type gibberish. Let it go. It will CN/December 1 9 7 6 take a while, but let it read and punch. Should CMPCTER pick up either a non-hex character or a checksum error, it will HALT and will not continue either reading or punching data. No problem. Here is how to recover from the error: Turn OFF the paper-tape punch. Turn OFF the paper-tape reader. Reposition the tape in the reader to the middle of the preceding data block. Hit RESET on the computer and restart CMPCTER at (J)ump 0000. Turn ON the paper-tape punch. And finally, Turn ON the paper-tape reader. Compacting will then resume. At the recognition of the 'S9' data block, compacting will cease. CMPCTER will then add its own special data block JUMP mechanism (7E 0107) to the compacted tape in order to start your EDITOR program at 0107. This will be followed by a finishing leader. The final thing CMPCTER will do is list how many blocks (in decimal) that it has compacted. LOADER COADER is also in the Motorola format (but it's very short and sweet). Using the (L)oad command, put LOADER into the computer. Position the compacted tape to be loaded in the reader, and turn the reader ON. Start the LOADER program at (J)ump4300. The LOADER will take over control Of tRe reader and quickly bring in your Binary-mode compacted tape. The LOADER will respond to two types of errors. In both cases, the reader will stop dead in its tracks. 1. 2. It failed to recognize a block-mark correctly. It failed on a computed checksum. The format of the error messages is included on the assembly listings. To recover from the error: Yes, fixing the paper-tape reader would have solved a lot of problems. As parts become available, it is being repaired. But the added bonus of CMPCTER-LOADER is that the actual load time is cut in half due to the binary mode of the program tape. About the only critical software item is a constant in CMPCTER, labeled TIME. It appears once (line#00176) at address 01EC. This value may need adjusting depending upon how fast your paper-tape reader can be stopped. Even if you do not own the Altair 680b computer, most microprocessor systems use an ASCII type of tape data format. Writing a CMPCTER-LOADER program in the machine language of your computer will pay big dividends. Bits § Pieces C o n t i n u e d f r o m Page Two NEW FACES HAVE APPEARED IN THE MIT5"MIRROR MITS would like to welcome to her ranks Ken Zaike, Charles Olsen III, and David Ning. Ken is now the head of our Industrial Sales Department, Chuck is heading up Public Relations and David now handles International Sales. If you have questions in any of these areas, please feel free to contact these gentlemen. RENEWAL SUBSCRIPTIONS ARE NOW BEING ACCEPTED For the cost of $5.00/year ($20.00 to our foreign customers), you will become an Associate Member of our Altair Users Group. As a member you will receive a copy of Computer Notes monthly, plus you will be able to both write and purchase any programs (for a copying charge only) which we have in our Software Library. For payment we will accept the following: BAC, M C , a Bank Check, or a personal check which requires a 3-week holding period. We will be sending out renewal notices in mid January to all those persons whose subscriptions will expire after the January issue. This will allow for the time necessary to submit your renewal order, and not miss any issues of Computer Notes. Back up the tape to the middle of the preceding data block, and turn the reader ON. Block marks are easy to recognize in this compacted form-they are two rubouts in a row (hex FF, FF). Those persons who have already sent in their renewal subscription in the amount of $10.00, will have this money remain on their account until such time that they either request a refund or utilize the money for another order. Reset the computer and restart LOADER at (J) 4300. Loading will then resume. If you have any questions, please feel free to contact u s . The last data block on the compacted tape is actually a JUMP instruction that will over-write a part of LOADER and cause a jump to address 0107. After that, your program will b e up and running. Page T h i r t e e n RDY LDA STA B LDA B STA B JMPBI ORG FCB $ MAM LOADER #2.0 * * * * * * * * $43FE 0*0 CLEAR BLOCK COUNT ORG $ 0 0 F 3 FCB $ 0 3 ORG $ F 0 0 O FCB$B! * SOURCE B #$D! ACIACS 8 B I T S AND READER ON #$FF $F3 K I L L ECHO LOADER V I L L LOAD IN A PURE B I N A R Y OUTPUT TAPE PRODUCED BY CMPCTER THEN JUMP TO A PREARRANSED ADDRESS GOOF BRA GOOF * ON A GOOF* COMPACTING W I L L STOP H E R E . * I T I S CAUSED BY E I T H E R A NON-HEX CHARACTER * OR A BUM CHECKSUM. * BACK UP SOURCE TAPE TO THE B E G I N N I N G * OF THE STOPPED BLOCK AND RESTART PROGRAM END ERROR MESSAGES BMM # # # # AAAA DD CVV #### AAAA DD * B: * C: * MM: * VV: * AAAA: * DD: * ####: * * BLOCK MARK ERROR CHECKSUM ERROR BUM BLOCK MARK CHECKSUM VALUE LAST ADDRESS BLOCK LOADED CORRESPONDING DATA BLOCK COUNT LOADED OPT P A C I A C S EQU $ F 0 Z 0 BYTECT EQU $ 0 0 F 9 BLKCNT EQU $ 4 3 F E X H I EQU $ 0 0 F A XLOW EQU $ 0 0 F B OUTCH EQU $ F F 8 ! 0UT3H EQU $ F F 6 D OUTS EQU $ F F 8 2 POLCAT EQU $ F F 2 4 ACIADA EQU $ F 0 0 ! NCHANG EQU S F F S F * ORG $ ^ 3 FCBSFF KILL ECHO * ORG $ 4 3 0 0 * BEGIN J M P RDY B I J S R BYTGET CMP B # $ F F BMEBI J S R BYTGET CMP B # $ F F BEQ L I S PAST F I R S T BLOCK MARK? BRAB! * ORG $ 4 3 ! 6 * * THE NEXT 3 ADDRESSES A R E * OVERWRITTEN WITH JUMP INSTRUCTION L D BSR BYTGET NOP * * CMP B # $ F F RUBOUTS M E KB BSR BYTGET CMP B # $ F F CHECK NEXT ONE TOO M E KB H 3 CLRA ZERO CHECKSUM BSR BYTGET GET BYTECOUNT SUB B # 2 STA B BYTECT BYTECOUNT L D ! I BSR BYTGET GET H I G H ADDRESS STA B X H I STORE I T B $ R BYTGET GET LOW ADDRESS STA B XLOW STORE I T LDX X H I LOAD X WITH ADDRESS B U I L T MORE BSR BYTGET GET DATA BYTE DEC BYTECT DECREMENT BYTE COUNT BEQ L D I 5 DONE WITH T H I S BLOCK? STA B X STORE DATA INX BUMP P O I N T E R BRA MORE GO BACK FOR MORE L D I 5 INC A INCREMENT CHECKSUM LLD BEQ BUMP ALL OK PSH A LDA A # ' C CHECKSUM ERROR BUM LDA B # $ 9 1 STA B A C I A C S K I L L READER CLR B STA B $ F 3 ECHO ON LDA B # $ 0 D J S R OUTCH LDA B # $ 0 A J S R OUTCH TAB J S R OUTCH DUMP TROUBLE TYPE PUL A J S R OUT2H DUMP BUMMER J S R OUTS SPACE LDA A BLKCNT J S R OUT2H. DUMP BLOCK COUNT LDA A B L K C N T * ! J S R 0UT2H J S R OUTS * SHOW BUM BLOCK ADDRESS AND RETURN TO PROM J M P NCHANG+5 * KB P S H B LDA A # ' B BUM BLOCK MARK BRA BUM * BUMP CLC LDA A BLKCNT*I M C A DAA STA A B L K C N T * ' LDA A BLKCNT ADC A # 0 0 DAA STA A BLKCNT BRALD * BYTGET J S R POLCAT READY YET? BCC BYTGET NOPE LD)A B A C I A D A GET S B I T CHARACTER ABA ADD TO CHECKSUM RTS Page Eight CMPCTER SETDMP DEX WHOOPS ONE TOO MANY STX BUFEND SAVE END ADDRESS LDX #BUFFER GET START ADDRESS DMPBUF LDA B X GET CHARACTER J S R OUTCH DUMP I T CPX BUFEND REACHED END ADD? BEQ DONE INX BRA DMPBUF DONE CLC BUMP BLOCK COUNT LDA A BLKCNT*! MCA * * * * * * * * * * * * DAA STA LDA ADC DAA STA JMP NAM CMPCTER SOURCE # 1 . 8 COMPACTER W I L L TAKE A MOTOROLA PAPER-TAPE FORMAT COMPACTING I T TO A B I N A R Y FORMAT FOR LOADER IN A D D I T I O N TO ARRANGING A JUMP TO THE PROGRAM BEING LOADED SHOULD AN ERROR OCCUR* COMPACTING W I L L BE TERMINATE AND CAN BE RESUMED START AND RESRT ADDRESS J 0000 OPT NOG OPT P * TIME EQU $ F S PTRC RELAY CONTROL * BYTE EQU $ F F 5 3 PROM BUFEND EQU $ 0 0 0 C BUFFER END ADDRESS BLKCNT EQU $ 0 3 F E BLOCK COUNT BYTECT EQU $ 0 0 F 9 BYTE COUNT SKELAD EQU $ 0 0 0 3 JUMP SKELETON BUFFER EQU $ 0 0 1 0 TEMP BUFFER BADDR EQU $ F F 6 2 PROM INCH EQU $ F F 0 0 PROM READER EQU $ F 0 0 0 A C I A C S OUTCH EQU $ F F 8 I PROM OUTS EQU $ F F S 2 PROM ECHO EQU $ 0 0 F 3 0UT2H EQU $ F F 6 D PROM TEMP EQU S 0 0 F 8 . STAD EQU $ 0 1 0 0 ORG $ F 3 K I L L ECHO FCB$FF * ORG $ 0 0 0 0 START J M P B E G I N SKEL FCB $ F F * $ F F BLOCK START FCB $ 0 6 BYTE COUNT FCB $ 4 3 * $ ! 6 OVERWRITE ADDRESS FCB $ 7 E JUMP INSTRUCTION J M P A D R FCB 0 * 0 JUMP ADDRESS SKLCK FCB 0 CHECKSUM * ORG $ 0 1 0 0 BEGIN J S R CHI-1 J S R CRLF LDA B # $ 3 B PROMPT J S R OUTCH STA B ECHO TURN ON ECHO J S R OUTS CLR A ZERO CHECKSUM STA A BLKCNT ZERO BLOCKCOUNT STA A BLKCNT*) J S R BADDR GET JUMP ADDRESS STX JMPADR STORE I N SKELETON ADD A # $ D D PRECANNED CHECKSUM COM A STA A SKLCK J S R CRLF CLR B NULLS J S R LEADER LDA B # ' P SPECIAL J S R LEADER * LDX#* STX S T A R T * ! LOOP LDA B # $ F F STA B ECHO K I L L ECHO LOAD LDX #BUFFER LDA B # $ F F STA B X START MARKS INX STABX INX J S R CHIN READ FRAME SUBB#'S BNE LOAD J S R CHIN CMPB#'9 BEQ CONT CMPB#'! BNE LOAD CLR A ZERO CHECKSUM J S R BYTGET GET BYTE COUNT STA B X STORE IN BUFFER INX BUMP STA B BYTECT STORE L 0 0 P 2 J S R BYTGET STABX INX DEC BYTECT BNE L 0 0 P 2 DONE? INC A INCREMENT CHECKSUM BEQ SETDMP ALL OK A BLKCNT*! A BLKCNT A #00 A BLKCNT LOOP * CONT LDA A #9 LOOP COUNTER LDX #SKELAD C ! 0 LDA B X DUMP AND BUMP J S R OUTCH INX DEC A BNE C ! 0 CLR B NULLS J S R LEADER J S R CRLF LDX #STAD SET TO START NEW TAPE STX S T A R T * ! LDA A BLKCNT LETS DUMP BLOCK COUNT J S R 0UT2H LDA A BLKCNT*! J S R 0UT2H * HALT BRA * * COMPACTED LEADER LDA A # $ 3 2 LOOP COUNTER L!0 J S R OUTCH DEC A DECREMENT LOOP COUNT BNE L ! 0 DONE? RTS * BYTGET BSR HEXGET GET F I R S T HEX D I G I T ASL B S H I F T TO H I G H ORDER 4 B I T S MLB ASL ASL ABA STA BSR ABA ADD RTS B B ADD TO B TEMP HEXGET ADD TO B TEMP RETURN . - . .. .. CHECKSUM STORE D I G I T GET SECOND HEX D I G I T CHECKSUM COMBINE D I G I T S TO GET BYTE * HEXGET J S R CHIN GET CHARACTER SUB B # ' 0 HEX? BMI GOOF NO CMP B # $ 9 BLE BACK OK CMP B # $ ! ! BMI GOOF NO CMPB#$!6 BGT GOOF SUB B #7 I T S A LETTER GET BCD BACK RTS RETURN * WAIT PSH A PSH B LDA A # T I M E W2 CLR B W! INCB VALUES MEW! INC A BNEW2 PUL B PUL A RTS * CHIN LDA B # $ D ! READER ON STA B READER BSR WAIT J S R INCH PPH B C H ! LDA B # $ B ! , READER OFF STA B READER BSR WAIT PUL B RTS * CRLF LOA B # $ 0 D J S R OUTCH LDA B # $ 0 A J S R OUTCH CLR B COM B J S R OUTCH J S R OUTCH RTS * ORG $ 0 0 F 3 FCB $ 0 3 * ORG $ F 0 0 0 FCB$B! END CN/December 1 9 7 6 Letters to the Editor, Continued input signal (SINP) is of importance—during M3 of the input instruction, SINP goes high enabling circuitry that allows data from the I/O card to be input during T3. SINP goes low again at the next coincidence reflecting a different instruction. To further set the stage, during each of the machine cycles the processor outputs an address (either for memory or I/O) which is presented less than 300 nsec. after the start of that machine cycle or about halfway through Tl. The problem occurs during Tl of the RRC instruction, because the coincidence of SINP and the address for that instruction (which happens to be the data channel address) resets the "data available" FF in IC M—pin 19 on the I/O card. As written, the program will then cause a reset pulse of 200 nsec. at pin 8 IC G (SIO-B) during Tl of RRC every time through the loop. If the "data available" FF is set after the status word is input from IC M during T3 of M3 but before the reset during Tl, then the indication of a character present is lost as well as the character itself. Normally, the reset doesn't occur until the input instruction at location 007 is executed with the data channel address. In that case the character is input and the "data available" FF is cleared to indicate that fact. This situation will occur with the use of the SIO cards and the ACR and possibly with other I/O cards. While a hardware solution is not crucial to the operation of a system, it could be unwieldy to use interrupts or write programs in specific locations, particularly if the number of I/O cards were increased. Sincerely yours, Jim Wiggins Attair Users Don Chamberlain 9457 Las Vegas Blvd. South #321 Las Vegas, Nevada 89119 Phone: (702) 361-4924 Alfred R. Howes Box 342 Boyce Rd. Glenford, NY 12433 Dick Fehriback 5779 Blaine SE Grand Rapids, MI (616) 455-3138 CN/December 1 9 7 6 49508 HAM . on the side By Dave LeJeune Paused LeJeana a Lcaate^a^t CoZoHeZ t^e AAMt/ CoAjas. Ha gAac^ou^t/ to -ta&e. oveA M M CM THE 3IPE. Ignoring a long-standing policy that I picked up early in my Army career to never volunteer for anything, I now find myself with a monthly column to write about the marriage of amateur radio and computers. My appeal goes out early—HELP! From the great amount of chatter I hear on the ham RTTY nets, the C.W. bands and the voice frequencies, I assume that there are a lot of hams out there playing around with microprocessors. This column offers all you enthusiasts the perfect opportunity for letting everyone else know what you're doing. The success of this column depends upon reader acceptance, and that's measured by the amount of feedback (good or bad) you give me. So start sending those cards and letters now! I've been a ham for about 20 years, so I'm old enough to remember the changes caused by the introduction of single side band(SSB) to our ranks. SSB completely revolutionized HF voice operating. But, as often happens with many new products, people didn't fully accept SSB at first and simply termed it a new fangled device. Within 10 years, however, it had become the dominant mode for voice communication. In the mid 60's the re-introduction of FM (it had been used by many for a short time immediately following WWII) had the same effect on the VHF bands. The use of repeaters caused this mode of operation to spread like mad, and today, most cities where more than two or three hams reside have some sort of VHF repeater available. The introduction of the microprocessor had the same effect on amateur radio as the introduction of SSB and FM repeater techniques. The microprocessor can be used for such applications as RTTY and C.W. as well as station control, logging and contest operating. However, with a little help from the FCC, the microprocessor may also find its way into voice operating. In the commercial communications field the trend is towards a total digital network. With such a network it's easier to multiplex many digital channels onto a single transmission system than to analog channels. Designing circuit switches is also easier. But many problems have yet to be solved. For instance, if voice recognition is to be maintained, a digital voice channel must use twice the channel bandwidth as a comparable analog channel. The channels should require about the same bandwidth for a given power level and signal-tonoise ratio. Other areas in the development of optimum error detecting and correcting codes are still wide open to exploration and experimentation. The only tools needed to attack such problems are an amateur radio station with some means of generating the necessary digital voice, RTTY or C.W. signals, a microcomputer and some means of interfacing these two systems. As mentioned previously, the FCC needs to help out by easing current regulatory restrictions imposed on amateur radio operators. As a starter the restriction of RTTY operation to the Baudot code should be removed. This would bring the RTTY ham out of the dark ages and into the world of computer communications. Secondly, in order to attack the problems of digital voice transmission and error correcting codes, the restrictions prohibiting the transmission of codes and cyphers should be removed. The FCC has recently released a new proposal(the "bandwidth" proposal) which will help lift these and other restrictions that currently limit our ability to experiment over the air. However, the proposal seems to be hung up somewhere within the FCC. A note to your congressman might just be the thing to spring it loose. I would like to discuss these and other topics of interest to the ham/computer freaks in future issues of C.N. Interested readers can once again communicate with me via the MAILBOX system(channel 14.075000 mhz) described in last month's C.N.(It went off the air temporarily in November while the system was being upgraded to an Altair 8800b.) Or, you can just as easily drop me a note in care of C.N. to let me know what sort of information you'd like to see in this column. Page Thirteen S!V!ALL By: C O M P U T E R N E T W O R K I N G B)G STUFF Bob Matthews Two news items from the October-November issues of Datamation are indicative of two major, but seemingly opposite, trends in computing: the move toward bigger, more efficient computers and tEe trend toward smaller, more efficient computers. In one of the news items (Datamation, Oct. 1976, p . 17), the Los Alamos Scientific Laboratory in New Mexico announced the delivery of its new supercomputer, which can execute over 20 million floating point operations in one second! (But who's counting?) Obviously, the potential capabilities of such supercomputers are still being explored, and more such developments are certainly forthcoming in New Mexico as well as other states. The second news item (Datamation, Nov. 1976,p. 17), notes that a bank in Boston has cancelled its order for several moderately large computer systems. The cancellation was due not to lack of money, but the bank's decision to convert its original order into an even larger order for 200 minicomputers. The bank figured it can accomplish things more efficiently and economically with a system of small computers rather than with a few large computers. The bank says that within three years there won't be anything larger than a PDP 11/70 in the house. The bank in Boston isn't the only institution that has opted to disperse its computing power throughout the organization. Business, scientific laboratories and educational institutions are also tying their computers together in networks to allow small computers, working in tandem, to do the work of big computers. (See Digital Design, Feb. 1976,pp.26-27; IEEE Spectrum, July 1976, pp.91-93; Business Week, July 5, 1976, pp. 38-447) A few examples will show some of the capabilities of distributed processing in the hands of a small system user. A. A Minimal System. User A is a graduate student in astrophysics and is doing a research in stellar structure. This research requires the solution of some fairly complex differential and integral equations, most of which have no analytic solutions. The numerical solutions to these equations require huge amounts of raw computing power but relatively little input/output sophistication. After crunching numbers for several minutes or even hours, the computer might only print Page Ten a few pages of numbers and a graph or two. Since grant money is limited these days, especially for theoretical astrophysics, User A needs a low-cost system that has modest I/O facilities, program storage and editing facilities and enormous floating point mathematical power. Until recently, no system combined all of these capabilities. But now with the age of distributed processing, a system for User A might look like this: Modem telephone to big computer Altair 8800b would also create more space on A's desk, which otherwise would be overflowing with reams of printer paper and card boxes. A's system has plenty of speed to handle the CRT terminal and the phone line simultaneously, but there isn't much time left over to do computing on the data as it is being shifted around. If more computing time is necessary, and A , for example, wants to change the format of the data or apply some relatively simple calculations before it is sent to the big computer, one of two things must be done. Either the software must be written to allow interleaving the tasks of I/O and computation, or the following modification must be made to the hardware. CRT terminal Figure A The heart of the system is an Altair 8800b microcomputer. It controls a CRT terminal, a printer, small plotter and a floppy disk unit. It is connected through a dial-up or private U n e to the university's (or whoever's) computer center. A's big simulation program, which A's supervisor and his colleagues pieced together over a period of years and to which A has been making modifications all along, is stored on a floppy disk. The program can be loaded into the supercomputer through the telephone line. To make any necessary changes, A can use the text editor, which runs on the Altair computer, and either save the resulting code on disk or send it to the big computer to be executed. Once the program is loaded, A can go home (or more likely, to the library) and let his Altair system handle the housekeeping details. ' It can log intermediate output, error messages and even provide input for the big program when it is needed. Finally, it can receive the output of the program and store it for later recall. When A comes in, the output can be examined or "massaged" to make it easier to handle, or the error message file can be examined to see what went wrong. This is a brief example of a simple system, but it illustrates how the intelligence of an Altair 8800b could be used to help A's research along by allowing more time for studying instead of running back and forth to the computer center. Such a system would allow more flexibility in changing the program and data around to fit the requirements of the project. It Printer/ Plotter Altair 8S00b #2 (COMPUTE) i i— } < Altair 8800b Modem (I/O) t i " )
Source Exif Data:File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : Yes Create Date : 2013:06:23 11:06:33+09:30 Modify Date : 2015:02:10 20:55:42+10:30 XMP Toolkit : Adobe XMP Core 5.4-c005 78.147326, 2012/08/23-13:03:03 Format : application/pdf Producer : ABBYY FineReader 10 Metadata Date : 2015:02:10 20:55:42+10:30 Document ID : uuid:1994DF74-BF88-40AD-A2D3-1628E3D1341B Instance ID : uuid:69c835c8-185c-4566-9015-677e7a7070e2 Page Count : 16EXIF Metadata provided by EXIF.tools