ࡱ> c &(+,.0134678:<>?ACDFGHJLNOPRSTV]hjmnoqrtuxyz|}Root Entry`)R WordDocument01Table tempPartempBLIP  !"#$%&'()*+,-./ [(`(NormalmH o(<A@<Default Paragraph FontGa EPk"X',_29#@EKiNQX\d]jo w}f(<pFIQM!Bc)Jkbystep procedure. N In this section you will find a stepbystep procedure instructing you on how to boot up the SCAN IT! program and how to make a backup of other progra m s. Also found m this section are a few conventions used in this manual as well as in the SCANIT! program itself. BOOTING SCANIT! The following bootup procedure is only for using the SCANIT! program. This procedure differs from the normal suggested booting procedures, so please make note of any differences. Now follow the 56:DEGXY\pqZ$ 0*$ 0*,$ 0*,$ 0* $ # $$uDEHYpq(:t~tjt`ttCJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(5>*mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH %brief instructions on how to use SCANIT! to make a backup of atypical program. y =y 1. Take all cartridges out A the computer. 2. Turn off all computer equipment. hr ;' 3. If you have the Happy version of SCANIT!: ~G Turn o n the disk drive, then insert the SCANIT! program . If you have the CHIP version of SCANIT! : insert the SCANIT! program in the disk drive, then t turn the drive on. This is done to allow the CHIP to "boot" in sector $2D0 which contains a small program that will'9x-QS$  0* $ - $$ 0* "open" your disk drive's CHIP so that it will accept all the new disk commands thatVe give the disk drive its extended capabilities. NOTE: Do NOT boot any other disk in this manner! 4. Turn o n the computer and T V (or monitor). If you plan I~ on using the printer when using the EDITOR, you may turn the printer and interface on at any time. 5. When the title page appears, remove the SCAN IT! diskette and put it away. 3 GETTING STARTED NORMAL BACKUP PROCEDURE 1. Follow the boot procedure given above. 2. When the ARCHIVER page is displayed (screen changes to a brownish yellow) then press C (for Copy). 3. The ARCHIVER will respond by asking you to insert source diskette. Now insert the program you wish to backup and then press the START button. 4. After a short time, you will be requested to insert destination diskette. At this time, you should insert the _ diskette you wish to put the copy on. When you have done i this, press the START button. Note: The destination diskette does noHKL"7c$ $ $ -$ $ 0*$ z0*t have to be previously formatted. The program formats each track as ii is written if the F + parameter is selected. 5. If the ARCHIVER asks you to, insert the source diskette again and repeat steps 3 and 4. 6. Depending on the length of the program, fro m 1 to 3 passes may be required on a 48K computer. The larger the computer memory is, the fewer the number of passes required. The ARCHIVER will indicate on the screen when the copy is done. 7. When the copy process is completed, put the original diskette away in a safe place and use only the backup copy. If you get a Read Format Error, most likely you did not follow steps 3 of the boot procedure carefully. Otherwise the command option parameters may require some changes to enable you to custom modify the diskette copying technique (referto THE ARCHIVER section in this manual). 4 E 1` GETTING STARTED SOME CONVENTIONS USED 1. All numbers used in SCANIT! are Hexadecimal al (HEX) which is a base 16 numbering system. If you do not understand hexadecimalvw z{uv5 6 L!M!$ DV  $ D $$$ qV  numbering, then refer to the table in the i Appendix. In this manual aIIH EX numbers are preceded by a $ symbol. 2. Pressing the ESC key will bring you back to the command mode of the program you are currently in. The only exception is during actual disk I/ O, (R/ W) in which case holding down the OPTION button will stop the disk 1/0 at the end of the track read/write operation which then allows you to abort the operation by pressing the ESC key or to press START to continue the 1/0 operation. 3. Whenever disk 1/0 needs to be performed or continued you must press the START BUTTON TO PROCEED. 4. At anytime du ring the use of the EDITOR program (except during disk I/O) a C T R LP will create a printout of what is currently on the screen on your printer. 5. The CTRL and SHIFT keys need never be used except for printing as described in 4. However you may press CTRL or SHIFT if you like, but these key functions are disregarded c; and unnecessary. 6. Whenever any writing is to be performed, the border col isfr bidden under Federal copyrightlaws. Due to  pirating of earlier versions of this program, w e now copy _ protect the Happy versions of SCANM. It will not backup itself. However, for your protection, we have provided you with a backup copy. Please put it aside for safe keeping. If your master disk should become damaged, you may obtain another copy by sending the disk along with $10.00 to B& C x C o m p utervisio ns. WARRANTY If upon purchase the buyer finds that the CHIP or SCANIT! program pY lbjbjWW 0==X]6v    CONTENTS I INTRODUCTION REQUIREMENTS 1 PURPOSE. 1 USER RIGHTS WARRANTY GETTING STARTED GENERAL INFORMATION 3 BOOTING SCANIT! . 3 NORMAL BACKUP PROCEDURES . SOME CONVENTIONS USED _ SCREEN CONVENTIONS ON THE SURFACE 7 THE OPTION LINE 7 THE STATUS LINE 12 THE COMMAND LINE ........... 14 SECTOR DISPLAY FORMAT . 14 THE ARCHIVER AN OVERVIEW 17 NUMBER OF COPIES 17 AUTOMATIC COPY 18 ENTER EDITOR 18 THE EDITOR AN OVERVIEW . 19 READING TRACKS 20 WRITING TRACKS 20 ENTER EDITOR MODE :::: 20 DISASSEMBLER 22 MOVEMENT BETWEEN SECTORS 22 CLEAR TRACK FROM BUFFER 22 CLEAR SECTOR FROM BUFFER 23 TRANSFERRING SECTORS 23 CREATING BAD SECTORS 23 CUSTOM FORMATTER 24 ADDRESS CHANGING . 26 INSERTING CUSTOM FORMAT 27 MOVING TRACKS 27 TRACK MAPPER . 27 ENTER THE ARCHIVER 28 CONTENTS THE CHIP OPENING/CLOSING THE CHIP 29 LOCKING THE CHIP 29 TWO DRIVE COPYING 29 THE BOOT SECTOR 30 MOTOR OFF DELAY 30 LOCKING FORMAT/WRITE/OPEN 30 DISK FORMATTING THEORY AN OVERVIEW . 31 DISKETTE STRUCTURE 31 THE BASICS OF A SECTOR.............. . 32 TRACK LAYOUT/FORMAT . 33 THE READ COMMAND 33 THE WRITE COMMAND . 34 LOGIC SEEKING READ/WRITE COMMANDS 34 READ FORMAT COMMANDS 34 TO SPEED RESTRICTIONS 35 DOUBLE SECTORS 36 BAD SECTORS . 37 CRC ERROR SECTORS 37 DATA TYPE FLAGS 37 STATUS 38 USEFUL HINTS CYCLIC FORMATS . 41 20 OR MORE SECTORS . 41 GARBAGE TRACKS 42 1 APPENDIX f HEX NUMBER CONVERSIONS 43 ARCHIVER COMMAND SUMMARY 44 EDITOR COMMAND SUMMARY . 45 CHANGING DRIVE MOTOR SHUTDOWN DELAY 47 ERROR MESSAGES 48 1 h. INTRODUCTION REQUIREMENTS To use SCAN IT!, you must have either a disk drive with the SCANIT! CHIP installed, or a disk drive with a Happy modification. The CHIP program is automatically downloaded to the Happy to emulate the SCANIT! CHIP. The SCANIT! CHIP program will greatly expand the operating capabilities of the disk drive. Special CHIP commands allow SCANIT! to get at a wealth of information that never before has been possible. Sophisticated CHIP read/write/format/map ping commands allow SCANIT! to duplicate almost any diskette, or create custom formats. In addition, SCANIT! allows the user easy access to the powerful capabilities designed into the CHIP program. The SCANIT! CHIP is a permanent replacement for the ROM currently in your disk drive. The installation is straight e forward and not very difficult, however, it does require three circuit board trace cuts and three jumpers. Therefore, if you have had little or no experience with a soldering iron, we STRONGLY urge that you either have a service center install it or get help from someone with the required experience. f PURPOSE . It is NOT our intention to promote software piracy, in fact, w e are strongly against this, and disregarding copyrights is i STRICTLY AGAINST FEDRAL COPYRIGHT LAWS! Pirating tends to raise prices and discourage software companies, so a PLEASE respect the software companies rights. The reason for the production and sale of this product to the end user is for his/her own protection. The backing up of original softwareis necessary because diskettes do fail whether due to physical damage,constantuse,or magnetic j fields nearby (Le. your T V or monitor). Therefore, with the proper use of this product, you can be spared the grief of having your only copy of a program suddenly crash. 8 INTRODUCTION USER RIGHTS The copying and distribution of the SCANIT! program or the CHIProve defective, B & C will exchange is at no charge. If, at anytime after 30 days from date of purchase, The SCANIT! program becomes defective, B&C will EXCHANGE it for a charge of $10. If the CHIP becomes defective, B & C will EXCHANGE it for a charge of $30. There are no other warranties either expressed or implied. I GETTING STARTED a GENERAL INFORMATION IF the CHIP or the Happy upgrade is not yet installed in the disk v drive, please go to the appropriate installation manual and follow the step    ,9FQbz:;W$ R&$ R&$ R& $ R&WXefw+,Jg$ R&$ aR&$ R&$ R& $ R&-.FGQ[z $ ZQ[$ R&$ R&$ R&4`{  . E Z f t  " $ vQ[$ [$ ZQ[" L ` a c d g h u v 5 a  @ w " \ $ $ $ $ $$ vQ[ +7RT'.FGRV\Z]ux ` a d h u v U^ճճճ}qCJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH ,\ T\?{.k$ a$ $$ $5tu&]5 $$  "#$ !"# $ #M!O!P!U!V!f!g!}!~!+","g"h"t"u"##\$]$%%%$ 8# $ $ $ $ 8# $ V or will change to red. Whenever any reading isto be performed, the border color will change to white. 5 I SCREEN CONVENTIONS This section deals with the various command lines and prompts used by the SCANIT! program. You should read this and each of the remaining sectio ns to become aware of all the many capabilities provided by this program. ON THE SURFACE Figure 1 below shows the screen for the ARCHIVER. however, the EDITOR, the FORMATTER, MAPPER,and the DISA S S E M BL E R screens all have similart".O!P!R!\!_!g!}!~!/#6###C$I$ %%%%m%r%u%{%%%h&j&k&n&p&ש|CJOJQJo(5>*mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(>*mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH . Option, Status, and ' Command lines. The Option and Status lines provide 16 unique parameters for disk sector/track format changing. The following paragraphs explain how to use each parameter: OPTION THE ARCHIVER U1.9 LIME ) S:1 D:1 R:e 27 Ut L+ C+ AG+ F+ S+ B+ STATUS 4 TR" 27 SE:11 FM:2CF u60 C0:01 MU" B8 LIME 21 3 4 5 6 7 X X X X X X X X COMMAND LINE ~ > READING < FIGURE 1  SCREEN PROGRAM LILIES THE OPTION LINE The Option line conta%%%%g&h&j&k&m&n&&&^'_'n'o'((((($ ib  $  $ $ b  $ 8# $$(()l)m)v)w)y)z)|)})))))))))))$ Yb $ P Tb  $ b $ _ b $ b ins parameters used by both the ARCHIVER and the EDITOR. All of these parameters can be changed at any time when you are in the command mode. To modify these parameters, type P . You will see a cursor on the Option line. To move the cursor right and left, press the < or > key. Pressing RETURN selects that parameter to be changed. After the parameter has been changed, the cursor will 7 SCREEN CONVENTIONS if b e o n the Option line ready to select another parameter to change. Pressing the ESC key returns control backtothe command level. A description of each parameter follows: Source Drive S:x This is the drive number from which all reading is done. Pressing RETURN when o n this parameter will increment the drive number and wrap around at four (4) to one (1). NOTE: This drive must b e opened prior to reading from it, otherwise an error will occur. This drive must also be compatible with the version of SCANIT! you are using. Destination Drive D:x This is the drive number to which all writing is donp&&&_'n'o'(((l)m)s)w))))))))))!+(++++++++M,_,`,,,-߽ߓuh^uCJOJQJo(mH CJOJQJo(5>*mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJOJQJo(5mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH $e. Selecting this drivels done in the same manner as selecting the source drive. Track Range R:xx,yy This is the range of tracks that will be copied using the ARCHIVER (or tracks read/written/form atted when using the EDITOR). The xx is the start track and the y y is the end track. When pressing RETURN with the cursor positioned on this parameter a prompt will appear on the command line requesting a new range of tracks. There are three allowable syntaxes: RETURN : same as typing 0 0,2 7 (tracks 0 0 to 2)))))++++++++L,M,_,`,,,----Q.R.g. $ "$ $ $ b  7 HEX). x, y : set start to x and end track to y. x : set both start and end tracks to x. ESC will exit this option without modifying the range of tracks. RETURN enters the range you entered and updates the option line accordingly. If you make an illegal entry a track range error occurs. SCREEN CONVENTIONS VerifyV+ This is the write with verify flag. Pressing a RETURN simply toggles this parameter: + : verify on verify off If the verify is on, a verification will be done on the track after it is written. Because the verify pass is separate from the write pass, it is faster than the standard DOS write with verify. Logic Seeking Read/Write L+ This is the read/write logic seek ing flag. Pressing RETURN simply toggles this parameter: + : Logic seeking on  : Logic seeking off When reading or writing multiple sectors with the same number (i.e. two sectors $09) you must be able to read or write the correct sector, therefore,th ere are logic seeking read/write commands in the CHIP that automaticalg.h.// 0 050^0_000'1(1;1<1F1G111111$  $  $ "   "$ $ly synchronize to the format on the track and read/write the correct sector. Since synchronizing to a sack takes a little more than one revolution, these commands are slower than the standard read/write commands. The only time a you would want to change this to a  is when the format cannot be synchronized. For more information o n this, refer to the paragraph entitled CYCLIC FORMATS in the USEFUL HINTS section of this manual. If the logic seeking is off, it is suggested that you turn compaction off. The ARCHIVER and EDITOR programs only use the logic seeking commands (if enabled) when a nonunique numbered sector is to be read or written. i 9 SCREEN CONVENTIONS Compaction  Q+ This is the compaction flag. Simply pressing RETURN toggles this parameter: + compaction on compaction off If you have compaction on when using the ARCHIVER, the sector will neither be read nor wHttenifitisfilled by a single value (Le. $ 0 0 etc.). If you are in the L mode a you should have co m paction off. Sectors fi1{2|22222 3!3"36666666666777"7$ [$ $ $ $ $ $lled with the values $01 $08 will not be compacted as these are format control bytes. These "fill" bytes are placed in the sector automatically when the track is formatted. The C +/ parameter has the same function in the EDITOR as it does in the ARCHIVER, however, in the EDITOR the results are more readily apparent_ `a Compaction only works o n sectors which are not bad and that have a single byte filling the entire sector. Also, sectors filled with the values of $01 $08 will not be compacted. If the sector was compacted, the EDITOR will X NOT display the data in the sector. The EDITOR will only display sectors it actually read. The CHIP program actually reads the data and reports back to the EDITOR  that the sector is to be compacted, thus saving the time it would take to read the data into the computer. Format Read Type A6+ This is the type of track reading that SCANIT! will use to determine the format on the tracks. Either 4 or 6 bytes of information about the sector can be selected (A4 or A6). The + or  is the toggle to turn o n (+) or off () the format verification logic. Normally the A6+ will be desired. To change this parameter, simply press RETURN with the control cursor positioned on the A6. The meaning of each of the codes is as follows: 6 : Six bytes are returned to the program for each sector, thus SCANIT! will be able to rotate the sequence so that the endoftrack gaps will b e identical (A 6 + only). This is mainly cosmetic "7#7X7778C88889L99996:r:::;P;g;;;!<^<<<$ o | $but does have significance on fast SCREEN CONVENTIONS formats. Because 6 bytes are returned, a maximum of 21 sectors per track can be fetched. If there are more than 21 sectors, then a 4 mode should be used. 4 : Four bytes are returned to the program for each sector, thus some information about each sector is missing. This is intended for 2 2 to 24 sector formats. + : The track is cycled through twice co m paring the first sector sequence to what the CHIP finds the second time. This is an internal func----R.g.h.,/3///_0c000'1(1<1F1G1|222226666677L9P96:9:Q;i;<<#>$>7>8>>ʾʾʞʞʞ|rCJOJQJo(mH CJOJQJo(5mH CJOJQJo(5mH CJ"OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5>*mH CJOJQJo(mH ,tion of the CHIP program.  : This mode is slightly faster than the + mode, however, no verify is done on reading the format. This is generally used for speed and also if the track is badly garbled. Unformatted tracks can return strange sector headers on some diskettes. Format Flaq F+ This is the format before write flag. Normally you will want a F+ mode. Simply pressing RETURN will toggle this flag when the cursor is positioned on the F+. + : Format track before doing the write pass.  : Do not form<=(=_====#>$>7>8>>>>>s?t?@@AA!A"A $ S$ $ $ %$ o | $at. This option is selected only if .. you already have an identical form at on the track or if you are simply trying to put sectors o n the destination track. If there are multiple i sectors with the same number and the track formats are not identical, the logic seeking read/write commands will not work correctly. Also, the verify may not work correctly if it tries to verify wrong sectors. This flag also allows you to convert slow formats by first form atin g the destination track with a fast format and then write out th a sectors that were read from a slow formatted diskette. 11 SCREEN CONVENTIONS Screen Code Conversion S+ This is used in the EDITOR only. It refers to the conversion of characters displayed o n the normal EDITOR page to the right of the sector display. A RETURN to ggles this parameter. + : Convert data to ATA S CII characters.  : No conversion. Display data as Atari screen codes. Bad Sector (CRC)nB+ This flag refers to the method of writing CRC bad sectors. Pressing RET"AAAAA'B(BUBBBBBBCACBCNDODRDSDfD $ $ % $ %$ E6$% $$ $URN toggles flag o n (+) or off (). This flag should always be set to + when in the ARCHIVER. + : Write a full bad CRC sector.  : Only write a partial sector (CRC bad). The number of bytes written depends on the last byte of the sector data. That byte refers to the number of bytes that will b e written. This allowsfor the capability of increasing the number of sectors on atrackto above 20 (i.e. two half sectors take about the same amount of room as a full sector). THE STATUS LINE The status line is thefDgDDD9E:EeEfEEEEEEEE_F`FFFGG $  $  $ $ $ $  third line o n the screen. It will display the current track,sector,composite sector number, the amount of free buffer memory, current copy number and the number of copies to make (in the ARCHIVER or the sector data address in ; the EDITOR). The only directly adjustable parameters are the t C O:xx which refers to the number of copies to make and the j L OC:xxxx which is the sector start address. The status line parameters are as follows: i 12 SCREEN CONVENTIONS THE STATUS LINE (cont'd) T R:xx This is the current track number the program is processing. (Tracks range from $00  $27). S E:xx This is the current sector number the program is processing. (Sectors range from $01  $12, a  means that the sector number is invalid). F M:xxxx This is the composite sector number used by Atari DOS. These numbers are arrived at by the formula F M = T R'$12 + S E. Where T R is the track number and S E is the sector number. The F M ranges from $001 to $2D0. A  indicates that the sector number is invalGG0HlHHH'IfIIIIIIIIIII"JNJ]J^J$ &  $  $ $ Zid. # x x x x This is the current free memory for storage of the sector data and track information. When data is being read into the buffers, the memory counter will decrement $80 for each sector read and also for each track read. NOTE: If compaction is on, compacted sectors do not take up memory space, however, there is a $80 byte overhead to store sector layouts and various other inform ation o n each tack. O n a 4 8 K machine this field will read $9900 (about 38K). N U:xx This is the number of the copy being made. A $OO indicates it is on are ad pass. A $01 to $FF is the number of the current copy being written. C O:xx This is the number of copiesto be made per each read pass. This is defaultedto one ($01) whenever the ARCHIVER program mode is entered. This value can range from $ 01 to $FF. L O C:xxxx This parameter is used with the EDITOR and is the address location in which all disassembly or displays of sector data will start. This is for purely cosmetic reasons and does not affect the data. 13 ' w~ SCREEN CONVENTIONS THE COMMAND LINE The command line is at th a bottom of the display. This line will contain all necessary screen prompts, input commands and error messages. When using one key command entries no RETURN Is necessary to enable thatcommand. Simply press the desired key for the desired command input. However, on numeric input pressing RETURN is necessary to enter the numeric information. Messing the space bar will erase an error message or copy done/abort message immediately. Other wi^JJJKKKLLLLLLMMsNtN*O+OOOPP $  $$ ^ $ $ 5se the message will disappear after approximately 4 seconds. i YSECTOR DISPLAY FORMAT The sector layout displayed on the screen is somewhat unique. i r SCREEN CONVENTIONS Figure 2  Track/Sector Display Format These hack and sector numbers are not used internally by the Atari computer Instead, the operating system refers to each sector as a number from $001 $2D0(1 720 decimal). The computer's disk operating syste m (or DOS) will access the disk drive using this c o m p osite sector number Then, PPPPP+P,PQQRR@RARXRYRRRRRRRRRR $ Q)$ i0*$ $ $  +within the disk drive, the co m posite sector number is broken down into a track and sectornumber using the relationship: composite = (track) ' ($12) + (sector) Thus, the first sector in figure 2 ($12) would b e called $ 2 4 (3 6 in decimal) within the computer. N otiic a in the figure that there are two sectors with the number $09. If the computer were to read sector $213 (composite). It would get one of the two possible sectors. This is called a 'double sector'. 15 THE ARCHIVER AN OVERVIEW The ARCHI>AAA!A"ARDSD]DgDDDEEEGG%I'IIIIIIIPPPP+P,PARXRYRRRRRRUUƼƼƼ~~tjCJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(5>*mH CJOJQJo(mH (VER is an automatic copier designed to copy your protected (or unprotected) software for backup purposes. The A R C HIV E R is easy to use and will backup most protected software. In general, diskettes can be copied by simply typing a C . For some special disk formats it may be desireable to change several of the ARCHIVER operating parameters. The program will alto w the making of multiple copies per each read pass. O n a 48K system a disk will take up to 3 passes to copy. However, most diskettes can be cooed in one or two passes depending on the amount of data o n the diskette. A s a safety feature, both the ARCHIVER and EDITOR require that you press the START button before any disk reading or writing will take place. If you wish to abort thereading or writing during disk 1/0, press the OPTION button and hold it down until the track is completely read or written. To continue, press the START button and to exit the operation press the ESC key. The ESC key will always return control to the previous command mode while disk 1/0 is nonactive. NUMBER OF COPIES This command will allow you to select the number of copies that will be made on each read pass. To enter the number of copies you wish to make, type an N . You will be prompted to enter the number of copies to make. Type the number in HEX followed by a RETURN . The number selected will be reflected after the C O . When making copies on a single drive, screen prompts will signal when to insert the source diskette and when to insert the destination diskettRRRRzT{TTTUUUUUUUUVVKXLXYY#Z$Z $ * $ Q) $$ $ Q)e. O n a two drive system (both with a CHIP), the first copy will be made automatically and subsequent copies will be prompted. The number after the N U indicates which copy is currently being processed. A $00 means you are on the read pass. 17 THE ARCHIVER AUTOMATIC COPY The command to start making copies is initiated by pressing the C key. When activated, screen prompts will be displayed for inserting the source (original) and destination (backup copy diskettes throughout the process. Remember, to press STAR4 to acknowledge to the prompt that you are ready. The copy command C makes the number of copies specified by the C O:x x field and does its functions according to the parameters o n the Option line (if applicable). The memory buffer containing the previously read data will be cleared prior to each read pass. If you have problems copying, check the following: 1. Change to a different destination diskette. 2. A6+ to A 6. 3. A6, L, and C to . 4. If the diskette has 20 or more sectors on attack, read each sector/track using the EDITOR and write it onto the destin atio n dis kette. 5. Be sure you have current version hardware and that the disk drive is running at the right speed. ENTER EDITOR To enter the EDITOR, type E . Alt data currently in the memory buffers will transfer. 18 THE EDITOR The EDITOR will allow you to actually edit the sector data and do many manipulations with it. Custom formatting can also be done, thus enabling you to make protection schemes or modify protection schemes as$Z5Z6Z\\\\]]]]>_?_r_s_______W`X` $  $ $ ~$ $ $ * desired. Because formats can now have over 19 sectors, the EDITOR is necessary in order to duplicate these sophisticatedformats. Formats greater than 19 sectors have never been used to protect diskettes designed for use on the Atari computers before the introduction of the CHIP. THE EDITOR V1.4S:l b:i 8:43,47 V+ L+ C+ A6+ F+ S+ g+TR:45 SE:48 FM:462 u7E44 LOC:4404M Ou 8 'o, 101 n" 5 7 4 4 7 4 ~ ~ 7 4 7 ~ 7 44000:DADADAORDA ORDADAZZ772ZZZ000$:ORDAOX`````!a"a%a&a1a2acccc"c*c/c0c$$$$$ $ $ " $ $ ~ $ UUUUUXX!Y(YYYYYYY$Z5Z6ZZZ3[:[\\\\]]]^ ^```%a&a2ac0c1cɽɽɽɳɳɳɽɳɑɅ{qgCJOJQJo(mH CJOJ QJ o(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH '0c1c:cIcMcRc[c\cccwccYC$$r Hp$$$$Y$$֞x p ccccccccccc$$$-$$FxH cccccccccc$$$o$$ xm Hp ccccccccccc$Y$$֞xm Hp RORDA DAORORZZZ2ZZZZ0010:ORDADAOROR OROROR2222ZZZZ0018:ORORDAOROR ORORORZZZZ77ZZ00c0:ORDADADAOR ORDAORZ772Z7ZZ008:ORDAORDAOR ORGAOR222ZZZZZ0030:ORDADRDAOR ORGAORZ2ZZZZZZ0038:DADADAORDA DADA00ZZZZZZZ_0040:0D00000000 0006000048:0D0D0D0D00 0000000050500000D000D 00000D0058:0000000D00 00000DOGS02GO0000OD00 OD0000006s:myODe000ov 0000OD0070:00ODOD00OD 0000OD0078:eDOD00OD00 Occcccccccccccccd$$$$o$$ xm Hpdd ddddd!d$d'd*d-d3d6d9dBdo$$ xm Hp$$$$BdCdIdLdOdRdUd[d^dadjdkdqdtdwdzd$$$$o$$ xm Hpzd}dddddddddddddddo$$ xm Hp$$$$dddddddddddddddd$$$$o$$ xm Hpdddde e eeeeee"e%e(e)e$o$$ xm Hp$$$$)e*e0e3e6e9e ENTER COMMAND -->1 Figure 3  The Editor Screen AN OVERVIEW The EDITOR is designed to be easy to use yet it doesn't lack in sophistication. One key commands allow you to browse through the many parts of the EDITOR. Unlike the ARCHIVER, only one track's sector list will be displayed at a time. The EDITOR allows you to move between sectors by simply pressing the left and right arrow keys on the keyboard. You will notice the dual purpose of the track format lines as both a sector seleeeeeeeff f f f f ff~~~$$$$$$$o$$ xm Hpection aid and as a sector layout display. This will be discussed in more detail later. The normal EDITOR display will be of the actual sector data of the sector that the cursor is on (on the sector 19 THE EDITOR layout lines). If there is no track in memory, the sector layout lines will b e blank. The main sector d ata display will contain data only if there is at least one track in the memory buffer and the sector that the cursor is on contains data. READING TRACKS To read a range of tracks first be 1cRc[c\ccccccccccccccccddBdCdjdkddddddd e e)e*eIeJeiejeeeeeeeeeeeee f f f"f'f(f)f+fJfVfWf׹뭣CJOJQJo(mH CJOJQJo(6mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJ QJ o(mH CJ&OJQJo(mH CJOJQJo(mH CJOJQJo(mH =ff"f'f(f)fIfJfVfWfhhhhhh $   $ "$ $N$$ֈxm H$$sure thatthe R:xx,yy parameter is correct, then type an R followed by pressing the START button to start the read process. As a safety feature, f a track is currently in memory that was specified in a read operation, the reading of that particular track will not occur. That track will be skipped and the read process will continue with the next track. WRITING TRACKS To write a range of tracks first set the track range (as is the read). Press W along with START to initiate the writing process. Only the tracks and sectors actually in memory within the range selected will be written. If formatting is to occur before the write, the fill bytes will be written during the format op the compacted sectors. If a sector was deleted that sector will not be written. If formatting is on, then zeros will fill that sector. ENTER EDITOR MODE Prior to entering the Edit Mode, the sector data must first b e displayed. If so, press E to enter the Edit Mode. Otherwise, read in the track you want to edit, then press E . The cursor appears within the sector data and you may start editing the code. The commands available for use while in the edit more are as follows: THE EDITOR ENTER EDIT MODE (CONT'D) Move cursor one byte toward the beginning of the buffer (left). Move cursor one byte toward the end of the buffer (right). I Move the cursor eight bytes toward the beginning of the buffer (one line up). Move cursor eight bytes toward the end of the buffer (down one line). RETURN : Move the cursor to the beginning of the next dhiiiiakbkqkrk4m5mGmHmnnnnnnnn/o0oYoZo$ $ $ R $   $ata line. DELETE : Delete the byte the cursor is on. All data beyond the cursor moves up one byte and a zero is placed in the last byte of the sector. INSERT : Insert a byte at the cursor position. All data moves down one byte from the data that the cursor was on. The last byte of the buffer is lost. i CLEAR : Fill the entire buffer with the character currently under the cursor. H : Move the cursor to the first byte in the buffer. xx : Typing HEX numbers changes the data to exactly what you see. The cursor will automatically move to the next byte when a byte has been entered. All spaces are automatically skipped between each byte. ESC : Exit the edit mode. All changes will be saved to a memory buffer (not the disk) and are permanent unless changed later. This will also update the characters on the right to their new value (This is not done automatically during the Edit Mode). The address at the left is arbitrary and is used strictly for reference. The address can be changed by the IL comZooooo p ppp0q1q3q4qqqqqqqr@rhr &R 5R $ $ $ $ Rmand. e 21 THE EDITOR DISASSEMBLER The EDITOR has a built in dis asse m bier. First enter the Edit mode and then move the edit cursor to the byte at which you wish to begin the disassembly. Exit the Edit mode (press ESC) and then press D to begin the disassembly. The disassembled listing will instantly be displayed on the screen. To scroll up or down the listing, use the up or down arrows on the keyboard. The disassembly will not scroll above the byte that the edit cursor was on and will not proceed beyond the end of the sector. Scrolling will occur in increments of eight lines. CTRL P will dump the screen to a printer if desired. MOVEMENT BETWEEN SECTORS t When in the command mode the cursor movement keys allow you to move from one sector to the next. The right and left arrow keys will move the sector cursor right and left. This allows you to display any sector in that track. The u p and r down arrow keys moves the Edit display screen between i tracks. If the track is in memory that track will b e dhrrrsstt t tttt't(tvvvvvw$  $ $ R $ $ $ &RWfhhhhiii jjSjYjbkqkrkkk5mGmHmnnnnoo pppp4qAqrrsst tttt't(tttOvVvvvwɿճճɿճɿɿCJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH 1isplayed, otherwise, that track will be skipped and the next track present will be displayed. If the cursor happens to rest upon a sector which is not in memory, the sector data window will be blank. Sectors which have an x under them cannot be viewed. This is because these sectors are inaccessable to a normal disk dirve. As you move from sector to sector, the track, sector, and composite numbers are automatically updated. CLEAR TRACK FROM BUFFER The CLEAR key will delete a n entire track from memory. The next track will then b e displayed. The memory indicator will automatically b e incremented reflecting the deletion. If you wish to delete all tracks from memory, sim ply holding down the CLEAR key will do the job. Pressing RESET also clears tracks from memory, but it sets all parameters to their default values. THE EDITOR CLEAR SECTOR FROM BUFFER The DELETE key will delete the sector currently displayed. If n o sector is being displayed, a beep will sound to indicate that there is nothing to delete. If a write occurs, that sector's data will not be written, however, the sector header will be put o n the diskette (if formatting is on). Deleting a sector simply erases the data and does not modify the track layout. TRANSFERRING SECTORS Typing an H will copy the sector being displayed into a hold buffer. Pressing the INSERT key will copy the buffer to the sector the cursor is currently on. If a sector is being displayed, the new data will replace the old. If the sector was originally empty, the new data wwQwww xCxxxx1ykyyyyyy;{<{G{H{a{b{{{ $ 6% $ $ $$ ill b e inserted. NOTE: All disk I/O use the same buffer so the data held will be lost. CREATING BAD SECTORS When a sector is being displayed you can cause that sector to be bad by pressing the B . When you do this, only a flag is changed so you must write the entire track in order for the sectors to be written as bad. If there is no data in the sector, the sector will not be written. Thus that sector will not be bad on the track. ONLY SECTORS ACTUALLY WRITTEN WILL B E BAD (if they were selected to be bad). There are seven types of bad sectors possible using this method (see Figure 4). There are three flags that can flag a bad sector. Any combination of these three flags can be set by pressing B . The symbol under the sector number will cycte through all combinations of bad sectors plus one good sector. The reason for having several types of bad sectors is that the three flags can each be read and examined on an unmodified disk drive. 23 THE EDITOR SYMBOLBIT 6BIT 5BIT 3BIT 3: CRCrCLRSETCLRerror{||||X~Y~n~o~ŀƀȁρՁہ$$$$ $ U# $ 6%$ $ bit.1SETCLRCLRTSETSETGLRBIT 5: Data type flagGLRGLRSETgi_CLRSETSETSETCLRSETBIT 6: Data type flagSETSETSETn2.blankGLRGLR GL R I FIGURE 4  Types of Bad Sector symbols 7 When you press the B key, the symbols cycle through in the order as shown above. Only the last entry is a good E sector. NOTE: These bit numbers refer to the status byte returned r when executing a STATUS COMMAND, not the 1/0 status returned after the read. CUSTOM FORMA TTER The Custom Form !%1;$$$$$$$C$$rU :;<=AEIMNOSW[\]^bfjv$$$$$C$$rU :Ԃׂ$ U# $ U#C$$rU :$$$wwyyyyyzzzz;{<{H{a{b{f{m{|||A}H}Y~n~o~ȁ ;<MN\]Ղ؂HCJOJQJo(mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJ$OJQJo(mH 8atter allows you to create your own sector layouts and format a range of tracks using your own layout. You can create any sequence of sector numbers you desire. The only restriction is that only sectors with numbers between land 18 can be read. To enter the Formatter type F . The Form ater has its own screen layout which allows you to set the formatting parameters (except for the range) in which you would like to format. Thus, before entering the formatter, you should select the range of tracks to format from the EDITOR. THE EDITOR FIGURE 5  FORMATTER TRACK LAYOUT i The S E row contains the sector numbers which will be placed in the headers of the track. The LN row contains the number of bytes that will be in the sector data and the FL row contains the data fill byte that will go into that particular sector Fill bytes of 1 to 8 must not be used as these bytes have special significancetothe disk drive F DC circuit during formatting. Sector $03, for example, will only contain $40 bytes (64 decimal) and iׂ؂JRSă݃ރ@AC $ ' $ $ U#$ U#$ U#f read, will return a bad status. Sector $05 will contain the normal number of bytes, $80 (128 x decimal) but will be filled with all $1A. There are two tables of twelve sectors each in the formatter screen layout page. They should be considered sequential (there wasn't enough room to fit 2 4 sectors o n one row). The table below the sector tables contains the gap length bytes. Because a track is only so long, a limited number of bytes can be placed on a track. After the # is the current number of bytes the formatter has calculated your form at will use on the track. This number must remain between $B C O and $ C B O for your format to be reliable. 25 THE EDITOR All editing changes in the formatter will remain intact until you reboot the SCANIT! diskette. N o defaults are stored back in this table. Therefore, you can go back and forth between the edit page and the format page without loss of the new format. The commands used in the Formatter are: ., : Move cursor left one sector (or gap size value). CDz3o"a܈P}3i $ Q$ &' $ ' r. : Move cursor right one sector (or gap size value). Move cursor u p one parameter field (i.e. FL LN SE gap valuesFL ...). Move cursor down one parameter field. DELETE : Delete sector cursor is on or if the cursor is past the last sector, delete the last sector. INSERT : Insert a sector before the sector that the cursor is on. CLEAR : Clear entire format (start from scratch). xy : Hex entry overwrites what is currently display a d. ESC : Exit; go back to the Edit screen. W : Format thƋNj23;<VW $  $ Q$ &Q$ $e range of tracks( R:x,y) using the format created. ADDRESS CHANGING The address at which the sector begins may be changed by pressing the L key. Answer the prompt by entering the new address in hexadecimal. This address is used only as a reference and does not physically relocate the buffer contents. THE EDITOR INSERTING CUSTOM FORMAT Pressing the I key allows the insertion of custom formats from the Form atterpageinto a range of tracks( Rxx, y ). The old tracks (if any) will be replaced. N O SECTOHJSYރNj̋fr|$WeǍՍ7HI34?@XY덃wmCJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJ0OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH *R ~ ATA WILL TRANSFER. To insert data in the new sectors, you must use the H and INSERT keys. MOVING TRACKS Tracks can be moved (but not duplicated) by pressing the N key. The track currently displayed will be renumbered to a new track number that you enter. The track currently at the destination spot will be deleted and the track you are on will be deleted from its current place and be moved to the new location. TRACK MAPPER Pressing an M is used for entering the M apper page. This function will allow Ǎ 67HI34?@XY̏͏^_mn$ $  $ $ Q$ &Qyou to examine the format of individual tracks. The most significant function of this command is to allow you to determine the gap size between successive sectors. The S E is the sector number that originates from the sector header (referto Figure 6). the T R is the track number as found in the sector header, and the LN is the sector length byte. For more information on these values, read the chapter on Disk Formatting Theory. The TI is the amount of time between that sector and the succeeding sector in in its of 2048 (decimal) microseconds. There are about 100(decim al) units of tim a on a track, so the sum of these numbers should be about 100. The S T is the status of the sector header read. Anything other than a zero means that the sector can not ever be' accessed. Also, any A4 read format mode will not return the TI and S T values. This is because the A4 mode goes for quantity as far as sectors go, while the A 6 mode goes for quality of information per sector. The last sector's TI (time) value will only be correct on an A6+ read format mode. 27 Figure 6  Track Map Layout ENTER THE ARCHIVER To enter the ARCHIVER from the EDITOR you must type an A . CAUTION: all data currently in the data buffers will b e lost as soon as the ARCHIVER command C is used. However, the data will not b e lost if you immediately return to the EDITOR. 28 3 THE CHIP OPENING/CLOSING THE CHIP Normally the CHIP program will already be open if the disk drive was booted correctly. However here may be some cases when you wiʔ˔=pוؕ+,/01MNabS $ $ ( $ $ $ll want to open a drive. This is possible only if you are using the SCANIT! CHIP. To open the CHIP program, type' O' when in the command mode. You will be prompted to enter the open code and optional drive number ''a (the default is 1). The code for the CHIP program is 9999. If you enter a wrong code or just press RETURN, the program will close. Pressing ESC aborts this option. TWO DRIVE COPYING If you want to do a 2 drive copy using SCANIT! and 2 Happy drives, you must first boot drive #1 with S CA NIT!, then physically switch it to drive #2. Next, boot your other drive as drive #1 with SCANIT! t To do a 2 drive copy with a Happy drive and a CHIP drive, you should use the Happy as #1 and the CHIP as #2, then just open the CHIP drive as #2. LOCKING THE CHIP A special boot sector can be created which will lock the CHIP program either open or closed. This is a safeguard to prevent programs from looking for the CHIP program. T O create this sector, first copy track $ 2 7 from the ARCHIVER program diSTWXZ[de~֘טTdegh$ tH($ $ $ H( $ (sk to your special boot disk. Then use the editor and disasse m bier on sector $12 of track $27 (sector 720) and notice the LDA and STA codes. Location $019D is the LOCK FLAG. Storing $80 in this location locks the CHIP program open. Storing an $ FFlocksitclosed. Change the code and write it to disk. You will now have a special boot disk which will force the drive closed or open and the drive will stay that way until it is turned off. r  THE CHIP The following paragraphs deal with several features of the CHIP program which are NOT fully supported in the ARCHIVER and EDITOR programs. THE BOOT SECTOR When the 810 disk drive is turned on with the CHIP modification installed, the head will first align itself o n track 0, then will immediately return to track $ 2 7 and read sector $ 2 D O (if prese nt). The CHIP program checks the last two bytes of the sector and compares them to $4A, $2 5 (or J % in ASCII). If the last two bytes are a $ 4A and $ 2 5, then the program control will be transferred to the secYGX_mn/01NabWX[de~טܘ ǝȝTcǽ}sg]CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH $tor data for execution O n the SCANIT! diskette, the boot sector willstore a $80 in $195 which will open the drive. It also stores a $02 in $191 which will make the drive shut offone second after it was last accessed. A return is then executed which brings the CHIP program back to its warm entry. MOTOR OFF DELAY There are two ways to change the motor turn off delay. The first is to boot a boot sector when you turn on the drive. The other method is to use a built in command which does this automatically. In the Appendix there is a BASIC program which first opens the chip and then adjusts its motor shutdown delay time. LOCKING FORMAT/WRITE/OPEN The CHIP program contains a variable within its memory which allows the opening of the chip and of various write type commands. This feature will probabIe NEVER NEED TO BE USED! However, just in case, location $19 D contains the needed information that will TOTALLY lock the chip from outside mischief. The modifying of $19D would normally be done in the boot sector, ǝȝSTde12+,<=uv$ $ ($ u( $ $ H( which you would need to write. MACHINE LANGUAGE INTERFACE The CHIP program can allow user programs to be transferred to and executed within the data buffer inside of the disk drive. This allows for even more flexibility to deal with unforseen situations, thus the program is truly expandable. 30 DISK FORMATTING THEORY AN OVERVIEW The Atari disk drive is a n intelligent drive which means it is just another computer capable of reading and writing diskettes and relaying the information to and from the main co mp uter. The SCANIT! chip program is just a program much like the Atari OS that adds a wide variety of functions to the disk drive. A description of the commands understood by ROM C and the operation of the SIO is given in the Atari OS manual so it will not be repeated here. A powerful feature of the SCANIT! chip over the standard disk drive ROM C is its a bilit to create custom formats and successfully write (and read~sectors of these formats. To use the ARCHIVER and EDITOR progra ms to their fullest, so m e basics should be understood. In this chapter the very basics will be presented, and gradually, the specifics of the track layout and protection schemes will be dealt with. For the remainder of this (chapter, only the workings of the disk drive and the chip program will be considered. It is assumed that the user is already familiar with the theory of communication between the computer and the disk drive. DISKETTE STRUCTURE A diskette is composed of a thin magnetic disk covered by an outer rigid cover (usually black). The outer cover (or jacket) has an oval open area on both sides exposing the disk surface to the drive read/write head. As the diskette spins about its central hub while inside the drive, the read/write head hovers over the jacket oval opening and reads the disk surface much like a cassette recorder would. The diskette is electronically divided into 4 0 tracks. A track is a ring about the center of the diskette. The disk drive's head can be positioned precisely over any one of the 40 tracks, thus data can be sequentially read in as the disk surface spins underneath the head. The track data magnetic fields are converted into electric pulses which are fed to the F D C (floppy disk controller). The F DC is the interface between the read/write head and the drive's microprocessor. The F D C is responsible for Interpreting and processing commands from the microprocessor. The F D C performs all sector searches and r DISK FORMATTING THEORY is an intermediary o n all sector data transfer !<=(),-DEQRMN`a $ # $ ($ $s between the microprocessor and the physical disk surface. A track is normally divided into 18 sequential sectors of $ 8 0 (128) bytes of data each. The 1050 enhanced density has 27 sequential sectors of 128 bytes. Protection schemes deal with the sector in one form or another so the rest of this chapter will deal explicitly with the sector. THE BASICS OF A SECTOR A sector has two parts to it; the header and the data. Because the track is circular, there is no way to distinguish the beginning of a track fro m the middle, thus, a sector needs to b e able to identify itself to the controller. This is the purpose of the sector header. These sector headers are written during formatting so the sector can be identified upon subsequent reading and writing to and from the sector. Figure 7 shows the typical Atari disk drive sector/track layout format and the following paragraphs describe the various contents that make u p the sectors. INDEX AM GAP 10 TRACK 1NpE LECTOR LECTOR CRC CRC OAP DATA DATA CRC CRC 6A1 3 AM NUMBER Nll1~INER NUMBER NUMBER 1 2 " JW FIELD 1 t 5 TRACK NlM16ER! r ismtill I `78tTE dIC Tula GIC ~RtR1TTEN 1M11TTEN (NOT USED ONfORMAT AFT ON $pot SECTOR NUMBER F STS tECT~ 1*01:Tn W  am oi" su m  una FIGURE 7SECTOR/TRACK FORMAT 32 ~-OOwLETE SECTOII-81iGAP 1FC GAP 2OAP 710 ftELO tOAP " DATA ftELD 1GAP 5GAP 3ID FIELD 2GAP " DATA FIELDOA1 SDATAFIELD a DIaЭѭ<=Z[rs $  $ $   $cde,<=v!<=,-EQRޥ^ѭ[rsL^jrɿɿյյ}qCJOJQJo(5mH CJOJQJo(mH CJ OJQJo(mH CJ OJQJo(5mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH )vIJ.9:WX[\$ $  $ /  $   7S $ 5y \rstxz~ų$$-$$F. $$$ųʳγӳٳݳ߳O$$89; . !\$$$$$$$SK FORMATTING THEORY TRACK LAYOUT/FORMAT Disk formatting is accomplished by the track write command. Each byte for the entire track must be provided for proper formatting including the gaps as well. The F D C requests each byte in turn and places it directly onto the surface of the diskette. However, there are ex c eptio ns to the rule. IF data bytes $ F 6 through $ F E are fed to the FD C, it recognizes these as special control bytes and takes appropriate action. The byte sequence in Figure 7. Gap siz*YWWJWJWJ $ l%$$89; . !\e restrictions: a GAP 1 : This is always 255 ($ff) bytes and may be over written by the last sector on the track. This is to ensure that no garbage remains between the last sector and the first. GAP 2 : (Post Index A M gap) This gap should be at least one (1) byte. GAP 3 : (Pre ID A M gap) This gap should be at least one (1) byte. GAP 4 : (Post ID CRC gap) This gap must be $11 (17) bytes in length. GAP 5 : (Post DATA CRC gap) This gap should be at least one, however, in practice, it should be ov*+ghʴ˴ŶƶFUV$ bl%$ ql% $ b$ $ $ l%er 9 bytes long. This is to protect the next sector header form being overwritten. THE READ COMMAND When the processor issues the read command to the F D C, a search for the sector header begins. The FD C reads the headers of the sectors it finds and compare; the sector number and the track number to those given by the processor. If the test fails, the search continues. Next, the CRC is checked for validity; if not correct, the search continues. If all is correct, the F D C begins searching for the data AM. If found within 2 8 bytes, the sector is read byte by byte and is transferred to the processor. Finally, the CRC is checked for validity at the end. The CRC status error bit is r DISK FORMATTING THEORY set accordingly. Also, the type of data A M byte will determine the status' of bits 5 and 6 of the status register. If the sector is never found, ie.IDfields don't match, bit 4 of the status is set, and the processor (chip) will reposition the head in hope that somehow the head had gotten over the wrong track and try again. THE WRITE COMMAND This works identically to the read command except that once the sector has been located,a write occurs. NOTE: The write requiresthat$11(17) gap bytes be between the sector header and the data. Also, the data A M bytes' value depends upon the last two bits of the write command byte. O n three of the four possibilities, the processor will interpret the sector as 'bad. LOGIC SEEKING READ/WRITE COMMANDS These are the read and write commands that are used for double sectors. The CHIP program will first compare the sectorsequenceitcontainsto what it finds on the diskette. When itsyncronizes itself to the sequence, the write or read function described in the two sections above will take place. The CHIP program is able to get the sector headers through a read address command (of the F D C) which returns the six bytes contained inthe sector header (track,.,., CRC bytes). READ FORMAT COMMANDS Using the method described above, the sector sequence can be fetched. On the A+STefкѺ*+jk $ T!$ T! $ $ l% $ b$ modes, the headers are continuously read for slightly more than one revolution. After this, the sector numbers are compared o n the next revolution and the first sequence is cropped to agree with what it finds the second time through. The Amodes read for about one revolution but no double check is made. 34 DISK FORMATTING THEORY SIO SPEED RESTRICTIONS The disk drives' processor (and therefore the F D C)receives a full sector of data every 1118 of a disk revolution. This is about .0115 seconds, however,ݲ9:WX\stųʳ*+TefѺ*+67OCJ OJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJOJQJo(5mH CJ OJQJo(5mH CJOJQJo(mH 4 the serial transfer between the computer and the disk drive is considerably slower, (about .09 second). Since the diskette is turning at 288 RPM (or 4.8 rp m s), if you d o a little math, you will find that only two sectors can b e read in one disk revolution. This is the concept behind fast formats. ~IB888888;888808888~ Figure 8 Figure 8 shows the standard format used in the CHIP program as well as the Atari ROM C. Notice that consecutive numbered sectors are nine apart within the sequence and ten apart when crossing the end of the track gap (which is about half a sector in length). If you are thinking ahead, you may realize that even this format can be im proved upon. ~IBB~BBBBBBBBBBBBBBB Figure g In Figure 9, the sequential sectors are nine apart except for the end of the track gap, in which case they are eight apart. Here, that gap is large enough such that the eight can be read before the head passes it by (or rather it passes the head by). This format is the fastest format possible o n the disk d2367NOfg/0EFOP $ D% $ D% $ T! $$riv e. 35 DISK FORMATTING THEORY DOUBLE SECTORS Suppose that two sectors had the same number. If you just randomly went and read that numbered sector, you could get two different sets of data. This process can b e precisely controlled by first reading the sector nine (9) places before the one you really wish to read, and then read the one you want. 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 5 4 6 5 7 6 8 7 9 8 2 9 2 1 3 2 4 3 a b c d e f g h i j k I m n o p q r The above sector sequence contains 18 unique sectors but 8 numbers are duplicated. This is a format used in the protection of some software houses. suppose you read sectors in the following order: 12, 4, 9, 5, 3, 9 The actual physical sectors would b e as follows: k, b, I, d, o, i You will notice that the two reads of sector 9 did not yield the same result, thus this becomes a valid protection scheme. This type of protection can ONLY b e created with a drive modification (N CHIP or Happy enhancement). This idea can easily be expanded upon to incl #$34cd $ 6$ $ D% $$ $ D%ude triple or q u adro ple sectors. HOWEVER, the ability to c o nsistantly and reliably get the same results gets hander with the more duplicate numbered sectors you have. Another applicationis to create more than 18 sectors and number two with the same number. Previously, this was difficult to grasp and realize the feasibility of such a scheme, however, now with the EDITOR, you may create as many as 24 sectors on a track, but because there is only so much room, many sectors must be cut short (and thus bad sectors). A word of warning: the data in short sectors is not always reliable and timing between sectors is not the same. timing becomes critical in importance and slight variationsin speed may have adverse effects o n protections. DISK FORMATTING THEORY BAD SECTORS The ability to write bad sectors has been around for quite a while. It was the first type of true protection. It is possible to create two types of bad sectors with a standard disk drive. The first is a CRC error and the second is a missing sector. The CRC error bad sectors were created by one of two methods; the first being slo wing down the drive, and the second being the tape method. The missing sector was created by writing to the proceeding sector at a high RPM, thus causing the end of the first sector to overwrite the header of the next. Creating bad sectors is an easy and valuable function of the CHIP program. To create a missing sector, form at the track without that sector number. T o create CRC bad sectors, special operations must be pkl J;u3p$ ~' $ ~'$ $ $ 6$erformed by the CHIP program while writing the sector. These functions are all auto m atic and easy using SCANIT!, however, a brief description of each type will be given in the next paragraphs. CRC ERROR SECTORS The CRC bytes are a sophisticated checksum of the proceeding data in a sector. If these bytes do not agree with the data read from the sector, a CRC error will occur. This type of bad sector is simply created b y stopping the write process in midstream, thereby keeping the old CRC yet allowing new data. The status CRC error bit (bit 3 of the status) will reflect the error after the read. The CHIP program also carries this process a step furore. You can specify the number of bytes actually written when creating a bad sector by putting the number of bytes to be written in the last byte of the sector data. After th a last byte is written, the process stops, and on subsequent reads of that sector, the status will reflect a CRC error (on the B mode only). r DATA TYPE FLAGS Another way to create perfectly good sectors with a bad status is b y setting data type lags in the write (F D C write) t command. When this is done, the data A M marks bits 0 and 1 are changed to reflect the type of data. Although these sectors are perfectly good, the CHIP program and the ROM C 37 DISK FORMATTING THEORY will take these sectors as being bad and return an error. Bits 5 and 6 of the status will reflect the results of the read of these types of sectors. With two bits, four combinations can be made; only one of which iOfg0EFOP #$34 u\^ǽǽ{q߅g]CJOJQJo(mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJ2OJQJo(mH CJ2OJQJo(5mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH $[F.f^^ $ ~'s a perfectly good sector. In all there are nine types of sectors: Only one of which is good. The missing sector is another type and the remaining seven are created by combinations of the data type flags and the CRC error bit. STATUS The bits referred to as being status bits 36 are not automatically had after reading a sector. The meaning of the SIO status is as follows: $90 : A bad sector of ANY type was encountered upon the read. $8A : Tim eout. The sector was missing and the drive did not respond in tim e. $813 : Device N A K. related to above. If the drive doesn't respond in time, the SIO tries again. $01 A good read/write. The $90 should usually be returned on bad sectors, however, the timeout value of the disk interface routine is borderline thus causing the errors $8A  $8 C. A $90 can be insured by setting the timeout value higher and using the SIOinstead. The status bits of the F D C are received by executing an S (status) command after reading the sector in question. The S command will return 4 bytes of which only two are really meaningful and only the second is described here. For reference to the others, see chapter 5 (Diskette Handler Commands) of the Atari O S manual. After a read, the hardware status bits are reflected as in figure 10. 38 DISK FORMATTING THEORY BIT READ WRITE NOTES 7 Not ready Not ready always CLR 6 Data type Write protect 5 D Ata type (a) Write fault 4 Record not found Record not found (sector missing) 3 CRC error CRC error 2 Lost data Lost data sh)*z{Fv $  $ $ $  $ ~'ouldn't happen 1 DRQ DRQ always CLR 0 BUSY BUSY always CLR (a) : can be reliably used NOTE: All bits are returned in lowtrue form (i.e., a good sector returns a $ F F status). FIGURE 10 USEFUL HINTS This chapter will deal with tracks and useful things you may do using SCANIT! . This chapter is specifically designed to help the user back up a program that wouldn't work when the defaults were used. CYCLIC FORMATS Consider the following formula: 000000000000000000 123456789123456789 If you write out ()*?@b}$$  #$  #$   #$  e# $ # $ $ data using this format you may find that you get a verify error, why? Since all the sectors are doubles, the logic seeking commands will be used, but now how does the logic seeking command locate the sector? It can't because it has no way of distinguishing the first half from the second. The solution to this problem is to turn the logic seeking commands OFF ( L) and the compaction OFF (C). Also, you should turn the verify off( V ). this will cause each sector to be read in correctly because two sectors will b e fetched per revolution and the sectors will automatically be written correctly. 2008 MORE SECTORS The ARCHIVER can only handle reading and writing a maximum of 19 sectors, however, the EDITOR can handle 24. If a diskette does contain more than 2 0 sectors, the custom formatter must be used and some sectors must be shortened. . . Notice that 20 full sectors can be written if you set all gaps (except the POST ID C R C) to one (1). However, if more than 20 sectors are being used, you must do some$;<WXY$ $ $ % $ # $$ 1 #$  # intelligent guessing on which sectors are shortened and go from there. Once you made the format, writing the sectors is easy. The sector sequences must match and the formatting flag must be turned to a B and CRC error bad sector symbols must be created under the sector number (the B command in the EDITOR). Next the sector data must be modified so that the last byte in the bad sectors is the actual number of bytes to be written to the sector. Finally, you write the track and hope " it works. Otherwise, try again. r 41 r USEFUL HINTS GARBAGE TRACKS Occasionally, you may run into tracks that return a read format error, this is because the tracrs are badly garbled and the second pass does not return he same results as the first pass. This will only happen on unformatted tracks in which case random numbers appear as the sector numbers. To solve this problem, switch to a AS read format mode. Many software companies insist on checking missing sectors, thus the loud noises as the program boots. Because mYZlmSVXY #$ $$ Z%$ '$% $ $ %$*`k*.$0Zlm $34|}}sg]CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(5mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(mH $ost software companies do not check the status after such a read, you may reptace their format with a new one that contains the required sectors and the ones that made the noise. When the new format has been created, you must insert bad sectors. The easiest way to do this is to position over the new sector and press the B (first you must get data into that sector). When you have selected all sectors that need to be bad, then write the sectors out, and usually the program will work. DRIVE SPEED The CHIP, and heavily protected programs in general, require an accurate drive speed. Make sure your speed does not exceed 288; slightly slower is acceptable, but no faster than 288! NOTE: Turning a n 810 disk drive off with the disk in place usually writes bad sectors on track $27 (or wherever the head was located when the drive was turned off) and will eventually destroy the program on the disk.. 42 IAPPENDIX HEX NUMBR CONVERSIONS DECIMAL HEX DECIMAL HEX DECIMAL HEX DECIMAL HEX DECIMAL HEX 0 0 61 3D 122 7A 183 87 244 F4 1 1 62 3E 123 7B 184 B8 245 F5 2 2 63 3F 124 7C 185 89 246 F6 3 3 64 40 125 7D 186 BA 247 F7 4 4 65 41 126 7E 187 BB 248 F8 5 5 66 42 127 7F 188 BC 249 F9 6 6 67 43 128 80 189 BD 250 FA 7 7 68 44 129 81 190 BE 251 F13 8 8 69 45 130 82 191 BF 252 FC 9 9 70 46 131 83 192 CO 253 FD 10 A 71 47 132 84 193 C1 254 FE 11 B 72 48 133 85 194 C2 255 FF 12 C 73 49 134 86 195 C3 13 D 74 4A 135 87 196 C4 14 E 75 4B 136 88 197 C5 15 F 76 4C 137 89 198 C6 16 10 77 4D 138 8A 199 C7 17 11 78 4E $34 ,L$ C^ 3.( $ ($ $ $ #139 8B 200 C8 18 12 79 4F 140 8C 201 C9 19 13 80 50 141 8D 202 CA 20 14 81 51 142 8E 203 CB 21 15 82 52 143 8F 203 CC 22 16 83 53 144 90 205 C D 23 17 84 54 145 91 206 CE 24 18 85 55 146 92 207 CF 25 19 86 56 147 93 208 DO 26 1A 87 57 148 94 209 D1 27 18 88 58 149 95 210 D2 28 1C 89 59 150 96 211 D3 29 1D 90 5A 151 97 212 D4 30 1E 91 5B 152 98 213 D5 31 1F 92 5C 153 99 214 D6 32 20 93 SD 154 9A 215 D7 33 21 94 5E 155 9B 216 D8 34 22 95 5F 156 9C 217 D9 35 23 96 60 157 9D 218 DA 36 24 97Ll -No)D_z$ RO z $($ C^ 3.( 61 158 9E 219 DB 37 25 98 62 159 9F 220 DC 38 26 99 63 160 AO 221 DD 39 27 100 64 161 A1 222 DE 40 28 101 65 162 A2 223 DF 41 29 102 66 163 A3 224 EO 42 2A 103 67 164 A4 225 E1 43 2B 104 68 165 AS 226 E2 44 2C 105 69 166 A6 227 E3 45 2D 106 6A 167 A7 228 E4 46 2E 107 6B 168 A8 229 E5 47 2F 108 6C 169 A9 230 E6 48 30 109 6D 170 AA 231 E7 49 31 110 6E 171 AB 232 E8 50 32 111 6F 172 AC 233 E9 w 51 33 112 70 173 A D 234 EA 52 34 113 71 174 AE 235 EB 53 35 114 72 175 AF 236 EC 54 36 115 73:Up.JKg$  %O k h$'($ 4O z w$($ RO z $( 176 BO 237 ED 55 37 116 74 177 B1 238 EE 56 38 117 75 178 B2 239 EF 57 39 118 76 179 B3 240 FO 58 3A 119 77 180 84 241 F1 ; 59 3B 120 78 181 B5 242 F2 60 3C 121 79 182 B6 243 F3 S 43 APPENDIX ARCHIVER COMMAND SUMMARY C  Copy START :start reading/writing OPTION :halt E  Enter EDITOR N  Number of copies xy :enter (HEX) O  Open the CHIP wxyz,d :wxyzisthe code, disthe drive P  Parameters .t :curs or left ~ :curs or right R E T :select parameter ESC :anyti+Gc+Gc $ ($  %O k h$'(12J^_r$ GR)$ 8)$ 8R)$ G)$ G) $ )m a will abort 44 APPENDIX EDITOR COMMAND SUMMARY A  ARCHIVER B  Bad sector select D  Disassemble E  Enter edit mode :cursorup one line :cursor down one line cursor left ~ :cursor right D EL :delete byte cursor is on INS :insert at cursor C L R :fill H :home cursor RET beginning of line =  Formatter cursor up cursor down .f. :cursor left cursor right DEL :delete sector INS :insert sector C L R :delete all sectors W :write format H  Hold s56F_r$ a$$ Vp$ $ $ $ )$ GR)|Z[56wɽɱɥɱ{qe[CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJ OJQJo(5mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH ector  Insert format _  Address change M  Enter m apper , xy :track number V  Renumber current track xy :new number 0  Open CHIP wxyz,d :Chip code + wxyz,drive = d r 45 APPENDIX EDITOR COMMAND SUMMARY (cont'd) P  Parameter : cursor left r :cursor right R E T :select parameter R  Read tracks OPTION :halt START begin/continue W  Write tracks OPTION : halt START begin/continue C L R  Delete track DEL  Delete sector INS  Insert s$5MNhiw/FZx$ 8R$$ V$$ a$.J^m$ GR6$$ 6$ $ 6$ $ $$ 8R$ector ESC :return to command mode 46 APPENDIX CHANGING DRIVE MOTOR SHUTDOWN DELAY 10 DIM A $(4) 20?"W HAT DRIVE DO YOU WANT TO OPEN"; 30 INPUT DRIVE :IF DRIVE <1 OR DRIVE>4 THEN 20 40?"W HAT IS THAT DRIVE'S CHIP ID CODE"; 50 INPUT A$:IFLEN(A$)<4THEN ?"PLEASE USE 4 DIGITS." :G OTO 40 60 C=0 :F O R A=l T O 4 :B= A S C(A$(A,A))48 :B= B((B>9)'7) :C=C'16+B :NEXT A 70 POKE 768,49 80 POKE 769,DRIVE 90 POKE 770,79 100 POKE 771,0 110 POKE 7 74,15 120 C HI=IN T(C/265):C L O= CC HI'256 130 POKE 778,C L O :POK$%()23WXf $ (#$ a6$$ V6$ $ 6$$ GR6$E 779,C HI 140 RESTORE :FOR A=l T O 4 :READ B :A$(A,A)= C H R $(B) :NEXT A 150 X= U S R(A D R(A$)) 1601FPEEK(771)<>1THEN?"ERROR, TRY AGAIN." :GOTO 20 170?"THE CHIP WAS OPENED SUCCESSFULLY." 230 POKE 770,78 240 POKE 771,0 260?:?"HOW MANY UNITS OF 1/2 SECONDS DO YOU WANT TO SET THE DRIVE SHUTDOWN TO"; 2701N PUT TIME :IF TIM E<1 O R TIME >255 THEN 260 280 POKE 778,TIM E 290 POKE 779,0 300 X= U S R(A D R(A$)) 3101FPEEK(771)<>1THEN?"THE CHIP IS NOT OPEN FOR CHANGE. PLEASE OPEN IT AND TRY AGAIN.":RUN 320?:?"THE DRIVE AS SUCCESSFULLY MODIFIED." 330 DATA 104,76,89,228 APPENDIX ERROR MESSAGES FORMAT ERROR: After formatting a track, the verify found the track to be bad. Try again and if it persists, the diskette is likely bad. READ FORMAT ERROR: The CHIP was unccessful at getting the sector sequence from the diskette. If you suspect more than 21 sectors, use a A 4 mode, otherwise use a Ax mode. READ/W RITE ERROR (STD): Sector could not be read or written. This is a standard read/write co m and and should never"`r CKc -_r 7 $ (# happen unless you have a n unreliable drive. READ WRITE ERROR (POS): A logic seeking read/write command (sector) failed. Could b e a format mismatch problem or a n error as in above. TOO MANY SECTORS: More than 25 sectors was encountered on the read format. Try piecing the track together b y using A6 read mode repeatedly. INPUT ERROR: Invalid entry, try again, or consult appropriate sections regarding the particular function you tried. 48 APPENDIX F, ERROR MESSAGES (cont'd) : VERIFY ERROR: T78ABQR`a./GH|} $ s#$ $ $he verify pass failed to yield the same results as the d ata writte n. Retry the write process. OPENING ERROR: You entered the wrong code or drive of your CHIP when using the O command. Retry the open. MEMORY FULL: N o more room to store the data o n reads, inserts, etc. Write some of what you have back out to the disk and delete what is not needed. I 49 45KLYZ`a $ $ $ s#$ $ $w~ ()23WX78ABQRfh˿˨뿇{qg[OqCJOJQJo(5mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5>*mH CJOJQJo(mH CJOJQJo(56mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH hlCJOJQJo(mH apqefil$ $ $ l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abdefg    ,9FQbz:;W$ R&$ R&$ R& $ R&WXefw+,Jg$ R&$ aR&$ R&$ R& $ R&-.FGQ[z $ ZQ[$ R&$ R&$ R&4`{  . E Z f t  " $ vQ[$ [$ ZQ[" L ` a c d g h u v 5 a  @ w " \ $ $ $ $ $$ vQ[ +7RT'.FGRV\Z]ux ` a d h u v U^ճճճ}qCJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH ,\ T\?{.k$ a$ $$ $5tu&]5 $$  "#$ !"# $ #56:DEGXY\pqZ$ 0*$ 0*,$ 0*,$ 0* $ # $$uDEHYpq(:t~tjt`ttCJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(5>*mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH %'9x-QS$  0* $ - $$ 0*HKL"7c$ $ $ -$ $ 0*$ z0*vw z{uv5 6 L!M!$ DV  $ D $$$ qV M!O!P!U!V!f!g!}!~!+","g"h"t"u"##\$]$%%%$ 8# $ $ $ $ 8# $ V t".O!P!R!\!_!g!}!~!/#6###C$I$ %%%%m%r%u%{%%%h&j&k&n&p&ש|CJOJQJo(5>*mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(>*mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH .%%%%g&h&j&k&m&n&&&^'_'n'o'((((($ ib  $  $ $ b  $ 8# $$(()l)m)v)w)y)z)|)})))))))))))$ Yb $ P Tb  $ b $ _ b $ b p&&&_'n'o'(((l)m)s)w))))))))))!+(++++++++M,_,`,,,-߽ߓuh^uCJOJQJo(mH CJOJQJo(5>*mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJOJQJo(5mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH $)))))++++++++L,M,_,`,,,----Q.R.g. $ "$ $ $ b g.h.// 0 050^0_000'1(1;1<1F1G111111$  $  $ "   "$ $1{2|22222 3!3"36666666666777"7$ [$ $ $ $ $ $"7#7X7778C88889L99996:r:::;P;g;;;!<^<<<$ o | $----R.g.h.,/3///_0c000'1(1<1F1G1|222226666677L9P96:9:Q;i;<<#>$>7>8>>ʾʾʞʞʞ|rCJOJQJo(mH CJOJQJo(5mH CJOJQJo(5mH CJ"OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5>*mH CJOJQJo(mH ,<=(=_====#>$>7>8>>>>>s?t?@@AA!A"A $ S$ $ $ %$ o | $"AAAAA'B(BUBBBBBBCACBCNDODRDSDfD $ $ % $ %$ E6$% $$ $fDgDDD9E:EeEfEEEEEEEE_F`FFFGG $  $  $ $ $ $ GG0HlHHH'IfIIIIIIIIIII"JNJ]J^J$ &  $  $ $ Z^JJJKKKLLLLLLMMsNtN*O+OOOPP $  $$ ^ $ $ 5PPPPP+P,PQQRR@RARXRYRRRRRRRRRR $ Q)$ i0*$ $ $  +>AAA!A"ARDSD]DgDDDEEEGG%I'IIIIIIIPPPP+P,PARXRYRRRRRRUUƼƼƼ~~tjCJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(5>*mH CJOJQJo(mH (RRRRzT{TTTUUUUUUUUVVKXLXYY#Z$Z $ * $ Q) $$ $ Q)$Z5Z6Z\\\\]]]]>_?_r_s_______W`X` $  $ $ ~$ $ $ *X`````!a"a%a&a1a2acccc"c*c/c0c$$$$$ $ $ " $ $ ~ $ UUUUUXX!Y(YYYYYYY$Z5Z6ZZZ3[:[\\\\]]]^ ^```%a&a2ac0c1cɽɽɽɳɳɳɽɳɑɅ{qgCJOJQJo(mH CJOJ QJ o(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH '0c1c:cIcMcRc[c\cccwccYC$$r Hp$$$$Y$$֞x p ccccccccccc$$$-$$FxH cccccccccc$$$o$$ xm Hp ccccccccccc$Y$$֞xm Hp cccccccccccccccd$$$$o$$ xm Hpdd ddddd!d$d'd*d-d3d6d9dBdo$$ xm Hp$$$$BdCdIdLdOdRdUd[d^dadjdkdqdtdwdzd$$$$o$$ xm Hpzd}dddddddddddddddo$$ xm Hp$$$$dddddddddddddddd$$$$o$$ xm Hpdddde e eeeeee"e%e(e)e$o$$ xm Hp$$$$)e*e0e3e6e9e*mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH $ ǝȝSTde12+,<=uv$ $ ($ u( $ $ H( !<=(),-DEQRMN`a $ # $ ($ $aЭѭ<=Z[rs $  $ $   $cde,<=v!<=,-EQRޥ^ѭ[rsL^jrɿɿյյ}qCJOJQJo(5mH CJOJQJo(mH CJ OJQJo(mH CJ OJQJo(5mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH )vIJ.9:WX[\$ $  $ /  $   7S $ 5y \rstxz~ų$$-$$F. $$$ųʳγӳٳݳ߳O$$89; . !\$$$$$$$*YWWJWJWJ $ l%$$89; . !\*+ghʴ˴ŶƶFUV$ bl%$ ql% $ b$ $ $ l%STefкѺ*+jk $ T!$ T! $ $ l% $ b$ݲ9:WX\stųʳ*+TefѺ*+67OCJ OJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJOJQJo(5mH CJ OJQJo(5mH CJOJQJo(mH 42367NOfg/0EFOP $ D% $ D% $ T! $$ #$34cd $ 6$ $ D% $$ $ D%kl J;u3p$ ~' $ ~'$ $ $ 6$Ofg0EFOP #$34 u\^ǽǽ{q߅g]CJOJQJo(mH CJ OJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5mH CJ2OJQJo(mH CJ2OJQJo(5mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH $[F.f^^ $ ~')*z{Fv $  $ $ $  $ ~' ()*?@b}$$  #$  #$   #$  e# $ # $ $$;<WXY$ $ $ % $ # $$ 1 #$  #YZlmSVXY #$ $$ Z%$ '$% $ $ %$*`k*.$0Zlm $34|}}sg]CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(5mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(mH $$34 ,L$ C^ 3.( $ ($ $ $ #Ll -No)D_z$ RO z $($ C^ 3.(:Up.JKg$  %O k h$'($ 4O z w$($ RO z $(+Gc+Gc $ ($  %O k h$'(12J^_r$ GR)$ 8)$ 8R)$ G)$ G) $ )56F_r$ a$$ Vp$ $ $ $ )$ GR)|Z[56wɽɱɥɱ{qe[CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH CJ OJQJo(5mH CJOJQJo(6mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(>*mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH $5MNhiw/FZx$ 8R$$ V$$ a$.J^m$ GR6$$ 6$ $ 6$ $ $$ 8R$$%()23WXf $ (#$ a6$$ V6$ $ 6$$ GR6$"`r CKc -_r 7 $ (#78ABQR`a./GH|} $ s#$ $ $45KLYZ`a $ $ $ s#$ $ $w~ ()23WX78ABQRfh˿˨뿇{qg[OqCJOJQJo(5mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(5>*mH CJOJQJo(mH CJOJQJo(56mH CJOJQJo(mH CJOJQJo(6mH CJOJQJo(mH CJOJQJo(5mH CJOJQJo(mH CJOJQJo(mH CJ OJQJo(mH hlCJOJQJo(mH apqefil$ $ $ l 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8% 0/ =!"#8$8%1Rs9Z{ Ab(Ijtp&->U1cWfwHYcO|whlW" \ 5M!%()g.1"7<"AfDG^JPR$ZX`0cccccdBdzddd)eYeeeefhZohrw{;ׂCSa\ų* $Y$L7all %<%Э &)SUP@P )PR@PPd@PP\f@PP@g@PʳPg@ GTimes New Roman5C~Symbol3 Arial7  Verdana? Courier New9Garamond5 TahomaK,Bookman Old StyleA Arial NarrowI  Haettenschweiler" h;f;f 0