Skip to main content

computist scan 20

  • PublicationApple Periodicals
  • Pages36
  • Sourcecomputist-scan-20.pdf
← Magazines computist scan 20
/ 36
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
For The Serious User Of Apple ][ Computers A NAA A IRN YER EE SEES ah SE a BULK RATE U.S. Postage Hardcore COMPUTIST —., PO Box 110846-T Phe Tacoma, WA 98411 SIMPLY- SOFTWARE DISCOUNT SPECIALS ON APPLE SOFTWARE ALL PRICES 30% OFF LIST SPECIAL LIST $2000 SPECIAL $14.00 LIST $99.95 SPECIAL $27.97 ASCII Express Pro DOS 512995 $90.97 FONTRIX Art & Tech, App. FONTRIX Foreign Lang. Brain Game Learn to Type Basic Bullding Blocks $79.95 $ 55.97 FONTRIX Asst. Fancy Sets Alphabets Bulld a Book About You Lucky's Magic Hat BPI Job Cost FONTRIX Bus. & Cort. Sets FONTRIX Letter Forms 8 Gash Receipts Journal Master Match Bpl Spat Reediag FONTRIX Headline 8 Dex Poster Sets Chipwits Mines of Qyntarr Creative Writer Filer Calc Sets Tip Disk #1 Gompuzzier Reading Comprehension Hata Factroy 6 Typetaces Copy i+ Skills I Dragon F 0 Code Tie Tac'Show Dreadnaughts LIST $26.95. SPECIAL $16.87 Expense Journal/Dist. Uptown Double Crostics Fontrix Alice in Wonderiana Swiss Family Robinson Game Show Welcome Aboard Free Trader Jelow the Foo reasure Island Willy Byte in the Digital Dimension et Rich Wizard of Oz dat ~ Heeaatey bs UST $4000 SPECIAL $28.00 LIST $29.50 SPECIAL $20.65 Heist Rogue Beagle Bag Flex Type Robots of Dawn ‘Summer Games |! Diskquik Frameup Utility City UST $49.95 SPECIAL $3497 ron ‘Newsroom LIST $29.95 SPECIAL $20.97 Decals Made Simple Ortho's Gardening heh Gumbat Pronto DOS nts Gat Flch! Insurance Planning Print Shop Mastering the GRE Silver fivia Fever Super Sports Get Rich! Real Estate Planning Questron Original Boston Computer Diet Get Rich! Retirement and Reading Keys $C Macto Assembler LIST $54.95 SPECIAL $24.47 Nanni urn of Werdna Scaae nen Championship Loge Runner” Math Run cine Peeing Return ot Were Sensible Speier lor Pro DOS gio eee Measurement Uptown Trivia Silicon Salad Big Dug Shek Molecules and Atoms Tax Avanage rol lop Keyboard ee oe Eagle ped reco al LIST $59.95 SPECIAL $41.97 Tax Preparer 1985 F158 Sword of Ke Arcade Machine Dazzle Draw # California Supplement Gemstone Warrior Turbo Tutor Karatoka Universal File Conversion Lode Runner Word ScrambleriSpelling Tutor Legal Office Manager Lucky's Foreign Langu: Magic Memory Trivia Fev LIST $395.00 SPECIAL $276.50 Trivia Savant BPI Accounts BPI Inventory Control Turbo Toolbox $ 54.95 BPI Accounts Re BPI Payroll Versatorm $ 69.00 PLEASE make check or M.O. payable to: Simply Software Inc. * P.O. Box 36068 * Kansas City, Missouri 64111 Add $3.00 shipping, Missouri residents add 6 1/8% sales tax. Allow 4-6 weeks for delivery. NOW AVAILABLE AT YOUR LOCAL COMPUTER STORE YOUR DISKS ESSENTIA ATA DUPLICATOR II EDO runs on Apple i I plus. He, lic and Apple It (in emulation mode) using one or two disk drives EDD allows you to easily and quickly make back up copies of your “uncopyabie” Apple disks. ll Since EDD has been preset to copy the widest range of copy-protections possible, you just simply boot up EDD, put the disk you want to copy in one disk drive and a blank disk in the other (EDD will work using one drive also} and in about 2 ¥ minutes a copy Is made. ll Unlike the “copy- cards” which only copy “single load” programs, EDD coples the entire disk. This would be similar to hooking up two cassette recorders, playing from one, and recording to the other. ll We have even included an option so you can check the speed of your disk drives because drive speeds running fast or slow can damage disks and cause other problems. ™ We publish EDD program lists (information about copy-protected disks) every couple of months, which EDD owners can receive. The current list is included with the purchase of EDD. li The bottom line is this; if EDD can't copy it, chances are nothing will. Ask for EDD at your local computer store, of nites $799 222s sold for the sole purpose of making archival UTILICO MICROWARE copies ONLY. 3377 Solano Ave., Suite #352 Napa, CA 94558 (707)257-2420 ($5 foreign). Mastercard/Visa accepted Prepayment required. Don’t TYPE IN programs that appear in Hardcore COMPUTIST. REMEMBER! Always prepared whenever Order the Library Disk, instead! Six different text: ‘adventures for the Apple. All for only $20.00! O_Please send me the EAMON Introductory Offer. I have enclosed ntry $20.00 plus applicable sales tax and shipping & handling. | understand that Public Domain Software is not commercial quality and Is supplied as-is and that orders are filled on double-sided disks. ‘Send check or money order (US funds dréwn on US bank) to: Computer Learging Center, FO Box 110876+1C, Tacoma, WA98411. Washington residents add 7.8% sales tax. Foreign orders add 20% shipping and handling. Name. Clty VISA/MC ‘Signature. Cou Each month a Library Disk with all the programs that appeared in the previous issue of Hardcore COMPUTIST Is prepared for SMART. READERS like you who have better things to do with their time than type in program listings. for Applewtiter //e softkey). Checktoft source code. VIOC Mover source code, Gnd RK’ Copy soures code id Hie i 8 Disk No. 14 for Hardcore COMPUTIST 14 includes con- trolers for SAT, Sea Dragon, Batman Decoder Ring Rocky's Boots and infocom, Super 108 v12 (Standard & Swap con- trollers) and BASIC program. Disk No. 10 for Hardcore COMPUTIST 13 includes con- ‘rollers for Penguin Software, Snooper Troops. Electronic Arts and DUM Software; CSaversoutce code, New DOS 3.3 Command (MREAD/MWRT) source code-cnd BASIC, i (Disk No. 8 for Hardcore COMPUTIST TI inckiées controller {for Uta Ik Uitimaker § source code ‘and BASIC program. Umpoere ina Cs Linesostia ONE WY) one! R06 7 Yor Newidore CONEUNET Ao ehates con for Arcade Machine and Minit Man Sensible Spetier foot Tepaopcedn Maaetees. Peale seams code Bank Street Writer Emulation program, Crunchist I source code. Disk No. 3 for CORE Games issue includes Destructive Forces and Dragon Dungeon. Disk No. 2 includes programs etc. for CORE Utilities issue ‘and Hardcore COMPUTIST 3 & 4. Includes programs etc. for CORE Graphics issue ‘and Hardcore COMPUTIST 1 & 2. Get each Library Disk for the low price of $9,95 Name Signature Send check or money order to: Hardcore COMPUTIST, PO Box TI0846-T, Tacoma, WA 9641. Mos! orien shipped UPS pce ute shest cxcres Woshington state residents add 78% safes text Foreign orders ack 20% shipping handing US funcs Grown on US bane SPECIAL! Order 5 Ubrary Disks (of your choice) and pay only $40.00. 95 (plus applicable tax & shipping) for each disk. Disk No. o Please send me the Library Disk(s) | have marked below. | have enclosed $9. any of the articles published in Hardcore COMPUTIST detail the removal of copy protection schemes from commercial disks or contain information on copy and backup methods in general. We also print bit copy protection parameters, tips for adventure games, advanced playin tnchukqocs (APT V4 heate game fanseig and any oxbor information which may be of use to the serious Apple user. Hardcore COMPUTIST also contains a center CORE section which focuses on information not directly related to copy protection. Topics may include, but are not limited to: tutorials, hardware/software product reviews and application and utility programs. What Is a Softkey Anyway? Softkey is a term which we coined to describe a procedure that removes, ‘or at least circumvents, any copy protection on a particular disk. Once a softkey procedure has been performed, the resulting disk can usually be copied by the use of Apple’s COPYA program (on the DOS 3.3 System Master Disk). ‘Commands and Controls: In any article appearing in Hardcore COMPUTIST, commands which a reader is required to perform are set apart from normal text by being indented and bold. An example is: PRIG Follow this with the RETURN key. The RETURN key must be pressed at the end of every such command unless otherwise specified. Control characters are indicated by being boxed. An example is: 6@P) To complete this command, you must first type the number 6 and then place one finger on the CTRL key and one finger on the P key. Requirements: Most of the programs and softkeys which appear in Hardcore COMPUTIST require one of the Apple JI series of computers and at least on disk drive with DOS 3.3. Occasionally, some programs and procedures have special requirements. The prerequisites for deprotection or programs will always be listed at the beginning of the article under the “‘Requirements:"’ heading. Software Recommendations: The following pro- ‘grams (or similar ones) are strongly recommended for Teaders who wish to obtain the most benefit from our articles: 1) Applesoft Program Editor such as Global Program Line Editor (GPLE). 2) Sector Editor such as DiskEdit, ZAP from Bag of Tricks or Tricky Dick from The CIA. 3) Disk Search Utility such as The Inspector, The Tracer from The CIA or The CORE Disk Searcher. 4) Assembler such as the S-C Assembler or Merlin/Big Mac. 5) Bit Copy Program such as Copy ]{ Plus, Locksmith or The Essential Data Duplicator ©) Text Editor capable of producing normal sequential text files such as Applewriter ]{, Magic Window ][ or Screenwriter J{. You will also find COPYA, FID and MUFFIN from the DOS 3.3 System Master Disk useful. Super IOB: This program appeared in Hardcore COMPUTIST No. 9, No. 14 and The Best of Hardcore . Several procedures will make use of a Super IOB controller, a small program that must be keyed into the middle of Super IOB. The controller changes Super IOB so that it can copy different disks. It is recommended that you get the latest version of this Qpogras (nly sppeming in Handsre COMPLTEST No. 14). RESET Into The Monitor: Many softkey pro- cerhaes rece Uitte wae be able to exter te Apgie’s system monitor during the execution of a copy protected program. Check the following list to see what hardware you will need to obtain this ability. Apple J Ptus - Apple //e - Apple compatibles: 1) Place an Integer BASIC ROM card in one of the Apple slots. 2) Use a non-maskable interrupt (NMI card such as Replay or Wildcard. ‘Apple I{ Plus - Apple compatibles: 1) Install an F8 ROM with a modified RESET vector on the computer's motherboard as detailed in the “Modified ROM’s" article ‘of Hardcore COMPUTIST No. 6 or the “Dual ROM’s"” article in Hardcore COMPUTIST No. 19. Apple //e - Apple //c: Install « modified CD ROM on /1e will void its warranty but the increased ability to remove copy protection may justify it. Recommended Literature: The Apple }[ Reference Manual and DOS 3.3 manual are musts for any serious $19.95; Assembly Language For The Applesoft Programmer, Roy Meyers and C.W. Finley, Addison Wesley, $16.95; and What's Where In The Apple, William Lubert, Micro Ink., $24.95. Keying in Applesoft Programs: BASIC programs are printed in Hardcore COMPUTIST in a format that is designed to minimize errors for readers who key in these programs. To understand this format, you must first understand the formatted LIST feature of Applesoft. An illustration- If you strike these keys: 10 HOME:REMCLEAR SCREEN ‘a program will be stored in the computer’s memory. Strangely, this program will not have a LIST that is exactly as you typed it. Instead, the LIST will look like this: 1@ HOME ; REM CLEAR SCREEN Programs don't usually LIST the same as they were keyed in because Applesoft inserts spaces into a program listing before and after every command word or ‘mathematical operator. These spaces usually don’t pose a problem except in line numbers which contain REM ‘or DATA command words. The space inserted after these ‘command words can be misleading. For example, if you want a program to have a list like this: 10 DATA 67,45,54,52 you would have to omit the space directly after the DATA ‘command word. If you were to key in the space directly after the DATA command word, the LIST of the program would look like this: 1@ DATA 67,45,54,52 This LIST is different from the LIST you wanted. The number of spaces you key after DATA and REM command words is very important. All of this brings us to the Hardcore COMPUTIST ‘LISTing format. In a BASIC LISTing, there are two types of spaces; spaces that don't matter whether they are keyed or not and spaces that must be keyed. Spaces that must be keyed in are printed as delta characters (4). All other ‘spaces in a Hardcore COMPUTIST BASIC listing are put there for easier reading and it doesn’t matter whether you type them or not. There is one exception: If you want your checksums (See ‘Computing Checksums'” section) to match up, you ‘must not key in any spaces after a DATA command word they are marked by delta characters. Hexdumps: Machine language programs ‘are printed in Hardcore COMPUTIST as both source code and hexdumps. Only one of these formats need be keyed in to get a machine language program. Hexdumps are the shortest and easiest format to type in. To key in hexdumps, you must first enter the monitor: CALL -151 Now key in the hexdump exactly as it appears in the ‘magazine ignoring the four digit checksum at the end of each line (a “‘$"” and four digits). If you hear a beep, you will know that you have typed something incorrectly ‘and must retype that line. When finished, return to BASIC with a: EO3G Remember to BSAVE the program with the correct filename, address and length parameters as given in the article. Keying In Source Code The source code portion of a machine language program is provided only to better explain the program's operation. If you wish to key it in, you will need an assembler. The S-C Assembler is used to generate all source code printed in Hardcore COMPUTIST. Without this assembler, you will have to translate pieces of the source code into something your assembler will understand. A table of S-C Assembler directives just for this purpose was printed in Hardcore COMPUTIST No. 17. To translate source code, you will need to understand the directives of your assembler and convert the directives used in the source code listing to similar directives used by your assembler. Computing Checksums Checksums are four digit hexadecimal numbers which verify whether or not you keyed a program exactly as it was printed in Hardcore COMPUTIST. There are two types of checksums: one created by the CHECKBIN program (for machine language programs) and the other created by the CHECKSOFT program (for BASIC programs). Both programs appeared in Hardcore COMPUTIST No. 1 and The Best of Hardcore Computing. An update to CHECKSOFT appeared in Hardcore COMPUTIST No. 18. If the checksums these programs create on your computer match the checksums accompanying the program in the magazine, then you keyed in the program correctly. If not, the program is incorrect atthe line where the first checksum differs. 1) To compute CHECKSOFT checksums: BRUNCHECKSOFT Get the checksums with & And correct the program where the checksums differ. 2) To compute CHECKBIN checksums: CALL -151 BLOAD filename Install CHECKBIN at an out of the way place BRUN CHECKBIN,A$6000 ‘Get the checksums by typing the starting address, and ending address of the file followed by a woxx.x00 SY) And correct the lines at which the checksums differ. How-To's Of Hardcore Welcome to Hardcore COMPUTIST, a publication devoted to the serious user of arse J{ and Apple ][ compatible computers. e contains information you are not oot key to find in any of the other major journals dedicated to the Apple market. Our editorial policy is that we do NOT condone software piracy, but we do believe that honest users are entitled to backup commercial disks they have purchased. In addition to the security of a backup disk, the removal of copy protection gives the user the option of modifying application programs to meet his or her needs. New readers are advised to read this page carefully to avoid frustration when attempting to follow a softkey or when entering the programs printed in this issue. | Teg ACK 4, mack Str itt Address all advertising inquiries to Hardcore COMPUTIST, Advertising Department, PO Box 110816, ‘Tacoma, WA 98411. Mail manuscripts or requests for Writers Guides to Hardcore COMPUTIST, PO Box 110846-K, Tacoma, WA 98411. Return postage must accompany all manuscripts, drawings, photos, disks, or tapes if they are to be returned. Unsolicited ‘manuscripts will be returned only if adequate return postage is included, Entire contents copyright 1985 by SoftKey Publishing. All rights reserved. Copying done for other than,personal or internal reference (without express written permission from th pubis) i probed. The editorial staff assumes no liability or responsibility for the products advertised in the magazine. Any opinions expressed by the authors are not necessarily those of Hardcore COMPUTIST magazine or SoftKey Publishing. Apple usually refers to the Apple J{ or }{ Plus Computer, and is a trademark of Apple Computers, Inc. SUBSCRIPTIONS: Rates: U.S. $25.00 for 12 issues, Canada $54.00, Moxico $99.00, Foreign Alrmal $60.00 Direct inquiries to: Hardcore COMPUTIST, Subscription Department, PO Box 110846-T, Tacoma, WA'98411. Please include address label with correspondence. DOMESTIC DEALER RATES: Call (206) 474-5750 for ‘more information. Change Of Address: Please allow 4 weeks for change of address to take effect. On postal form 3576 supply your new address and your most recent address label. Issues missed due to non-receipt of change of address may be acquired at the regular back issue rate. Hardcore COMPUTIST Pabtce/Eathor: Chasis R. Haight Techni! Edhors: Gar Feteiin, Ry Deri Circulation: Michelle Frank ‘& Graphics: Lynn Campos-Johnson py emer (206) 474-5750 Printing: Grange Priming, Ic. Seale, WA Hardcore COMPUTIST is published monthly, except December, by SoftKey Publishing, $233 $, Washington, Tacoma, WA 98409 Phone: (206) 474-5750 9 Apple }[ Boot ROM Disassembly An in-depth look at the boot ROM, this article explains the 6 & 2 encoding method and the use of the disk controller's hardware addresses. By Ray Darrah & Gary Peterson. 15 The Graphic Grabber v3.0 If you liked ‘The Graphic Grabber" for the Print Shop in Hardcore COMPUTIST No. 17, you'll love ‘*The Graphic Grabber v3.0", This update introduces several new commands and the ability to shrink hi-res areas to fit into the graphic window used by The Print Shop. By Ray Darrah III, 22 Copy I+ 5.0: A Review reenact Abe Peerage ca om oomcmatis saa cons latest version of Copy }[ Plus. By Dr. Phillip Romine SECTION 24 The Know-Drive- A Hardware Evaluation A look at this relatively unknown Titan/Legend compatible RAM card (from Abacus Enterprises, Inc.) that can simultaneously hold up to three application programs. By Clay Harrell. bie 25 An Improved BASIC/Binary Combo “Where in the Apple can I safely put my machine code?"” you ask. How 4 about between DOS and its buffers? Read this article and put some little-used = DOS space to good use. By James L. Parham. 26 Deprotecting Sargon III Super JOB mows down another “‘unbeatable”’ protection scheme. And, with a backup of Sargon III, you'll sleep better knowing that your original no longer has to face the computer glitch witch. By Kit LAU Yu-kit & Polly CHAN Yuk-yi. 27 Softkey for: The Wizardrys Are you tired of trying to find the correct bit copy parameters for Wizardry? Hardcore COMPUTIST is proud to present a step-by-step method to remove the copy protection from Proving Grounds of the Mad Overlord and Knight of Diamonds. By Taco van leperen. DEPARTMENTS 4 weer 7 READERS’ SOFTKEY ov & COPY EXCHANGE Softkey for Sensible Software's, The Report Card (Ver. 1.1) By John Howard Deprotecting Kidwriter By Mike Stafford 29 ADVENTURE TIPS RAMcard Secrets inally, those of us without the Integer firmware card and those with Apple //e’s or //c’s can “‘continue on’’ when the instruction tells us to ‘Reset and enter the monitor”. Our salvation is the article in Issue No. 16 by Ken Greenlaw, “‘RAMCard’’. Unfortunately, in ing to use RAMCard, I ran into a problem that I couldn’t solve. First of all, in attempting to use the program XFER.BOOT, I do not always get a BOOT upon typing CALL 768. After some investigative work I noticed that the hexdump and listing did not match. By changing byte 310 to 8D (was 9D) the program seemed to work; at least it booted the protected disk. Once the program disk had been booted, as explained earlier, I then attempted to move or transfer memory as described; nothing happened. Can you tell me how to determine what addresses to use with RESTORE when transferrring between auxiliary and main memory? My question then: Is there a typo in the programs that are listed? If so, what is the correct listing? I would your response. As I said, this utility is possibly the greatest for owners of //e’s and //c’s that has come through the media. I would also like to request that the program “Fun Bunch’’ be added to your Most Wanted List of programs for backup. Fun Bunch is published by Unicorn and is an extremely interesting and educational program for children. Unfortunately, it has the disadvantage of being protected. Larry Workman Anaheim, CA Mr. Workman: You are absolutely right. There was a typo in the listing of XFER.BOOT. Your fix of the typo corrects the problem. As for your questions about using XFER.BOOT and RESTORE: For many protected disks you will only need to transfer the foreign RWTS at $B800-SBFFF back down into main memory. Assuming that the program the RESTORE program has been typed in and connected to the Control-Y vector, the following command will perform the transfer 1900<B800.BFFFO@Y) If you are trying to determine what portions of memory a protected program uses, usually the best way to proceed is to fill memory from $800 to $BFFF with a specific value (11 is a good choice) before booting the disk. The Protected program is then halted with a RESET to see what portions of memory have been overwritten. However, filling up the auxiliary memory with a specific value can get a little bit messy because of all the soft switches involved. Probably the easiest thing to do is to modify the RESTORE so that it transfers from main Douglas to auxiliary memory, rather than vice-versa. Here is what you can do: BLOAD RESTORE 300:38 N 3F8:4C 00 63 800:11 N 801<800.63FFM 800<800.63FF| 6400<800.63FF| This will fill up auxiliary memory from $800 to $BFFF with 11's, but will leave the DOS our computers which is seldom found in print. The group would be connected by a newsletter and disk exchange (an interested person in Connecticut has indicated that we could probably use his bulletin board, as well). I would like to hear from any Franklin, clone or Apple user who would be interested. I can be reached at the address below: Trueman East Wind Rd. Apt. L Tecumseh, MO 65760 It would be nice if, after telling people that Franklin Corporation was going out of business, you would inform them that they have changed their plans and are come back out of Chapter 11 protection. In fact, they plan to release a computer, the Franklin 2000, an Apple //e-//c compatible by the end of the in main memory intact so that you can BLOAD _ yeat. XFER.BOOT. After the protected program has been booted into auxiliary memory and halted, RESTORE can be used to transfer auxiliary memory to main memory where the areas of memory which were loaded over can be determined. A Wayout Backup e. Mr. Hogarth’s letter in Issue No. 17. Wayout can be successfully copied using Nibbles Away Ib (I suppose version Ic should also work): Trks: $8-$1C Addr Wark AD DA DD Trks: $22 Addr Mark AA D5 D5 FF 06 FF FD Trk: $21 Addr Mark AA Sync size = BA Watch # == 06 Nibble count ENABLED Track $21 is the sensitive track he was referring to. However, it copied fine for me and I have no problems with the backup. Rocky Giovinazzo Nashua, NH Franklin Lives! am trying to set up a Franklin User Apple II is usually of use to those of us who use clones, it is not always. There is also information dealing with T am also interested in information on the 6502 (I own two Franklin 1200 OMS's). I have read that the chip will improve the speed of the computer by 10% with no change in programs. However, the only person I have found who knows anything about this chip had no idea if it would do the same for the Franklin or if it would be possible to put it in the Franklin. I am not interested in programming in assembly and so am only interested in other speed improvements. I would also need to know what other chips might be needed to put the 65002 in my computer. Douglas M. Trueman Tecumseh, MO Mr Trueman: We haven't had any problems crop-up from installing 65C02's manufactured by Western Design into the Franklin Ace 1000's that we own, so you should not have problems putting one into an Ace 1200. However, don't expect any dramatic speed- up when using commercial software since it would not take advantage of the 65C02's expanded instruction set. Capturing LS 5.0 Fast Copy was very pleased to see the article by C.V. Fields on putting Locksmith 5.0 Fast Copy into a normal binary file in Issue No. 14. This is a very useful utility which I use all the time to backup data diskettes, and I was Hardcore COMPUTIST No. 20 getting tired of changing disks and wading through two menus to get to it. Therefore, although I am relatively inexperienced and do not have a copy card, I decided to attempt it anyway. I thought your readers might be interested in learning how I was able to reset into the monitor with a //e and no copy card. I selected the 16-sector Fast Disk Backup from the utility menu of Locksmith 5.0 as per the instruction and, as soon as the disk drive light went out, I hit CTRL-Reset. As soon as the disk drive light illuminated on the reboot, Thit CTRL-Reset again and this caused an exit an to BASIC. Then it was just a matter of CALL -151 to get into the monitor and continue with the instructions in the article. I now have a normal binary file of this utility which I can FID to any of my other disks. P.S. I would like to see a softkey for the decrease Hayes Terminal Program and Frogger. Please add these to the Most Wanted List and keep up the good work. Jerry Battenhouse Williamson, GA User’s Rights nelosed find a check for $25 for a subscription renewal. I’d much rather pay $25 for a publication with 30 or so pages than $15 for a “‘soft’” magazine bloated with self-serving, groveling reviews for software that is featured in large ads. (Conflict of interest? Nahhh.) Your publication is the only one with enough guts to print what the users really want to know. Until the software realize that the Copyright Act of 1976 gives the buyers of their products a right to make an archival copy, they are going to spend higher and higher percentages of their revenue on increasingly complex and error-prone copy- protection schemes. The money spent on such programming is borne totally by legitimate buyers and not at all by pirates who have already made the scheme worthless. The companies then escalate the war at an increasing cost in the hope that there is a light at the end of the tunnel, but with no luck. Finally, formerly honest users see software prices hiked and become more tempted to use Pirated works. Sales suffer and companies must charge more to keep profits at a reasonable level. The cycle repeats. Further, some publishers follow the advice of a high-priced attorney and write Orwellian shrink-wrap agreements with Doublespeak clauses tao you dida't buy ths progres, you only bought the disk it came on). Prosecution can result if you try to list the code. Come on! Shouldn't agreements be enforcable? If all companies were this bad, one might believe it had to end up this way. Yet, look at Beagle Brothers, Penguin, Quinsept, Term- lunacy, they have prospered with works. Even Apple itself releases the best available integrated package, Appleworks, in state At first, the cure looks unfair to authors and publishers who, after all, are to thank for the great selection of programs for the ][ series. But lowered prices and removal of copy- Pvisagiesy sos iggtine Ban aga costs. Maybe all of in the high-priced advertising wouldn’t be as essential to a program’s success. I know that if a program cost less, I sure wouldn’t need as much convincing to it. If nothing else, I hope Hardcore COMPUTIST will show the protectors that they are fighting an unwinnable war against both friend (buyer) and foe (pirate). Continued expenditures will merely force more to the true enemy camp. Naturally, surrender is out of the question as it would be tantamount to admitting that all of the cash spent on protection was wasted. Perhaps a slow, quiet of locking-up programs would be of interest. It seems such a strategy was tried once before in a slightly different conflict, and look who lost. I don’t mean to trivialize real war in the allusion, liken copy-protection removers to Communists, or to demean those who fought for their country, but to draw a parallel of leadership styles and modes of thinking. Perhaps the master plan in both was noble, are certainly a lot different in real life than companies the harder it will be for them to change. Are there any companies out there willing to remove the copy-protection from already Protected works, or is the idea of user-as- potential-pirate already ingrained? Brad Leonard St. Louis, MO (Amen) Help for Franklin and IBM Users he main reason that I am writing is to provide some feedback to two recent questions posed by letters in your Input column. For the Franklin user (Tom Oldenhage), I must also confess to a lack of knowledge of any User Groups. However, right in my own backyard there is a Bulletin Board System devoted to Franklin (and Apple to a certain extent) users. It can be reached at (305) 671-4110, 24 hours on weekends. It is run by a professor at a local prep school and may lead the interested reader to other sources of Franklin information if he is willing to invest in one or more long distance phone calls. IBM-PC Hardcore-type data can be found on Remote Bulletin Board Systems (RBBB’s), HostComm's and other BBS's. What are called "unprotects’ in the IBM-PC world, as well as PEEK/POKE lists, are usually found on these systems. A good starting place would be the Capital (Washington D.C.) PC User's Group (CPCUG). They can be reached at PO Box 3189, Gaithersburg, MD 20878. There are numerous BBS’s that have a lot of public domain IBM-PC software as well as the above-mentioned technical info. CPCUG has lists of these on some of their bulletin boards. As a late vote, PLEASE keep Hardcore devoted to the Apple J[ line, And finally, I am definitely interested in a group buy of the 65C02. I have an Apple ][+ and two Apple //e’s to support with this. Thanks, as always, for keeping at it! Bob Baker Orlando, FL Backup for Dazzle Draw ere’s one of the reasons that the more sophisticated protection methods can be more trouble than program for my daughter. We had made our one legal backup copy and everything was going fine; we were really enjoying the program. Then one day I went to boot-up the program and found that it would not work. It only made an odd sound. Strangely enough, I found later that I was able to boot it up on my father’s computer. To make a long story short, I found that this Hardcore COMPUTIST No. 20 program uses track arcing for its copy Fe ar er een doesn Oke master would only boot-up on 2 out of 7 machines for a 29% bootability, and the copy I had made would boot-up on 3 out of 7 machines for a bootability of 43%). I subsequently sent my original back to Broderbund explaining my problem with their original and my copy. They sent me a new disk within a week and told me that it had come to their attention that the Apple Duo- Disk may write errors on the softboot (CONTROL, OPEN APPLE, RESET). I was very pleased with Broderbund’s quick response until I tried to boot-up the new disk and found that it would not work at all. In fact, it worked worse than the disk I had returned to them. Although I could get into the Utility Menu (I thought I would make a new copy using the internal copy program that is included with Dazzle Draw to see if it would work after being copied on my own disk drives), to my surprise, Broderbund had already made the one and only copy. I couldn’t make another backup! It was then that I declared war on Broderbund and its Dazzle Draw program. This brings me to the parameters I used to copy the original Dazzle Draw disk while using EDD III. I went back to an older parameters list for EDD on Choplifter and successfully made another copy. Note: I was unable to make a successful copy using the newer parameter list for Choplifter. Parms 28=2, 00=3 tO-tB t C.25 - t 21.25 t22 To make a copy from your new copy (not from the original disk), I used EDD III in the normal mode and ONE disk drive and did t 20.25 and t 21.25 over again until they had no read or write errors. I then put in the parms 28=2 and @@=3 for t 22 only. Since my copies were done at a faster speed, I’ve been able to boot-up on 5 out of 7 machines or 71%. If I turn on the 80-column card first (PR#3) then use PR#6 to start the boot, I am able to make 100% boots. I also have been able to backup the educational program Spell It, from Davidson & Associates, using EDD III. The parameters are the same as for Dazzle Draw but for tracks @ through 22 (28=2, 00=3). Ed Roberts Ventura, CA More RAMcard Secrets our magazine is excellent and I don’t know how I ever got along without it. Since receiving my first issue I have learned infinitely many things about the computer. Anyone who isn't subscribing is wasting their Apple. Regarding the article ‘‘Secret Weapon: ppc pon iia mre tal /e with 128K (Hardcore COMPUTIST No. 16), [have found a slight problem using that technique with the Applied Engineering (an excellent company, by the way) MemoryMaster //e 128 RAM card. When RESET is pressed it switches memory banks and, unless you hit RESET again, you will have to manually switch banks. After a few bank switches things can become quite confusing. My solution is this little routine: 9500:2C SE CO 2C SF CO 4C BF 9D 9500:2C SE C0 BIT $COSE ;the first of the two toggle switches 9503:2C SF CO BIT $COSF ;the second 9506:4C BF 9D JMP $9DBF ;reconnect DOS Then @3F2;00 95 30 (changes reset vector to jump to $9500 instead of $9DBF) This is a simple routine, but quite effective. P.S. To add to your APT for Rescue Raiders: GA gives a status display. Safaa Abdulla Richmond, VA In Defense of Quarter Tracks n Hardcore COMPUTIST No. 17’s ‘Whiz Kid column you missed an important point: quarter tracks are EXTREMELY useful against track arcing. Pie nace soi rhea ok ante ee tracks formatted using track arcing. Because adjacent 1/2 tracks overwrite each other, this disk would be almost impossible to copy. But, since 1/4 tracks read 1/2 tracks on BOTH SIDES AT ONCE, copying tracks 1.25 and 2.25 will easily copy the disk. Still in doubt? See pages 92-93 in the Copy }{ Plus 5.0 manual. M.M. McFadden Sunnyvale, CA Mr. McFadden: Thank you for informing us of this important use of quarter tracks. We suspected that the statement Ray made about quarter tracks ‘‘not being worth much’’ would get some response showing us what they were really good for. Diagram 1 APT Feedback e. “APT for Advanced Lode Runner’’ which appeared in Hardcore COMPUTIST No. 17, Input pg. 4. Many thanks to Warren Power for his Advanced Lode Runner APT. It saved me many hours of trying to copy ALR. Unfortunately, there was a typo in his letter. Tracks 3 to 8 should be copied, not tracks 3 to 6. Otherwise, the number of levels available for play/editing is reduced to 32. Copying through track 8 gets you all fifty ALR levels. Note that this technique can also be used to copy the regular Lode Runner disk onto a data disk (but copying from tracks 3 through C this time) thus making the games available to the editor and other APT's. Bring on more Hardcore! Hardcore COMPUTIST No, 20 Readers’ Softkey & Copy Exchange toa EE Softkey for Sensible Software's, The Report Card (Ver. 1.1) By John Howard The Report Card Sensible Software Inc. 210 S. Woodward, Suite 229 Birmingham, Michigan 48011 (315) 258-5566 $59.95 Requirements: Apple J[, ]{ Plus, //e, or //c with 48K and Applesoft One blank disk n Hardcore COMPUTIST No. 18, The Report Card from Sensible Software on the Most Wanted List for softkeys. Since I had deprotected this program some time ago to modify grade calculation algorithms to suit my application, I decided to submit the method of deprotection to share with other users so that they too might modify it for their needs. I am a subscriber to Hardcore COMPUTIST from almost the first issue and consider it to be the best Apple-specific magazine ever published. I have gleaned information from its pages not available anywhere else. It is one of my most valuable computer tools. About The Program The Report Card is a grading system designed specifically for the teacher. It allows easy compilation and reporting of student’s marks individually or as a class, and it is completely menu driven which allows the first time user to use the program without reference to the manual. All of the normal bells and whistles of a good grade book program- weighted scores, name transfers, and numerous reports are available. Nobody Knows The Incompatibilities I’ve Seen When I first ran the program I immediately encountered a problem with grade algorithms- I like to compute mine in a certain way, and this program just wouldn’t do it. So, rather than having a useless program sitting on the shelf, I thought that maybe I could deprotect it and change the grade algorithms. Following is the result of my efforts. About The Protection The copy protection on the report card disk consists of two different schemes. One is an altered DOS that reads non-standard address prologs. The other is a nibble count check on track 6 while the disk is booting to check for an original disk. No other checks are made for an original disk after the program is loaded into memory. The only disk access after the program loads is to read from and write to the data disk. This makes our job easier. Advanced Snooping Using the sector editor and nibble editor of Copy ][ plus Version 4C, I found that Tracks $3 - $22 used an address field prolog of D7 AA 96 instead of the normal DS AA 96. By patching these values into the Copy ][ plus sector editor I was able to scan the disk to see what was on it. I found a normal VTOC and CATALOG on track $11 with two Applesoft files named HELLO and THE REPORT CARD. Hallelujah!! I then booted a normal DOS disk to see if the deprotection on this disk was going to be that simple. When I into the monitor with a CALL -151, changed $B955 (in the RDADR routine in DOS) from its normal value of D5 to D7 and typed AS6EG (CATALOG routine in DOS), lo and behold, I got a CATALOG listing. This meant that I could manually load and transfer the two report card files by changing the value in location $B955 to D7 for a LOAD from the protected disk and to DS for a SAVE to a normal DOS 3.3 Disk. Step-By-Step Procedure 1) Initialize a blank disk with your favorite DOS (preferably a fast one). 2) Modify DOS to read the protected disk POKE 47445,215 3) Load a file from the protected disk LOAD HELLO 4) Restore DOS to its original form to allow saving the file to the unprotected disk Poke 47445,213 5) Save the file to the freshly initialized disk SAVE HELLO 6) Repeat steps 2 through 5, substituting “THE REPORT CARD” for “‘HELLO’’. In Closing... You will now have a normal DOS 3.3 Disk, preferably with a fast DOS on it, and two Applesoft files of 4 and 109 sectors. This will leave plenty of space to use the program disk as a data disk. The HELLO program sets up a few pointers, displays the introductory screen and message, and loads the main program. One of the first things you may want to modify in the program is line #6 which puts the computer into an infinite loop after you select to quit the program. You must turn off the computer or hit RESET, which kills all your variables, to get your computer back. Just replace the loop code with END to exit cleanly to BASIC. You can then start the program again with all variables intact. Numerous other possibilities for modification are now at your fingertips. Happy computing! Deprotecting Kidwriter By Mike Stafford Requirements: Apple J[ Plus or equivalent Kidwriter Super IOB v1.2 idwriter is a ‘‘Kiddie Word- Processor’’ that allows children to create their own stories and illustrate them with colorful pic- tures. Unfortunately this program does not come with a backup disk and is not copyable with COPYA. Luckily, the copy protection on this disk is not too extensive and the disk can be easily de-protected. The copy protection scheme consists of changing the address field prologue from the normal DS AA 96 to DS AA FE, and the data field prologue from DS AA AD to DS AA FF. This disk can be bit copied, but I prefer to have my disks unprotected (especially this program since I had some modifications in mind for it.) To de-protect this disk, all that is necesssary is to use a Super IOB controller which will read the altered address and data headers and then write the tracks to another disk with their normal values. After you’re done making the copy you'll need to add a DOS to the disk. I prefer a fast DOS such as Pronto DOS, as Hardcore COMPUTIST No. 20 2 tt Readers’ Softkey & Copy Exchange cont... this program will load very slowly with the standard DOS 3.3. Finally, you will have to change the boot program because Kidwriter does not boot up with the normal HELLO Program. Here is the step-by-step procedure to softkey Kidwriter: 1) Initialize a blank disk with a fast DOS (preferably) and ‘‘KIDWRITER”’ as the boot filename INIT KIDWRITER 2) Type and save the controller at the end of this article. 3) Install the controller into your Super JOB program and execute it: RUN 3) Type in the hexdump at the end of this article and save it to your freshly created disk BSAVE KIDWRITER,A$9000,L$33 You should now have a COPYAable version of Kidwriter. Print-Out: The Modification You can add a hi-res printout option for pgs pap ig pete editor and know a little bit of assembly language. To do this you will first have to modify your copied disk. Get out your sector editor and make the following alterations: Track Sector Bytes To SIA $06 $OD-SOF $20 $1C $90 $A $06 $24-$26 $20. SIC $90 $1A $07 SF7-SF9._—-$20.-$1C $90 This alters the program so that it calls $901C when it needs to wait for a keypress between pages of a story. Once here, our KIDWRITER file takes over and tests for a GP). if this key is pressed, program execution falls through to $902F. Right now, $902F just returns to the main program and no hi-res printing occurs. As a result, the second thing you must do is add a machine language hi-res printout routine at $902F and re-BSAVE the KIDWRITER file. This routine will differ depending on your printer-printer card combination. In any case, the routine should save the COUT vector ($36 and $37 (I saved them on the stack)) and restore it when finished. KidWriter Controller 1900 REM KIDWRITER CONTROLLER 1910 TK = 9 :ST = :LT = 35 :CD = WR 1920 T1 = TK ; GOSUB 490 : RESTORE : GOSUB 199 : GOSUB 218 1930 GOSUB 430 : GOSUB 100 :ST = ST +1 : IF ST < DOS THEN 1038 1940 IF BF THEN 1060 1950 ST = :TK= TK+1: IF TK<LT THEN 1030 1960 GOSUB 238 : GOSUB 490 :TK =T1 :ST=9 1970 GOSUB 430 : GOSUB 108 :ST=ST+1: IF ST Controller Checksums & Hexdump 1900 - $3568 1070 - $B1B6 1019 - $3266 1080 - S1FDD 1920 - $BCB9 1990 - $F88D 1938 - SAABB 1100 - $7AA8 1940 - $AB41 5000 - $196A 1050 - $9AA6 5010. ~ $F27C 1969 - $B9B3 < DOS THEN 1078 ; AO OF B9 BC 98 20 ED FD 1080 ST =6 TK=TK+1 : IF BF =@ANDTK <LT THEN : 88 10 F7 6B 8D 85 88 88 1970 : 88 88 88 88 88 C7 CE D5 1090 IF TK < LT THEN 1620 D2 C2 84 8D 2C 00 CO 30 1100 HOME : PRINT."DONE*WITH*COPY" : END 11 60 48 AD 80 CO C9 90 5000 DATA 213 ,170 ,254 FO 95 68 2C 00 CO 60 68 5010 DATA 213 , 178,255 2C 00 CO 60 KidWriter Source Code $CADS $D88F $F7CE $3B05 $3038 $1989 $8BD5 3 a g i FDED- COUT -EQ’ SFDED * OR $9900 -TF KIDARITER 9000: AD OF LOY #ENDMSG-MSG 9002: B9 OC 98 PRNTWSG LDA MSG,Y 9005: 20 ED FD JSR COUT 9908: 88 DEY 9009: 10 F7 BPL PRNTWSG 9008: 60 RTS 900C: 8D 85 88 QOOF: 88 88 88 9012: 88 88 88 MSG -HS 8D8588888888888888 9015: C7 CE D5 9918: D2 C2 «AS -/GNURB/ QO1A: 84 AHS 84 9018: 8D ENDMSG ~ .HS 8D 9O1C: 2C B08 CO BIT $CO0B OO1F: 30 01 BMI CTRL.P 9021: 60 RTS 9022: 48 CTRL.P = PHA 9023: AD 08 CB LDA $C008 9926: C9 98 CUP #590 9028: FO 05 BEQ DUMP. IT 902A: 68 PLA 9028: 2C 08 CB BIT.RTS BIT $CO00 902E: 68 RTS 902F: 68 DUMP.IT PLA START PRINTOUT ROUTINE HERE 9030: 2C 00 CB BIT $0000 REMEMBER TO SAVE COUT 9033: 60 RTS POINTERS AND RESTORE THEM WHEN FINISHED ole Hardcore COMPUTIST No: 20 eee nena mtonee cer ame Se tar set Apple ][ Boot ROM Carefully read this article and examine the accompanying disassembly and you can learn how the disk controller hardware addresses ($C@n0-$COnF) are used for direct access of the disk drive, how 6 & 2 encoding works, how the address and data fields are read, and generally increase your overall knowledge of the Apple ][ disk drive. es Disassembly Beacon Se: w Se SA dso HHS By Ray Darrah and Gary Peterson code that all bootable disks, protected or not, must execute as the first stage of their boot. Many people take advantage of this fact to perform what is known as ‘‘boot- code tracing’’ or the ‘‘front door method"’ in order to track down the location of a disk’s protection scheme. Several articles previously published in the pages of this magazine have elaborated upon the technique of boot code tracing. Because the boot PROM is so widely utilized, we would like to present a disassembly of the code in order to clear up some of the mystery of how it works. By carefully reading this article and examining the accompanying disassembly you can learn how the disk controller hardware addresses ($C@n0-$COnF) are used for direct access of the disk drive, how 6 & 2 encoding works, how the address and data fields are read, and generally increase your overall knowledge of the Apple J[ disk drive. This article and the commented disassembly assume a disk drive controller in slot 6. il he 256 byte PROM at position PS on the Apple's disk controller card contains machine The Nybble Conversion Table The code at $C600-$C620 is responsible for generating a nybble conversion table at $36C-$3D5. This table is used to convert the encoded (or nybblized) bytes read from the disk into a six-bit hexadecimal value between $0 and $3F. To say the least, this is a very obscure piece of code that is extremely difficult to follow. If you know of someone who frequently boasts of his or her knowledge of 6502 programming, give them this little chunk of code and ask them to tell you what it does. More likely than not, you will soon notice a marked increase in this person's overall Hardcore COMPUTIST No. 20 9 This code tests for values which meet the requirements imposed by the 6&2 encoding method (high bit set, no more than one set of consecutive zeroes and at least one set of consecutive ones.) When a value corresponding to a valid disk byte is found, the translated equivalent of that value is stored at $2D6 plus the value of that valid disk byte. Since this is bound to sound pretty confusing, lets look at a couple of examples: The first hex value that meets the requirements of 6&2 encoding is a $96. In the read translate table, 96=00; therefore, a 00 will be stored at $2D6+$96 or $36C. In the same SS The code starting at $C65C is really the meat of the disk controller's code. The code here is used by the DOS 3.3 BOOT1 code at $84A (JMP ($003E)) to read the RWTS into memory. Some protected disks, like Rocky’s Boots, rely entirely on this piece of the disk controller code when reading from a disk. manner, since $ED is a valid disk byte and from the read translate table, ED=30, a 30 will be stored at $2D6+$ED or $3C3 (later we will get back to how this table is used to convert the encoded values read from the disk back into their unencoded form). If you want more details about the nybble conversion table, examine the commented source code accompanying this article. Stack Extraction and Recal ‘The next part of the ROM at $C621 to $C63A is responsible for determining which slot the disk controller is in and for recalibrating the head of the disk drive to track $0. The slot number is determined by doing a JSR to an RTS instruction in the Apple’s monitor. After the RTS has been executed, the code retrieves the return address from the stack and uses it to calculate which slot the controller is in. The slot number is then multiplied by 16 and stored in zero page at $2B. Once the slot number has been calculated, it’ is transferred to the X register where it can be used to access the correct controller hardware locations. Drive one is enabled and the motor is turned on before stepping over 80 phases by accessing the various phase on/phase off locations in ing order. This has the effect of moving the head outward to track zero (track $0 is the outermost track), no matter where it happened to start from. 10 Hardcore COMPUTIST No. 20 2 g z 080- WAGD.OFF .£Q $080 STEPPER MAGNET 0 OFF COB1- MAGB.ON. EQ $0081 STEPPER WAGNET 6 ON C082- WAGI.OFF ‘EQ $0982 STEPPER MAGNET 1 OFF C083 WAGI.ON EQ $0083. STEPPER MAGNET 1 ON C084- WAG2.OFF .EQ $0084 STEPPER MAGNET 2 OFF C085 WAG2.ON EQ $0085 © STEPPER MAGNET 2 ON 086~ WAG3.OFF .EQ $0086 . STEPPER MAGNET 3 OFF C087~ MAG3.ON: £0 $0087. STEPPER WAGNET 3 ON C088 MOTOR. OFF .£Q $0088. DRIVE AND MOTOR OFF C089 NOTOR.ON .£Q $0089 DRIVE AND MOTOR ON COBA- SEL.ORVI. .EQ $008A ROUTE POWER TO DRIVE 1 0BB- SEL:DRV2 EQ $0088 ROUTE POWER TO DRIVE 2 CaBC- 101 -£Q $008C STROBE LATCH FOR 1/0 a8D- 102... EQ $0080 LOAD DATA LATCH COBE- 103 °EQ $00BE PREPARE LATCH FOR INPUT COBF- 104° EQ $CBF PREPARE LATCH FOR OUTPUT . . ‘ WONITOR LOCATIONS. USED : FF5@- 1ORTS .£Q SFF58 —A.KNOWN RTS INSTRUCTION FOAS- WAIT” “EQ SFCAB © WAIT FOR TIME SPECIFIED BY A-REG, X & Y UNAL MASS DATA STORAGE AREAS ‘ G100- STACK _.EQ $0190 9206- NIBBLE.TBL .EQ $0206 36C) -EQ $0300 6502 STACK AREA STARTS HERE 6 & 2 DECODE TABLE FROM HERE TO $305 (FIRST NIBBLE AT $ EXTRA 86 BYTES (342~256=86) OF EACH SECTOR STORED FROM FIRST SECTOR OF DATA GOES TO $0800 PR# OR IN# GOES HERE © C600: A226 LOX #820 DOES NOTHING EXCEPT. IDENTIFY DISK CONTROLLER * Sa fhe, * i SET UP.A READ TRANSLATE TABLE $ « ‘A= GENERAL USAGE : 38 cypoy, X = NIBBLE TO TEST FOR VALIDITY (=$80) ‘ s Os WHAT NEXT VALID NIBBLE TRANSLATES. INTO.» : + 5 ‘ 0602: AB 00 LOY #00 FIRST BYTE TRANSLATES TO A $00 0604: A2 03 LOX #$03 COULD HAVE USED ANYTHING FROM $00 - $16 C606: 86 3C —-“TST.NIBB STX TEMPO. PUT NIBBLE HERE SO IT CAN BE MANIPULATED 0608: 8A PUT NIBBLE IN A SO WE CAN SHIFT IT C609: OA ASL TEST FOR ADJACENT ONES C6OA: 24 3C BIT TEMPO. IFA “M = @ THEN Zel C60C: FO 10 BEQ NXT.NIBB NO ADJACENT ONES, GET NEXT NIBBLE C6OE: 05 3C ORA TEMP —THE.ASL, ORA, EOR.SEQUENCE WILL C610: 49 FF EOR #SFF CHANGE ALL ADJACENT 9-BITS TO ONE 1-B1T (612: 29 7E AND.#S7E IGNORE BIT 7 AND O C614; BO 08 TST BCS NXT.NIBB NEVER TAKEN THE FIRST TIME THROUGH, ON SUBS ADJO . EQUENT TIMES, THIS BRANCH IS TAKEN JF THERE STILL ARE BITS SET IN THE NIBBLE ‘AND A SET BIT HAS BEEN PUT INTO THE CARRY: THEREFORE MORE THAN ONE PAIR OF ADJ ACENT 9-BITS ‘ C616: 4A {SR SHIFT A BIT INTO THE CARRY, COULD HAVE USED. A SL C617: DO FB BNE ADJO.TST TAKEN IF THERE ARE STILL SOME BITS SET (THERE FORE SOME ADJACENT @-BITS) LEFT IN NIBBLE C619: 98 TYA NIBBLE PASSED TEST, A=WHAT NIBBLE TRANSLATES INTO O61A: 9D 56 03 STA NIBBLE. TBL+$80,X STORE IT IN TRANSLATE TABLE + $80 (61D; C8 INY NEXT NIBBLE TRANSLATES INTO Y + 1 OBIE: £8 NXT..NIBB_INK GET NEXT NIBBLE TO TRY (~$80) O6IF: 10 €5 BPL TST.NIBB IF NOT LAST NIBBLE $7F=SFF THEN KEEP GOING . ims . ‘ “RIND WHAT SLOT WE ARE IN pee: ‘ : ‘ C621: 20 58 FF JSR 1ORTS JSR TO A KNOWN RTS INSTRUCTION 0624: BA TSK PUT STACK POINTER IN X 0625: BO 00 91 LDA STACK,X GET MSB.OF RETURN ADORESS FROM STACK 0628: OA ASL WOVE LONER FOUR BITS INTO UPPER FOUR BITS 0629: GA ASL IN OTHER WORDS, MULTIPLY BY 16 WOD.256 C62A: OA ast 0628: GA ASL 062: 85 28 STA SLOT SAVE SLOT NUMBER TIME. 16 IN ZERO PAGE C62: AA v AND PUT SLOT NUMBER * 16 IN X . : ; ‘TURN ON DRIVE : ‘ : O62F: BD 8E Co LDA 103,X, SET ORIVE IN READ. MODE 0632: BD.8C 08 LDA 101,x 0635: ‘BD’ 8A Co LOA SEL.DRV1,X MAKE SURE DRIVE. ONE}. hs 638; 8D 89 Co UDA WOTOR.ON,X TURN. ON MOTOR =) 12 3 . aie . : RECALIBRATE DRIVE HEAD $ : : 0638: AD 58 * LOY #80. MOVE BACKWARDS OVER 80 PHASES (49 TRACKS), 63D; BD 80 CO "NXT. PHASE LOA MAGO.OFF,X TURN CURRENT PHASE MAGNET OFF 0649: 98 ' TYA CALCULATE NEXT PHASE Continued on next page Initialize Zero Page The next section of the disk controller ROM code at $C652-$C65B is very short. All it does is set up the necessary zero page locations so that track $0, sector $0 is read into page $8. Zero page locations $26-$27 point to the data buffer, $3D holds the sector number and $41 holds the track number. Reading the Disk The code starting at $C65C is really the meat of the disk controller’s code. The code here is used by the DOS 3.3 BOOTI code at $84A GMP ($003E)) to read the RWTS into memory. Some protected disks, like Rocky’s Boots, rely entirely on this piece of the disk controller code when reading from a disk. When entered, this routine first clears the Carry flag to signal that an address header is to be read. Once the address header pattern of DS AA 96 is found, a branch to $C683 is taken | If you take a look at the | listing from $C65C-$C6AS, you will notice that the = address epilog or _ checksum is never verified. Some copy-protected disks take advantage of this fact and alter the address epilogs or the checksum to prevent people from reading track $0, sector $0 with a normal sector editor. or, meer | where the 4&4-encoded volume, track and sector data is read. The track and sector numbers are compared to the values at $3D (sector) and $41 (track). If they are correct, the carry flag is set and the code branches back to $C65D, this time to read a data header. If the track and sector are not correct, then the carry flag is cleared and the code returns to $C65C to again try to find the desired track and sector. If you take a look at the listing from $C65C-$C6AS, you will notice that the address epilog or checksum is never verified. Some copy-protected disks take advantage of this fact and alter the address epilogs or the checksum to prevent people from reading track $0, sector ‘$0 with a normal sector editor. However, the address or data prologues on track $0, sector ‘$@ cannot be altered from DS AA 96 and DS AA AD. Decoding the Data The code at $CBA6-SC6EA is responsible for reading encoded data from the desired sector into the buffer. Because it takes $156 (342 in decimal) 6&2 encoded bytes to store Hardcore COMPUTIST No. 20 i one sector of data, the reading occurs in two stages. First, $56 bytes are read into $300-$356. The remaining $100 bytes are read into the buffer pointed at by $26-$27 ($800 upon booting). Notice at $C6AA and $C6BC that when a byte of data is read from the disk, it is loaded into the Y register. This is so that the value read from the disk can be used as an index into the nybble conversion table that was generated at $36C-$3D5. This is how the valid byte read from the disk is converted into a six-bit hex value. The Data Checksum Just before each of the $156 bytes is stored into the buffers, an Exclusive OR operation is performed. This is necessary because the data was Exclusive ORed with itself (offset by one byte) before it was written to disk. All of this EORing produced a cumulative checksum byte which was stored as the final byte of the encoded sector. When the sector is read, the EORing again occurs and, if the accumulator does not hold a value of zero after the final EOR with the checksum byte, an error has occurred and the code at $C683 branches back to try again. If no checksum error occurred, then the code falls though to $C6D5 where the 642 encoded data in the two buffers is restored to its original, unencoded form. This involves a lot of bit- shifting to restore each byte with the two bits that were stripped off of it before it was written. ‘These two bits come from that data which is stored at $300-$355. form, the code falls through to $C6EB where a check is made to see if any more sectors have to be read. The number of sectors to be read is contained in $800. Normally this byte will contain a 1 but it could be any value up to an $F. I have seen very few disks, aside from the BASIC’s disk, that will load in more than one sector during their stage @ boot. Once the desired number of sectors have been read, the IMP $801 is executed to start the next stage of the boot. After the jump to $801 has been taken, a disk is pretty much free to proceed with its boot as the programmer has seen fit, although most disks will use the routine starting at $C65C to read in several more sectors from track $0. Normal DOS 3.3 disks will read the RWTS into memory from track $0, sectors $0-$9. Sector $0 is reread so that its image is available when a new disk needs to be formatted. References: Worth, Don & Peter Lechner, Beneath Apple DOS. Quality Software. 1981. Quality Software. 1984. Apple Assembly Lines, S-C Software. 09/81, pages 17-20. Continued from previous page C641: 29 03 AND #803 MOD 4 my 0643: GA ASL "2 0644: 95 28 ORA SLOT MERGE _IN TO ZERO PAGE SLOT HOLDER C646: AA TAK PUT NEXT PHASE INTO X 0647: BD 81 CO LDA WAGO.ON,X TURN ON NEXT MAGNET 064A: AD 56 LDA #556 WAIT DELAY OF 19.2 MILLISECONDS C64C: 20 AB FC JSR WAIT WAIT A WHILE C64F: 88 DEY NEXT PHASE OR HALF TRACK C650: 10 EB BPL NXT.PHASE KEEP GOING IF NOT DONE F * =e ‘ ‘SET UP ZERO PAGE TO READ TRACK 9, SECTOR @ of . + 0652: 85 26 ‘STA SECTOR.PTR LSB OF POINTER = 0 C654: 85 30 STA SECTOR SECTOR @ 0656: 85 41 STA TRACK TRACK @ C658: A9 08 LDA /BUFFER2 SB OF POINTER = $08 C65A: 85 27 STA SECTOR.PTR+1 PUT SECTOR AT $0800 . ’ ° FIND EITHER THE ADDRESS HEADER * . OR DATA HEADER OF THE CURRENT SECTOR § ‘ C65C: 18 GET.ADOR.HOR CLC C= MEANS LOOK FOR ADDRESS HEADER C650: 08. GET.DATA.HOR PHP. SAVE. CARRY C65E: BD 8C CO PI LDA 101.X READ DISK C661: 10 FB BPL PI WAIT FOR FIRST BYTE 0663: 49 D5 = TRY.D5._ EOR #805 1S IT A $05? 5 0665: 00 F7 BNE Pl NOPE, GET NEXT BYTE , 0667: BD 8C,CO TT” LDA 101.X READ DISK C66A: 10 FB BPL 1 WAIT FOR SECOND BYTE C66C: C9 AA CMP ¥SAA IS IT A SAA? C66E: DO F3 BNE TRY.D5 NOPE. MAYBE IT WAS A $D5 L NOP WAIT 2 CYCLES 2 LDA 101.X READ DISK BPL. .2 WAIT FOR LAST-BYTE IN EITHER ADDRESS OR DATA CMP. #896 _ IS IT THE ADDRESS HEADER? BEQ GET.SCT.NUM YES. SEE IF RIGHT ONE PLP. WERE WE LOOKING FOR THE DATA MARK? BCC GET.ADDR.HDR NOPE. TRY FOR ADDRESS HEADER AGAIN EOR #SAD LOOKING FOR DATA HEADER. IS THIRD BYTE AND $A 0? C67F: FO 25 BEQ READ.SCT YES. GET THE DATA FROM THE SECTOR C681: 00 09 BNE GET.ADOR.HOR NOPE. FINO ANOTHER ADDRESS HEADER . ‘ : READ VOLUME, TRACK AND SECTOR ‘ : : 0683: AD 63 GET.SCT.NUM LOY #503 THREE 4+4 ENCODED BYTES 0685: 85 49 STORE. 44. STA TRK.READ. STORE CURRENT DECODED BYTE HERE, FIRST VOLUME NUMBER WHICH WILL BE OVERWRITTEN. BY THE TRACK NUMBER 0687: BD 8C CH «1 LDA 101,X READ DISK C6BA: 16 FB BPL 1 WAIT FOR FIRST HALF OF BYTE C68C: 2A ROL RE-POSITION EVERY OTHER BIT C680: 85 3¢ STA TEMPO SAVE IT HERE C6BF: BD 8C.CO .2 LDA I01,X READ DISK 692: 16 FB BPL .2 WAIT FOR SECOND HALF OF BYTE 694: 25 3¢ AND TEMPO — MERGE TWO HALVES TOGETHER TO DECODE BYTE 0696: 88 Dey DONE WITH ADORESS FIELD (EXCEPT CHECKSUM)? . 12 Hardcore COMPUTIST No. 20 0697: 00 EC BNE STORE.44 NOPE, GET NEXT BYTE . : ‘ SEE IF THIS 1S THE SECTOR WE NANT : ‘ . 699: 28 PLP FIX STACK BECAUSE OF THE PHP AT $0650 C69A: C5. 30 CHP SECTOR A-REG HAS SECTOR READ, 1S IT THE RIGHT ONE? C696: DO BE BNE GET.ADOR.HOR NOPE, LOOK FOR NEXT ADDRESS FIELD C69E: A540 LDA TRK.READ GET TRACK NUMBER READ CBA: C5 41 CUP TRACK IS IT THE ONE WE WANT? C6A2: 0B 88 BNE GET. ADOR.HOR NOPE, LOOK FOR NEXT ADDRESS FIELD 6M: 80 87 BCS GET. DATA.HOR . .ALNAYS TAKEN, LOOK FOR DATA FIELD HEADE . ; . . ° READ SECTOR AND STORE IT IN MEWORY : : ‘ C6AB!"AO 56“ “READ:SCT LOY'#86 READ FIRST EIGHTY SIX BYTES C6AB: 84 3C NXT.BUFI STY TEMPO . SAVE NUMBER OF BYTES OF BUFFERL LEFT TO READ C6AA: BC.8C.CO «1 LOY 101,X READ DISK C6AD: 10 FB BPL .1.' WAIT FOR 6 & 2 ENCODED NIBBLE OF DATA C6AF: 59 06 02 OR NIBBLE.TBL,Y DECODE THE BYTE (A=0 FIRST TIME. THROUGH) C6B2: Ad 3C LOY TEMPO GET NUMBER OF BYTES LEFT C684: 88 vey DONE WITH BUFFERI? < C685: 99 00 03 STA BUFFERI,Y SAVE 6 BIT NIBBLE ‘ 688: 00 EE BNE NT. BUFL_ NOT DONE WITH FIRST 86 BYTES, CONTINUE . ‘ READ REMAINING DATA FIELD BYTES : OBA: 84 3¢ —NXT.BUF2 STY TEMPO SAVE THE CURRENT BYTE NUMBER (FIRST=0) c6Bc: BC 8C.CO 1 LDV 101,X READ DISK CBF: 10 FB BPL .1| WAIT FOR BYTE CCl: 59 D6 02 EOR NIBBLE.TBL,Y TE. NIBBLE C6CH: AS 3C LOY TEMPS GET BYTE INDEX (NUMBER) C606: 91 26 STA (SECTOR. PTR). Y SAVE BYTE. BIG BUFFER 0608: C8 INDEX 0609; DB EF BYE YO. BUF2 REE? READING BYTES UNTIL ALL 256 WAVE BEEN RE C6CB: BC BC Co .2 LOY 101,X READ DISK C6CE: 10 FB BPL 2.” _NAIT FOR DATR FIELD CHECKSIM 0609: 59 D6 82 FOR NIBBLE. TBL,Y TRANSLATE THE BYTE C609: Dd 87 GOTO.NKT.SECTOR BNE GET.ADOR.HOR IF CHECKSUM NOT RIGHT THEN START A R . ‘ . DECODE.JHE 6 & 2 ENCODED SECTOR vi : ‘ 605: AO 90 Loy #509 START WITH BYTE O OF THE BUFFER C607: A256 STRT.BUFL LOX #86 86 BYTES IN BUFFERI 609: CA NXT. 62.DEC DEX GET NEXT BUFFERI_ INDEX CODA: 36 FB BMI STRT.BUF1 IF = $FF THEN START BACK AT END OF BUFFERI C600: B1 26 LOA (SECTOR.PTR),Y GET BYTE MISSING LONER TWO BITS CODE: 5E 90 03 LSR BUFFERI,X GET BIT FROM BUFFER C6E1: 24 ROL PUT INTO BUFFER2 C6E2: SE 00 03 LSR BUFFERL,X GET THE OTHER’ BIT FROM BUFFER C6ES: 2A PUT INTO. BUFFER2 C6E6: 91 26 STA (SECTOR.PTR) ,Y BYTE 1S DECODED, STORE IT C6EB: C8 NY GET NEXT BUFFER? INDEX GES: DO EE /¢ BNE NXT, 62.0EC NOT DONE WITH WHOLE PAGE, DO NEXT BYTE Continued on next page Most Wanted List Need help backing-up a particularly stubborn program? Send us the name of the program and its manufacturer and we'll add it to our Most Wanted List, a column (updated each issue) which helps to keep Hardcore ST readers informed to hoor Haier Sea otoan ome MOST needed. Send your requests to: Hardcore COMPUTIST Wanted List PO Box 110846-K Tacoma, WA 98411 If you know how to deprotect unlock, or modify any of the programs below, let us know. You'll be helping your fellow Hardcore COMPUTIST readers and earning MONEY atthe ame tine, Send the information to us in article form on @ DOS 3.3 diskette. 1. Apple Business Graphics ‘Apple Computer 14. Zardax 2. Flight Simulator If Computer Solutions ‘Sub Loge 13. Robot Odyssey ‘The Learning Company 15. The Handlers 3, Apple LOGO II Silicon Valley Systems Apple Computer 16. Milliken Math Series (NEW) Milliken Publishing 4. Jane Arktronics 5. Bookends Sensible Software 17. College Entrance Exam 6. Vielblend Prep Borg Warner 7. Sundog FTL Games 18. Bank Street 9. Catalyst Quark, Ine 20. King’s Quest 10. Gutenburg Sie On-line ‘Jr. & Sr. Micromation LTD 21. Hayes 11. Prime Plotter Terminal Program Primesot Corp. Mave 22. Fun Bunch 12. The Newsroom Springboard Software Unicorn Hardcore COMPUTIST No. 20 13 Guess what we found during our move? BACK i sae COMPUTIST No’s. 6, 7, 9 & 12! And we thought they were all sold-out! Continued from previous page . * $ TEST FOR ANOTHER SECTOR ea ‘ : * C6EB: £6 27 INC SECTOR. PTR+1 NEXT BUFFER WSB C6ED: E6 30 INC SECTOR NEXT SECTOR NUMBER O6EF: AS 30 LDA SECTOR GET SECTOR NUMBER C6FL: CD 00 08 CMP BUFFER2 HAVE WE FINISHED READING? C6F4: AG 2B LOX SLOT GET SLOT # TIME 16 C6F6: 96.DB BCC GOTO.NXT.SECTOR LESS THAN SECTOR SPECIFIED, READ NEXT ONE C6F8: 4C 91 08 JMP BUFFER2+1 ENOUGH SECTORS, CONTINUE WITH BOOT COFB: 00 99 00 C6FE: 08 90 -HS 9900000000 UNUSED BYTES [erie boca Tht ete ret Cooy Peston / £6 rusertir Reve Dak Drectoy Desgne/ Contin Pa / Uppa & Lower ‘Coe Output for Zork ‘COMPUT Sra ft Serato Speer. Sara Orne ‘Music Construction —, NOW! First come/fi While th (Gee our ad on page 30 to order other back issues) *ONoR Bp O Noe UPS: please use street oddress. Washington residents add 78% OD No6 s0les tax. Foreign orders add 20% shipping & handling, US funds drawn‘on US bank. (Offer good for a imited time only.) Send check or money order to: Hardcore COMPUTIST, PO Box TO846-8, Tacoma. WA Please rush me the BACK ISSUES marked below. !have enclosed $3.50 (plus applicable sales tax and shipping) for each issue requested. = ONO? ‘9841 Most orders Name Address City Phone. VISA/MC_ ‘Signature: Subscribe NOW! While rates are still LOW If you’ve been meaning to subscribe, to Hardcore COMPUTIST DON’T WAIT! Tell your friends! Tell your neighbors! Mail or call in your subscription or renewal before the rate increase. (And remember: Hardcore COMPUTIST does not send RENEWAL notices. If you are irrent Subscriber, check out your mailing label to determine the number of in Hardcore COMPUTIST ugs No's. 17 & 18 No. 18: RKCOPY- page 30 Lines 360-380 of the RK COPY program were missing some ending quote marks (’’). Here is the corrected listing of these lines. 360 Q$ = CHRS ole: ) :ST$(1) = “DRIVE*SELECT JON" :CO$(1) = "ENTER*AN*" +Q$ + "S" + QS+ FORSINGLE*DRIVE*COPY"OR*A* + QS + "D" +Q$ + "*FOR*DUAL." 370ST$(2) = “COPYING" 2C0$(2) = "MAKE“SURE ‘“THE*SOURCE*DISK*1S*IN“DRIVE*1“AND “THE*DESTINATION*DISK*IS*IN*DRIVE*2* (OR*IN*YOUR*HAND* | F*YOU*HAVE “ONE“DRIVE)" 380ST$(3) = "FINAL“TOUCH” ;CO$(3) = "TRACK “9*HAS*BEEN*MOD I FIED“TO*NORK “WITH**THE*3 . 3*BOOT*PROGRAM. * YOU'RE*GOING*TO** HAVE“TO*COPY*TRA. CK*@*BY*YOURSELF*WITH*A*N|BBLE*COP IER*(SORRY!)" No. 17: Softkey for Crossword Magic - page 25 The softkey that was published for Crossword Magic was designed to work with version 3.0 only. Nick Galbreath (author of “The Controller Writer’ in Hardcore COM- PUTIST No. 16) reports that the following modifications are needed to the Magic | file (step 3 on page 25) in order to use the softkey with Crossword Magic 3.2 1E1B:31 BB 1E20:32 BB Also, in the same article, step 30 on page 28 should read BSAVE PLAYER, AS$7FD,L$5303 14 Hardcore COMPUTIST No. 20 The Graphic Grabber v3.0 Requirements: Apple ][ Plus or equivalent One disk drive and DOS 3.3 The Print Shop (By Broderbund) ew printer-graphics programs have the versatility and ease of use which are incorporated in Broderbund’s Often I find myself behind the controls of this program sculpting yet ANOTHER creative work. Judging from the great number of letters that Hardcore COMPUTIST receives on stationary created by The Print Shop, our readers also put this program to good use. One thing I particularly appreciate about this program is the fact that the user is allowed to create his or her own graphics and store them on an unprotected disk. My few criticisms of the package are that user- definable fonts are not available and that its graphic editor is not up to the standards of some other programs currently on the market. My initial disappointment in The Print Shop’s graphic editor led me to create a program called The Graphic Grabber (featured in Hardcore COMPUTIST No. 17). This program allows the user to capture a ‘small part of any hi-res screen (88 x 52 pixels) and save it for use by The Print Shop. After using the program to ‘‘grab’’ many graphics, I decided that some additional features would make the Graphic Grabber even more useful. For example, wouldn't it be nice to be able to take a graphic and place it on a hi-res screen along with several other graphics to create sheets of available graphics similar to those that come with The Print ‘Shop? Or, how about shrinking a large picture to the size that The Print Shop requires? With By Ray Darrah III you cannot simply change some lines in the Celie Crabex evens yo ped ip om Hardcore COMPUTIST No. 17. Instead, you must type in the two files (one Applesoft and one Binary) which comprise The Graphic Grabber 3.0 (see page 2 of this issue if you are not familiar with the process of entering and saving programs). Save the Applesoft BASIC portion with: SAVE GRAPHIC GRABBER 3.6 Save the Binary hexdump with: BSAVE OBJ.GRAPHIC GRABBER, A$4000,LSI1AB Using The Graphic Grabber 3.0 When The Graphic Grabber 3.0 is RUN, the hi-res screen page 1 is left intact. This is so that you may use what is currently on the pratpetiede [eral aaghean girdaite a the hassle of saving the screen, running The Graphic Grabber, and then re-loading the screen. If all goes well, The Graphic Grabber will come up with a help screen of all the Hardcore COMPUTIST No. 20 1s azOn commands available to you. At the bottom of the screen there should be a display of some of the important parameters. Moving Right Along... When you are viewing the help screen, notice that the command list indicates to type “*2”" to toggle between the help screen and the hi-res screen. Actually, hitting any key that does not invoke one of the other functions will toggle between the text and hi-res screens. ‘When viewing the hi-res screen, you will notice a flashing square that defines the “‘window"’ upon which The Graphic Grabber 3.0 operates. When considering the size of the window, be sure to include the boundaries of the window itself as these are included in any action of the window. The Window Pressing souks wheat wala foe ke a new window position. You may type in a couple of hi-res coordinates and the window will immediately jump there. The upper left-hand corner of the window will be placed at the coordinates you specify. A third way to move the cursor is to type “1D” or the “TAB” key if you have a //e. This will move the window to the next graphic position. This feature was designed primarily to aid in the creation of sheets of various graphics. If you first use the ‘‘P’* command to place the window at 4,9, every time you press the GJ) key the window will jump to the next available position on the screen that does not overlap the space occupied by an adjacent graphic. This makes it easy to evenly space the various graphic images you wish to place on the screen, and is also useful for quickly moving the window to a general area on the screen. Toggle Parameters Invoke this option by pressing the the the bottom are invisible, the bottom 32 lines of the hi-res screen are visible. Clear Screen If you type ‘*C’’, the hi-res screen will be cleared to black. This is most used to simply clear the screen before creating a sheet of graphics. As a safety precaution i against inadvertently clearing the screen by mistake, ‘‘OK to clear hi-res screen?"’ will appear and you will have to verify that you really do want to perform this function. Reverse Buffer A graphic saved with The Graphic Grabber 3.0 will always be printed by The Print Shop exactly as it appears on the hi-res screen; unlit pixels are printed as black and lit pixels are printed as white (actually, not printed at all). If you wish a graphic to be printed in inverse, you may reverse the current graphic buffer (lit pixels become unlit and vice versa) by pressing “R”’. Changing X and Y Scale The horizontal and vertical size of the window may be altered by pressing **X"’ or “*Y’’, respectively. The three available x scales and y scales translate into nine possible window sizes. The size or scale of the window is very important because when the screen is moved to a graphic buffer or a graphic buffer is moved to the screen, The Graphic Grabber uses the entire window. Note that the sensitivity parameter changes when you alter the x or y scale. Also note that the window wraps around if it is larger than the screen can accomodate, Changing the Graphic Buffer The Graphic Grabber 3.0 utilizes two different graphic buffers. All functions (i.¢. Load, Save, Reverse, Move buffer to screen, Move screen to buffer) dealing with a graphic buffer will be performed on the current buffer selected. To select a graphic buffer, press ‘‘1"” for buffer one or ‘*2’’ for buffer two. Move Graphic to Buffer Pressing “0)"" or the right arrow key will invoke a routine that examines the pixels in the window and creates an 88 x 52 window at its smallest size (xscale=1, yscale=1), there is and the pixels that make up a Print Shop graphic; therefore, no resolution is lost when the window is at its smallest size. Lit-Dot Sensitivity The lit-dot sensitivity (press “‘S’* to change) is used when a graphic is moved to the current buffer area. When the window is larger than The Graphic Grabber 3.0 Source Code GRAPHIC GRABBER 3.0 WACHINE LANGUAGE STUFF COPYRIGHT HARDCORE COMPUTIST 1985 ‘ HGR.Y —.EQ $E2 QOEO- HGR.X —.EQ SEO 9030- WON.HMASK .£Q $30 QGE5- HGR.HORIZ .£Q $E5 OOFE- ROWS EQ SFE OOFF- COLUMNS .EQ $FF 9026- MON.GBASL .EQ $26 OOFD- BITS -EQ $FD iil R RR Ba a5 : | 16 Hardcore COMPUTIST No. QOFC- XSAVE —_.EQ SFC QE7- HGR.SCALE .EQ $E7 OOFB- STATUS.SQ .EQ SFB F417- HPOSN _.EQ $F417 F467- MOVE.LEFT .EQ $F467 MOVES HGR CURSOR LEFT F48A- MOVE RIGHT .EQ SF48A F4D5- MOVE.UP .£Q $F4D5 MOVES HGR CURSOR UP F504- MOVE.DOWN .EQ $F504 MOVES CURSOR DOWN 0000- DOT.STAT .£Q $0 HOLDS NUMBER OF UNLIT DOTS IN THREE BY THREE AREA @O01- XSCALE EQ $1 9002- YSCALE EQ $2 0003- XSCALE1 .EQ $3 9004- YSCALE1 .EQ $4 O005- STARTX .EQ $5 AND $6 F65D- XDRAN =. EQ $F65D -OR $4000 — HGR2 1S UNUSED MOSTLY Pe) “TF 0BJ.GRAPHIC GRABBER ¢ . . i WOVE SCREEN TO BUFFER . . 4000: 20 BO 40 JSR SETUP INITIALIZE STUFF ‘ 4003: 20.03 40 DO.ROW JSR STARTROW SETUP FOR EACH ROW 4006: A9 08 DO.NEXT LDA #0 ZERO UNLIT DOT COUNTER 4008; 85 00 STA DOT.STAT ADA: AS 30 COUNT.EM LDA MON.HMASK GET MASK BYTE 400C: 29 7F AND 4S7F IGNORE MSB 400E: 31 26 ‘AND (WON. GBASL),Y WASK THE BYTE 4010: DB 92 BNE ALONG — LIT, NO COUNT 4012: E6 00 INC DOT.STAT UNLIT, COUNT IT 4914; 20 42 40 ALONG © JSR MOV.ALONG DO ALL THE DOTS DEPENDING ON THE SCALE 4017; 90 FL BCC COUNT.EM NOT DONE COUNTING THE DOTS, KEEP GOING 4019: AS OO LDA DOT.STAT NUMBER OF DOTS LIT 4018: C9 91 CUP #1 SENSITIVITY C=1 - DOT LIT 4010: 3€ 08 58 ROLLER ROL $5800,X PUT BIT INTO PICTURE 4920: C6 FD DEC BITS BYTE DONE? 4022: DO GA BNE NXT.COL NOPE! 4024: AD 08 LDA #8 FIX BITS 4026: 85 FD STA BITS 4028: E8 INX NEXT POS 4929: DO 03 BNE NXT.COL IF NO PAGE CROSSING 4028; EE 1F 40 INC ROLLER+2 NEXT PAGE 4O2E: C6 FF NXT.COL DEC COLUNNS DONE WITH ROW? 4030: DB D4 BNE DO.NEXT NOPE! 4932: 20 3A 40 JSR NEXT.Y GET NEXT Y POSITION 4035: C6 FE DEC ROWS DONE WITH GRAPHIC? 4037: DO CA BNE DO.ROW NOPE! 4939: 60 RTS 403A: 18 NEXT.Y CLC ‘ADD Y SCALE TO Y POSITION 4038: AS E2 LDA HGR.Y 4030: 65 02 ‘ADC YSCALE DEFAULT SCALE = 1 403F: 85 E2 ‘STA HGR.Y 4041; 68 RTS 4042: 20 8A F4 MOV.ALONG JSR MOVE.RIGHT GO RIGHT 4945: C6 03 DEC XSCALE1 DONE GOING RIGHT? 4047: DB 28 BNE CLC.RTS NOPE, Continued on next page its smallest size, The Graphic Grabber examines an area of pixels on the hi-res screen for each pixel that will appear in the current graphic buffer. The area of pixels that are examined differs and can be found by multiplying the x-scale by the y-scale. The lit- dot sensitivity tells The Graphic Grabber 3.0 how often to make the corresponding graphic pixel “‘lit"’. When the sensitivity is set as high as it will go (this changes with each window size), then there only has to be one lit dot in order for the corresponding graphic pixel to be lit. Likewise, when the sensitivity is set to the lowest setting, all of the dots have to be lit in an area before the corresponding graphic pixel will be lit. You will discover that different types of to be properly ‘‘grabbed’’. For example, digitized pictures or pictures that have a lot of gray scale in them usually work best on a sensitivity that is half of the maximum. Pictures that have few lit dots will probably require high sensitivity settings and pictures that have many lit dots will almost always require low sensitivity settings. Move Buffer to Screen Pressing ‘‘€H)"’ or left arrow key will fill the window with the graphic found in the current graphic buffer. If the window is large than normal (x-scale or y-scale greater than 1) then the graphic will be stretched accordingly. In other words, one pixel in the graphic buffer could be placed on the screen as several pixels if the window is larger than normal. Disk Access When the disk access routine is invoked (press ““D’") you will be presented with a mini menu which provides 4 options: 1) Load hi- res screen, 2) Save hi-res screen, 3) Load graphic buffer and 4) Save graphic buffer. ‘You must then press the number of y« choice (if you accidentally typed the ‘‘D'’ command, you may exit this routine by pressing ESCape). When asked for a filename, you may press RETURN to get a directory. To exit the current function, press ESCape. After the filename, you may put slot, drive and volume parameters. For , if you wanted to load a file called EXODUS from drive two, you would type EXODUS,D2 as a filename. Just typing a slot drive or volume number will display the directory of that disk. For example, if you wanted a CATALOG of the disk in slot 6, drive one you would type »86,D1 as the filename. Hardcore COMPUTIST No. 20 17 Leaving The Program If you press ESCape while in the move window mode, you will leave the program. You can start it up again with everything intact by typing RUN. Printing Hi-res Screen Ne Although I have provided Graphic Grabber 3.0 with a command (‘*@)P)’’) which would allow it to dump a hi-res screen to a printer, as the program now stands, pressing ‘(=)P)”” WILL NOT do this. Due to the many printer- interface combinations that exist, I found that this was impractical and have not implemented a print routine. Therefore, if you wish to be able to print out the hi-res screen you must add your own printout routine starting at line 1010. This should be a fairly trivial task if you have a printer and interface card with graphics capabilities. A Bit About Graphics A graphic created with the graphic editor section of The Print Shop is a normal Binary file with a length of $240. However, The Print Shop will recognize any normal Binary file, that the directory says is four sectors long, as a graphic, The first 572 ($23C) bytes define the graphic and the rest are ignored. These bytes are arranged as fifty-two rows of eleven bytes. Each bit in the rows corresponds to a pixel with the most significant bit (bit 7) of each byte being the leftmost pixel. Row two ‘sequentially follows row one and so on. This makes the maximum size of a graphic equal to 88 x 52 pixels. Do It Now! I hope my description of The Graphic Grabber 3.0 has intrigued you enough to type the programs in and try them out. Of course, you will need The Print Shop in order to fully utilize it. If you have not yet purchased this fine Broderbund program, I suggest you do so as soon as possible. It is one program Se een Bs ed ome f. The Graphic Grabber 3.0 BASIC Program 10 REM B&SSEGGEGESELEELELERLELE 20 REM & & 30 REM & GRAPHIC GRABBER 3.0 & 40 REM & FOR & SOREM& THE PRINT SHOP = & 60 REM & BY & 70 REM & RAY DARRAH & 80 REM & & 9D REM G&EGELELERLELELELEELELEE 100 REM 110 REM INITIALIZE VARIABLES | i i i § gegnseengagesseeses 8 E = 223 af SEURBE B E & 8 a a ape fg 355 rags ES HE 41 =(NO.FLIP WOVE SCALES SSITSSSS BSR CLC.RTS BEABSESSRSRSESSERA eas REPLACE XSCALE1 WITH XSCALE NEXT YPOSITION FIGURE WHERE WE ARE DONE MOVING DOWN? NOPE! DONE WITH BLOCK SO FIX EVERYTHING WOVE UP TO TOP OF BLOCK AND FIRST POS OF IT CALCULATE WHERE WE ARE C=1 - DONE WITH BLOCK WOVE BUFFER TO SCREEN JSR SETUP 00.ROWL DO. NEXTI RBS ess GET.BIT GET A DOT PLOT.EM BCC FORCE] Sass ‘AND (WON.GBASL) ,Y FORCED! -HS 2C ORA (MON. GBASL) , Y STA (WON.GBASL) , PHP x ALONG FORCEL Be a a VE CARRY & % 5 ge 2 sg 8 g 1TH ROW? 5 nanaags 8 =§ BADR BS rs 35 z 35 8 g GET.BIT il “248 * &8 sss3s = 3a 8a ake # SMSSRSS8m SPRLSSLSSSSLKSlsSSsssyess & SSSSESESE SSSSSESHSESERERESSSSSS ARRESERES ARBZARSE a Hardcore COMPUTIST No. 20 INITIALIZE STUFF JSR STARTROW SETUP FOR EACH ROW SAVE CARRY STATUS (DOT ON OR OFF) RESTORE CARRY STATUS LDA WON.HMASK GET MASK BYTE IF CARRY CLEAR, THEN FORCE A ONE EOR #$FF OTHERWISE, FORCE A ZERO SKIP NEXT TWO BYTES L BITS ACCORDING TO SCALE KEEP GOING CORRECT STACK POINTER Y POSITON 1TH GRAPHIC GENERAL SET UP ROUTINES SVRFSSSS SRBSSRSSRSSERSSERS és SSSESTSSRSSSnSSS §S58858 SERSSESS858888 STA BITS a STA ROLLER+2 STORE IT STA GET.BIT+2 LOX #9 INITIALIZE X LDA #52 52 ROWS STA ROWS LDA HGR.X SAVE STARTING X ‘STA STARTX ‘STARTROW LDA #88 88 COLUMNS COLUMNS: LDA #8 EIGHT BITS IN A BYTE LDA #$58 GET BUFFER MSB 58 FF STA 95 LDA STARTX MOVE STARTING X TO CURRENT X =) STA HGR.X 96 LDA STARTX+1 El STA HGR. X+1, 7 JSR HPOSN1 © CALCULATE CURRENT POSITION 2: RTS WOVE WINDOW 49E3: 8D 10 CO DONE.MOV STA $CO16 CLEAR KEY 4QE6: 20 3A 41 WOVE.W JSR DO.SQUARE 40E9: AD 50 LOY #80 4QEB: A2 50 TEST.X LOX #80 4QED: 2C 08 CO TEST.Y BIT $COOO KEYPRESS? 40F0: 30 08 BM! EVALUATE YUP 40F2: CA DEX WAIT A WHILE 40F3: DO F8 BNE TEST.Y 40F5: 88 DEY 40F6: DO F3 BNE TEST.X 40F8: FO EC BEQ MOVE.W AFA: AS FB EVALUATE LDA STATUS.SQ SQUARE ON? 4FC: FO 03 BEQ SKIP.ER NOPE 4OFE: 20 3A 41 JSR DO. SQUARE 4101: AD 00 CO SKIP.ER LDA $C000 © GET VALUE 4104: C9 C9 CUP #$C9 MOVE.UP? 4106: DO 09 BNE TST.J 4108: AS E2 LDA HGR.Y 410A; FO 07 BEQ DONE. MOV 410C: C6 E2 DEC HGR.Y 419E: 4C E3 40 JMP DONE. MOV 4111: C9 CA TST.J CMP #SCA WOVE LEFT? 4113: DO 99 BNE TST.K 4115: AS EO LDA HGR.X 4117: FO CA BEQ DONE. MOV 4119: C6 EO DEC HGR.X Continued on next page 120 IE PEEK CLABSA) + PEEK (1688 ) 2 208 THEE PRINT CHRS (4) "BLOAD*OBJ .GRAPHIC*GRAB BER, 130 HIWEM: 8191 : POKE 251 ,0 :Wl=1:W2=1; See aecaee NE IE Oe ene A 149 POKE 1 1: POKE 2,1 :X=96 :Y=70 Wel : POKE 16716 ,51 : POKE 16737 ,51 : POKE 16412 W 150 A$ = "" :ESC$=CHRS (27 ) :K$ = CHRS (9°) + CHRS (8 ) + CHRS (21 ) + "DXY12SRP*C" + ESC$ + CHRS (16 ) 160 GOSUB 86 : ONERR GOTO 820 170 REM GET A KEY 189 GOSUB 950 : POKE 225 ,X / 256 : POKE 224 ,X ~ PEEK (225 ) * 256 : POKE 226 ,Y 190 CALL 16611 :X = PEEK (224 ) + PEEK (225) * 256 :¥ = PEEK (226 ) : GET AS 200 FOR A=W TOLEN (K$) : IF A$<>MIDS (KS ,A ,W) THEN NEXT :W1 = W~W1 : GOTO 180 210 ONAGOSUB 260,380 , 400 ,580 ,320 ,350 220 230 470 ,450 , 510, 240 420 , 998, iow ‘'g0To 180 220 POKE 16565 ,85 : RETURN 230 POKE 16565 ‘88 : RETURN 240 W2 = W-W2 ; RETURN 250 REM TAB TO NEXT POSITION 260X=X+92: IFX> 192 THENX=4 :Ye¥ +61 2 IFY> 140 THENY = 9 270 RETURN 280 REM DO MONITOR COMMAND 290 AS = AS + "*N*D9CEG" : FORA=WTOLEN (AS ) : POKE S11+A, ASC ( MIDS (AS ,A,W) ) +128 300 NEXT : POKE 72 ,0 ; CALL - 144 : RETURN 31 REM INCREMENT XSCALE 320 POKEW , PEEK (W) +W: IF PEEK (W) =4 THEN POKE W ,W 330 POKE 16702 , PEEK (W) * 88-45 ; POKE 16723 , PEEK (W) * 88~ 45 : POKE 16412 , 1 + PEEK (W) * PEEK (2) / 2 : RETURN 340 REM INCREMENT YSCALE 350 POKE 2 , PEEK (2) +: IF PEEK (2) = 4 THEN POKE 2 ,W ‘360 POKE 16737 , PEEK (2) * 52-1 : POKE 16716 , PEEK (2) * 52-1 : POKE 16412 ,1 + PEEK (W) * PEEK (2) / 2 : RETURN 370 REM PUT GRAPHIC ON SCREEN 380 AS = "4F90<5500.5A40M" : GOSUB 290: CALL * 16499 :A$="5500<4FO0.5440M" : GOTO 290 390 REM PUT GRAPHIC IN’ BUFFER 400 CALL 16384 : RETURN 419 REM CLEAR HI-RES SCREEN 420 POKE 34 , 20 : HOME : POKE - 16301 0 : PRINT : PRINT "“OK“TO*CLEAR*H |-RES “SCREEN? “N" CHRS (8); : GETA$ : PRINTAS : IFAS="¥" THEN CALL 62459 430 TEXT : RETURN 440 REM REVERSE BUFFER 450 CALL 16785 : RETURN ‘460 REM GET NEW SENSITIVITY 476 VTAB 23 : HTAB 15 : INVERSE : PRINT "(1~" PEEK (W) * PEEK (2) ")" : NORMAL : HTAB 1 : POKE - 16301 ,0 480 HTAB 14 : GET A$ : VTAB 23 : HTAB 15 : PRINT SPC( 15) : IFA$<"1" ORAS > STRS ( PEEK (W) * PEEK (2) ) THEN RETURN 499 POKE 16412 , VAL (A$) : RETURN 500 REM JUMP TO NEW POSITION Hardcore COMPUTIST No. 20 510 POKE 34 ,20 : HOME : VTAB 22 : "CURRENT*POSITION=>" X'"," Y : TAB( 25 +); INVERSE " (9-192, 0-149)" NORMAL : POKE - 16301 ,@ : VTAB 24 : "NEW*POS|TION*(X,Y)=>" ; 530 FLASH : PRINT "*" CHR$ (8); : NORMAL : WAIT te aed 128 : IF PEEK ( - 16384 ) = 155 PRINT PRINT PRINT PRINT 540 | WT oes jA,B:A= INT (A) :B= INT (B) : IFA<@ORA> 1920RB<@ORB> 149 THEN 560 570 REM DISK ACCESS 580 TEXT : POKE 34 , 2 : HOME : VTAB4 ; PRINT TAB( 14) "DISK*ACCESS" : VTAB 7 590 PRINT "“1)*LOAD*HI-RES*SCREEN” : PRINT : PRINT "*2)*SAVE*HI-RES*SCREEN” : PRINT 600 PRINT "*3)*LOAD*GRAPHIC*BUFFER*" ( PEEK (16565 ) - 85 ) / 341: PRINT : PRINT "*4) *SAVE*GRAPHIC*BUFFER*" ( PEEK (16565 ) - 85) /3+1 610 PRINT : PRINT : PRINT "WHICH?" CHR$ (8 ); 620 GET AS : IF A$ <."1" OR A$ > "4" THEN 660 630 ON VAL (A$ ) GOTO 640 678 699 ,710 640 A$ = "LOAD*HI-RES*SCREEN" : GOSUB 740 : IF F$ = ESC$ THEN 660 650 PRINT CHR$ (4) "BLOAD" F$ ",A$2000" 660 TEXT : GOTO 860 670 A$ = "SAVE*H|-RES*SCREEN" : GOSUB 740 : IF F§ = ESC$ THEN 660 680 PRINT CHR$ (4 ) “BSAVE" FS " ,A$2000,L$2000" : GOTO 660 690 A$ = "LOAD“BUFFER*" + STRS (( PEEK (16565 )-85) /3+1) : GOSUB 740 : IF F$ = ESCS THEN 668 700 PRINT CHR$ (4) "BLOAD" F§ ",A" 256 * PEEK (16565 ) : GOTO 660 71.A$ = "SAVE“BUFFER*" + STR$ (( PEEK (16565 )-85) /3+1) : GOSUB 740 ; IF F$=ESCS THEN 668 720 PRINT CHR$ (4) “BSAVE" F§ ",A" 256 * PEEK (16565 ) ",L$249" : GOTO 660 730 REM GET A FILENAME TAQ HOME ; PRINT ; HTAB 20 -LEN (A$) /2 : PRINT AS: VTAB 6 : PRINT TAB( 8 ) "RETURN“DO ES*A*DIRECTORY" + FLASH : 750 VTAB 12 : PRINT "FILENAME=>" ; PRINT "*" CHRS (8); : NORMAL 760 WAIT ~ 16384 , 128 : IF PEEK (- 16384) = 155 THEN RETURN F PEEK (512+LEN (F$) ) THEN VTAB PEEK (37) : CALL 64578 780 FOR A = 512 + LEN (F$ ) TO 768 : IF PEEK (A ) THEN F§ = F§ +CHR$ ( PEEK (A) ) : NEXT 790 IF F§="" ORLEFT$ (F$ ,W) =", " THEN HOME : PRINT CHR$ (4) "CATALOG" F§ : PRINT : PRINT "PRESS*A*KEY*" ; : GET F$ : GOTO 749 ‘800 RETURN 810 REM ON ERR HANDLER baer ERR = PEEK (222) : THEN RESUME 830 TEXT ; HOME : VTAB 12 : PRINT "ERROR“#" ERR CHRS (7 ) 840 F$ = ESC$ : FORA=1 TO 1500 : NEXT 850 REM PRINT COMMANDS 860 HOME : PRINT "GRAPHIC*GRABBER*3 .9" SPC( 4) "BY*RAY*DARRAH* |||" 870 VTAB 4 : PRINT "P=JUMP*TO*NEW*POSIT ION” : PRINT "1-2=GRAPH|C*BUFFER™ IF ERR > 254 Continued from previous page 411B: 4C £3 49 JMP MOV 411E: C9 CB TST.K CMP #$CB WOVE RIGHT? 4120: DO OA BNE TST.M 4122: AS EO LDA HGR.X 4124: C9 CO CUP #SCO 4126: BB BB BCS DONE.MOV 4128: £6 EO INC HGR. X 412A: DO B7 BNE DONE.MOV 412C: C9 CD TST.M = CMP #$CD MOVE DOWN? 412E: DO 3D BNE OTHER. KEY 4130: AS E2 LDA HGR.Y 4132: C9 8C CHP #149 4134: FO AD BEQ DONE. MOV 4136: £6 E2 INC HGR.Y 4138: DB AS BNE DONE. MOV DO. SQUARE 413A: 20°77 41 JSR HPOSN1 GET FIRST POS 4130: A2 2B LOX #43 SCALE=43 413F: AS OO LOA #8 ROT=0 4141: 20 6E 41 JSR XDRAWL == DRAW IT 4144: A2 2C LOX #44 SCALE=44 4146: A9 00 LOA #0 ROT=9 4148: 20 GE 41 JSR XDRAWL 414B: A2 33 LOX #51 SCALE=51 4140: Ad 19 LDA #16 ROT=16 414F: 20 GE 41 JSR XDRAWL = DRAW IT 4152: A2 2B LOX #43 SCALE=43 4154: A 20 LOA #32 ROT=32 4156: 20 6E 41 JSR XDRAW = DRAW IT 4159: A2 2C LOX #44 SCALE=44 4158: Ad 20 LDA #32 ROT=32 415D: 20 6E 41 JSR XDRAWL 4160: A2 33 LOX #51 ‘SCALE=51 4162: Ad 30 LOA #48 ROT=48 4164: 20 GE 41 JSR XDRAW1 — DRAW IT 4167: AS FB LDA STATUS. SQ 4169: 49 O1 EOR #301 4168: 85 FB STA STATUS.SQ 4160: 60 OTHER. KEY RTS 416E: 86 E7 XDRAWL — STX HGR. SCALE 4170: A2 8F LOX #SHAPE 4172; AD 41 LOY /SHAPE SB 4174: 4C 5D F6 JMP XDRAW 4177: 86 FC HPOSN1_~=«STX XSAVE DON'T MESS UP X 4179: AS E2 LDA HGR. Y 4178: AG EO LOX HGR.X 4170: A4 El LDY HGR. X+: 417F: 20 17 F4 JSR HPOSN CALCULATE STARTING ADDR 4182: AG FC LOX XSAVE —-RESTORE X 4184: 60 RTS 4185: 68 FIX.ERR PLA POP STACK 4186: AB TAY 4187: 68 PLA 4188: AG DF LOX $DF FIX POINTER 418A: 9A TXS 4188: 48 PHA 418C: 98 TYA 418D: 48 PHA Hardcore COMPUTIST No. 20 4160: A2 33 A9 30 20 GE 41 AS SFOF3 4168: FB 49 01 85 FB 60 86 E7 SIF8B 4170: A2 8F AD 41 4C 5D F686 $0037 418F: 95.00 SHAPE HS 9500 Bs 4188: AG DF 9A 48 98 48 69 95 © $0C77 ’ . 4190: 9 A2 63 AB 09 AD BS 49 sos . 4198: 85 FF 84 FE Bl FE 49 FF S$ ; Se et ee ; 41AB: 91 FE C8 DO F7 E6 FCA $B4l5 AIA: DO F2 60 spca4 dial: A263 Lx #3 NUMBER OF PAGES TO REVERSE : Ad 08 Lov #0 INITALIZE Y 4195: AD B5 49 LA WSB+1 GET CURRENT BUFFER MSB The Graphic Grabber 3.0 pte: 85 FF STA COLUMNS STORE ZERO PAGE BASIC Checksums 19A: 84 FE STY ROWS ZERO LSB 419C: Bl FE REVERSE LDA (ROWS) ,Y GET BYTE 10 - SBADD 528 - $1167 419E: 49 FF EOR #SFF REVERSE IT 29 - $913. 530 - $DEQA 41M: 91 FE STA (ROWS) ,Y PUT IT BACK 30 - $4D3B 549 - $2640 41A2: C8 INY NEXT BYTE 40 - $AD92 550 - $1CB6 4103: DO F7 BNE REVERSE NOT END OF PAGE YET 56 <- $0009 S08 SAND 4 4105: £6 FF INC COLUMNS. NEXT MSB 6 - $FFGS 570 - $8200, 41A7: CA DEX DONE WITH GRAPHIC? 1) - SASF 58H = SBS i 80 - $A90B «598 $0543 A1AB: DO F2 BNE REVERSE NOPE, CONTINUE AIAA: 60 RTS Yup, EXIT 99 - $9240 608 - $OC5A 199 - §CB63 «G10 ‘SCAB t 10 = $8013 620 = $3178 Se] £ 120 - are 630 - sell a 130 - 69 - BBO PRINT : PRINT "X=CHANGE*XSCALE" TAB( 25) 4040: E2 60 20 8A 03 09 $3F6D io ts pr pit od | OACLENE SCHED: SPRINT *YeCHANGE*YSC 4048: 28 A G1 85 £2 20 $6998 160 $2928 «670 $8453 890 PRINT TAB( 25) "ESC=EXIT® : PRINT: PRINT 4050: 77 38 AS $1874 Has cies oa oo tae Kl "S=LIT*DOT*SENSITIVITY" : PRINT 4958: E2 AS EO $5565 199 - $6883 700 - SEAFB : "<SPACE>=T OGGLE*PARAMETERS" 4060: 65 £6 El $1834 200 © - $EBD8 710 = $BAEE Bet 900 PRINT : PRINT "<-sMOVESGRAPHIC*TO“SCR 4968: 26 04 38 $9822 210 - SSFFF «= 720 ‘SBCIE a EEN" : PRINT "->=MOVE*GRAPHIC*TO*BUF 4070: 60 20°03 $0357 E 4 of ea pi je aed 220 -- $770E 730 - $5972, 910 PRINT : PRINT "D=DISK*ACCESS” : PRINT : 90 20 11 $5368 ie NG i ee aed "ReREVERSE“BUFFER™ 6 4990 $1280 760 — SMMCB 920 PRINT : PRINT "<CTRL>|=JUMP*TO*NEXT*GR- EC 20 3A $9366 770 - $8002 APHICSPOSITION" : PRINT "?=SWITCHBE 0 1E 0 $FBCO 780 - $32AA ‘TWEEN*THIS*SCREEN“AND*HI-RES" SSSSSSRSRS SSSLSSSSSNse Sz 6 &6 41 06 04 06 18 £5 02 85 E2 18 O1 85 E9 96 02 77 41 AS 02 85 18 66 20 BO 49 26 9E 40 08 28 4080: 96 05 49 FF 31 26 4088: 26 91 26 08 26 42 4090: EC 28 C6 FF DB E3 4098: 49 C6 FE DB 09 60 c 930 RETURN 4OA0: 58 C6 FD DO GA A9 G8 85 —$7ED6 800 - $5880 ° 940 REM PRINT PARAWETERS ¥ 4QA8: FD E8 DO 03 EE AD 40 60 $0446 810 - $5DA3 R SSOHTABW : VTAB 22 : PRINT "XSCALE=>' PEEK (1 4980: A9 08 85 FD A9 58 8D IF $9687 820 - $4EC7 Ez ) TAB( 26 ) "YSCALE=>" PEEK (2) ; PRINT 4088: 49 8D AB 40 A2 GO AS 34 SADBS 830 $065E 960 PRINT "SENSITIVITY=>" PEEK (16412) TAB( 4909: 85 FE AS EO 85 05 AS El SFCAF 840 SU6TF o> BUFFER=>" ( PEEK (16565) -85)/3 49C8: 85 06 A5 01 85 03 A5 02 $EE72 850 - $4EB7 ; 4000: 85 04 60 AD 5885 FFAS $8C88 “ QTOPOKE -16302-4W2 ,N2 : POKE-16304+W1,W1 poe; Os OS EO AG 66 88 E1 29 S0GEA pester : POKE ~ 16297 + M1 ,W1 : RETURN 490: 77 41 60 80 10 CB 203A $0702 880 - $5007 960 REM EXIT PROGRAM AEB: 41 AB 50 A2 50 2C 09 CB $95C8 898 - $9333 tac imr me INTOUT. HI-RES: SCREEN 40FO: 36 08 CA D6 F888 DD F3 SEFB3 400 - $76AE = 910 - ‘$9C2A ae 40F8: FO EC AS FB FO 03 203A $470F 410 - $7E53 (920 - SEB46 4100: 41 AD 00 CB C9.C9 Dd 99 $1E9D 420 - $F908 = «930 - ‘$208A 4108: AS E2 FO D7 C6 E2 4c E3 $5062 430 - $0187 «940 ‘SA760 The Graphic Grabber 3.0 4110: 49-09 CA DO 9 AS EO FO $90C3 440 - $C33F = 950 - $3882 Hexdump 4118: CA C6 EO 4C E3 49 .C9 CB $899F 440 - $C33F «950 - $3882 4120: DB GA A5 EO C9 CB BO BB $BE53 450 - $BBSA 960 - SO74E 4000: 20 BO 40 20 D3 40 A9 BO $43CC 4128: £6 EO DO B7 C9 CD D6 3D $BA1B 460 - $6ACS «(970 - $8063 4008: 85 00 AS 30 29 7F 31 26 $9092 4130: AS E2 C9 8C FO AD EG E2 $6223 470 - $2031 «980 - SOASE 4010: DB 02 E6 OO 20 42 40.90 SDFCB 4138: DB A9 20-77 41 A2 2B AD $225 480 - $6ACh = 990 - SDDD5 4918: FAS 08 C9 G1 3E 00 58 $33BF 499 - $3860 ©1900 - $7C7D 4020: C6 FD DO OA A9 08 85 FD $1A68 4140: 08 20 GE 41 A2 2C A999 $638C 500 - $6147 1010 - $1780 4028: £8 DO 03 EE IF 40 C6 FF $A888 4148: 20 6E 41 A2 33 -A9 10 20 $CBOB 510 - $1288 4030: DO D4 20 3A 40 C6 FE DO $ALA2 4150: GE 41 A2 2B A9 20 26 6E SLAB 4038: CA 60 18 AS E2 65 02 85 $0948 4158: 41 A2 2¢ A926 20 6E 41 $4035, £ Hardcore COMPUTIST No. 20 2 COPY Us B03 A Review By Dr. Phillip Romine US OY REALLY NEW? Happily, | can offer an unequivocal yes and no! The changes In Copy Il+ 5.0 are only evolutionary in the bit copier’s performance, but revolutionary in convenience and ease of use. Furthermore, the limited copy protection on the earlier versions has been removed and the price has remained at an astonishingly low $39.95. The improvements in Copy Il+ Version 5.0 can be summarized under three headings: changes and additions to the bit copier program (extensive), changes in bit copier copying performance (modest), and changes or additions to the utility programs (few, but valuable). Changes and Additions to the Bit Copy Program he most revolutionary change to the bit copier is in the automatic loading of parameters. Although Nibbles Away has offered this feature for some time, with Locksmith adding it also more recently, I find the Copy II+ approach much more convenient because the parameters are on the disk with the bit copier; no disk swapping is necessary. Also, with the lack of copy protection, if the parameter list ever grows too large to fit onto the entire Copy I+ disk, the user can easily put the bit copier and parameters n a separate disk. The parameters are also very easy to find and retrieve. If you know the name of the parameter you want, you simply type it in. If not, Copy I+ will provide its directory for you to view and also make available a convenient search feature. If you don’t know exactly how a parameter is listed - as is usually the case - simply enter the first few characters of the probable title. The program presents a list of all the parameters with the beginning you specified and allows you to choose among them with a keystroke. The user also retains the options of entering parameters manually or of recopying specific tracks after the parameters have been entered either automatically or manually. I must confess that I was unimpressed with this new auto-loading of parameters at first. I had used the Nibbles and Locksmith auto-load features and, furthermore, had never considered the entry of parameters manually any real chore. But after only a few uses, I was hooked. Now I would rather never again enter parameters manually. A second valuable addition to the bit copier program is a high resolution disk scan. It seems identical to the Locksmith Quickscan feature which, in my opinion, is the best such function of its type. It gives the user a visual overview of which disk tracks contain data, allows you to spot spiraled tracks and half tracks, and doesn’t cause the disk drives to run incessantly (unlike similar functions on some other popular bit copiers). A new sector copy program has also been included in the bit copier package. This addition, like Back-It-Up’s ‘‘Copy Sectors’ option, is intended for more reliable copying of protected disks with a near-normal DOS. The Copy I+ Manual states that this program, ‘can handle a few protection schemes more readily than the manual bit copier,’’ but does not 22 Hardcore COMPUTIST No. 20 elaborate, The sector copy program also handles the disks with bit insertion protection that used to be copied by the copy disk from the main menu. Some additional parameters have been added for use by this program. The remaining new bit copier functions are to be used in the creation, editing, storing, and use of your own parameters which you may want to add to the autolisting. A very minimal text editor is provided for working with the parameter files. Bit Copier Performance The Copy I+ manual and promotional literature make two basic claims about the bit copier’s performance: 1) that it offers completely revised nibble counting and track analysis routines, and 2) has the ability to copy more disks than before. I was able to verify one of these. The automatic nibble counting of the new Copy II+ is much improved over the earlier 4.4C version. On my disk drives, the optimum copying speeds seem to be 199.5 millisecond/revolution on the original drive, and a slower 201 m/r on the copy drive. Even with this di , the keep track length (nibble count) option was able to reconcile the track lengths most of the time. With earlier versions of the program, I always had to use one drive or turn to EDD for the nibble count. An added advantage is that the count is high speed. On some competing disks, especially Locksmith, the time required to nibble count a single track can seem interminable. Unfortunately, I was not able to verify the claim that Copy II+ can now backup more disks. I don’t question the assertion but, on the disks which I had available at the time, with but one exception, there was no discernible difference in copying performance between the 5.0 and 4.4C versions. In general, these disks ranged from difficult (Simon Says - MECC Sunburst) to very difficult (Pop ’R Spell - Milliken and the Britannica series). All of these, by the way, yield readily to Super IOB with the Swap Controller. On these disks, and some others of similar difficulty, either 4.4C and 5.0 would both make a workable copy, or neither version would do so. The one exception was an easier disk (Sensible Speller - Sensible Software). The 5.0 version of Copy I+ would make a good copy almost every time, while the hit rate for 4.4C on that program was only about 33% without recopying certain tracks. So perhaps my disk sample was too hard for a fair test. But for the present, I must assume modest, if any, improvement in copying ability when nibble counting is not required. I should add, however, that 4.4C is already an excellent copier, one of the best available, so a lack of marked improvement after the recent upgrading to version 4.4C isn’t surprising. A new programmable version of Nibbles Away is due any day now and Echo II is due out this spring. Performance comparisons of these two updates with Copy I+, E.D.D. and Locksmith should be fascinating. Changes and Additions to the Utilities Section All of the old utility program functions which have proven so useful and popular are still on the Copy II+ disk. There are also some welcome additions. One of the first things that you might notice when viewing the main menu is that the order of the options has changed slightly. “CATALOG DISK"? is no longer the first entry; it has been replaced by ‘‘COPY”’. In addition, ‘*BIT COPY” no longer appears in the main menu at all but has been moved to the “COPY” submenu. The Sector Editor is, thank- fully, much im- proved. There is now an option to read the sectors from a spec- ified file, a disassembly option, a (text) screen dump, read next (+) or last (-) sector, and a search function. The patch option now offers a custom patch which allows the changing of address and data headers and trailers, ignoring of checksums, and selection of the different encoding methods. This custom patch ability should expand the number of protected diskettes which can be read and sector edited by the program. A new utility allows the user to alphabetize the disk catalog, view the rearranged titles, and make them permanent if the aesthetics are pleasing. One minor inconvenience of the option is that, once it has been used, there is no way to “‘unalphabetize’’ a disk’s catalog short of getting out another disk utility such as Sensible Software’s Disk Organizer. The main menu COPY DISK has been updated so that it is faster on a //c or //e with 128K of memory and (according to the manual) more reliable. It is now strictly a fast-copy program for unp

Showing the first 100000 of 147007 characters.

mp.ls