@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 164ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u05  15 2 2151^116115ύ011$r2ԭ5 3)5)5ԭx GT}@@L00)+& 2 L0=ɛ -L!1LV1L1 /3 3ȹ441L-4 v3 25 2H 2h͔5U}L3L3 2 k3U hh`DOC`QL3P1Lk0S1H /3h0B k3@ VL0LU!#$53 1181118V}1111Ε5 1Lk0552 1Ȍ1i111i11115Lk0pppB4f5&&&&&&&&^6f^6&&&&&W}&&A1@BJ D2ELVK@BHILV^Щ6 2BD2EJ VBD5EHI0 V0%5X}5 2iХiL[2 25 25`D:*.*` i@`8 ``@i `8@`0 BLV525<4Y}5`HH i ԍΗ552 ԍhh@ Lح1Э1Ѣ 24.4 24Z}4`D4E` 2BJ k3LVRH` 2BD4EhK)I JLV333 BASIC languag i}e OBJ > MACHINE language DOC > DOCumentation PIC|MIC|FNT|MVM > Graphics AMS|MUS|MBD > Music LST j} > BASIC LISTing -Some MACHINE language programs can only be run by booting the disk MENU "without" BASIC! -For s k}ome programs, XL/XE models may require a "TRANSLATOR" program to be booted first! [Also available from BELLCOM] - l}Most programs are relatively self-explanatory; however, some have separate DOCumentation files available. Some BASIC m} programs may contain instructions in their program listings. -To use this great MENU program on your own disks, n}simply copy the file "AUTORUN.SYS" onto your disk. * MENU written by DAVID CASTELL * program on your own disks, ^ ATARI CAD/CAM FACILITY LAYOUT REFERENCE MANUAL by Jack Gilchrist anp}d Phil Heaven Release 1.2 Feburary 1984 FIRST THINGS FIRST! ------------------- q} Don't take chances with your valuable software! Make a BACKUP copy of both sides of this disk and use the BACKUP copier}s. TABLE OF CONTENTS ----------------- 01. Using the help facilities 02. General purpose of packags}e 03. General procedure 04. Getting started 05. Windowing 06. Making your own manual 07. Copying codes in thist} package 08. Contacting the authors 09. Hardcopy tube dump utility 10. The demonstration data 11. Data overviewu} 12. Data coordinate systems 13. General rules 14. Entity formats 15. Plot control USING THE HELP UTILITIEv}S ------------------------ On your disk is stored various files of textual information that try to explain the ow}peration of the ATARI CAD/CAM LAYOUT package. To access this information you should select the option "HELPFUL HINTS"x} in the main menu. After you select the area where you would like some assistance the appropiate file is opened and y}displayed on your screen. At this time you may select from any of the following options: 1. RETURN TO MENU Hit any kz}ey 2. CONTINUE WITH NEXT PAGE Hit space bar 3. MAKE HARDCOPY OF TUBE Hold SHIFT and hit key "C" See HELP{} (Hardcopy) for other options GENERAL PURPOSE OF PACKAGE -------------------------- We feel that the ATA|}RI has a powerful set of graphic capabilities. However the benefits of developing a graphics picture usually isn't w}}orth all the time and energy for the typical computer owner. The goal of this package is to allow you to quickly def~}ine a graphical layout, such as a home floor plan. You will discover that this software supports a variety of ways} to define your geometry and control the size and location of images on the tube. It is our hope that our efforts will} result in a new set of useful work for your home computer. THE GENERAL PROCEDURE ---------------------} The method of operation expected in this package is for the user to create a file on disk describing the picture des}ired. This is done by using the basic language capabilities to create a series of data statements to describe the ge}ometry wanted. The types and forms of geometry supported are described under the heading "ENTITY FORMATS". The pict}ure description once created and checked out can be easily saved by using the basic "LIST" command. Example of LIST:} LIST "D1:KITCHEN.DAT", 10000, 12000 When the display package is executed your saved data statements will be temp}orarily added to the code. It is important that the numbering scheme for the data contains only values of 10000 or l}arger to insure that it doesn't destroy part of the display facility. You will also find it helpful to include a lib}eral amount of "REM" statements in your data field to document your intent. Before jumping in with both feet I sugge}st that you skim through all the help options. We have sprinkled many useful ideas throughout the documentation. We } did this because we feel the procedures are simple enough that once you start you won't come back to hear all of our w}ords of wisdom. GETTING STARTED --------------- After playing with the demos for awhile you wil}l want to start experimenting yourself. A few suggestions are in order. 1. Number DATA statements > 9999. 2. Use} lots of REM statements. 3. Make a master of the LAYOUT disk. 4. Give your files a meaningful name. 5}. End file names with D:??????.DAT 6. Save frequently using LIST. 7. Debug parts as they are entered.} This last suggestion on debugging requires a more detailed description to see how easily this can be done. The fir}st time you enter the display package it can tell it doesn't have any data attached and it stops and asks you for the } name of a data file. If what you really want to do is create a new file simply hit the BREAK key at this time and sta}rt typing. After entering a few geometry cards type RUN. The program will now see that data statments are included }and it will display your information. You will notice an option in the main menu to STOP. This option is there to all}ow you to exit and add or change data at your leasure. When you have made enough progress that you would cry if th}e system locked up its time to save using the LIST command. To start a new file or delete all your data use the option} in the main menu called "NEW DRAWING". Warning don't use this option if you haven't stored your data yet! If you s}crew up a format the error displayed is normally a referrence to an unsupported entity type=-3.47. This number will} be a value in a data statement where you goofed a format or the point count to be ploted. GOOD LUCK! If you're lik}e me you'll find its more fun and much easier moving furniture on the ATARI than doing it by hand. Of course maybe y}our spouse never changes his/she mind. WINDOWING --------- You have gatherd by now that a}ll is not roses and the question becomes just what do you get for all your work inputing your entities. The answer i}s two things, coordinate independance and display scaleing. COORDINATE INDEPENDANCE First you will notice that you s}elect the units to be used to describe your data. You are not concerned with how much will fit on the tube or how ma}ny plotting units there are in the horizontal and/or vertical axis. You can also use both fractional and negative unit}s if these are useful. The facility layout display world will take care of all the matrix operations needed to keep }the Atari rule book happy! DISPLAY SCALEING Most important you can now display your data in a variety of ways just }like on the expensive CAD/CAM graphic systems. You need have no worries about the data that may disappear off the sc}reen wrapping around or generating errors during plotting. You will notice some surprisingly powerful clipping logic}. For example; a box might might have all four corners off the tube but one edge should cross the picture displayed,} and it does! Just what is a "Window"? Give up? The word "Window" is both a noun and a verb. *Window (the noun) } When used as a noun it refer to a box described by two points. The two points are positions in your input coordinate }system that defines the region of your picture that you want displayed on the tube. One point is called the min valu}e and is the lower left hand point of the box. The other, called the max value is the upper right hand corner of the} box. A default box is created for you each time you run the program. The size is calculated such that all of your }data justs fits into the window. This is done by looking at all of your data and determining its maximum and minimum} values in both X and Y You will have a variety of options for changing the size and/or location of the window being} used. You may also set it back to the original size to see all your data if you want. When you scale by say Two time}s size the package does this by simply reducing the size of the window being used while holding the center position.} *Window (the verb) "Window" the verb refers to the process of mapping your data into a reasonable image on a graphi}cs device. This process clips off data beyond the tube and finds the exact position on the edge of the screen where }a line should start or finish displaying. It adjusts your window box to the same proportions as the tube to insure t}hat the angle of any lines displayed are true orientations. It also does the appropiate Y-Axis flipping to map from }the traditional righthanded coordinate system into Atari's lefthanded system. This package supports the following wi}ndowing, 'verb', options: To move a window... 1. SHIFT X 2. SHIFT Y 3. SET CENTER XC, YC To scale a windo}w... 1. SCALE BY # 2. SET SCALE To move and/or scale a window... 1. SET WINDOW 2. WINDOW=DATA MAX-MIN'S } Note that the windowing menu also contains a display of the current window range and the range of your data. I sugges}t you become familiar with the windowing options by displaying one of the demo data sets. You do this by inputing it}s name upon entry. For example: D:DEMO1.DAT Then try all the window options watching not only the resulting display}s but also the effects of your commands on the window range. By the way; to terminate a display and return to the di}splay menu just hit any key. Don't forget that by initilizing the tube dump utility included with this package you c}an transfer anything you can get to the tube to your printer. This includes pictures, menus and data or program list}ings. But more about that in another HELP menu. I think you will find the data listing facility faster and of highe}r quality if you want to list your data or dive in an try to figure out how this package works. Well, I've finally r}un out of words on my favorate subject. I think after using the program you'll agree this is the part that makes it }unique! MAKING YOUR OWN MANUAL ---------------------- On the back side of this disk (side 2) is a compl}ete set of the files used to support the HELP command. Also on this side are the files named "MANUAL1.DOC" and (this} file!) and "MANUAL2.DOC". To make your own hardcopy manual simply run the Print Data routine from the first menu on s}ide one of this diskette. Input the file name "D:MANUAL1.DOC" and then flip over the disk to side two 'before' hitti}ng the Return key! After printing "D:MANUAL1.DOC", repeat the procedure to print the second text file "MANUAL2.DOC".} If you have a copy of ATARI- WRITER, the file named MANUAL.DOC can be loaded and printed to produce a higher quality }output. If your data files are filling up the space on this floppy and you can live without the HELP aids for awhile} you may delete the help data. BUT, PLEASE MAKE A BACKUP COPY FIRST AND DELETE THE FILES FROM THE BACKUP!!! In DOS d}elete "D:HELPDOC.*". If you forget you have done this and ask for HELP the program will remind you that the files are }missing. COPYING CODES IN THIS PACKAGE ----------------------------- We encourage you to cut and paste some goo}d utilities from this package. For this reason the software was not mashed, etc. but left intact with many good com}ments to explain how it works. We of course encourage that this will be for your own use to protect the economic well b}eing of the authors of this package. Some packages you might find valuable would include: 1. Assy code for text in} GR.8 2. Basic data print. 3. Assy tube dump. 4. Basic Help controller. 5. Basic Assy code loader. We cou}ld supply a few hints on conversion but that would take all of the fun out of it for you. OK; Just one hint! The basi}c data print utility does a nice job as is for an MX80 printer with just one little fix. Change the card RUN "D:DRAW}" to simply say "END". If you don't have an Epson printer take out the printer initialization statements and the bas}ic logic will still deliver the goods minus a couple of minor things like an underlined title. CONTACTING THE} AUTHORS ---------------------- We have enjoyed writing this soft- ware. Phil and I both work during the day fo}r a major supplier of graphics systems and we find it fun to try and fit the Big Blue's logic into an Atari. We of c}ourse would like any feedback you might wish to offer either positive or something Phil should have done better. Sen}d your postcards to: Jack Gilchrist/Phil Heavens 42039 Bay Court Infinite Loop Sterling Heights Bit Dropper Michigan} 48078 Assembly USA NO collect calls PLEASE!!!!!!!!!! HARDCOPY TUBE DUMP UTILITY --------------------------} After requesting that the printer be initialized for hardcopy output the following commands are available to you at a}ny time: 1. SHIFT+C To produce large 960 pts/line output. 2. SHIFT+X To produce small 960 pts/line output}. 3. SHIFT+Q To stop/abort the printing.ts/line output. 2. SHIFT+X To produce small 960 pts/line output4Continued... THE DEMONSTRATION DATA ---------------------- Included on your disk are several demo data} sets (.DAT). These are intended to give to you the opportunity to practice windowing and see some examples of the }output and data that creates these results. Yes, this is a peek at the abode of one of the authors. We suggest you }discard this data when you finish wondering about the size of the monthly heating bills with all of those windows. B}e sure to scale up the display enough to see the doors and windows appear. DATA OVERVIEW -------}------ We assume you have a working knowledge of both Basic and DOS commands. Given this assumption there are many }features we considered adding to this package that are not included. This has saved us considerable time and you con}siderable space on this floppy! It is up to you to delete unwanted data files, move the help files to another disk if} you need the space, etc. If you have two drives there are some things you can do to take advantage of your good fort}une! You can set up the system to have all the HELP files and data files on the second disk as follows: 1. Change }HELP.BAS statement that opens files to D2: 2. Use DOS copy command: COPY D1:HELPDOC.*,D2:*.* COPY D1:}DEMO*.*,D2:*.* COPY D1:*.DAT,D2:*.* 3. Delete all the above from D1 after checking directory of D2:} 4. Answer questions concerning file names in Print and Display codes starting with "D2:". For large a}pplications develop your data in pieces. Refer to our comments on coordinate systems to insure they can be merged la}ter. Use a numbering scheme for your data to separate the files. The first might start with DATA statements of 1000}0., the second with 11000. etc. Work on just one part at a time using the LIST command to save it. When the sectio}ns appear to be working well separately use the Basic ENTER command to bring them all together and then LIST them bac}k to disk under a unique name. A good guide line might be to develop your data files in sizes of less than 200 DATA }statements. If your final file is huge you may wish to run D1:DRAW1.BAS through a basic masher. Because of the libe}ral usage of comment cards this will reduce the code size by 40%. After saving a copy of the original program you can} now replace the version on your working disk. If you still need a little room try striping out your DATA "REM"'s a}s a last resort. Unless your layout includes every 2X4 in your house you shouldn't have to resort to any of these idea}s. DATA COORDINATE SYSTEMS ----------------------- This package allows you to put in coordinates in the} traditional engineering right handed system. Positive X increases to the right and positive Y increases as it goes }towards the top of the tube. Angles are to be input in degrees. They may be greater than 360. Positive angles go counte}r clockwise and zero degrees is a horizontal line to the right. X and/or Y positions may be positive or negative and} they may be input as fractions, such as -14.25. You should select the units appropriate for the application you hav}e in mind. In the demos included with the package the units are feet. You can select any origin as your base. If y}ou wish to merge various files later you should use common units and origin systems for all the files. This will avo}id any relative mapping problems when they are merged together. The Atari is single precision and a natural system f}or atoms would likely lead to some accuracy problems. You might find a rough sketch on a piece of graph paper will a}id in picking up values to locate items. GENERAL RULES ------------- 1. Honor thy Mother and} Father. 2. Don't spend all your time on your ATARI home computer. 3. Keep your floppies clean. 4. Don't g}ive away this software. You get the idea.! There really isn't any restrictions so get in there and have some fun!} ENTITY FORMATS -------------- Type Entity 1 Horizontal Text at Bottom 2 Horizontal Text at X,Y} 3 Vertical Text at X,Y 4 Horizontal Text Centered at X,Y 5 Vertical Text Centered at X,Y 7 Counter Clockwise Arc} 8 Full Circle 9 Random String of Connected Points 10 Hollow Box Parallel to X,Y Axis 11 Solid Box Parallel to X,Y }Axis 12 Hollow Box at Angle to X Axis TEXT(TITLE) ----------- Type..... 1; Title Text at Bottom Format... Type,X,}Y,TEXT Example.. 10120 DATA 1,0,0, BASEMENT Description: This entity will center a line of text on the }bottom line of the screen. This text will not be affected by any window operations performed. Even though the posi}tion coordinates X and Y have no effect on the resulting display they must be supplied. TEXT(HORIONTAL) ------------}--- Type..... 2; Horz. Text At X,Y Format... Type,X,Y,TEXT Example. 10130 DATA 2,-4,34,DEN Description: This e}ntity will display a horizontal line of text starting at the position supplied. Characters are not scaled but float }to whatever position the anchor X,Y plots. The clipping logic clips whole characters. TEXT(VERTICAL) --------------} Type..... 3; Vert. Text At X,Y Format... Type,X,Y,TEXT Example.. 10140 DATA 3,3,4.5,DESK Description: This enti}ty will display a vertical line of text starting at the position supplied. The anchor position X,Y may be in any qua}drant and fractional input is fine. All text entities limit an individual text entry to a maximum of 40 characters. } TEXT(HORIZONTAL) ---------------- Type.... 4; Horz. Text Centered at X,Y Format.. Type,X,Y,TEXT Example}. 10150 DATA 4,1,4, MACHINING CELL #12 Description: This entity will display a horizontal line of text cen}tered on the position supplied. You will find the centering options tend to give more reasonable displays for a wide } range of scale factors. TEXT(VERTICAL) -------------- Type.... 5; Vert. Text Centered Format.. Type,X,Y,TEXT  }Example. 10160 DATA 5,1,4,Oak Tree Description: This entity will display a vertical line of text centered on the po }sition supplied. Geometry plots in GR.8 but Text simulates GR.0 and tends to jump to positions in that plotting grid.  } Some adjustments are made internally to allow fine resolution in the vertical positioning location. ARC ---  } Type.... 7; CCW Arc Format.. Type,ANG,XC,YC,R,ANG1, ANG2 Example. 10170 DATA 7,10,5,4,2,0, 90 D}escription: This example will display an arc who's center is 5,4 and radius is 2 starting at 0 degrees and swinging }counter clockwise 90 degrees. A point will be sampled on this arc every 10 degrees. Try this with your own code and } you will actually get an oval. The windowing function adjusts for the non-uniform size of units in GR.8. CIRCLE }------ Type.... 8; Full Circle Format.. Type,ANG,XC,YC,R Example. 10180 DATA 8,15,2.5,3.7,2 Description: This ex}ample will display a circle who's center is 2.5,3.7 and radius is 2. A point will be sampled every 15 degrees. Circ}les are the slowest entity to plot and you may wish to use a crude angle during initial tryout. You will find that a } final angle of 10 degrees gives a very good display. Using other corse angles gives five sided end tables, etc. CO}NNECTED POINTS ---------------- Type.... 9; String of Points Format.. Type,#,X1,Y1,.....,X#,Y# Example. 10190 DATA 9},2,0,0,7,5 Description: This entity draws a connected string of up to 200 points. The example would draw a two poi}nt line from 0,0 to 7,5. Count your commas carefully to make sure you have the correct number of X,Y pairs. This is} the most frequent error made when inputing data! BOX(HOLLOW) ----------- Type.... 10; Box || to X-Axis Format.. }Type,X,Y,XLENGTH,YLENGTH Example. 10200 DATA 10,0,0,5,-2 Description: This entity draws a hollow box square to your} X,Y axis system. In the included demo data this data type was combined with type 11 to create the effects of solid }walls with interior windows and doors. By switching the signs for the box's lengths you have quite a bit of freedom in} positioning your display. BOX(SOLID) ---------- Type.... 11; Solid Box || X-Axis Format.. Type,X,Y,XLENGTH,YLENG}TH Example. 10210 DATA 11,0,0,5,-2 Description: This entity draws a solid box square to your X,Y axis system. In}put conventions just like hollow box. Well; we're almost at the end just hang in there a little longer! BOX(ANGLED)} ----------- Type.... 12; Hollow Box at Angle Format.. Type,X,Y,XL,YL,ANGLE Example. 10220 DATA 12,0,0,5,-2,  } 35 Description: This entity draws a hollow box at a given "ANGLE" measured counter clockwise from the X-axis. !}The point about which the box is rotated is its lower left hand corner if it were set down square to the X-axis. We "}had a lot of fun making the cliping logic work for this entity! PLOT CONTROL ------------ F#}uture releases will contain different line fonts like dashed, etc. We also have plans on the drawing boards for scalea$}ble text. In this release however we did slip in one peek at this type of function. In plot type 9, point array, %}you can trigger penup or blanking between imbedded points. You do this by setting an X,Y pair where you want this featu&}re to the following value. X=-777777. This triggers command Y=1 ID# of command wanted THE END ....bet you're gla'}d!!! Really, try this program out. You will be glad you did. Its a lot of fun and your friends will be amazed at wh(}at your little ATARI has done. HAPPY CAD!be glad you did. Its a lot of fun and your friends will be amazed at wh1 GENERAL PURPOSE OF PACKAGEWe feel that the ATARI has a powerfulset of graphic capabilities. Howeverthe benefits o*}f developing a graphicspicture usually isn't worth all thetime and energy for the typicalcomputer owner.The goal of this+} package is to allowyou to quickly define a graphicallayout, such as a home floor plan.You will discover that this softwa,}resupports a variety of ways to defineyour geometry and control the sizeand location of images on the tube.It is our hop-}e that our efforts willresult in a new set of useful workfor your home computer. GOOD LUCK!!s on the tube.It is our hop` GETTING STARTED Page #1After playing with the demos forawhile you will want to startexperimenting yourself. /} A fewsuggestions are in order.1. Number DATA statements > 9999.2. Use lots of REM statements.3. Make a master of the LA0}YOUT disk.4. Give your files a meaningful name.5. End file names with D:??????.DAT6. Save frequently using LIST.7. Debug 1}parts as they are entered.This last suggestion requires a moredetailed hint to see how easily thiscan be done. 2} GETTING STARTED Page #2 (Create/Debug)The first time you enter the displaypackage it can tell it doesn't hav3}eany data attached and it stops andasks you for the name of a data file.If what you really want to do iscreate a new file4} simply hit theBREAK key at this time and starttyping.After entering a few geometry cardstype RUN. The program will now5} seethat data statments are included andit will display your information.You will notice an option in themain menu to ST6}OP. This option isthere to allow you to exit and addor change data at your leasure. GETTING STARTED Page #37} (Create/Debug)When you have made enough progressthat you would cry if the systemlocked up its time to save usin8}g theLIST command.To start a new file or delete allyour data use the option in the mainmenu called "NEW DRAWING". Warni9}ngdon't use this option if you haven'tstored your data yet!If you screw up a format the errordisplayed is normally a ref:}errenceto an unsupported entity type=-3.47.This number will be a value in a datastatement where you goofed a formator the;} point count to be ploted.  GETTING STARTED Page #4GOOD LUCK!!!If you're like me you'll find itsmore fu<}n and much easier movingfurniture on the ATARI than doingit by hand.Of course maybe your spouse neverchanges his/she mi=}nd. much easier movingfurniture on the ATARI than doingit by hand.Of course maybe your spouse neverchanges his/she mi MAKING YOUR OWN MANUALOn the back side of this disk is acomplete set of the files used tosupport the HELP command!?}. Also onthis side are files named"MANUAL1.DOC" and "MANUAL2.DOC".To make your own hardcopy Manualsimply run the Print !@}Data routinefrom the first Menu.Input the file name D:MANUAL1.DOCand then flip over the disk to sidetwo before hitting t!A}he return key!Repeat procedure with "MANUAL2.DOC".If your data files are filling up thespace on this floppy and you can l!B}ivewithout the HELP aids for awhile youmay delete the HELP data. In DOSdelete "D:HELPDOC.*". BE SURE YOUHAVE A BACKUP CO"j} CONTACTING THE AUTHORSWe have enjoyed writing thissoftware. Phil and I both workduring the day for a major supplier%D}of graphics systems and we find itfun to try and fit the Big Blue'slogic into an Atari.We of course would like any feedb%E}ackyou might wish to offer eitherpositive or something Phil shouldhave done better.Send your postcards to: Jack Gilch%F}rist Phil Heavens 42039 Bay Court Infinite Loop Sterling Heights Bit Dropper Michigan 48078 Assembly USA%G} No collect calls PLEASE!!!!!! Heights Bit Dropper Michigan 48078 Assembly USA$C THE DEMONSTRATION DATAIncluded on your disk are severaldemo data sets. These are intendedto give to you the op)I}portunity topractice windowing and see someexamples of the output and data thatcreates these results.Yes, this is a peek)J} at the abode ofone of the authors.We suggest you discard this data whenyou finish wondering about the sizeof the monthl)K}y heating bills with allof those windows.Be sure to scale up the displayenough to see the doors and windowsappear. )L} ose windows.Be sure to scale up the displayenough to see the doors and windowsappear. ( DATA COORDINATE SYSTEMSThis package allows you to put incoordinates in the traditionalengineering right handed sy-N}stem.Positive X increases to the rightand positive Y increases as it goestowards the top of the tube.Angles are to be i-O}nput in degrees.They may be greater than 360.Positive angles go counter clockwiseand zero degrees is a horizontal lineto -P}the right.X and/or Y positions may be positiveor negative and they may be input asfractions, such as -14.25. DATA CO-Q}ORDINATE SYSTEMS Page #2You should select the unitsappropriate for the application youhave in mind. In the demos includ-R}edwith the package the units are feet.You can select any origin as yourbase. If you wish to merge variousfiles later yo-S}u should use commonunits and origin systems for all thefiles. This will avoid any relativemapping problems when they are-T}merged together.The Atari is single precision and anatural system for atoms would likelylead to some accuracy problems.-U}You might find a rough sketch on apiece of graph paper will aid inpicking up values to locate items. racy problems.,m ENTITY FORMATS Page #1 of manyType Entity 1 Horizontal Text at Bottom 2 Horizontal Text at X,Y 1W} 3 Vertical Text at X,Y 4 Horizontal Text Centered at X,Y 5 Vertical Text Centered at X,Y 7 Counter Clockwise 1X}Arc 8 Full Circle 9 Random String of Connected Points 10 Hollow Box Parallel to X,Y Axis 11 Solid Box Parallel to 1Y}X,Y Axis 12 Hollow Box at Angle to X AxisNote: Entities come in two flavors. The first is text and the second1Z} is line geometry. ENTITY FORMATS Page #2Type....... 1; Title Text at BottomFormat.....Type,X,Y,TEXTExampl1[}e.... 10120 DATA 1,0,0,BASEMENTDescription: This entity will center a lineof text on the bottom line of thescreen1\}. This text will not beaffected by any window operationsperformed.Comments: Even though the positioncoordinates X 1]}and Y have no effecton the resulting display they mustbe supplied.  ENTITY FORMATS Page #3Type....... 2; H1^}orz. Text At X,YFormat.....Type,X,Y,TEXTExample.... 10130 DATA 2,-4,34,DENDescription: This entity will display a1_}horizontal line of text startingat the position supplied.Comments: Characters are not scaled butfloat to whatever po1`}sition theanchor X,Y plots. The clippinglogic clips whole characters. ENTITY FORMATS Page #4Type....... 31a}; Vert. Text At X,YFormat.....Type,X,Y,TEXTExample.... 10140 DATA 3,3,4.5,DESKDescription: This entity will displa1b}y avertical line of text startingat the position supplied.Comments: The anchor position X,Y may bein any quadrant a1c}nd fractional inputis fine. All text entities limit anindividual text entry to a maximumof 40 characters. 1d} ENTITY FORMATS Page #5Type....... 4; Horz. Text Centered Format.....Type,X,Y,TEXTExample.... 10150 DATA 4,1,4,MACHI1e}NING CELL #12Description: This entity will display ahorizontal line of text centeredon the position supplied.Comm1f}ents: You will find the centeringoptions tend to give more reasonabledisplays for a wide range of scalefactors. 1g} ENTITY FORMATS Page #6Type....... 5; Vert. Text Centered Format.....Type,X,Y,TEXTExample.... 10160 DATA 5,1,41q}Db%DOS SYSb*)DUP SYSb SAUTORUN SYSb_HELP DOCbhoMANUAL1 DOCbRMANUAL2 DOCb)HELPDOC T2 b.HELPDOC T4 b>HELPDOC T7 bCHELPDOC T9 bHHELPDOC T11b MHELPDOC T21b+VHELPDOC T23bHELPDOC T1 b HELPDOC T3 b#HELPDOC T6 b HELPDOC T8 bHELPDOC T10bHELPDOC T20bHELPDOC T22bHELPDOC T24bDRAW2D LSTbkHELPDOC T25b{HELPDOC T26b HELPDOC T27,Oak TreeDescription: This entity will display avertical line of text centeredon the position supplied.Comments:1r} Geometry plots in GR.8 but Textsimulates GR.0 and tends to jump topositions in that plotting grid.Some adjustments ar1s}e made internallyto allow fine resolution in thevertical positioning location. ENTITY FORMATS Page #7Type.1t}...... 7; CCW Arc Format.....Type,ANG,XC,YC,R,ANG1,ANG2Example.... 10170 DATA 7,10,5,4,2,0,90Description: This exa1u}mple will display anarc who's center is 5,4 and radiusis 2 starting at 0 degrees andswinging counter clockwise 90degrees.1v} A point will be sampledon this arc every 10 degrees.Comments: Try this with your own code andyou will actually get1w} an oval. Thewindowing function adjusts for thenon-uniform size of units in GR.8. ENTITY FORMATS Page #8Ty1x}pe....... 8; Full Circle Format.....Type,ANG,XC,YC,RExample.... 10180 DATA 8,15,2.5,3.7,2Description: This example1y} will display acircle who's center is 2.5,3.7 andradius is 2. A point will besampled every 15 degrees.Comments: Ci1z}rcles are the slowest entityto plot and you may wish to use acrude angle during initial tryout.You will find that a final 1{}angle of10 degrees gives a very good display.Using other corse angles gives fivesided end tables, etc. ENTITY 1|}FORMATS Page #9Type....... 9; String of PointsFormat.....Type,#,X1,Y1,......,X#,Y#Example.... 10190 DATA 9,2,0,0,7,51}}Description: This entity draws a connectedstring of up to 200 points. Theexample would draw a two point linefrom 1~}0,0 to 7,5.Comments:Count your commas carefully to makesure you have the correct number ofX,Y pairs. This is the most 1}frequenterror made when inputing data. ENTITY FORMATS Page #10Type.......10; Box || to X-AxisFormat.....Typ1}e,X,Y,XLENGTH,YLENGTHExample.... 10200 DATA 10,0,0,5,-2Description: This entity draws a hollow boxsquare to your X1},Y axis system.Comments: In the included demo data thisdata type was combined with type 11to create the effects of s1}olid wallswith interior windows and doors. By switching the signs for thebox's lengths you have quite a bitof freedo1}m in positioning yourdisplay. ENTITY FORMATS Page #11Type.......11; Solid Box || X-AxisFormat.....Type,X,Y1},XLENGTH,YLENGTHExample.... 10210 DATA 11,0,0,5,-2Description: This entity draws a solid boxsquare to your X,Y ax1}is system.Comments: Input conventions just likehollow box. Well; we're almost at the endjust hang in there a 1}little longer! ENTITY FORMATS Page #12Type.......12; Hollow Box at AngleFormat.....Type,X,Y,XL,YL,ANGLEExa1}mple.... 10220 DATA 12,0,0,5,-2,35Description: This entity draws a hollow boxat a given "ANGLE" measured countercl1}ockwise from the X-axis.Comments: The point about which the boxis rotated is its lower left handcorner if it were se1}t down squareto the X-axis. We had a lot of fun making thecliping logic work for this entity! ner if it were se0l USING THE HELP UTILITIESOn your disk is stored various filesof textual information that try toexplain the oper5}ation of the ATARICAD/CAM LAYOUT package. After youselect the area where you would likesome assistance this file is 5}shownon your screen. At this time youmay select from any of the followingoptions: 1. RETURN TO MENU Hit any 5}key 2. CONTINUE WITH NEXT PAGE Hit space bar 3. MAKE HARDCOPY OF TUBE Hold SHIFT and hit key "C" Se5}e HELP for other optionsXT PAGE Hit space bar 3. MAKE HARDCOPY OF TUBE Hold SHIFT and hit key "C" Se4 COMMENTS ON THE GENERAL PROCEDUREThe method of operation expectedin this package is for the user tocreate a file on d9}isk describing thepicture desired.This is done by using the basiclanguage capabilities to create aseries of data stateme9}nts to describethe geometry wanted.The types and forms of geometrysupported are described under theheading "ENTITY FORMA9}TS".The picture description once createdand checked out can be easily savedby using the basic "LIST" command. GE9}NERAL PROCEDURE Page #2Example of LIST: LIST "D1:KITCHEN.DAT",10000,12000When the display package is executedyour 9}saved data statements will betemporarily added to the code.It is important that the numberingscheme for the data contains9} onlyvalues of 10000 or larger to insurethat it doesn't destroy part of thedisplay facility.You will also find it helpfu9}l toinclude a liberal amount of "REM"statements in your data field todocument your intent. GENERAL PROCEDURE 9} Page #3Before jumping in with both feet Isuggest that you skim through allthe help options.We have sprinkled many use9}ful ideasthroughout the documentation. We did this because we feel theprocedures are simple enough thatonce you start yo9}u won't come backto hear all of our words of wisdom.ecause we feel theprocedures are simple enough thatonce you start yo87 WINDOWING Page #1You have gatherd by now that all isnot roses and the question becomesjust what do you g=}et for all yourwork inputing your entities. Theanswer is two things. COORDINATE INDEPENDANCEFirst you will notice t=}hat you selectthe units to be used to describe yourdata. You were not concerned withhow much would fit on the tube or how=}many plotting units there are in thetube horizontal and vertical axis.You can also use both fractional andnegative units =}if these are useful.The facility layout display worldwill take care of all the matrixoperations needed to keep the Atarir=}ule book happy! WINDOWING Page #2 DISPLAY SCALEINGMost important you can now displayyour data =}in a variety of ways justlike on the expensive CAD/CAMgraphic systems.You need have no worries about thedata that may di=}sappear off thescreen wrapping around or generatingerrors during plotting. You willnotice some surprisingly powerfulclip=}ping logic.For example; a box might might haveall four corners off the tube butone edge should cross the picturedisplaye=}d, and it does!!! WINDOWING Page #3Just what is a "Window"?The word "Window" is both a noun anda verb.=}When used as a noun it refer to a boxdescribed by two points.The two points are positions in yourinput coordinate syste=}m that definesthe region of your picture that youwant displayed on the tube.One point is called the min value andis the =}lower left hand point of thebox. The other, called the max valueor point, is the upper right handcorner of the box. =} WINDOWING Page #4A default box is created for you eachtime you run the program. The sizeis calculated such t=}hat all of yourdata justs fits into the window.This is done by looking at all ofyour data and determining its maximumand=} minimum values in both X and YYou will have a variety of optionsfor changing the size and/or locationof the window being=} used. You mayalso set it back to the original sizeto see all your data if you want.When you scale by say Two times size=}the package does this by simplyreducing the size of the windowbeing used while holding the centerposition. W=}INDOWING Page #5"Window" the verb refers to theprocess of mapping your data intoa reasonable image on a graphicsdev=}ice.This process clips off data off thetube and finds the exact position onthe edge of the screen where a lineshould sta=}rt or finish displaying.It adjusts your window box to thesame proportions as the tube toinsure that the angle of any line=}sdisplayed are true orientations.It also does the appropiate Y-Axisflipping to map from the traditionalrighthanded coord=}inate system intoAtari's lefthanded system. WINDOWING Page #6This package supports the followingwindowi=}ng,'verb', options:To move a window. 1. SHIFT X 2. SHIFT Y 3. SET CENTER XC,YCTo scale a window. 1. SCALE BY # =}2. SET SCALETo move and/or scale a window. 1. SET WINDOW 2. WINDOW=DATA MAX-MIN'S WINDOWING Page #7=}Note that the windowing menu alsocontains a display of the currentwindow range and the range of yourdata.I suggest you b=}ecome familiar withthe windowing options by displayingone of the demo data sets. You dothis by inputing its name upon ent=}ry.For example: D:DEMO1.DATThen try all the window optionswatching not only the resultingdisplays but also the effects =}of yourcommands on the window range.By the way; to terminate a displayand return to the display menu justhit any key. =} WINDOWING Page #8Don't forget that by initilizing thetube dump utility included with thispackage you can t=}ransfer anything youcan get to the tube to your printer.This includes pictures, menus anddata or program listings. But mo=}reabout that in another HELP menu.I think you will find the data list-ing facility faster and of higherquality if you wan=}t to list your dataor dive in an try to figure out howthis package works.Well, I've finally run out of wordson what you =}can tell is my favoratesubject. I'm a little surprised thatyou hung in there with me but I sureyou'll agree it was worth =}it. Afterall this is really the part of theprogram that makes it unique! me but I sureyou'll agree it was worth <U COPYING CODES IN THIS PACKAGEWe encourage you to cut and pastesome good utilities from thispackage. For this reason tA}hesoftware was not mashed, etc. butleft intact with many good commentsto explain how it works.We of course encourage thaA}t this willbe for your own use to protect theeconomic well being of the authorsof this package.Some packages you might fA}ind valuablewould include: 1. Assy code for text in GR.8 2. Basic data print. 3. Assy tube dump. 4. Basic Help cA}ontroller. 5. Basic Assy code loader. COPYING CODES Page #2We could supply a few hints onconversion but tA}hat would take allof the fun out of it for you.OK; Just one hint!The basic data print utility does anice job as is for A}an MX80 printerwith just one little fix. Changethe card RUN "D:DRAW" to simply say"END".If you don't have an Epson prinA}tertake out the printer initializationstatements and the basic logic willstill deliver the goods minus acouple of minor tA}hings like anunderlined title. tatements and the basic logic willstill deliver the goods minus acouple of minor t@) HARDCOPY TUBE DUMP UTILITYAfter requesting that the printer beinitialized for hardcopy output thefollowing commanE}ds are available toyou at any time: 1. SHIFT+C To produce large 960 pts/line output. 2. SHIFT+X To produce sE}mall 960 pts/line output. 3. SHIFT+Q To stop/abort printing. 960 pts/line output. 2. SHIFT+X To produce sDF DATA OVERVIEW We assume you have a working knowledge of both Basic and DOS commands.Given this assumpI}tion there are manyfeatures we considered adding to thispackage that are not included. Thishas saved us considerable timeI} andyou considerable space on thisfloppy!It is up to you to delete unwanteddata files, move the help files toanother diI}sk if you need the space,etc. DATA OVERVIEW Page #2If you have two drives there aresome things you can doI} to takeadvantage of your good fortune!You can set up the system to have allthe HELP files and data files on thesecond dI}isk as follows: 1. Change HELP.BAS statement that opens files to D2: 2. Use DOS copy command: COPY D1:HELPDOI}C.*,D2:*.* COPY D1:DEMO*.*, D2:*.* COPY D1:*.DAT, D2:*.* 3. Delete all the above from D1 after checkI}ing directory of D2: 4. Answer questions concerning file names in Print and Display codes starting with "D2:".I} DATA OVERVIEW Page #3For large applications develop yourdata in pieces. Refer to ourcomments on coordinatI}e systems toinsure they can be merged later.Use a numbering scheme for your datato separate the files. The firstmight sI}tart with DATA statements of10000., the second with 11000. etc.Work on just one part at a time usingthe LIST command to sI}ave it. Whenthe sections appear to be workingwell separately use the Basic ENTERcommand to bring them all togetherand thI}en LIST them back to disk undera unique name. DATA OVERVIEW Page #4A good guide line might be to developyoI}ur data files in sizes of less than200 DATA statements.If your final file is huge you maywish to run D1:DRAW1.BAS throughI} abasic masher. Because of the liberalusage of comment cards this willreduce the code size by 40%.After saving a copy oI}f the originalprogram you can now replace theversion on your working disk. If you still need a little room trystriping I}out your DATA "REM"'s as alast resort. Unless your layoutincludes every 2X4 in your house youshouldn't have to resort to I}the ideason this page. alast resort. Unless your layoutincludes every 2X4 in your house youshouldn't have to resort to H GENERAL RULES 1. Honor thy mother and father. 2. Don't spend all your time on your home computer. 3M}. Keep your floppies clean. 4. Don't give away this software. You get the idea.! There really isn't any restrictionM}s so get in there and have some fun! away this software. You get the idea.! There really isn't any restrictionL, PLOT CONTROL Future releases will containdifferent line fonts like dashed,etc. We also have plans on thedrawQ}ing boards for scaleable text.In this release however we did slipin one peek at this type of function.In plot type 9, poQ}int array, you cantrigger penup or blanking betweenimbedded points.You do this by setting an X,Y pairwhere you want thisQ} feature to thefollowing value. X=-777777. This triggers command Y=1 ID# of command wantedwhere you want thisPj1000 DIM PT$(1),PTLAST$(1),ANS(2,2)1010 GOTO 27101020 REM 1030 REM | PLOTING CODE DRAW2D |1040 REMU} | RELEASE 1.3 |1050 REM 1060 CLIP$="Y"1070 ALAST=-777777:BLAST=ALAST1080 PTLAST$="I"1090U} K=01100 FOR KK=1 TO PTCNT1110 X=XY(KK,1):Y=XY(KK,2)1120 REM 1130 REM | TEST FOR DATA COMMAND |U}1140 REM 1150 IF X<>-777777 THEN 11801160 REM COMMAND=1 IS PEN UP1170 IF Y=1 THEN CLIP$="Y":GOTO U}21801180 REM 1190 REM | CONVERT X,Y TO TUBE A,B |1200 REM 1210 K=K+U}11220 DIFX=0.86*(X-XCENTER)1230 X=XCENTER+DIFX1240 A=(X-XMIN)*REL1+AMIN1250 B=(Y-YMIN)*REL2+BMAX1260 REM U}1270 REM | CLIP LOGIC |1280 REM 1290 PT$="I"1300 IF AAMAX THEN PT$="O"1310 IF BBMAX TU}HEN PT$="O"1320 IF PT$="I" AND PTLAST$="I" THEN GOTO 20801330 IF PT$="O" AND PTLAST$="O" THEN GOTO 15801340 IF PT$="I" ANDU} PTLAST$="O" THEN GOTO 18601350 REM 1360 REM | PT IS OUT, LAST PT IN |1370 REM U}1380 IF K=1 THEN 21601390 X=A:Y=B1400 IF A=ALAST THEN 14901410 IF B=BLAST THEN 15401420 REM 1430 REM NOT 90 DEGRU}EES TO EDGE1440 GOSUB 22001450 IF CNT<1 THEN 21601460 X=ANS(1,1):Y=ANS(1,2)1470 GOTO 15701480 REM 1490 REM VERT LINE15U}00 IF B>BMAX THEN Y=BMAX1510 IF BAMAX THEN X=AMAX15U}60 IF AAMAX AND ALAST>AMAX THEN 21601630 IF BBMAX AND BLAST>BMAX THEN 21601650 IF K=1 THEN 21601660 X=A:Y=B1670 IF A=ALAST THEN U}17601680 IF B=BLAST THEN 18001690 REM 1700 REM LN HITS TUBE AT ANGLE1710 GOSUB 22001720 IF CNT<>2 THEN 21601730 X=ANS(1U},1):Y=ANS(1,2)1740 ALAST=ANS(2,1):BLAST=ANS(2,2)1750 GOTO 18301760 REM VERT LINE ACROSS TUBE1770 IF BBMAX THEN Y=BMAX:BLAST=BMIN1790 GOTO 18301800 REM HORZ LINE ACROSS TUBE1810 IF AAMAX THEN X=AMAX:ALAST=AMIN1830 PLOT ALAST,BLAST1840 DRAWTO X,Y1850 GOTO 21601860 REM U}1870 REM | PT IS IN, LAST PT OUT |1880 REM 1890 IF A=ALAST THEN 19901900 IF B=BLAST THEN 2U}0401910 REM 1920 REM NOT 90 DEGREES TO EDGE1930 IF K=1 THEN 21601940 GOSUB 22001950 IF CNT<1 THEN 21601960 ALAST=ANS(1,U}1):BLAST=ANS(1,2)1970 GOTO 20701980 REM 1990 REM VERT LINE2000 IF BLAST>BMAX THEN BLAST=BMAX2010 IF BLASTAMAX THEN ALAST=AMAX2060 IF ALASTBMAX OR YAMAX OR XA AND X>ALAST THEN 24802400 IF XB AND Y>BLAST THEN 24802420 IF YANG2 THEN ANG2=ANG2+360:GOTO 25702580 IF ANG<5 THEN ANV}G=52590 REM CHECK FOR CIRCLE OFF TUBE2600 IF XC-R>XMAX THEN RETURN 2610 IF XC+RYMAX THEN RV}ETURN 2630 IF YC+R255 THEN POP :GOTO 37403720 NEXT I3730 GOTOV} 36303740 OPEN #4,4,0,"K:":GET #4,X3750 CLOSE #4:GOTO 47203760 REM 3770 REM | START LOOP FOR PLV}OTING |3780 REM 3790 ECNT=03800 ADR1=ADR(PRINT$):ADR2=ADR(TEXT$)3810 REM GET NEXT COMMAND TYPEV }3820 TRAP 35903830 READ TYPE:TYPE=INT(TYPE)3840 ECNT=ECNT+13850 TEXT$(1)=STR$(ECNT)3860 X=LEN(TEXT$)3870 TEXT$(X+1)=" OFV!} "3880 X=LEN(TEXT$)3890 TEXT$(X+1)=STR$(ECNT1)3900 X=LEN(TEXT$)3910 IF ECNT=ECNT1 THEN TEXT$=" ":X=83920 IF ECNT=V"}1 AND TYPE<>1 THEN TEXT$(X+1)=" ATARI LAYOUT BY JACK GILCHRIST":X=LEN(TEXT$)3930 IF TYPE=1 THEN TEXT$(X+1)=" V#} ":X=LEN(TEXT$)3940 C=USR(ADR1,0,23,ADR2,X)3950 REM 3960 REM TYPES 1,2,3,4,5 FORMAT3970 REM DATA TYPE,X,YV$},TEXT3980 REM 3990 REM 1=TITLE TEXT AT BOTTOM4000 REM 2=HORZ TEXT STARTING AT X,Y4010 REM 3=VERT TEXT STARTING AT X,Y402V%}0 REM 4=HORZ TEXT CENTERED ON X,Y4030 REM 5=VERT TEXT CENTERED ON X,Y4040 REM TYPE 1 IS ALWAYS DISPLAYED4050 REM X,Y REQUIV&}RED BUT NOT USED4060 REM 4070 REM 6=UNASSIGNED4080 REM 7=CCW ARC FORMAT4090 REM DATA 7,ANG,XC,YC,R,ANG1,ANG24100 REM 4V'}110 REM 8=FULL CIRCLE4120 REM FORMAT DATA 8,ANGLE,XC,YC,R4130 REM ANGLE=DEGREES BETWEEN POINTS4140 REM TO BE SAMPLED4150 V(}REM 4160 REM 9=PT ARRAY4170 REM FORMAT4180 REM DATA 9,PTCNT,X1,Y1,...XN,YN4190 REM 4200 REM 10=BOX4210 REM DATA 10,XMINV)},YMIN,XLENGTH,YLENGTH4220 REM 4230 REM 11=SOLID BOX4240 REM FORMAT SAME AS TYPE 104250 REM 4260 REM 12 BOX AT ANGLE4270V*} REM 4280 IF TYPE<1 OR TYPE>12 THEN GOTO 47104290 ON TYPE GOSUB 6700,6700,6700,6700,6700,2710,2500,2500,4300,4390,4390,4390V+}:GOTO 38104300 REM 4310 REM | SUB FOR PT ARRAY |4320 REM 4330 READ PTCNT4340 FORV,} I=1 TO PTCNT4350 READ X,Y4360 XY(I,1)=X:XY(I,2)=Y4370 NEXT I4380 GOTO 10204390 REM 4400 REM | SUB FOR BV-}OX |4410 REM 4420 REM GET BOX CORNERS4430 GOSUB 70104440 IF TYPE=11 THEN 44604450 GOTO 10204460 REM V.}4470 REM | FILL IN BOX |4480 REM 4490 GOSUB 10204500 DIFX=0.86*(XY(4,1)-XCENTER)4510 X=XCENTERV/}+DIFX:Y=XY(4,2)4520 A1=(X-XMIN)*REL1+AMIN4530 B1=(Y-YMIN)*REL2+BMAX4540 DIFX=0.86*(XY(2,1)-XCENTER)4550 X=XCENTER+DIFX:Y=V0}XY(2,2)4560 A2=(X-XMIN)*REL1+AMIN4570 B2=(Y-YMIN)*REL2+BMAX4580 IF A1>AMAX THEN RETURN 4590 IF A2BMAX THEN RETURN 4610 IF B2AMAX THEN A2=AMAX4640 IF B1BMAX THEN B2=BMAX4660 FOR I=B1 TO B24670 PLOT A1,I4680 DRAWTO A2,I4690 NEXT I4700 RETURN 4710V3} ? "BAD COMMAND";TYPE:GOTO 35904720 REM 4730 REM | MAIN MENU |4740 REM 4750 GRAPHICS 1:POKE 751V4},14760 SETCOLOR 4,9,3:SETCOLOR 2,9,34770 SETCOLOR 0,9,12:SETCOLOR 1,9,104780 POSITION 1,04790 ? #6;"DISPLAY OPTIONS"4800V5} POSITION 1,34810 ? #6;"(A) SET WINDOW"4820 POSITION 1,54830 ? #6;"(B) DISPLAY"4840 POSITION 1,74850 ? #6;"(C) NEW DRAWIV6}NG"4860 POSITION 1,94870 ? #6;"(D) RETURN"4880 POSITION 1,114890 ? #6;"(E) STOP"4900 OPEN #4,4,0,"K:":GET #4,X4910 CLOSV7}E #44920 IF X<65 OR X>69 THEN GOTO 47204930 IF X=69 THEN GRAPHICS 0:END 4940 IF X=68 THEN RUN "D1:DRAW"4950 IF X=67 THEN V8}RUN "D1:DRAW2D.MSH"4960 IF X=65 THEN GOSUB 4990:GOTO 47204970 RESTORE 4980 GOTO 32604990 REM 5000 RV9}EM | SUB TO SET WINDOW |5010 REM 5020 GRAPHICS 05030 ? "INPUT DATA MAX-MIN'S"5040 ? " XMAX=";XB,50V:}50 ? " XMIN=";XS5060 ? " YMAX=";YB,5070 ? " YMIN=";YS:? 5080 ? "CURRENT WINDOW RANGE"5090 ? " XMAX=";XMAX,5100 ? " V;}XMIN=";XMIN5110 ? " YMAX=";YMAX,5120 ? " YMIN=";YMIN:? 5130 ? "YOUR OPTIONS ARE!"5140 ? " (A) SHIFT X"5150 ? " (B) SV<}HIFT Y"5160 ? " (C) SET CENTER XC,YC"5170 ? " (D) SCALE BY #"5180 ? " (E) SET SCALE"5190 ? " (F) SET WINDOW"5200 ? "V=} (G) WINDOW=DATA MAX-MIN'S"5210 ? " (H) RETURN"5220 OPEN #4,4,0,"K:":GET #4,X5230 CLOSE #45240 IF X<65 OR X>72 THEN GOTV>}O 49905250 IF X=72 THEN RETURN 5260 IF X=71 THEN XMAX=XB:XMIN=XS:YMAX=YB:YMIN=YS:GOTO 49905270 IF X=65 THEN GOTO 53305280V?} IF X=66 THEN GOTO 53805290 IF X=67 THEN GOTO 54305300 IF X=68 THEN GOTO 55505310 IF X=69 THEN GOTO 56705320 IF X=70 THENV@} GOTO 57905330 REM SHIFT X5340 ? :? "INPUT DESIRED SHIFT IN X ";5350 INPUT X5360 XMAX=XMAX+X:XMIN=XMIN+X5370 GOTO 49905VA}380 REM SHIFT Y5390 ? :? "INPUT DESIRED SHIFT IN Y ";5400 INPUT X5410 YMAX=YMAX+X:YMIN=YMIN+X5420 GOTO 49905430 REM SET VB}X,Y CENTER5440 ? :? "INPUT X AND Y DESIRED AT CENTER!"5450 ? "CURRENT CENTER IS";5460 A=(XMAX+XMIN)/25470 B=(YMAX+YMIN)/2VC}5480 ? " XC=";A;5490 ? " YC=";B:? 5500 ? "DESIRED CENTER IS ";5510 INPUT X,Y5520 I=X-A:XMAX=XMAX+I:XMIN=XMIN+I5530 I=VD}Y-B:YMAX=YMAX+I:YMIN=YMIN+I5540 GOTO 49905550 REM SCALE BY #5560 CSCALE=ABS((XB-XS)/(XMAX-XMIN))5570 ? :? "CURRENT SCALE=VE}";CSCALE5580 ? "CHANGE SCALE BY=";:INPUT SCALE5590 XC=(XMAX+XMIN)/25600 YC=(YMAX+YMIN)/25610 X=(XMAX-XMIN)/2:Y=(YMAX-YMINVF})/25620 XMAX=XC+X/SCALE5630 XMIN=XC-X/SCALE5640 YMAX=YC+Y/SCALE5650 YMIN=YC-Y/SCALE5660 GOTO 49905670 REM SET SCALE TO VG}#5680 CSCALE=ABS((XB-XS)/(XMAX-XMIN))5690 ? :? "CURRENT SCALE=";CSCALE5700 ? "CHANGE SCALE TO=";:INPUT SCALE5710 XC=(XMAXVH}+XMIN)/25720 YC=(YMAX+YMIN)/25730 X=(XB-XS)/2:Y=(YB-YS)/25740 XMAX=XC+X/SCALE5750 XMIN=XC-X/SCALE5760 YMAX=YC+Y/SCALE57VI}70 YMIN=YC-Y/SCALE5780 GOTO 49905790 ? :REM SET WINDOW VALUES5800 ? "YOUR VALUES";5810 ? " WILL BE ADJUSTED TO"5820 ? "PVJ}ROPORTIONAL RATIO OF THE TV TUBE"5830 ? 5840 ? "INPUT YOUR VIEWPORT AS FOLLOWS"5850 ? "XMAX,XMIN,YMAX,YMIN"5860 ? "YOUR VVK}ALUES ARE ";5870 INPUT XMAX,XMIN,YMAX,YMIN5880 GOTO 49905890 REM 5900 REM | CALC DISPLAY XY MVL}AXMIN'S |5910 REM 5920 XB=-777777:XS=7777775930 YB=-777777:YS=7777775940 GRAPHICS 2:POKE 751,VM}15950 SETCOLOR 4,9,3:SETCOLOR 2,9,35960 SETCOLOR 0,9,12:SETCOLOR 1,9,105970 POSITION 4,15980 ? #6;"PLEASE WAIT!"5990 POSVN}ITION 4,36000 ? #6;"I'M SCANNING"6010 POSITION 4,56020 ? #6;"YOUR DRAWING"6030 POSITION 4,76040 ? #6;"FOR IT'S X,Y"6050VO} POSITION 4,96060 ? #6;" MAX-MIN'S!"6070 TRAP 66506080 ECNT1=06090 REM 6100 REM LOOP FOR EACH ENTITY6110 READ TYPE6120VP} ECNT1=ECNT1+16130 IF TYPE=8 OR TYPE=7 THEN 62006140 IF TYPE>9 AND TYPE<13 THEN 63006150 IF TYPE=9 THEN 64306160 IF TYPE>VQ}0 AND TYPE<6 THEN 65506170 ? "I ENCOUNTER A TYPE OF DATA I"6180 ? "DON'T RECOGNIZE. TYPE=";TYPE6190 ? "ENTITY NUMBER IS "VR};ECNT16200 REM 6210 REM | CALC MAXMIN OF CIRCLE |6220 REM 6230 READ ANGVS},XC,YC,R6240 IF TYPE=7 THEN READ ANG1,ANG26250 IF XC+R>XB THEN XB=XC+R6260 IF XC-RYB THEN YBVT}=YC+R6280 IF YC-RXB THEN XBVV}=X6380 IF XYB THEN YB=Y6400 IF YXB THEN XB=X6500 IF XYB THEN YB=Y6520 IF YXB THEN XB=X6610 IF XYB THEN YB=Y6630 IF Y39 THEN GOTO 69706900 IF B>22 AND TYPE>1 THEN GOTO 69706910 IF B<0 OR B>23 THEN GOTO 69706920 CS1$=TEXT$(I,I)6930 RVa}EM ALLOW FOR VERT SHIFT TO6940 REM FRACTIONS OF A LINE6950 J=A+(40*(INT((B-INT(B))*8)))6960 C=USR(ADR(PRINT$),J,B,X,1)697Vb}0 IF TYPE<3 OR TYPE=4 THEN A=A+16980 IF TYPE=3 OR TYPE=5 THEN B=B+16990 NEXT I7000 RETURN 7010 REM 7Vc}020 REM | SUB FOR BOX |7030 REM | CALC ALL CORNERS |7040 REM 7050 READ X,Y,A,B7060 IF A<0 THEN XVd}=X+A:A=-A7070 IF B<0 THEN Y=Y+B:B=-B7080 IF TYPE=12 THEN READ ANG7090 PTCNT=57100 XY(1,1)=X:XY(1,2)=Y7110 XY(2,1)=X+A:XYVe}(2,2)=Y7120 XY(3,1)=XY(2,1):XY(3,2)=Y+B7130 XY(4,1)=X:XY(4,2)=XY(3,2)7140 XY(5,1)=X:XY(5,2)=Y7150 IF TYPE<12 THEN RETURN Vf}7160 REM 7170 REM | ROTATE BOX TYPE=12 |7180 REM 7190 XC=XY(1,1):YC=XY(1,2)7Vg}200 FOR I=2 TO 47210 IF I=2 THEN ANG1=0:R=A7220 IF I=4 THEN ANG1=90:R=B7230 IF I<>3 THEN 72707240 DIFX=XY(I,1)-XC:DIFY=XYVh}(I,2)-YC7250 R=SQR((DIFX*DIFX)+(DIFY*DIFY))7260 ANG1=ATN(DIFY/DIFX)7270 ANG2=ANG+ANG17280 XY(I,1)=(R*COS(ANG2))+XC7290 XVi}Y(I,2)=(R*SIN(ANG2))+YC7300 NEXT I7310 RETURN ANG1=ATN(DIFY/DIFX)7270 ANG2=ANG+ANG17280 XY(I,1)=(R*COS(ANG2))+XC7290 XT1PY THOUGH!!! P aids for awhile youmay delete the HELP data. In DOSdelete "D:HELPDOC.*". BE SURE YOUHAVE A BACKUP CO  SAVING Page 1. The method of operation expected in this package is for the user to create a fileZl} on disk describing the picture desired. This is done in BASIC by using the BASIC language capabilities to create a sZm}eries of regular "DATA statements" to describe the geometry wanted. The types and forms of geometry supported are deZn}scribed under the heading "ENTITY FORMATS". After you have finished writing your DATA statements and your drawing isZo} created, or when you have made enough progress that SAVING Page 2. you would cry if the system eZp}ver locked up, simply save the DATA statements to disk using the LIST command LIST "D1:Filename.DAT" The picture desZq}cription contained in DATA statements starting at Line 10000 will now be saved to disk. Example of LIST: LIST "D1Zr}:KITCHEN.DAT", 10000, 12000 Note: Be sure to use the Extension "DAT" in order for the CAD display package to recogniZs}ze your data files. SAVING Page 3. When the CAD display package is executed your saved data sZt}tatements will be temporarily added to the code. It is very important that the numbering scheme for the data contains Zu}only values of "10000 or larger" to insure that it doesn't destroy part of the display facility when loaded. You willZv} also find it helpful to include a liberal amount of "REM" statements in your data field to document your intent! Zw}To examine or modify your previously saved picture description, simply use the ENTER SAVING Page 4Zx}. command from Basic to load the DATA statements. Example of ENTER: ENTER "D1:KITCHEN.DAT" Once the file is loaZy}ded, simply type "LIST" or "L." to view. Modifications may then be added and the file can then be LISTed to disk agZz}ain.simply type "LIST" or "L." to view. Modifications may then be added and the file can then be LISTed to disk agX LISTING Page 1. A few suggestions are in order: 1. Number the DATA statements > 9999. That ^|}is, start number- ing your DATA statements at line 10000 (ten thousand). 2. Use lots of REM statements to ^}} document your intent. 3. Make a master of the LAYOUT disk. Always backup! Don't be sorry. 4. Give your^~} files a meaningful name. 5. End file names with "DAT". Eg. "D:??????.DAT" LISTING Page^} 2. 6. Save frequently using LIST. 7. Debug parts as they are entered. This last suggestion on debugging ^}requires a more detailed description to see how easily this can be done. Therefore, see "DEBUGGING". See also, "SAVI^}NG".res a more detailed description to see how easily this can be done. Therefore, see "DEBUGGING". See also, "SAVI\ DEBUGGING Page 1. The first time you enter the display package it can tell it doesn't have any datab} attached and it stops and asks you for the name of a data file. If what you really want to do is create a new file b}simply hit the BREAK key at this time and start typing DATA statements. After entering a few geometry cards type RUNb}. The program will now see that data statments are included and it will display your information. You will notice anb} option in the main menu to STOP. This option is there to allow you to exit and add or change data at your leasure.b} DEBUGGING Page 2. When you have made enough progress that you would cry if the system locked up its b}time to save using the LIST command. To start a new file or delete all your data use the option in the main menu calb}led "NEW DRAWING". Warning don't use this option if you haven't stored your data yet! If you screw up a format the b} error displayed is normally a referrence to an unsupported entity type=-3.47. This number will be a value in a data b} statement where you goofed a format or the point count to be ploted.e=-3.47. This number will be a value in a data `J