From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 30828 invoked from network); 28 Aug 2023 21:30:11 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 28 Aug 2023 21:30:11 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id DDC7940FEF; Tue, 29 Aug 2023 07:30:08 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuhs.org; s=dkim; t=1693258208; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post; bh=a85jsIYkYB/hUv8i++zpP41w2C+qo9HyaFLrtu2241o=; b=PGO0zc7nzTmIbzKDDj/2nJv+Thlhuco8rsS9ZIFWGjVDP/VfAmutPuR156xfM8RBgRHyg4 CtL0yGpxoda6J38HntULCUgz0gQBbNtHcOTeyXCKIf2quaOMDKeSU/oP9b72K/VXRY66n3 uCx+qs4qckEyQNW8MO1RSpLw/xlazpE= Received: from mail-4325.protonmail.ch (mail-4325.protonmail.ch [185.70.43.25]) by minnie.tuhs.org (Postfix) with ESMTPS id 9F51A40BA1 for ; Tue, 29 Aug 2023 07:29:57 +1000 (AEST) Date: Mon, 28 Aug 2023 21:29:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1693258195; x=1693517395; bh=a85jsIYkYB/hUv8i++zpP41w2C+qo9HyaFLrtu2241o=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=kzEpqkFaoXKI3Rq8y1tSj3zv3ymuTuPoBAtoO+uHXC1ZDSDnw5YkU3qzNr11lE5Rl Fhjeby0HV5U1M+KxJQ+WRElNtZZrHcli07rEcQGeaLJ00ig8/fjjYA2IyKNnN8qwCX gvcND4+f/an0R4HZiDWXuFPt7zilBiVRjyrRS1pX27p5PKi2DLlAKniT5sJYGXyUkU 5v1ND9tvA0qGCQicaQySy/9ifMEDH+T+3mjWde6eckoq1oxT3ijJt4Smz84W+vRojx Q3SwzzjDoHp2zRfSRESGrqW86cWVA7oXxucFGD+UgqlUAOhHCMPVx8mHFpr8odUZJC hkOXxXTm2XZcg== To: COFF Message-ID: Feedback-ID: 35591162:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LSPZADGBOR3BMVCZUT2HBYZUGQSMYCAY X-Message-ID-Hash: LSPZADGBOR3BMVCZUT2HBYZUGQSMYCAY X-MailFrom: segaloco@protonmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [COFF] Pipeable MCS6500 Family Disassembler List-Id: Computer Old Farts Forum Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: segaloco via COFF Reply-To: segaloco Howdy folks, just wanted to share a tool I wrote up today in case it might = be useful for someone else: https://gitlab.com/segaloco/dis65 This has probably been done before, but this is a bare-bones one-pass MOS 6= 500 disassembler that does nothing more than convert bytes to mnemonics and= parameters, so no labeling, no origins, etc. My rationale is as I work on= my Dragon Quest disassembly, there are times I have to pop a couple bytes = through the disassembler again because something got misaligned or some oth= er weird issue. My disassembler through the project has been da65, which d= oes all the labeling and origin stuff but as such, requires a lot of seekin= g and isn't really amenable to a pipeline, which has required me to do some= thing like: printf "\xAD\xDE\xEF\xBE" > temp.bin && da65 temp.bin && rm temp.bin to get the assembly equivalent of 0xDEADBEEF. Enter my tool, it enables stuff like: printf "\xAD\xDE\xEF\xBE" | dis65 instead. A longer term plan is to then write a second pass that can then d= o all the more sophisticated stuff without having to bury the mnemonic gene= ration down in there somewhere, plus that second pass could then be archite= cture-agnostic to a high degree. Anywho, feel free to do what you want with it, it's BSD licensed. One "bug= " I need to address is that all byte values are presented as unsigned, but = in the case of indirects and a few other circumstances, it would make more = sense for them to be signed. Probably won't jump on that ASAP, but know th= at's a coming improvement. While common in disassemblers, I have no intent= ion on adding things like printing the binary bytes next to the opcodes. A= lso this doesn't support any of the undocumented opcodes, although it shoul= d be trivial to add them if needed. I went with lower-case since my assemb= ler supports it, but you should have a fine time piping into tr(1) if you n= eed all caps for an older assembler. - Matt G.