#!/bin/sh


#	pet	ascii  chr
#	0d ^M	0a	^J
#	A-Z	a-z
#	c1-da	A-Z
#			
#	5c	7c	|

# JCL assembler

#tr '\015A-Za-z\301-\332\\\|\[\{\]\}' '\012a-zA-ZA-Z\|\\\{\[\}\]'
#exit 0

# indent:
#	; 	 => <tab>;
#	<space>; => <tab>;
#	^<2 space> => <null>
#	.byt(e)	 => <tab>.byte
#	.wor(d)	 => <tab>.word
#	.end	 => <tab>.end


#	*=$
#	.if e/n (...) <
#	>

# JCL assembler indent

tr '\015A-Za-z\301-\332\\\|\[\{\]\}#$' '\012a-zA-ZA-Z\|\\\{\[\}\]~^' | sed -e '

s/;/#;/
s/\.byt/#\.byt/
s/\.wor/#\.wor/
s/\.end/#\.end/
s/^\ \ \ \ //
s/^\ \ //

# mnemonics
s/^adc\ /#adc\ /
s/^and\ /#and\ /
s/^asl\ /#asl\ /
s/^bcc\ /#bcc\ /
s/^bcs\ /#bcs\ /
s/^beq\ /#beq\ /
s/^bit\ /#bit\ /
s/^bmi\ /#bmi\ /
s/^bne\ /#bne\ /
s/^bpl\ /#bpl\ /
s/^brk\ /#brk\ /
s/^bvc\ /#bvc\ /
s/^bvs\ /#bvs\ /
s/^clc/#clc/
s/^cld/#cld/
s/^cli/#cli/
s/^clv/#clv/
s/^cmp\ /#cmp\ /
s/^cpx\ /#cpx\ /
s/^cpy\ /#cpy\ /
s/^dec\ /#dec\ /
s/^dex/#dex/
s/^dey/#dey/
s/^eor\ /#eor\ /
s/^inc\ /#inc\ /
s/^inx/#inx/
s/^iny/#iny/
s/^jmp\ /#jmp\ /
s/^jsr\ /#jsr\ /
s/^lda\ /#lda\ /
s/^ldx\ /#ldx\ /
s/^ldy\ /#ldy\ /
s/^lsr\ /#lsr\ /
s/^noop/#noop/
s/^nop/#nop/
s/^ora\ /#ora\ /
s/^pha/#pha/
s/^php/#php/
s/^pla/#pla/
s/^plp/#plp/
s/^rol\ /#rol\ /
s/^ror\ /#ror\ /
s/^rti/#rti/
s/^rts/#rts/
s/^sbc/#sbc/
s/^sec/#sec/
s/^sed/#sed/
s/^sei/#sei/
s/^sta\ /#sta\ /
s/^stx\ /#stx\ /
s/^sty\ /#sty\ /
s/^tax/#tax/
s/^tay/#tay/
s/^tsx/#tsx/
s/^txa/#txa/
s/^txs/#txs/
s/^tya/#tya/

# undocumented commands
s/^anc\ /#anc\ /
s/^ane\ /#ane\ /
s/^arr\ /#arr\ /
s/^asr\ /#asr\ /
s/^dcp\ /#dcp\ /
s/^isb\ /#isb\ /
s/^jam\ /#jam\ /
s/^las\ /#las\ /
s/^lax\ /#lax\ /
s/^lxa\ /#lxa\ /
s/^rla\ /#rla\ /
s/^rra\ /#rra\ /
s/^sax\ /#sax\ /
s/^usbc/#usbc/
s/^sbx\ /#sbx\ /
s/^sha\ /#sha\ /
s/^shs\ /#shs\ /
s/^shx\ /#shx\ /
s/^shy\ /#shy\ /
s/^slo\ /#slo\ /
s/^sre\ /#sre\ /

######################
# lines with a label

# mnemonics
s/\ adc\ /#adc\ /
s/\ and\ /#and\ /
s/\ asl\ /#asl\ /
s/\ bcc\ /#bcc\ /
s/\ bcs\ /#bcs\ /
s/\ beq\ /#beq\ /
s/\ bit\ /#bit\ /
s/\ bmi\ /#bmi\ /
s/\ bne\ /#bne\ /
s/\ bpl\ /#bpl\ /
s/\ brk\ /#brk\ /
s/\ bvc\ /#bvc\ /
s/\ bvs\ /#bvs\ /
s/\ clc/#clc/
s/\ cld/#cld/
s/\ cli/#cli/
s/\ clv/#clv/
s/\ cmp\ /#cmp\ /
s/\ cpx\ /#cpx\ /
s/\ cpy\ /#cpy\ /
s/\ dec\ /#dec\ /
s/\ dex/#dex/
s/\ dey/#dey/
s/\ eor\ /#eor\ /
s/\ inc\ /#inc\ /
s/\ inx/#inx/
s/\ iny/#iny/
s/\ jmp\ /#jmp\ /
s/\ jsr\ /#jsr\ /
s/\ lda\ /#lda\ /
s/\ ldx\ /#ldx\ /
s/\ ldy\ /#ldy\ /
s/\ lsr\ /#lsr\ /
s/\ noop/#noop/
s/\ nop/#nop/
s/\ ora\ /#ora\ /
s/\ pha/#pha/
s/\ php/#php/
s/\ pla/#pla/
s/\ plp/#plp/
s/\ rol\ /#rol\ /
s/\ ror\ /#ror\ /
s/\ rti/#rti/
s/\ rts/#rts/
s/\ sbc\ /#sbc\ /
s/\ sec\ /#sec/
s/\ sed/#sed/
s/\ sei/#sei/
s/\ sta\ /#sta\ /
s/\ stx\ /#stx\ /
s/\ sty\ /#sty\ /
s/\ tax/#tax/
s/\ tay/#tay/
s/\ tsx/#tsx/
s/\ txa/#txa/
s/\ txs/#txs/
s/\ tya/#tya/

# undocumented commands
s/\ anc\ /#anc\ /
s/\ ane\ /#ane\ /
s/\ arr\ /#arr\ /
s/\ asr\ /#asr\ /
s/\ dcp\ /#dcp\ /
s/\ isb\ /#isb\ /
s/\ jam\ /#jam\ /
s/\ las\ /#las\ /
s/\ lax\ /#lax\ /
s/\ lxa\ /#lxa\ /
s/\ rla\ /#rla\ /
s/\ rra\ /#rra\ /
s/\ sax\ /#sax\ /
s/\ usbc/#usbc/
s/\ sbx\ /#sbx\ /
s/\ sha\ /#sha\ /
s/\ shs\ /#shs\ /
s/\ shx\ /#shx\ /
s/\ shy\ /#shy\ /
s/\ slo\ /#slo\ /
s/\ sre\ /#sre\ /
' | tr "#~^" "\011#$"
