@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD` D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}} HE |||DDOS DOSDOS SYS }}}}CDOS SYS} 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI   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;DELV䌚 !B y`@ʆ 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 V (` 9 V⪍ ઍ  -'}LLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}1i1232435ޥ<<8} # X"ЭA R6D#EH #BJ*D#E V l#BmDD#EEH,}HII Vm#0:x$[#w#[#x#\#y#]# o# eeLU k#񩛍{#kD#E-m# -}B V` B V` X" BJ0D#E VR B7D#E$HI V # 8#BDEHI V0.}ɛL L9"A񰝩#8A eeDk#:l# m##.m## m## m#/}"#i"D k" kD#E 8# "lL! k"ND"EL"D:DUP.SYS `0}ʍ`E"ͩΩ"͙""""`"" ""`H"͝Νh`1}RUN"D:ҩ0Ҡ `D:*.* K: S: } ** Press Key For Your Selection **SYSDATLSTT2}XTXXX  ! 9GLH D: W000 ! LK WZVEMABHSRDLOUX?%FC@-=+GP\<32'N3 4}(-41)&W"BB27:8@wAg4444/0 T ` m n "` '`BDE'HI V 5}0ޢ (0`ppB0!BA !} by Tom Wells 6} Enter a ? for helpTRPAMMY #X!Y! BD!EHI V 2 0!1rX!( 2r! 7}( 2:G "`ok... BD"EHI V`##$$$$%Z%%%%n&&&    5 > 8} R?ee  ?    D ;""<"" ' "> "   Щ`8 9}#. `:G" $ # % 8$ $ % % $ % Q  #L<# #!  #0 #L#  #0 w# :}) w#`ii`ii`ii`& "! '?>  #=  # '?> #= ;} #`D` >ii`A4 >ii`#4 'G '?> D= E l$5) 0ȭ( ȭ' > <}ii`' ( ) ( i( ) i) L|$ح( )' ( JJJJ( ' 0' `$4 $ $ " >ii`5 =}` ! & `$4 % $ " >ii`& ȱ! `(4$5 $ Q% ",Xȑ)ȑ >ii`6 >}`(4$5 $ Q% "),ȑYȑ >ii`$4 % $ ",Xȑ >ii`$4 % $ ",Yȑ > ?}ii`$4 '?> D= EI急8倅L!&eiii8吅呅 '?> 5= 6 '?> @} 7= 8 >ii`$4 $ $ ",Xȑ >ii`$4 $ Q% ",Yȑ >ii`(4$5 % A}Q% ") >ii`* , + - 5 > R?ee  ?, * - + U'8, , - - L B}2'`` '8吅呅 '?> (= ) '?> *= + '?> (= ) '( >ii C}`}~ ' `.( '`" # :G B/ 0 (0 B V䥊`0BDE(HI D} V ;Т   ʽ  '$ R?ȑii # 0L( #" i E}" # i# L-(labeling now onlabeling now off. . (( 2`. (( 2` B/ `0 f-1 2  , F} C`0 f- + * QS L3CL *0 f- JDLA)iiŁŀLE)8倅偅$ % $ i G}$ % i% 8倅偅0BDE$ H% I V JDLA) ',LE)8倅偅$ % $ i$ % i% e H}e M,2 1 3 4 Lu)eeYʼnXň M,Lu)0BDE$ H% I V JDLA)LE)Load Ra I}nge = $ - $oad oncatenate kip uit2 '?> *= *1 '?> *= *4 '?> *= *3 '?> *= J}**( > *( 2`entry point = $init point = $ -T+1 0=0 f-1 '?> i+= K}j+2 '?> g+= h+X+( >`l+1 0<0 f-1 '?> += +2 '?> += +p+( >`6,( L} 2`virtual addressing set#\,( 2`load range beyond buffer, skipping,( 2 Q`L1 2 ȑ M}0BDE}DD}EEHI V JD 8--( 2`not binary load file. uit oadfile loaded at N} virtual $0000ii}H}I`0B1D E0 HI V`appended file1 A2 : O}-( 23 $ 4 % 0 f-1 3 2 4 $ 1 % 2 `9  ?9 5 6 7 8 c.9 9 L. c.5 i5 6 P} i6 7 i7 8 i8 9 ֠ȱ8倅偅 "/`5 6 7 8 R@1  Y Q}`5 6 7 8 P1  Y`# of sectors = init address = $boot continuation = $ R} '?= .> .ȱii '?= /> / '?= /> / '?= /> / '?= /> /. S}( >.( >/( >`9 5 : 6 7 8 Lt0 R?00000( 2`5 T}6 U ?00 9 : 5 R?ee0( 2`7 8 c.5 i5 6 i6 6 05 } 3E:A. Directory I. Format B. Run Cart J. JV}-Copy C. Copy file K. Binary saveD. Delete L. Binary loadE. Rename M. Run at addressF. Lock W} N. Create Mem.SavG. Unlock O. Move file H. Write Dos 9!&x#!7&p))'&X*./)L''-؆莟X}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1iY}il ! 1L What?Select item! 0 .{z:*{}.|~ 1 0 0Z}JB 18L^%|DLl%Search Filespec? # 0 0 n&|D! 1L NOT A DISK FILE[}N !B 1L " 1 !BDED:}:1BJ|DE 1DEBH\}I 1 h0ߢ 0.  0?詛 1 ~0YЛ 1 "L<" "L ]} BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWED COPYING---DN:^}# 0|D .L$A#B#C#JB|DE 1BHIDD#E 1D#0: B_} 1L B#C#C#B# B 1N#$0SYS1}:e#D# d# D# .d#ȽD# d# 𩛙d#X# 1,A#`}PdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%a} 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C 13= 23 '?> /3 }= 03"3( 2 '?> A3= B3 '?> C3= D3 '?> I3= J3 '?> K3= L343( 2`code buffer zeroed }恦XY L43( 2`labeler compression onlabeler compression offf4f4N4( } 2`f474( 2`+find listing option reset 44( 2`D:CODEBUST.HLPno help file} Help Screen }@BĝD4EJ V 4( 2@ B V` BD4E&HI V@B(DE&HI V0(ɠ >L }K5 QL-5TTACH OOT HANGE ISPLAY NTER IND ELP IST EMORY PEN EAD END NOPENIRTUAL RITE ERO EIT LABELE }RLIST FOUND-1 LIST FOUND DISP FOUNDET UT COMPRESSV (addr) S (D,P,S)E filename O filenameR filename } % filenameB (max # of sectors)D [addr] (# of bytes)C hex or char stringL [addr] (# of instructions)F (F,A) (he }x or char pattern)G (hex sec #) (# of sec) (buff addr)P (hex sec #) (# of sec) (buff addr)W filename lo-addr hi-addr [run- }addr] [init-addr] (alt-adr)(optional), < * , X - /required>[ * , x - /optional]Valid place holders are * , X - }BD5E9HI V`gathering referencesverifying internalassigning labelsF G :G +C/ ` 9 kC EC I: kC E }C C)8( 2 C kC C D C 8" # ) 2` : ; 

R?J R?P }(= ) '?> *= +;? '?> A= B:F}:F}:FiE/ʈ` ? B(DE%HI V< & } B(DE%HI V JDL?; & B(DE%HI V JDL?``%( `詛(` = JJJJ> = ) }= = ii@=  ` ?B :/B B D B C E D ` ?E )E D E E C )D B D D }8E E D D L?` B L?? eiB ` @  @`F L6@A } @ ޽'" @` N@`@ 9B C B :/B B B C @Ȍ@LS@ @`'" L@ }@ @`end of buffer reached݀5@򥒅ii ?A @`iiYXЧ }@( 2`4=#- U'`8  "`  "` LB > R?ee T' }" ZB` B`need source string for changeneed address and string for changeA( 2`"A( 2` 5B  }C B :/B B B C LB tB`' " tB`HH U'hh`   𩛙 }  BD EJ V/ 0 ` JD B ` B V`   𩛙 0BD EJ V/ 0` JD C`0 } B V`   𩛙 @BD EJ V/ 0` JD kC`@ B V`D:CODEBUST.TMPPBvDCEJ V } / JD C`P B V`@B(DE(HI V`D:CODEBUST.TMP,LW0 Cɛ P BԝDCE V JD` }@!BD E V JD`I/O error number iiإ)i0HDJJJJi0GDi0FD5D( 2` }             }             ???A }DCANDASLBCCBCSBEQBITBMIBNEBPLBRKBVCBVSCLCCLDCLICLVCMPCPXCPYDECDEXDEYEORINCINXINYJMPJSRLDALDXLDYLSRNOPORAPHAPHPPLAPLPROLRORRTI }RTSSBCSECSEDSEISTASTXSTYTAXTAYTSXTXATXSTYA ##%## ####('(((-(*!$!!  }!!+)&)) )/)0201620102018070  43  5  } ,,,",,,.,, 6 Codebuster is a delightful toolfor the experienced ATARI hacker. Itis a disassembler that will load anyDOS file into a }buffer and displaythe contents as ASCII, hex, or6502 instructions. It will write outthis same file as a binary load file.}More than one file may be loaded intothe buffer and then rewritten out asone combined file. It will read boot files, but} it won't write out boot files.Press to go on to the nextpage or enter a 'Q' to exit HELP.The next few screen}s contain theformats of the commands availablein this program. All of the commandsare entered through the standard OSinpu}t routines and thus must befollowed by pressing the key.The commands are entered as singlecharacters followed by th}e requiredand/or optional positionalparameters. All addresses must beentered in hex (hhhh). All othernumbers will be in d}ecimal (dddd).Codebuster does not check for validhex or decimal numbers.Here are all the commands available:ttach,} oot, hange, isplay, nter,ind, elp, ist, emory, pen, ead,end, nopen, irtual, rite, eit,ero, labels, comp}ress, lister options, et utPlace holders * , -Filenames do not need the "D:".ttach labels to the disassemb}ly.AThis will turn on the label attachinglogic. Entering the command a secondtime will turn it off. However thelabels }must first be ntered.Read the oot file.B ddddThe decimal number is the max numberof sectors to load. If none iss}pecified all the sectors in the bootfile will be loaded.hange memoryC hhhh hhhhhhhhhhhhhhhhhhhhhhhorC hhhh 'abScef}gh...'Change the contents of memory at hhhhto the hex string or the ASCIIstring. Remember you will be changinga virtual }address which should relateto a section of code in the codebuffer. You can change memoryanywhere in the machine so becare}ful. Using a place holder in theaddress will change memory at thelast found address.isplay the contents of memory.D} hhhh ddddDisplay memory at address hhhh forthe next dddd bytes. This will be avirtual memory address unless a isenter}ed to turn off virtualaddressing. If only a 'D' is enteredthe next default number of bytes willbe displayed. A place holde}r may beused for the address to change thedefault number of bytes withoutchanging the address.nter the label file.}E filename.extEnter the standard named DOS file tobe used to build a table for thelabel attacher. Each entry must havea }$ to start the hex value.LABEL = $hhhh ;commentsorLABEL EQU $hhhh ;commentsThe labels will be placed at the endof }the program moving the user codebuffer up in memory. If you werelooking at some code it will be over-written and the virtu}al addressingwill be incorrect.ind a stringF (F,A) hhhhhhhhhhhhhhhhhhhhorF (F,A) 'abcdefghijThe second F tells c}odebuster to findthe first occurance in the codebuffer. If it is not specified thenext occurance will be searched for.The} A requests codebuster to start atthe front of the buffer and find ALLoccurances of the string. When theend of the buffer }is reached amessage is printed and the findpointer is reset to the front of thebuffer.et sectors from the diskG hhh}h dddd hhhhGet dddd sectors starting with sectorhhhh (first hhhh) and put them atvirtual address (second hhhh). If noadd}ress is given put sectors atbottom of code buffer. If no count ofsectors is given get 1. If no sectoris given get the firs}t sector.ist machine language code.L hhhh ddddList machine language code beginningat hex hhhh for the next ddddin}structions. If the number ofinstructions is entered it becomesthe new default. The standard defaultis a full screen (21). }If only an 'L'is entered the next default number ofinstructions will be listed. A placeholder may be used in the addressf}ield to change the default withoutchanging the address.Display the emory location and thesize of the user code buffer}.MThis probably is of little use to youbut it helped me during developmentand I didn't have the heart to takeit out.}pen the listing disk file.O filename.extThis is the file where all output canbe sent with the end command. Thefil}e must be opened before issuinga isplay or ist command with sendpointing to the disk. Once it is openyou may leave it op}en and end theoutput to the screen or the disk.When you are done you must close(nopen) the file before output canbe sen}t to another file. Many otherscreen messages will go to this filelike the boot file record and binaryload file load ranges}.ut sectors to the diskP hhhh dddd hhhhPut dddd sectors starting at sectorhhhh (first hhhh) from the virtualaddres}s (second hhhh). If no addressis given put sectors from the bottomof the code buffer. If no count ofsectors is given put 1}. If no sectoris given put to the first sector.ead a binary load file into memory.R filename.extAs each block of b}inary load file isencountered the program will promptyou for a response. This allows youto skip, load, or concantenatecer}tain portions of a binary file. Arange that is loaded is placed at thebottom of the buffer. If you load asecond load range} it will overwritethe first and the virtual addressingwill be set to that of the secondload range.You may also concan}tenate a loadrange if it will fit in the buffer.A concantenated load rangewill be placed in the bufferaccording to the vi}rtual addresssetting.For example if the front of thebuffer was set to virtual address$5000 and you tried to concantenate}a load range of $4000 Codebusterwould not allow you to because thatwould place the load range belowthe buffer in the prog}ram area.The address could also be to high.That is beyond the top of free RAM.end output to screen, printer, diskS }Dend output to the open disk file.S Pend output to the printer.S Send output to the screen only.This cancels }end printer and enddisk.Output can be sent to the printer andthe disk at the same time.This entire help file may be} printedby ending it to the printer.nopen the listing disk file.UThis file must be closed in order tosave anythi}ng written to it beforeleaving CODEBUSTER. If you leave withan eit it will close this file foryou, but if you just system} reset thefile will be lost. Sorry about thesilly name. I needed the "C" for thechange function.Set irtual addressin}g.V hhhhIf a "V" is entered by its selfvirtual addressing will be turned offand you will be looking at realaddresses. }If an address is enteredthe start of the code buffer can bereferenced by the address you gave.It is like relocating code }inmemory. The program starts up withvirtual turned off, or in real mode.rite binary fileW filename.ext lo-addr hi-a}ddr run-addr init-addr alt-addrThis command will create a binaryload file from the code buffer. Youmust specify the st}art and end of theblock of memory to write. You mayspecify an alternate address(changing the virtual address will dothe s}ame thing). Either run and orinit addresses may be specified.Place holding characters may be usedon run-addr and init-addr}.eit the CODEBUSTER.XThis will close the listing file andreturn you to DOS.ero out the user code buffer.Z}This will zero out all of theaddresses specified in the emorycommand. When looking at a section ofcode the zeros will he}lp identifywhere the code ends. invoke the internal label processor% filename.extThe input file is an assembly lis}tingfrom CODEBUSTER. Create the file bypening a listing file, listing somecode and nopening the listing file.Then give }the label processorthe file name The labeler willgather up all references and then verify which ones are internal andconv}ert all internal addresses tolabels. All undefined opcodes areconverted to AMAC DB commands. Toggle the compress opti}on@This will place MEDIT tab charactersin and shorten the the output fromthe labeler. It is a space savingfeature.}Lister options list found address - 1 list found address display found addressWhen "finding" ASCII or hex strings}these options determine how to tellyou where the string is. The addessmay be displayed or listed. Listingminus one will al}low you to see theinstruction that is associated withimmediate values or addresses ininstructions. Listing or displayingt}he address found allows you to seeASCII strings or assemblerinstructions.This program is public domain andtherefore f}ree for the giving and getting. My best wishes to allfellow hackers.Don't forget - Who ya gonna call .... } `````````````` `` `Ҡ` `` ``````````````x;------Operating System Equates ------; FOR THE CODEBUSTERCOLDST=$244WARMST=$8CRITIC=$42HATABS=$31ATABMAP}=$2A3FILDAT=$2FDFILFLG=$2B7VPRCED=$202VPRCD2=$203VINTER=$204VINTR2=$205VBREAK=$206VBREK2=$207VKEYBD}=$208VKEYD2=$209VSERIN=$20AVSERN2=$20BVSEROR=$20CVSERR2=$20DVSEROC=$20EVTIMR1=$0210VTIM12=$0211VTI}MR2=$0212VTIM22=$0213VTIMR4=$0214VTIM42=$0215OLDROW=$5AOLDCOL=$5BOLDCL2=$5CTXTROW=$290TXTCOL=$291T}XTCL2=$292LMARGN=$52RMARGN=$53SCRFLG=$2BBRAMSIZ=$2E4CHAR=$2FACDTMV1=$0218CDTM12=$0219VVBLKI=$0222V}VBLI2=$0223VVBLKD=$0224VVBLD2=$0225ATACHR=$2FBAPPMHI=$000EAPPMH2=$0FSOUNDR=$41DFLAGS=$240DBSECT=$24}1BOOTA1=$242BOOTA2=$243DDEVIC=$300DUNIT=$301DCOMND=$302DSTATS=$0303DBUFLO=$304DBUFHI=$305DTIMLO=$3}06DBYTLO=$308DBYTHI=$309DAUX1=$030ADAUX2=$030BSSFLAG=$2FFSHFLOK=$2BEINVFLG=$2B6PRNBUF=$3C0PBUFSZ=$}1EDSKINV=$E453DOSVEC=$0ADOSVC2=$0BDOSINI=$0CDOSIN2=$0DPOKMSK=$10BRKKEY=$11RTCLOK=$12RTCLK2=$13RTC}LK3=$14CDTMV2=$021ACDTMV2=$021BCDTMV3=$021CCDTMV3=$021DCDTMV4=$021ECDTMV4=$021FCDTMV5=$0220CDTMV5=$}0221CDTMF3=$022ACDTMF4=$022CCDTMF5=$022ECDTMA1=$0226CDTMA1=$0227CDTMA2=$0228CDTMA2=$0229VIMIRQ=$0216}VIMIR2=$0217VDSLST=$0200VDSLS2=$0201SRTIMR=$022BSDMCTL=$022FSDLSTL=$0230SDLSTH=$0231SSKCTL=$0232GPRIO}R=$026FPADDL0=$0270STICK0=$0278STICK1=$0279STRIG0=$0284STRIG1=$0285SHFLK=$02BEPCOLR0=$02C0PCOLR1=$0}2C1PCOLR2=$02C2PCOLR3=$02C3COLOR0=$02C4COLOR1=$02C5COLOR2=$02C6COLOR3=$02C7COLOR4=$02C8COLRSH=$4FDRK}MSK=$4ECOLCRS=$55COLCR2=$56ROWCRS=$54CRSINH=$2F0ATRACT=$4DDINDEX=$57SAVMSC=$58RAMTOP=$6AMEMLO=$0}2E7MEMLO2=$02E8MEMTOP=$02E5MEMTP2=$02E6CHACT=$2F3CHBAS=$2F4CH=$02FCICCOM=$0342ICSTA=$0343ICBAL=$03}44ICBAH=$0345ICBLL=$0348ICBLH=$0349ICAX1=$034AICAX2=$034BCIOV=$E456SIOV=$E459SETVBV=$E45CXITVBV=$E}462SYSVBV=$E45FOSRETN=$E474CLICK=$FCD8;---------Hardware Registers ---------HPOSP0=$D000HPOSP1=$D001HPOSP2}=$D002HPOSP3=$D003M0PF=$D000HPOSM0=$D004P0PF=$D004P1PF=$D005P2PF=$D006P3PF=$D007P0PL=$D00CP1PL=$}D00DP2PL=$D00EP3PL=$D00FM0PL=$D008SIZEP0=$D008SIZEP1=$D009SIZEP2=$D00ASIZEP3=$D00BSIZEM=$D00CGRAFP0 }=$D00DTRIG0=$D010GRAFM=$D011COLPM0=$D012COLPF0=$D016COLPF1=$D017COLPF2=$D018COLBK=$D01APRIOR=$D01BV }DELAY=$D01CGRACTL=$D01DHITCLR=$D01ECONSOL=$D01FPOT0=$D200AUDF1=$D200AUDF2=$D202AUDF3=$D204AUDF4=$D2 }06AUDC1=$D201AUDC2=$D203AUDC3=$D205AUDC4=$D207AUDCTL=$D208ALLPOT=$D208KBCODE=$D209STIMER=$D209RANDOM }=$D20APOTGO=$D20BIRQEN=$D20EIRQST=$D20ESKCTL=$D20FSKSTAT=$D20FPORTA=$D300PORTB=$D301DMACTL=$D400CH }ACTL=$D401DLISTL=$D402DLISTH=$D403HSCROL=$D404VSCROL=$D405PMBASE=$D407CHBASE=$D409WSYNC=$D40AVCOUNT=}$D40BNMIEN=$D40ENMIRES=$D40FNMIST=$D40FPBCTL=$D303PACTL=$D302WARMST=$8CRITIC=$42HATABS=$31ATABMAPNB'DOS SYSB+DUP SYSB*UDUP BQ3CODEBUSTER BGCODEBUSTHLPBXSYSTEXT