Issue #19 - March/April 1987

MARCH/APRIL 1987 INDEX
RETURN TO MAIN PAGE
Ramblings From The Ridge
Industry Observations
Parallel Printer Problems
ADAM System Calls
What Forth Is (And Isnt't)
Interfacing With ADAM - Part IV
An American People/Link Update

80 Column Unit (Review)
Orphanware Serial 80 Column (Review)
Image Screen Graphics Dump (Review)
Super Action Football (Soccer) (Review)
Bulletin Board
ADAM Suppliers
Renewals
User Group News
Programs


Expandable Computer News (ECN) is published bi-monthly by Sage Enterprises. Subscription rates are $15.00 per year (6 issues) U.S. and Canada; $21.00 foreign. All subscriptions payable to Sage Enterprises in U.S. funds only. Send all correspondence (subscriptions, ads, reviews, orders, articles and products) to: Sage Enterprises, Expandable Computer News, Rt. 2, Box 211, Scrivner Rd., Russellville, MO 65074. Telephone 314/782-3448 from 9 am to 4p m CT Monday, Tuesday, Thursday, Friday.


Staff: Editor - Darrell R. Sage, Associate - Shirley I. Sage, Assistants - Carol Quinn, Cover by Ted Gocal


NOTE: The views expressed by contributors to ECN are not necessarily those of the publisher. ECN and Sage Enterprises are not in any way affiliated with Coleco Industries, Inc. We welcome contributions of original articles, programs, reviews, comments, questions, etc. We are unable to pay for such contributions at this time. Please include a signed statement giving us authorization to use your contribution. We would like to thank all of our subscribers for their assistance–without them this publication would not be possible. Coleco, SmartBASIC, and other Coleco products are registered trademarks of Coleco Industries, Inc.; other trademarks apply to titles of products and are held by those companies referenced.


Sage Enterprises has available for sale a number of products for the ADAM Family Computer System as listed below. To order any of these products send check or money order payable to Sage Enterprises in U.S. Funds to the address listed above. Missouri residents please add sales tax. All prices include shipping and handling.

 

ITEM

Blank Data Pack (Loranger)

PACKCOPY software copier

CONVERT CP/M Disk Transfer Program

Program Library I, II, III (price each)

Program Library 4 (ddp)

Program Library 4 (disk)

Foreign Price

$8.00 US

$45.50 US

$40.95 US

$13.30 US

$10.00 US

$7.00 US

U.S. & Canadian Price

$5.52 US

$41.50 US

$36.95 US

$9.95 US

$7.00 US

$5.00 US


Ramblings From The Ridge

 

by D. Sage
    What can I say? I think we've got another terrific issue for you. You may also think this is a little late. Maybe, but at least it contains a great deal more than the filler some of our competitors are resorting to. In addition our subscription price has remained at $15, well below a number of other publications.
     In the last issue I fell asleep at least once. I referred to having obtained Gyruss for my Nintendo system. Well that's pretty good since Gyruss is not available for the Nintendo. What I meant to say was GRADIUS. There now I've said it. That remains my favorite, although I have been fooling around with Bryan's (OK Bryan now you owe me) copy of Ghosts 'n Goblins which is interesting.
    In this issue we continue the series on Forth and complete the hardware articles and finally complete the series on ADAM system Calls. We also have received a number of reviews, including reviews on two approaches to providing 80 columns in CP/M for the ADAM. A number of Basic programs will be included, depending on available space. Because we have received so many programs, I am considering having one issue of nothing but these excellent programs. We will also have another hardware article coming up as well as more on Forth and an article that I am working on that goes back to ADAM'S beginnings and brings us up to the present.

    Surprisingly enough we start our FOURTH YEAR with this issue. That is something no one else can say except ECN. Return to Top


Industry Observations
by D. Sage
    Looks like the PC compatible wars are under way. In response to Atari's PC introduction, a number of PC compatible companies have begun slashing prices. I doubt if Atari will take this lightly and would expect to see PC prices plummet even more during this year.
    Apple finally introduced their two new Macintosh­es which include an open architecture and color support. The Mac can now do what the Atari ST and Amiga could do since their introductions. Perhaps the biggest news is the inclusion of the 68020 processor in the new MAC. This processor has blazing speed, running over twice as fast as the original MAC. Commodore announced a new Amiga with 1 meg of memory and expansion slots that include both AMIGA slots and IBM PC slots. They will be cutting the price of the original AMIGA and are expected to drop it altogether.
    That seems to be all the news that's fit to print at this time. Stay tuned and we'll try to keep you posted. Return to Top


Parallel Printer Problems
by D. Sage
    I have received a number of questions from those of you who have printers connected to one of the various parallel printer interfaces that are now available for the ADAM. Most of these questions deal with use of control codes and printer opera­tion problems.
    Different parallel printers behave differently when connected to a parallel interface on the ADAM. Many printers will automatically generate a line feed every time they receive a carriage return signal. Since the ADAM sends a carriage return followed by a line feed, this means that your printer is generating two line feeds every time a line is terminated. The solution to this problem involves turning off the auto-linefeed feature on your printer. Most printers have a set of dip switches that allow you to manually turn this feature off. Read the manual that accompanied your printer in order to determine which switch setting needs to be changed. For other printers (usually the cheaper ones) you may have to turn this feature off through software. To do this determine what the code is that turns this feature off and then send it to the printer before printing out any information.
    This is the same method that is used to turn on or off many of the other features utilized by a particular printer. Unfortunately printer control codes differ substantially between different printers. You will simply have to read your manual and determine what code you need to send to enable or disable a particular feature. These codes will then have to be transmitted before printing or at the point in the printing process that you want to enable or disable that feature.
    Sometimes a feature will be enabled that you don't want quite by accident. The solution to resetting features usually involves turning the printer off and then back on. This usually clears all features. Ideally, you may find that some features such as pitch are controlled by dip switches and software. This is generally found on the more expensive printers and gives you the most flexibility. It allows you to easily select a pitch that you can still modify under software control. A typical example would involve switching between regular text and emphasized text (italics) and then back to regular text.
    If you did not receive a manual containing control codes with your printer, then write the manufacturer. Most printer companies will happily supply you with this information. You may also be able to obtain it from your local computer store or dealer where you purchased the printer. By using this information you should now be able to solve most of your parallel printer problems and take advantage of the many features that may have been included in your printer. Return to Top


ADAM System Calls
by D. Sage
    This is the ninth in a series of articles covering ADAM's system calls.
    CALL FD2F (64815) - Read data from VRAM and move it to specified memory location. A register = VRAM table code, DE = starting index into the table, HL = starting address of destination, IY = number of bytes to transfer. Uses the same table values listed in our last issue.
    CALL FD32 (64818) - Calculates the offset into the name table for the pattern position. The formula is: OFFSET = 32 * (y pattern position) + (x pattern position). D = Y pattern position and E = X pattern position. The calculated offset is returned in DE.
    CALL FD35 (64821) - Divides value in DE register by 8.
    CALL FD38 (64824) - Load standard text to VDP Pattern Table. You must call FD29 (Init Table) before calling this routine. No input is required.
    CALL FD3B (64827) - Load sprites to VRAM. A = number of sprites, DE = starting location of sprite data, HL = sprite numbers listed in priority order.
    CALL FD3E (64830) - Polls the controllers and stores the values. IX = pointer to first byte of your storage location, stores a total of ten bytes of data. A = determines which controller to enable. To obtain this value add the following values together: Controller 0=1, Controller 1 = 2, enable spinner = 80. The data are returned in the following order: byte 0 = joystick 0, 1 = fire 0, 2 = arm 0, 3 = keyboard 0, 4 = spinner 0, 5 = joystick 1, 6 = fire 1, 7 = arm 1,8= keyboard 1, 9 = spinner 1.
    CALL FD41 (64833) - Updates the spinner values. No input required.
    CALL FD44 (64836) - Decrements by 1 the least significant nibble of the byte pointed to by HL.
    CALL FD47 (64839) - Decrements by 1 the most significant nibble of the byte pointed to by HL.
    CALL FD4A (64842) - Copy the most significant nibble to the least significant nibble of the byte pointed to by HL.
    CALL FD4D (64845) - Adds 8 bit two's complement signed value to the 16 bit location pointed to by HL.
    CALL FD50 (64848) - Initialize sound blocks. HL = sound block number, B = number of sound follower blocks.
    CALL FD53 (65851) - Turn off sound.
    CALL FD56 (65854) - Start a sound follower block. B = number of sound block to start.
    CALL FD59 (65857) - Perform all sound operations for one interval.
    CALL FD5C (65860) - Leave an effect. Called by a special sound effect routine when it's finished.
    This is the last of the system CALLs excluding those that exist in the original Colecovision system (OS7). I hope that this information is helpful. Return to Top


What Forth Is (And Isn't)
by Thomas C. Gilmore
    This is the second in a series of articles on FORTH for the ADAM computer. (A public domain version of FORTH is now available from ECN).
    (The "Start-Up" version of FORTH for the ADAM is a set of files directly from FORTH-83, the 1983 International Standard. The first article focused on what will be available and how to put it immediately to work on your ADAM computer. How FORTH came to be available for ADAM users will be left until a later article in this series.)
    This article will describe what FORTH is and isn't, using a number of incredulous questions. (Statements and questions about FORTH often appear contradictory. If you look closer, you will be likely to find FORTH both interesting and contro­versial.)
    * * * "FORTH is only for expensive special effects in filmmaking!"
    False! Although FORTH IS used for that (e.g., "Battle Beyond the Stars"), and continues to be a highly versatile tool for special effects, it is more.
    * * * "FORTH is only for industrial microcomputers."
False! Although it is used for that, one of its strengths is bringing simplicity into an otherwise complex situation.
    * * * "FORTH is just another COMPILER."
    False! Not really. More accurately, it is a facility for creating a compiler with a vocabulary of commands appropriate to a particular application (computing problem).
     * * * "FORTH is an OPERATING SYSTEM."
    True! It provides its own commands, a development and operating environment, including a text editor (called a "screen editor"), compiler ("screen compiler"), debugging environment, and production run environment for compiling code.
    * * * "FORTH is a highly transportable PROGRAMMING LANGUAGE."
    True! It is usable on just about all top-of-the-line microcomputers. In regard to transportabil­ity, it may be second only to the "C" programming language.
    * * * "FORTH is a HIGH-level language."
    True! Its name was intended to be "FOURTH" (for Fourth Generation Language), but it was first implemented on an old (60's vintage) computer which happened to limit file names to 5 characters, so "FOURTH" was shortened to "FORTH." It provides the ability to generate a lot of efficient code from very short, readable source file text.
    * * * "FORTH is a LOW-level language."
    True! It is also an assembler which allows the entry of assembly code IF that is what the program­mer wants to do. In most cases, experienced FORTH programmers would only do this for 2 to 20% of a program only where running time is particularly vital and the extra effor to write assembly code is clearly worth it.
    * * * "FORTH is a software mix of operating system, assembler, high-level programming language, and a set of development tools."
    True and False! It DOES cover the whole range of software indicated, but in addition, its use over the years has resulted in a perspective and philosophy about how to do system analysis and programming. Some have even said that it is a broader philosophy about how to look at and solve problems, period. (See, for example, "Thinking FORTH", by Leo Brodie, 267 pages plus Appendices, Englewood Cliffs, NJ 07632: Prentice-Hall, Inc., 1984.)
    * * * "FORTH is only for expensive computers."
    False! It runs on an ADAM!
    * * * "FORTH is the ONLY programming language for the future."
    False! I have never heard anyone say that and I have never read that anywhere. What I HAVE heard discussed among experienced FORTH programmers at my local FIG (FORTH Interest Group) meeting is that, depending on the problem at hand, one of TWO, complementary languages would be useful — PASCAL and FORTH.
    (Editor's note: ADAM users now have BOTH languages available. See the Jan./Feb. 1985 issue of ECN on Turbo Pascal for the ADAM.)
    Some computing problems are sufficiently structured and/or familiar that PASCAL is the language of choice. For more unstructured (or unfamiliar) applications, FORTH is a complementary language that is preferred.
    Invariably when a new-comer brings up a new problem situation for discussion, one of the more experienced FORTH people will ask for more informa­tion about the situation before offering any opinion at all.
    Now, here's another short program file (called a "screen") in FORTH:

0   1/2 Screen # 8     SAMPLE.BLK     1Jun86tcg
1 : throw ( Sum -- n )
2 1/2 calculates n, the number of ways of getting Sum using 2 dice
3 0 swap ( sets counter to 0 )
4 7 1 do ( outer loop )
5 7 1 do ( inner loop )
6 dup i j + ( sums the 2 for compare to Sum )
7 = if swap 1 + swap then ( if equal, adds 1 to counter )
8 loop
9 loop
10 drop cr . ." out of 36 ways " cr cr ; ( output )

Here is what the output looks like when you run it for 7, 2, 8, 0, 1, and 11:

ok
7 throw
6 out of 36 ways

ok
2 throw
1 out of 36 ways

ok
8 throw
5 out of 36 ways

ok
0 throw
0 out of 36 ways

ok
1 throw
0 out of 36 ways

ok
11 throw
2 out of 36 ways

ok

    In the next article we'll discuss more of the specific features and advantages of using FORTH, plus another sample or two. Return to Top


Interfacing With ADAM - Part IV
by John Moore
    The final part of our project is a discussion of the software that is required to make actual use of the hardware. As is often the case, the hardware is useless without the programming to make it work!
    The programs provided have been written in SmartBASIC and freely commented, so most BASIC programmers will be able to understand what is going on. Both programs, however, contain machine-language modules, and these are the keys to understanding how the circuit works.
    For this reason, I am including the source code from which those modules are derived, along with comments that should help you understand what is being done and why!

CODE
245
229
213
197
33,96,109
6,0
62,128
75,62
62,241
211,74
120
211,72
62,113
211,74
197
6,5
5
32,253
193
62,241
211,74
62,144
211,75
62,193
211,74
0,0,0
219,72
230,14
119
35
04
120
254,13
32,207

62,241
211,74
193
209
225
241
201

OP CODE
PUSH AF
PUSH HL
PUSH DE
PUSH BC
LD HL,28000
LD B,0
LD A,128
OUT (75),A
LD A, 241
OUT (74),A
LD A,B
OUT (72),A
LD A,113
OUT (74),A
PUSH BC
LD B,5
DEC B
JR NZ,-2
POP BC
LD A,241
OUT (74),A
LD A,144
OUT (75),A
LD A,193
OUT (74),A
NOP/NOP/NOP
IN A,72
AND 15
LD (HL),A
INC HL
INC B
LD A,B
CP 13
JR NZ,-48

LD A,241
OUT (74),A
POP BC
POP DE
POP HL
POP AF
RET

COMMENTS
Preserve all registers
so that your routine
won't mess up the BASIC
program itself.
Put the number in HL.
Put zero in B register.
128 is 8255 code for output.
Sent what's in A to port 75 (4BH).
Code for "RESET" to clock.
Send code to clock port 74 (4AH)
Put what's in B in A (counter)
Send out the data port (72-48H).
113 is code for WRITE ADDRESS.
Send it to clock.
Save during timing loop.
Put 5 in B.
Decrement B by 1
Do it again until B is zero.
Get the original value back.
241 is a clock reset.
Send it to clock.
8255 code for INPUT.
Send it to chip port.
193 tells clock to read out time.
Send to clock port.
A little delay.
See what's in the data port.
Mask lower 4 bits.
Put what's in A into the memory at the value of HL.
Increment HL.
Increment B.
Move B to A.
Compare it to 13.
If it isn't 13, jump back 48 steps in the
program and do it again.
Clock reset.
Send to clock port.
Get all the registers
back that you saved at
the start of the program.

And return to the calling program.


    This program puts the first address we are using for the clock read (28000) into HL, and the address of the item we want from the clock into B. On each pass through the loop, we send this address to the clock, switch everything to input, read a value, and then put it into memory. We then increment the memory "pointer" in HL and bump B. If B reaches 13, we know we have finished.
    Setting the clock is a slightly simpler proce­dure, since you don't have to switch the 8255 back-and-forth between output and input. The basic method is the same, though. First, the main program sees to it that the data we want to send the clock is placed into memory starting at 28000. When it calls the machine language routine, those values are picked up one-at-a-time and sent to the clock chip.

CODE
245
229
213
197
33,96,109
6,0
62,128
211,75
62,241
211,74
120
211,72
62,113
211,74
62,241
211,74
126

211,72
62,177
211,74
62,241
211,74
4
23
78
254,13
32,227
193
209
225
241
201

OP CODE
PUSH AF
PUSH HL
PUSH DE
PUSH BC
LD HL,28000
LD B,0
LD A,128
OUT (75),A
LD A,241
OUT (74),A
LD A,B
OUT (72),A
LD A,113
OUT (74),A
LD A,241
OUT (74),A
LD A,(HL)

OUT (72),A
LD A,177
OUT (74),A
LD A,241
OUT (74),A
INC B
INC HL
LD A,B
CP 13
JR NZ,-28
POP BC
POP DE
POP HL
POP AF
RET

COMMENTS
Save all the registers as usual



Point to the location.
Zero is the first address.
Set 8255 to OUTPUT.
Send to chip.
241 is clock reset.
Send to clock.
Put address in A.
Send to data port.
Command to WRT ADDRESS.
Send to clock.
Time to reset chip.
Send it out.
Put whatever is in the memory at the address
in HL into the A reg.
And send it to the data port.
177 is the clock WRT command.
Send it.
Need to reset clock.
Do it!
Increment B
And the memory pointer (HL)
Put B in A to check it.
Is it 13 yet?
If no, skip back 28 steps and keep on truckin'.
Restore registers.



Return to calling program.


    The final module we examine is that for the control interface. This is the simplest of the three. The main program creates a "control word" between 0 and 255 and puts it into memory at 28000. The routine simply switches the 8255 to output mode, picks up that word, and sends it out to Port B of the chip, where you have connected relay drivers.

CODE
245
229
213
197
62,128
211,75
58,69,109
211,73
193
209
225
241
201

OP CODE
PUSH AF
PUSH HL
PUSH DE
PUSH BC
LD A,128
OUT (75),A
LD A,(28000)
OUT (73),A
POP BC
POP DE
POP HL
POP AF
RET

COMMENTS
Sava all registers when enter a machine language
subroutine. It's a good practice!


Code of INPUT mode.
Send out the control port.
Put what's in memory at 28000 into Register A.
Send to port B (49H)
Restore the registers - we are
finished (I told you it was easy to do).


Return to calling program.



    There are no special "tricks" in the BASIC programs which use these modules. If you examine them carefully, you should be able to figure out how to perform some useful modifications. It would not be difficult to have ADAM "watch" the clock for a certain time/date combination, and when it arrived, to send out a control signal to some other port.
    In other words, you could turn your computer into an extremely expensive alarm clock or automatic coffeemaker! Actually the use would be somewhat simplistic, but the principles that make the application possible are not! They will take you several steps farther in your understanding of how things work!
    (The programs that accompany this article are listed elsewhere in this issue). Return to Top


An American People/Link Update
by David E. Carmichael
    Hello fellow Adamites! I am the former Kansas Adam Users Group Chairman and for the last twelve months have been proud to be the Coleco ADAM Section Six chairman in the Computer Club.
    You ask, what is the Computer Club? Well the Computer Club is part of the telecommunications system known as American People/Link. This system can be reached via your computer's modem and your local Telenet, Tymnet and in Canada, Datapac phone numbers.
    In Section Six of the Computer Club is a message base and a Data Library where Public Domain and "Freeware" software is available for you to download. You can also upload programs that you have written and wish to share with other fellow ADAMites!
    You say that you have heard of Public Domain software but what do I mean by "Freeware" software?
    "Freeware" software are programs that the author/­programmer has made available for you to use on either a limited basis and/or ask that if you find the software useful that you send them a few dollars (what you feel the program is worth). They also ask that you do not (or under conditions) give out copies of the program to your fellow ADAMites.
    Well one of the most interesting "Freeware" programs to come along is a set of Three Data Files that allow ADAM users that have only ADAMLink II and SmartBASIC Ver. 1.0 to up/down-load "Videotunes" (Futurevision) song files. Before you were forced to use CP/M's ADAM.COM, CPMADAM.COM and a CP/M terminal program.
    Just in the last few weeks we have added to the library as "Freeware", Three New Data Files that allow the up/down-loading of pinball games that you have made using "The Best of Electronic Arts -Pinball Construction Set." This can all be done with ADAMLink II. There are also a number of very interesting games in the library for you to download and enjoy!!
    I hope to see your ID# on-line soon. Speaking of ID numbers on "PLink", you can change your number into a "CB" type HANDLE! While on-line I go by the ID# of "Davic E.C., so once you find your way their leave me a little E-Mail telling me what you think of the Computer Club's Section Six.
    For information on how to get logged onto "Plink" you may call up their customer service number toll free except in Illinois. Call 1-800-524-0100 or in Illinois call 1-312-870-5200.
    Happy Computing...Long Lives ADAM! Section Six Chairman in the Computer Club, David E. Carmichael, 1325 N. Meridian, Apt. #201, Wichita, KS 67203-4637. Return to Top


Product Review: 80 Column Unit
by B. Barr
Product: 80 Column Unit
Manufacturer: Orphanware
Requirements: ADAM
Price: $210 plus shipping
    The long awaited 80 column unit from Orphanware has arrived. I ordered the unit as soon as Big John advised me that it was available. I sent the money order and within ten days the 80 column unit arrived. I chose the standalone version instead of the serial card driven ASCII terminal unit. The unit arrived well packaged with the disk, manual and power supply. The manual is very well done and explains installation and setup. The unit connects to the side expansion port of the ADAM and works equally well with either the stand alone ADAM or the Expansion Module.
    The software consists of one .COM file to be added to your CP/M disk/tape. This will allow the initiation of the 80 column mode, install the parallel printer drivers, and allow, in the future, the addition of a keyboard to the 80 column unit.
    The unit is attractively enclosed within a plastic case (7 3/8" X 9 3/4" X 2 1/4"). The system consists of the main unit, the 60 conducter flat cable, and a power supply unit. The instal­lation consists of plugging the flat cable into the side port of the ADAM, plugging in the power supply and hooking the supplied video cable to your monitor. The unit does not include a monitor. This was a mistatement on Family Computing's part. The $30 monitors sold by Jameco work well. I chose to purchase a Goldstar 12 inch, monochrome monitor, and it works well also. A composite color monitor may also be used. There is no provision for RGB or TTL type monitors.
    The unit installed, the .COM program installed, CP/M booted, it was time to go to 80 column mode. The .COM filename is typed and in about ten seconds the selection menu comes up. This allows you to set the baud rate, 7 or 8 bit ASCII, parity, stop bits, etc. It also allows selection of the ADAM printer or a parallel printer. As soon as the selections are made a CR will put the display on your monitor. I have gotten into the habit of booting CP/M, typing 80 (CR) a 1,0,4,3 (CR) all without turning on the TV that I use for the normal ADAM.
    The display at 80 columns is marvelous to see, after all the time viewing 31 columns. Programs such as the Star series, WordStar, CalcStar, DataStar are a joy to use. The StarTrek .BAS program and all of the P.O. libraries work very well and are much easier to use. The dBASE II libraries work well and can be fully utilized as they were meant to be.
    My experience includes working with the EVE 80 column unit. Their 80 column does work well, but I feel that the Orphanware unit is a better buy at the price. EVE's costs $337.00 delivered and it took 2 1/2 months to receive it after payment was sent. There was also an annoying problem with the screen not locking on horizontal sync on boot with the EVE unit. The software that came with the EVE unit was cumbersome and was not the standard CP/M 2.2. A friend of mine and I purchased the EVE as partners. He uses a standalone ADAM and I use the Expansion ADAM. We both feel that although EVE's unit works well, the Orphanware unit works better at a more reasonable price.
    I have dealt with Orphanware in the past and have found them to be fast at filling orders and providing support. All the hardware from Orphanware is guaranteed for one year. That is pretty good for an orphan computer.
    These are the reasons that I feel that this 80 column unit deserves an Excellent rating. Return to Top


Product Review: Orphanware Serial 80 Column
by B. Barr, L.V.A.C.
Product: Serial 80 Column Display Unit
Manufacturer: Orphanware, 5665 Myers Rd., Akron, OH 44319
Requirements: ADAM, CP/M
Price: $65.95 plus shipping
    This unit should be a boon to those of us that are operating on a tight budget, relative to the computer hobby. I have purchased the standalone 80 column unit and am well satisfied with it. I showed my family how well it worked and then they wanted to use it. The next thing I knew they wanted to use my ADAM. I was forced to get them their own ADAM, but they didn't like the side scroll in CP/M any more than I did. When John Lingrel announced the alternative 80 column setup, I decided that might be the answer. I had to scrimp to get the money for the standalone unit, but the serial card, at $65.95, would allow the purchase of an inexpensive ASCII terminal to get the 80 column display. I located a used IBM 3101 for $65.00 and sent Orphanware the money for the card. It arrived in about two and a half weeks. The instructions guided me through the installation of the software and the card.
    The serial card is enclosed in a nicely done box and connects to the side port of the ADAM. The 60 conductor cable gives enough room to allow reason­able margin in the positioning of the unit. There is a cable provided to allow interfacing to your device (terminal/printer). This cable has the DB25 male end. In my application it required a cable with 4 wires connected between the serial card and the terminal. These were 2-2, 3-3, 7-7 and 20-20. On the terminal end, 4-5, and 6-8-20 were jumpered together.
    The disk that was included had one program. This is T80.COM. I PIPed it over to my CP/M 2.2 disk and entered T80 (CR). The menu gives a full selection of the devices applicable. In my application, I set the baud rate at 9600, 8 bit, no parity, 1 stop bit. I then selected console = TTY, LST = UL1, and KBD = TTY. A simple RETURN and the 3101 was showing the 80 column screen and Lo and Behold the 3101 keyboard controlled the ADAM. There I sat at a terminal controlling a "mainframe" ADAM. It took a while experimenting with the IBM to figure out its configuration. There is no CTL key as such, but the ALT key produces the same result. I am writing this review from the IBM using WordStar. The cursor movement commands from the menu are required and several of the other functions normally run from the ADAM keyboard are different. It will take some getting used to, but it sure beats the ADAM CP/M side scroll. At a cost of less than $150 this is a good way to go and as a bonus terminals come with their own monitor built in.
    I have purchased the Orphanware parallel card, the Standalone 80 column unit and now the Serial card. In all cases I have found the products to be well designed and constructed. They have operated excellently and have come with software and documentation that was easy to install and understand. I feel that Orphanware deserves an A#l rating. Return to Top


Product Review: Image Screen Graphics Dump
by B. Barr, L.V.A.C.
Product: Screen Graphics Dump
Author: Vinh Le, 9150 Todos Santos, Santee, CA 92071
Price: $20.00 plus shipping
Requirements: ADAM w/parallel interface (Eve or Orphanware) and dot matrix printer
    This is a review of the long awaited screen dump utility that will allow the printing of the graphics displays produced on the ADAM computer. It, of course, requires that you have a dot matrix printer, and either the Eve parallel or Orphanware parallel printer interfaces.
    The program will allow printing of GR, HGR, or HGR2 screen graphics either from BASIC or from programs such as PaintMaster. In some cases you may have to allow for the end of a program which will leave the graphics screen as is. Otherwise, if you leave the graphics screen you will lose the picture.
    The IMAGE program comes with a nicely done manual that will walk you through the installation and set-up of your printer. There are many options for different printers, including Epson, Star Gemini (10X and SG10) the ThinkJet, plus several generic types. I have had the program for two weeks and have found it to perform as it should. Within one week of its receipt, I received an update that corrected some minor problems. I picked up the original from Vinh in person. Upon meeting him, I was impressed with his knowledge of the ADAM and his mastery of machine language. He has spent many hours on the development of the different printer routines. He is still in high school which makes me even more impressed with his abilities. I feel that there may be great things from him in the future, if we ADAM users support him.
    The procedure for the installation of the program/printer is straight forward and clearly outlined in the manual. First boot BASIC, then run INSTALL. This will allow you to select the printer type you need. After this you may run your graphics program to get the image you wish to print on the screen. It may be GR, HGR or HGR2, IMAGE will print them all. Break the program, without disturbing the graphics, and put your IMAGE disk/tape in and run SET. Then you can select small, medium, medium sideways, or large. The program is Smart Key driven and uses Shift Print or Print for the output to the printer. Besides the four sizes of pictures, inverse and normal may also be selected. The program will also support the Okimate color printer for color printouts in GR mode.
    I feel that this program is excellent and a bargain at the price. If you register your software with Vinh, he will send updates as necessary. Return to Top


Product Review: Super Action Football (Soccer)
by Mike Cristiano
Product: Game
Manufacturer: CBS Electronics (U.K.)
Media: Cartridge
Requirements: ADAM/Colecovision
Price: $22.95 Telegames U.S.A.
Rating: 8
    This game is distributed by Telegames U.S.A. which is a proud supplier of Colecovision cartridges. Surprisingly, the instructions are written in five different languages. These are the player's options:

1) Fast game - a regular match between two players.
2) Slow game - two players at a slower rate (I would recommend this until you learn how to play).
3) Penalty competition - two player's take turns kicking and trying to save penalties.
4) Penalty saving - you're the goal-keeper against a computer controlled player.
5) Penalty taking - you're the player against the computer controlled goalie.
6) Tackling - opposition has the ball and you must take it away.

    As you begin to play, you select your team strength (average, strong, star) for the following categories: goalkeeper, defense and attack. In addition each player selects a team formation (defensive, balanced and attacking). There are three game screens. The mid-field screen provides a general view of the field as the ball goes up and down. The second screen is a close-up with nicely done graphics of two players tussling for the ball. The third screen is the goal keeper and the player in full detail. The goal keeper dives high or low to disallow a goal from penetrating the net.
    Overall, I found this game exciting and great for all soccer lovers. The graphics are nice and the only problem I encountered was in controlling the direction of the ball. Recommended. Return to Top


Bulletin Board
 FOR SALE: Game instructions for over 120 Coleco/ADAM and Atari 5200 games. $2 each or 10 sets for $16 plus $1 shipping and handling. For a sample send a SASE to Norman Castro, 809 W 33rd Ave., Bellevue, NE 68005.
 FOR SALE: "CAPTAIN CARGO", a SmartBASIC text adventure that is also a useful example of custom font usage and windowing, also uses sound. "SUPERPAINT" a SmartLOGO "full screen" painting program (requires Roller Controller). $5 on ddp. Contact: Mike Plamowski, 1053 N. Adams St., South Bend, IN 46628.
  FOR SALE: Closeout prices on remaining cartridges and software for ADAM/Colecovision. Send SASE to Stanley M. Siembor, 378 Sunningdale Drive, Inkster, MI 48141.
 FOR SALE: Family Computing Back Issues, 2/84 to 11/84 and 2/85 to 5/85. Hacker's Guide to Adam - Vol. 1. ECN backissues #8 to #15. Family Feud, Smart Letters & Forms, Recipe Filer, Packcopy, ADAMLink Modem (NEW). All boxes and manuals included. All offers considered. Contact: Dan Grelinger, 107 SE 7th Street, Lee's Summit, MO 64063-4209, ph. 816-524-1305.
 FOR SALE: New List #5 of mint ADAM DDP and Cartridges at discount prices. Send SASE (legal sized) to John Bonavita, P.O. Box 320, St. Bonaventure, NY 14778.
 WANTED: Expansion Module #1 (Atari game player), super action controller, parallel/serial interface and other ADAM equipment. Contact: CPT Calvin H. Meyer, HHB 2/41 Field Artillery, APO New York 09330.
 WANTED: Books, manuals, and software for ADAM. New or Used. Send title and prices to Carol Wright, 6026 60th St. NW #2, Oak Harbor, WA 98277.
 FOR SALE: ADAM Computers, extra printers, data drives, modem and much software - best offer. Contact: Alex Sweitzer, RD II, Box 207, Fayette City, PA 15438, ph. 412-326-4935. Return to Top


ADAM Suppliers
    The following is a list of a few of the companies that sell ADAM products. To obtain a catalog from these companies, send them a self-addressed stamped envelope.
    Alpha-1, 1671 E. 16th St., Suite 146, Brooklyn, NY 11229, ph. 718/336-7612. They carry a wide selection of ADAM products—hardware, software, supplies, etc.
    DO NOT STAMP SOFTWARE, 2608 West 600 South, Roy, Utah 84067. Software.
    Elliam Associates, 24000 Bessemer St., Woodland Hills, CA 91367. CP/M Software.
    Eve Electronics, 2 Vernon St., Suite 404, Framingham, MA 01701. Hardware, CP/M Software.
    Extended Software Co., 11987 Cedarcreek Dr., Cincinnati, OH 45240. Software.
    M.W. Ruth Co., 510 Rhode Island Ave., Cherry Hill, NJ 08002, ph. 609/667-2526. Wide selection of ADAM hardware, software, & supplies.
    Orphanware, 5665 Myers Rd., Akron, OH 44319, ph. 216/882-4720. Hardware & software.
    Reedy Software, 10085 60th St., Alto, MI 49302. Software.
    This list is not intended to be comprehensive, nor is it intended to be a specific endorsement of any one company. Nevertheless, in our dealings with these companies, we have found them to be reputable and generally prompt in filling orders. Return to Top


Renewals
    Remember to check your mailing label. The number of the last issue of your subscription is printed in the upper right corner of your mailing label. If your current label has number 19 printed on it then this is the last issue of your subscription. You will not be receiving a renewal notice if your subscription has expired. Thanks. Return to Top


User Group News
    The list of users' groups continues to grow. If there isn't one in your area to join - start one!

NATIONAL GROUPS
#1 Adam User's Group
P.O. Box 3761 - Attn: Jay Forman
Cherry Hill, NJ 08034

LOCAL GROUPS
James E. Gilbert
4608 Lakeview Dr.
Huntsville, AL 35810

Victor L. Watford
P.O. Box 777
Russellville, AL 35653

Richard Bains
7210 Bulen Drive
Anchorage, AK 99507

Danny Levitt
4525 S. White Pine
Tucson, AZ 85730

Robert R. Marentes
9425 N. 38th Ave.
Phoenix, AZ 85021

Harvey Klein
So. California ADAM Users
1736 So. Bedford Street
Los Angeles, CA 90035

Frank Fleich
13381-19 Magnolia Ave.
Corona, CA 91719

Central Calif. Adam User's Group
James Turner, Jr.
20110 Ave. 19
Madera, CA 93637

San Diego Adam Users Group
Dr. Harold Alexander
37 Catspaw Cape
Coronado, CA 92118

AUG of San Diego County
868 N. 2nd St. #242
El Cajon, CA 92021
ph. 619/445-2400

Bay Region ADAM Information Network
550 27th St. #202
San Francisco, CA 94131
ph. 415/282-3056

Inland Empire Users Group
Ann Quetel
6644 Seine Ave.
Highland, CA 92346
ph. 714/862-5807

Denver ADAM User's Group
1416 Lipan St.
Denver, CO 80204

ADAM Users Group #305
John F. Busby, II
6634 SW 41st St.
Davie, FL 33314

Playground Area ADAM User's Group
Howard Pines
812 Pinedale Rd.
Ft. Walton Beach, FL 32548

Robert J. Niemeyer
292 Boca Ciega Point Blvd. N.
St. Petersburg, FL 33708

ADAM User's Group
Michael G. Graham
217 Albert St.
Winter Springs, FL 32709
ph. 305/327-1387

ADAM Support Group
John Moore
1870 Fisher Tr. NE
Atlanta, GA 30345

Hawaii AUG
Harlan Fletcher
2335C Apollo Ave.
Honolulu, HI 96818
ph. 808/422-4019

Donald R. Lager
5415 N. 2nd St.
Rockford, IL 61111
ph. 815/877-7786

Kansas Adam Users Group
David E. Carmichael
1325 N. Meridian, Apt. 201
Wichita, KS 67203

KC Users Group
Joe Reardon
1513 Tauromee
Kansas City, KS 66102
913/371-7491

Greater Cincinatti Adam Users Group
c/o Keith Bowman
P.O. Box 434
Alexandria, KY 41001

ADAM Network
P.O. Box 85
East Detroit, MI 48021

Bill & Nancy Rahn
12426-15th St. S.
Afton, MN 55001
ph. 612/436-6577

Outsider's Users Group
Donald Viltiard
P.O. Box 771
Starkville, MS 39759

Omaha ADAM Users Club
Norman Castro
809 West 33rd Ave.
Bellevue, NE 68005
ph. 402/291-4405

Al Roginski
4327 Thorndale Pl.
Las Vegas, NV 89103

Metro Adam User's Group
Russell Williams
414 W. 149th St.
New York, NY 10031
ph. 212/208-0645 (9am-5pm M-F)

Genesee Valley Adam Users
Donald K. Zimmermah
5132 Jordon Road
Silver Springs, NY 14550

ADAM-X-Change (New York & Canada)
Wade Rowley
12863 Washburn
Wolcott, NY 14590

Tri-Angle Adam Users
Gary E. Hill
L-5 Oak Grove
Chapel Hill, NC 27514
ph 919/968-0299

Mutual ADAM Users Group
Matt Esterak
412 Bettie Street
Akron, OH 44306

Lake Erie Adam Users
Jonathan Fligner
2110 W. 36th Street
Lorain, OH 44503
ph. 216/282-8467
between 4:30pm & 8pm EST

Portland Adam Users Group
Craig Frerichs
P.O. Box 1081
Portland, OR 97207

The (717) Adam Users
Steve Chamberlain
120 E. 4th ST.
Bloomsburg, PA 17815

Midsouth ADAM Users
Roger Burford, Lot 142 NAS MHP
Millington, TN 38053

Adam Users of El Paso
Alan Samuels
4821 Vista Del Monte
El Paso, TX 79922

Houston AAUG
c/o Thomas Rutan
1805 14th Ave. N
Texas City, TX 77590

Norfolk ADAM Group
Gerald M. Steen
1000 Rockbridge Ave. #144
Norfolk, VA 23508

ADAM Users Group of Central Virginia
Thomas J. Kelly
3B, Rt. 664
Earlysville, VA 22936

ADAM Washington D.C. Users Group
1811 St. Roman Dr.
Vienna, VA 22180

Puget Sound Adam Network
22607 SE 322nd
Kent, WA 98042
ph. 206/886-1167

Dave Sandahl
USNH, Box 2844
FPO Seattle, WA 98778

CANADA
Robert Dunstan
95 Harland Crescent
Ajax, Ontario L1S 1K2

Derek Townsend
Box 820
Claresholm, Alberta T0L 0T0

J.A. Girard
1420 Ave. Langevin Sud
Alma, Quebec G8B 6B1

Mike Laurier
7350 Roi Rene
Anjou, Quebec H1K 3G6

Mr. G. Hibbert
P.O. Box 10
Mistatim, Saskatchewan S0E 1B0

First Canadian Adam User's Group
P.O. Box 547 Victoria Station
Westmount, Quebec H3Z 2Y6

Winnipeg Adam Users Group
729 Government Ave.
Winnipeg, Manitoba R2K 1X5

Metro-Toronto Adam Group
P.O. Box 123
260 Adelaide St. East
Toronto, Ontario M5A 1N0

AUSTRALIA
The Bendigo Colecovision Club
C1-2 Fenton St.
Bendigo, VIC 3550, Australia

ADAM Owner's & User's Group
4 Norman Street
Deakin, ACT 2600, Australia

ENGLAND
The U.K. ADAM Subscribers
Keith A. Marner
33 Homer Road
Croydon, Surrey, CR0 7SB, England

Return to Top


Programs
    The following two programs were provided by John Moore for the hardware series which concluded in this issue.

 

PROGRAM 1
50 POKE 16134, 255:REM Disable BREAK with Control-C
100 REM
101 REM **************************************
102 REM
103 REM Set up screen and constants for the program
104 REM
105 REM **************************************
106 REM
110 LOMEM :28110
120 REM
130 POKE 17059, 4: POKE 17115, 244: POKE 17126,26: POKE 16953, 0: TEXT: GOSUB 3000
140 REM
141 REM **************************************
142 REM
143 REM Read the machine language subroutines into memory
144 REM the routines also "zero out" the I/O buffer (13 bytes
145 REM starting at 28000) for us and the clock to use.
146 REM
147 REM **************************************
148 REM
150 FOR x=28000 TO 28109
160 READ ml%: POKE x, ml%
170 NEXT x
180 REM
181 REM ++++ READ THE CLOCK VALUES INTO MEMORY
182 REM
190 CALL 28013
200 REM
201 REM **************************************
202 REM
203 REM The values from the clock are now in the I/O buffer, so all we have
204 REM to do is "play" with the values to make them sensible to us
205 REM we will add the ASCII bias (48) to turn the digits into string characters
206 REM
207 REM **************************************
208 REM
210 sec$=CHR$(PEEK(28001)+48)+CHR$(PEEK(28000)+48)
220 min$=CHR$(PEEK(28003)+48)+CHR$(PEEK(28002)+48)
221 REM
222 REM ++++ The "tens of hours digit has special info ++++
223 REM so let's check it out first
224 REM
230 hr=PEEK(28005)
240 flag$="AM":IF hr>3 THEN flag$="PM": hr=hr-4
241 REM
242 REM +++ It's 12-hour time, and the PM flag is set +++
243 REM so remove the flag value to get the true
244 REM hour value for our program to display!
245 REM
250 IF hr>3 THEN flag$=" ": hr=hr-4
251 REM
252 REM +++ Since we have ALREADY removed the 12-hr +++
253 REM flag value, if the number in this digit
254 REM is STILL big, it means 24-hour time!
255 REM
260 hr$=CHR$(hr+48)+CHR$(PEEK(28004)+48)
261 IF LEFT$(hr$, 1)="0" THEN hr$=MID$(hr$, 2, l)
270 day=PEEK(28006)
271 REM
272 REM ++++ The numerical value of the day of the week ++++
273 REM is in the variable so we need to assign the
274 REM proper string for output to the user
275 REM
280 ON day GOTO 300, 310, 320, 330, 340, 350
290 day$="SUNDAY":GOTO 360
300 day$="MONDAY":GOTO 360
310 day$="TUESDAY":GOTO 360
320 day$="WEDNESDAY":GOTO 360
330 day$="THURSDAY":GOTO 360
340 day$="FRIDAY":GOTO 360
350 day$="SATURDAY":GOTO 360
360 wkday$=CHR$(PEEK(28008)+48)+CHR$(PEEK(28007)+48)
361 IF LEFT$(wkday$, 1)="0" THEN wkday$= MID$(wkday$, 2, 1)
370 mon$=CHR$(PEEK(28010)+48)+CHR$(PEEK(28009)+48)
371 IF LEFT$(mon$, 1)="0" THEN mon$=MID$(mon$, 2, 1)
380 year$=CHR$(PEEK(28012)+48)+CHR$(PEEK(28011)+48)
390 REM
391 REM ++++ We now have all the strings ready to go, so we show them ++++
392 REM to the user on the display
393 REM
400 VTAB 8:HTAB 8:PRINT "TIME: "; hr$; ":"; min$; ":"; sec$; flag$
410 VTAB 10:HTAB 8:PRINT " DAY: "; day$
420 VTAB 12:HTAB 8:PRINT "DATE: "; mon$; "/"; wkday$; "/"; year$
421 REM
422 REM ++++ This section watches the keyboard for any ++++
423 REM acceptable command and takes appropriate
424 REM action depending on what the user wants!
425 REM
429 VTAB 16:HTAB 4:PRINT "[S] to Set - [Q] to Quit"
430 x=PEEK(64885)
440 IF x=81 OR x=113 THEN 5000
450 IF x=83 OR x=115 THEN 500
460 GOTO 190
500 REM
501 REM **************************************
502 REM
503 REM Clock set section begins here!
504 REM
505 REM **************************************
506 REM
510 GOSUB 3500:POKE 16953, 95
511 REM
512 REM +++ Turn on cursor and print heading +++
513 REM
520 VTAB 6:HTAB 5:PRINT "Want 24-hr time (Y/N)? ";:GET an$
530 IF an$="Y" OR an$="y" THEN flag=l:GOTO 570
540 IF an$="N" OR an$="n" THEN flag=0:GOTO 560
550 PRINT CHR$(7); CHR$(8); CHR$(32); CHR$(8):GOTO 520
560 VTAB 8:HTAB 5:INPUT "[A]M or [P]M? "; ap$
561 x=ASC(ap$)
562 IF X>91 THEN x=x-32
563 ap$=CHR$(x)
570 GOSUB 3500
620 VTAB 8:HTAB 11:INPUT "YEAR: 19"; year$
621 yr=VAL(year$):IF INT(yr/4)=yr/4 THEN 1eap=1
622 IF yr<0 OR yr>99 THEN PRINT CHR$(7):GOTO 620
630 VTAB 10:HTAB 11:INPUT "MON: "; mon$
631 mon=VAL(mon$)
632 IF mon<1 OR mon>12 THEN PRINT CHR$(7):GOTO 630
640 VTAB 12:HTAB 11:INPUT "DAY: "; wkday$
641 wkday=VAL(wkday$)
642 IF wkday>31 OR wkday29 THEN GOTO 649
644 IF mon=2 AND leap=0 AND wkday>28 THEN GOTO 649
645 IF mon=9 OR mon=4 OR mon=6 OR mon=ll THEN GOTO 648
646 IF wkday>31 THEN GOTO 649
647 GOTO 650
648 IF wkday>30 THEN GOTO 649
649 PRINT CHR$(7):GOTO 640
650 GOSUB 3500
660 VTAB 8:HTAB 10:PRINT "DAY OF WEEK"
670 VTAB 10:HTAB 3:PRINT "0 - Sunday 4 - Thursday"
680 VTAB 12:HTAB 3:PRINT "1 - Monday 5 - Friday"
690 VTAB 14:HTAB 3:PRINT "2 - Tuesday 6 - Saturday"
700 VTAB 16:HTAB 3:PRINT "3 - Wednesday"
710 VTAB 20:HTAB 3:INPUT "Which? "; day
720 IF day<0 OR day>6 THEN PRINT CHR$(7); CHR$(8); CHR$(32); CHR$(8); :60TO 650
730 GOSUB 3500
740 VTAB 6:HTAB 12:INPUT "HOUR: "; hour$
741 hr=VAL(hour$)
742 IF hr<0 THEN GOTO 749
743 IF flag=0 AND hr>12 THEN GOTO 749
744 IF flag=l AND hr>23 THEN GOTO 749
745 GOTO 750
749 PRINT CHR$(7):GOTO 740
750 VTAB 8:HTAB 12:INPUT "MIN: "; min$
751 min=VAL(min$)
752 IF min<0 OR min>59 THEN PRINT CHR$(7):GOTO 750
760 VTAB 10:HTAB 12:INPUT "SEC: "; sec$
761 sec=VAL(sec$)
762 IF sec<0 OR sec>59 THEN PRINT CHR$(7):GOTO 760 770 POKE 28000, VAL(MID$(sec$, 2, 1))
780 POKE 28001, VAL(LEFT$(sec$, 1))
790 POKE 28002, VAL(MID$(min$, 2, 1))
800 POKE 28003, VAL(LEFT$(min$, 1))
900 POKE 28004, VAL(MID$(hour$, 2, 1))
910 hr=VAL(LEFT$(hour$, 1))
920 IF flag=1 THEN hr=hr+8
930 IF flag=0 AND ap$="P" THEN hr=hr+4
940 POKE 28005, hr
950 POKE 28006, day
960 POKE 28007, VAL(MID$(wkday$, 2, 1))
970 POKE 28008, VAL(LEFT$(wkday$, 1))
980 POKE 28009, VAL(MID$(mon$, 2, 1))
990 POKE 28010, VAL(LEFT$(mon$, 1))
1000 POKE 28011, VAL(MID$(year$, 2, 1)}
1010 POKE 28012, VAL(LEFT$(year$, 1))
1020 VTAB 14:HTAB 2:PRINT "Press to set clock"; :GET k$
1030 CALL 28063:POKE 16953, 0
1040 GOSUB 3000:GOTO 190
3000 REM
3001 REM ++++ MAIN HEADING ++++
3002 REM
3010 HOME:INVERSE
3020 VTAB 1:HTAB 7:PRINT "[--------------]"
3030 VTAB 2:HTAB 7:PRINT "| MOORE CUSTOM |"
3040 VTAB 3:HTAB 7:PRINT "| ADAM CLOCK |"
3050 VTAB 4:HTAB 7:PRINT "[--------------]"
3060 NORMAL:RETURN
3500 REM
3501 REM ++++ CLOCK SET HEADING ++++
3502 REM
3510 HOME:INVERSE
3520 VTAB 1:HTAB 7:PRINT "[...............]"
3530 VTAB 2:HTAB 7:PRINT "| MOORE CLOCK |"
3540 VTAB 3:HTAB 7:PRINT "| SET UTILITY |"
3550 VTAB 4:HTAB 7:PRINT "[...............]"
3560 NORMAL:RETURN
4000 REM
4001 REM **************************************
4002 REM
4003 REM Here is the machine language data for the clock
4004 REM subroutines called by the BASIC program!
4005 REM
4006 REM **************************************
4007 REM
4010 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,245,197,213,229,33,96,109,6,0,62,128,211,75
4020 DATA 120,211,72,62,113,211,74,62,241,211,74,62,144,211,75,62,193,211,74,219,72,230,15,119,62,241,211,74
4030 DATA 35,4,120,254,13,32,217,24,42,245,197,213,229,33,96,109,6,0,62,128,211,75,120,211,72,62,113
4040 DATA 211,74,62,241,211,74,126,211,72,62,177,211,74,62,241,211,74,35,4,120,254,13,32,228,
225,209,193,241,201
4050 REM **************************************
4051 REM
5000 POKE 16953, 95:POKE 16134, 3:NEW: REM This ends the program!
6000 REM
6001 REM **************************************
6002 REM
6003 REM This program is Copyrighted 1986 by John Moore, 1970 Fisher Tr., N.E.
6004 REM Atlanta, GA 30345. No warranties are either expressed or implied.
6005 REM Removal or alteration of this statement is forbidden!
6006 REM
6007 REM *****************************************

PROGRAM 2
50 DIM flag%(8), flag$(2), device$(8):LOMEM :28120
60 flag$(0)=" OFF ": flag$(1)=" ON ":POKE 16134, 255
70 FOR x=1 TO 8
80 READ device$(x)
90 NEXT x
100 POKE 17059, 4:POKE 17115, 244:POKE 17126, 26:POKE 16953, 0:TEXT:POKE 16149, 255:POKE 16150, 255
101 REM
102 REM ++++ Set up screen and make high memory POKEable ++++
103 REM
104 REM Put machine-language into memory at 28110 so that
105 REM this module will be compatible with the clock program
106 REM
110 FOR x=28110 TO 28129
120 READ ml%:POKE x, ml%
130 NEXT x
131 REM
132 REM ++++ program is in memory with the I/O buffer at ++++
133 REM 28110. The routine's CALL address is 28111
134 REM
140 GOSUB 500:GOSUB 1000:REM Paint the screen 150 x=PEEK(64885)
160 IF x<49 OR X>56 THEN GOTO 230
161 REM
162 REM ++++ Outside the normal number range, so we need ++++
163 REM to check further in case it's a command
164 REM the next section will update the control
165 REM word, and flags since a new quantity is here
166 REM
167 POKE 64885, 0
169 x=x-48:REM Remove ASCII bias
170 flag%(x)=flag%(x)+1:IF flag%(x)>l THEN flag%(x)=0
180 word=0
190 FOR x=0 TO 7
200 word=word+flag%(x+1)*2^x
210 NEXT x
215 POKE 28110, word:REM Update memory
220 GOSUB 1000:GOTO 150:REM update screen, too!
230 IF x=27 THEN POKE 64885, 0:PRINT CHR$(7); :CALL 28111:GOTO 150
231 REM
232 REM ++++ User types an ++++
233 REM
240 IF x=81 OR x=113 THEN POKE 16953, 95:POKE 16134, 3:END
241 REM
242 REM ++++ User types a "Q" ++++
243 REM
250 GOTO 150
251 REM
252 REM ++++ None of the above ++++
253 REM
500 HOME:INVERSE
510 VTAB 1:HTAB 6:PRINT "[----------------]"
520 VTAB 2:HTAB 6:PRINT "| MOORE CONTROL |"
530 VTAB 3:HTAB 6:PRINT "| MODULE |"
540 VTAB 4:HTAB 6:PRINT "[----------------]"
550 NORMAL:RETURN
1000 FOR x=1 TO 8
1010 VTAB (2*x+5):HTAB 5:PRINT x; " - "; device$(x); " "; :INVERSE:PRINT flag$(flag«(x));
:NORMAL
1020 NEXT x
1040 VTAB 23:HTAB 3:PRINT "Press # to toggle device"
1050 VTAB 24:HTAB 3:PRINT " to send- [Q] to Quit";
1060 RETURN
1900 REM
1901 REM ****************************************
1902 REM
1903 REM DATA area follows. To change the names of the devices just substitute in
1904 REM line 2000. To make the display look "right", be sure you include spaces
1905 REM to "pad out" the size of the entry!
1906 REM
1907 REM ****************************************
1908 REM
2000 DATA "Television","Radio ","Coffee Pot","Frnt. Lts.","Rear Lts. ","Hall Lts. ","Alarm Sys.","Spare "
2010 DATA 0,245,197,213,229,33,206,109,62,128,211,75,126,211,73,225,209,193,241,201
2020 REM
2021 REM ****************************************
2022 REM
2023 REM This program is Copyrighted 1986 by John Moore, 1970 Fisher Tr., N.E.
2024 REM Atlanta, GA 30345. It was written for demonstration purposes and no
2025 REM warranties are either expressed or should be implied. Removal or any
2026 REM alteration of this statement is forbidden!
2027 REM
2028 REM ****************************************

Patching Code For DIR Command
100 REM Patching code for DIR command
110 REM
120 REM Will LOAD and RUN a program by the name of 'HELP'
130 REM If there is no HELP program on tape or disc, will return with error message
140 REM
150 REM
160 REM
170 REM Created by DAVID CLARK
180 REM 11/28/85
190 REM
200 REM
210 REM move some existing code
220 FOR x=683 TO 814: POKE x, PEEK(x+3): NEXT x
230 REM poke in parseing jump and command name (DIR)
240 POKE 677, 231: POKE 679, 3: POKE 680, 68: POKE 681, 73: POKE 682, 82
250 REM poke in Jump to new code
260 POKE 6523, 41: POKE 6524, 4
270 REM poke in new code
280 FOR x=0 TO 46: READ d: POKE 1065+x, d: NEXT x
290 DATA 205,111,43,58,137,65,254,3,32,5,62,8,195,250,64
300 DATA 254,6,32,5,62,24,195,250,64,254,15,32,5,62,4,195
310 DATA 250,64,254,1,32,5,62,5,195,250,64,62,27,195,233,94
320 REM move some more existing code
330 FOR x=16642 TO 16648: POKE x-2, PEEK(x): NEXT x
340 FOR x=0 TO 8: READ d: POKE 16647+x, d: NEXT x
350 REM poke in Jumps to error codes
360 DATA 19,194,233,94,62,5,195,233,94
370 REM poke in program name to look for
380 REM any name could be used, use no more then 6 letters including the 'A' on the end

390 b$="HELPA": FOR x=1 TO 5: POKE 16680+x, ASC (MID$(b$, x, 1)): NEXT x
395 POKE 16680+x, 3
400 HOME: VTAB 8: PRINT TAB(3); "DIR command installed"
410 VTAB 12: PRINT " DIR 1=TAPE DRIVE #1"
420 PRINT " DIR 2=TAPE DRIVE #2"
430 PRINT " DIR 3=DISC DRIVE #1"
440 PRINT " DIR 4 =DISC DRIVES #2"
450 END

Patching Code To Merge Programs In SmartBasic
100 REM Patching code to MERGE programs in SmartBASIC
110 REM
120 REM Merging command (MR)
130 REM
140 REM Created by DAVID CLARK
150 REM 7/18/86
160 REM
170 REM
180 REM
190 POKE 16149, 255: POKE 16150, 255: REM place poke limit at top of memory
200 FOR x=0 TO 8: READ d: POKE 65491+x, d: NEXT x: REM place patching code in memory
210 DATA 202,22,78,205,220,255,195,101,78
220 FOR x=0 TO 33: POKE 65500+x, PEEK(23976+x): NEXT x: REM move up useable code from basic
230 POKE 65534, 205: POKE 65535, 31: REM place rest of patching code
240 POKE 20274, 77: POKE 20275, 82: REM place MR command
250 POKE 20329, 211: POKE 20330, 255: REM place MR Jump to our new code
260 HOME: VTAB 8: HTAB 2: PRINT "MERGING COMMAND INSTALLED"
270 VTAB 12: PRINT " USE 'MR' FOR MERGING PROGRAMS"
280 END

Return to Top


ADAM OUTLET

DATA PACK (Adam).....1/$3.95 - 10/$37.50
RIBBON CART.....1/$5.50 - 3/$15.00
DISKS (Adam)......30/$35.95 - 10/$14.95
DAISY WHEEL (Adam) - Italic, Script, Elite, etc. 1/$5.50

ADAM COVERS - Set with logo for system......$18.95
ADAM DISK COVER - To match above......$7.99

64K MEMORY EXPANDER.......$69.95
DIGITAL DATA DRIVE........SPECIAL PRICE......$24.95
TRACTOR FEED for Adam printer.....$79.95
PRINTER STAND - Front on/off switch......$19.95
POWER SUPPLY UNIT - To separate printer/use CPU alone.....$69.95
ADAM AIR CONDITIONER - Stop heat buildup with this super quiet computer fan. Will help eliminate the problem with the computer crashing (freeze).....$19.95
SERIAL/PARALLEL INTERFACE UNIT - This opens a whole new world for the Adam owner. Now you can connect a dot matrix hi/speed printer/use standard modem (300-1200 baud). Comes w/software used with SmartBASIC or CP/M etc. Serial or Parallel......$139.95
SPEECH SYNTHESIZER UNIT - SUPER TALK - Now add VOICE capabilities to Adam. Software included. $99.95
Disk Holder - Holds up to 50 disks-anti static.....$15.95
Monitor/TV Stand-360 rotation, up to 12.5 angle.....$22.95
Adam Monitor Cable.....$10.95
Star Micronics NX-10 Printer.....$289.95
Star Micronics NX-10 Ribbon....$6.95
PACKCOPY - Backup SmartBASIC, etc. .....$29.95
DIABLO - Mind Challenge - Graphic.....$19.95
BLACK GOLD - Look for oil. Survey-profits-fun.....$19.95
The STOCK MARKET GAME - Fun & educational.....$19.95
BOUNTY HUNTER - Text adventure.....$14.95
ENGLISH GRAMMAR BUILDER I - Jr. high school level tutor.....$19.95
ELEMENTARY GRAMMAR BUILDER I - Tutor.....$19.95
VOCABULARY BUILDER I - Tutor/words that have appeared on SAT's..$19.95
MATH BUILDER I - Elementary/Jr. high tutor.....$19.95
ALGEBRA I - Tutor.............$19.95
RIB - Basic tutor for ADAM (D or DP).......$24.95
EBU - SmartBASIC - Data Pack or Disk.....$21.95
HACKER'S GUIDE TO ADAM - Disk or DP.....$17.95
HACKER'S GUIDE TO ADAM VOL. II - Disk or DP.......$17.95
TurboLOAD - Revolutionary new product. Speeds up loading programs, a must for Adam owners. Also includes the FILE ORGANIZER.....$28.95
PaintMASTER - HI-Res graphic design system primarily written in Z80 machine language. Load or save your creation to either D or DP.....$23.95
MultiWRITE - The only 64 column word processor, no need for moving windows. What you type on the screen will be printed. On screen R & L justification, on screen centering and so much more.....$38.95
VIDEO TUNES - Compose, play, save music.....$34.95
AUTOAID - Enhances SmartBASIC. Generate new line numbers as you type. Defines function keys to be any command or character string & so much more.....$29.95
MULTI-CART BACKUP - Backup cartridges.....$19.95

S&H - $2.50 US     $4.50 CN      US $'s only     VISA/MC

Free catalog

 

We stock what we sell for FAST DELIVERY.
 

 

 


M.W. RUTH CO., Dept. S26
510 Rhode Island Ave.
Cherry Hill, NJ 08002

#1 ADAM USERS' GROUP


By joining our group you will receive our newsletter. Advance updating, evaluations on programs and hardware. Technical information, problem solving, and be entitled to share in our program exchange. Plus much more. Send $15.00 for membership to:

#1 ADAM USERS' GROUP
P.O. Box 3761
Cherry Hill, NJ 08034
(609) 667-2526
VISA/MASTER ADD $1


PUBLIC
DOMAIN
FORTH for
ADAM


The Public Domain version of the FORTH 83 language is now available for the ADAM. This version has been made available to ECN subscribers by Thomas Gilmore who will also be contributing a series of articles on the language. A start-up set is available now and an advanced set, organized to complement the start-up set will be available later. The start-up set is available on two disks for $7 or two data packs for $10. These may be ordered directly from ECN and are designated CP/M public domain volume 12. This set requires that you have ADAM's CP/M 2.2. Send your order along with a check or money order for the appropriate amount to:


ECN
Sage Enterprises
Rt. 2, Box 211, Scrivner Rd.
Russellville, MO 65074

Be sure to indicate whether you want disk or data pack

Return to Top