#!/usr/bin/env perl

# quick and dirty disassembler using gpdasm

$file=shift or die;
open DASM, "gpdasm -p18f452 $file|";

while (<DASM>){
    s/\t0xed,/\tPOSTDEC0,/;
    s/\t0xec,/\tPREINC0,/;
    s/\t0xfe,/\tTOSH,/;
    s/\t0xfd,/\tTOSL,/;

    s/movwf\tPREINC0, 0/DUP/;
    s/movf\tPOSTDEC0, 0, 0/DROP/;
    s/addwf\tPOSTDEC0, 0, 0/+/;

    s/movf\t0xde, 0, 0/W =\t*a++/;
    s/movlw\t/W =\t/;
    s/addlw\t/W +=\t/;

    print;
}

close DASM;

