   Codebuster is a delightful tool¢for the experienced ATARI hacker. It¢is a disassembler that will load any¢DOS file into a buffer and display¢the contents as ASCII, hex, or¢6502 instructions. It will write out¢this same file as a binary load file.¢More than one file may be loaded into¢the buffer and then rewritten out as¢one combined file.¢   It will read boot files, but it ¢won't write out boot files.¢¢¢Press ╥┼╘╒╥╬ to go on to the next¢page or enter a 'Q' to exit HELP.¢á¢¢The next few screens contain the¢formats of the commands available¢in this program. All of the commands¢are entered through the standard OS¢input routines and thus must be¢followed by pressing the ╥┼╘╒╥╬ key.¢The commands are entered as single¢characters followed by the required¢and/or optional positional¢parameters. All addresses must be¢entered in hex (hhhh). All other¢numbers will be in decimal (dddd).¢Codebuster does not check for valid¢hex or decimal numbers.¢¢á¢¢Here are all the commands available:¢¢¢┴ttach, ┬oot, ├hange, ─isplay, ┼nter,¢╞ind, ╚elp, ╠ist, ═emory, ╧pen, ╥ead,¢╙end, ╒nopen, ╓irtual, ╫rite, e╪it,¢┌ero, Ñlabels, └compress, ¡╜½lister ¢options, ╟et ╨ut¢¢¢Place holders  * , -¢¢¢Filenames do not need the "D:".¢¢á¢¢┴ttach labels to the disassembly.¢¢A¢¢This will turn on the label attaching¢logic. Entering the command a second¢time will turn it off. However the¢labels must first be ┼ntered.¢¢á¢¢Read the ┬oot file.¢¢B dddd¢¢The decimal number is the max number¢of sectors to load. If none is¢specified all the sectors in the boot¢file will be loaded.¢¢á¢¢├hange memory¢¢C hhhh hhhhhhhhhhhhhhhhhhhhhhh¢or¢C hhhh 'abScefgh...'¢¢Change the contents of memory at hhhh¢to the hex string or the ASCII¢string. Remember you will be changing¢a virtual address which should relate¢to a section of code in the code¢buffer. You can change memory¢anywhere in the machine so be¢careful. Using a place holder in the¢address will change memory at the¢last found address.¢¢á¢¢─isplay the contents of memory.¢¢D hhhh dddd¢¢Display memory at address hhhh for¢the next dddd bytes. This will be a¢virtual memory address unless a ╓ is¢entered to turn off virtual¢addressing. If only a 'D' is entered¢the next default number of bytes will¢be displayed. A place holder may be¢used for the address to change the¢default number of bytes without¢changing the address.¢¢á¢¢┼nter the label file.¢¢E filename.ext¢¢Enter the standard named DOS file to¢be used to build a table for the¢label attacher. Each entry must have¢a $ to start the hex value.¢¢LABEL  = $hhhh   ;comments¢or¢LABEL  EQU $hhhh ;comments¢¢The labels will be placed at the end¢of the program moving the user code¢buffer up in memory. If you were¢looking at some code it will be over-¢written and the virtual addressing¢will be incorrect.¢¢á¢¢╞ind a string¢¢F (F,A) hhhhhhhhhhhhhhhhhhhh¢or¢F (F,A) 'abcdefghij¢¢The second F tells codebuster to find¢the first occurance in the code¢buffer. If it is not specified the¢next occurance will be searched for.¢The A requests codebuster to start at¢the front of the buffer and find ALL¢occurances of the string. When the¢end of the buffer is reached a¢message is printed and the find¢pointer is reset to the front of the¢buffer.¢¢á¢╟et sectors from the disk¢¢G hhhh dddd hhhh¢¢Get dddd sectors starting with sector¢hhhh (first hhhh) and put them at¢virtual address (second hhhh). If no¢address is given put sectors at¢bottom of code buffer. If no count of¢sectors is given get 1. If no sector¢is given get the first sector.¢¢¢á¢╠ist machine language code.¢¢L hhhh dddd¢¢List machine language code beginning¢at hex hhhh for the next dddd¢instructions. If the number of¢instructions is entered it becomes¢the new default. The standard default¢is a full screen (21). If only an 'L'¢is entered the next default number of¢instructions will be listed. A place¢holder may be used in the address¢field to change the default without¢changing the address.¢¢á¢¢Display the ═emory location and the¢size of the user code buffer.¢¢M¢¢¢This probably is of little use to you¢but it helped me during development¢and I didn't have the heart to take¢it out.¢¢á¢¢╧pen the listing disk file.¢¢O filename.ext¢¢This is the file where all output can¢be sent with the ╙end command. The¢file must be opened before issuing¢a ─isplay or ╠ist command with send¢pointing to the disk. Once it is open¢you may leave it open and ╙end the¢output to the screen or the disk.¢When you are done you must close¢(╒nopen) the file before output can¢be sent to another file. Many other¢screen messages will go to this file¢like the boot file record and binary¢load file load ranges.¢¢á¢╨ut sectors to the disk¢¢P hhhh dddd hhhh¢¢Put dddd sectors starting at sector¢hhhh (first hhhh) from the virtual¢address (second hhhh). If no address¢is given put sectors from the bottom¢of the code buffer. If no count of¢sectors is given put 1. If no sector¢is given put to the first sector.¢¢¢á¢╥ead a binary load file into memory.¢¢R filename.ext¢¢As each block of binary load file is¢encountered the program will prompt¢you for a response. This allows you¢to skip, load, or concantenate¢certain portions of a binary file. A¢range that is loaded is placed at the¢bottom of the buffer. If you load a¢second load range it will overwrite¢the first and the virtual addressing¢will be set to that of the second¢load range.¢¢á¢¢You may also concantenate a load¢range if it will fit in the buffer.¢A concantenated load range¢will be placed in the buffer¢according to the virtual address¢setting.¢¢For example if the front of the¢buffer was set to virtual address¢$5000 and you tried to concantenate¢a load range of $4000 Codebuster¢would not allow you to because that¢would place the load range below¢the buffer in the program area.¢The address could also be to high.¢That is beyond the top of free RAM.¢¢á¢¢╙end output to screen, printer, disk¢¢S D¢¢╙end output to the open disk file.¢¢¢S P¢¢╙end output to the printer.¢¢S S¢¢╙end output to the screen only.¢This cancels ╙end printer and ╙end¢disk.¢¢á¢¢Output can be sent to the printer and¢the disk at the same time.¢¢This entire help file may be printed¢by ╙ending it to the printer.¢¢á¢¢╒nopen the listing disk file.¢¢U¢¢This file must be closed in order to¢save anything written to it before¢leaving CODEBUSTER. If you leave with¢an e╪it it will close this file for¢you, but if you just system reset the¢file will be lost. Sorry about the¢silly name. I needed the "C" for the¢change function.¢¢á¢¢Set ╓irtual addressing.¢¢V hhhh¢¢If a "V" is entered by its self¢virtual addressing will be turned off¢and you will be looking at real¢addresses. If an address is entered¢the start of the code buffer can be¢referenced by the address you gave.¢It is like  relocating code in¢memory. The program starts up with¢virtual turned off, or in real mode.¢¢á¢¢╫rite binary file¢¢W filename.ext lo-addr hi-addr ¢  run-addr init-addr alt-addr¢¢This command will create a binary¢load file from the code buffer. You¢must specify the start and end of the¢block of memory to write. You may¢specify an alternate address¢(changing the virtual address will do¢the same thing). Either run and or¢init addresses may be specified.¢Place holding characters may be used¢on run-addr and init-addr.¢¢á¢¢e╪it the CODEBUSTER.¢¢X¢¢This will close the listing file and¢return you to DOS.¢¢á¢¢┌ero out the user code buffer.¢¢Z¢¢This will zero out all of the¢addresses specified in the ═emory¢command. When looking at a section of¢code the zeros will help identify¢where the code ends.¢¢á¢¢Ñ invoke the internal label processor¢¢% filename.ext¢¢The input file is an assembly listing¢from CODEBUSTER. Create the file by¢╧pening a listing file, listing some¢code and ╒nopening the listing file.¢Then give the label processor¢the file name The labeler will¢gather up all references and then ¢verify which ones are internal and¢convert all internal addresses to¢labels. All undefined opcodes are¢converted to AMAC DB commands.¢¢á¢¢└ Toggle the compress option¢¢@¢¢This will place MEDIT tab characters¢in and shorten the the output from¢the labeler. It is a space saving¢feature.¢¢á¢¢Lister options¢¢¡ list found address - 1¢╜ list found address¢½ display found address¢¢¢When "finding" ASCII or hex strings¢these options determine how to tell¢you where the string is. The addess¢may be displayed or listed. Listing¢minus one will allow you to see the¢instruction that is associated with¢immediate values or addresses in¢instructions. Listing or displaying¢the address found allows you to see¢ASCII strings or assembler¢instructions.¢¢á¢¢This program is public domain and¢therefore free for the giving and ¢getting. My best wishes to all¢fellow hackers.¢¢¢Don't forget -¢¢       Who ya gonna call ....¢¢          ``````````````¢          `áááááááááááá`¢          `á├╧─┼┬╒╙╘┼╥á`¢          `áááááááááááá`¢          ``````````````¢