Skip to main content

computist scan 55

  • PublicationApple Periodicals
  • Pages48
  • Sourcecomputist-scan-55.pdf
← Magazines computist scan 55
/ 48
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
USA $3.75 Canada & Mexico $7.00 All Others $8.75 6 REX Reexrfevres: Hf A Utility to Save the Lower 8 Pages of Memory—By Mark Harris Ei Bard's Tale Effects Locator—by George Bigelow Hf How to Capture Phantasie Screen Maps—By George Bigelow Bh Alternate Reality Character Editor—By Michael Horton Updating the ProDOS Block Editor—py Rene Gaudet Bi Loading Flashcalc onto your RAMcard—by John Pierce i A Copy-protection Scheme for ProDOS—sy stanley Planton Bi The Product Monitor—by Jeff Hurlburt Ei Antoduel Car Editor—py Marc Batchelor 6 DEX Softkeys: Alphabet Sequencing ¢ Animal Alphabets and Other Things Arctic Antics ¢The Boars' Store ¢The Boars Tell Time @Career Focus @ Castle Wolfenstein ¢ Charlie Brown's 123's ¢ Charlie Brown's ABC's ¢ City Country Opposites # Coveted Mirror Create With Garfield Crypt of Medea ¢ Customized Alphabet Drill ¢ Customized Flash Spelling ¢Dig Dug @Digital Paintbrush System Estimation ¢Fay: Word Hunter ¢Fix It Focusing on Language Arts # Fundamental Capitalization ¢ Fundamental Punctuation Practice ¢ Fundamental Spelling Words in Context ¢ The Hobbit ¢ Homonyms in Context ¢ Individualized Study Master ¢ Inside Outside Shapes ¢ Inside Outside Opposites # Leisure Suit Larry in the Land of the Lounge Lizards ¢ Master Diagnostics II & I+ ¢Mastertype v2.1 & Mathematics Series ¢ Mr. and Mrs. Potato Head ¢ Paper Models - The Christmas Kit ¢ Peanuts Math Matcher ¢ Peanuts Maze Marathon ¢ Peanuts Picture Puzzlers ¢Perry Mason: The Case of the Mandarin Murder ¢ Railroad Works ¢ Random House Library # Management Programs @Rocky's Boots v.4 Sensible Speller ¢Snoopy's Reading Machine ¢Snoopy's Skywriter Scrambler Snoopy to the Rescue 6 Snoopy Writer ¢ Spelling Demons @ Stock Market Simulation ¢ Story Builder ¢ Story Starter ¢ Studio II ¢ Test Maker ¢Think Quick v1.0 ¢ Tournament Bridge ¢ Tutorial Comprehension # Typing is a Ball, Charlie Brown ¢ Under Fire Word Blaster ¢ Word Count ¢ Word Mount @ Your Personal Net Worth [1BM | RIDE SE = Feature: Flight Simulator RGB Modifications Softkey: HSamna Word I v1.1 | gs G Al R | G HT Publisher-Editor: Charles R. Haight | Graphies Editor: Ben R. Haight You have a Circulation: Karen Fitzpatrick Advertising, call: (206) 474-5750 Publisher: SoftKey Publishing Printing: Valco Graphics & Printing to an unlocked backup copy of your commercial software Our editorial policy is that we do NOT condone software piracy, but we do believe that 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 programs to meet his or her needs. © Address all advertising inquiries to: COMPUTIST; Advertising Department; PO Box 110816; Tacoma, WA 98411 @ Mail all RDEX letters to: COMPUTIST Apple-RDEX or _ IBM-RDEX PO Box 110846-K Tacoma, WA 98411 @ COMPUTIST does NOT purchase editorial material. The entire editorial content consists of information submitted to COMPUTIST for publication in the shared interests of all COMPUTISTs. @ Unsolicited material (manuscripts, letters to the editor, softkeys, A.P.T-s, playing tips, questions, etc., are assumed to be submitted Furthermore, the copyright laws guarantee your right to such a DEPROTECTED backup copy: ...“It is not an infringement for the owner of a copy of a computer program to make or authorize the making of another copy or adaptation of that computer program provided: 1) that such a new copy or adaptation is created as an essential step in the utilization of the computer program in conjunction with a machine and that it is used in no other manner, or 2) that such new copy or adaptation is for archival purposes only and that all archival copies are destroyed in the event that continued possession of the computer program should cease to be rightful. Any exact copies prepared in accordance with the provisions of this section may be leased, sold, or otherwise transferred, along with the copy from which such copies were prepared, only as part of the lease, sale, or other transfer of all rights in the program. Adaptations so prepared may be transferred only with the authorization of the copyright owner.” United States Code title 17, §117 as letters-to-the-RDEX-editor for publication with all and exclusive rights belonging to COMPUTIST. © Entire contents copyright 1988 by SoftKey Publishing. All rights reserved. Copying done for other than personal or internal reference (without express written permission from the publisher) is prohibited. @ The volunteer and paid editorial staff assume no liability or responsibility for the products advertised in the magazine. Any opinions expressed by the authors are not necessarily those of COMPUTIST magazine, its staff or SoftKey Publishing. @ Apple® is a trademark of Apple Computers. IBM® is the IBM trademark. SUBSCRIPTIONS: Rates (for | 2 issues): US.—$32 US. Ist Class—$45 Canada/Mex.—$45 Other Foreign—$75 @ Send subscription inquiries to: COMPUTIST; Subscription Department; PO Box 110846-T; Tacoma, WA 98411 © For 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. COMPUTIST #55 Attention Apple-users: Why type those |-o-n-g listings when you can just Upgrade your present sub. to a Mag/5%4’’Disk Combo © subscription You may upgrade your current subscription to a magazine é& disk combination by sending $5.50 ($6.50 & foreign) per remaining issue. Time to renew? Check your mailing label to see if you need to renew your subscription. ©) Use the order form on this page to renew, and don’t forget to send your most current mailing label to help expedite your renewal & Moving soon? @ If you're moving, let us know at least 30 days in advance. i Issues missed due to non-reciept of Change-of-Address may be acquired at the regular back issue rates. @ Remember, the Post Office does not forward third class mail unless requested. & COMPUTIST is not responsible for replacing issues lost while forwarding order is in effect. 1am... C) A new subscriber Cl Renewing my current subscription J Changing my address (please include last mail label) Ihave...) an Apple lle, llgs or Ile computer Can IBM computer Apple—IBM subscription... CUS. - $32 C US.\Canada/Mexico First Class - $45 © All other Foreign - $75 Apple mag-disk combination subscription... 11 US./Canada/Mexico First Class plus Library Disk - $100 Ci All other Foreign plus Library Disk - $140 Pletal lta oe ll lnteatale | @ Yes, I want to subscribe to COMPUTIST. Enclosed are funds for an annual (12 issue) subscription. ULS. Funds drawn on ULS. bank. Allow 4—8 weeks for first issue. Mail to: COMPUTIST PO Box 110846-T Tacoma, WA 98411 Name ID# Address City State Zip Country, Phone. = @ : és : Exp. Signature CP55 ee ed (206) 474-5750 Notes ’n things...... z eo Writing to authors Some readers missed my note on how to send letters to authors. If the author puts a line in Ron i ee their article that states ‘Please print my address” then we will include the address when we print their contribution. However, if they don't clearly state that it is alright to print their address then Mare Nis ss we don’t. Sometimes, we have been known to delete addresses even when they want them printed, Sorry, force of habit. George Bigelow... ; Even if there is no address printed, you can still write to an author if they have given us their address. We have a back-up method. (Hackers always have a back-up.) Moca Es 1. Write your letter and enclose it in an envelope with the author's name on the front and the correct postage. 2. Put that letter into another envelope and sent it to us. 3. When we receive your letter, we will complete the fowarding address and drop it in the outgoing Dorothy i % fall 4. The author may then contact you directly. Steve Rene Note: Some authors are very secretive and don't even let us know where the are, Also, if David he ma you are considering having us print your address, use a Post Office box instead of your street address. If you read the news papers, you'll know that there are a lot of weird people out there. Kim eee = You may not want them to know where you live. Mark Jim Michael A. Jeff Francisco-Angel Garcia Jack R. John R. Stanley Planton Jerry Stevens..... Charles Taylor... J.D. Tischer. RD. West... Greiner Wolfgang... COMPUTIST #50, page 37 Capturing Locksmith Fast Copy for IIgs. Where it says “SAVE FC, A$2000, L$18FD’’, It should say “BSAVE FC, A$2002, L$18FD”. COMPUTIST #55 May | LA ws Ea ‘able Of Contents Alphabet Sequencing. Animal Alphabets and Other Things........... 21 Arctic Antics... The Boars’ Store The Boars Tell Time. Career Focus. PX Castle Wolfenstei Charlie Brown's 123’ Charlie Brown’s ABC City Country Opposites. Coveted Mirror, Create With Garfield. Crypt of Medea Customized Alphabet Dri Customized Flash Spelling. Dig Dug: Digital Paintbrush Estimation. Fay; Word Hunter. Focusing on Language Arts Fundamental Capitalization....21 Fundamental Punctuation Practice Fundamental Spelling Words in Context The Hobbit... Homonyms in Context. Individualized Study Maste Inside Outside Shapes... Inside Outside Opposites......... ] T Leisure Suit Larry in the Land of the Lounge Lizards.....19 Master Diagnostics H & II+..22 Mastertype v2.1. Mathematics Series. ‘ “Sensible Speller. Peanuts Math Matcher.. Peanuts Maze Marathon. Peanuts Picture Puzzlers. Perry Mason: The Case of the Mandarin Murde1 Railroad Works. Random House Library Management Programs.... Rocky’s Boots v.4. 8 Snoopy's Reading Machine.....2 Snoopy's Skywriter Scrambler.21 Snoopy to the Rescue. Snoopy Writer...... Spelling Demons... Stock Market Simulation. Story Builder. Test Maker. Think Quick v1. Tournament Bridge. Tutorial Comprehension. Typing is a Ball, Charlie Brown............+. 21 Under Fire... Word Blaster. Word Count.. Word Mount... or Your Personal Net Worth.......31 6 Playing Tipo: IBM Seftkeyo: Samna Word I v1.4... ......0..06 44 @ Features: || Mark Barris shows how to save the Lower 8 Pages of Memory. | Bard's Tale Effects Locator, . | Goss Bile snp eas IE ane eer ee et are || Phantasie Map Capture,.............10 George Bigelow’s easy method for caphuring the screen images from Phantasie Alternate Reality Character Editor... 11 Michael Horton has made character editing easier for Ahernate Reality enthusiasts. Updating the... Rene Gaudet tackles the chore of adding a search command and while he's att, extends the block read capability to handle 3.5° disks, Loading your RAMcard with... ide Perce ert ee A Copy-protection Scheme for... | Stamley Ptanton has devised 3 method to copy protest ProDOS files using EDD 4.N. Jeff Hurlburt reports on the winners and losers in the ongoing joystick hattle. May Mr. and Mrs. Potato Head...2? BM otos | Fix Up Your Car with... : ir. ane irs. Potato fead..... . Paper Models - Autoduel Car Editor.....c:sseseecuse27 The Christmas Kit.......... 36 Fright Simulator RGB Modifications. 44 | Mare Batchelor's pasion for AufoDuel has ld to him write a useriendly car editor = = an = i= ie asad rt COMPUTIST #55 5 | The Product Mouibaee iG 2B New COMPUTIST readers using Apple IIs are advised to read this page carefully to avoid ‘frustration when attempting to follow a softkey or entering the programs printed in this issue. 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 backup copy can usually be copied by the normal copy programs (for example: COPYA, on their DOS 3.3 System Master disk), Commands and control keys In any article appearing in COMPUTIST, commands which a reader is required to perform are set apart by being in boldface and on a separate line. The key must be pressed at the end of every such command unless otherwise specified. Control characters are specially boxed. An example of both is 6(CP) Press (6_] Next, place one finger on the ==) key and then press tel Remember to enter this command line by pressing Other _special_combination keypresses include or (GORESET). In the former, press and hold down = then press In the latter, press and hold down both @==) and CE) then pee Special requirements Special prerequisites for COMPUTIST articles, programs and softkeys are usually listed at the start under: @ Requirements: Software recommendations ( Applesoft program editor such as Global Program Line Editor (GPLE). (% Sector-editor such as DiskEdit (in the COMPUTIST Starter Kit) or ZAP trom Bag of Tricks. (2 Disk-search utility such as The Inspector, the CIA or the Core Disk Searcher (in the COMPUTIST Starter Kit} (H Assembler such as the 5-C Assembler from $-C software or Merlin/Big Mac. ® Bit-copy program such as Copy fl Plus. Locksmith or Essential Data Duplicator (EDD). (2 Text-editor (that produces normal sequential text files) such as Applewriter Il. Magic Window I or Screenwriter Il. (2 COPYA, FID and MUFFIN from the DOS 3.3 System Master disk are also useful. pa aa Ss Super IOB and Controllers This powerful deprotection utility (in the COMPUTIST Starter Kit) and its various Controllers are used in many softkeys.(Itis also on each Super OB Collection disk.) Reset into the Monitor Softkeys occasionally require the user to stop the execution of a copy-protected program and directly enter the Apple's system monitor. Check the following list to see what hardware you will need to obtain this ability Apple Il +, //e, compatibles: |) 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 II +, compatibles: |) Install an F8 ROM with a modified reset-vector on the computer's motherboard as detailed in the Modified ROM’s article (COMPUTIST #6 or Book Of Softkeys HIT } or the Dual ROM’s article (COMPUTIST #19), Apple //e, //c: Install a modified CD ROM on the computer's motherboard. Cutting Edge Ent, (Box 43234 Ren Cen Station-HC; Detroit, Ml 48243) sells a hardware device that will give you this important ability but it will void an Apple //c warranty Recommended literature: (# Apple II Reference Manual @& DOS 3.3 manuat OH Beneath Apple DOS, by Don Worth and Pieter Lechner, from Quality Software (Assembly Language For The Applesoft Programmer, by Roy Meyers and C.W. Finley, from Addison Wesley Keying in Applesoft programs: BASIC programs are printed in a format that is designed to minimize errors for readers who key in these programs. If you type: 1QHOME:REMCLEAR SCREEN The LIST will look like: 10 HOME : REM CLEAR SCREEN 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 commands. There are two types of spaces: those that have to be keyed and those that don't. Spaces that must be typed appear in COMPUTIST as delta characters (*). All other spaces are there for easier reading. NOTE: If you want your checksums (See Computing checksums} to match up. you must key ONLY the “spaces after DATA statements. COMPUTIST #55 Keying In Hexdumps Machine language programs are printed in COMPUTIST as hexdumps, sometimes also as source code. Hexdumps are the shortest and easiest format to type in. You must first enter the monitor: CALL -151 Key in the hexdump exactly as it appears in the magazine, ignoring the four-digit checksum ($ and four digits) at the end of each line. A beep means you have typed something that the monitor didn't understand and must, therefore, retype that line. When finished, return to BASIC with: 3D0G BSAVE the program with the filename, address and length parameters given in the article, The source code is printed to help explain a program's operation. To key it in, you will need the $-C Assembler or you will have to translate pieces of the source code into something your assembler will understand (see table of SC Assembler directives in COMPUTIST #17 Computing checksums Checksums are 4-digit hexadecimal numbers which tell if you typed a program exactly as it appears in 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 appeared in COMPUTIST #1 and The Best of Hardcore Computing. An update to CHECKSOFT appeared in COMPUTIST #18. If the published checksums accompanying program listings and hexdumps do not match those created by your computer, then you typed the program incorrectly. The line where the first checksum differs has an error. CHECKSOFT instructions: LOAD filename BRUN CHECKSOFT Get the checksums with: [&J and correct the program line where the checksums differ. CHECKBIN instructions: 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, a period and the Ending address of the file followed by a Gy) ‘SSS.EEE(OY) Correct the lines at which the checksums differ. RDEXed May writing a letter to... Apple RDEXed RDEX stands for: Reader's Data EXchange That means that when you send in articles, softkeys, APTs, etc., you are submitting them for FREE publication in this magazine, RDEX does NOT purchase submissions nor do we verify data submitted by readers. We will print it and it is the responsibility of the readers to send in responses when anything is wrong @ Remember that your letters or parts of them may be used in RDEX even if not addressed to the Apple-RDEX editor Correspondence that gets published may be edited for clarity, grammer and space requirements © Because of the great number of letters we receive and the ephemeral and unpredictable appearance of our part- time staff, any response to your queries will appear only in Apple-RDEX, so it would be more appropriate for you to present technical questions to the readers and ask for their responses which will then be placed in the Apple-RDEX Send your articles and letters on DOS 3.3 standard text files When we get your letter-article in a standard DOS3.3 text file, it is immediately uploaded into the most current RDEX file. Conventional letters must be typed in by us...when we have the time © Address your letters, articles, to: COMPUTIST Apple RDEX Editor PO Box 110846-K Tacoma, WA 98411 May Dorothy Dow @® My computer is an Apple IIgs. I am both a new subscriber to your magazine and new to using a computer, as such, I have several questions The Apple IIgs uses ProDOS. How do I get DOS 3.3 or do J need it. Your instructions on page 6, COMPUTIST #51, do not mention the IIgs at all Where do I find GPLE. Do I need a CD ROM like the IIc and Ile? Please update your directions to include the Ilgs so beginners like me can figure out where to start You've asked some very good questions. Unfortunately, 1 don't have the answers. It's sad, but we don't have a Hes and we may not be getting one soon. Anything I say about the IIgs is hearsay, guesswork or out of a book Perhaps the best thing would be to ask our readers to answer your questions. How about it readers, has anyone had their Ilgs long enough to hazard updating the Data page for us and answering Dorothy's questions. RDEXed Dig Dug DataSoft @ Requirements © An initialized slave disk (use a fast DOS) A way to force entry into the monitor. A way to save the lower 8 pages of memory (Senior Prom, Modified Roms etc.) Dig Dug is a fun arcade game that has been around for quite some time. [ do not recall if there is an carlier softkey for this program, so I thought [ would pass mine along. Follow these steps to deprotect Dig Dug into binary files. ~1_] Boot your original disk and enter the monitor when the game starts to play [2] Relocate some code: 4000<8000.BFO0M [3] Boot your slave disk and save the relocated code COMPUTIST #55 BSAVE DG.OBJ, AS4000, L$4000 [4] Boot your original again and enter the monitor while the title screen is still being displayed, then boot your slave disk and save the title page. BSAVE DG.LOGO, A$2000, L$2000 [_] Boot the original once again and enter the monitor when the game is being played. [8] Move the lower 8 pages of memory toa safe location with whatever method you have. [7] Boot your slave disk and save the 8 pages that you moved. The following assumes that you moved it to $2000. BSAVE DG.PQ-P7, A$2000, L$800 8 | Enter the monitor, type the following hex dump and save it: DG.MOVER 9900: A0 00 A2 08 BD 00 40 90 $22A0 9908 00 80 E8 DO F7 EE 06 09 $F7B4 9910: EE 89 89 C8 CO 40 DO EA $30BE 0918: AO 0 A2 00 BD 00 10 9D $8777 0920: 00 06 E8 DO F7 EE 1E 09 S$FEOB 0928: EE 21 69 C8 CO 08 DO EA $4451 0930: A0 00 A2 08 BD 00 20 90 $0618 0938-06 40 E8 DO F7 EE 36 09 $3BDC 0949:EE 39 09 C8 CB 20 DO EA $B13E 0948 :4C 60 80 S7EF7 3D0G BSAVE DG.MOVER,AS900,L$4B [-9_] Enter this Applesoft hello program and save it FP 10 TEXT : HOME ; VTAB 10: HTAB 11; PRINT “ONE MOMENT PLEASE" : PRINT CHRS (4) “BLOAD DG.OBJ,A$4000" ; PRINT CHR (4) “BLOAD DG.PO-P7,A$1000" : PRINT CHR§ (4) "BLOAD DG.LOGO, AS2000" 20 POKE - 16304,0: POKE - 16302,0: POKE - 16300,0: POKE - 16297,0: PRINT CHRS (4) “BRUN DG.MOVER” SAVE HELLO That's it. If it doesn’t work, chances are you either missed one of the above steps or you did not save the lower 8 pages unaltered. Try again. Softkey for... Think Quick V1.0 Learning Company @ Requirements © 2 ProDOS formatted disks OA Copy program 0A Block Editor Ol Think Tank V1.0 OO Think Tank data disk This softkey requires the use of a block editor. This is much like the sector editor found on Copy II Plus, only the data storage format is a bit different. I used a new program available on bulletin board services called Block Work. This is a very good program and is extremely flexible. It's marketed as shareware and the author is asking $15.00 for the program. I think it is well worth the money. So make your job easier and use this type of program. Think Quick is a good logic oriented game aimed at the elementary aged person. It is relatively easy to use and fairly interesting (from an adults point of view). Think Quick is ProDOS based, which is good news for disk access speed. [_] Copy both sides of the program and data disks. [27] Using a block editor, search both sides of the program disk for 20 9E 63 and replace it with EA EA EA. On my disk these bytes were found on Block $15, starting at byte $D1. Now search for 20 12 17 and replace it with EAEAEA. On my disk these bytes were found on Block $54, starting at byte $O8. You don’t need to worry about the data disk, it is not protected Softkey for... Charlie Brown's ABC's Random House Software @ Requirements C1 Initialized disk (1 COPYA or equivalent This is a great program for preschool age people. I had a good time going through the alphabet to see all the wonderful screens. I would highly recommend this program To get a working copy follow. these directions. [4_] Boot your DOS 3.3 system disk. [2 Tell DOS to ignore checksum and epilogues and run COPYA. POKE 47426,24 RUN COPYA [J Run any copy program that will allow you to copy a fast DOS, such as Copy IT Plus. etc. Make sure that your boot program is named HELLO. [4] Repeat the same procedure on the back side of your disk and you will be done. Have fun. Softkey for... Create With Garfield DLM @ Requirements -] Blank disk Cl Copy program C Sector Editor O Original disk On page 7 of COMPUTIST #44, Robert Brown sent in a softkey for Create with Garfield. Unfortunately, it was a bit confusing and, for my version at least, incomplete. I had to make a few more edits to my version. I do not have the original bytes to search for, and I apologize. They will have to be absolute. Make the following sector edits Original edits from COMPUTIST #44. Trk Sct Byte(s) From To $1D $02 $18 Z A2 60 60 SIF $00 $FO fi A2 00 60 SIF $06 $82 ? A2 00 60 $22 $04 $49 ? A2 00 60 My new Edits. Trk Sct Byte(s) From To SIF $06 $B2 ? A2 00 60 $1B $OE $0D T A2 00 60 Make sure you write these edits back to your disk Softkey for... Sensible Speller Sensible Software @ Requirements 1 ProDOS formatted disk D Block Editor, like Block Work © Copy Program, like Block Work © Original disk Sensible Speller is a ProDOS based spelling checker, which seems to be very effective. I have not used it much, but it is easy to operate. The copy protection scheme is similar to the [8 COMPUTIST #5 other pieces of software that Sensible Software market. I found that after the program checked for an original disk, it checked something in RAM memory and would give you an error if it didn’t check out. So T found the routine and NOPed it. 1 then tried using it from a RAM disk, and found that it checked slot 6 for the original disk, Although the check is satisfied by our first edits, it is still a pain to wait for it. The third set of edits will stop this check from happening, and you'll be presented with the main menu screen almost immediately. Plus you'll be able to run it from a hard disk or RAM. disk. Perform the following edits to deprotect this program [1_] Fix Key disk check so it’s always satisfied, Search for this sequence BD 8C CO 19 FB 49 D5 D8 F7. On my version | made these changes: Block Byte(s) From To $51 $0F6 = $F7 $56 $78 $18E SFT $56 $F2 $072 SF? $56 [-2_] This will fix the RAM check routine that I came across. Search for this sequence: 20.484. On my version I made these changes: Block Byte(s) From To SSF SIEC 204A 4A EAEAEA $85 $1EC —-204A4A EAEAEA 3 Disable slot 6 drive startup and check (allows hard disk or RAM disk operation). Search for this sequence: 20 04 4A. On my version I made these changes: Block Byte(s) From To SSF $108 20.04 4A EAEAEA $85 $108 20.04 4A EAEAEA After these edits are made your disk will work properly from any storage device. Utility for Saving the Lower 8 Pages of Memory @ Requirements {~ Formatted disk, DOS not necessary _ Sector Editor On occasion, you may need to save the lower 8 pages of memory ($0000-$0800) to a binary file. Unfortunately, this area of memory is very volatile. It starts with the Zero page. (S0OOO-$OOFF) which contains a lot of highly used pointers and variables. It also contains the microprocessor’s stack area (SO100-$01FF). It has the keyboard buffer May IaaE SSS >>> _>»__h_______________EE= ($0200-S@2FF). And lastly, it has the text screen display area ($0400-$O7FF). This memory area changes constantly. which makes it impossible to save this area to disk using normal methods. To get this area saved to disk, we have to somehow move it to a safe area before any keyboarding is performed. Once this is completed, we can save this area to disk like any other binary file The following is a procedure for setting up a DOSless utility that will move this area to a safe place so it can be saved to disk. I made use of the information provided by Adam Levin in COMPUTIST #44, page 13 on DOSless utilities. Follow these directions: [[1_] Format a blank disk. It doesn’t need DOS on it, but it could. 2_] Pull out your favorite sector editor and read in sector #$0@ from track #SOO [£3] Starting at Byte #SOO enter in the following code: 01 A2 08 AD 06 BY 00 00 99 00 20 C8 DO F7 EE 07 98 EE OA 08 CA DO EC 8D E8 CO 4C 69 FF 4 When complete, write it back to sector 4800, track #800. To use this utility all you need to do is start up your protected program. Put this utility in the boot drive and press Assuming that this reboots your machine, you'll see the drive come on then you'll be in the monitor: At this time, the lower 8 pages of memory are sitting at address $2000-$27FF, Now boot your DOS disk and save this area like this: BSAVE PQ-P7,A$2000,L$800 If upon hitting (RESET) , the program does not reboot, or it clears memory and reboots, then this method will not work. But if you can drop into the monitor from within your protected program, you may be able to get most of the i rtant data by booting using the command: 61 This will disrupt a few memory locations, but it may still work. Give it a try. Good luck George Bigelow ey Bard's Tale Effects Locator: A Supplement To Bard’s Tale Mapper @ Requirements —] Bard's Tale (the first one) Ol Bard's Tale Mapper maps Printer nice, but not necessary After I wrote Bard’s Tale Mapper I began exploring the dungeon disk some more and discovered how to tell what all those numbers in the effects map that have a 4 in them do (©4,84,C4). Each dungeon map has one sector dedicated to this. Perhaps, in your looking through the disk, you have seen a sector with the name of the dungeon. This sector is the one that tells the program what to do for each 4 on that map. How To Read Coordinates Whenever you ask Bard's Tale to locate yourself in a dungeon (there are several ways) it answers with so many rooms North and so many rooms East of the room that you entered the dungeon, no matter which floor you are on. Since dungeons are always entered from the lower left-hand corner, this is the basis for my coordinates; so many rooms North, so many East of the lower left-hand corner of each map. So, if we have a coordinate of 13,7 this means the room that is 13 rooms from the bottom of the map, and 7 rooms from the left side of the map (this is the map you have printed out using Bard's Tale Mapper). [ find it casiest to mark a piece of paper with numbered lines corresponding to each room and measuring with this. How Do I Find Out What Happens At Any Particular Coordinate? There are two methods which will help you find out what happens at a particular coordinate. One is to use your sector editor, find the sector, and use the following information. The other is to type in the following program, and let it do the work! I recommend the latter Let's go through and explain each effect. Coordinates are in pairs, first the distance North from the bottom of the map, then the distance East from the left side of the map. If your sector editor displays cight bytes per line this will be a lot easier (I use Copy H Plus). The byte I give will be the byte that this effect’s section starts with (cach section is $10 bytes long) First find the sector with the name of the dungeon you are interested in. The dungeon maps start at track SOE, sector $B through track $06 sector SOC. eight sectors per map All floors of a dungeon have the same name, so if you are interested in. say. the third level of the sewers, find the third occurence of the name “SEWERS” going from track SOE sector $OB examining in decreasing track and sector numbers. $20: Special Effects. This is my name for this section because it contains many different effects. The first set of coordinates corresponds to the number starting at $30. For example. in the dungeon SEWERS(1) at room 9.4 is special effect number $11 (which is a spider statue) May COMPUTIST #55 $40: Spell Removal. As you enter this room any special spells (magic mouth, compass, etc.) will go away. This can be a large category, it continues through $50 $60: Place Change. Entering this room will transport you to the corresponding coordinates starting at $70. For example, in the TOWER(F) entering room 1,16 will move you to room 1,14 (numbers translated to decimal) $80: Direction Shift. Entering this room changes the direction you are facing (note that your compass will not point correctly until you leave this room). $9: Smoke in your Eyes. Things will look a lot different from now on no matter where you are until you cast a spell to remove it. $A: Removes Hits: Entering this room hurts! Another large category, this continues through $BO. SCO: This one I don’t know! It only occurs in two dungeons, both at coordinates $B,SF I can't find anything there and didn’t include it in the program. $DO: Stasis Chamber. You appear to be going through many doors, but your location does not change. You may even be able to get out, but it takes luck! $EO: Inscriptions. In these rooms there is an inscription that corresponds to the order of the inscriptions on the previous two sectors. $FO: Special Monsters: Not your run of the mill monsters, but sometimes really interesting(!) ones. The Program If all this previous stuff is not your bag, then Bard's Tale Effects Locator is for you! It does all the work except for transferring the information to your map. Basically, all the program does is read the correct sector into the DOS buffer at $9600, then read out the numbers found at a certain offset (number from the beginning of the buffer). It reads out everything from then on until it reaches an $FF (255) or until the number of pairs read reaches either 16 or 32, depending on how large the category is. This information is printed as decimal pairs separated by a comma. Transfer this information on your map and you will be a lot more prepared to survive the dungeon! Bard's Tale Effects Locator 1@ REM BARD'S TALE EFFECTS LOCATOR 20 DIMMS (15) :MULT = 1:MEM = 38400: REM LOCAT|ON OF BUFFER 3@FORA= 76810775: READB: POKEA.B: NEXT ; REM RWTS ROUT | NE 40 FOR A = @ TO 15: READ MS(A): NEXT ; REM LOCATIONS. 50 DATA “169.183. 160. 232,32,217.3.96 69 DATA CELLARS(@) ,SEWERS(1) ,SEWERS(2) , SEWERS (3) , CATACOMBS (4) , CATACOMBS(5) , CATACOMBS (6) ,CASTLE(7) , CASTLE (8) CASTLE(9) , TOWER(A) ,THE* TOWER(B), THE” TOWER(C) , THE*TOWER(D) , THE “TOWER(E) . THE* TOWER(F) 70 REM MENU 80 HOME ; PRINT "CHOOSE*A*LOCATION:” ; PRINT 90 FORA=@7T015; PRINTA+1"."SPC(1+(A< 9))M$(A) ; NEXT 10 PRINT "17.*END” 11@ POKE - 16368,6: REM CLEAR ANY PREVIOUS CHARACTER 120 PRINT ; INPUT "CHOOSE*A*NUMBER® (1-17) :*" C: IFC <1 0RC > 17 THEN 80 130 IF C = 17 THEN END 140 REM CALCULATE TRACK & SECTOR 158 T=15- INT (C/2+ .5):0=C-1 160 |F C= 1 THEN S = 11: GOTO 190 170 |F C = 2 THEN S = 3: GOTO 190 188 C = C - 2: GOTO 160 190 POKE 47083, 0: POKE 47084, T 200 HOME ; VTAB 10; HTABS5: FLASH : PRINT "INSERT* BARD'S*TALE*DUNGEON*DISK!" : NORMAL 210 VTAB 15: HTAB 1: PRINT “PRINT*THE*PAGE?" GET ZS: |F Z$="Y" THEN PRINT : PRINT CHRS (4) "PR#L" 220 HOME : PRINT "EFFECTS* LOCATIONS* FOR " M$ (D) 230 POKE 47085.S; CALL 768: REM READ CHOSEN TRACK & SECTOR INTO BUFFER 240 PRINT : PRINT "SPECIAL:" ;:OFFSET = 32 GOSUB 410 250 PRINT : PRINT "REMOVES*SPELLS:" ; : OFFSET = 64: MULT = 2; GOSUB 370: MULT = 1 260 PRINT : PRINT "PLACE*CHANGE: " ; OFFSET = 96 GOSUB 450 270 PRINT : PRINT "DIRECTION*SHIFT:" ; OFFSET = 128; GOSUB 376 288 PRINT ; PRINT "SMOKE*IN*EYES;" ; :OFFSET = 144; GOSUB 370 290 PRINT : PRINT "REMOVES*HITS:" ; :OFFSET = 160: MULT = 2; GOSUB 370:MULT = 1 300 PRINT : PRINT "STAS|S*CHAMBER: " ; : :OFFSET = 208; GOSUB 370 310 PRINT : PRINT "INSCRIPTIONS: " ; ;OFFSET = 224: GOSUB 370 320 PRINT : PRINT "MONSTERS:" ; :OFFSET = 240 GOSUB 370 33 PRINT: PRINT: PRINT: PRINT CHR$ (4) "PR#0" 340 VTAB 23: HTAB 1: PRINT "PRESS* A* KEY* TO* RETURN*TO*MENU” ; : GET 2$ 358 GOTO 80 360 REM SUBROUTINES 370P=0 380 LOC = PEEK (MEM + OFFSET +P) P= MULT * 16 THEN RETURN 39 PRINT LOC". " PEEK (MEM + OFFSET +1+P) “*" 400 P =P +2: GOTO 380 410P=0 420 LOC = PEEK (MEM + OFFSET +P) P = 16 THEN RETURN 430 PRINT LOC "," PEEK (MEM+OFFSET+1+P) "-#" PEEK (MEM + OFFSET + 16 +P) "*" IF LOC =2550R IF LOC = 255 0R Ki eeaaa 440 P=P +2: GOTO 420 450 P=0 460 LOC = PEEK (MEM + OFFSET +P): IF LOC=2550R P= 16 THEN RETURN 470 PRINT LOC” ,” PEEK (MEM + OFFSET +1+P) "->" PEEK (MEM + OFFSET + 16+P) "." PEEK (MEM + OFFSET + 17+P) “*" 480 P=P +2: GOTO 460 Checksums 10 - S$BADD 250 «=- $125D 20 ~ S6EGE 260 «= - SEE8F 30 - $ED83 270 = - $5059 40 ~ $0085 280 «= - $978C 59 ~ SE4EF 298 «= - $C3ED 69 ~ $E39C 308 «= - $DI5E 70 ~ $5E21 318 - $2359 80 — $2088 320 - $O77A 90 ~ $5OAD 3300 - $3490 100 - S85FF 3400 - $F342 118 - $B977 350 © - SABSA 120 - $5B48 360 0 - $7A8F 130 - $A925 370 - $9542 149 - $78CO 380 =~ $0335 150 - $80C2 390 - $6618 160 - SEC71 400 = - $A86F 178 - $9629 410 - $791C 180 - $0B23 420 - S$7E7B 190 - $2941 «430. S868 200 - $2208 «© 440 $2688 210 - SE26E = 450 - $7626 220 - S46EB © 460— $8280 230 - scov7 = «470 - $1013 240 - $9638 «= 480 $8088 CAPTURING PHANTASIE MAPS Phantasie, by Strategic Simulations, is a popular game, but like many strategy games is more playable with a map to follow. This article will not create these maps for you, but will allow you to capture them for later reference after you have made the dungeon visible by exploring it. This program will work on the first Phantasie, and perhaps the rest. I do not have the rest, so it’s iffy! The game only saves one dungeon status at a time, so if you have thoroughly explored ‘one dungeon, saving another dungeon will wipe out the first one. If you need to return later. you start all over again! It is this characteristic that has made it a necessity to make a map of the dungeons. The people at Strategic Simulations. Inc. have made it easy for us. When is Pressed during the game any hi-res image is not wiped out. This means that if we create a disk with a hello program that can save a picture. COMPUTIST #55 - we can save the Phantasie dungeon. Type in the program ‘*Phantasie Map Capture” and save it as “HELLO” ona freshly initialized disk. When you are finished with a dungeon go to the nearest town to save your status. Return to the dungeon and when you are inside remove the Phantasie disk and insert your initialized disk with the new hello. Press , the disk will reboot and show the picture of the dungeon you have just left. Type in the name of the dungeon, and you have just saved to the disk the picture of the dungeon. Then use your favorite screen dump program to print it. 1 REM PHANTAS|E MAP CAPTURE 20 POKE - 16304,0: POKE - 16297,0: POKE - 16300.0: POKE - 16301,0 3 VTAB 23; INPUT "NAME*OF*MAP:*" :M§ 40 PRINT CHRS (4) "BSAVE" MS". A$2000, | $2000" 50 VTAB 24: PRINT : PRINT "PRESS* A° KEY* TO* REBOOT" : GET QS: PRI 6 Checksums 10 - $BADD 40 ~ $3002 20 - $3588 50 - S6FAC 30 - SFA24 | Phantasie maps are all on Page | of the hi- res pages (including the countryside), so all that this program has to do is make several POKEs to display the map, accept the name of it, and BSAVE it to disk. Now if you find you have missed an area of a dungeon you can return to it easily! Softkey for... Fay: Word Hunter Didatech Software @ Requirements “] Fast copier that ignores errors C1 Sector editor I managed to deprotect Fay: Word Hunter by accident. Track $2, sector $07 is protected and the assumption is that it is used for a nibble count. BLOADing the file Fay: Word Hunter showed meaningless information and I assumed that the file was encrypted I decided to boot the disk and use an NMI card to interrupt the program after it was completely loaded. The first place I looked was $BA69-S$BA95 since this unused area of DOS is sometimes used to place nibble count routines. I discovered a JMP to $6BF2 at $BA92. I assumed this to be the entry to the __ May program after everything was loaded. I made a backup copy using Locksmith Fast Copy to ignore the protected sector and using the sector editor on Copy II Plus scanned the backup for the sequence 4C F26B. I found it on track $00, sector $04, I then changed F268 to 69 FF. This allowed me to run the program, enter the monitor and examine the program at will. A little experimentation showed that the nibble count appeared to begin at $8567. After many hours of hit and miss experimentation, I discovered that changing the value at $856E from FO to D0 seemed to bypass or eliminate the nibble count. I can only guess why, Since the program was encrypted the only way to change this byte was to write a short program to insert D@ at $856E after the program was loaded. 1 did this just before the JMP to $6BF2 on track SOO, secotr $04. This did not seem to affect the operation of the program. [1] Make a backup copy using Locksmith Fast Copy or any other method that will ignore the protected sector. 2 Using a sector editor, make the following edit: Trk Sct Byte(s) From To $00 $04 $89-91 7 AQ DO 8D GE 85 EAEAEA ‘ EA Alternate Reality Character Editor This is for all computists who like Alternate Reality. It was difficult to get the information I needed to make the character editor. In an adventure game, the character's statistics are usually kept with the name of the character. 1 located the names of the characters in track SO, sector $01. To my surprise, the **stats’” were nowhere to be seen. I pondered the ways I could try to find them. If part of my character changes then the information that is saved should be different I wrote a disk comparison program to compare two save disks. I backed up my character disk and played it until something changed. I then saved my character and compared it to the backup copy using the comparison program The different bytes were what changed I did this over and over until I gathered all the “‘stats’* that [ wanted. Then T wrote a program to make the whole thing easy. I even put in a help mode, if you need instructions just type ? or / Enter the BASIC program and save it as “AR CHAR EDITOR”. Then go into the monitor and enter the hex code. Save it as “READ TRACK’. AR CHAR EDITOR 1 REM ALTERNATE REALITY 20 REM CHARACTER ED! TOR 30 REM BY MICHAEL HORTON 40 REM 50 PRINT CHR$ (13) +CHRS (4) "BLOAD"READ“TRACK™ 60 CALL 777: REM CONVERT DOS TO AR DOS 70 CLEAR ; RESTORE 80 10 = PEEK (769) + PEEK (770) * 256 90 POKE 10 +1. PEEK (47081) ; REMGET RIGHT SLOT # 108 C$ = "AR*CHAR*DISK” : READ NA 11OT = 10+4:S=10+5:CD= 10+12:PA=10+9:BF = 768 120 DIMN(4) .NS(4) .AS(NA) ,A(NA) .P(NA) ,AN(NA) 130 FOR | = 1 TONA 140 READ AS(1).A(1) .P{1) 150 NEXT | 160 TEXT : HOME : VTAB 12 170 PRINT "i NSERT*ALTERNATE*REAL | TY*CHARACTER “DISK” 180 POKE - 16368.0: GET AS 190 IF A$ = "2" THEN POKE 10 + 2.2 200 POKE T,0: POKE S.1: POKE CD, 1: POKE PA. 32 CALL 774 210 IF PEEK (10+ 13) < > 8 THEN 1800 220 FOR | = 1 T012 230 A= PEEK (8191 + |) - 128 240 IFA< > ASC ( MID$ (C$,1.1)) THEN PRINT VTAB 14: PRINT "WRONG'DISK!" : FORZZ=1T0 1500: NEXT ZZ: GOTO 160 250 NEXT | 260 FOR | =1 704 270.N(1) = PEEK (8207 + 1) :NS(1) = "" 280 FOR J = 1 10 32 290 A = PEEK (8319+ J+ (1-1) * 32) 300 IF A< 32 THEN NS(i) = "" : GOTO 330 310.NS(1) =NS(1) + CHRS (A) 320 NEXT J 330 NEXT | 340 TEXT : HOME : VTAB 8:N=@ 350 PRINT “CHOOSE*CHARACTER*TO*EDIT." 360 FOR | = 1104 370 INVERSE 380 IF N(1) = 16 ORNS( “* THEN NORMAL 390 PRINT | " NS(1) 408 NEXT |: NORMAL 410 PRINT "5. . NEW*AR*CHAR*DI SK" 420 PRINT "6... .EXIT*PROGRAM” 439 PRINT : PRINT "CHOICE 449 GET CHS:A = ASC (CH$) 450 |F A = 53 THEN 168 460 IF 4 THEN HOME : CALL 780: END 470 IF 3 OR A = 47 THEN GOSUB 1490 480 |F THEN 520 498 IF THEN GOSUB 560 500 IF A= 14 ANDNS(N) < > '"" THEN GOSUB 610 GOTO 260 510 |F A= 13 ANDNS(N) < > "" THEN GOSUB 728 GOTO 200 520 IFA < 49 OR A > 52 THEN 340 530 IF N< > @ THEN 340 540 N= A - 48: PRINT CHS; : GOTO 440 550 REM DELETE/UNDELETE CHARACTER 560 IF N(N) = 16 THEN POKE 8207 +N, @ 570 IF N(N) = 9 THEN POKE 8207 +N.16 580 POKE T.0: POKES, 1: POKE BF 32: POKE CD, 2 CALL 774 590 N(N) = PEEK (8207 +N): RETURN 600 REM CHANGE CHAR NAME 610 VTAB 19: INPUT "NEW*NANE: “ : NNS 620 |F LEN (NN$) > 32 THEN RETURN 630 IF NNS = "" THEN RETURN 640 L = LEN (NS): FOR | = LTO 32 650 NNS = NNS + "*" : NEXT | 660 FOR | = 1 T0 32 670 POKE 8319 + | + (N- 1) * 32, ASC ( MIDS (NNS, 1.1) 680 NEXT | 690 POKE T,0; POKE S,1: POKECD,2: POKE BF, 32 CALL 774 700 RETURN 710 REM EDIT CHAR INFO 720 POKE T,N * 4; POKE CD,1: CALL 771 730 IF PEEK (10 + 13) < > @ THEN GOTO 1800 740 FOR | = 1 TONA:AN(1) = @ 750 FOR J = A(|) TO@ STEP -1 760 AN(|) = AN(1) + PEEK (P(1) - J) * 256 # J 770 NEXT J 780 NEXT | 790 HOWE ; PRINT "NAME:" ;NS(N) 800 FOR | = 1 TONA 810 PRINT AS( 1); TAB( 20)AN(1) 820 NEXT |: POKE 34,22 830 LN = 1: GOSUB 980 840 A= PEEK ( - 16384) 850 |F A< 129 THEN 848 860 POKE - 16368, 0: XN = LN 870 IF A= 136 OR A= 139 THEN LN=LN-1 880 |F A= 149 OR A= 138 THEN LN =LN+1 890 IF LN< 1 THEN LN = NA 900 IF NA< LN THEN LN = 1 910 GOSUB 970 920 IF A= 141 THEN GOSUB 1010 930 IF A= 145 THEN GOSUB 1080: RETURN 940 IF A= 191 OR A= 175 THEN GOSUB 1640 950 GOTO 840 960 REM MOVE EDIT LINE 970 VTAB XN +1: PRINT AS(XN) ; TAB( 20) AN(XN) 980 INVERSE : VTAB LN + 1: PRINT AS(LN); TAB( 20) AN(LN) 990 NORMAL : RETURN 1000 REM CHANGE STAT VALUE 1010 VTAB 23: PRINT "ENTER‘NEW*VALUE*(Q-" ; 256 % 256 #A(LN) - 1: ")" 1020 INPUT ":" :NVS 1030 1F NVS = "" THEN HOME ; RETURN 1040 NV = VAL (NVS) 1050 IF NV < BOR NV < > INT (NV) OR NV > 256 % 256 #A(LN) - 1 THEN HOME : GOTO 1019 May COMPUTIST #55 11 1660 AN(LN) = NV:XN = LN: HOME : GOTO 972 1070 REM SAVE STATS 1980 HOME (Y/N)" 1090 GET AS 1100 |F AS = "N" THEN RETURN 1110 IF A$< > "Y" THEN 1090 1126 FOR | = 1 TONA-7 1130 FOR J = A(|) TO STEP - 1 1140 P = INT (AN(I) / 256 # J) 1150 AN(|) = AN(1) - B® 256 # J 1160 POKE P(|) - J.P 1170 NEXT J 1180 NEXT | 1190 FOR | = NA - 6 TONA 1200 FOR J = 2 T0.0 STEP - 1 1210 POKE P(1) ~ J,AN(1) 122 NEXT J 1230 NEXT | 1240 POKE CD,2: CALL 771 1250 RETURN 1260 DATA 21 1270 DATA "CURRENT*HIT*POINTS" ,2, 11961 1280 DATA "MAXINUM*HIT*POINTS" 2.11965 1290 DATA EXPERIENCE, 3, 11945 1300 DATA LEVEL ..11949 1310 DATA GOLD, 2, 11969 1320 DATA SILVER, 2.11973 1330 DATA COPPER, 2, 11977 1340 DATA GEMS, 2, 11981 1350 DATA JEWELRY, 2. 11985 1360 DATA POT |ONS 0, 12157 1370 DATA FOOD, 0, 10667 1380 DATA WATER, 0. 10668 1390 DATA TREASURE" FINDING, @ 10662 1400 DATA UN-NOTICABILITY.0, 12053 1410 DATA STRENGTH 0, 12080 1420 DATA INTELLEGENCE 0, 12089 1430 DATA WiSDOM, 0. 12098 1440 DATA SKILL.0, 12107 1450 DATA STAMINA, @. 12116 1460 DATA CHARM, 0, 12125 1470 DATA PHYSICAL" SPEED, 0. 12134 1480 REM NANE LIST HELP 1490 HOE ; VTAB 3 1500 PRINT “TYPE*THE*NUMBER"OF* YOUR'CHO| CE*AND THEN” 1510 PRINT "PRESS*RETURN. *|F*¥OUR*CHO|CE“WAS* THE” 152 PRINT "NAME*OF* A* CHARACTER® THEN* THAT” 1530 PRINT "CHARACTER’ S‘STATS*W/LL*BE" CALLED UP* AND" 1540 PRINT "YOUWiLL*BE*PUT* INTO*EDIT*MODE.* 1550 PRINT : PRINT" | F*YOU*Wi SH'TO*RENAME*YOUR* CHARACTER,” 1560 PRINT “TYPE* THE” APPROPRI ATE® NUMBER" AND* THEN’ 1570 PRINT "TYPE*CONTROL'N. " 1580 PRINT : PRINT" |F*YOU"WISH*TO*UNDELETE*OR* DELETES A" 1590 PRINT "“CHARACTER® TYPE* THE* APPROPRI ATE* NUMBER” PRINT "SAVE* ABOVE STATISTICS* Ls 1600 PRINT "AND*THEN*TYPE*CONTROL‘D. ° 300 - $2451 1220 - $EB2B 1619 GOSUB 1740 310 - SAA8B 1230 - $3848 1620 RETURN 320. - $5052 1240 - S47F2 1630 REM EDIT STATS HELP 330 - $6816 1250 - $3156 1640 TEXT : HOME : VTAB 3 340 - $3821 1260 - S6BE6 1650 PRINT "I N*ORDER*TO*MOVE*THE* i NVERSE* BAR* 350 - SODAD 1270 - $B83A USE* THE" 360 - $5C8A 1280 - $5DC9 1660 PRINT "ARROK*KEYS.” : PRINT 370 S16AB 1290 - $A188 1670 PRINT "PRESS* RETURN TO*EDIT*A* STAT.” oH . oe an 7 eee PRINT = = 1689 PRINT "1F* YOU* DO* NOT*W1SH* TO* CHANGE* At 400 - SEOB6 1320 - $2878 STAT'S" 410 - SOALE 1330 - $9131 1690 PRINT “VALUE*JUST*PRESS*RETURN. " 420 - $7797 1340 - S26FE 1700 PRINT "TYPE*CONTROL“Q"TO"QUIT‘EDITTING. " BSB 280806 1300 $9585 1710 COSuB 1748: POP 440 - $623C 1360 - $654E 1720 G0T0 799 450 - $7059 1370 = $E30A 1730 REM WAIT FOR RETURN ce oie ace i ee 1740 PRINT : PRINT : PRINT “PRESS*" ; = INVERSE an Mo aS 490 - $4650 «1410. - $8133 1750 NORMAL : PRINT "*TO*CONTINUE. ° Sa CSFLER tea 2 ive ae Ses 510 - $EFD3. «1430 SDAAE 1770 IF AS < > CHRS (13) THEN 1760 25) KAO iad. cate Ae eT 530 - $9325 «1450 - S1C89 1790 REM ERROR HAS OCCURRED Bp ae la - 1GOB HOME : VTABLL 550 - $61B1 1470 $54DE 1810 PRINT "AN‘ERROR'HAS"OCCURRED'#H/LE*TRY NG 560 $6363 1480 - $9¢90 10 570 - $875E 1490 - $8537 1820 PRINT "ACCESS* THE* DISK* DRIVE.* PLEASE 580 — SB35A 1500 ~ $445 GESTARTs” 590 - $5007 1510 ~ $82¢B 1830 END 600 - $2460 1520 - $C48B 610 - s0ce3 1530 - $6E42 Checksums 620 - SE3A3 1540 - $1D0A ; 9 se OC eS = ee er 650 - S66FA 1570 - $819C 2 ose ee 660 - $2096 1580 - $1686 aU 670 - SiF39 1590 - $8608 a ee ee ee 680 = $1826 1600 - $83A9 ia ee a 690 - $A20A 1610 - $5576 79 ~ SGEAD 990 - SCASO 700 - $7642 1620 - SE831 89 ~ $5588 1908 - $593¢ 710 - $551E 1630 - $7066 99 ~ $0688 1010 - SOAD4 720 - $17F3 1640 - $295E 100 - $2A07 1020 - $78Al 730 = $6CB1 1650 - $3229 110 = $2075 1030 - SBFOE 740 - $0643 1660 - $709E 128 - $8045 1040 - $89C6 750 - $48C3 1670 - $2F61 130 = S3FAF 1050 - S601 766 - $F332 1680 - $0877 149 - $25C0 1060 - S4AE7 770 - SB8CA 1690 - $5719 150 - $522F 1070 ~ $2B3A 780 - $0733 1700 - $370E 160 - $1094 1080 - $F999 790 - SAEB7 1710 ~ SAE1O 170 - $0349 1090 - $8910 800 - SA231 1720 ~ SCE32 180 - SB3IF 1100 - $6036 81d - SAg08 1730 = §3FAB 190 - $8189 1110 ~ $8888 820 - $9021 1740 - $0899 200 - $878D 1120 - $3029 830 - $4887 1750 - $95C6 210 - $1242 1130 - SEEE6 840 - $268F 1760 - $95F9 220 - SEO44 1140 - $6813 850 - $3E9C 1770 - $8487 230 - SA130 1150 - $0420 860 - S62AA 1780 - $0556 240 - S934A 1160 - $3A5D 870 - S9CEL 1790 - $E371 250 - SEAB4 1170 - $781¢ 880 - SDEF9 1809 - SE9ED 260 — SDD5E 1180 — $7270 899 - $0542 1810 - $3055 270 - SFOIF 1199 - $4180 908 - $0224 1g2b-~ $aoc2 280 - $6180 1208 - $0130 poems READ: sex $9790 290 - SBAD2 1210 - S765E o20 _— seace COMPUTIST #55 May READ TRACK 9300: 20 40 63 4C 21 03 4C 3E SEB2F 0308: 03 4C 62 03 4C 7B 03 4C $E499 0310: 94 83 00 00 00 09 00 90 SOFAA 0318: 08 80 00 00 06 90 00 G0 SAFOA 0320: 00 AQ OF 8D 52 03 18 6D $4330 0328: 00 B3 8D 56 03 20 3E 03 ‘S20CF 0330: AD 5A 03 DO 08 CE 56 03 $C060 0338: CE 52 03 10 FO 68 AO 03 $O91E 0340; AQ 4D 20 D9 63 BO 05 AD $9948 0348; 00 80 5A 03 60 01 6001 $9668 0350; 90 00 00 5E 03 88 20 00 $0555 0358: 00 01 00 00 60 81 00 01 $3065 0360: D8 EF EE 29 BACE 2A BA $8DF6 0368: EE 49 BACE 4A BA EE 96 $5C65 0370: BA CE 97 BA EE D6 BA CE $3694 0378; D7 BA 60 CE 29 BAEE 2A SB63A 0380: BA CE 49 BA EE 4A BA CE $53BD 9388; 96 BA EE 97 BA CE 06 BA SODAS 9390; EE 07 BA 60 A9 00 85 00 $3FOA 0398: A9 20 85 01 AD 00 B1 00 $6403 03A0; 49 87 91 00 C8 DOF? E6 $FCDA O3A8: 01 A5 O1 C9 30 DO ED 60 $E607 Softkey for... Mastertype v2.1 Scarborough @ Requirements “I Apple Ie or Tle with 128K 7 Super IOB 1.5 with New Swap Controller Sector editor with search feature (Copy I+) DOS 3.3 System Master disk [ One blank disk side () XFER.BOOT & RESTORE (COMPUTIST #28) or other way into the monitor. Mastertype 2.1 is a double hi-res update of the classic Mastertype typing teacher game. It is nota difficult program to copy. but the copies: have a habit of dying or becoming particular of which disk drives will boot it. The excellent softkey presented way back in COMPUTIST #15 for Mastertype 1.7 will not work on version 2.1, but the information necessary to crack 2.1 is all there. T resolved to make an unprotected version of 2.1 that would boot under standard DOS. 1 missed that goal. but at least I unprotected it. Mastertype’s hello program is a text file instead of an Applesoft program, so we must change DOS to execute (EXEC instead of RUN) the hello file i Boot a DOS 3.3 system master and fill memory from SBA69 to $BA94 with 60s. CALL-151 BA69:60 BA6A<BA69.BA94M [27] Insert a blank disk and initialize it to create a slave disk FP INIT HELLO [3a] Now, we need to capture the Master Type RWTS. If you do not have a copy card or other way to force entry into the monitor, then skip to step 3b. Otherwise, boot your original. When the drive stops, enter the monitor and move the RWTS to a safe place in memory, then boot your slave disk and skip to step 4. 1900<B800.BFFFM 3b | Insert the disk with XFER.BOOT and RESTORE into the drive. Load XFER.BOOT. BLOAD XFER.BOOT 3¢_] Put your original disk into the drive and boot it into upper memory PR#3 CALL 768 3d] When the drive stops, press RESET ] Insert the disk with XFER.BOOT and RESTORE into the drive and use RESTORE to move the trapped RWTS into main memory CALL-151 3F8: 4C 00 03 BLOAD RESTORE 1900<B800.BFFF(_¥) ([Z] Save the protected RWTS to your Super IOB disk BSAVE RWTS.MASTERTYPE2.1, A$1900, 1$800 5] Load Super [OB 1.5 (from your Starter Kit) and merge the standard swap controller with it. Change line 1001 to load the RWTS. LOAD SUPER I0B EXEC SWAP.CON 10010 PRINT CHRS(4) ‘‘BLOAD RWTS.MASTERTYPE2.1" RUN [8] Using a sector editor with a search feature, search for all occurences of the text string “*YZ123"° and change to “BLOAD"’. and the text string “YZ23" and change to “BRUN*. The tricky part here is that the “search text” will only find some of the YZ stuff. Some of the YZ’s and all the KILLDEs and CATNDOGs are in flashing text. For these you will have to search for the equivalent hex bytes. Similarly, change “‘CATNDOG™ to “CATALOG™, and ““KILLDE”™ to “DELETE”. I did not find any SAVEs that needed to be changed to INIT. The table below lists all of the commands that need to be corrected BLOAD and BRUN Trk Sct Byte(s) From To $10 $04 $46 ¥Z123 BLOAD $7D ¥Z123 BLOAD $88 YZ23 BRUN $1F $00 $04 ¥Z123 BLOAD SIE ¥Z123 BLOAD. $3C YZ123 BLOAD $58 ¥2123 BLOAD $72 ¥Z123 BLOAD. $83 ¥Z123 BLOAD. $96 ¥2123 BLOAD SAB ¥Z123 BLOAD $cl ¥2123 BLOAD $06 ¥2123 BLOAD $OE SEA ¥Z123 BLOAD Flashing BRUN Trk Sct Byte(s) From To SOA $04 SC7 59 5A 32 33 42 5255 46 SOE SOF $40 59 5A 32 33 425255 46 $15 $09 SAC 59543233 4252.55.46 Flashing BLOAD Trk Sct Byte(s) From To $20 SOE SEA 595A 313233 42 4C 4F 41 44 Flashing CATALOG Trk Sct Byte(s) From To $15 $00 $B3 46 44 41 40 $15 $OB $AC 4E 44 41 4c SOA $02 $86 4E 44 4140 Flashing DELETE Trk Sct Byte(s) From To $15 $00 $13 4B 49 4C 4C 44 44 45 40.45 54 45 45 $15 SOA $74 4B 49 4C 40 44 4445 4C 45 54 45 45 Softkey for... Create with Garfield DLM I was asked to make a backup of Create with Garfield for our school librarian. (Can you imagine giving primary school age children an original disk to use?) In COMPUTIST #52. there is a reference to an carlier article by Mr. Brown. I agree that the response in COMPUTIST #44 is nonsense. (I wonder if it fl May COMPUTIST 455 13; | was an April Fools letter?) Anyway, there was no help there. The Create with Garfield that I was working with is called the Deluxe Version and most likely is different than those referred to by others, but here is a crack that seems to work on this particular disk. Maybe the protection is similar on the other versions, The protection apparently is a signature on track $22. This track is the only one not in standard format. I found the code that checks for the signature is in memory from S6D3E to $6E64. It is part of a file called **LO"’. They use the direct $C@EC rather than the usual indirect $CO8C,X to read a byte from the disk. Don’t bother looking on the disk for it however, as it is stored there as $1FEC instead. The code around $6D4A then changes the IF to a CO. It appeared that all failures were sent to S6DE2 where the disk drive is turned off, the carry set, and then a return, If the signature is found, and I don’t pretend to understand all they go through there, then the carry is cleared. If you look at the bytes following S6E64 you will find some of the data it uses. (Lots of $F7, $F6, $EF etc. patterns, and if you nibble read track $22 you will find the same bytes.) [ wasn’t sure just where to try to mess up the check since it enters the routine at several different pla A return at the beginning would just be bypassed, How about just clearing the carry instead of setting it on failure in byte S6DES? It works! Who says you have to know what you are doing, you just need to be lucky! To back up the disk use any copier that allows you to specify tracks and copy tracks $00 - $21. | like to format the disk first so that track $22 will be formatted even if it isn’t used. ‘That way any copier will work without hanging up on track $22. By the way, track $23 seems to have a signature of some sort on it also, but apparently isn’t used on this disk. After copying, then search the disk with a sector editor for AD E8 IF 38 60 A200 ADEC 1F and change the 38 to a 18. I found it on track $15, sector $OF, byte $E9. An alternate method is to boot a DOS 3.3 disk (to get control), then re-insert your copy and: BLOAD LO,AS6000 CALL-151 6DE5:18 BSAVE L0,A$6000,L$1340 By the way. you can copy all the files to any DOS 3.3 disk, except they will not all fit. They have modified the VTOC to crowd things onto the disk. If you want to create some additional room on your disk then you will need to modify your disk to open up some unused sectors (see COMPUTIST #30). I see no advantage to this as they have already used a fast DOS on the original. Too bad it isn’t ProDOS, then it could go on a 3.5” disk. I'm not sure the Create with Garfield mentioned in COMPUTIST #52 is the same as mine but hopefully this will be of some help. Maybe (was $38) someone with better understanding can take this and improve upon the crack. In the meantime have fun creating your cartoons. P.S. I have to agree with Jim Hart about Utilico and their E.D.D. I have version 4 and, in addition to their protection, I object to not being given the parm locations and uses so I can customize it. For an additional $34 I can purchase the source code and description of the parms used. | paid nearly $100 for a program and then find they will sell me at additional cost the information I need to make full use of it? Fooey, I recommend Copy H Plus! It is not protected, is one third the price, and they tell you what the various parameters do without any extra charge. (And it works as good or maybe even better!) P.P.S Sorry to see you adding different computers. I expect that is a sign of a dying magazine. Too bad, I think you had a great thing going. I do not own an IBM, nor do I plan on doing so, Why should I have to clutter up my shelves with worthless information? It is upsetting to find a program that you have been looking for only to discover it is for the IBM version not the Apple. If there are rich people out there who can afford both computers then I suspect they could also afford two magazines! Keep it pure! PD ieneGaudt ProDOS Block Editor Adding a Search Command @ Requirements 0 64K Apple with ProDOS (1) ProDOS Block Editor (COMPUTIST #26) Tam familiar with DOS 3.3 because that is what [ used on my Apple II Plus. I never felt the need to convert to ProDOS until T purchased an Apple Ilgs. All of a sudden, sector edits on a ProDOS diskette with a DOS 3.3 editor became a nightmare of mapping logical sectors to blocks, not to mention that I could not do a thing with my 3.5”° drive. I went through some back issues of COMPUTIST to see what other people used to edit ProDOS diskettes. In COMPUTIST #26, there was an article regarding a program written by Bob Bergstrom. The program is called ProDOS Block Editor, and it is a‘*zap"* utility for the ProDOS operating system. The program is modeled after the Diskedit program for the DOS 3.3 operating system. ProDOS Block Editor was just what I was looking for. Afier using it a while, I found a couple of things I didn’t like: It would not work past ProDOS block 279 and it did not have a search capability. 14 COMPUTIST #55 _ Fixing the first problem was a breeze. I changed a couple lines in the BASIC portion of the program. I added a new structure MB which is a two dimensional array that contains the maximum number of blocks for a given slot and drive. Implementing a disk search was more complicated, but Bob Bergstrom had done all the hard work Applesoft -vs- Assembler 1 considered doing the whole thing in BASIC, but discarded that notion because I hate to wait. I decided to do the front end and back end of the find command in BASIC and the guts of the search in assembly. I wrote and tested the assembly portion in a afternoon, but interfacing it to the BASIC portion took two days. First, [ had to learn the BASIC portion of the program and figure a way to stick my wart (Find Command) on it. Personally, [ hate BASIC, the variable names are cryptic, and any program over a page long is impossible to follow (No offense Bob B., it's the language. not the programmer). I wish COMPUTIST would take the same approach as Nibble when publishing programs, | like to see some verbage on the general program structure and uses of variables, Implementing a Find Command Whenever possible, I used existing code from the original program. I placed the BASIC portion at the end of the program and the assembly portion on page $8F. There was not enough room on page $03 and the program was already modifying HIMEM When the user selects the ‘*F™ option, it invokes the find byte pattern command, The user is prompted for the starting block number. and then the ending block number of the search. The user is then prompted to enter a byte pattern. The maximum number of bytes that can be entered is 16. When prompted to enter the byte pattern for the search. the user is really in edit mode, so whatever display criteria was selected prior to executing “*F"'ind is what kind of input is expected (If hex mode is selected, Find accepts hex digits. If ASCII mode is selected, Find accepts ASCII characters), The ESC key is used to exit input mode of the byte pattern. The values supplied by the user are verified and POKEd into locations for the assembly portion. The assembly portion is CALLed, and when the assembly portion finishes, the BASIC portion checks a result flag and acts accordingly. If the byte pattern was not found, a error message is displayed. If the byte pattern was found. the block is displayed May to the user with the cursor located on the first byte of the requested byte pattern. One exception to this is when a byte pattern spans two ProDOS blocks, the cursor is located ‘on the last byte of the byte pattern. Finally, the user is returned to command mode and all commands are available to the user. Bugs There are two bugs that I know about with the code I added. I will leave it to some whiz- bang BASIC programmer to fix them. 1) There are characters left on the screen when ProDOS block numbers take four or more character positions. This becomes obvious when editing a 3.5" disk and decimal mode is selected. [use only hex mode, so I didn’t bother fixing the bug. 2) You can’t abort the FIND command once you start it. Entering the code [1_] Enter the BASIC program and save it to disk. SAVE PROEDIT.FIND [[2] Enter the ProEdit machine code and save it. BSAVE OBJ.PROEDIT, A$300, LSA5 3” ] Enter the machine code search routine and save it, BSAVE OBJ.PROED.FIND, AS8F0O, L$8D PROEDIT.FIND 10 REN * 2@ REM * PROED|T 3@ REM * PRODOS BLOCK 40 REM * EDITOR 50 REM * BY BOB BERSTROM 60 REM * (C) 1985 7 REM * SOFTKEY PUBLISHING 80 REM * 82 REM * F|ND BYTE PATTERN ON DISK 85 REM * MODIF|CATION 90 REM * BY RENE GAUDET. 1/88 95 REN * 97 REM 100 TEXT : HOME ; HIMEM: 35000: GOSUB 1940: GOSUB 550: GOTO 1080 110 REM WAIT FOR KEY 120 KY = PEEK (KB): IF KY < C7 THEN 120 130 POKE KS.0: RETURN 140 REM MOVE CURSOR |N FIELD 150 GOSUB 270: PRINT '"*" :KY = KY - 8: ONKY GOTO 160, 180, 200. 1080. 238 160 VT =VT-1: IF VT-<@ THEN VT = 19: GOTO 249 17@ GOTO 250 18QHT =HT-1: IF HT < @ THEN HT = 13: GOTO 160 198 GOTO 250 200 HT =HT +1: [FHT > 13 THEN HT = 1: GOTO 230 210 |F VT = 19 ANDHT > 9 THEN HT = 1: GOTO 230 220 GOTO 256 230 VT =VT +1: IF VT > 19 THEN VT = 8 246 IF VT = 19 AND HT > 9 THEN HT = 9 250 GOSUB 270: INVERSE : PRINT">" : NORMAL :PT =VT * 13 + HT - 1+ BF * C2: RETURN 260 REM CALC CURSOR POSIT! ON 270 IF HT < 1 THEN HT = 13:VT = VT - 1: IF VT < @ THEN VT = 19:HT =9 280 HTAB (HT - 1) * 3+ 1: VTAB VT + 2: RETURN 290 REM PRINT CURSOR POSITION 300 KY = ABS (KY) : GOSUB 270: PRINT "*" ; :VT= INT (KY / 13): HT = KY - (VT * 13) + 1: GOSUB 550: GOTO 250 310 REM PRINT "__" 320 FOR | = 1 TO 40: PRINT "-" 330 REM PROCESS EDIT DATA 34 NORMAL : GOSUB 270: PRINT ">*" CHRS (8) CHRS (8); > IF HF = 1 THEN 378: REM HEX DATA 77 350 GOSUB 460: |F NOT HB THEN KY = KY - C7: REMGET ASCI| CHAR, SET BIT 7 366 GOTO 500 370 GOSUB 830: IF KY > 15 THEN PRINT CHR§ (7) ; GOTO 370: REM 1ST HEX DIGIT 380 Al = KY: GOSUB 420 390 GOSUB 830: IF KY > 15 THEN PRINT CHRS (7) GOTO 390: REM 2ND HEX DIGIT 400 A2 = KY: GOSUB 420: GOSUB 980: GOTO 500: REM CONVERT DIGITS TO TOTAL 410 REM PRINT DEC/HEX 01GIT FROM LOOKUP TABLE 428 PRINT MID$ (HES.KY +1,1);; RETURN 430 REM CALC Al MOD A2 440 NU = INT ( ABS (Al) - INT ( ABS (Al /,A2)) * ABS (A2) + 05) * SGN (Al / A2): RETURN 450 REM INPUT ASCI| CHAR 460 GOSUB 120; IF KY < > 155 THEN RETURN 470 BL = PEEK (BK + 1) * C2 + PEEK (BK): GOSUB 1920: GOSUB 550: GOSUB 600: GOSUB 530: POKE CM.RD: ONERR GOTO 1080 475 |F SE = 1 THEN ONERR GOTO 2100 480 POP : GOTO 480 490 REM POKE VALUE INTO BUFFER. PRINT TO FIELD 500 POKE BS + PT, KY: GOSUB 270: PRINT "*" ; : POKE TM, KY; CALL DP: GOTO 200 510 REM ACCESS DISK. PRINT BUFFER FIELD 520 CALL PD ze! 530 CALL PB: GOTO 256 54@ REM PRINT STATUS LINE LABELS 550 VTAB 23: HTAB 1: CALL -958: INVERSE : PRINT “BLOCK” : : |F NOT BF THENHTAB 12: NORMAL PRINT “>" INVERSE : PRINT "BUF" NORMAL : PRINT "FER" ; : INVERSE 560 1F BF THEN HTAB 13: NORMAL : PRINT "BUF INVERSE ; PRINT "FER" ; : NORMAL : PRINT "<” NEXT : RETURN INVERSE 570 HTAB 33: PRINT "PTR" : PRINT “SLOT” ; : HTAB 9: PRINT “DRIVE” : ; HTAB 18: PRINT “1/0” 588 VTAB 24: HTAB 27: FLASH : PRINT "COMMAND" ; NORMAL ; PRINT "*" ; : RETURN 590 REM PRINT STATUS LINE VALUES 600 VTAB 23: HTAB 7: |F CF THEN PRINT BL'"**" ; HTAB 37; PRINT PT "**" ; : VTAB 24: HTAB 36 IF PT - OF > - 1 THEN PRINT "* ; CHRS (8) ; CHRS (8) ; CHR$ (8) ; CHRS (8) ; PT - OF ; GOTO 700 610 |F CF THEN PRINT “****" ; CHR$ (8); CHRS (8); CHRS (8); CHRS (8) ;PT - OF: ; GOTO 700 620 REM 625 PRINT INT (BL / C2) ; : POKE TM, BL ~ ( (2) * C2): CALL HP: GOTO 648 630 REM 640 HTAB 37: IF PT > C6 THEN PRINT "1" ;: POKE TM.PT - C2: CALL HP: GOTO 660 650 PRINT "O" ;: POKE TM,PT: CALL HP 660 VTAB 24: HTAB 36: PRINT "****" ; CHRS (8) ; CHR$ INT (BL (8) ; CHRS (8); CHR$ (8);; IFPT-OF >-1 THEN PRINT "*" ;; GOTO 680 670 PRINT "~" ; 680 |F ABS (PT - OF) > C6 THEN PRINT "1" ;: POKE TM, ABS (PT - OF) - C2; CALL HP; GOTO 700 690 PRINT "O" ;; POKE TM, ABS (PT - OF): CALL HP 700 VTAB 23: HTAB 21: PRINT "*" |: INVERSE : IF HF =1 THEN PRINT "HEX" ; : NORMAL : PRINT "#* 710 |F HF = 2 AND NOT HB THEN PRINT "ASC/MSB=" : NORMAL : PRINT "Q" ; 720 \F HF = 2 AND HB THEN PRINT "ASC/MSB=" ; : NORMAL : PRINT "1" , 730 VTAB 24; HTAB 6: PRINT SL;; HTAB 15; PRINT DR; : HTAB 22: IF NOTCF THEN PRINT "HEX" |; RETURN 740 PRINT "DEC" ;: RETURN 750 REM RING BELL 760 PRINT CHR$ (7) CHRS$ (7); : RETURN 770 REM DECODE ERROR, PRINT TO FIELD 780 ER = PEEK (EF) : POKE 34,1: POKE 35,21: HOME VTAB 12; HTAB 12; |F ER = 39 THEN PRINT "DISK* | /O* ERROR" 790 |F ER=40 THEN PRINT "NO“DEVICE*CONNECTED” 800 |F ER= 43 THEN PRINT "DISK*WRITE*PROTECTED" 810 FOR | = 1 TO 2500: NEXT : POKE 72,0: POKE 35.24: GOTO 530 820 REM KEYPRESS DECODE FOR NUMER ICS 830 GOSUB 460: IF KY = 141 THEN RETURN B40 KY =KY-176: IFKY <@ OR KY > 22 THEN GOSUB 760: GOTO 830 850 IF KY > 9 THEN KY = KY - 7: IF KY < 10 OR KY > 15 THEN GOSUB 760: GOTO 830 860 IF ED THEN RETURN : REMED!T MODE? THEN MUST BE HEX 870 IF CF AND KY > 9 THEN GOSUB 760: GOTO 830 REM COMMAND LINE DEC NUMBER 100 BiG 880 RETURN 890 REM ASSEMBLE NUMBER 900 |F EDORNOT CF THENKY =Al * C3 + A2: RETURN + REM *EDIT" OR COMMAND LINE HEX (2D1GITS) 910 IF NOT EDAND CF THENKY =Al * C9 +A2: RETURN REMNOT ‘EDIT'. GET DEC NUMBER (2 DIGITS) 920 |F ED OR NOT CF THEN KY =Al * C2 + A2 * C3 +A3: RETURN : REM 'EDIT' OR COMMAND LINE HEX (3 DIGITS) May COMPUTIST #55 15 | 930 KY = Al * C8 + A2 * C9 +A3: RETURN - REM COMAND LINE DEC (3 DIGITS) 940 REM ENCODE STRING INPUT TO HEX VALUE 950 ABS = "O00" + ABS: ABS = RIGHTS (ABS.4) :J = 1: FOR | =1704:PR(1) =@: NEXT |: FOR | = 1 TO LEN (AB$):PR(I) = ASC ( MIDS (ABS.J,1)) -48: IF PR(1) > 9 THEN PR(1) = PR(|) -7 960.J=J+1: NEXT :PR=Cl # PR(1) + C2 > PR(2) +(3 * PR(3) + PR(4): RETURN 970 REM PRODOS BLOCK NUMBER 980 VTAB 23: HTAB 1: FLASH : PRINT "BLOCK" ; NORMAL : PRINT "*" ; ; GOSUB 83: IF KY > 15 THEN KY = PEEK (BK) + PEEK (BK + 1) * C2 GOTO 1020 990 Al = KY: GOSUB 420: GOSUB 830: IF KY > 15 THEN KY = Al: GOTO 1020 1000 A2 = KY: GOSUB 420: GOSUB 830 THEN GOSUB 990: GOTO 1020 1010 A3 = KY: GOSUB 420: GOSUB 920 1020 IF (KY < 0) OR (KY > MB(SL.OR)) THEN PRINT CHR$ (7); : GOTO 980 1030 BL = KY: GOSUB 600 1040 VTAB 23: HTAB 1: INVERSE: PRINT "BLOCK" ; NORMAL 1045 |F SE = 1 THEN RETURN 1050 IF PEEK (Cl) = 129 THEN VTAB 24: HTAB 27 FLASH : PRINT"? ?WRITE??" CHRS (7) CHRS (7) CHRS (7); : NORMAL : GOSUB 460: IF KY < > 141 THEN 470 1060 POKE BK +1, INT (BL /C2): POKE BK, INT (BL ~ (INT (BL/ C2) * C2): GOTO 520 1070 REM TOP OF MAIN ‘COMMAND’ LOOP 1080 POKE 216.0: £0 = 0: GOSUB 580: GOSUB 600: IF PEEK (772) > 0 THEN GOSUB 780 1090 REM GET COMMAND 1100 GOSUB 270: GOSUB 120: IF KY = 140 THEN GOSUB 1330: GOTO 1080 1110 IF KY = 142 THEN GOSUB 1360: GOTO 1080 1120 KY = KY - 192: IF KY =~ 1 THEN 1310 1130 IF KY > @ AND KY < 27 THEN ON KY GOSUB 1160 1550, 1200, 1230, 1260. 2000, 760, 1570 150,150, 150.1710, 150.760, 1630, 1390 760,1470. 1490. 760, 1296, 760, 1530, 1610 . 760, 1590 1140 GOTO 1680 1150 REM TOGGLE ASC| | /HEX FIELD DISPLAY 1160 HX = NOT HX: IF HX THEN 1180 1170 HF = 2: POKE FM,HF: GOTO 530 1180 HF = 1; POKE FM,HF: GOTO 530 1190 REM TOGGLE CTL~CHAR PRINT 1200 |F HF = 2 THEN CC = NOT CC: POKE CT .CC: GOTO 530 1210 RETURN 1220 REM TOGGLE ACTIVE DRIVER 1230 DR= (NOT (OR 1)) +1 1240 POKE UT, (DR- 1) * C7 + SL # C3: GOTO 550 1250 REM EDIT 1260 VTAB 24: HTAB 27: FLASH PRINT CHRS (7) ">>EDIT<<" ED =1 1270 GOSUB 349: GOSUB 690: GOTO 1270 1280 REW TOGGLE COM'D LINE HEX/DEC 1290 CF = NOT CF: RETURN 1300 REM HELP SCREEN] IF KY > 15 1310 GOSUB 1869: GOSUB 550: GOSUB 538: GOTO 1080 132@ REM LAST BLOCK 1339 BL=BL- 1: IF BL > = @ THEN 1960 1349 BL = MB(SL, DR): GOTO 1069 1350 REM NEXT BLOCK 1368 BL =BL+1: IF BL < = MB(SL,DR) THEN 1060 1370 BL = 6: GOTO 1060 1388 REM SET POINTER IN BUFFER 1390 VTAB 24: HTAB 27: INVERSE : PRINT "SET-PTR" VTAB 23: HTAB 33: FLASH : PRINT "PTR" CHRS (7): : NORMAL : PRINT “****" CHRS (8) CHRS (8) CHRS (8): : GOSUB 830: IF KY > 15 THEN GOSUB 550; GOTO 250 1400 Al = KY: GOSUB 420: GOSUB 830 THEN KY = Al: GOTO 300 1416 A2 = KY: GOSUB 426: GOSUB 830 THEN GOSUB 980: GOTO 308 1420 A3=KY: GOSUB 420: GOSUB 920: IF NOT BF THEN IF KY > C6 THEN GOSUB 760: GOTO 1390 1430 | F BF THEN IF KY < C2 OR KY > C5 THEN GOSUB 760: GOTO 1390 1440 1F KY > C6 THEN KY = KY - C2 1456 GOTO 300 1460 REM READ A BLOCK FROM DISK 1470 VTAB 24: HTAB 27: INVERSE : PRINT ">READ<” IFKY > 15 IF KY > 15. NORMAL ; PRINT CHRS (7) “*" ; : GOSUB 980. GOTO 550 1480 REM SET ACTIVE SLOT 1490 VTAB 24; HTAB 27: INVERSE : PRINT “SET* SLOT" ;: HTAB 1: FLASH : PRINT "SLOT" CHRS. (7) ;: NORMAL : HTAB 6: PRINT “*" :: GOSUB 830: IF KY > 15 THEN GOTO 550 1508 IF KY < 1 OR KY > 7 THEN 1499 1510 SL = KY: POKE UT, (DR- 1) * C7 + SL * C3 GOTO 550 1526 REM WRITE BLOCK TO DISK 1530 POKE CM.WR: VTAB 24: HTAB 27 PRINT ">WRITE<” CHRS (7) GOSUB 980: POKE CM.RD: GOTO 550 1546 REW TOGGLE DISPLAYED BUFFER HALF 1550 BF =NOT BF:PT=VT * 13+HT - 1+ BF * C2 POKE BU, 144 + BF: GOSUB 530: GOTO 550 1560 REM TOGGLE ASC1 | HI-BIT (EDIT MODE) 1570 HB = NOT HB: RETURN 1580 REM ZERO PO|NTER OFFSET 1590 OF = PT: RETURN 160 REM EXIT TO BASIC 1618 TEXT : HOME : END 162@ REM OUTPUT TO PRINTER 1630 VTAB 23: HTAB 1: PRINT “**VERIFY*PRINTER® ON *&*PRESS*<RETURN>**" ; 1649 GOSUB 126 1650 VTAB 1: GOSUB 1849: GOSUB 600: GOSUB 256 VTAB 1: PRINT : IF KY <> 141 THEN RETURN 1660 REM SET UP FOR PARALLEL PRINTER CARD 1670 PRINT D$; "PR#1" : PRINT 1S; “8ON" 1680 FOR V = 1 10 24: VTAB V:X = PEEK (40) + PEEK (41) * 256: FOR H = X TO X + 39:AS = PEEK (H): PRINT CHR$ (((AS < 32) * (AS + 64)) + ((AS> 31) * AS)) ;: NEXT : PRINT : NEXT 1696 FOR | = 1705: PRINT : NEXT : PRINT D$ "PR#O” RETURN 1700 REM DiSASSEMBLE BUFFER INVERSE NORMAL 1710 TEXT : HONE : INPUT "START ING*BYTE* ($6°TO* SIFE*HEX) :*" ; ABS: 1F LEN (ABS) =O THEN PR =: GOTO 1740 1720 GOSUB 959: IF PR < @ OR PR > 510 THEN 1710 173Q REM PRINT LOOP STARTS HERE 1740 Al =BS +PR:A2=C2: GOSUB 44: POKE PC. NU; POKE PC +1, INT ((BS + PR) / C2): CALL ID 1750 Al = PEEK (BS + PR) :A2 = 32: GOSUB 440: iF NU < > C3 THEN 1790 176QHTAB 27: PRINT "(" : :NU=PEEK (BS +PR+1) IF NU < C7 THEN 1780 1770 PRINT NU - 254; " 1780 PRINT "+" :NU +2; 179 PR=PEEK (LE) +PR+1: IF PR> C5 THEN PRINT PRINT D$; "PR#O" ; PRINT ; INPUT "***** PLEASE* PRESS* <RETURN>* " ; ABS: GOSUB 1920: GOSUB 550: CALL PB: GOTO 250 1800 |F PEEK (KB) < C7 THEN 1740 1810 REM PRINT LOOP END - |F YOU'RE HERE KEY WAS PRESSED 1820 KY = PEEK (KB); POKEKS,0: IF KY < > 16@ AND KY < > 14] THEN 1740: REN SPACE OR RETURN? 1830 GOSUB 120; IF KY < > 141 THEN 1740 184 GOSUB 1920: GOSUB 550: CALL PB: GOTO 250 1850 REM PRINT HELP TABLE 1860 PRINT ; TEXT : HOME ; HTAB8: PRINT COMMAND’ TABLE:" : PRINT : HTAB4: PRINT "A’~*TOGGLE* ASC! | /HEX*DISPLAY" ; HTAB 4: PRINT "B*~* TOGGLE* ACT | VE*BUFFER*HALF" 1870 HTAB 4; PRINT "C*-" TOGGLE* CONTROL* CHAR® PRINT" ; HTAB 4: PRINT "D'-*SET*OR| VE" HTAB 4: PRINT “EDIT® (ESC*TO* END) " 1875 HTAB 4; PRINT "F*—“FIND°BYTE* PATTERN" 1880 HTAB 4: PRINT "H* -* TOGGLE* ASCII" EDIT* HI-BIT" : HTAB 4: PRINT "|, J.K.M*~"MOVE* CURSOR® IN* FIELD" ; HTAB 4: PRINT " 5 OISASSEMBLE*BUFFER" ; HTAB 4: PRINT " OUTPUT*SCREEN*TO* PRINTER® 1890 HTAB 4: PRINT “P* -* POSTION* CURSOR* IN* FIELD" : HTAB 4: PRINT "R*~*SET*BLOCK*THEN? Re ees” (RETURNS USES! DISPLAYED* VALUES)" : HTAB 4: PRINT "S*-* SET’ SLOT" ; HTAB 4: PRINT "U* -* UPDATE* COMMAND*L 1NE*DEC/HEX" 1900 HTAB 4: PRINT "W*-*WR|TE*BLOCK*TO"DI SK" HTAB 4: PRINT "X*-*EXiT*TO*APPLESOFT” HTAB 4: PRINT "Z* -* ZERO* RELAT|VE* BYTE* GOTO 1799 Ort COUNTER" : PRINT "CTRL*L/N*~*LAST/*NEXT* SECTOR" 1910 VTAB 24: HTAB 8: PRINT "PRESS*ANY*KEY*TO* CONTINUE*" ;: GOSUB 460 1920 POKE 34.0: HOME : GOSUB 320: VTAB 22: GOSUB 320: RETURN 1930 REM POKE ML 1/0 CONSTANTS 1940 IF PEEK (774) < > 32 THEN PRINT CHR$ (4) “BLOAD*OBJ PROEDIT. A$300" 1945 PRINT CHR$ (4) "BLOAD* OBJ .PROED.FIND AS8FOO" 1948 DIM MB(7. 2): REM MAX BLOCK PER DEVICE INIT VARIABLES. SET COMPUTIST #55 May | 1950 FM = 768:1M = 771:EF = 772:CT = 773:PD = 50 - $c899 1188 - $8001 630 - $1546 1820. - SDAFE 774: CM = 783:UT = 795: BK = 798:HP = 800: DP 60 0 - SFFO5 1199 - $5029 649 © - $0439 1830 - sB4C2 = 806: PB = 826:BU = 855 70 SA3BF 1200 - $6517 650 - $064A 1849 - $7308 1960 1D = 63696:LE = 47:PC = 58:RD = 128:WR = 80 - $A990 1218 - $302A 660 = - $2E21 1850 - $77B8 129:BS = 36864:KB = - 16384:KS = - 16368 82 © - $8259 1228 - SAA93 670 - $24F3 1860 - $47F7 1965 NB = 36832:SB = 36834:EB = 36836:FB = 85 - S4A91 1238 - SEF89 680 - $128F 1870 - $1348 36838: RS = 36840:S1 = 36848 90 «= - $5FO0 1249 - $7C93 690 - $8988 1875. - $FDCF 1968 $9 = 36608: FOR | = 1107: FORJ = 170 95 = - $3768 1250 - SOFC2 700 ~ S15CE 1880 - $AASC 2:MB( J) = 279: NEXT J: NEXT | :MB(5, 1) = 97 - $4816 1260 - SDA45 710 - SEE54 1890 - $7F53 1599: REM SET DEFAULTS FOR MAX BLOCKS 100 - SO76F 1278 - $2302 720 - sCl9D 1900 - $AFD8 1970 Cl = 4096:C2 = 256:C3 = 16:C5 = 511:C6 = 110 - SELF7 1280 - $3807 730 - scesc 1910 ~ $1005 255:C7 = 128:C8 = 100:C9 = 10:D$ = CHRS 120 - SOA5A 1290 - $8002 740 - $452A 1920 - $A264 :1$-=CHRS (9) 130 ~ $9845 1308 - $700A 750 - $A575 1930 - $7360 :DR = 1:HB=@:HX = 1:HF = 1:HT = 1:VT 140 - $OBFA 1310 - $9342 760 ~ $3028 1940 - $9390 = OBL = O:BF = @:CC = O:CF = O:HES = 150 - $A678 1320 - $A803 770 ~ $0240 1945 - SACF8 "123456789ABCDEF” : GOSUB 1860: GOTO 530 160 - SF69A 1330 - $82A2 780 - $394¢ 1948 - S42E1 2000 REM SEARCH FOR HEX BYTE PATTERN 170 - $F689 1340 - $F2CF 790 ~ $F36A 1950 - SECES 2010 VTAB 24: HTAB 27: FLASH : PRINT CHRS (7) 180 - $OF21 1350 - $C107 800 - $702A 1960 - $2471 ">>FINDE<" ):ED = 1 190 - $3348 1360 - $6AA2 810 - $6480 1965 - $5296 2020 SE = 1: VTAB 22: HTAB 1: FLASH : PRINT 200 - $0157 1370 - $FA56 820 - $353C 1968 - $a8cc "START" = NORMAL ; GOSUB 980:B1 = BL 210 - $10BL 1380 - $F498 830 - $1178 1970 - $F339 2030 VTAB 22: HTAB 1: FLASH ; PRINT "END**” 220 - SIO1E 1390 - $0709 849 - SEDI 1980 - $F702 NORMAL : GOSUB 980: B2 = BL 230 «= - SDC8B 1400 - SBF4F 850 = - $D75D 2000 - $4039 2040 VTAB 22: HTAB L: PRINT "*****" 249 - S9060 1410 - $02C5 860 - SOFBE 2010 - $2638 2050 POKE 34,0; POKE 35,21: HOME : PRINT "ENTER® 250° - S53ED 1420 - $512C 878 - SC21D 2020 - $85A5 SEARCH* PATTERN® (16*BYTES* MAX) " 260 - $6117 1430 - $E23F 880 - SOF73 2030 - $5CAE 2060 POKE 35, 24: HT = 1: VT=0:0BS = BS:BS = S1:PT 270 =~ ScoDd 1440 - $98FD 890 - S9AC6 2040 - SEBBC =0 280 - $5750 1450 - $8A3B 909 - scC2B 2050 - SD18A 2070 OF = 0:BF = 0 290 - $9026 1460 - $ED3A 910 - $680C 2060 - SABIE 2080 |F PT > = 16 THEN 2100 300 - $A89B 1470 - $1006 920 - $5E66 2070 - $0781 2090 GOSUB 340: GOSUB 600: GOTO 2080 310 - $0F91 1480 - $6448 936 - SBIEL 2080 - $6040 2100 ED = 0:SE = 0:BS = OBS: ONERR GOTO 1080 320 - $F303 1498 - $6905 940 - $E863 2090 - $8901 2110 |F (PT < 1) OR (Bl <@) OR (B2 < B1) THEN 330 - SOFSO 1500 - $8926 950 - SAMDA 2100 - S29A2 2190 340 - $4898 1510 - $8846 960 - S9ESA 2110 - $7429 2120 POKE NB. PT 350 - $04gc 1520 - $6490 970 - S9FFO 2120 - $9967 2130 POKE $B +1. INT (BL / C2) 360 - $7961 1530 - SEECI 980 - $3280 2130 - $1748 2140 POKE $B, INT (Bl - ( INT (Bl /C2) * C2)) 370 - $813F 1540 - $1801 990 S4FBF 2140 - SA031 2150 POKE EB +1, INT (B2 / C2) 380 - $8518 1550 - $B4B8 1008 - $F627 2150 - $1527 2160 POKE EB, INT (B2 - ( INT (B2/ C2) * C2)) 390 - SE84D 1560 - $25F7 1010 - $9F16 2160 - SE961 2170 POKE CN.RD: CALL $9 400 - $8892 1570 - $C245 1020 - $4874 2170 - $553F 2180 IF PEEK (RS) = 0 THEN 2230 410 - sDAD2 1580 - S4CD1 1030 - $2BCE 2180 - $9830 2190 GOSUB 1920 420 - S440 1590 - S6EIC 1040 - SCBCC 2190 - $0177 2200 VTAB 10: HTAB 10: PRINT "BYTE*PATTERN‘NOT* 430 - $1930 1600 - SA191 1945 - $1006 2200 - $CCEA FOUND" : GOSUB 1910: GOSUB 600 449 - SO61A 1616 - $2248 1050 - SDF3B 2210 - $4518 2210 BL = 0:BF = O:PT = :VT = O:HT = 1: POKE 450 - SFAI7 1620 - $9A61 106 - SFE7D 2220 - $078D BU. 144 + BF 460 - $0995 1630 - $45DA 1070 - $796A 2230 - $3003 2220 GOSUB 550: GOSUB 1060: GOTO 2290 470 - $6538 1640 - $837F 1980 - $2C12 2249 - SAFC 2230 BL = PEEK (BK + 1) * C2 + PEEK (BK) 475 - SEDC 1650 - $C1BE 1990 - $8ACO 2250 - $93DF 2240 BF = PEEK (FB + 1):PT = PEEK (FB) 430 - $6100 1660 - $03A0 1100 - $7192 2260 - $44B4 2250 IF (PT +1) >= PEEK (NB) THEN PT = PT - PEEK 490 - $8926 1670 - $966A 1119 - $1CEC 2270 - S9EFC (NB) + 1: GOTO 2270 500 - $5458 1680 - S6FE8 1120 - $8001 2280 - scO2F 2260 IF BF = | THENBF = @.PT=PT - PEEK (NB) +C2 510 - SDOEF 1699 - $0076 1130 - $3788 2290 - SBICC #1 520 - $6298 1780 - SEBLO 2270 VT = INT (PT / 13) :HT = PT - (INT (PT / 13) 530 - SF97L 1710 - SADS2 #13) 41 540 - SBAL2 1720 - $B140 OBJ.PROEDIT 2280 POKE BU, 144 + BF: GOSUB 530: GOSUB 550 550 - SOEOF 1730 - $4405 0300: 01 99 00 0 00 00 26 6C $5084 2290 POP ; GOTO 2290 560 - SEB22 1749 - S$OECI 0308: 03 D0 08 60 20 00 BF 80 $98FA 570 - SD4F4 1750 - $D4c3 0310: 1A 03 60 8D 04 03 20 3A $7055 Checksums 580 - SDCAT 1760 - $0781 0318: FF 60 83 60 00 90 00 00 S6COB 590 - $5482 1770 - $5E30 0320: AD 03 83 4C 30 03 AD O3 SCEDB 19 - $BADD 1140 - $6960 609 © - $8509 1780 - $086C 0328: 03 AE 00 03 E0 02 FO 04 S6CF7 20 - $9813 1150 - $0109 610 - SCFO9 1799 - $B3C5 0330: 20 DA FO 60 09 80 20 ED $0150 30 $4038 1168 - $6320 620 - $5204 1880 - SAEIA 0338: FD 60 A9 O1 85 25 20 22 S69F8 49 $AD92 1178 - $9833 625 - SFEC2 1819 - $F5D1 0340: FC A9 0 85 24 8D 82 03 S6E63 May COMPUTIST #55 17 9348: AQ GD 8D G1 83 AS AB 20 $52EC 9350: ED FD AE 92 03 BD 08 90 $8878 9358: AE 00 03 EO 02 FO OB 20 $9A87 9360; DA FD A9 AG 20 ED FD 4c $2051 9368 : 8B 03 09 80 C9 AD 16 DE $C5DC 9370: AE 05 03 EO 08 FO 05 E9 $D1F2 9378: 80 4C 7E 03 A9 AE 20 ED $BO6F 9380; FD A9 AQ 20 ED FD AS AO SLABS 0388: 20 ED FD EE 62 03 FO 08 $C1BD 9390: CE 81 03 DO BD 4C 48 03 $7072 0398: 20 9C FC E6 25 20 22 FC $3E56 O3A0: AQ 16 85 22 60 $5858 OBJ.PROED.FIND 8FO0: AQ FF 8D E8 8F A9 00 8D $2243 8FO8: El 8F A9 90 8D 2E 8F AD SFF45 8F10: E2 8F 8D LE 03 AD E3 8F $55BF 8F18: 8D 1F 03 20 06 03 AD 04 $5894 8F20: 03 FO 01 60 AC El 8F BD $8349 8F28; FO 8F A2 00 DD 00 90 FO $4003 8F30; OC CO 00 FO 11 AB 00 BO $0202 8F38: FO BF 4C 2C 8F C8 CC EO $6C70 8F40; 8F FO 39 BO FO 8F E8 DO $5909 8F48; E3 AD 2E 8F C9 90 DO OB $1A69 8F50; 09 81 8D 2E 8F B9 FO 8F $B40C 8F58: 4C 2C BF BC El 8F AS 90 $8842 8F60: 8D 2E 8F AD 1E 03 CDE4 $E4C9 8F68: 8F AD 1F 03 ED E5 8F BO $9270 8F70; 1B EE 1E 03 DO 03 EE IF $5623 8F78; 03 4C 1B 8F A9 OO 8D E8 $DB14 8F80; BF BE £6 BF AD 2E 8F 29 $OA32 8F88: 01 8D E7 8F 60 SO9AD Aufderheide Softkey for... Estimation Micros for Micros @ Requirements (0 Super [OB 1.5 U Sector Editor Estimation, by Micros for Micros, is a great little program to help teach young kids how to estimate. The problem with it, of course, is that it is protected. Now. a protected disk for aged kids is an invitation to disaster. and bit copiers would not touch the disk. What's a person to do? Have you thought of how many ways an elementary aged student can accidentally make a disk so that it never works again? A boot of the original did not sound quite right. So I booted it on my Ile with a Trak Star installed. The program loaded DOS. went to track $03.5. then went to track $08. As a matter of fact, the head never read past track $13. Interesting. The next step was to break out the CIA and look at track $@8. Both data and address epilogues were FFFF, and the checksum was not quite right. A look at track $08, sector $00 showed a VTOC that pointed to a catalog sector at track $08, sector SOF. A look at track $08, sector SOF showed that all programs seemed to be located from track $@6 to track $OD. A random check of the rest of the disk showed garbage. Track $03.5 appeared to be accessed only during boot up. Looked like a nice simple job for Super JOB. I initialized a disk with ProntoDOS, and installed a controller that moved tracks $06 to track $0D to my new disk. Putting away the original, as 1 thought I was done, I then went to work on my copy to make it as normal as possible. The first job was to break out my sector editor and read in the VTOC from track $08, sector $00, change the second byte from $08 to $11, and write it back out to track $11, sector $00. I read in track $O8, sector $OF and again changed the second byte to $11, and wrote the sector to track $11, sector $OF. By doing this, I had told their VTOC and catalog that it was relocated on the normal catalog track At this point I felt great! Booting the copy. Iran what I thought was the correct program, STARTMENU (seems logical, right?). It did not work, The Hi-Res text did not look like text, but garbage. So I loaded STARTMENU and looked. At line 21 there was a CALL 2048, 2048? That's the normal location for an Applesoft program! Line 12 was HGR, so there was no program at $2000. That would mean that there was code at $800 that the program called, and the program must be relocated above Hi-Res Page | A check of memory showed that starting at $800 we have code that sets up the shape tables that the program uses. Finally, at line 15. the program PEEKed location 254 for value 255 The next step then was to capture the shape: tables, and write a HELLO program that relocates Applesoft programs above Hi-Res Page | and puts 255 into location 254 (under the assumption that that location is checked by other parts of the program!) So dig out that original again! Booting the original disk. I jumped into the monitor, and moved the machine code to $2000 where it would be safe (2000<800.1999M) and booted my copy. I then re-entered the monitor (CALL -151), moved the code back where it belonged (800<2000.3199M) and saved it on the copy (BSAVE SHAPES, A$800, L$1 199). Then I wrote the HELLO program at the end of this article which relocates Applesoft programs above Hi-Res Page |, sets location 254 to 255, loads SHAPES at $800, and runs the program STARTMENU. and saved it on my copy (SAVE HELLO). 18 COMPUTIST 455 A quick boot, and it worked! I now had a safe copy of Estimation, and need no longer worry about bombing my original, For those of you ina hurry, here's the cookbook: [1_] Initialize a disk with a fast DOS. INIT HELLO [[2 J Install the controller at the end of this, article and copy tracks $06 to SOD to your copy. [3] Break out your sector editor and read track $08, sector $00 from your copy. Change the second byte from $@8 to $11. Write the sector out to track $11, sector $OO or your copy. [4] Read track $08, sector $OF from your copy. Change the second byte from $08 to $11. Write the sector out to track $11, sector $OF [[5_] Boot your original and break into the monitor. Move the code to a safe place: 2000<800.1999M Now boot your copy and move the code back: 800<2000.3199M Save it on your copy BSAVE SHAPES, A$800, L$1199 [[6_] Enter the Applesoft program at the end of this article and save it on your copy: SAVE HELLO [7] Put your original away, and enjoy your copy! Controller 1000 REM ESTIMAT|ON CONTROLLER 1010 TK = 6:LT = 14:ST=15;LS=15:CD=WR: FAST ed 1020 POKE 47426 , 24 1030 GOSUB 490; RESTORE : GOSUB 170; GOSUB 610 1049 GOSUB 490; GOSUB 230: GOSUB 610: IF PEEK (TRK) = LT THEN 1060 105@ TK = PEEK (TRK) :ST = PEEK (SCT) : GOTO 1030 106@ HOME ; PRINT "COPY*DONE" ; END 1070 DATA 255.255, 255.255 Controller Checksums 1000 - $3568 1040 - $0000 1010 - $0cad 1958 - $C320 1020 - $331B 1060 - $8C73 1030 - $8DF8 1078 - $8246 HELLO 10 IF PEEK (103) + PEEK (104) * 256 <> 16385 THEN POKE 103, 1: POKE 104. 64: POKE 16384 @: PRINT CHRS(4) “RUN HELLO* 20 POKE 254. 255: PRINT CHRS(4) "BLOAD SHAPES A800": PRINT CHRS(4) "RUN STARTMENU" May [1] Boor your DOS 3.3 system disk a es Question: I have a question concerning John Wiegley’s article about using the cassette jacks for “Better Sound.’ How can you get better ‘sound if you can barely hear anything from your headphones? Somebody, anybody, PLEASE send in a schematic diagram for an amplifier circuit!! Softkey for... [£2] Puta blank disk in the drive and enter: FP INIT *HELLO,V1 DELETE ~ HELLO The Vi will give it a volume number of O01 which is the same volume number as the original. Put this disk aside, you will use it later, [3] Boot the original Castle Wolfenstein HT disk and after your drive reads the first 3 tracks reset into the monitor [4] Move the RWTS to a safe location: 1900<B800.BFFFM Perry Mason The Case Of The Mandarin Murder Telarium [4] Use any fast copy program to copy all four sides. [2] Sector edit side one of the copy you just made. Trk Sct Byte(s) From To $13 SOB $5A-5C AD 82CO 20 29 1C Sofikey for... The Hobbit ‘Addison-Wesley Publishing Company The softkeys in COMPUTIST #34 and COMPUTIST #35 did not work on my copy Neither side could be copied using a fast copy program, including COPYA as suggested in the softkeys, Modifying COPYA, however. did work ([1_] Boot your DOS 3.3 system disk [2] Tell DOS to ignore errors and use COPYA to copy both sides of the original disk POKE 47426,24 RUN COPYA [3] Make the following sector edits to side 1 of the copy 5_] Put your slave disk in the drive and boot it. “6 | Insert your IOB disk and save the RWTS: BSAVE RWTS.CASTLE,A$1900,L$800 [7] Install the controller listed below into Super TOB and copy the original to the slave disk. When asked, enter N, so as not to format the disk while running the controller: Controller 1000 REM CASTLE WOLFENSTEIN CONTROLLER 1010 TK = 3:ST = O:LT = 35:CD = "WR 102071 =TK: GOSUB 490 : GOSUB360: ONERR GOTO 550 1030 GOSUB 430; GOSUB 100: ST = ST +1: IFST< DOS. THEN 1030 1040 IF BF THEN 1060 1050 ST = 8:TK = TK +1; IF TK < LT THEN 1030 106 GOSUB 490: TK = T1:ST = 0: GOSUB 368 1070 GOSUB 430: GOSUB 100:ST =ST+1: IF ST < DOS THEN 1070 1980 ST=8:TK=TK+1 1070 1090 IF TK < LT THEN 1028 1100 HOME ; PRINT “COPY*DONE" : END 10010 IF PEEK (6400) < > 162 THEN PRINT CHRS (4) "BLOAD*RNTS .CASTLE.A$1900" IF BF =@ AND TK < LT THEN Controller Checksums 1000 - $3568 1968 - $9008 Trk Sct Byte(s) From _ To = 1910 - $3565 1078 - $9800 $00 $01 $2A-2C 4C 2402 EAEAEA 1020 - SE1E8 1080 - $7422 a = aa 1030 - $F7E9 1090 - $2082 1949 - SD35A 1100 - $1A55 Softkey for... 1050 - SEBSB 10918 - $7F32 —— ae — Castle Wolfenstein Muse Software I was not able to deprotect this using any of the softkeys in COMPUTIST. If you had the same problem this softkey should work. [ May ‘You can put fast DOS on this copy if you want to. NOTE: The original disk is a 13 sector disk, so when the controller reads it. it will “BEEP” three times on each track. This is fine, the copy will be OK COMPUTIST #55 Legs Softkey for... Leisure Suit Larry in the Land of the Lounge Lizards Sierra On-Line (-4_] Use any fast copy program that can ignore errors and copy both disks. [2] Edit side one of the copy. Block Byte(s) From To $OA5 $159 22 AF For Your Information If you have the Print Shop Ilgs try the following Boot your disk, and when you get to the first screen after the title se move down to “Exit Program". Hold down the OPEN- APPLE key and double click your mouse to exit the program. ‘The second thing to try is to change the date in the control panel to December 25. Save the change and then boot your disk. Look at the first screen after the title screen, up at the top where it usually says “*The Print Shop". I won't tell you what will happen in cither case, but I think you will like the surprises that Broderbund put in the program. If anyone knows any others, please send them in. In response to the letter from Bud Meyers that appeared in COMPUTIST #52. First, 1am sorry that he seems to have had so much trouble in getting the softkeys to work for his software, but to say that the instructions leave ‘‘a great deal to be desired"’, especally in light of the fact that he says that he is somewhat knowledgeable in computers, makes no sense to me. When I first subscribed to COMPUTIST. about 11 months ago, I was a complete novice as far as computers go. Since then, [have gotten all of the issues going back to COMPUTIST #1. 1 can honestly state that I have yet to sce an issue of COMPUTIST that has not had a softkey that would not work for at least one title that I have, either as the softkey was written, or with me making some minor modification to it, such as looking for the bytes to edit at another spot on the disk. changing a line in the Super IOB controller, ete: He also states that he doesn't care if his copy retains the protection. Again, if he is at least somewhat knowledgeable, he must realize the advantages a deprotected copy offers over one that is protected. I cannot believe that Mr. Meyers could be content with the bit copy programs if he is unhappy with the softkeys. I would say that my failure rate in using a softkey on the title that it was made for is less than S percent. I know of no copy program that 19 | can come close to matching this and even if they could the resulting copy would still be protected Rather than end on a critical note, I would like to say that if Mr. Meyers would care to send in a list of the software that he has had trouble in deprotecting, I am sure that one or more of the COMPUTIST readers, including myself, will help him if we can. John R. Putting Flashcale on an 800K Disk @ Requirements (J Any Apple (7 Ramfactor(AE) 1) Sector editor 1 Flasheale program disk In COMPUTIST #23, Doni Grande told us how to deprotect Flashcale. Since then the 800K disk has arrived and I wanted both program and data on one disk. I like the program because it is quick and dirty for simple tasks. Alas, Flashcalc would not allow you to install it on the 800K disk. Flashcale does allow you to install the program on the hard disk. Since a ram disk is just like a hard disk, I tried installing the program on the Ramworks card in my Ie. Again, the program would not install itself. I next tried the Ramfactor. To my surprise, the program installed itself on the card, All I had to do was transfer the files to an 800K disk and I would be ready. Wrong. Even though the programs that were needed to run Flashcalc, FC.SYSTEM AND FC.PROG, were on the 80K disk. the program would not 20. Luckily, I had COMPUTIST #23. As I studied the info from the article. I was able to find how to make Flashealc run from the 800K disk. Cookbook 4 Follow instructions and install Flashcale on the Ramfactor or similar card [2_] Transfer the files FC.SYSTEM and FC.PROGRAM to a directory on the 800K disk. (I called my disk /PLASH and the directory /FLASHCALC.) [3] To make the sector edits easier, copy the file FC.SYSTEM to a 5-1/4" blank disk. The file occupies two sectors [4] Using a sector editor you must change a valuc in one of the sectors (1 used a DOS 3.3 sector editor) and the pathname in the other. | 20 ((5_] ff you put FC.SYSTEM on a blank disk, perform the following sector edit: Trk Sct Byte(s) From To $00 Sai SFE 18 38 [6] In the second sector track $0, sector SOF you must change the pathname to that on your 800K disk. This starts at byte $B1. The byte at $B1 is the value for the length of the pathname. If this value is wrong, the program will not run Also, do not worry about overwriting the values after SB1. These bytes are reserved for the pathname. The programmer put data there to fool you. All bytes must be in HEX. (F=46, L=4C, A=41, ete.) (7) Example of entering pathname: pathname FLASH/FLASHCALC. # of letters = 16 (Do not count the final **/* as part of the length.) HEX yalue to put at $B1 = 10 The complete entry would start at SB] and look like: 10 2F 46 4C 41 53 48 2F 46 4C 41 53 48 43 41 4C.43 2F 80. After the last **/"", enter 80 to mark the end. 8] Write the sector back to the 5-1/4°* disk. [3] Copy the file FC.SYSTEM back to the 800K disk into the proper directory The FC.SYSTEM file will now run Flashcale. You can put Flachcale in whatever directory you want as long the correct pathname is in FC.SYSTEM I wrote Paladin Software several times to see if they would help. There was no answer to my letters. Where have all the software companies gone? Stanley Planton A Copy-protection Scheme for ProDOS @ Requirements _| EDD 4.N 3 COPY II Plus ProDOS, or similar utilities C1 Sector editor [1 Blank Disks {1 A ProDOS file to be protected One result of my article in COMPUTIST #51 was a sarcastic remark in another publication. to the effect that I'm out of step with the norm. Everyone else is interested in the REMOVAL of copy protection, while I seemed to be advocating the creation of new schemes. Oh. well. I guess they missed the COMPUTIST #55 “know your enemy” point of the exercise. Actually, sometimes the protection scheme is more interesting than the program it protects! There is a request on page 33 of COMPUTIST #52 from a Mr. David Erickson for a way to protect in ProDOS. While I can’t implement his preferred epilogue check, I have a way to copy protect ProDOS files, based on my COMPUTIST #51 article, again using EDD 4.N to do the real work, A brief explanation of the relationship between DOS and ProDOS seems to be called for by way of introduction. When the gang at Apple designed ProDOS, they did not start with a clean sheet of paper. ProDOS seems to be a refinement of the SOS that they developed for the Apple III, which in turn was an evolution of DOS 3.3. While there are many differences between DOS 3.3 and ProDOS, there are even more similarities. The two systems share general track and sector formats, and run in the same drives. In fact, there are many apparent similarities in the way that they access and store some of the address and data identification bytes found on the disk. This latter similarity can give us a way to protect ProDOS files that is virtually identical to the protection of DOS 3.3 files I explained in COMPUTIST #51. We can make the address headers on the disk vary from D5 AA 96 to another value, such as D4 AA 96, without a great deal of effort. This will ‘shut down’* such popular copying programs as Locksmith Fast Copy. Disk Muncher, and COPYA, since they can no longer determine the start of a sector on a track Most of us are used to entering the monitor after booting a DOS 3.3 disk, and making changes to memory locations in order to eliminate error-trapping or byte-recognition routines, What should be realized is that the original values are loaded from the disk, and we can make the same changes to the DOS on the disk. For example, if we wish to tell DOS to ignore the first byte of an address header, we can enter the monitor. change locations SB954-B955 to 2900 and return to BASIC with the task accomplished, We could also search the disk for the string 10 FB C9 D5 and replace the C9 05 with 29 00. accomplishing the same end. When this disk is booted, the DOS loaded would ignore the first byte of the header, ProDOS uses the same bytes to accomplish the same thing! In fact, there are many parallels between the ways the two operating systems read individual sectors. To protect a ProDOS disk from being casily copied. follow these steps: [1_] Format a ProDOS disk and copy ProDOS to the disk Most versions of ProDOS will use tracks. $01-SO4 if they are the first file on the disk, so let's keep ProDOS there. May [[2_] Copy the file(s) to be protected to this disk. Get a map of the disk, using COPY 7 Plus, in order to verify that the next file(s) will begin using tracks $@5-$22. These will be the tracks we'll protect with EDD. [2] Write protect this disk. EDD likes to have the “‘original’’ protected. [([4] Boot up EDD 4.N, and place the disk you just write-protected into drive #2, and a blank into drive #1. ((5_] Copy tracks $00 - O4 with NORMAL settings. Note that EDD doesn’t use hexadecimal in its track numbering! The following is a reprise of my COMPUTIST #51 approach: There is a trick to entering values into these EDD routines: you must use the spacebar between MOST entries; only use the following the value entered into the #00 instruction and the final value. I know that this sounds unclear, but try it. Remember, in COMPUTIST the required (SPACE) is indicated by “and (aeronn) must be pressed after the command line. ([6_] From the main menu of EDD, select the “‘change parameters’’ option [27] From the next menu, select the “reprogram prewrite’’ option. (BJ Enter the following: 00=20 20° 31° D5* AA* 96° 36° D4* AA* 96° 21°10 a to quit Now go back to the main menu of EDD and copy the rest of the tracks ($05-34). EDD should produce tracks that have D4 AA 96 for headers, which is what we want. [2] Try to boot the disk. It should boot, but you should also get an error message when ProDOS tries to read the first ‘“SYSTEM”’ file. You did remember that ProDOS requires a “SYSTEM” file, didn’t you? Scan the disk for 10 FB C9 05 and change the C905 to 29 60. T use the sector editor of COPY II Plus to do this, but many other programs will do. Remember to write the changes back to the disk! For many versions of ProDOS, the bytes will be located in track $04, sector $OA, starting around address $A8 (there may be some variation depending on which of the incarnations of ProDOS you're using). You should now have a disk with normal catalog and ProDOS tracks, but which has a degree of copy protection. I'd like to pose a challenge/question to others: just how similar ARE these routines that DOS 3.3 and ProDOS seem to share? Are there any other tricks that can be easily applied to both? Softkey for... Random House Media Volume 1 and Volume 2 This software includes most packages sold

Showing the first 100000 of 251390 characters.

mp.ls