@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u47fffffff>`<|fl0fF68of;p88pf< 80 0 ~~`0 U}0```nf>ff~fff~~f<flxxlf`````~cwkccV}fv~~nf 8x`x`~<~Y}~<0~0 ~ <~~< 33?3>3>33>3003<6336<?0>00??0>000>ff>|``|fff8<<``lxlf8Z}<fkc|ffff30>33? 3333~ 0~<~~<[}~x|nf8x8"4  ?3 ?? 36??0>30>33? 3333~ 0~<~~<$2} A DOUBLE DENSITY DIS-KUTILITY (C)1984G.NANCE ]} ^} fffffff>`<|fl0fF68of;p88pf< 8 `}0 0 ~~`0 0```nf>ff~fff~~f<fl a}xxlf`````~cwkccfv~~nf8|ll|llxllxllx8l```l8xlllllx|``x``||``x```p8? c}8lllll80p0000x8l 0p|8l  l8lll| |`x l88l`xll8| 008ll8ll88ll< l8 d}x`x`~<~~<0~0 ~ <~~<>ff>|``|fff8< e}<``lxlf8<fkc|ffff880CʽNCCL?C L? F<`#CʽNCCL?CL?QC t}ͤ8L@?CʽNC,78CʽNCCL?CL?CʽNCCL?CL?CʽNCCL?NCY XL?8 CL? u}CL?8 CL?CL?QC(oRCͤ8gCʽNC)YXʽNC,PʽNC)HC L?CʽNCXʽNC,*ʽNCC!C v}L?CʽNCC C L?UT <8`MC`C؅C @@iiCUT INVALID ADDRESSING MODE WRITE }} SECTOR AND CONTINUE? (Y/N) SAVE CHANGES TO DISK? (Y/N) ~ ~}BRKORA .DB .DB .DB ORAASL.DB PHPORAA }SL.DB .DB ORAASL.DB BPL ORA .DB .DB .DB ORAASL.DB CLCORA.DB .DB .DB ORAASL.DB JSRAND .DB .DB BITANDROL.DB PLPAN }DROL.DB BITANDROL.DB BMI AND .DB .DB .DB ANDROL.DB SECAND.DB .DB .DB ANDROL.DB RTIEOR .DB .DB .DB EORLSR.DB PHA }EORLSR.DB JMPEORLSR.DB BVC EOR .DB .DB .DB EORLSR.DB CLIEOR.DB .DB .DB EORLSR.DB RTSADC .DB .DB .DB ADCROR.DB }PLAADCROR.DB JMP ADCROR.DB BVS ADC .DB .DB .DB ADCROR.DB SEIADC.DB .DB .DB ADCROR.DB .DB STA .DB .DB STYSTASTX. }DB DEY.DB TXA.DB STYSTASTX.DB BCC STA .DB .DB STYSTASTX.DB TYASTATXS.DB .DB STA.DB .DB LDYLDA LDX.DB LDYLDALD }X.DB TAYLDATAX.DB LDYLDALDX.DB BCS LDA .DB .DB LDYLDALDX.DB CLVLDATSX.DB LDYLDALDX.DB CPYCMP .DB .DB CPYCMP }DEC.DB INYCMPDEX.DB CPYCMPDEC.DB BNE CMP .DB .DB .DB CMPDEC.DB CLDCMP.DB .DB .DB CMPDEC.DB CPXSBC .DB .DB CPX }SBCINC.DB INXSBCNOP.DB CPXSBCINC.DB BEQ SBC .DB .DB .DB SBCINC.DB SEDSBC.DB .DB .DB SBCINC.DB G H`8H H8 }h H88H H8h H8`0888'88'LH88訊L+H88dLDHd 88dLWH } 88 LfH08LuH80 `)LHJJJJi0:0i`N1U   @ L Y }7UTK (9 ;(LLL)LLLU Y8L)UL3IU` HLI IKQLIY YLyI K }UQ]Y KUQOKO1U    L YUThL B9 ; HUTL (9 Y`N }KUTL B9L88 GE8?8UT8 (9ҠU 9QQKLKG$(LLL)LLLYKLKY$ }(LLL LLLYKLKB$(LLL LLLYKLK3478"ɛLILJ#LLJ(LLJMLL }JPLL88 GE8?8UT8 (9`UT-L B9Ui0888 (9ҠU 9Q^Z1 2 ɛп1L)L }LLULyKL LLLUUi08UT8 (9 Y`UTEL B9Li188 B9ҠU 9Q#1 2ɛ }LKLLKL Y`NCONFIGURE ERROR-ASSUMING SINGLE DENSITYNUMBER OF TRACKS PER SIDE?DISK DENSITY? (1 OR 2) NUMBER OF } SIDES ON DISK? (1 OR 2) UNABLE TO SAVE DRIVE CONFIGURATIONZVUTM B9 M }*= B9UɛLUMUTN (9UTUi0UU:,ɛڠU (9ҠU 9Y5 ڝDUE VMLUMݠU (9ҠU 9Y }ݝDUE VM`!B V C6UTN (9 C88 GUTR88 (9 ;`iVҠU 9iV8~ɛ2Ui }VBNAN B9iVLMʎiVDN B9iVLMU`ERASE WHICH FILE? TYPE Y TO ERASE ==> UNABLE TO ERASE FILE - ERROR } ~H8 SUTIS B9 j88 Z8QL}OUT _UT_ B9_8_8 G8 B9_ B9# `L] j Z8QL] __i__i__m___m__L^/ҠU 98` xk S8`_i__i }__mU__mU_8____L]US;8____8____ >_8______L _ d S8`8_ }___8_U__U__i__i_L]US_8_8ͣ8_͢8 p S8__U`__U__ } __`_M_)____`_Ζ_Θ_Ν__`SOURCE ADDRESS ==>$SOURCE ADDRESS BYTE ==>$ }DESTINATION ADDRESS ==>$\\_ɛ i@_UT_ (9 ;_ɛ 8@ }_`U` (9a (9a (9&a (95a (9Ka (9ea (9a (9a (9a (9a (9֠a (9a (9a (9b (9 }.b (9Bb (9Wb (9pb (9b (9`}A > AssembleC > Configure driveD > DisassembleE > Erase fileF > Files (Directory)G }> Go to address on diskH > Hex / decimal conversionL > Linkage selectionM > Modify bufferP > Print screenQ > Quit and re }turn to DOSR > Read a sectorS > Search for patternW > Write buffer to diskX > eXtended commandsZ > Zero the buffer+ > R }ead next sector- > Read previous sectorSELECT - Select driveOPTION - Display toggle (ATASCII/Hex)$$UT4c B }9 j Z!8Q_UT= (9i0L3c8ɛ> GUTNc B988 𩙠8 B9_c B98 B9 ;`NUMBER FOR }CONVERSION? = $ TU H Th8 i8H ȱILcIȱI`Ui  d }cUIULcU dc`UTkd (9d (9@ҠU 9QLjdLjd12 SɛϭUUU8UTU }1 d (9L]d2 d (9L]dؠd (9i Y` 1-SINGLE SIDED 2-DOUBLE SIDED S-SEQUENTIALSINGLE SIDED } LINKAGEDOUBLE SIDED LINKAGESEQUENTIAL SECTORSU1288888L"eVmʎVmʽVl8ʽVl88"8UT }e (9 ; re8Lne8͢8 8ͣ8Ld8888 p S re`VmVm VmVmVmʽVlʽVlVmVm` THE SECTOR CHAIN HA }S BEEN EXHAUSTEDUTg (9jjUTh B9 fUh B9`h B9)?'IҠU 9Lf }|@ҠU 9Lf<ҠU 9Lf)ɼҠU 9LfҠU 9j`j gjΝjΝjj }jΜjjΝjjΜj gj gj Lf gjiUjiTh B9`j8Jjj mjj3 }hɛ=XYi|je恮j(eۑLgh B9jiUjiT h B9jjj!jjj }jjjjjj Ujj Uj` PRESS ESCAPE FOR MENU<<  0U X S4 }8A eL3h 4h`UT{j (9jjUTj B9@ҠU 9j*jjj"jj jj" }jjjjj+ΝjΝjj!jj~ΝjjΜj!jjΝjj-ΜjΜjj=jj }jL,ijjjLiQLijjjjj Ujj Uj ijiUjiTj B9Lah }j B9`j0nGj:Ab:80Li87jj8 jj88Jmj jjj"%jjjjj Ujj }j`j8) ^jL6j 7j`jjjj j3)mj3j B9`3)mj3jjjj B9` PRESS ESCAPE F }OR MENU 0pqrstuvwxyabcdef*= B9qk@ҠU 9\QXɛ^~7qk$H }0:F4:A,qk8qkrkrk B9LOkqkqk~rkrk B9LjQ8qkqk8*= B9` U1238i8 }88i88Ll8U3)Ul3TlLk8U3Ul3TlTlUlUT8l (98 ;LlTl88Ul88 p l`80 }+U12L7lVm8Vl譣8VlVmVlVl` END OF FILE } } B V BcDVEJK V } B VUTbp (9 ;`Np opYLRnXYpppi(ipLm8AUp  wnL5nH n }hpLRnH)` @i L'n. nhpLn ni(ippp@ҠU 9 B V` H } nhpLRnH)` p8 8 Ln@i LnP8 n nhH# np UH nhhpLn` }p BHIDpE V`RUTp B9UUT xopY/TpUpUT

_______________________________ ENTER SEARCH STRING OR PRESS ESCAPE ==>_________________ CO }NTINUE SEARCH? (Y/N) PRESS ESCAPE TO QUIT 4U SUTv (9UT j8888 Z }8QL1v Assemble ............................................. 4 C > Co}nfigure a Drive .................................... 4 D > Disassemble .......................................... 5 } E > Erase File ........................................... 5 F > Files (Directory) ...........................}......... 6 G > Go To Address on Disk ................................ 6 H > Hex/Decimal Conversion ......... }...................... 6 L > Linkage Selection .................................... 6 M > Modify Sector ..... }................................... 7 P > Print Screen ......................................... 7 Q > Quit . }................................................ 8 R > Read Sector .......................................... 8  } S > Search for String .................................... 8 V > Version Number .................................. }..... 8 W > Write Sector to Disk ................................. 9 X > eXtended Commands ..................}.................. 9 Z > Zero Sector .......................................... 9 + > Next Sector ...........}.............................. 9 - > Previous Sector ..................................... 10 } - 2 - Diskasm Documentation 3 } INTRODUCTION THE DISTRIBUTION DISKETTE ========================= The DIS-KASSEMBLER is shipped on }a single density diskette in Atari DOS 2.0 format. Because the DIS-KASSEMBLER includes functions to modify d}iskettes, the distribution diskette should be copied to a working diskette, and kept only as a backup. This same pro}cedure should be applied to any diskettes being analyzed by the DIS-KASSEMBLER - always work from a backup, N}EVER WORK FROM AN ORIGINAL DISKETTE! The DIS-KASSEMBLER is a binary load file. This means that a binary } load must be executed from DOS to run this program. (See your DOS manual for binary load instructions. The DIS}-KASSEMBLER will run from Atari DOS 2.0 or equivalent.) Two versions of the DIS-KASSEMBLER are provided on t}he distribution diskette. The first, DISKASM0.99, is offered as a public domain program. This version conta}ins ordering instructions for eXtended commands. This file may be distributed, without charge, to any Atari }users. The second, DISKASM1.0, contains the eXtended commands processor, and is not intended for distribution. } NUMERIC ENTRY ============= Numbers entered into the DIS-KASSEMBLER may be entered in either dec}imal or hexadecimal. To enter hexadecimal numbers, either a leading '$' or a trailing 'H' may be added to the number}. (If a number contains hexadecimal digits A-F, the entered number is assumed to be hex, and the '$' and 'H'} are optional.) GENERAL COMMENTS ================ When the DIS-KASSEMBLER reads a sector into memor}y, many operations may be performed to that sector. However, changes are performed only on a copy of the sec }tor in memory. Changes are not saved to disk until the write option is selected. The term 'sector' is often !} used in this manual to refer to a copy of a sector in memory. Menu Line refers to the prompt 'A,C,D,E,F,G,H"},L,M,P,Q,R,S,W,X ,Z,+,-,?'. DIS-KASSEMBLER commands may be selected only when the menu line appears on the s#}creen. Status Line refers to the inverse video line at the top of the screen. This line displays the curren$}t default drive, the density of the drive, the number of sides on the drive, and the current sector linkage t%}ype. The ESCape key is used throughout DIS-KASSEMBLER to cancel commands. Default drive refers to the drive&} which is currently selected. When the DIS-KASSEMBLER is initially loaded, drive 1 is the default (selected)'} drive. - 3 - Diskasm Documentation (} 4 The type of sector linkage which is selected will have an effect on many of the functions avail)}able from the DIS-KASSEMBLER. See the section on 'L - Linkage selection' for additional details. SELECT DRI*}VE ============ Pressing the SELECT key when the menu line is displayed will allow the selection of a+} different default drive. When a drive is selected, the current configuration of that drive is read and disp,}layed on the status line (if the status line is present). If the configuration of a drive cannot be read, (such as w-}ith an Atari 810), the drive configuration is assumed to be single sided and single density. (An error messa.}ge will be displayed when this happens.) OPTIONAL DISPLAY ================ The title screen /}for the DIS-KASSEMBLER is displayed in ATASCII (character) mode. After a 5 second delay, (press a key to avoid 0} waiting 5 seconds), the display is changed to show the hexadecimal byte values for the current sector. Pressing t1}he OPTION key when the menu line is displayed will toggle the display between ATASCII and hex. If the curren2}t sector is not on the screen, the OPTION key will re-display the current sector. ASSEMBLER ========3}= A line-at-a-time assembler allows 6502 assembler instructions to be assembled into the current sector. La4}bels are not supported. However, standard 6502 pnemonics and addressing modes are fully supported. Legal add5}ressing modes include the use of ATASCII characters in single quotes. For example, the command LDA #'A' will 6} be processed as would be expected. When 'A' is selected from the menu line, the prompt 'Begin assembly with7} byte ' will appear on the screen. The number of the first byte in the current sector to be changed by the assembly 8}should be entered. (Press RETURN to begin with byte 0.) After the byte number has been entered, the DIS-KAS9}SEMBLER will prompt for an instruction. When all instructions have been entered, press the ESCape key, or :} press RETURN without entering an instruction. At that point, or when the current sector runs out of space, a p;}rompt will appear, asking whether or not the changes should be saved. Answering Yes will cause the sector in<} memory to be written to the disk. CONFIGURE DRIVE =============== The DIS-KASSEMBLER allows drive =}configuration to be modified without returning to DOS. When 'C' is selected from the menu line, the prompt '>}Number of tracks per side' will appear, along with the current setting. Valid entries are 3 (35), 4 (40), 7 (77, not?} for use with 5 1/4" diskettes), and 8 (80). Press RETURN to leave unchanged. @} - 4 - Diskasm Documentation 5 Next, the promptA} 'Density' will be displayed, along with the current density of the selected drive. Enter '1' for single density, '2'B} for double density, or press RETURN to leave unchanged. Finally, the number of sides on the disk must be enC}tered. 1 and 2 are the only valid entries. Pressing ESCape at any time during drive configuration will retuD}rn the drive to its original configuration. NOTE - The DIS-KASSEMBLER doesn't tell DOS that the drive E} configuration has changed. This means that the Quit and return to DOS option will not work properly if drive 1 is F}configured differently than it was when the DIS-KASSEMBLER was loaded. The Erase file function also uses a DG}OS routine to delete files, and will not work properly if a drive configuration has been changed. DISASSEMBLH}E =========== The 'D'isassemble command has been provided to allow 6502 disassembly directly from diI}sk. When 'D' is selected, the prompt 'Disassemble at byte number' will appear. Press RETURN to begin with bJ}yte 0, or enter the byte number for beginning the disassembly. The next prompt, 'Byte no. $nn = address $0000' will tK}hen be displayed. When an address is entered, the address will be included in the disassembly. If no addresL}s is entered, the default address of $0000 will be used. After the first screen is displayed, the prompt 'C)M}ontinue, S)tep, P)rint, ESCAPE' will appear. 'C' (or RETURN) will display the next screen. The 'S' key willN} single step, displaying only the next instruction. 'P' will allow the screen to be printed, (see 'P', PrintO} screen), and ESCape will return the program to the menu line. ERASE FILE ========== Pressing 'E' fP}rom the menu line will invoke the Erase file function. 'Erase which file?' will appear on the message line. A file nQ}ame of up to 8 characters with an optional 3 character extension, (separated by a '.'), should be typed in. R}When the file name has been entered, a final prompt 'Type Y to erase Dn:filename.ext' will appear. Pressing S}'Y' at this point will remove the specified file from disk. If no drive designation is entered with the fileT}, the default drive will be assumed to be the drive containing the file to be erased. However, if 'Dn:' is adU}ded to the front of the 8 character file name, drive 'n' will be used as the target drive. Wildcards may be V}used in the manner implemented by DOS. Ie., typing 'D2:*.*' will match all files on drive 2, and cause them all to bW}e erased when Y is typed in response to the verification prompt. Because the Erase function uses a DOS routiX}ne to remove a file, the drive containing the file to be erased must be set to the same configuration as it wY}as when the DIS-KASSEMBLER was loaded. - 5 - DiZ}skasm Documentation 6 FILES (DIRECTORY) ================= A directory of file[}s on the default drive is displayed when the 'F' key is pressed from the menu line. This directory includes file \} status, filename and extension, starting sector and number of sectors. The display may be stopped and re-starte]}d by holding the control key and pressing '1'. File status codes which may appear are: ^} - Normal File * - File Protected D - File Deleted _} O - File Left open ? - Unknown File Status GO TO ADDRESS ON DISK ==`}=================== Often, an address will be referenced in a program which is several sectors away from thea} current sector. The 'G' option provides a convenient method of finding the referenced address. This function b} locates a specified address and hi-lites the byte contained at that address. Before an address may be locc}ated, a point of origin must be established. For example, byte $40 of the current sector has the address $A0d}00. To locate address $A744, type in $A000 when prompted for the source address, $40 for the source byte, and $A744 e}for the destination. If the current sector linkage is sequential, the destination sector will be calf}culated, read, and displayed.. If single or double sided linkage is selected, the sector chain will be read until thg}e destination sector is located. The byte which is located at the destination address will be hi-lited. q}B%DOS SYSB*)DUP SYSB SBIGRFONTDKXB\DISKASM COMBDISKASM DOCB DISKFONTDKXB)READ ME BBLACKDSKCOMB@ CRUNCHERCOMBiJDISKCOM3COMBDISKDUP COMFILECOPYCOMMULTIDOSCOMAUTORUN CTBBTFILER PIC HEX CONVERSION ============== To convert a number from decimal to hex, or from hex to decimal, r}select 'H' from the menu line. When prompted 'Number for conversion', enter either a decimal or a hex number. The es}ntered number will be displayed in both decimal and hex. LINKAGE SELECTION ================= t} When Atari DOS creates a file, each sector in the file contains a pointer to the next sector in the file. Two typeu}s of sector linkage currently in use allow for linkage of single and double sided diskettes. Because the datv}a in these pointers is interpreted differently by the two linkage types, the linkage type must be entered. Aw} third type of linkage, sequential, is really no linkage at all. It simply indicates that the sectors are to be readx} one after another in numerical order. Sequential linkage is used primarily during examination of non-DOS diy}skettes. - 6 - Diskasm Documentation z} 7 Linkage selection will have an effect on many operations. When either single or double sided {}linkage is selected, the last three bytes in a sector are assumed to be reserved for the next sector pointer,|} the number of used bytes in the current sector, and the file number. Functions such as Assemble, Disassemble, and G}}o to address will not process these last three bytes as data when single or double sided linkage is selected,~} but will process them as data when sequential linkage is selected. In addition, the first two of these last} three bytes contain both the file number and the next sector number in single sided linkage, but only the next secto}r number in double sided linkage. (De Re Atari contains additional information on DOS 2.0 sector linkage.)} When 'L' is selected from the menu line, enter '1' for single sided, '2' for double sided, or 'S' for sequent}ial sector linkage. MODIFY SECTOR ============= The 'M' option allows modification of the current s}ector in a full-screen editing mode. When 'M' is pressed, a cursor will appear in the current sector display}. By holding the control key and pressing the direction arrow keys, the cursor may be positioned at any poin}t in the current sector. Information typed during the modify mode will replace the data previously in the displayed} sector. The data, however, is not saved to disk unless the 'W' option, write sector to disk, is selected aft}er the modification is complete. Certain characters may not be typed in during modification of a sec}tor displayed in ATASCII. These characters, ESCape, Up arrow, Down arrow, Left arrow, and Right arrow, must be enter}ed by switching to the hex display mode and typing in the hex values for the characters. (See table below).} During hex modification, the arrow keys will work with or without the control key. Also, the TAB key will a}dvance the cursor to the next data column. ESCape $1B Up arrow $30 Down arrow $3}1 Left arrow $32 Right arrow $33 PRINT SCREEN ============ A full screen printer} handler is provided with the DIS-KASSEMBLER. When the 'P' key is pressed from the menu line, the prompt 'Select } top left corner to print' is displayed. A cursor will appear in the top left corner of the screen. This cursor }represents the top left corner of a window which will be sent to the printer. It may be adjusted by using th}e control arrows, (with or without pressing the control key). When the top left corner has been selected, press } RETURN. - 7 - Diskasm Documentation } 8 Next, the cursor will appear in the bottom right corner of the screen, along with a prompt }to select the bottom right corner. Again, use the control arrows to select the bottom right corner of this wi}ndow. When the RETURN key is pressed, the selected window will be sent to the printer. QUIT PROGRAM } ============ To exit the DIS-KASSEMBLER, press the 'Q' key when the menu line is displayed. The prompt 'Qu}it program? (Y/N)' will be displayed. When 'Y' is pressed, program control will be returned to DOS. Don't fo}rget to return the configuration of drive 1 to match the configuration present when DOS last had control, or the retu}rn to DOS will fail. READ SECTOR =========== When 'R' is selected, 'Read which sector?' wil}l appear in the message line. After the sector number has been entered, (press RETURN to re-read the current} sector), a read request for the selected sector is sent to the disk drive. If no errors are returned by the} drive, the sector will be stored in memory and displayed on the screen. The DIS-KASSEMBLER will allow any n}umber from 0 to 65535, even though your disk drive probably will not. The entered sector number is passed to} the disk drive along with a read request. Single sided 5 1/4" diskettes contain sectors 1-720, and double sided dis}kettes from 1-1440. SEARCH FOR PATTERN ================== The 'S' option allows a search fo}r a specific byte pattern on a disk. The pattern may be entered in either ATASCII or hex, depending on the d}isplay mode currently selected. Up to 16 bytes may be entered for the search. When a match is found, the la}st byte of the pattern will be hi-lited. The search may be continued by typing 'Y' when 'Continue search (Y/}N)?' is displayed. Enter 'N' to exit the search and return to the menu line. The linkage type selected in t}he search will have an effect on the processing of the last three bytes in each sector, as well as the order }that the sectors are scanned. See the section on Linkage selection. VERSION ======= The ve}rsion and date of the DIS-KASSEMBLER will be displayed when 'V' is pressed from the menu line. Updated versions are }shipped with the purchase of DIS-KUTILITIES. - 8 - } Diskasm Documentation 9 WRITE SECTOR TO DISK ==================== } When 'W' is selected, 'Write which sector?' will appear in the message line. After the sector number has been ente}red, (press RETURN to re-write the current sector), the prompt 'Type Y to write sector n' will appear. Press} 'Y' to write the current sector in memory to disk. If any key other than 'Y' is pressed, the sector will no}t be written to disk. EXTENDED COMMANDS ================= The DIS-KASSEMBLER has the ability to loa}d and execute binary files from disk. (This feature is not available on version 0.99.) When the 'X' option }is selected, the default drive is searched for eXtended commands. (An eXtended command is a binary file with the } filename extension '.DKX'). A menu of the available commands will be displayed, along with a key for selection.} When the selection key is pressed, the eXtended command corresponding to that key will be loaded and execut}ed. Any assembler program may be made to operate as an eXtended command if it conforms to the following guid}elines. 1) The DIS-KASSEMBLER occupies memory up to $7FFF. Therefore, eXtended commands will run only on a }system with at least 48k memory. Programs starting at or above $8000 will be compatible with future releases} of the DIS-KASSEMBLER. 2) The DIS-KASSEMBLER does not support both initialization and run addresses. After} a file has been loaded, the DIS-KASSEMBLER will jump to the run address loaded with the file. If no run address is} loaded with the file, the first byte loaded with the file is assumed to be the first executable instruction.} 3) Commands should end with an RTS instruction. This will return program control to the DIS-KASSEMBLER afte}r the command is finished. 4) The filename extension for extended commands must be 'DKX'. ZERO SECTOR } =========== The 'Z' option allows the current sector to be 'cleaned out'. If 'Y' is answered to the prom}pt 'Type Y to zero this buffer', the current sector will be cleared. If the current display is ATASCII, the }sector will be filled with spaces. If the display is in hex, the sector will be filled with binary zeros. +} > NEXT SECTOR =============== The '+' command will read the sector following the current sector and} display it on the screen. If sequential linkage is selected, the next sequential sector will be read. If single or} double sided linkage is selected, the sector pointed to by the sector link bytes will be read. } - 9 - Diskasm Documentation 10 } - > PREVIOUS SECTOR =================== When '-' is pressed, the previous sector is read and displayed. } NOTE - When a sector is read with the 'R' command, the sector number is saved. When '+' is used to read the fo}llowing sector, that sector is added to a list of sectors. The '-' key may be used to scan backward through }this list of sectors. However, because the linked files contain no backward pointers, a linked file may only be } scanned backward as far as it was scanned forward. Using the 'R' command starts this list over, removing the pre}vious list. The DIS-KASSEMBLER - (C) 1984 G. Nance Software Products} - 10 -1984 G. Nance Software Products647fffffff>`<|fl0fF68of;p88pf< 80 0 ~~`0 }0```nf>ff~fff~~f<flxxlf`````~cwkcc}fv~~nf8|ll|llxllxllx8l```l8xlllllx|``x``||``x```p8?}8lllll80p0000x8l 0p|8l  l8lll| |`x l88l`xll8| 008ll8ll88ll< l8x`x`~<~}~<0~0 ~ <~~<>ff>|``|fff8<<``lxlf8}<fkc|ffff4Z44444444444054"/}5n5"5,565@5J6T6^86h=6rM6|u66666666%7175797A7L7X7l77&707:7=8"0}?98DW8N8X8b8l8v8959~9~9999999: :|:: :: :*:4:>:H;R;\&;f,;p"1}?;zM;|;;;;;;;;;;;<4<G<W<|<<$<.=8>=BD=LR=VX=`_=j=t=="2}"3}-"_#:x2@ 333 3"----THE CRUNCHER----c by olaf meisiek"4} 2 2 2  2 x2:hhhhh̩˅ eˍ ԍ ԝЭ ɂ"5}`A{2x2D.JE:7 ~201G333 3"'----THE CRUN"6}CHER----c by olaf meisiek42 4$4҃҃ 4҃4%4$24%"7}"O2@2@2@ 2@2@22D1:A22DA*SOURCE FILENAME :D1:2GAI22DB"8}DESTINATION FILENAME :D1:2GAI22DB2M } }2D72626"9} 6Kein COM Programm !!?262686T "26262-C2":}-C2 24$26622624%2-C";}2-C2-C2-C2T4X222  2 2"<} VON 2*2  -C2  -C22 2 2 BIS"=} *2  2 2 2  -C2  -C,2*NULLEN2">}-C2-C22 4$22F52F54%2 "?}2} 222D/FA2D wuerde ca.  Sektorenkuerzer werden. SOLL ICH 2D SC"@}HREIBEN 2GAI2FJ9~9?22M } }2@2C22D.2 2 42D"A}72D72626:262622F522F52"B}2F522F5:2z222 "C}2 2 TUXYR2hhhLV.Jdehib 2hhhLV. JSM;"D}22F52F5;4$264%2;2 A"E}2W/ WB2D +#Dieses Programm kuerzt alle COM/EXEund OBJ-Files auf das absulute Mindestmass."F} Beispiel:Twerps : vorher 325 Sektoren, nachher 248 Sektoren.-> 77 Sektoren eingespart."G}!Das gekuerzte Programm sollte mit!einem GAME-DOS gestartet werden !Weiter -> druecken"H} R=B}"'----THE CRUNCHER----c by olaf meisiek"+iter -> druecken"I} R=B}"'----THE CRER----c by olaf meisiek"+iter -> druecken =04,˩0̩4Hͱ8E͑JH`ztĺ|rljd2@JDuqeYYUeiYUUeiYUUieb\Rf`ZT%&K}!¼  h VP82,̈~vpjd%!RL bf)ڏHB<ܘ~ezt%!ľД΂|vp.XRLaب~e%!+&L} BfmoXoOfOO3/hb\f~eႱhfXVXf]xrl`H~e,"*$"ڦU|Ѷ̱~D<&M}Ѫ񞘒\Rs))%)%%)%%!B<60*$  沬ΎY%!RLF@:4.(" &N}ԥ¼r0*$SYe%!b\VPJD>8&L0 F.Ye %!rlf`¼q ,V>Ye& |v2&O} !*fNe60*$ᒌ1⎩ʎi2,& OpjdؙF@:4ᢜ,rlf`&TNHB<60*$ -1虥VPJDᲬQUJ F@:4.(&P}).f`ZT%!q0*mp=phb\VPJD>ЏvmpgYvpjd%!RLF@o0.%.f`ZTNHieUYiNezt%!b\ieeYY͂(pjd^XLm&Q}qe%!-¼Kztnh ľe$   eO~:1feDܵO5H  &R}C  OO DlqfWzt|vp~xrP6RDRLF0{umo˅rudgyzoozztnhB۲Jz:0b4X䥒-0:1&S}#jҧ1{"[MI:1ޕlUmNUp-hII sP, IuCLv$2/RõQپ`鿰8}1;1%?Q5>QoM5P&]}QImq 5Ǯ)LX$ڌٷu$7$0:=:a)\l297;NWtTZǒh-RRXŲ|,t*9G|Eџ(1NU&^}hURx\P5%l3YHRSTcqkv"H1-U1@I8VAd:pU`Re&ƺVũiTնż@9틉;,I@ 5&_}D%=U=Q[V=UDᠣp=ѩpdh@2` 09Bp{)i jA1Ix-P-Qd:@ECcRkɛ-)lçLBV<&|}-@m\L1~ $[@A4*H[]l Pě-Ϩ ېX}ۛpihvozya`pu}sH &}} Peniqu##RrtoĉYEor(9$}vlinmmyB<`ۘonkorďГrekxuĊ[riminux@zPh$&~}fuly, .R* F $ ,$%؉)M#l$(c @[Ic5$U$8p  I#)SM#_S_c_k_[_cQ&}0覑'HTB֩C\ݒ[hkݭ{մ!D)$YpVRQ]5aI]Y^aHMPV=`$B85b5 56*RZ^$*;cF;W WARNING: DISK DUPLICATOR WILL CRASH YOUR RAMDISKjA  *}5444 م  Lt55Verify? (Y/N): Format destination disk? (Y/S/N): Start sector End sector*} O.k.? Hit ESCAPE if not read write bad ---- insert both disks and hit RETURN insert SOURCE disk and hit RETURN *} insert DESTINATION disk - hit RETURN D56ONE ! -- press SPACE to copy again orRETURN to re-bootSource drive #Des*}tination drive # *** Stopped by error  Z  yr TȱUȱ ` L  N*}YSɛN P` W`L  1 2ɛ1 67)` \择U sG \S$ *}U s`Ѕ  ɛCS?0: )H&&&eeheeƂж`H*}4W"(!`@ Y0!78 ʢ`L ӥ0X *}`ʊ Iө@` )  FjFjFj`T08H hh 򤂈ڥ 0Li*}iU   s  ` 8918j  3 D  S*} P7 U ,LtLwi)擩U   sjo Ň  Ġ R*}@    Y ^L Oׅ 9:Ə   ƀLŃ Ņ *}Lƍ  ŇҠ  8     Oׅ %  YLƏ   ƁLP *} Ŋ ʼnз  ŇLL ɛLtLw4  Oׅ %  YLƏ   Ɓ*}LP Ŋ ʼnз  ŇLLɛLtLw4  Oׅ %  YLƏ   Ɓ(-GxBӍ9ԩ< / < /* /LѠб` \ ]^   ʎDLk  SL  V.}L  YLӭ\ ] 67 X Ll Lbc<  [xB Lk`(`pppB".}AD8:*.*D1: *c7Ȑ`)"`)"*1S 莋) Nn` 0.}@BDEJ &@`" 1R @ ` 2 3F3*F3*2*2*ӭ )? @322.}ӭ232Ȍ 0`njfb.*&" e ` Ihh gL)l& g`.}'` ɛ+****))湫E(抦`@ `.} )? OЎ `0ЭЍ `ֆש؅٢8f쨥jօ.}}bإ}`L3إئ` d r슨JJJJ }) 0Lg 늅 & &iii .}ե !==> e e ee g eઈ nee萏`  H . H  H.}򩛝`NO DBLMEDSNGCLR BL&KB@ԩXLY\Y ꌖ/Z[N]^.}䩢 @ޅ߱IIޥi"i(Hih1M e01.} g > !|ɠ㩠| > g g | g g' g g > g g.} | g' g g > g L" 0  ! D1:*.* -> D1:*.*Π Source______DiskԠ D.}estination_DiskԠ Directory ormat : M mMN g ! Destination  = Exit  L88.}MMML+ L L029``  0D 0<i" .} A s ZLL05C1ઈ 'ȑii0 .}Їh"  s0S ,%   s0zm{m   ' n ! Free SectorsL !.} Key's to use : ___Up ___Down+ to Select/Deselect __Select All___Copy.}__Restart?? LE! I ?ȥ谹𐵭I 갟.}  ! Press  to Abort Copy.Щ%ѥm٩d)*  Insert Source-Disk .}in Drive 1 0 ԍ ȱԍ ٥Н@ѝ8ЅҥхӐLq  wЍэ sL,Ѕ눱Ѝ .}) eАѥ8ҥӭ  Ьԥ # LwLԭ o pН@ѝ(n.}m,  Insert Destination Disk in Drive 8 Mb M\K@BDE &8  .} etry or bort (?L a M  &@BDEJ &0X Bٹ@DEA8DH.}EI &0-0 a =nِo p L_ a   Write Error   Copy Complete. .} ! Press any Key L<  : etry, ont or bort H h(  ?@ Lٽ@нѥ8Ѕҥ.}хӠ0٤ mLTLB  Copy Aborted. L  Reading Source-Disk `  Writing on Destination-Disk ` .} Format Destination-Disk `)"O )@ Write-Protected Disk. etry or bort ? ( L`H,p.}ҥh@Hԍ) L^bccbcl&Bh@ЭЭЭЭ0ԭ1ԭ)A L L JJ .}JJ!II ҍMKIM JI KMKh@# cb`.}b`,Zi﹩j iLR(  L?:*8=9 %# /(>- .+!302 "&2350 67&2}D1: .COM ERROR ERROR!! - PRESS OPTION@ INSERT DOS DISK @@ 2}a aLհ` S0 i  i ii` 찭(ΰ(0R 8   (S(T(if(ig(02}((i(j7( L| ΰΰȑȑ㑀ȭ(iȑȭ(i(ȭ(''('(2}'i8(8m(m('' ϰ Dz B V0GBbDEJK V0) BD'2}EHI V0 B VLr ϰЭL 4% $н!L80iA`~`` 2} ɛ  LӲi e` ENTER FILE NAME (MAX 8 CHARS) => <=@0L2}0ɱ2 3 /K0L Sl l 2}iL!i iɰL!~  2}ȱ l l穛 L INSERT SOURCE - PRESS @ NOW MOVING - @ CHOOSE P2}ROGRAMS TO TRANSFER. SELECT ALL YOU WISH TO COPY. THEN PRESS @2350 )@@R S02}ii  ` e ԍ` BOOT ERROR!,RETRYING@ @l lL `}*************************2}***************@* PIRATE PUNK'S MENU TO BINARY *@ PUBLIC DOMAIN SOFTWARE -1985- -----------------------------2}-- INSERT SOURCE DISKETTE.  - MULTILOAD MENU.  - MULTIBOOT MENU.  - BOOT DISKETTE. PRE2}SS NUMBER OF CHOICE.@ FILE LENGTH ==>@ PRESS TO OUTPUT FILE, OR FOR MENU.@R Р 2} ^LFLLLpiLp   5 5 51 q;2}ܷݷ1.$ .8 l# #lܷi ܷݷiݷii:Я ^L2} L}ʩi iLN}pȽpɀ L}i(iL2} ^Lp0   5 51 p0.$ .#l #l2}i ii:и 㹭 LN}i iLu}pȽ pɀ 2}L}_i(iL ^LN ^L`2}2}0B-.0( L"L$ d U U U U U U UŠ k!@@ҩ ^6}- d >a-  >c-  e-  t >j-   wԤբ J wԤբ J wԤբ JXY J6}-  wԤբ J    l- t   >q-    셊s- J  셈 K 6}  L#   셈 셊 "" w  D w  6} D w  w- L$ - L$ -  -   w"- L$6} 驵-  J o J w G%G%G%G%G%G%G%G%&)L&%&&(& w- sL=% L# L$̠ Š- 6} t > > J R } w  ( ̠-   w(- sL% R } 7}٠- L%  + w.- L&    + w.- L%&    + w4- LI&   ̠7} - t > >H  J  w N  -  R }7} w L ' .   w(- sL& } . t > > w !  > w7} w֤ע >.   w J  :-! w@- L'F-!   wԤբ J7}#  w L( !.   w(- sL' }  k! k! W!7}R k" J  +# ># wL-  > L( > >0.  R- R-# L( >7} >2.  w! # wX- L( w L7) 4.   w(- sL( } 7}   wԤՅ# w H w! L' w֤ע >H.   w J  7} H L%x $  R } w L%* L.   w(- sL) } X. 7 } t > > w !  > w w֤ע >\.   w J  셈 K 7 } w֤ע >a.   w J   :-! w- L+F-! #  wԤբ J7 } w- s w L+ e.   w(- sL1+ } >  > q. 7 }L+  셈 KR- R-#  +# wX- w! L+ w LC, s. 7 }  w(- sL , }  W!P wԤբ% J% k! $ w k!$ >$ 7} > ꩄ. L, k" JR-% $ +% w vLq, w! L+ L% @@$7}AU@ @A @A@A'A(BV}hLS MAIN D:BTFILER.PICSINGLE MEDIUM # 7} 12345678ABCDEFGD1:*.* PRESS RETURN DISK ERROR...D1:FILE NAME DESTINATION DISK...D :.B7}TFSOURCE DISK...10DESTINATION DISK...TBL SOURCE DISKD :.TBLBTF SOURCE DISK1DESTINATION DISK1 o"v"|"("-"27}"<"F"P"Z"d.#nx#x##########$$6$R$n$$$"$,$6$7$@$J$T$%^=7}%hD%rG%|G%G%N%Z%u%%%%%%%%&&&%&(&&(&0I&:L&DL&NL&XS&b_&l&v&&&&7}&&&&&& ''N'k'' '' '*'4'>(H(R(\2(fG(pV(z](((((((7)B)7}d)x)}))))))$).)8)B)L)V)`%*j0*th*~******++1++++++ 7}++ ,(C,2N,<q,F,P,Z,d,n -x --)V)`%*j0*th*~******++1++++++ 42QRRRRRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRE|&ilename|򀑎||$en;}sity|||3ource|㉑||$estination||ARRRRRRRR;}RRRRRRRRRRRRRXRRRRRRRRRRRRRRD||ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|  $irecto;}ry  ||||!"ootdiskintofile||"&ileintoboot;}disk||#&ormat$estination||$#hangedestination||%#hangesource;}||&#hangefilename||'#hangedensity|ARRRRRRRRRRRRRRRRRRRRRRRRRRRR;}RRRRRRRRD||ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|󎀀;}|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRC|ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|󎀀8-