dr. dobb's journal of $1.so COMPUTER Calisthenics & Orthodontia Running Light Without Overbyte June/July, 1976 Box 310, Menlo Park CA 94025 Volume 1, Number 6
A REFERENCE JOURNAL FOR USERS OF HOME COMPUTERS .CONSUMER COMMENTS ·fraUie for Pittman's 6800 Tiny BASIC [letter & reply] 4 Denver's Digital Group Kit Draws Praise [letter] 5 Good Reports & Plaudits for MOS Technology[letter/note] 5 Accentuate the Software; Eliminate the Games [letter/reply] 6 Short on Length, hut Long on Quality [letter] 6 A Novice Constructs an IMSAL S. A. Cochran, Jr. 7 Don't Underestimate BASIC fletter] 40 an attorney builds his first computer BASIC Complaint & Macro Message [letter & reply] 40 FCC Petition on ANSCII Transmission by Hams 42 Dennis Allison reply points out BASIC limitations SOFTWARE A Bootstrap for the 8080, Lichen Wang 8 Byte-Saving Programming Tricks for the 8080, Tom Pittman 9 An Exercise for Novice Translator Implementors, Bill Thompson 11 A Classy 8080 Text Editor, similar to a PDP-9 Editor, F. J. Greeb 13 includes general comments, user documentation & extensively annotated source code Tiny Trek for Mueller's MINOL, Erik Mueller 37 Button, Button Game in 8080 Machine Code, Ron Santore 38 CORRECTIONS & IMPROVEMENTS Errors in & Improvements for Texas Tiny BASIC (TBX), Charles Skeldon 3'4 Errata & Additions to Wang's Palo Alto Tiny BAS1C, Lichen Wang 35 MinErrata for MINOL, plus Tiny Trek, Erik Mueller 36 VIDEO OUTPUT 48 Lines of 64 Characters on a TV for $499. 95, Video· Terminal Technology 27 512-Character Video RAM from Canada, Matrox Electronic Systems 27 Variable Character Spacing in Video Displays, Jim Day 28 TVT-11 Mods to Get 64 Characters per Line, David Valliere . 29 Homebrew TV Display System with Graphics, Glendon Smith 30 complete design & implementation details, including complete schematics $98.50 Graphics Terminal Kit, Southwest Texas Products Corporation 33 MISCELLANEOUS HARDWARE 4K Static RAM Board (Unpopulated) for $18.75 4 Adaptor Makes LSI-11 's and ll/03's into Real PDP-11 's 36 $450 Dot-Matrix Printer for 6800's and 8080's 36 Western Data's 6502-hased Data Handler Kit for $169.95 43 RCA COSMAS & µScope [letter], Jim Day 43 LED Replacements for Burn-Outahle PDP-8/E Lamps 43 RANDOM DATA POINTS Do You .•• , a request for your assistance 3 16-hit, 3-MegaHertz Micro? [rumor] 5 Going to Submit a Program to S9meplace? .[letter & reply]6 New club: TRACE in Ontario 15 Table of Contents for First Six Issues of Dr. Dobb 's Journal Pointers to Other Good Stuff 26 + propaganda, subscription form & questionaire centerfold 6800 BASIC, Editor, Blackjack; Tiny BASIC Star Trek; etc. Sonoma County Computers Hold Meetings 27 Central Oklahoma Computer Group 29 1980 Census: Have Any Suggestions? 34 Club: ICE-NINE in Illinois 36 Computers & Education ffour brief notes] 40 Tiny Time Sharing? Lee Felsenstein 41 lversons Initiate APL Newsletter, Jean Iverson 41 Software Exchange for 6800's [letter & reply] 41 IMS Associates, Inc., Moves 41 A Club Survey for a Club Club · 42 TV Dazzler Contest back cover SUBMITTING 00::KEEP IT A SECRET! I ITEMS FOR ~ PUBLICATION ' let us know what exciting new soft~re and ~ystems you are ' working on. We'll tell everyone else (1f you wish). Maybe someone is also working on the same thing. You can work together and get results twice as fast. Or, may be someone t t else has already done it; no reason for everyone to reinvent the wheel.
DR COBB'S JOURNAL OF' ~'~]--:" ?; COMPUTER CAUSTHENICS & ORTHODONTIA t l I \ ,I~~~ ,, - Volume 1, Number 6; June/July, 1976 t DATE'M-Please include your name, address, and date on all tidbits you send to us. Box 310, Menlo Park CA 94025 t TYPE'M-If at all possible, items should be typewritten, Copyright © 1976 by People's Computer Company double-spaced, on standard, 816 x 11 inch, white paper. If we t can't read it; we can't publish it. Remember that we will be retyping all natural language (as opposed to computer languages) Publisher t communications that we publish. People's Computer Company PROGRAM LISTINGS-We will accept hand-written 1010 Doyle, Menlo Park, Californio. t Editor (415) 323-3111 programs only as a very last resort. Too often, they tend to say Jim C. Warren, Jr. t something that the computer would find indigestible. On the Contributing Editors other hand, if the computer typed it, the computer would probably accept it-particularly if it is a listing pass from an F. J. Greeb t Lichen Wang assembler or other translator. t It is significantly helpful for program listings to be on continuous paper; either white, or very light blue, roll paper, or t fan-folded paper. Since we reduce the copy in size, submitting it Dennis Allison on individual pages forces us to do a significant amount of extra t cutting and pasting. For the same reason, we prefer that you exclude pagination or page headings from any listings. Circulation & Subscriptions t Please, please, please put a new ribbon on your printer Mary Jo McPhee t before you run off a listing for publication. Bulk Sales In any natural language documentation accompanying a program listing, please refer to portions of code by their address t or line number or label, rather than by page number. Printer t DRAWINGS & SCHEMATICS-Please draw them signifi Nowels Publications, Menlo Park 94025 cantly larger than the size you expect them to be when they are published. Take your time and make them as neat as possible. We POSTMASTER: Please send Form 3579 to: Box 310, Menlo Park t CA 94025. Return postage guaranteed. Application to mail at do not have the staff to retouch or re-draw illustrations. Use a second-class postage rates is pending at Menlo Park CA. t black-ink pen on white paper. Published 10 times per year; monthly, encl!Mling July & December. LEITERS FOR PUBLICATION-We are always interested t in hearing your praise, complaints, opinions, daydreams, etc. In U.S. subscriptions: Foreign subscriptions: t letters of opinion for publication, however, please back up any (Subscription blank is on centerfold.) Add $4 per year to U.S. opinions that you present with as much factual information as $1.50 for a single ~. rates for surface mail. t possible. $3 for the first three issues. Add 112 per year to U.S. We are quite interested in publishing well-founded, 110 per year. rates for air mail. t responsible evaluations and critiques of anything concerning hobbyist hardware or software, home computers, or computers Discounts available for bulk orders. t and people. Disclaimer We may withhold your name from a published letter if you We serve as a communication medium for the exchange of t so request. We will not publish correspondence, however, which information. We do not guarantee the validity of that information. is sent to us anonymously. t We reserve the right to edit letters fm purpo:res of clarity Reprint pri11il11111es and brevity. Articles herein that are copyrighted by individual authors or t ADVERTISING-Advertising from manufacturers and otherwise explicitly marked as having restricted reproduction rights vendors may be accepted by us. However, we reserve the right to may not be reprinted or copied without permission from People's t refuse any advertising from companies which we feel fall short of Computer Company, O'I' the authors. All other articw may be our rather picky standards for ethical behavior and responsiveness reprinted for any non-ooml"m!rcial purpose, provided a credit-line is to consumers. Also, any such commercial advertiser is herewith included. The credit-line should indicate that the material was informed that we will not hesitate to publish harsh criticisms of · reprinted from Dr. Dobb'i; Journal of Computer Calisthenics & t their products or services, if we feel such criticisms are valid. Orthodontia, Box 310. Mmllo Park CA 94025. ' Dr. Dobi:l's Journal of Computer Calisthenics 8i Orthodontia, Soi:t 31 OI, Menlo Park CA 94025 June/July, 1976 YOU LIKE WHAT WE ARE DOING? * Publishing significant systems software, every month * Reprinting materials from club newsletters * Proposing & detailing "realizable fantasies" ... exciting projects, feasible for home computers * Actively pursuing a role of consumer advocate * Publishing useful references ... indices to periodicals, bibliographies, lists, etc. * "All Meat" pages; we are not accepting commercial advertising * And more-
KNOW THAT MUCH MORE MATERIAL IS BEING SUBMITTED THAN WE ARE FINANCIALLY ABLE TO PRINT? * Many more programs than we have room to print * Much more very useful material from many club newsletters * A number of projects that are practical & appropriate for home computer users * More consumer evaulations of products & services * Many, many more reference lists, indices, tables, etc. * Much more
KNOW THAT YOU CAN HELP US TO BE ABLE TO PUBLISH ALL THE GOOD THINGS WE ARE RECEIVING? * Since we ... -are supported entirely. by subscriptions & sales through stores - want to keep it that way ("keeps us honest" when we indulge in consumer advocacy) -are serving you; not serving commercial advertisers * Then ... - the only way we can get more income to pay our printers to print more pages, is to have more people and companies subscribe to and purchase the Journal -you have already helped by purchasing this issue
WISH TO HELP US HELP YOU? * Tear out the center-fold (not very sexy, but we hope it's attractive) - pass it along to a friend or professional associate - post it on the bulletin board at school or at work - give it to a manager of microprocessor software or design - reprint it in your club newsletter * Stand up and tell your next computer club meeting about the Journal
[and ... if you really like what we are doing:] * Send tax-deductible contributions to People's Computer Company - do so as a company or an individual [Oh ... didn't you know? PCC, the publisher of Dr. Dobb's Journal is a legitimate, state and federally chartered, non-profit, educational organization. Contributions to it are tax-deductible.] ()()
June/July, Hl76 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Sox 310, Menlo Park CA 94025 Page 3 PRAISE FOR PITTMAN 1S 6800 TINY BASIC 4K STATIC RAM BOARD and (UNPOPULATED) FOR $18.75 A Minor Complaint ... With Tom's Response Dear Friend, May 10, 1976 Dear Bob, May 17, 1976 I would appreciate your disseminating the spec sheet I bought Torn Pittman's 6800 TINY BASIC and enclosed to your friends and club members. A discount of 5% think it's the best $5 I've spent in a long time. I haven't will be given to clubs with an order of 50, and 10% on 100. tested it exhaustively, but it seems to work admirably, though slowly. The user's manual that came with it was simple and Several months ago I received several inputs on making an unpopulated 4K RAM board, hence I am producing the comprehensive, and gave enough info to make the program board for the hobbyist that does not want to get ripped off. run on anyone's system with a minimum of fuss. Mine worked The board has been fully tested and is in use by many almost as soon as I got the paper tape read in. Tom Pittman people here in Dallas. I might add that it is in use on 8080, is to be applauded not only for producing a good TINY 6502, and 6800 CPU's. BASIC that uses less than 2K, but for doing such a good job Sincerely yours, of explaining how to use it. If all hobbyist vendors con Jim Garrett Box 2161 formed to Tom's standards, there would be far fewer Micro Applications Garland TX 75041 complaints. 4K STATIC MEMORY BOARD (unpopulated) My only complaint about Tom is that he staunchly FEATURES refuses to release the source listing of his program. I need to 2102 and 91 L02 compatible make some modifications to the program, for use with my User selectable options cassette 0/S, and I would like to be able to expand it. It is Protect/Un protect switch Battery backup very frustrating to be kept so ignorant about his program, Selection of address by dip switch particularly since it seems to work so well. He seems con Fully compatible with MiTS/ALTAIR and IMSAI 8080 cerned about his ability to retain control over the integrity of Can be used with other micro/homebrew computers Full buffering of address and data lines the program, and perhaps about the investment in time and Bipass capacitors on all ICs for improved noise immunity potential ·money he .expects to receive from it. I can't see how SPECIFICATIONS , he'll ever make enough money (at $5 a copy) to keep himself Double-sided Ml L-spec board in business. But the price may serve to discourage people from 100-pin (50x50) on 0.125-inch centers Standard dimensions circulating clandestine copies of the program. Anyone who Plated through holes uses Tom's program without paying Tom for the privilege, Gold plated edge contacts should be tarred and feathered. GENERAL DESCRIPTION Sincerely, This is an unpopulated 4,096 word (byte) Random Access Memory. The cost to populated is less than any kit available (based on David M. Allen 1317 Central Ave. advertised prices). Full instructions, schematics "nd parts list are Kansas City KS 66102 included. PLUSES 100% tested Instruction package Dear Jim: 11 June '76 Plated through holes and gold-plated edge contacts I have to agree with David's complaint-! would be very Uses 2102's or 91 L02's unhappy to find the tv I just bought did not have a sche PRICES matic, but then a $5 transistor radio is something else. 1-3@ $18.75each Though he does not seem to realize it, David has actually 4 or more @ $16.25 each touched on the reason why I have not made source listings $1 for instruction package (one is included with each order) Texas residents add 5% tax available. When I first started this venture, I too was not sure i DELIVERY 3-4 weeks could make enough money to stay in business; it was in fact a sort of experiment in economics. Therefore, as a hedge Coming Soon: "The Extender." against possible losses, I sold copies of the source and main tenance documentation to a company for a lot more money We are interested in receiving consumers' compliments than any hobbyist would be willing to pay, though it was and complaints concerning Micro Applicatior;s, and all other still considerably less than I usually sell custom programs of large and small marketeers to the hobbyist community. --JCW comparable size for. While the sale was non-exclusive, I do not think it fair to devalue this company's investment when (yes, I know it's slow), bu!. already I am fo1e-sharing my to some extent they helped make Tiny possible. efforts between tllis, new software, and those expensive cus Aside from that one large sale, Tiny BASIC 6800 has tom programs that keep the rent paid; th~ projects with non not yet paid for itself, but the promise is there, so I expect zero financial return seem to get higher throughput. to go ahead with other software for the hobbyist in the same price range, and I hope to make source listings available for Tom Pittman Box 23189 the new packages. As for Tiny BASIC, i am presently pre San Jose CA 95153 paring a comprehensive description of the i l (which is sub P.S. Your readers may appreciate being made aware of the stantially the same as that originally published in PCC) in fact that Tiny BASIC does run on a Sphere configuration, but cluding instructions for modifying it to add fu~tional capa they should mention which computer they have, since the 1 bility or change syntax, to be published in DDJ ' {if you will code is slightly different for the different operating systems have it). I had hoped to include an assembler Wl>'ftten in Tiny (e.g., Sphere vs. SWTP, etc.).
Page 4 Dr. Dobb's Journal of ,Computer Caiisthenics & Orthodontia, Bo% :no, Menlo Park CA 94025 June/July, 1976 DENVER'S DIGITAL GROUP KIT DRAWS PRAISE I've been spending most of my time figuring out what makes the Monitor work. The DC documentation is not much Dear Bob: April 26, 1976 help. I've also found out that machine language is a far cry I finally broke down and bought myself a system. I from Fortran. took out a bank loan, added some cash of my own and I will echo what some othe_rs have said about the DG mailed my cashier's check to the Digital Group for their system; Three-board system. It does what they say it will do. Three days later I read in PCC that caution was needed It worked the first time I turned it on, which says a in dealing with DG. I also read some mixed reports in Micro-8 lot considering how complex it is. It's definitely not a News. I was really nervous, had bad dreams, and didn't sleep beginner's kit. for nights. More documentation: flow charts for the Monitor (I'm working on a set), clearer instructions, spec Order placed with DG: 3-board system kit plus 2/10/76 sheets for the IC's and a better description of how it power supply. They promised 3-week delivery. works would be nice. But that would mean more Order placed with Herbach & Rademan: Clare/ money and maybe in that case the documentation is Pender Keyboard. OK. 2/21 The three boards arrived, missing 74121 and 22uF capacitor. Last week I got info about DG's Tiny BASIC. I plan to 2/25 Keyboard arrived. order that and another 81< of RAM from them. 2/26 Power supply arived. Materials I'm finding helpful: The Bugbook III. 3/3 Mother board arrived. Hopefully my Intel 8080A Users' Manual will get here soon. Total time: 3 weeks, one day. The missing parts took 4 I want to get: 8080A Microcomputer System's Manual, weeks and two letters. Intellec 8/Mod 80 Microcomputer Development System Ref All parts are of good quality. erence Manual, SCELSI software manuals. TV-Cassette and Mother boards are slightly warped. 5V 6A supply by Eentak Inc.; looks impressive. Keep up the good work. Documentation fair; assumes a lot. Several minor errors. Yours, Chassis, switches and connectors need to be ordered Ed C. Epp Freeman Junior College from other distributors at present. Freeman SD 57029 Time Spent 2.5 hours 1/0 card GOOD REPORTS ABOUT MOS TECHNOLOGY 4.75 CPU card 3. 25 TV-Cass. card We hear that MOS Technology has sold aboJt 1000 Ki M's. 2.5 - 5, ± 12V power supply We also hear that they are very responsive to customer queries. If .5 Mother board you have needs or interests, the "good guy" name we have been 6.5 TV modifications given is Don Mclaughlin, Product Manager for KIM, 17.5 Planning, cutting, mounting, wiring chassis (215) 666-7950. 4.5 Checking things out PLAUDITS FOR MOS TECHNOLOGY 41.5 hours Total time Dear Jim, May 11, 1976 I took my time and spread it over about 40 days. I Just received my third issue of Dr. Dobb's Journal and must say I savored every minute of it. I thought I'd drop you a note of thanks for putting in an I had trouble with the TV characters being out of focus. article on a MOS 6502. From the lack of MOS Technology It finally dawned on me, after scratching my head for several articles, I got the feeling that "Intel Valley" was banning MOS days, that the TV interface was overdriving the T". video. I Technology products in California. solved the problem by turning the contrast and brightness to last week I called Intel, to get a software manual, and zero. later I plan to add a pot on the interface output. received the biggest runaround I have ever gotten. Unlike When I had gone through their checks, I turned the sys Intel, I have found MOS Technology will answer any and all tem on and sure enough there was a message on the TV questions on their products and it only takes o~e call t<;> them screen: "Read 8080 Initialize Cassette." to produce results. Many times I have called Will Mathis and After dancing around the room, I proceeded to read in Don Mclaughlin of MOS Technology with what I, today, the cassette. Numbers flashed across the screen. First 1's, then would consider to be stupid questions and received the time 2's, and finally 7's, then a bunch of dots. The dots weren't and help of their technical staff in getting m~ on the straight suppose to happen. More scratching of the head and several and narrow. · days later I decided it must be the cassette recorder. MOS gets a number one in my book and should be I borrowed a recorder from the school to replace my El given more space in your Journal. Cheapo and everything happened just like it was supposed to. Very truly yours, However it still misses a few bits now and then. The 1100 Gerald D. Severson baud rat~ is too fast for my El Cheapo. It looks like it would be possible to set the cassette read and write constant RUMOR: 16-BIT, 3-MEGAHERTZ MICRO? at a lower baud rate, re-record the Operation Monitor, and then every time the system is turned on key in the new con We hear that MOS Technology is planning to exhibit a stant from the front panel, and then read in the cassette on an El Cheapo. However, the DG system does not come with a 3-megahertz, 16-bit microprocessor at this Fall's Wesco.~ con vention in San Francisco. They also expect to have a rotate front panel, just plf!ns for one. right" instruction in their 6502 by the time this issue reaches your hands.
June/July, 1976 Dr. Dobb's Journal of Computer Calisthe~ics & Orthodontia, Box 310, Menlo Park CA 94025 Page 5 ACCENTUATE THE SYSTEMS SOFTWARE; GOING TO SUBMIT A PROGRAM ELIMINATE THE GAMES TO A MANUFACTURER'S SOFTWARE LIBRARY? Dear Editor, WHY NOT SUBMIT A COPY You can eliminate 90% of the games. Almost all other hobby publications specialize in them. Emphasize your unique TO YOUR LIBRARY (THE JOURNAL)? ness: a repository for systems software. It's a great idea, so far well executed; so don't drop the ball by trying to cover Dear Editor, May 12, 1976 too many other things. I strongly recommend that you push I've got a gripe. I ordered my Altair back when Pop APL as you did TBASIC Tronics first published the article (took four months to get it, though). Anyway, they automatically gave me a 1 year's sub Robert C. Minnick Box 306 scription to their Computer Notes. With each copy they in Ouray CO 81427 clude at least one page of new programs available in their software library. These are programs that they keep asking To a large extent, we will leave the games for publication people to send in, for which they receive a couple of pro in People's Computer Company. We will reprint games from grams in turn from the library. We are told these programs time to time, particularly when they are "games' systems," or are all free simply for a small handing and copying fee. These are games written in assembly-level code. This might be con "small fees" are almost all $2 minimum-or more for the sidered to be, so to speak, systems software for home computer longer programs. The current offering consists of 29 programs users. Dr. Dobb's Journal will definitely not be emphasizing totaling $61 in fees if one ordered all 29 (28 are $2 each, games, however. and 1 is $5). We would be delighted to "push" APL as we did Tiny What I don't understand is why they don't publish them BASIC. All we need is for someone to provide design criteria in their Computer Notes. As it stands, Computer Notes con and details appropriate for hobbyist consumption. We are sists of 16 pages of virtually nothing but_ their own advertising. alwsys on the lookout for competent individuals interested in They say a subscription to non-Altair owners is $30. Personally, providing the leadership for such projects. Incidentally, as soon I wouldn't give 30 cents for a year's subscription. I bet after as he can find the time, the Editor of Dr. Dobb's Journal is the 12th issue goes out and they start selling subscriptions planning on initiating a SMALL PASCAL project, to be pur they are going to be in for a big surprise. Who will pay even sued in much the same manner as Dinnis Allison's Tiny $10 for their advertising sheet? They also issue software with BASIC project. This will be based on Niklaus Wirth's PASCAL, a $500 price tag to the hobbyist and then lament the swap a cfoanly designed, excellent, block structured, high-level lang ping, passing around, trading, of it. What do they expect? uage similar to ALGOL, ,but with much more powerful data But that's another story. description and manipulation facilities, and structured for The point is-why can't you publish these (or similar)? single-pass compilation. Just glancing at the latest list I see programs listed as being One final note: PCC is not a program repository. We 60 lines, 83 bytes, 73 bytes, 21 lines, 46 lines, 121 bytes, publish all available information about interesting software, 28/33 bytes, 56 bytes, 12 lines, 250 lines, 15 bytes, etc. You including information as to how it may be obtained. However, could get all eleven programs I listed on 3 or 4 pages, and we do not distribute such software in machine-readable form that represents $22 of handling and copying fees. Publishing (e.g., paper tapes, cassettes, etc.). --JCW some would save us a bundle. This is what I hope Dr. Dobb's Journal is all about. SHORT ON LENGTH Actually, a lot of people just aren't going to get many of the BUT LONG ON QUALITY programs unless there is a lot of the lamented swapping, trad ing, and exchanging-or, unless you become the "library" for Dear Jim, all of us. Having just read your February issue (Vol. 1, No. 2), I So far, you are doing fine. Keep up the good work. was sufficiently impressed to part with the money for a sub Durward Landers 2509 Lakeside Dr. scription. What your publication lacked in length was more Garland TX 75042 than adequately offset by quality and subject matter. Your questionnaire scares me somewhat as you apparently are look We will publish as many programs as we can, if people ing for some new directions: Additional coverage of other will send them to us. Spread the word: Whenever someone topics is fine and may tend to broaden your base of appeal. decides to submit a program to a manufacturer's software However, I for one, bought your publication for what it cur library or users' group, encourage them to .also submit it to rently is-"a medium concerning the design, development and the Journal. If it's systems software or assembler-level, we will distribution of free and low-cost software." Should your en· probably publish it. If it's a program coded in BASIC or some terprise maintain its stated goal of presenting "detailed infor other Hll (High Level language), it will probably be pub mation concerning low-cost systems software," I will have lished in PCC Newspaper. spent the subscription fee well. I remain, We see nothing wrong with offering programs to manu Dan Artman 1445 Adams Rd facturers' libraries. But at the same time, why not offer them Cincinnati OH 45231 to your library: Dr. Dobb 's Journal? As far as reproduction and postage costs are concerned: is doing little more than breaking even. Unfortunately, there is there is a problem. The Community Computer Center (CCC) a lower limit on the cost of maintaining paper-tape equip is maintaining a Program Repository and Duplication Facility ment + purchasing supplies + paying a paltry pittance to a (see the Journal, March, 1976, issue) for all programs sub .slave to operate the equipment arid verify tapes that are mitted to it. We think their charges are reasonable: $1 /ounce punched and ... etc. (Note: People's Computer Company is for tapes plus 50 cents (orders under $5) or $1 (orders ex a publishing operation. We provide programs in human-readable ceeding $5) for postage and handling. Note that these are form. We do not provide programs in machine-readable form, quite comparable to MITS' charges ... and we know CCC e.g., paper-tapes.)
Page 6 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Bern 310, Menlo Park CA 94025 June/July, 1976 A novice constructs an IMSAI An attorney builds his first computer by S.A. Cochran, Jr. while waiting for this unit to arrive. I had a little confusion about the proper procedure for I am a little out of my field messing about with computers completing the povyer supply and collecting it. I had ·docu far more than some school teachers are whose .interest is in mentation for connection of the IMSAI power supply using propagating math instruction, etc. But even my life was not un two alternative transformers and they had shipped a third touched by some of the manifestations of the computerized version of the main power supply. This was corrected quickly society-about four years ago, I made use of the I BM Mag-card enough, and a minor problem with the 1 K memory board Selectric typewriter during a period of heavy work. Ever since, I was quickly corrected when someone pointed out that I had had been struck with the convenience-and high cost-of interchanged a .01 mfd capacitor and a 33 mfd one. Testing mechanized typing. of the front panel board and the cpu board had to wait for More recently, I heard that John Arnold and Dick Whipple arrival and assembly of the mother board and additional were assembling a computer for what appeared to be peanuts, mernqry. compared to the charge gaily levied by IBM for its typing units, When the additional units arrived, everything tested out much less its Mag-card units, and still less than its computers. satisfactorily, except that there wa§ a single. bad LED on the Based on this information, I could hope to install a powerful front panel. I recall that there was an embarrassing pause typing system with greater capabilities than anything that I after this LED was replaced-we thought that the entire could expect to purchase from IBM with available resources, equipment had gone berserk. However, I found that a piece of and at less cost. wire had worked its way behind the front panel, and was Having decided to get into the microcomputing stream, shorting th.e deposit switches. I have had no further problems with the help of John Arnold, I decided to get an IMSAI with the computer, or with any of the parts supplied by rather than Altair because the IMSAI unit with memory was IMSAl-except for the problems involved in learning to speak the same price as the MITS unith without memory. Also, machine language like a native. (Apparently I don't do that MITS' prices for memory were substantially above those yet.) charged by IMSAI. My remaining difficulties in getting the initial system I placed my order for the basic IMSAI unit on into operation have revolved around input and output devices. · January· 22nd. They received this order on the 25th, and the I joined John Arnold and Dick Whipple in the acquisition of unit was actually shipped on February 2nd. I learned more three Burroughs Model 9350-2 communicating typewriters about the units actually available from IMSAI on January 25th, from Herbach & Rademan of Philadelphia. These units were and sent in an additional order on that date. It was not filled correctly advertised as receiving and transmitting a form of until March 1st, when some of the parts were shipped. The ASCII. They appear to be based on the Friden Model 2300 1/0 ports that were included in the second order did not typewriter, a modernized version of the Flexowriter. They are arrive until about March 25th. not. readily convertible to use as a computer input because The serial 1/0 board was delayed by a considerable there is a direct mechanical linkage between the keyboard and re-design of the board, which must have started in January, the keybars of this typewriter. Another thing that I found very and must have concluded at the very end of February. The hard to get used to was that this "typewriter" didn't have a documentation received with the original equipment showed backspace key! There was some additional major maintenance the manner of assembling the SIO 2-2 board, Rev. 1. I re to be done on this equipment. Although it could be induced ceived at least one set of errata with the documentation, and to type, thus far I have been unable to get the typewriter one after I had already got the equipment. Ultimately, IMSAI hooked up to the computer! sent me their SIO 2-2 Rev. 3 board, with all of the changes After making the decision to use a separate keyboard, I built into the board. bought one of the keyboards originally built for RCA that I would like to point out that IMSAI was very prompt have been advertised by Sargeant's in Los Angeles. This key in providing the kit buyers with errata when they discovered board was advertised to be fully ASCII encoded, and it was, something that needed to be fixed. In addition, on certain so far as it went. Unfortunately, this unit had provision for rather complicated modifications, they offered to make the upper and lower case letters, numbers, and punctuation marks, modifications themselves if the kit-builder did not trust him but it did not have any provision for the non-printing control self to fix the unit satisfactorily. They have also been quite · characters so common to computer work. In addition, upon helpful with software for units of the equipment. For in applying power to the keyboard, we discovered that this key stance, with the CRI board .they supp.lied paper tape software board carried a strobe that was valid as long as the key was and a hexadecimal listing. pressed, and used negative logic. That is, the strobe output, In the revised order, I had requested the EXP-22 and all the other outputs supposed to be made true when a mother board. I recall that I could not proceed beyond the key was pressed, went at that point from a voltage of 5.0 to · assembly of the several independent boards during February 0.4 volts. It appeared that it would be necessary to add a
~un_e/July, 1976 Dr. Dobb's Journal of Computer Calisthenics a Orthodontia, Box 310, Menlo Park CA 94025 Page 7 tair number of !C's to the interface between the keyboard and the computer in addition to installing an additional key Bootstrap for 8080 on the keyboard for use as a control key. With all these matters before me I decided to keep the keyboard for future by Lichen Wang modification, and get another for my present use. But I did get a pretty keyboard enclosure from Sargeant! (reprinted with permission from Homebrew Computer Club [ Later] ... I am now in the process of putting that Newsletter) pretty keyboard enclosure and keyboard to good use. It's going to take a certain amount of skill and understanding but one If your 8080 microprocessor system is not equipped with of my purposes in getting into this hobby was to acquire that non-volatile memory, you probably have to reload the memory sort of skill. Thanks to Sargeant's, any way, for providing me from time to time. To read the Intel hex-format paper tape, with an occasion for that sort of acquisition-even if it wasn't you need to key in a loader of some eighty-odd bytes long. This what I exactly expected. is rather tedious and often leads to error. Altair BASIC has a I feel that I should mention the question of IMSAi soft bootstrap loader of twenty or twenty-one bytes long. In princi ware before closing. In the advertisements that they began to ple, you can use this bootstrap to load in your own loader which distribute just after I ordered my I MSAi unit, they stated will then load in your program. I coded one myself, and what that they would ship an assembler, loader, and monitor with comes out is a bootstrap sixteen bytes long. This is still too every unit, together with BASIC and other languages there long-maybe our professional experts can make it shorter. For after. This assembler, etc., turned out to be a re-write of the the time being, you are welcome to copy mine. assembler originally distributed by Processor Technology Corp. The part that you have to key in looks like this: It uses all of a 4K memory, and needs an additional 2K of 0000 DBOO READ IN 0 ;READ AND RAM, if not more. A complete source listing and paper tape 0002 E620 ANI 20H ;MASK THE STATUS BIT of this assembler were enclosed with the unit. IMSAI also 0004 CAOOOO JZ READ ;NOT READY YET provided a listing and paper tape of software for their Cas 0007 DBOl IN 1 ;READY, READ IN A sette Recorder Interface board. On March 20th, IMSAI wrote FRAME all of their customers, stating that they were now ready to 0009 010900 HERE LXI B,HERE ;LATER BECOMES INX B, deliver their 4K BASiC, and expected to be ready to deliver STAX B, CPI the 8K and 12K BASIC languages on April 15, and May 15, oooc 02 STAXB ;LATER BECOMES FF respectively. The 4K BASIC was shipped at the end of March. OOOD C30000 JMP READ ;LATER BECOMES JNZ I was ultimately charged $4.00 for their cost of duplicc.tion of READ the paper tape, and an additional $10.00 for a 70-page source And the paper tape should have the binary equivalent of the code listing of the IMSAI BASIC. IMSAi had apparently hex numbers shown below: enclosed it 'by mistake.' IMSAl's price for its 4K BASIC thus amounts to $14. 01 01 ... 01 03 02 FE FF C2 00 00 XX XX ..... XX XX FF In addition, IMSAI will sell the 8K and 12K BASICs for $1 <·leader -> <-bootstrapping -> <-your loader ->marker per kilobyte of memory required. The source code listing for Where your loader is punched in binary format on the paper these two extended BASICs will again be $2.50 per kilobyte. tape between the 00 and the FF is denoted by XX XX ..... Compared to the longwinded philosophical discussions that one XX XX. Your loader cannot have any byte with the value FF. hears from MITS from time to time, this is probably a great The marker FF tells the bootstrap to start your loader, starting bargain, notwithstanding thct the IMSAI BASIC may not be at lOH. After the FF, the paper tape is read by your loader. Use quite as powerful ~s the MITS 4K BASIC. whatever format you want. After acknowledging the assistance of my friends in If your loader cannot be loaded at lOH, then you will have checking out the IMSAI 8080, I conclude that this equipment to write another loader which can be loaded at 1OH. Use it to is a well-designed, sturdy unit easily capable of expansion to load in your first loader to load in your program. This sounds the full limits of addressable. memory. IMSAI has acted in a very confusing, but that is how bootstrap works. Have you very businesslike fashion, and has tried to be genuinely helpful ever tried to get yourself off the ground by pulling your within the limits that are proper to a business organization. bootstrap? , IMSAI recently raised the price of the basic equipment, with Incidentally, the I/O ports at locations 1 and 8, the status out memory, to $599. Certain persons of my acquaintance bit mask at 3, and the jump condition at 4 may have to be griped very strongly at IMSAl's action. I consider that in view changed for different I/O interface board. Your loader should of the high quality of the merchandise, the IMSAI equipment copy them from the bootstrap rather than setting them up on is worth this premium price to the individual who has never their own. (Or, you can code your loader to change location 9 attempted to build an electronics kit before. Anyone who to RET, and use READ as your input routine.) This way the considers the IMSAI not worth the price, should consider same paper tape can be used on different machines. To carry whether he or she could duplicate the system with available this one step further, your program should, in turn, copy them resources. If he could match the high quality provided by from your loader, so that it too can work on different IMSAI, could he deliver the goods to others, at the price? If machines. so, why isn't he in there competing? Yours very truly, HIGH SCHOOL CLUB IN CHICAGO S.A. Cochran, Jr. Box 607 The University of Chicago Laboratory High School (1362 Attorney at Law Tyler TX 75701 E. 59 St., Chicago IL 60637) has started a computer club.
Dr. Dobb's Jmnnal of Computer Calisthenics & Orthodontia:, Box 310, Menlo Park CA 94025 June/Juijy, 1976 BYTE SAVING PROGRAMMING TRICKS FOR THE 8080
by Tom Pittman stitutions): (reprinted with permission from Hom'ebrew Computer Qub Newsletter) ADI OFFH C=O if and only if A=OO SUI 1 C=1 if and only if A=OO These are some programming tricks I have accumu lated over the years which can often save a byte or two It is easy to get the sign of A into the Carry (any in 8080 programs. Because of the peculiarities in the left shift will do); to get the complement of the sign is a little trickier. This instruction leaves the contents of A instruction sets, only a few of these also apply ~o 6800 programs and are so noted. Many of these tricks are unchanged, and also works for the 8080: widespread lore; some I have never seen elsewhere. I hope they can help you as well. CPIBOH Complement bit 7 to Carry For 2's complement signed arithmetic, it is some Finally, how do you pack a byte with some bits times necessary to add a signed 1-byte number to a from A and some bits from B? The Univac 1108 has a larger format. There are also other reasons for s~read special instruction called Masked Load Upper which ing a single bit (in the Carry FF) to a whole byte (1n A). does this. The 8080 (and also the 6800-but only when I found this one in the Scelbi book: the second byte is in memory) can do this in three in structions! Assume that the data in A and B (or any SBBA Copy carry to all bits in A other register or memory location) are already in ~he correct bit positions. The mask represents a byte with The 8080 does not have a proper shift instruction the ones where the data in A is to be substituted; the which fills the vacated bits with zeroes. Normally, a non-data bits of A and B may contain garbage, as they CLC must precede the RAR instruction. However, for are ignored: left shifts: XRAB XOR B to A data bits ADD Shift with zero insert AN/ Mask Delete A garbage XRAB Insert B data To insert a single bit (in the Carry) into the left or right end of the A without altering the other seven bits: The theory behind this trick lies in the fact that RAL Remove old left bit the XOR operation may be considered a "selective RRC Insert new from Carry complement" instruction. In other words, where there are ones in B the bits in A are complemented, and where there are ones in B the bits in A are unchanged. The right-end version is symmetrical. To divide a The AND operation, on the other hand, may be thought signed (2's complement) number in half, it is necessary of as selectively setting bits to zero in A, where the to keep the sign bit (bit 7) unchanged while shifting A zeroes in the mask set bits in A to zero and ones in the right. The 8080 does not have an instruction for this, mask leave the bits in A unchanged. Assume for the but the RAR may be used if the Carry can bet set up moment that the mask is al I ones; the other two instruc to match the sign bit: tions exactly cancel each other, leaving A unchang~d, since the ones in B complemented the corresponding RLC Copy bit 7 to Carry bits in A the first time and recomplemented the same RRC Restore A bits (back to their original states) the second time. Thus ones in the mask retain the original bits in A. Now con The 6800 has a single instruction for signed right sider zeroes in the mask: here the corresponding bits of shifts, but no circular rotate. To copy a sign into the A are cleared to zero by the AND operation so that the Carry: first XOR has no effect; the second XOR simply com plements those zeroes in A whi~h corre~pond t<;> ones ASRA (6800) Duplicate bit 7 in B, which is to say that it copies the bits of B into A ROLA Restore A with bit 7 in Carry (remember A was cleared to zeroes by the AND opera tion). Thus zeroes in the mask copy in bits from B. Some of these other tricks with the Carry become Since each bit operates independently, there is no re more useful if the Carry can be set on the basis of the quirement that the selected bits o! A or B be conti~ other conditions. A zero in A may be converted into uous. Note also that no other registers or memory 1s either a one or a zero in the Carry (so that non-zero is required for this procedure, and that B is unchanged. I the reverse) by one of the following instructions (this realize this operation looks suspicious, so I have includ also works in the 6800 with appropriate opcode sub- ed the following truth table:
June/July, ~976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Page 9 a: a: FIGURE 1 ~ 0 Cl) 0 c <( a:i <( >< 2 >< Byte Packing Truth Table .... <( "'C ~ c ..."' N 0 0 0 0 0 0 =B 0 0 1 0 0 0 =A DO THE OPCODE• OPPERAND• AND COMMENT 0 1 0 1 0 1 =B MULT.IPl:.E BLANKS BECOME SINGLE BLANKS 0 1 1 1 1 0 =A 0061- liF POC1 MOV C.A 0062 CD0938 CALL co 1 0 0 1 0 0 =B 006S CDBIOO POCl: CALL CRCHK 1 0 1 1 1 1 =A 0068 FE20 CPI 006A CA6SOO JZ POCI 1 1 0 0 0 1 =B 006D FE3B CPI .• J. 006F CA4400 JZ FCI 1 1 1 0 0 1 =A 0072 4F POC2: MOV C.A 0073. CD0938 ·CALL co 0076 CDBIOO P'F!OCESSOR TECHNOLOGY REFORMATOR CALL C'F!CHK 0079 FE20 CPI 007B C27200 JNZ POC2 THIS PROGRAM TAKES BOBO ASSEMBLY 007E C36100 JMP SOIJRCE PROGRAMS WRITTEN ON INTEL'S POC lNTELLEC 6 !JHICH HAVE COLONS AFTE'F! LABELS, CONTROL-I'S FOR TABS, AND SEMICOLONS TO DENOTE COMMENTS. J READ A CHA'F!ACTER, MASK OFF PARITY. J IF ITS .A CARRIAGE RETURN, THEN J DO THE END OF LINE. THING· CONVERT CONT'F!OL-l'S TO BLANKS. IT CONVERTS THEM TO PROCESSOR REPRODUCE LEADE'F!. . TECHNOLOGY'S FO'F!MAT WITH LINE NUMBERS, '*' TO DENOTE COMMENTS, 0081 CD0638 CRCHK• AND NO SEMICOLONS AFTER LABELS· CALL RI JGET THE CHARACTER 0084 E67F ANI 7FH JMASK PARITY 0086 FEDD CPI CR 0088 CA9500 JZ CRCI J ITS THE END THE READER MUST BE UNDER PROGRAM CONTROL. 008B B7 THAT IS IT MUST BE STOPPED AFTER EACH ORA A CHARACTER IS, READ IN. 008C CA9900 JZ CRC2 JREPRODUCE.LEADERll 008F FE09 CPI 09H JCONTROL-1 IS A TAB 0091 co RNZ JNOT CONTROL-I THIS RUNS ON THE INTELEC/8 0092 3E20 !fV I A.' . IT STARTS AT LOCATION !OH 0094 C9 RET JREPLACE WITH ' . AND USES THE INTEL MONITOR 0095 El CRCI: POP H IFORGET RETURN FOR 110 0096 C3AAOO JMP NL I NE JGO TO END OF LINE 0099 4F' CRC21 HOV C.A 0000 CR EQU OOH 009A CD0938 CALL co JOU'!"PUT LEADE'F! OOOA LF EQU OAH 009D C38100 JMP 'CltCHK 3B06 RI EQU 3B06H JREADE'l .INPUT 3B09 co EQU 3B09H JCONSOLE OUTPUT PRINT OUT CCH.L>> AS AN ASCII DECIMAL DIGIT• 0000 ORG IOH OOAO 23 DPRT: INX H OOAI 4E HOV C.M 0010 310001 START: LXI SP. 01 oo·H OOA2 CD0938 CALL co ; INITILIZE STACK OOA5 C9 RET 0013 CDBIOO CALL CRCHK J INPUT A CHARACTER J OOA6 30303030 DNUM: DB '0000' PRI~T OUT 4 ASCII DECIMAL DIGITS ; 0016 FS MDEC: PUSH PSW 0017 21A900 J TERMINATE A LINE WITH A LXI H,DNUM+3 J OOIA 7E MDI: MOU A,M CARRIAGE-RETURN, LINE-FEED OOIB 3C J AND GO PRINT THE NEXT LINE NUMBER· IN'! A J OOIC FE3A CPI '9'+1 JTOO BIG? OOAA OEOD OOIE C22700 NLINE1 MV'I c.cR JNZ MD2 OOAC CD0938 CALL 0021 3630 MUI co M,, '0' OOAF OEOA MUI C.LF 0023 28 DCX H JOO THE NEXT DIGIT OOBI CD0938 0024 C31AOO JMP CALL co MDI 0084 CDBIOO NL21 CALL C'F!CHK 0027 77 MD2: MOU M,A 0087 FEOA 0028 21ASOO CPI LF LXI H.DNUM-1 OOB9 CAB400 JZ 0028 CDAOOO CALL NL2 DPRT ·ooBc C31600 JMP MDEC 002E CDAOOO CALL DPRT 0031 CDAOOO CALL DPRT 0034 CDAOOO CALL DPRT 0000 END 0037 OE20 MVI c,• 0039 CD0938 CALL. co P• FlR5T COLUMN, CHECK FOR A LABEL 003C Fl FFCHK: POP PSW 003D FE3B CPI 'J' JCOMMENT? 003F C24EOO JNZ LBCHK 0042 OE2A MVI c., '*' 0044 CD0938 FCI: CALL co JPROCESS A COMMENT 0047 CD8100 CALL CRCHK 004A 4F HOV C.A 0048 C34400 JMP FCI LISTING PRODUCED COURTESY OF COMMUNITY COMPUTER CENTER. . 1919 Menalto., MENLO PARK· (41.5) 326-4444
CHECK FOR A LABE.IJ\ THEY. HAVE COMPUTER GAME~ FOR KIDS• BIRTHDAY PARTIES. TIME ON A PDP II AND PSP 004E FE20 LBCHK1 CPI 0050 CA6100 JZ POC JNO 1-AB.EL 0053 4F LBCl1 MOV. C,A TIME ON A PDP/II AND PDP/8, AND WILL REPRODUCE PAPER OOS4 CD0938 CALL CO TAPES••••• 0057 CD8100 CALL CRCHK OOSA FE3A CPI '1' JDELETE '<' 005C C25300 JNZ LBC I JLOOP TO Pl'tlNT 005F 3E20 MVI A,' '· J' ' SEPARTES LABEL AND OP-C(lnE Page 10 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 June/July, 1976 AN EXERCISE FOR NOVICE a transition table to evaluate an arithmetic expression. There TRANSLATOR IMPLEMENTORS are 2 stacks: a transition stack, T, and an execution stack, E (arrays "T" and "E"). The program reads the expression once An Arithmetic Expression Evaluator, Coded in BASIC from left to right and takes various actions as directed by reference to the Transition Table (array "D"). As the expres by Bill Thompson sion is read, if the new symbol is an identifier (name of a variable, its value is pushed on stack E. If the new symbol is Greetings: April, 26, 1976 an operator: 16 ( + - * I ) then the program goes to the I have been studying compilers, interpreters and the like, transition table for instructions. It does this by comparing the and thought that some of the methods that I have used to current symbol with the top one on the translator stack (T). gain a proper acquiantance with such a complicated subject might aid other uninitiated persons. INSTRUCTIONS: As such, having access to an HP9830 (programmable 1. Push the current operator on translator stack T, and calculator-programs in BASIC) I have constructed in BASIC, continue reading. an expression evaluator-sort of an interpreter. Since it is in 2. Perform an operation, push the current symbol on T, BASIC, instead of assembly, the flow is a bit more obvious. continue. Thanks and take care, 3. Pop Stack T, continue (deletes parenthesis). Bill Thompson 614 - 35 St 4. Perform an operation. Pop T, then repeat the table Evans CO 80620 look-up with the current symbol and the new top of T. 5. Error: missing right parenthesis. Following is a program and sample run of a simple 6. Error: missing left parenthesis. 7. End-evaluation complete. expression evaluator, written in BASIC. The program uses a transition table to "crunch" an expression. I have restrained Notes: myself from numerous embellishments which have occurred to A "stack" is a last-in-first-out data vector. me as I worked on the program-had I started on that route All operations are performed on the top two members of the expression Stack, E. I would soon have succeeded in writing a BASIC interpreter All operations performed use the top of the T stack. in BASIC! Nevertheless, I do suggest that the beginner who All expressions must be followed by a blank. wishes to learn enough to write a compiler or an interpreter A blank is denoted in the table by "Vl'. will find it particularly helpful to write this routine in Values are assigned by expressions of the form: assembler code. If you have access to a version of BASIC with 'LET E=5'. strings, add some of those embellishments I left out, such as Reference: Translation of Computer Languages by Wein program storage, exponential functions, and assigning an garten, 1973, Holden-Day, Inc., ISBN 0-8162-9423-2. (Warn expression to a variable. All of these will get you into the ing: the reference though good, contains errors in diagrams, program, and hopefully into your own language. etc.)
A TRANSITION TABLE EVALUATOR 10 DI~ AS[80J,BS[10l,CS[26J,C[26l,TfBOJ,E[BOJ,D(6,71 FOR ARITHMETIC EXPRESSIONS (IN BASIC) 20 HEM This program illustrated the use of stack techniques and 30 HE.I\ SET UP THE TRANSITION TABLE 40 HE1~ 50 FOH I=I TO 6 60 ~OH J=I TO 7 Current Symbol 70 HEAD D[I,JJ 80 NEXT J 16 + * I 90 NEXT I (blank) 100 DATA 7,1,1,1,1,1,? 110 OATA 5,1,1 ,1,1,1,3 120 DATA 4, 1,2,2, I, 1,4 I 30 DATA 4, I , 2, 2, I , I , 4 t .,i 7 6 140 DATA 4,1,4,4,1,1,4 0 I 50 DATA 4, 1 , 4, 4, 1 , 1 , 4 p 5 3 160 Frrn I=l TO 26 170 C [I J=O 180 :°"EXT I 0 + 4 2 2 4 190 FOR I=I TO 80 f 200TrIJ=I 4 2 2 4 210 E[IJ=O 220 NEXT I s 230 BS=" ( +-*/) '' t * 4 4 4 4 240 CS="Al:3CDEFGHIJKLMNOPQHSTUVWXYZ 11 a 250 DISP "INPUT EXPRESSION"; 260 INPUT AS c I 4 4 4 4 270 IF AS [I ,31# 11 LET" THEN 300 k 280 GOSUB 380 290 GOTO 250 300 K=I T 310 L=POS June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Page 1.1 350 GOSUB 530 11 '.50 iffTUHN 360 K=K+l 1160 E[ll=E[2l*E[IJ 370 GOTO 31 0 11 10 c;oSlJfl 1270 380 A=POSCCS,AS[5,5ll 1180 ,~ ETlJf?tJ 390 N=POSCAS,"=") 11\10 E[ll=E[2l/E[IJ 400 C[MJ=VALCASUJ+l l> 12'.)0 GOSUB 1270 410 PRINT"* 11 1CS[1A,t0!"=1'1C[MJ; 11 *" I 2 I 0 fl ETll fl~! 420 RETUflN 1220 f-IE'A T!IIS flll!ITINE POPS STACK T 4 30 ~= POS CC S , As [ K, K l ) 1230 FOfl l=l TO 79 440 IF M=O THEN 500 1240 T[!l=TfI+l J 450 FOH . I=80 TO 2 STEP - I 1250 NEXT I 460 EC I J=EC I-1 J 1260 i-lETUHN 4 70 NEXT I 1270 flE,v\ TllIS f.IOUTINE SHIFTS STACK E 480 EC I l=CC Ml 1280 Fm~ !=2 TO 79 490 rlETIJilN 1290 E[ Il=EC 1+1 l 500 GOSUB 1320 I 300 ~~EXT I 510 PHINT "INVALID SYMBOL" 131 0 RETUi-li~ 520 GOTO 190 I .120 1-'1? INT As 530 GOTO DCTCIJ,LJ OF 540,590,650,7!0,770,B30,B90 1330 1-'H!NT TABCK-l)1••~;o 540 REM I .340 r'fl INT 550 r1E.<1 rnsrnucT ION I 350 ii!:OTU fl!J 560 rlEM 570 GOSUd 990 RUN 580 RETURN INPUT EXPRESSION?LET A=5 590 i1E1'A 600 rlEM INSTRUCTION TI * A= 5 610 ilEll INPUT EXPRESSION?LET Z=6 620 GOSUl:l I 050 630 GOSUB 990 * Z= 6 640 rlETURN INPUT EXPRESSION?LET D=4 650 rlE1A * D= 4 660 rlElvl INSTRUCTION I II 670 rlEM INPUT EXPRESSION?LET X=3.25 680 GOSUB I 220 * X= ·3.25 690 i?ETUHN 700 rlE.11 INPUT EXPRESSION?LET P=3.14159 710 REii INSTrlUCTION IV * P= 3.14159 720 REI~ 130 GOSUB 1050 7 40 GOSUB I 220 INPUT EXPRESSION? A *A 750 GoSUB 530 A*A = 760 rlETUf.IN 770 f.IEiA * 25 * ·mo tlEM INSTRUCTION v 190 REM 800 GOSUB 1320 * STOP * dlO PHINT "MISSING HIGHT PAHENTHESIS" INPUT EXPRESSION?A/Z*P 820 GOTO I 90 NZ*P d30 rlEl'A 840 rlEM INSTRUCTION VI t 850 rlE'A 860 GOSUB 1320 870 PHINT "MISSING LEFT PARENTHESIS" INVALID SYMBOL (missing ~. that is, missing terminating blank) 880 GOTO I 90 INPUT EXPRESSION? A/Z*P 890 RE.vi 900 REM INSTRUCT roq VII A/Z*P = 910 RE\l * 0.265258463 * 920 PRINT AS!" =" 9 30 p fl I NT II* .. IE [ I 11 " *" 940 PR INT * STOP * 950 PRINT "* STOP *" INPUT EXPRESSION?(A *Z)+ D*X 960 ECIJ=O Y70 GOTO 250 (A*Z)+D*X = 980 END * 43 * 990 RE\I THIS ROUTINE A!lDS A SYMB:JL TO STACK T I 000 t'"OR 1=80 To 2 STEP - I I 0 I 0 TC I J =TC I- I J * STOP * I 020 ;JEXT I INPUT EXPRESSION?( (A-Z)/(X*Z)+P 1030 TC 1 l=L I 040 flETUi Page 12 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, 11/lenlo Park CA 94025 June/July, 1976, A Classy 8080 Text ·Editor by F. J. Greeb Discs and controllers. A 16-bit system. High speed printer and 1915 S. Cape Way, Denver CO 80227 controller. And on and on and on • . . (303) .986-6651 PLANNED APPLICATIONS-Indefinite. I designed and May 6, 1976 [received at PCC June 21st] built the system to learn more about the hardware. That pur pose was accomplished: I did learn a lot. As for what I do Hello People, May 12, 1976 Enclosed is a description and source listing of my test editor with it, only time will tell. program, along with some comments on conversion of the p~ogram -to other 8080 systems. This material is being submitted approxunately THE EDITOR simultaneously to both the Denver Amateur Computer Society News letter and to Dr. Dobb's Journal for publication as either (or both} The text editor program is a strong/line oriented pro orga,;ization sees fit. As far as I know, all the bugs have been re gram written in 8080 assembly language. The program is de moved from the program. I have been using an earlier version, which is .signed for use in the development of source programs to be essentially the same except for the variable storage locations and tele- processed by an assembler or compiler, or for general p~rpose type routines, for several months. . I am also including a current description of my system, which ASCII file generation. 29 separate commands are recognized by will probably be out of date by the time you receive this, since I the program - keep changing it, and ~ome other general comments. The editor does not require line numbers to be present Keep up the good work. in the ASCII file. It has the capability to search for and lo Fred J. Greeb .cate any string of valid ASCII characters in the file, irrespec tive of their location within a line. Lines can be added, de GENERAL COMMENTS 5-12-76 leted, replaced, modified, or printed with simple input co!1' TEXT EDITOR SOURCE LISTING-The listing is not mands. Once initialized, the program contains self protection generated directly by the 8080 assembler. It is the result of features so that it cannot overwrite itself. playing the source tape generated by the assembler into a HARDWARE REQUIREMENTS-The program occupies system which has a high speed printer. The. playback timing is approximately 2.5K words of memory, plus memory space for not perfect and some errors do occur. All known errors have the file being edited. An additional 128 words of memory are been corr:ected, but consider this factor as a potential source used for the 8080 stack. Peripherals supported are a TV-Type of errors when implementing the program on another system. writer, Baudot teletype (output only), and a cassette tape. TEXT EDITOR PROGRAM-The program has not been Several of the driver routines for the peripherals are contained optimized for either memory utilization or speed. The original in the system monitor ROM, and must be supplied externally design goal was to use less than 4K, for compatability with for conversion to other 8080 systems. the assembler. The first version used about 2K, and therefore COMMAND FORMAT AND DESCRIPTION-All com no size reduction was attempted. . mands to the editor are input as ASCII data terminated by a Most commands execute with no noticeable delay. A carriage return. The only non-printing ASCII characters recog long string search or deletion · of many lines will cause a few nized by the program are carriage return (C/R, octal 15), end seconds' ause. of file (EOF, octal 1), and Tab (Control T, octal 24). The DESIRABLE .HIGH LEVEL LANGUAGE FEATURES program outputs a greater-than symbol, >, as a prompt indi (personal preference)-Efficient utilization of memory, possibly cating that it is waiting for a command to be input. by converting source code to opcode (binary) .equivalents, The commands recognized may be classified into three rather than storing source code directly. This conversion general categories: Initialization, Edit, and Utility. All com could be accomplished at load time, or by a separate pro mands must be followed by a space and/or terminated by a gram (a C?ompiler?). C/R. Additional parameters associated with a command (nu User definable 1/0 handling, including multiple 1/0 ports. merical or string data) must be separated from the command by Considering the price of PROM's, I suspect most 1/0 routines one or more spaces. will end up in PROM sooner or later, with everyone using Initialization Commands-The initialization commands different techniques and addresses. set the file start address and define the end of file. All ini External subroutine call capability, including variable tialization commands request the file starting address, which transfer capability. must be input from the keyboard. User definable integer and floating point variable The initialization commands and their results are: capability. NEWF Defines a new file location starting at the input ad Several others I can't think of off the top of my head, dress, and enters the input mode. and will undoubtedly remember after I mail this. EDIT Edit an existing file at the input address. Outputs the SUPPLIERS-Excellent: James Electronics, Bill Godbout first line or page of the file, as specified by the out (2 week service on custom-programmed PROM's). rillajor sup plier gripe: refund credit slips rather than cash refund on out put mode. of·stock items. These have a habit of getting lost when re LOAD Loads a file from tape, beginning at the starting ad dress. Loading begins wieh a C/R is input following turned for a cash refund. I don't know how the two men tioned suppliers handle this problem. Out of numerous orders the address input to_ allow time for manual tape setup. for a variety of merchandise, they have never been out-of Edit Commands-The edit commands are used to display stock on any item. Poor suppliers: why bother to mention-. and/or edit lines within the file. All edit commands operate them-most have already received an abundance of criticism. on, or with resp~ct to, the current line. In most cases, the WANT LIST-High level language. Floating point arith· current line is defined as the last line displayed on the TVT rnetic and 1/0 routines. Floating point arithmetic hardware screen. The program utilizes a line pointer which always con and/or schematics. Scope driver software using D/A converters. tains the starting address of the current line. This address Games. Cheap paper tape reader. changes as different lines within the file are accessed. DREAM LIST-Cassette tape controllers, hardware and In the following descriptions, a string is defined as any ~ software. High speed CRT terminal, 72 column line minimum. sequence, of any length, of valid ASCII characters. Parameters June/July, 1976 Dr. Oobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Page 13 contained within parentheses are optional parameters which line in the file (or move M lines) and dis may be included in the command line. Only the parameters, play the new current line. M may be pos and not the parentheses, are included if the optional itive or negative (max. range = ± 255). parameters are used. p (M) Print the current line (or M lines). The last line printed becomes the new current A String Append the string to the end of the current lines. line and display the result. PAGE List one page ( 15 lines), beginning with BOTM Set the current line pointer to the end of the current line. The current line is un file. changed. C %string1%string2 Find the first occurence of string1 in the R string Replace the current line with the input current line and change it to string2. The string and display the result. two string lengths need not be equal, and T Set the current line pointer to the top of the second string can be null (i.e., a C/R the file and display the first line or page following the second delimiter). The de of the file. limiters (%) may be any printing ASCII character. Utility Commands-The utility commands allow display D (M) Delete the current line (or M lines begin ing of the various pointers used by the program; specifying ning with the current line) from the file. parameters to the program; and outputting files to tape. All The file is moved in memory so that no addresses output by these commands are displayed in split empty space exists in the file. M is input octal, low order address first, followed by the high order ad as a decimal number, maximum value dress. The utility commands interface with the TVT only, and = 255. do not putput to the TTY. F string Find and display the first line in the file The utility commands recognized, and the functions they which begins with the string. The search perform, are: begins with the line following the current CLRS Clear TVT screen line and continues until a match is found DISP Displays current line pointer. This command is or the EOF is reached. The found line useful for the INSM command to determine the becomes the current line. starting address of the lines to be inserted. I string 1.nsert the string as a new line following DEOF Display end of file address. the current line. The file is moved up in DISM Display current setting of maximum memory memory to make space for the new line. size. If no string is included, or if only a C/R SETM Set maximum meory address. This value is pre is input as a command, the editor enters set to 7.5K for use in an 8K system, leaving the continuous input mode. In this mode, .5K free for later additions to a large file. This multiple lines may be entered in the file command requests an address input. by typing in each line followed by a C/R. MODEL Sets the output to the line (L) or page (P) Exit from the continuous input mode is p mode. In the line mode, only the current line is accomplished by inputting a null line (C/R displayed following a command. In the page only). When the continuous input mode is moade, 15 lines are displayed. The first line entered, the message INPUT will be dis displayed is the current line. played. Upon exiting this mode, the mes OUTM S Sets the output device to the TVT (S) or tele sage EDIT will be displayed. No prompt is T(C) type (T). The T parameter initializes the TTY issued between multiple input lines, which only (set to Baudot letters mode), and the TC indicates that the editor is in the input parameter also outputs a carriage return/line mode. feed. INSM M Insert M lines from memory following the RUBO X Sets the rubout character to X. X (initialized current line (M = 1 to 255). The file is to ") may be any printing ASCII character. The moved in memory to accomodate the new rubout character erases the previous input char lines. The location (starting address) of the acter in a command line. Multiple rubouts may new lines will be requested and must be be used to erase (back up) multiple characters. input from the keyboard. This command Kill X Sets the kill character to X. X (initialized to ?) is designed for merging together of two may be any printing ASCII character. The kill files, but may also be used to move lines character deletes the entire input line. If the within the same file if the destination is at kill and rubout are set to the same character, a higher memory address than the source. the kill function will take precedence. If this is not the case, only one line at a Q Quit. Exit to monitor. time may be moved correctly within the TAPE Transmitts the entire file to cassette tape. Two file. subcommands are associated with this command LIST List the entire file on the output device and require responses to queries displayed on (TVT or TTY). the TVT. The first TVT output is "REMOVE L string Locate and display the first line in the file TABS?". An input of Y (yes) will cause tabs to which contains the string anywhere within be converted to spaces prior to transmission to the line. The search begins with the line the tape recorder. if N (no) is input, the file following the current line and continues will be taped unmodified. The next output mes until a match is found or the EOF is sage is "FULL OR PARTIAL Fl LE?". If an F reached. The located line becomes the cur- (full) is input, the file is terminated by a double rent line. end of file on the tape. If P (partial) is input, N (M) Move the current line pointer to the next the file is terminated by a single end of file Page 14 Dr. Dobb's Journal of Computer Calistheni June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Page 115 000 265 325 PUSH [:o TO STACK ~ E:X:ECUTE Ci"lMD rg 000 266 35i PCHL €U30 267 105 104 iii i24 EDMS DI~ ·'ED IT·" ED IT MESSAGE 001a 273 215 DE: 8DH MSE: SET ON LAST CHAR en... 000 274 * 8080 TE>ff Er:oITOR ** 000 274 * TAPE OUTPUT COMMAND ROUTINE £100 i00 * TE>ff ED I TOF.: PF.:OGF.:AM 000 274 * 001'1 i00 * l·lF.:ITTEt{ IN 8€H:l0 ASSEME:L'T' LANGUAGE 001a 274 04i 075 001 TPCF~ L:X:I H, TRMS OUTPUT TAE: 000 i00 * "lERS I ot·l 4. APF~ IL 16, 1.976 000 277 3i5 :1.02 002 CALL OUTF.: MESSAGE c 000 i00 * TVT OF~ E:AUDOT TT'T' OUTPUT 000 302 3:1.5 045 004 CALL C•TIN INPUT f;:ESPONSE :"' 000 i00 * USES ROM Mot~ I TOR F.:OUT INES 000 305 053 DC:x: H SET TO CHAF~ ADDFi: ·c 000 i00 0(10 306 1.76 MOV A.M GET RESPONSE 0 * SET INITIAL CONDITIONS 000 307 376 :13:1. CPI ... ,T•··· TEST IF '.'ES CT 000 i00 * 000 311 3:12 322 000 JZ $+6 JUMP IF 'r'ES ~ 000 i00 * 000 i00 06i 200 :,47 ua SF', STAK SET STACK 000 3i4 376 1i6 CPI ·"W TEST IF NO 5' 000 i03 076 077 MVI A, '?·' SET KILL 000 3i6 J:02 020 1302 JNZ l·lHAT EF:ROR IF NOT 'T"ES OF.: NO !:; 000 i05 062 043 0ii STA KI LL CHAF.:ACTER 000 32i 257 :><:RA A CLEAR A REG :::J !!!. 0•30 ii0 076 042 MVI A, ... " ·' SET RUE:OUT 000 322 062 045 01i STA TEMi SET TAE: FLAG 0 000 ii2 062 04 7 (111 STA F.:UE:O CHAF.:ACTER 000 325 04i 01i 010 UH H, EFEF.: OUTPUT FULL OR ..... 000 ii5 257 :":F.:A A . CLEAR A REGISTER 000 330 3i5 i02 002 CALL OUTR PAF.:TIAL MESSAGE C'l 0(1(1 ii6 062 050 011 STA MODE SET TO LINE MODE 000 333 3:1.5 045 004 CALL DTIN INPUT RESPONSE ~ 000 i2i 041 377 03:5 Un H. EDMS OUTPUT ErHT 000 344 3:12 355 000 .JZ STCC• .JUMP IF FULL &' 000 135 3i5 i02 01a2 CALL OUTR MESSAGE 000 347 J:76 12(1 CPI ·'P·' TEST IF PAF.:TI AL S' •300 i4(1 076 076 CMRT W~I A, '>' 000 3~.51 3(12 020 002 JNZ !~HAT EF<:l':OF.: IF t·lOT F OF.: P ~ 01;m i42 315 07i 003 CALL TVTO OUTPUT PF.:OMPT 0013 354 257 ;x:RA A CLEAi': A =· 000 i45 315 045 004 CALL DTIN INPUT COMMAND 000 355 062 067 0ii STCD STA TEMP SET F OR P MODE £l (100 i50 315 i45 006 CALL SCNE: SCAt~ OFF E:LAWO:.S 000 J:60 052 057 0:1:1 L.HLD TOPL GET START ADDF.: Ill' 000 i53 * 000 J:6J: 3:15 207 34:1.. CALL TMDL TI ME DELA'T' TO TAPE 0 ~)00 i53 * INPUT MODE IF COMMAND = C/R 000 366 026 00:1. M'./I D.. i SET TAE: COUNTER ;:i 01a0 153 * 000 37(1 072 045 011 N~';TP LDA TEMi GET TAE: FLAG s 1-:::100 :153 332 074 003 JC INMD JUMP TO INPUT MODE €1€10 3:73 267 Ol':A A SET 81;::18(1 FLAGS g. 000 :156 3:05 SCRH PUSH E: SA'•/E E:.~~C REG ,e:1e:10 J:74 :176 MOV A.M GET DATA FOR OUTPUT a 1zn30 157 €12:1. :1. 7:1 €107 LXI D,CTE:4 COMMAND TAE:LE ADDF.: 000 375 043 IN:x: H I NCF.:EMENT AC•DF~ESS ..fii' 000 162 052 055 0:11 LHLD IPNT COMMAND ADDF.: IN I E:UF (10•3 ::76 J:12 0::::2 001 .JZ TE:OK ,TUMP IF TAE:S STA'T' tu '"100 165 ~:::1..:i.2 €153 J.31.1. SHLD ADDS FOR SEARCH ROUTINE •301 (101 376 024 CPI TAB TEST IF TAE: ~ 00•3 17•3 076 004 mr ~4 4 CHAR COMMANDS 0€11 0£G 3(J2 032 (10:1. .JN:<: TE:OK .JUMP IF NOT TAE: •300 172 062 044 011 STA NCHR FOF.: SEARCH ROUT HlE 0'7J1 006 ~ 000 :175 (106 021 MVI E:.N4CS # OF 4 CHAR CMMDS 00i 006 * CONVERT TAE:S TO SPACES .o * fH30 1.77 3i5 2(14 006 CALL CTSH CALL SEARCH F.:OUTINE 0e:11 •306 * s: 1a01"1 202 * 0•31 0136 :172 MCl\•1 A .• D GET COLUMN COUNTER ~ 0(10 202 * ZERO IF MATCH ..:;:11-31 0€17 326 1306 SUI 6 SUE:TRACT 6 F:EPEATEDL 'T' 0 '"100 202 * 01:31 01i 322 01217 i.zu:::1:t ,TNC :l;:-5 UNTIL OVEF.:FLOW OCCUF.:S .,, 000 2(12 312 222 000 .JZ MTCH .JUMP IF MATCH 001 014 137 MO'./ E .. A #(-) OF SPACES TO E REG !!l 00(1 2(15 076 001 M'./I A, i 1 CHAF: CMr·ms R- / .,,. 001 015 076 04(1 MVI -· SPACE 000 207 062 044 01i STA NCHF.: FOR SEARCH ROUTINE 001 017 3i5 151 34:1. CALL TAPO TO TAPE C'l 01711'.'1 2i2 006 014 MVI E:, N1CS # OF 1 CHAF.: CMl"lDS 001 022 024 INR D INCREMENT COLUMN COUNT :I:> 0130 2i4 3i5 204 006 CALL CTSH SEARCH TAE:LE 001 023 034 It·lR E INCREMENT SPACE COUNT "' 000 217 302 020 002 .mz ~lHAT EF.:ROF.:, NO MATCH 001 024 J:(12 017 001 .mz $:-8 LOOP UNTii,.. SPACES DONE ~ 00€1 222 042 067 0i1 MTCH SHLD TEMP SA'•..1E ADDF.:ESS 0(11 027 J:03 J:70 00(1 JMP N:x:TP GET NEXT CHAFi: 0'1 000 225 072 044 0i1 LDA NCHF.: # OF CHAR IN CMMD 00i 032 315 151 J:4i TE:OK CALL TAPO OUTPUT TO TAPE 000 230 1i7 MO'./ C,A TO C REG 001 035 024 INF.: D I NCF:EMENT COLUMN COUNT ~'100 231 •306 000 MVI E: .. 0 ADD E:C TO HL TO 00i 0::6 376 001 CPI 1 TEST IF EOF 000 233 052 055 011 LHLC> IPNT GET ADDR OF CHAF.: !::10i 040 312 05J: 001 JZ TDON JUMP IF EOF 000 236 0i1 C•AD E: AFTER CMt•JCo 00i 043 3:76 0:15 CPI 13 TEST IF C/R 000 237 042 055 011 SHLD IPNT SET IE:UF PO INTER c... 00i 045 302 J:70 !::1(10 JNZ NXTP NE:X:T CHAR IF NOT C/I': c 000 242 1.76 MO'·i A, M GET NE:X:T CHAF.: 001 050 303 366 ~300 JMP N:X:TP-2 F:ESET COLUMN COUNT ... '+i i 000 243 376 04i CPI TEST IF C.-"R OF.: E:LANK 001 053 006 001 TDON MVI E:, 1 SET FOR EOF OUTPUT !: 000 245 322 020 002 .JNC ~lHAT EF.:F.:OR IF NOT 001 055 072 067 01:1. LC•A TEMP GET F.-"P FLAG ~ 000 250 3i5 i45 006 MTGO CALL SCNE: SCAN OFF E:LANKS 00i 060 267 ORA A SET 8080 FLAGS ... 000 253 042 055 011 SHLD IPNT SET IE:UF PO INTER 001 06i 31,32 066 001 JNZ TPLC JUMP IF FULL FILE 000 256 052 067 01i LHLD TEMP RECALL MATCH ADDF.: 001 064 004 INR E: INCREMENT 8 TO en""' 000 26i 30i POP E: RESTORE E:.S,C 001 065 004 INR E: EOR 000 262 02i i40 000 E:>(CT L:X:I D.CMRT SET RETUl':N ADDRESS 00i 066 i70 TPLC MOil A, E: EOF OF~ EOF.: TO A .:::.._1._1.-,c:-c:· 1-:::u:::11. 1.3 6 7 :3:i5 i5i J:4i CALL TA~J AND TO TAPE 00i 042 06i Oii SHLD PNTF: SET LINE POINTER 2- (10:1 1-:::172 ]:~:::1:: 21-:::13 1-:;:1(:12 JMP DEOF DISPLAY END ADDRESS 00:1 260 303 243 001 JMP NXUP LOOP UNTIL DONE ::l 001. 263 .+; ;:::"' OOi 075 122 11-:::15 :115 1.1. ~~· TF~S DW 'REMOVE TABS? c: OOi iOi i26 i05 041;.~ i24 OOi 263 * EXIT TO PRINT ROUTINE ~ OOi 1J::15 11-:::11 1.t-32 123: l;'.f("? 001 26? * OOi iii 240 [:oE: ··+::mH 001 26? 072 050 0:1:1 NOON LOA MODE MODE FLAG TO A § f10i i12 * 001 266 052 06:1 0.1:1 LHLD PNTF: LOAD LINE POINTEF: en OOi ii2 * NEXT COMMAND ROUTINE 001 27i 267 OF:A A SET 8080 FLAGS rnc1i ii2 * 001 272 1-:::12 1_j.:::1'.:i (1(16 JNZ LIST JUMP TO PAGE C~TPUT 001 ii2 001 002 000 r·t Quantity of leaflets desired ------ MAILING ADDRESS ------Suggestions------CITY------ST ATE------ZIP------Mail to: People's Computer Company, Box 310, Menlo Park CA 94025. ~~~~~~~~~~~~~~~~~~~ ------January, 1976 * Volume 1, Number 1 April, 1976 *Volume 1, Number 4 Editorial: History Repeats Itself ... I Hope ·Jim C. Warren Jr. Tiny BASIC Status Letter · Dennis Allison Scanning the Industry Periodicals: Information derived from the May24th 16-Bit Binary-to-Decimal Conversion Routine · Dennis Allison issue of Electronic News Build Your Own BASIC [reprinted from PCC, Vol. 3, No. 4] • Dennis Feature Articles Allison & others First Word on a Floppy-Disc Operating System: Command Language & Build Your Own BASIC, Revived [reprinted from PCC, Vol. 4, No. 1] · Facilities Similar to DECSYSTEM-10 Dennis Allison & Michael Christoffer Hardware & Software for Speech Synthesis: Detailed discussion of Tech- Design Notes for Tiny BASIC [reprinted from PCC, Vol. 4, No. 21 • Dennis niques & Hardware/Software Trade-offs • Lloyd Rice Allison, Happy Lady, & friends Systems Software Tiny BASIC [reprinted from PCC, Vol. 4, No. 3] ·Dennis Allison, Bernard MINOL-Tiny BASIC with Strings in 1.75K Bytes: An outstanding imple- Greening, Happy Lady, & lots of friends mentation by a high school junior; user & implementation documenta- Extendable Tiny BASIC · John Rible tion, & complete, annotated source code • Erik T. Mueller Corrected Tiny BASIC IL · Bernard Greening System Monitor for 8080-Based Microcomputers: Keyboard control over Tiny BASIC, Extended Version (TBX), Part 1: Example, Command .Set, program loading, examination, modification & execution; user & imple- Loading Instructions, Octal Listing · Dick Whipple & John Arnold mentation details, & annotated program listing • Charlie Pack Letter & Schematics: Using a calculator chip to add mathematical functions to Tiny BASIC - Dr. Robert Suding Data Subscription & information form Reprint privileges Submitting items for publication PCC Bookstore titles February, 1976 * Volume 1, Number 2 TV Dazzler Contest What? Another Computer Hobbyist Magazine? · Editor May, 1976 * Volume 1, Number 5 A Critical Look at BASIC · Dennis Allison Copyright Mania - Jim C. Warren, Jr. Music of a Sort · Steve Dampier 1976 Trenton Computer Festival: a photo essay SCELBAL: a higher level language for 8008/8080 systems: descriptive infer- Tidbits mation - Mark Arnold & Nat Wadsworth 40 Chars/Line Printer for $250 Day Recommends Science Articles Tiny BASIC, Extended (TBX), Part 2: complete implementation documenta- Votrax Makes the Offer: Speech synthesis kit for under $1 K tion, annotated source listing, error corrections, & notes on two relocated Bad Bit Getters: Memory test program • Ray Boaz versions ·Dick Whipple & John Arnold UNIZAP: A modification of the Shooting Stars game: Programmed in 8080 Comp~ters t~at !alk: unlimited English. language voice s'r'.nthesis equipment, Assembler <;:ode . John Shepard available in kit form under $1000 ·Jim Day & the Editor Palo Alto Tiny BASIC: User documentation & complete, annotated source Letters & Notes code • Li-Chen Wang TBX Mods for a SWTP-TVT-2 ·Adolph Stumpf A Note to Members of SCCS Concerning Lou Fields Tiny BASIC Ava~l~ble for the 6800 · Tom Pittman Index to The Computer Hobbyist Byte Swap (class1f1ed ads) Texas Tiny BASIC (TBX) Marries TV-Cassette Operating System (TVCOS) Database Questionnaire, and Subscription Blank Notes The Alpha-Numeric Music System - M. Wright What's a BAMUG? March, 1976 * Volume 1, Number 3 Program Repository & Tape Duplication FacilityJIPDEC Visits PCC Denver Tiny BASIC, including 1-D arrays: user & implementation details, and 10% off IMSAI Products for Journal Readers Chicago Stores source code BASIC Just Won't Cut it [letter] Byte Swap [want ads] A Breakpoint Routine for MOS Technology 6502's How 'Bout Small PASCAL [editor's reply] PCC Bookstore Offerings Keyboard Loader for Octal Code via the TVT-2 Su!Jscription & Information Form Program Repository & Tape Duplication Facility Programming [letters] June/July, 1976 * Volume 1, Number 6 Division remainder & Multiplication overflow APL's Appeal Consumer Comments [9 articles, letters & replies] .Notes to Tiny BASIC Implementers 6800 Tiny BASIC for $5 Software Parser Saves Pain & Another BASIC Ek:lmbout Sigrietics 2650 Tiny BASIC A Bootstrap for the 8080 • Lichen Wang . Tiny BASIC Suggestions & Mark-8 Needs Proposed Functions for Tiny Byte-Saving Programming Tricks for the 8080 • Tom. Pittman Music & Computers BASIC Mods to Dompier's Music Program An Exercise for Novice Translator Implementors ·Bill Thompson A Classy 8080 Text Editor, similar to a PDP-9 Editor: Includes general Computer Process for Rapid Production of Musical Compositions (big ma- comments user documentation & extensively annotated source code • Computer Speech & Computer Sensing chine stuff) Tiny Trek for Mueller's MINOL - Erik Mueller F.J. Greeb It Can Talk ... But, Can It Sing? Touchless Sensing for Under $100 Button, Button Game in 8080 Machine Code ·Ron Santore Bugs & Fixes [letters] Corrections & Improvements Altair Hardware Glitches & Fixes Grammar Glitch in TBX Erro·rs in & Improvements for Texas Tiny .BASIC (TBX) :Charles Skeldon Quik Bits SPHERE-ical Complaint Errata & Additions to Wang's Palo Alto Tiny BASIC ·Lichen Wang 16K BASIC for the 8008 (public domain)Diablo Printers MinErrata for MINOL, plus Tiny Trek ·Erik Mueller Seattle Computer Hobbyists United Monterey Computer Phreaques Video Output . New Jersey Computer Festival Microcomputer APL 48 Lines of 64 Characters on a TV for $499.95 · Video Terminal Tech. Southern California Computer Society 8080 Systems for the Wealthy Future Stuff · 512-Character Video RAM from Canada • Matrox Electronic Systems Variable Character Spacing in Video Displays • Jim Day Where Do We Go From Here? - Public Interest Communications Editor TVT-11 Mods to Get 64 Characters per Line ·David Vallier~ . Our 'Want' List Satellite Homebrew TV Display System with Graphics: ~omplete design ~ 1mpJe· Miscellaneous & Nitty Gritty Stuff mentation details, including complete schematics • Glendon Smith . SignGtics 2650 Kit for Under $200: includes 1 K monitor ROM & 512 $98.50 Graphics Terminal Kit • Southwest Texas Products Corporation Submitting Items for Publication bytes of RAMMiscellaneous Hardware [6 short articles] PCC Bookstore Byte Swap [ads] Random Data Points [17 short articles & notes] June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025' A reference Journal for home computer users from the People's Computer Company- DBQ DDBB'S JOURNAL of COMPUTER CALISTHENICS & ORTHODONTIA 8% x 11 inch magazine format "all meat" content; no display ads published monthly, except July & December Content regularly includes: Complete documentation on systems software Tiny BASIC, interpreters, debuggers, assemblers, compilers, cassette & floppy disc file systems, TV Dazzler software, graphics programs, music programs, etc. User documentation, implementation details, complete annotated source code listings Design notes for build-your-own software Detailed 'blue skying' about practical systems projects for the immediate future - Tiny BASIC was the first such project (proposed, March, 1975; detailed, September, 1975; 5 systems up & running, March, '76) - English language voice synthesis kits - Electronic telephone book Computer music & graphics systems Community memory - Shared mass storage - Biofeedback - & much, much more Reprints of articles & schematics from computer club newsletters (all of 'em) Directories: used equipment sources, users & their equipment, clubs & organizations, etc. Indices: All articles in all major hobbyist publications, & selected articles from other publications Active consumer advocacy for home computer users - Supported by magazine sales-not by ads - No vested interest in good will of manufacturers Published ten times per year, monthly except in July and Decernber.(Volurne 1, Number 1 is January, 1976.) D $1.50 for a single copy: Vol. ___ No. __ _ D $10. per year (10 issues/year), to begin with Vol. ___ No. __ _ D This is a renewal. for foreign subscriptions D add $4. per year for surface mail Dadd $12. per year for air mail Payment must accompany order. We do not invoice for individual subscriptions or single copies. Please make your check or money order payable to People's Computer Company. Thank you. Name ______------·-----·------ Mailing Address ------· ______. ···-· -·-·------ City ------·-- ____ -----·-- State ______Zip Coil<. ______This information may be published in directories and li June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 DR. DOBB'S JOURNAL OF COMPUTER CALISTHENTICS AND ORTHODONTIA is published ten time per year' monthly except in July and December. U.S. Subscriptions: For foreign subscriptions: 0 $1.50 for a single copy: Vol. __, No.__ 0 add $4.00 per year for surface maii, or 0 $3.00 for the first three issues 0 add $12.00 per year for air mail 0 $10.00 per year (IO issues/year): Begin with Vol. __ No. __ Payment must accompany the subscription. We do not invoice for subscriptions or single orders. Send to:.PCC Necessary Information: P.O. Box 310 Menlo Park, Ca. 94025 Name {last name first)------Mailing Address City ______State------Zip Code ------ 0 yes 0 no: This information may be published in directories and lists of individuals interested in computers in non-commercial environments. Optional Information: Equipment that you have or are planning on purchasing; immediately: Make & model ------Manufacturer ------CPU model ______CPU Manufacturer ______. I/ODe~ces ______ Mass storage peripherals ------'------ Primary areas of interest concerning non-commercial and home computers: ------···---- Questions: What would you like to see published in DR. COBB'S JOURNAL? It will help guide us if you will rate tl)ese, 1 to 10 (1 - minimally desire; 10 - super-eager to see) or 0 (would prefer we not waste space publishing it). __ Schematics and acticles from all of the computer club newsletters __ Short news articles directly related to home computers __ Short news articles concerning computers in general, particularly their social implications __ Indices to all articles in all other computer hobby publications ~Indices to selected articles from other computer. electronic, and trade publications _. __ Letters ha~ng technical, critical, or entertaining content __ Classified ads (as opposed to display advertising) __ Suggestions and "blue skying" about what can be done with home computers in the foreseeable future. ~ OVER_,, June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Directories of: __ Users of home computers and their equipment __ Computer clubs __ Computer stores and distributers __Sources of used equipment ___ Manufacturers of computer kits __ Microprocessor and minicomputer manufacturers Source code listings and documentation: For which microprocessors? Nearly full-sized (much less can be published) --Reduced as in recent issues (more difficult to read, but more info included in each issue) What kind of software would you like to see developed and placed in the public domain? Importance Rating Software Description Place 13-cent stamp here DR DOBB'S JOURNAL OF COMPUTER CALISTHENICS & ORTHODONTIA PCC BOX 310 MENLO PARK CA 94025 To use this as a self-mailer: 1. Fold it so this third covers the top third. 2. Place the proper postage, above. 3. if you are subscribing, inseTt your check so that it cro:1Ses a fold. 4. Staple this closed with a single staple, making sure that the staple pierces the check. (Better stm, stick all of this in your own envelope, and mail it to us.I ______Wh,at else would you like to see us publish? Please use another page or ten, if you need them. ______ Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Sox 3Hl, Menlo Park CA 94025 June/July, 1976 006 i53 300 !':NZ [;•ONE IF NOT BLANK 006 3i(1 05£1 ii4 ii0 05i E' 006 i54 043: IN>•: H m:.16 3i4 04•3 ~ 006 i55 042 055 0ii SHLD IF'NT UPDATE F'OHHER ~306 3:1.5 UFLL DS 3 2" 006 i60 3EG: 1.5'-3 006 ,TMF' SCt·lB+ 3 LOOP (106 32(1 (14•3 DB < 006 :163 * (106 3:2i ~ ~ .. 006 :163: * SERF: ROUTINE - STF.:HJG SEAF<:CH 006 ::;:24 2:l5 DB 8DH ta 006 :163 * AT ADDRESS HL & DE. LENGTH IN C (1(16 3:25 * ~ 0(16 1.63 * ZEF~O FLAG SET IF MATCH 006 3:25 * DBCV - CONVERT ASCII NUt1BEF.: TO E:INAR'T' (106 1.63: * 006 3:25 (106 163 032 SERF: LDAX D GET CHAF.: J.306 325 04i 1':1(1'3 mm *C•BC\" LXI H,0 ZERO F'AF:T I AL F:ESUL T 006 i64 276 CMF' M TEST FOF.: MATCH 006 33•3 0i2 C•BCi LDAX B GET NUMBEF<: 0€16 :165 3(10 ~= F~ETUF.:N IF NO MATCH ~1(16 33::1 376 (1:15 CPI i3 TEST FOF: C.-'F.: 006 1.66 043: INX H I NCF.:EMEt~T ADDF.:ESS f.3(16 3.3.3. 3i(1 ~:z C•Ot-JE IF C/F.: 0 006 i67 023 INX D 006 :0'3:4 :124 MO\.' D, H PART I AL F:ESUL T TO [;•E :"' 01)6 :17(1 0i5 [;•CF.: c: DECREMENT CHAR COUNT (106 3:;:::5 :135 MO"." E .. L 0 006 i7i 3€12 :163: 012:16 .JNZ SERF.: LOOP IF NOT ZERO (1(16 3:3:6 051. [;•AD H TIMES 2 g. 0(16 i74 :;:ii F~ET 006 33:7 l'.'J5i [)AD H TIMES 2 ~ 0(16 1.75 * (106 340 •3:0Ci DAD D ADC• ORIGINAL PAF:T RES '- 006 :1.75 * I NAD - I NCF.:EMEr-ns ADDRESS FOF.: CTSH 0(16 C:Ai (15:1 [;•AC• H TIMES 2; TOTAL=TH1ES i0 g 006 :175 :+: 0•36 342 326 i.360 SUI 4:=: SUBTF.:ACT RSC I I B 1 AS 3 0(16 :175 023: WAD IN:": [;• I t·K:F.:EMENT A[;•[;•F.:ESS 006 344 376 •3i2 CF' I i0 TEST FOF.: VAL W # ~ 0(16 :1.76 (1i5 DCF.: c [)ECF.:EMEt-ff CHAR COUNT •306 346 f.377 CMC s. 006 17? :;:02 1. 75 J.306 ,TNZ INAD LOOP UNTIL ZEF.:O 01-36 347 3:32 1-:::12f.3 (11-32 .JC i·JHAT ERF.:OF.: IF NOT 0 TO 9 i]fth ·::-.,3 ·::· 0i4 INF.: c CLEAR ZEF.:O FLAG (106 ]:52 1.3:7 MO\.' E,A NLIMBEF.: TO E b' 006 20? 3ii F.:ET 006 353: (126 01-:::u3 M"."I D .• 0 ZEF.:O D 3 006 204 */ (1(16 355 1':Gi DA[;• D ADD TO RESULT s. 1-306 2 ..34 * CTSH ROUTINE - COMMAND TABLE SEAF.:CH 006 356 003: It·fr: B I t·JCF.:EMENT ADDF.:ESS ~ 0(16 204 * TABLE ADDF.:ESS IN DE. NUMBEF: OF (106 357 3:03 J:J:0 i.;:1(16 .JMP C•CE:i LOOP (") 006 204 * COMMAt·ms IN B J.3(16 3:62 * ~ 006 2€14 * J.)(16 362 * TAB ROUTINE - CONVERTS TABS TO SPACES ~- 1a52 c15J: 011 CTSH LHLD ADDS LOA[) COMMAN[> A[;•DF.: ::r 006 2•34 0•36 3:62 * TAB TO COLUMNS 6, :12, i8. ETC CD 006 2 ..37 (172 (144 0ii LDA t·JCHF: COMt·1mm LENGTH 01-:::16 362 * ~·" 006 2i2 ii7 MO"/ c .. A TO C REGISTER 006 3:62 i70 TBST MOV A.B COLUMN COUNT TO A 006 2i3 31.5 163 (Uj6 CALL SERF.: SEARCH 006 363 326 J.306 SUI 6 SUBTRACT 6 REPEATEDLY go 0 ..36 2:16 3(14 :175 006 Ct.JZ INA[:• INCREMENT IF NO MATCH 006 365 ]:22 3:63 £H36 .JNC :t-5 UNTIL OVERFLOW OCCURS [:• --:··-.C" 1 0 006 22i 03:2 LDA)·•: LOI~ AC•[;•F:ESS 006 37i.::1 ~ . .;:..J PUSH D SR ·lE D.S~E ~ (UJ6 222 :157 MOV L,R TO L REG 0(16 3:7i i27 MOV D.• A SPACE COUNT(-) TO D ::r .-,.-.-:· g_ 006 .:::..:::.~. 023: INX D IrK:F.:EMENT ADDF.: 0(16 372 (176 £14(1 M"/I A,··· SPACE TO A 0 ;a 12:106 224 (132 LDAX D HIC:iH ADDRESS 0(16 374 315 (152 0~f] CALL DTOT OUTPUT SPACE JU' IZU:36 225 i47 MOV H,A TO H F.:EG (106 377 '304 HJR E: I rK:F.:EMENT COLLWlt·l courn (1(16 226 3i(1 RZ F:ETURN IF MATCH 0£17 (100 '324 HW D INCREMENT SPACE COUNT g' (1(16 227 (123 INX D I t·JCF:EMEt.JT ADN<: 0(17 00i 3(12 3:74 (106 .mz :t-8 LOOP UNTIL ZEF.:O )( ..](16 23(1 (1(15 DCR B DECREMENT CMMD COUNT 007 004 32i POP D F:ESTOF:E DS.E w ..306 23:1 3(12 2 ..34 (1(16 JNZ CTSH LOOP IF NOT ZERO 007 (1(15 3ii PET ~ 0(16 234 (104 INR B CLERF: ZEF:O FLAG 007 J.3(16 * .. (1[16 23:5 ::ii RET 1a07 01-36 * OUTM COMMAND - OUTAJT DESTINATION SET $ 0(16 2::::~6 * 007 (106 * "' (106 23:6 * HLIN - ADDRESS INPUT WITH MIN TEST 052 055 i.311 OUTM LHLD IF~T IBUF ~JINTEF.: ADDF.: "i5" 007 006 006 2::::6 * 007 0:1i 176 MOV A,M DESTINATION CHAP ~ 0£16 236 3i5 HG :0'40 HLHJ CALL HL Ir.JPUT A[)[;•F~ESS J2H~17 01.2 376 123: CPI 'S' TEST FOF.: TVT WE WANTED TO INCLUDE MUCH MORE IN THIS ISSUE THAN WE COULD 'AFFORD. PART OF IT WILL JUST HAVE TO WAIT FOR FUTURE ISSUES. THE REST OF IT (ALONG WITH STILL OTHER USEFUL TIDBITS) HAS BEEN PUBLISHED ELSEWHERE: Southwest Texas Products Corp., 219 W. Rhapsody, San Antonio TX 78216, has put out the first issue of their Newsletter, a 49-page, loose-leaf job. We would like to applaud their work and their approach to hobbyist software. This issue of the SWTPC Newsletter contains extensive information on 6800 software, including some "bug" notices and corrections, a list of available 6800 games, some hardware notes and schematics, and complete listings of: A Black Jack game-playing program ( 9 pages, full-size, hex-cocling only) A Memory-Dump program (2 user-documentation pages, 2 pages of unannotated source code) A l.3K Eclitor ( 3 user-documentation pages, 6 pages of unannotated source code) A 3.15K Micro BASIC (5 user-documentation pages, 15 pages of unannotated source code) The Editor was written by Robert Uiterwyk, 4402 Meadowwood Way, Tampa FL 33624. Micro BASIC was done by Uiterwyk and Bill Turner. We have spoken with Mr. Uiterwyk several times (we originally planned to publish Micro BASIC in this issue), and think "his head's in the right place." He and his associates are actively pursuing the production of free and very inexpensive systems softwll're for hobbyists. We would like to praise their efforts and urge them onward. The July issue of People's Computer Company, Box 310, Menlo Park CA. 94025, contains its usual load of exciting items, notably including: Lichen Wang's Star Trek, written for Palo Alto Tiny BASIC [DDJ, Vol. 1, No. 5] (We wanted to publish it in this issue of the Journal but clidn't have room.) . An update of the comprehensive list of computer stores in the May issue of PCC. An update of the list of computer clubs that was given in the preceding issue of PCC. · Ct: 0 1-... 0 II.I ll.X>ll. ozo::::: ·"-'"' ::;:.., m @ l' M N vvl'-m.-IM~M Mm.-!M. Page 26 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 June/July, 1976 48 LINES OF 64 CHARACTERS ON A TV on black or black on white. This leaves 16 control characters Kit Price is $499.95 available for the requirements of the particular software operating system. The VT-4000 video terminal also offers other standard by Video Terminal Technology staff on/off features such as power-on clear, clear to end of line 6108 Elmbridge Dr., San Jose CA 95129 with line feed, scroll up, and scroll down. The scroll up/ down feature allows up to 16K of RAM to be scrolled I've seen this running on a small Sony teevee, and was very im through before any data is lost. After all of the available RAM pressed. The characters were clear and sharp. They bypass the has been scrolled through, the VT-4000 then starts to over RF and amp, and go directly to the tube to avoid character write the previous data. The VT-4000 basic configuration comes smear and obtain higher bandwidth. Screen update was fast. with 4K of RAM, expandable to 16K. The company is small, nm by good people, and I believe they The VT-4000 has been designed to easily interface to will be quite responsive to their customers. -Jim Warren any computer and any video monitor or slightly modified television receiver. The computer i/0 available is ~either RS232 Video Terminal Technology announces a new video com TTL serial, or TTL parallel at any of the standard BAUD ' puter terminal with all the features of a professional terrrinal rates from 110 to 9600. The video monitor input available is at a hobbyist price. The VT-4000 video terminal displays 48 either composit video/sync, separate video and composit sync, lines of 64 characters in a 5x7 font. This provides the capa or separate video, separate horizontal sync, and separate verti bility to display 3076 (3K) characters simultaneously-8 times cal sync. A television receiver may be used as a video monitor the standard tv typewriter's 16 lines of 32 characters. if the following modification is made. Break the signal path The VT-4000 gives the operator complete control over between the IF section and the video section, and insert the his or her display. The keyboard interface card decodes all 32 composit video/sync at this point. However, if a sharper of th:! standard ASCII control functions. These control func display is desired, insert the composit sync at this point and tions are user designated and can be strapped to match any apply the video directly to the cathode of the CRT. Any software operating system. The selected controls can move the questions about this modification will be answered by Video cursor up, down, right, left, and home. Direct cursor address Terminal Technology (VTT). ing uses two control characters to position the cursor anywhere The VT-4000 is available from VTT primarily in kit on the CRT screen. Other control functions can be used to form in any configuration from single boards to 100% com selectively clear the displayed page, clear the entire memory, plete kits. Assembled and tested boards or complete models can or clear the character positions from the present cursor posi be purchased for a standard assembly fee. All such options tion to the end of the line. Two more control characters al carry a six-month parts and labor guarantee. low the operator to display individual characters either white 512 - CHARACTER VIDEO RAM Matrox Electronic Systems (P.O. Box 56, Ahuntsic Syn., Montreal, Quebec, Canada, H3L 3N5, (514) 481-6838] has announced a most interesting widgit: Their MTX-1632 is a single physical component. Its input pins can be directly connected to any M-P bus and appear to be input to a 512x8 RAM. The output, however, is a video signal that directly drives a TV monitor. It displays 16 lines of 32 characters each, interpreting the bytes in its RAM as ASCII character codes. It r\:!quires only a single 5-volt power supply, can drive up to 25 TV monitors, offers character-blink and has an access time under 650 nanoseconds. ' SONOMA COUNTY COMPUTERS HOLD MEETINGS (reprinted with permission from Homebrew Computer Qub Newsletter) The SONOMA COUNTY MICRO COMPUTER CLUB in Northern California is small but powerful. We are a group of several ALTAIR's, an IMSAI, a JOLT, two PDP-8's, an APPLE, and some others on order. We all have people up and running. We meet the first Tuesday in each month at LO*OP CENTER in Cotati. Meeting time is 7:30 p.m. Any interested systems are invited to attend with their operators. BYE BYE BIRDIE LO*OP CENTER Larry Balch photo LO*OP CENTER CLASSIC PDP-8 8099 La Plaza 2366 Mossdale Way, San Jose CA 95133 Cotati CA 94928 June/July, 1976 Dr. Dobb's Journal of Computer Calisthenic.s & Orthodontia; Box :n O, Menlo Park ~A 94025 Page 27 VARIABLE CHARACTER SPACING Figure 1. Typical Dual-Case TVT Alphabet IN VIDEO DISPLAYS 0Qclrb 6!:®®e • ••• ~• by Jim Day ~··"'s .. ..• • ....,. ,. • , HO• • i ••• • • "• •• ••• 17042 Gunther St. rel I>• ..• ..• • • • • • . i"®· ...... •" • • • .. • &&• .... • •HO • Granada Hills CA 91344 "'"' ••• . •g-·.. "(1@08• ••• • •• •• • • • • ...... •900 • Q f!)Gf# ••• :see: • •• Figure 1 shows a typical dual-case TVT alphabet, each : •€!'@961 • • •:•• " . • •.. • : ••• : " @@-\9@1 letter of which is generated via a 7 by 9 dot matrix. If two e-Mell •HO • • • " •••g • • ., • : "undots" (using the terminology of Don Lancaster's TV Type Ho h• • ,. writer Cookbook) are appended following the seventh dot posi • • • '" • • "'i • • .• • " : .s• ".. .. ., • • • tion of each line of each letter, each letter will require 9 dots •0 ~ "• .. <> 3•. : • HO •,..,• ,. • .. of width on the tv screen. The alphabet could be stored in a " .... s • "' • • •••• " ROM, the dot pattern of each letter being represented by 9 • • .... oeoai r. .. ef :•• •• i :Ge: "'90 ••(') .. • • ... bytes. Figure 2 shows 9 bytes representing the letter "A". • • i ~ ,, . . • ••• • • r .. • . . • • . • .• .• Figure 3 shows how the string "even spacing" would be dis • • • • • • i 3 •... . ••• • • •goe • played using this alphabet. Notice how much empty space • .... ltl4!'eo ... OdllP-91!1 • appears on both sides of the letter "i ". This is because each . • . " ou • • • .....• .: : ...... • • •000 .• •• .• . letter is centered left-to-right in the matrix which is 7 dots • .. . • g• • • • •• . : ••• • •••• .,• .• .• .00§ • u• • • •• • wide. . Wouldn't it be an improvement to move the dot pattern • • • • . . • .• .• . . • • • .• • • •• •• • of each letter as far to the left as possible, within the matrix, .• • . • . • • • • . . • •• • . . . • • . • • • • • • • •Q • GH • . • • • • . Glil Ii>® • • . • • 0 and display each letter in a variable-width format? This could .. • • • ~* •~- • .•• • be done conveniently by preceding the first byte of the dot • f'@9!U'. code for each letter (in the ROM) by an extra byte indicating .••• • . .• .. 4'e;ie:o the width of that character. (Or perhaps the unused low-order . • . . •• • .••• • .P0•96 9llil.P96' bits of each code group could be used instead.) Figure 4 shows ••• • the 10 bytes of ROM that would then represent the letter "A". The first byte indicates a width of 5 dots for that let ter. Two undots are understood to follow the rightmost dot of each letter, but are not included in the width value. Fig- ure 5 shows how the string "Variable spacing" would be dis 00111000 00000101 played using this scheme. 01000100 01110000 It can be seen that about 50% more letters can be dis 01000100 10001000 played on one line by use of variable spacing. This format is 01111100 10001000 also easier to read. There are complications, though. Hardware 01000100 11111000 would have to be added to the TVT to latch the width values 01000100 10001000 and adjust the character-generation timing accordingly. More 01000100 over, it would be necessary to keep track of cumulative width 10001000 values in the current line, 1Drontrol line format (e.g., if the 00000000 10001000 Basic TAB function were to be used). But this would be a 00000000 00000000 small price to pay for the benefits obtained. 00000000 Figure 2. Nine bytes Figure 4. representing Ten bytes an "A". including width value. " .... $ • fl"' <11@4> ee @<11@ ;I @ @ lli Ill /§ 18 lli (fl Iii 11!1• EU!f® @ @@ "' Dr. Dobb's Journal of Comput11r Calisthenics Ii Orthodontia, Box 310, Menlo Park CA 94025 J11ne/July, 1976 T T -II Mods to get 64 characters per line by David 0. Valliere with an 18 pF unit to provide for 64 characters/line. Digital Designs We are now addressing through ten lines/page. The cur Box 4241 sor-compare circuitry mLst be modified to provide comparison Victoria TX 77901 of the A9 address bit. This modification will require providing an additional cursor-position count-bit and a comparator. The Dear Editor: May 10, 1976 designer used a 74193 BCD counter to allow preloading the If you are using your TVT-II as a computer I/O you additional cursor bit through a computer cursor position inter may have found the 32 character/line format somewhat limit face. The additional 7 4193 is attached to the carry and borrow ing. By making minor modifications to the TVT-II board you bits of the original cursor counter, IC35, after disconnecting can lengthen the 32 character line to 64 characters/line, and them from the 5th-bit flip-flop, IC27 A. Carry and borrow bits thereby expand your system's capabilities. are generated by the new counter through NANO gates IC4A Here are installation instructions for my 32 to 64 char and IC4B, and are sent to the original 5th-bit flip-flop IC27A. acter/line TVT-II modification board and 2K memory board. The cursor bount bit is tied to pin 15, IC42, on the main The modifications can be made easily by wire wrapping or a board and compared with the A4 address bit. The output of set of boards can be purchased. My TVT-II has been modified the 5th-bit flip-flop IC27A which was originally compared since early October, and I am using a very old tv with no with the A4 address is brought on to the new circuitry and bandpass problems. compared with address A9 by the comparator. The cascaded My board manufacturer is tooled up for manufacturing "=" pulse from IC 42 on the main board is input to the the boards and can guarantee shipment within 3 weeks after comparator. The output "=" pulse is sent to IC41. This pro receiving orders. I also have layouts completed for an upper vides an additional cursor count bit which is compared with case/lowercase auxiliary board for the TVT-II, as well as the address A4. The new A9 address is compared to the old 5th computer-controlled cursor interface. These boards will also be bit flip-flop whose output has become the 6th-bit count. IC42 provided if there is enough interest. and IC41 on the main board and the new comparator pro- Board prices are $5 for the auxiliary board, $12 for the vide the pulse required to position the cursor on the 64 char 2K memory board, and $16 for the set. Shipping is included acter line. in these prices. Texas residents add 5% tax. Please m1 ke An additional six 2102's will be required to store a checks payable to Digital Designs. second page of data. By tying the CE pins of each group of Sincerely yuurs, memories to pins 8 and 9 of the page flip-flop, IC27B, the David 0. Valliere Box 4241 pages will roll over as originally designed. Digital Designs Victoria TX 77901 [Editor's Note: We have omitted eight pages, containing in The TVT-11 memory is continuously being addressed structions for assembly, memroy modifications, 2K memory, through nine address lines to generate the video data used by piggybacking, early TVT-il mods, start-up, and schematics. the teelvision display. The tenth address line (A9) is used to Those interested should write to Digital Designs for complete switch from page one to page two. By using the A9 address details.] line for continuous addressing, the TVT-11 con be modified to display 64 characters/line. Since the additional 512 characters PARTS LIST being displayed are what used to be page two, additional 64 Character Board memory will have to be added to provide storage of a second one 74193 page. one 7485 one 7404 HOW IT WORKS one 7400 The basic design of the TVT-11 make the modifications one 0.10 mfd disc required to make it display 64 characters/line quite simple. one 18 pf IC21 and IC14 on the main TVT-11 board normally count up Wire, 26 Ga. 32 characters and upon reaching the 33rd count, pin 11, IC14 and address AO go high. This disables the "dot clock" 2K Memory Board until the next line is started. Being in the 33rd character posi twelve 2102 memories tion also enables the video blanking circuit through IC12C fourteen 0.10 mfd capacitors and IC5B. The line is blanked until a new line is started. By two 2102 memories (optional) allowing the video generation and the "dot clock" to continue two 15-pin Molex board connectors operating until the 65th character position is reached, 64 The auxiliary board and 2K memory boards are avail characters/line will be counted. This can be done by discon able from Digital Design. Both boards are Milspec with tin/ necting pin 11, IC14 from the video blanking circuit and con lead fused plating and silk-screen component placement. The necting it to address line A9, after having disconnected A9 auxiliary board is single-sided whereas the 2K board is double from the page 1-2 flip-flop. Pin 11, IC14 is also tied to pin sided with plated-through holes. 14, the input of the unused counter is IC14 whose output Shipment within 3 weeks is guaranteed. (pin 12) is then tied to the video blanking circuit. Thus we have effectively added an additional 32 counts to the address CENTRAL OKLAHOMA COMPUTER GROUP lines through pin 12, IC14 and transferred the video blanking The Central Oklahoma Amateur Computing Association (CENO ACA) organized in January. It now has about 30 members. It meets function to the 65th character position. Since the RC oscil the. 2nd Saturday of ·each month at 10 a.m. in the Oklahoma City lator network of the "dot clock," IC188, was originally tuned Warr Acres Branch Library, NW 63d & MacArthur. It has programming for 32 characters/line, capacitor C4 will have to be replaced seminars & workshops in addition to the monthly meetings. For details, contact: Lee Lilly, Box 2213, Norman OK 73069. June/July, 1976 Dr. Cobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Paga 29 HOMEBREW TV DISPLAY WITH GRAPHICS by Glendon Smith Gentlepersons: May 20, 1976 This is a short description of a tv display circuit I use in my Altair 8800. Although I have made only limited use of the graphics capability, it should be useful, as is, for games requiring a playing board. With synchronization as discussed, fast games should be clearer. Others may wish to make changes in the logic design. It was sometimes the result of space limitations. If fast data selectors are used as specified, the memory probably can run vt.ithout wait states. Sincerely, Glendon C. Smith 5822 Daffodil Dayton 0 H 45449 513-435-0214 The tv display described in this report is intended for direct plug-in to the bus of an Altair 8800 or other similar microcomputer. The circuits could be adapted to CPU's other than the 8080. tion to the bus is not synchronized with the blanking for This display differs from the tv typewriter circuit in borders so that an insertion of a character causes the loss of three major areas. 1) The screen refresh memory is connected about two sweep lines (a V11hite or dark band about 1 mm to the bus when it ·is being loaded or altered. 2) The display wide provides notice tha~ a letter was written). This is not can produce 128 characters stored in a Motorola ROM ( 12 annoying to those who have seen the display. For fast games lines of up to 32 characters each) and/or up to 128 graphic it might be advisable to switch the memories back to the bus shapes (8x8 picture elements) stored in RAM (24 lines of 32 during FIELD, and dealy the CPU if these memories are shapes). 3) A crystal-controlled commercial sync generator IC addressed during FIELD. This would slow the display slightly. is used to provide vertical interlace and a jitter-free display. Without synchronization, a software line feed or scroll up Other features include the ability to have the 8th bit in the (moving 384 characters) takes about 10 milliseconds or about byte used to specify a character or a graphic shape, the one-half of a vertical sweep of the .. tv screen. The construction of the prototype of this display was eased by using two commercially available boards (and asso ciated components) which were connected together by hinged bars the length of the connector spacing on my Altair mother board. The memory board (MB-2 from Solid State Music) has its copper traces connecting all 8 of the 2102's comprising a bank (1 K x 8 bits) before connecting the next bank. Before mounting the sockets it is necessary to cut many copper traces between banks. The bank nearest the bus connector will become bank 0 (lowest address). It is not used by the tv display. The next higher bank (bank 1) stores the 128 graphic shapes (8x8 bits each). Bank 2 stores the codes for the graphic shapes (24x32 bytes) and has some space which may be used for subroutines. If the graphic capabilities are not being used all three lower banks may be used as part of main memory. The highest, bank 3, stores up to 1024 characters which may be arranged as 32 lines (only 12 displayed) of 32 characters, or as two pages with enough space left over for routines which write on either page (page 1 has scrolling, cur ability to cause that character or shape to blink or to reverse sor, etc.). The latter system is the one I have used thus far itself, the ability to reverse the entire display by software, the but I can imagine applications such as text editing which m'ight ability to display a boarder, and the capability of having soft use several K of memory for character storage with more ware scrolls, an erasing cursor, or other custom features. elaborate scrolling schemes. As presently implemented, switching from refresh opera- The other board used is a Universal 1/0 Board (10-1) Page 30 Dr. Oobb's Journal of Computer Calisthenics & Orthodontia, Box. 310, Me111lo Park CA 94025 June/July, 1976 produce i::i.c. boards to ease the labor for all concerned. I use the Hitachi P0-3 12" B&W tv. It is easy to inter face, is all solid state with instant on, and is available for about $68. Interface information is available. OUTPUT PORT - CONTROL BYTE FUNCTIONS Port (200 octal in my system) Bit 0 High to display page 2 characters Bit 1 High to blink preselected characters Bit 2 High to blink preselected graphics Bit 3 High to invert (reverse) preselected characters or graphics Bit 4 High to invert (reverse) entire display Bit 5 High to display surround (border) • Bit 6 Low to connect bank 3 (character storage) to bus Bit 7 Low to connect banks 1 and 2 to bus The 8212 output port is cleared by the front panel switch so that the 3 banks of memory can be dumped (or from Solid State Music. It just barely has lll'B8sfsr all the londed) without special instructions in existing programs. circuits for the tv display plus one INPUT PORT for a key board (Clare-Pendar). Eight pieces of 8 or 10 conductor rib SUPPLIERS bon cable handle the interconnections between boards and MB-2, 10-1 boards and kits help in keeping the bits in order. Solid State Music One of the changes to the memory board which is not 2102A Walsh Ave. shown in the diagrams concerns chip enable and R/W inputs Santa Clara CA 95050 to the 2102's. Pin 3 of each bank of 2102's was disconnected MIKOS from pin 11 of 7400 A and now receives its input from one 419 Protofino Dr. of the address selectors as shown. Pin 12 on the 74L42A was San Carlos CA 94070 ungrounded and connected to pin 11 of 7400 A. The out puts of the 74l42A then became R/W signals feeding the 6.13635 MHz, 26C Series Crystal @ $5.50 postpaid address selectors and the pin 13's of the 2102's formerly con International Crystal Mfg. nected here are all connected to ground so the chip outputs 10 N. lee are enabled. Oklahoma City 0 K 73102 Several other points will come up in preparing the Solid ' State Music boards for this use. The designer of the 1/0. Uni The MCM6571C character gen. came from the Digital versal board ran +5 and gnd lines to many positions, expec- Group but I understand that a new version only requires +5 ing you to use 16 or 14pin1C's there. However, he did not volts. The 5320 (National) Sync Generator ($4) came from leave a space between the ends of the 1 C positions as their Solid State Music, as did most of the l.C.'s. length requires, so many of these traces must be cut before sockets are installed. Because the output port (200 octal in my system) does not need an output connector, traces to this is gam{f of 14 pin pad are cut and a 1 C is installed there. On the mem" thinki of a 5 ory board MB-Z, all the data input lines are left intact as are all the address lines from the connector to the nearest 1 K try and word b!:J bank of memory (which will become bank 0). All the data Gl 5 ; word and I outputs are isolated by cutting the traces at appropriate points, n how many I as are the address lines to banks 1, 2, and 3. The chip enable and R/W lines are discussed above. are in the same Other arrangements of the 2K of memory used in the generation of the graphics portion might be useful. For ex ample, a 128x96 display of individually addressable points (each point, however, is 4 times the area of a picture element of the current display and the blinking and reversing possi bilities appear to be out). One might built only the character portion or only the graphic portion (and generate the needed characters). The display described here may stimulate club members to design a special display as a group project and to June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box :no, MenOo Park CA 94025 I0-1 t/.v'""'$l'll .I/o 1-h.ic;td 81-rs Acldre~;S Sd!e:/o,,. D11fA 5!lu-lus -+u M6- 'Z boArd ~ fDMa:'-J.3l ~ &~·wouwwarnrnrnmm c. © lll[f] IT] 0~ (W\ "' "" C.G .('- :; ;::. BA·~rn·oCJz. -~ ' I MCM ~~~ 8 C]ITJ~OUi IC. <:s ~ .~. . """ i"~'I RJ[!] "" "°" • ~ ~1krn...,.\[) [J· []· ~·"' []·"' 65-~· ~c13 bJ<:11 ~ ~ p. c "' iNPt.tT Zeiver- • POR.T 1),';c/e s ff :{~@][!]~ I( IC s ~ k!CTDeD ;:; s ~ :!;: FO~ "i ~E'llHl e:: ~ -c:::=i- --c=:J- Ll~e 8-10 eA 11581; ]C4) IC3 "' 74~S'l1-N O.[ Mtd cf;,'- GSR., CS/?.: 7 + + + + 1~11 BiH +s-., ~ S'iHI 1"\5'B(e) Reier!• p1N ~· OA) ChM. i.S~4 ti\~ 6 S1or<. H.8udft' ~ ~ !(2 Vidw (ehArAcler) (, • ·P J d ·~! .J JI I t. ·I 1/]~T .l~u !_Z. 1.001/lr ..._,-~---_J ~ __ J tr--"\ ii 1~ ~I ~ii '!~ r~ 'Video (GrAt~;.,) BUlN" ~ ~ ~ ~ ~ ~ -"<.->I x y . I,;... I,;'" ICl'I' 1\\S6(G) p, .. ~ I~" ?iEW> "Bi~ s s.lit<. ""Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 P111ge 32 June/July, 1976 $98.50 GRAPHICS TERMINAL KIT By SWTPC 219 W. Rhapsody San Antonio, TX 78216 Southwest Technical's GT-61 Graphics Terminal is a low cost graphics unit designed for hobbyists or budget minded com M mercial applications. The 9 Y," X 13" PC board contains all of M the electronics necessary to display an array of cells 64 wide by "'"" 96 high on a standard video monitor or modified television set. II... The graphics terminal contains its own 6144 bit static memory and thus may be driven by any computer system having a TTL compatible 8 bit parallel interface. The unit is available in kit form only and is sold less power supply, chassis, and monitor for $98.50 ppd. in the US. Delivery is 30 days. <>! Vl u ~.. II. ..2 c :a:"' ...o' M )( 0 11.l .!2 ...c 0 -0 0 s: t'. 0 a1:I .."' c s:..."' •!!? ~"' q;" ...... "Cl. E g () 0 (.J .... t"'~ ...... 0 I~ .. ...c ....0" I:)"' ~ :rn1 ~ I I I ERRORS IN subroutine could be shortened by calling on the other divide & IMPROVEMENTS FOR WHIPPLE'S & ARNOLD'S subroutine. TINY BASIC EXTENDED (TBX) Some error jumps, which should be to message number 14 (memory depletion) go instead to error message number Dear Sirs: April 15, 1976 15, which is not defined. This can be corrected by changing addresses 027121, 030350, 030372, and maybe others, from I have noted some errors and possible improvements 360 to 355. in Arnold's and Whipple's Tiny BASIC Extended (TBX) The IL Instruction at 033211 is: '266 355 "(" .' This [please see Dr. Dobb 's Journal Vol. 1, Nos. 1 & 2] . means that if the next character isn't "(", address 026355 A minor reduction could be made at the entry point will be considered the next Interpretive language (IL) of the main program by eliminating a jump. The end of the instruction. This will bomb out the program, since 026355 is error routine duplicates the initialization, so it could be to be treated as a machine language (ML?) instruction, not shortened. These two routines follow (in split octal): I Lx instruction. The instruction at 033211 could be: INITIALIZATION: ERROR: '233335 "(".' Address 033335 contains a proper instruction, Address Data Comments Address Data Comments '326352,' which will properly execute the machine language in structions starting at 026352. Incidentally, the address 000000 061 LXI SP 026275 041 LXI H should be 026352, which outputs error message number 13, 1 377 d 1 026276 002 d 1 Entry point of parentheses error, rather than 026355, which outputs error 2 000 d2 026277 032 d2 IL program message number 14, memory depletion. The same problem 3 303 JMP 026300 061 LXI SP exists at 032127, 033223, 033241, 033254, 033266, and 4 254 d1 026301 377 d1 033275. 5 021 d2 026302 000 d2 The Random function (RN) should be altered slightly. 021254 041 LXI H 026303 303 JMP The random number returned is 16 bits. However, the RN 021255 002 d1 Entry point 026304 257 d1 to IL only shifts in 8 new bits each time it is called. Therefore, the 021256 032 d2 of IL progrm 026305 021 d2 interpreter upper 8 bits are what the lower 8 bits were the last time RN 021257 ... IL interpreter was used. If address 030210 is changed from 010 to 020, RN will shift in a full 8 bits each time it is called, hopefully All of the items in the left column could be eliminated, making it more random. and the entry point could be at the start of the right column, When an instruction is being compared to the possibili at address 026275. Or, the right column could be replaced by ties, the first word is 'GO,' but the second is not 'to' or 'sub,' a JMP to address 000000. Or, the two segments could be the second is compared to '1st,' 'run,' etc., instead of the rearranged as follows: program immediately indicating unrecognizable statement. This could be fixed by changing the instruction starting at 032057 (error routine) from '232275 "SUB" ' to '232330 "SUB".' Then 'GO' without 'To' or 'Sub' would go to 'unrecognizable statement' Entry point of main program 061 LXI SP error message. 377 d1 Thank you for your consideration. 000 d2 Yours truly, This method would 041 LXI H Entry point of Charles Skeldon 2320 Co. Rd. 1-3 eliminate 12 bytes. 002 d 1 IL Program New Brighton MN 55112 032 d2 I L I nterpreter 1980 CENSUS: HAVE ANY SUGGESTIONS? Actually, a lot of extra JMPs and NOPs are to be ex pected when programming is done in machine language, like The Census Bureau is now actively working on plans for TBX was. A primitive assembler, like SPHERE's mini the 1980 census, and important decisions have to be made in the assembler, which just assembles addresses and some data but relatively near future. not mnemonics, would be all that would be needed to Although there are many constraints on the census in terms produce a trimmer program. of what and how much information can be collected and tabulated, I should say that I really appreciate the job Arnold and the Bureau believes that it is very important to obtain and review Whipple have done. I'm pointing out a lot of little things, but the recommendations of as wide a range of users and potential I think they did a great job. users of decennial census data as possible. The Census Bureau is At a number of places, the character counter advances therefore anxious to have the ideas from leaders in mathematics past spaces. Many bytes could be eliminated by making all of education. these segments into a subroutine. Such segments are at: Send suggestions, questions, or comments on the 1980 021327' 022324, 023351, 022304, 024100, 027214, 030032, census to Director, U.S. Bureau of the Census, Washington DC and probably other places. 20233. Subroutine 022147 contains a divide routine. Perhaps this Page 34 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 June/July, HHS Errata/ additions to Palo Alto Tiny BASIC by Lichen Wang adds a video display ( VDM by Processor Technology as an . alternate output device. When the control-0 key is used. to Dear Jim: 23 June 1976 turn off the TTY echo and output, the VDM becomes the I have a few miscellaneous items related· to the "Palo echo and output device. When the control-0 is typed again, Alto Tiny BASIC" published in Dr. Dobb's Journal, Vol. 1, echo and output goes back to the TTY, etc. Control-P No. 5. First of all, there are a few misprints (my fault). On key is used to clear the VDM screen and text always scrolls page 13, right column, second line from the bottom, the up from the bottom of the screen. minus sign "-" should have been a back a"ow "+': The same The interpreter also needs RAM to store variable~, stack, misprint appeared on page 14, left column, lines 15 and 16. and the Tiny BASIC program. In the published list, 6K of RAM is assumed. You can change this in increments of 256 Secondly, I f argot to mention that this interpreter bytes by changing 9 bytes in the interpreter. These 9 bytes actually takes 1. 77K bytes. In the list published, I padded it are marked by "@@@@" in the listing. up to 2K bytes, and it can be either in ROM or in RAM Last and also least, I have a STARTREK game program There are 30K bytes unused at the end of the "command coded in Tiny BASIC It will barely fit in this 6K of RAM table" (Hex 0183-0lAO), another 30 unused bytes at the end It is probably a very bad example for Tiny BASIC (or any language). In order to squeeze in as much salty stuff as possi of the ''function table" (Hex 01B3-01DO ), and 177 bytes at ble, I have abbreviated every command and put as many com the end of the I/O routines (Hex 074F-07FF). These unused mands as possible in each line. As a result, the code is al bytes can be patched to add more commands, and/or more most unreadable. (But it is fun to play!) NOTE: Wang's StarTrek is functions, and/or to modify the I/O routines without re Sincerely, being published in the July assembly of the whole interpreter. An example fallows which Lichen Wang issue of People's Computer ::c Company. z v > .... UJ UJ a: ~ w Z.J 0 ;I: ... -CL .... a: en > -o ::::E UJ 0 .... a: u en .... .J .J Cl'. UJ z ..J IL <: f'- Ir u.; l£ 01-::::E :r .... ::::EO'. a: .... IL 0 i-o. er ...... - ~z UJ u .J a: 11..J v.1 ~e w OCl -~c>0 • 0 0 c- u •-' U• t\llL.D. Q. Cl .. I'- IO•O. 'li < c~ u~ :::Eu~ v, ~ :E • ~ ::rlJ.. ~ ~u~ ~~ ui o - -d: 0. • 0. c .. 0 :t. 0 u 0 ::r. ::::E • • 0 I"'\ 0 • 0 u c.. • c ::r - • ::r.. u • .... ,.,; ,... > c ><. > x > c Q'...... 0 > 0 0 0 lti ~ (.· >. > " >. > ~ > c - IL. 0 a:: u. c c~...... •X• ••• >u ~. •cr>N> .... ,... ('\) ::r :I. u c 0 c > > ,... ,... u ,...~,... ,... ,...,... ,... ~ ,... ,... ,... ,... ,... ,... ,...,... ,... c c u ~u~ c co o ~ o o o c ~ c co o - "" C " c < "~ ~ ... a, t\: U. U.. O (J' O V r; -:: '.::; C• U.. U. U " I' U U. c L.L ,.._ ,.... - U. - a.: u.. ,... r .c~ ~v= vu r- ~~m~~ ~ U< ~ ~~ ~ ccucN ~cu~;vu u ~ ~~~~r-~~n~~-~L~~-~~-m~c~~~<~~roc~~wur--N~~Nuw~~~~~c~~c~~~r--~co u vv~u~~~~~=u~~<~c~uu~~~N~u~a~Nu~wu~r~~Nn < c_-K~~~ ICE-NINE IS ALIVE & WELL IN ILLINOIS Dear Editor, Why haven't you listed our club and monthly publication in your fine issues????? Probably because none of our 25 or so members bothered to tell you about us. We are called ICE-NINE INC. A not for-profit organization formed a year or so ago for mutual computer oriented interests. We have pooled our resources and purchased a Sphere System 40 with floppy discs, line printers, etc. We have our own tele phone number for time-share callers and have even set up a radio re peater station (licensed through our amateur radio members) to allow computer use from distances up to 60 miles through amateur tran ceivers and remote TTY units. We are looking for prospective members in the Chicago area and have a huge amount of programs in BASIC and FORTRAN for ex change with other organizations. C. Cassiouceous Box 291 ICE-NINE INC. Western Springs IL 60558 Page 36 Dv. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 June/July, 1976 1 PR 11 i by Ron Santore the asterisk as I've shown because it's used as a return queue. 3. The program as is takes a little over 1 K of memory Here's the game of BUTTON, BUTTON written in but it will easily fit into 1 K by just shortening the text. You 8080 machine language for computer and terminal. (Altair & might want to change the text anyway to fit your own TVT or TTY, etc.) (computers') personality. NOTES: 4. If you have any questions, write or call me (person- 1. Just load the programming instructions in locations to-person): Ron Santore 000,000 through 000,377. 1957 Huasna Dr. 2. Then load the text in locations 001,000 through San Luis Obispo CA 93401 004,377. Be sure that after each paragraph of text, you type (805) 544-1956 OOOOM obi LXI SP 065 312 JZ 000151 021 LXI D/E 001 xxx your highest memory 066 151 "neighbor has it" 152 240 "neighbor has it" 002 xxx 067 000 153 002 003 021 LXI D/E 070 021 LXI D/E 154 315 CALL 004 000 instructions 071 360 "who me" 155 347 print 005 001 072 002 156 000 006 315 CALL 073 315 CALL 157 315 CALL 007 347 print subr. 074 347 print 160 210 rnd subr. 010 000 075 000 161 000 011 315 CALL 076 000 NOP 162 376 CPI 012 103 input subr. 077 000 NOP 163 003 "3" (Binary) 000 164 013 000100 JMP 372 JM 014 016 303 200 MVIC 101 165 pass higher 015 060 , zero (ASCII) 030 166 000 102 000 016 315 CALL 167 005 DCR B 017 210 rnd. subr. 000103 333 IN ioi+ 000 status word 170 170 MOV B to A 020 000 171 346 ANI 105 017 021 107 MOV A to B RRC 172 007 206 332 JC 022 021 LXI D/E 173 107 MOV A to B 023 020 "whos got the button" 107 103 JMP llO 000 174 303 024 002 175 030 025 315 CALL 111 333 IN 000 112 001 176 026 347 print 111 000 NOP 027 000 113 376 CPI 114 107 "g" (ASCII) 000200 004 INR B 030 014 INR C 201 170 MOV B to A 031 171 MOV C to A 115 310 RZ ll6 CPI 202 31+6 ANI 032 062 STA 376 203 007 117 131 "y" (ASCII) 033 354 store turn # in text 204 107 MOV A to B 034 003 120 312 JZ 121 011+ 205 303 JMP 035 376 CPI A 206 030 066 six (ASCII) 122 000 036 CPI 207 000 037 312 JZ 123 376 "n" (ASCII) 210 041 LXI H/L 040 330 "you lost'' 124 116 125 312 JZ 211 265 041 000 212 000 042 315 CALL 126 367 end subr. 127 000 213 026 MVID 043 103 input 214 010 11 11 130· ~76 CPI 8 (Binary) 044 000 215 176 MOV M to A 045 270 CMP A to B 131 0'70 "8" (ASCII) 132 372 JM 216 007 RLC 046 312 JZ 217 007 RLC 047 300 "right you are" 133 146 134 000 220 007 RLC 050 000 221 256 XRA M 051 074 INR A 135 021 LXI D/E 136 072 "no such number" 222 027 RAL 052 346 ANI 223 027 RAL 053 007 137 003 140 315 CALL 224 055 DCR L 054 270 CMP A to B 225 055 DCR L 312 JZ 141 347 print 055 142 000 226 055 DCR L 056 151 "neighbor has it" JMP 227 176 MOV M to A 057 000 143 303 144 input 230 027 RAL 060 075 DCR A 103 145 000 23i 167 MOV A to M 061 075 DCR A 232 osi+ INR L 062 346 ANI 000146 31+6 ANI 147 007 233 176 MOV M to A 063 007 234 027 RAL 064 270 CMP A to B 150 311 RET Page 38 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box :no, Menlo Park CA 94025 June/July, 1976 235 167 MOV A to M 342 347 print 361 323 OUT 236 054 INR L 343 000 362 001 237 176 MOV M to A 344 315 CALL 363 023 INX D/E 240 027 RAL 3!~5 103 input 36!~ 303 JMP 241 167 MOV A to M 346 000 365 347 242 054 INR L 000347 333 IN 366 000 243 176 MOV M to A 350 000 status word J00367 021 LXI D/E 244 027 RAL 351 007 RLC 370 220 "thanks for playing" 245 167 MOV A to M 352 332 JC 371 004 246. 025 INR L 353 347 ~72 315 CALL 247 302 JNZ 354 000 373 347 print 250 216 355 032 LDAX D/E 374 000 251 000 356 376 CPI 375 303 JMP 252 346. ANI 357 052 * (ASCII} 376 103 input 253 007 360 310 RZ 3c1 OOQ 254 376 CPI 255 010 ''8" (Binary) 256 370 RM ASCII DATA TO Bf. STORED IN MEMORY 257 303 JMP 260 210 261 000 ADDRESS TEXT 262 xxx any # 263 xxx any # (OOlJOOO} CR BUTTON, BUTTON CR LF LF 264 any # EIGHT PEOPLE ARE SITTING rn ACR'."LF xxx CIRCLE, WITH YOU IN THE CENTER-.C~L~ LF 265 xxx any # ONE OF THEM HAS THE BUTTON AND CRLF - 266 000 NOP YOU HAVE TO GUESS WHO. CR LP LF- - 267 000 NOP THE PERSON WITH THE BUTTONCANCH LF 270 000 NOP PASS IT, SO BE CAREFUL. CR LP LF - 271 000 NOP YOU HAVE FIVE GUESSES. CRLFLF 272 000 NOP WHEN YOU'RE READY, TYPE....,.,..G'""":"-;-- 273 000 NOP 274 000 NOP CR LF NOP CR LF 0 275 000 BUTTON, BUTTON 7 l -Ci'f"'"LF 276 000 NOP 6 ? 2 CRLF '2.11 000 NOP WHO'S GOT 5 3 CRLF 000300 171 MOV C t.o A THE BUTTON? 4 CRLF-; 301 376 CPI 302 063 11 3 11 (ASCII} {002,240} CR 303 372 JM r-DON'T HAVE IT, CR LF 304 317 MY NEIGHBOR DOES. CHLF 305 000 BUT WHOEVER HAS ITPASSES IT! CR LF * 306 021 LXI D/E 307 320 "you found it" (002,360) CR 310 003 WHO, ME?? CR LF 311 315 CALL I DON'T hAVE IT! CR LF 312 347 print WHOEVER HAS IT, KEEPSIT. CR LF * 313 000 314 303 JMP CR 315 103 input SILLY, CR LF 316 000 THERE 1 Sl'fO"'"ONE HERE CR LF 000317 021 LXI D/E WITH THAT NUMBER .•.. TRYAGAIN: CR T,F * 320 205 right you are 321 003 CR 322 315 CALL RIGHT YOU ARE; LUCKY! CR LF 323 347 print PLAY AGAIN? (Y OR N} * 324 000 325 303 JMP (003,320) CR CR LF LF 326 103 input YOUFOiJNDTHE BUTTON IN TRIES. CR LF 327 000. ANOTHER GAME? (Y OR N} *- 000330 170 MOV B to A 331 366 ORI (004,040) CR 332 060 prefix for ASCII SORRY. THAT WAS YOUH LAST GUESS. CR LF 333 062 STA "-" HAD THE BUTTON! TRY AGAlN? CH Lf * 334 104 store button in text 335 004 (004,220} CR 336 021 LXI D/E THANKS FOR PLAYING ...... CR LF 337 040 "you lost" ANYONE ELSE WANT TO PLAY?? CR LF 340 004 (Y OR N) CR LF * 341 315 CALL June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Page 39 DON'T UNDERESTIMATE BASIC COMPUTERS FOR STUDENTS' HOME STUDIES Dear Editor, June 9, 1976 I think anyone who underestimates BASIC in its more sophis Dear Mr. Warren: 8 May 1976 ticated forms is making a mistake. It is powerful, it can be well or We are organizing a research project whose aim is to ganized, and yet a novice can get going very easily. Most important investigate how small "Home Computers" might be used in for micros-the time for an amateur or part-time programmer to get a education-helping students to study at home. To keep up working program is Y, that of other languages. informed about new developments related to home computers, G.D. Johnson 2801 SW Patton Lane please enter our subscription to Dr. Dobb's Journal. Forest Products Engineering Portland OR 97201 Do you know of other publications related to home computers? Sincerely, Jerry Felson, Ph.D. BASIC COMPLAINT & MACRO MESSAGE President 84-13 168 St Dear Sir, 5 May 1976 Cybernetic Decision Systems, Inc. Jamaica NY 11432 I am very curious about the motivation for including the article "A Critical Look at BASIC" by Dennis Allison in Dr. Dobb's Journal Vol. 1, No. 2. This article is the first one I have encountered in the COMPUTERS-IN-EDUCATION BIBLIOGRAPHY computer hobbyist press that talks about modular and structured pro gramming. This may be because, as your editorial says, that most other magazines are hardware oriented. In any event, Allison's article The National Council of Teachers of Mathematics (NCTM) confirms what I have long suspected, namely, that BASIC is not the bibliography, Computers in Education, has replaced the old list, language of choice for state of the art programming. However, the Computers in the Mathematics Classroom. This new listing is inclusion 01" Allison's article in a magazine whose raison d'etre is to promote a subset of BASIC does seem a bit odd, to say the least. separated into seven sections, including one on mathematics texts Allison's article raises some questions that neither Dr. Dobb's series. Journal nor PCC seem to answer, namely, if BASIC is bad for you, why encourage people to be BASIC junkies? Single copies of this 41-page bibliography are available free Let me note that I am not a rabid BASIC hater; just troubled on request from the NCTM Headquarters Office, 1906 Association by the difference between what we are supposed to do, and what we Dr., Reston VA 22091. actually do. Those who advocate structured programming seem also to advo cate language with lots of control structures. Lots of control struc tures sounds Ii ke a big language to me. Big languages are 0 I< if you SUMMER MEETING OF THE ASSN. FOR DEVELOP have megabytes of core, but obviously aren't very good if you're a MENT OF COMPUTE'R-BASED INSTRUCTIONAL hobbyist with 21<. Structured programming seems precluded by the limitations of a minimal hobbyist system.' Is the hobbyist with a SYSTEMS modest system limited to assembler or a language with not much more than GOTO's and a conditional branch? Or, is there some kind of a The 1976 Summer Meeting of the Association for the happy compromise between Tiny BASIC and, say, PL/I? I would certainly like to see DDJ address some of these issues. Development of Computer-Based Instructional Systems (ADCIS) A final suggestion. The assembler I use at work doesn't have will be sponsored by Control Data Corporation at Minneapolis, any macro facilities. The other day, I decided to see what I could do about this. The macro generator GPM described by Wegener in his Minnesota, August 10-12, 1976. For further information about book, Programming Languages, Information Structures, and Machine the conference, contact the General Program Chairperson: Dr. Organization, looked interesting. I looked up the original article on the Karen Duncan, Director, Office of Computer Resources, College language (Stracjle11~-'-'.A-General Purpose Macrogenerator," The Com puter Journal, Oct., 1965, Vol. 8, No. 3, pp. 225-241) and discovered of Dental Medicine, 80 Barre Street, Charleston, South Carolina a listing for a GPM processor written in CPL. Strachey says the orig 29401, (803) 792-3211. inal implementation of GPM was 250 "orders" long. This is one hell of a lot of macrogenerator per word of core. Thus GPM might be of interest to people with home brew assemblers. Sounds like the sort of thing DDJ might be interested in. My implementation was a "quick HAND-HELD CALCULATORS IN CLASSROOMS and dirty" FORTRAN job done on the sly. As you might expect, Strachey's program has bugs in it. Some are real boo-boos. The Iowa Council of Teachers of Mathematics (ICTM) Yours, Fred J. Dickey 3420 Granville Rd has recently published the Monograph-1976, The Hand-Held Westerville OH 43081 Calculator. The ideas and activities included were suggested by ICTM members from their classroom experiences. Copies of this monograph are available for $1.50 (ICTM There is a lot wrong with BASIC; it is not the language of choice when the program is going to be long or complex. Unfortun member), or $2 (nonmember) from Ann Robinson, 509 W 20 ately, there is a substantial group of people who do not understand St., Cedar Falls IA 50613. Make all checks payable to ICTM. that; hence, the publication of my "Critical Look At BASIC." I had hoped that it would help our audience (many of whom have only recently encountered any programming language) attain a bit of per are performed according to the rules. I'd suggest that you look at spective on what BASIC is and where it belongs in the spectrum of another MACRO system-the TRAC system. There is a good descrip things. tion in Nelson's Computer Lib. The FORTH language and Logical There is a lot right with BASIC, too. For small programs its Machine Corporation's ADAM are also macro-like systems, but they interactive capabilities outweight the cumbersome control structures. defer expansion to run-time. We'd be pleased to publish macro sys Its "text editor" orientation makes it easy to implement interactively tems implementations should anyone be wiiling to prepare them. with an interpreter. Given the spectrum of available language models, Incidentally, macro systems can perform many of the same func it is difficult to see how any other language could have been a better tions as compliers, but the underlying model is quite different. A com model for a super-minimal implementation. Tiny BASIC is about right piler decomposes the input text into a phrase structure and then as and an one is going to write a giant tiny BASIC program (I hope!). signs meaning based upon that decomposition. A macro processor Macro processors are magnificent tools with frightening powers matches a template and then transforms the text accordingly. Macro and capability. The problem is how to make sure that a macro, partic systems are inherently more powerful than compilers modeled on con ularly one in Strachey's GPM, does what you think it does. I would text-free languages since they are (inherently) context-sensitive. A.S. hazard a guess that some of the "bugs" you have found in the pub Tenenbaum describes using such a system in IEEE Transacting on Soft- lished version are, in fact, simply unexpected macro expansions which ware Engineering, SE-2,2, June, 1976, p. 121. --Dennis Allison Page 40 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 June/July, 1976 TINY TIME SHARING??? IVERSONS INITIATE APL NEWSLETTER Dear Editor, 6/2/76 Dear Editor: 5/24/76 I would like to get readers to start thinking about the APL Press is a new publishing house devoted exclusively possibilities of contructing multiple-user or time-shared sys to APL. Its first book, to appear this summer, is a high tems using table-top hardware. school text on elementary analysis by l June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 3'HJ, Menlo Park 94fl25 FCC PETITION ON with microprocessors and automatic communications systems. ANSCll TRANSMISSIONS BY HAMS Failure to approve such a code will greatly stifle the advance ment of non-commercial communications and would be in by Bruce J. Brown, WB4YTU April 19, 1976 direct conflict with the purpose from the amateur radio ser 4801 Kenmore Ave., no. 1022 vice as expressed in Section 97 .1(b) and (c). Alexandria VA 22304 c. ANSCI I, by virtue of its diversified character set, is 703 370-1431, home; 202 697-9654, work highly compatible with amateur telemetry systems; e.g., remotely monitoring the status of repeater control circuits. 3 This is a petition for rulemaking in the matter of revi sions of Federal Communications Commission Rules, Sections Using asynchronous ANSCll transmission with one start, 97 .69 and 97 .117 to permit use of the American National two stop, one parity, and seven data bits per character, speeds Standard Code for Information Interchange (ANSCI I). former of 10, 30, and 60 characters per second will equate to rates ly ASCII. of 11 0, 330, and 660 bits per second (bps), respectively. The American National Standard Code for Information Through simple Fourier analysis to the 5th harmonic, it Interchange (ANSCll), formerly ASCII, was developed by the can be shown that the signaling bandwidth for data at speeds American National Standards Institute (ANSI, formerly Amer of 110, 330, and 660 bps is 220, 660, and 1320 hertz, re ican Standards Association 'ASI ') as the stan~ard code for information interchange in the United States. spectively. Furthermore, it can be shown that the AFSK band The 7-bit-plus-parity ANSCI I code provides 128 possible width for a 660 bps signal is less than that required for SSTV characters (Figure 1) versus the 58 characters of the Baudot transmission. code. In addition to figures, numbers, and punctuation, the Based upon the technical and operational benefits that code set has provisions for special symbols and control char the use of ANSCI I could provide, and considering that no acters which is vital to automated data exchange and com detrimental effect to the amateur community would result, it puter control. is requested that applicable sections to Part 97 be revised to its purpose is to establish uniformity and compatibility permit the use of ANSCI I. in the interchange of information among domestic and foreign 1 Data Communications Systems, Control Data Corporation, manufacturers of data processing and communications systems. April, 1974, page 47. In March 1968, President Johnson approved a recom 2 mendation by the Secretary of Commerce that ASCII be 1ntroduction to Computer Data Communications, Honeywell adopted as a federal standard. 2 Corporation, July, 1973, pages 2-19. Sections 97.69 and 97.117 are ambiguous and contradic 3osT, March 1976, page 73. tory with regards to codes presently allowed. 97.69(a) states "A single channel five-unit (start-stop) teleprinter code shall be used ..."; however, Section 97.117 states "The transmis sion by radio of messages in codes or ciphers ... is prohib A CLUB SURVEY FOR A CLUB CLUB ited." These sections are in clear conflict. Furthermore, Sec tion 97 .69(a) also states "In general, this code shall conform Dear Editor, as nearly as possible to the teleprinter code or codes in com I am doing a survey of hobbyist computer clubs. It mon commercial usage in the United States."-which is should be interesting to find out how many hobbyist club ANSCll! members there are, what kinds of things they're doing, etc. Hopefully the tabulated results can be printed in DDJ after There are several arguments to support the use of I've compiled them. One of the reasons for the survey is to ANSCI I by amateur radio operators. evaluate interest in an organization of hobbyist clubs (tenta a. Large quantites of surplus ASCII terminal equipment tively called 'Your Club of Clubs' or 'The Metaclub'). Any are available at very low cost on the surplus market. Inexpen club not on the following list should get in tau.ch with me sive Baudot devices are becoming increasingly difficult to find. for more information. b. Government and industry have only recently begun to Amateur Computer Club of N.J., Atlanta Area Micro explore the use of recently developed microprocessor circuits computer Hobbyist Club, Bay Area Microprocessor Users to solve complex teleprocessing problems. Hobbyists, many Group, Bit Users Association, Cache (Chicago area), Cleveland who are amateur radio experimenters, have also shown con Digital Group, The Computer Hobbyist Group (N. Texas). siderable interest in these devices as evidenced by the high Denver Amateur Computer Society, El Paso Computer Group, Homebrew Computer Club, LLLRA Hobbyist Computer Group, volume microprocessor sales to non-commerical buyers, and the Long Island Computer Association, Miami Area Computer Club, emergence of numerous amateur computer journals. Hams, CPU (Monterey), Northwest Computer Club (Seattle), Nashau using microprocessors in concert with presently allocated com Area Computer Club, New York City Micro Hobbyist Group, munications channels, have the opportunity to make serious Pittsburgh Area Computer Club, Santa Barabra Nameless Com contributions to the infant teleprocessing field while greatly puter Club, Southern California Computer Society, Tallahas- enhancing current amateur modus operandi. It is not unlikely see Amateur Computer Society. that hams will some day use microprocessors in communica I also invite comments and questions from anyone in tions networks (e.g., packet switching) to permit faster and terested. more reliable traffic handling for emergency and routine mes Sincerely, sages. Fruition of many of these concepts, however, is directly Dave Caulkins 437 Mundel dependent upon the approval by the FCC of a coding scheme Los Altos CA 94022 415 948-5753 with a large-character set, such as ANSCI I, for compatibility Page 42 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 June/Juiy, 1976 WESTERN DATA'S 6502-BASED DATA HANDLER Single-instruction operation. Complete Kit fer $169. 95, Memory examine (left incremental). Plug-Compatible to Altair Peripherals Memory deposit (left incremental). Initialization. Halt. by Western Data Systems staff Run. The Data Handler is Western Data Systems new product. Hex data and address entry. It's a microcomputer using the MOS Technology 6502 micro For an introductory offer the Data Handler Bare Bones processor with the latest state of the art technology producing Kit is being offered for $79.95, which includes the Data a high performance microcomputer at a low price. Handler P.C.B., 26 keyboard switches, P.C. B. stand, and . The high speed operating capabilities of the Data Handler complete documentation. are enabled by the use of an easy-to-use full-function, hard The complete kit costs $169.95. This includes the Data ware-controlled, front panel. A large ground plane area (to Handler P.C.B., 26 keyboard switches, P.C.B. stand, complete minimize noise at high operating speed) is on the P.C.B. and set of l.C.'s, 1 K static RAM, 500ns memory, resistors, 2102-type RAMS. capacitors, L.E.D.'s, 1 mhz 6502, and complete documentation. Slower accessing memories (EPROMS and ROMS) may This microcomputer is ideal for the hobbyist and industrial be used, although this will reduce the cycle speed to within user alike. the limits of other microcomputer kits. The single 13.75" x For complete information on ordering, write to: 10.5" P.C.B. can directly address 65K of memory and con Western Data Systems tains 1 K bytes of static RAM on the board with complete 3650 Charles St, No. Z address decoding. Santa Clara CA 95050 It also consists of all circuitry needed to be a stand atn: Cindy & Mike lndihar alone microcomputer for even such high-speed devices as disk Office: 408-984-7804 peripherals. Home: 408-378-3569 The Data Handler is designed with identical drive capabilities around the 8800 Altair, 100-pin, tri-state bus. It's The Introductory Offer expires August 31, 1976. plug-in compatible with the long list of Altair peripherals. Expandability can be accomplished in a manner identical to RCA COSMAC & µSCOPE the 8800 Altair by using the mother board. The Data Handler also has dual interrupt lines (one Dear Bob, 4/12/76 maskable), slow-down circuitry for slow memories, DMA RCA has formally announced the 1802 chip for COS (direct memory access) circuitry, and DMA acknowledge con· MAC, and it looks even better than the 1801. It seems trol. One 8-bit parallel input port, one 8-bit parallel output strange that so few hobbyists are using COSMAC, since it was port, separate 10 address control, and memory control lines. originally intended for the personal computer market (partly) Single voltage (+5 volts) and cycle times to 250ns. It has and has a remarkably adaptable instruction set. Now that the new, improved version is available maybe some enterprising full front panel control with the use of keyboard switches to OEM will jump into the hobby market with a COSMAC-based provide the following hardware: ·machine. The RCA COSMAC Microkit (not to be confused Single-cycle operation. with the RCA COSMAC Microtutor) is a beautifully engin eered computer, but probably too expensive for most hobby ists. I don't know what the price tag is, but it doesn't look cheap (is it true that the jewels in the panel lamps are syn thetic rubies?). In the March-April, 1976 issue of PCC I predicted that the 1980 hobbyist would have a breadbox-size computer con taining an integral ASCII keyboard, CRT display, tape cassette, hardcopy printer, and floppy disc. Well, it isn't quite 1980 but the newly-announced µScope 8000 (see the April 1 issue of Electronics) is a breadbox-size computer containing an in tegral ASCII keyboard, CRT display, tape cassette, harccopy printer, and a price of $6995. No floppy disc, but it does have a novel incremental assembler. Tempus Digits, Jim Day LED REPLACEMENTS FOR BURN-OUTABLE PDP-8/E LAMPS A conversion kit is available to enable replacement of standard incandescent lamps used in the PDPB/e minicomputer with light-emitting diodes, to eliminate the problem of burned-out bulbs. The kit is com plete with a set of direct-replacement LED's and instructions for modi fication of the Front Panel Control Board circuitry. $39.95. Delivery, stock to 30 days. Scientific Test Systems, Box 741, Wallingford CT 06492; 203 265-5028 June/July, 1976 Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Box 310, Menlo Park CA 94025 Page 43 DR COBB'S JOURNAL Of' COMPUTER CAUS"fHENICS & ORTHODONTIA PCC Box 310 Menlo Park CA 94025 2 - general user appeal 3 - clarity of documentation SOFTWARE CONTEST CD Entries should include source code and object code on punched paper tape. A listing of an appropriate bootstrap loader should also be Sponsored by People's Computer Company provided. P.O. Box 310. Menlo Park, Ca. 94025 411 Software should be compatible with MITS REV 1 serial i/O port convention for 1/0 require- FIRST PRIZE: $500 certificate for hardware ments (i.e., data transfer is on port 1, bit 7 from CROMEMCO [active low] of input port 0 is used to indic;i.te receiver ready, and bit 0 [active low] of input port 0 SECOND PRIZE: $250 certificate for hardware is used to indicate transmitter empty). from CROMEMCO Microcomputers can be incredibly versatile. The Dazzler OBJECT: Develop a program resulting in a new and adds the dimension of full-color graphic display to the interesting display using the Crnmemco microcomputer. TV Dazzler. (The Dazzler is an interface that permits a home color TV set to be a What can you develop? - games? - business? - education? graphic terminal for certain microcomputers.) - art? - others? RULES: @. All entries must use the Cromemco Dazzler SEND All ENTRIES TO: PEOPLE'S COMPUTER CO display and must not require more than 20K P.O. Box 310 of computer memory. Menlo Park, Ca. 94025 I'll All entrie" will be judged by People's Computer Company or. ENTRIES MUST BE RECEIVED BY SEPT. 30, 19~§_ 1 - originality