Frankenstein Cross Assemblers, 6502 flavor, part 1 of 2

Mark Zenier markz at ssc.UUCP
Thu Dec 6 18:19:51 AEST 1990


---- Cut Here and feed the following to sh ----
#!/bin/sh
# This is Frankasm/As6502, a shell archive (shar 3.43)
# made 12/04/1990 08:45 UTC by markz at ssc.uucp
# Source directory /usr/mark/frank.shar
#
# existing files will NOT be overwritten unless -c is specified
# This format requires very little intelligence at unshar time.
# "if test", "echo", "true", and "sed" may be needed.
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   1648 -r--r----- as6502.1
#   9447 -r--r----- as6502.doc
#   2771 -r--r----- as6502.tst
#   5954 -r--r--r-- as6502.tut
#  41188 -r--r--r-- as6502.y
#
# ============= as6502.1 ==============
if test -f 'as6502.1' -a X"$1" != X"-c"; then
	echo 'x - skipping as6502.1 (File already exists)'
else
echo 'x - extracting as6502.1 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'as6502.1' &&
X.TH AS6502 1L
X.SH NAME
Xas6502, as65c00, asr65c00 \- cross assemblers for microcomputers
X.SH SYNOPSIS
X.nf
Xas6502 [-p cpu] [-l listfile] [-o hexfile] [-d] [-s symbolfile] input
Xas65c00 [-p cpu] [-l listfile] [-o hexfile] [-d] [-s symbolfile] input
Xasr65c00 [-p cpu] [-l listfile] [-o hexfile] [-d] [-s symbolfile] input
X.fi
X.SH DESCRIPTION
XThe as6502, as65c00, asr65c00 command assembles the input file into a
Xtext output file representing the program memory for a microcomputer.
X
XOptions
X.IP "-p cpu"
XOverride the instruction set selection.
X.RS 10
XValid Values for Cpu
X.RS 5
X65, 65c, r65, r65c, 21
X.RE
X.RE
X.IP "-l listfile"
XOutput a file formated with the memory address, data, and source input lines.
X.IP "-o hexfile"
XOutput the memory data image in a form accepted by most prom programmers.
X.IP "-h hexfile"
XSame as \-o.
X.IP \-d
XSave the intermediate data file (see FILE) and abort the execution at the
Xend of processing.
X.IP "-s symbolfile"
XPrint the symbol table values and names, one per line in the specified file.
X.SH FILES
X/usr/tmp/frtXXXXXX
X.SH SEE ALSO
XFrankenstein Cross Assemblers Users Manual (file base.doc)
XAppendix for as6502 Frankenstein Assembler (file as6502.doc)
X.SH NOTES
XThere is only one input file.
X
XThe program can select which subset of instructions is accepted.
XThe program first uses the name with which it is invoked.
XThis is scanned for a substring which indicates which set to use.
XThe -p options overrides this selction by performing the same substring
Xsearch.
XFinally the input file can select which subset to use with the CPU statement.
X
XThere should only be one executable file with all of its names linked to it.
SHAR_EOF
true || echo 'restore of as6502.1 failed'
fi
# ============= as6502.doc ==============
if test -f 'as6502.doc' -a X"$1" != X"-c"; then
	echo 'x - skipping as6502.doc (File already exists)'
else
echo 'x - extracting as6502.doc (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'as6502.doc' &&
X.HM A 1 1 1 1 1 1
X.H 1 "Appendix for as6502 Frankenstein Assembler"
X.H 2 "Pseudo Operations"
X.H 3 "Standard Pseudo Operation Mnemonics"
X.VL 40 5 1
X.LI "End"
XEND
X.LI "File Inclusion"
XINCL
XINCLUDE
X.LI "If"
XIF
X.LI "Else"
XELSE
X.LI "End If"
XENDI
X.LI "Equate"
XEQU
X.LI "Set"
XSET
X.LI "Org"
XORG
X.LI "Reserve Memory"
XRESERVE
XRMB
X.LI "Define Byte Data"
XBYTE
XDB
XFCB
X.LI "Define Word Data"
XDW
XFDB
XWORD
X.LI "Define String Data"
XFCC
XSTRING
X.LI "Define Character Set Translation"
XCHARSET
X.LI "Define Character Value"
XCHARDEF
XCHD
X.LI "Use Character Translation"
XCHARUSE
X.LE
X.H 3 "Machine Dependent Pseudo Operations"
X.H 4 "Define Word Data"
XThe define word pseudo-operations generates the byte reversed (low byte, high
Xbyte) representation.
X.H 4 "Instruction Set Selection"
X.DS I N
XCPU string
X.DE
XThe instruction set can be specified in the source file with the CPU 
Xpseudooperation.
XThe string, delimited by quotes or apostrophes, is scanned for a
Xsubstring which selects which instruction set is used.
XWhen the program is invoked, this operation is performed on the name of
Xthe program, then the -p optional arguement, if any, and then any CPU
Xstatements.
XThe last one selects which subset of the instructions the assembler will
Xaccept.
XThe instruction set can be changed at any place in the source file. 
X.DS
X.VL 30 5 1
X.LI "Instruction Set"
XSubstrings
X.LI "ROCKWELL CMOS"
XR65C
Xr65c
X.LI "CMOS"
X65C
X65c
X.LI "ROCKWELL Extended"
XR65
Xr65
X.LI "R65C00/21"
X21
X.LI "Standard NMOS"
X65
X.LE
X.DE
X.H 2 "Instructions"
X.H 3 "Instruction List"
X.TS H
X;
Xl l l.
XOpcode	Syntax	Selection Criteria
X.sp
X.TH
X.sp
XADC	 '#' topexpr
XADC	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XADC	 '(' topexpr ')'	DIRECT INSTCMOS
XADC	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XADC	 topexpr ',' INDEX	DIRECT INDEXX
XADC	 topexpr ',' INDEX	EXTENDED INDEXX
XADC	 topexpr ',' INDEX	INDEXY
XADC	 topexpr	DIRECT
XADC	 topexpr	EXTENDED
X.sp
XAND	 '#' topexpr
XAND	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XAND	 '(' topexpr ')'	DIRECT INSTCMOS
XAND	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XAND	 topexpr ',' INDEX	DIRECT INDEXX
XAND	 topexpr ',' INDEX	EXTENDED INDEXX
XAND	 topexpr ',' INDEX	INDEXY
XAND	 topexpr	DIRECT
XAND	 topexpr	EXTENDED
X.sp
XASL	 ACCUM
XASL	 topexpr ',' INDEX	DIRECT INDEXX
XASL	 topexpr ',' INDEX	EXTENDED INDEXX
XASL	 topexpr	DIRECT
XASL	 topexpr	EXTENDED
X.sp
XBBR0	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR1	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR2	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR3	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR4	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR5	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR6	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBR7	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS0	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS1	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS2	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS3	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS4	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS5	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS6	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBBS7	 topexpr ',' topexpr	INSTROCKWELL
X.sp
XBCC	 topexpr
X.sp
XBCS	 topexpr
X.sp
XBEQ	 topexpr
X.sp
XBGE	 topexpr
X.sp
XBIT	 '#' topexpr	INSTCMOS
XBIT	 topexpr ',' INDEX	DIRECT INDEXX INSTCMOS
XBIT	 topexpr ',' INDEX	EXTENDED INDEXX INSTCMOS
XBIT	 topexpr	DIRECT
XBIT	 topexpr	EXTENDED
X.sp
XBLT	 topexpr
X.sp
XBMI	 topexpr
X.sp
XBNE	 topexpr
X.sp
XBPL	 topexpr
X.sp
XBRA	 topexpr	INST21
XBRA	 topexpr	INSTCMOS
X.sp
XBRK	 '#' topexpr
XBRK	
X.sp
XBVC	 topexpr
X.sp
XBVS	 topexpr
X.sp
XCLC	
X.sp
XCLD	
X.sp
XCLI	
X.sp
XCLV	
X.sp
XCMP	 '#' topexpr
XCMP	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XCMP	 '(' topexpr ')'	DIRECT INSTCMOS
XCMP	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XCMP	 topexpr ',' INDEX	DIRECT INDEXX
XCMP	 topexpr ',' INDEX	EXTENDED INDEXX
XCMP	 topexpr ',' INDEX	INDEXY
XCMP	 topexpr	DIRECT
XCMP	 topexpr	EXTENDED
X.sp
XCPX	 '#' topexpr
XCPX	 topexpr	DIRECT
XCPX	 topexpr	EXTENDED
X.sp
XCPY	 '#' topexpr
XCPY	 topexpr	DIRECT
XCPY	 topexpr	EXTENDED
X.sp
XDEC	 ACCUM	INSTCMOS
XDEC	 topexpr ',' INDEX	DIRECT INDEXX
XDEC	 topexpr ',' INDEX	EXTENDED INDEXX
XDEC	 topexpr	DIRECT
XDEC	 topexpr	EXTENDED
X.sp
XDEX	
X.sp
XDEY	
X.sp
XEOR	 '#' topexpr
XEOR	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XEOR	 '(' topexpr ')'	DIRECT INSTCMOS
XEOR	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XEOR	 topexpr ',' INDEX	DIRECT INDEXX
XEOR	 topexpr ',' INDEX	EXTENDED INDEXX
XEOR	 topexpr ',' INDEX	INDEXY
XEOR	 topexpr	DIRECT
XEOR	 topexpr	EXTENDED
X.sp
XINC	 ACCUM	INSTCMOS
XINC	 topexpr ',' INDEX	DIRECT INDEXX
XINC	 topexpr ',' INDEX	EXTENDED INDEXX
XINC	 topexpr	DIRECT
XINC	 topexpr	EXTENDED
X.sp
XINX	
X.sp
XINY	
X.sp
XJMP	 '(' topexpr ')'
XJMP	 '(' topexpr ',' INDEX ')'	INSTCMOS INDEXX
XJMP	 topexpr
X.sp
XJSR	 topexpr
X.sp
XLDA	 '#' topexpr
XLDA	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XLDA	 '(' topexpr ')'	DIRECT INSTCMOS
XLDA	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XLDA	 topexpr ',' INDEX	DIRECT INDEXX
XLDA	 topexpr ',' INDEX	EXTENDED INDEXX
XLDA	 topexpr ',' INDEX	INDEXY
XLDA	 topexpr	DIRECT
XLDA	 topexpr	EXTENDED
X.sp
XLDX	 '#' topexpr
XLDX	 topexpr ',' INDEX	DIRECT INDEXY
XLDX	 topexpr ',' INDEX	EXTENDED INDEXY
XLDX	 topexpr	DIRECT
XLDX	 topexpr	EXTENDED
X.sp
XLDY	 '#' topexpr
XLDY	 topexpr ',' INDEX	DIRECT INDEXX
XLDY	 topexpr ',' INDEX	EXTENDED INDEXX
XLDY	 topexpr	DIRECT
XLDY	 topexpr	EXTENDED
X.sp
XLSR	 ACCUM
XLSR	 topexpr ',' INDEX	DIRECT INDEXX
XLSR	 topexpr ',' INDEX	EXTENDED INDEXX
XLSR	 topexpr	DIRECT
XLSR	 topexpr	EXTENDED
X.sp
XMUL		INST21
X.sp
XNOP	
X.sp
XORA	 '#' topexpr
XORA	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XORA	 '(' topexpr ')'	DIRECT INSTCMOS
XORA	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XORA	 topexpr ',' INDEX	DIRECT INDEXX
XORA	 topexpr ',' INDEX	EXTENDED INDEXX
XORA	 topexpr ',' INDEX	INDEXY
XORA	 topexpr	DIRECT
XORA	 topexpr	EXTENDED
X.sp
XPHA	
X.sp
XPHP	
X.sp
XPHX		INST21
XPHX		INSTCMOS
X.sp
XPHY		INST21
XPHY		INSTCMOS
X.sp
XPLA	
X.sp
XPLP	
X.sp
XPLX		INST21
XPLX		INSTCMOS
X.sp
XPLY		INST21
XPLY		INSTCMOS
X.sp
XRMB0	 topexpr	INSTROCKWELL
X.sp
XRMB1	 topexpr	INSTROCKWELL
X.sp
XRMB2	 topexpr	INSTROCKWELL
X.sp
XRMB3	 topexpr	INSTROCKWELL
X.sp
XRMB4	 topexpr	INSTROCKWELL
X.sp
XRMB5	 topexpr	INSTROCKWELL
X.sp
XRMB6	 topexpr	INSTROCKWELL
X.sp
XRMB7	 topexpr	INSTROCKWELL
X.sp
XROL	 ACCUM
XROL	 topexpr ',' INDEX	DIRECT INDEXX
XROL	 topexpr ',' INDEX	EXTENDED INDEXX
XROL	 topexpr	DIRECT
XROL	 topexpr	EXTENDED
X.sp
XROR	 ACCUM
XROR	 topexpr ',' INDEX	DIRECT INDEXX
XROR	 topexpr ',' INDEX	EXTENDED INDEXX
XROR	 topexpr	DIRECT
XROR	 topexpr	EXTENDED
X.sp
XRTI	
X.sp
XRTS	
X.sp
XSBC	 '#' topexpr
XSBC	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XSBC	 '(' topexpr ')'	DIRECT INSTCMOS
XSBC	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XSBC	 topexpr ',' INDEX	DIRECT INDEXX
XSBC	 topexpr ',' INDEX	EXTENDED INDEXX
XSBC	 topexpr ',' INDEX	INDEXY
XSBC	 topexpr	DIRECT
XSBC	 topexpr	EXTENDED
X.sp
XSEC	
X.sp
XSED	
X.sp
XSEI	
X.sp
XSMB0	 topexpr	INSTROCKWELL
X.sp
XSMB1	 topexpr	INSTROCKWELL
X.sp
XSMB2	 topexpr	INSTROCKWELL
X.sp
XSMB3	 topexpr	INSTROCKWELL
X.sp
XSMB4	 topexpr	INSTROCKWELL
X.sp
XSMB5	 topexpr	INSTROCKWELL
X.sp
XSMB6	 topexpr	INSTROCKWELL
X.sp
XSMB7	 topexpr	INSTROCKWELL
X.sp
XSTA	 '(' topexpr ')' ',' INDEX	DIRECT INDEXY
XSTA	 '(' topexpr ')'	DIRECT INSTCMOS
XSTA	 '(' topexpr ',' INDEX ')'	DIRECT INDEXX
XSTA	 topexpr ',' INDEX	DIRECT INDEXX
XSTA	 topexpr ',' INDEX	EXTENDED INDEXX
XSTA	 topexpr ',' INDEX	INDEXY
XSTA	 topexpr	DIRECT
XSTA	 topexpr	EXTENDED
X.sp
XSTX	 topexpr ',' INDEX	DIRECT INDEXY
XSTX	 topexpr	DIRECT
XSTX	 topexpr	EXTENDED
X.sp
XSTY	 topexpr ',' INDEX	DIRECT INDEXX
XSTY	 topexpr	DIRECT
XSTY	 topexpr	EXTENDED
X.sp
XSTZ	 topexpr ',' INDEX	DIRECT INDEXX INSTCMOS
XSTZ	 topexpr ',' INDEX	EXTENDED INDEXX INSTCMOS
XSTZ	 topexpr	DIRECT INSTCMOS
XSTZ	 topexpr	EXTENDED INSTCMOS
X.sp
XTAX	
X.sp
XTAY	
X.sp
XTRB	 topexpr	DIRECT INSTCMOS
XTRB	 topexpr	EXTENDED INSTCMOS
X.sp
XTSB	 topexpr	DIRECT INSTCMOS
XTSB	 topexpr	EXTENDED INSTCMOS
X.sp
XTSX	
X.sp
XTXA	
X.sp
XTXS	
X.sp
XTYA	
X.TE
X.H 3 "Operands"
X.VL 25 5
X.LI ACCUM
XThe a or (A) reserved symbol
X.LI INDEX
XThe x or y (or X or Y) reserved symbols
X.LE
X.H 3 "Selection Criteria Keywords"
X.VL 25 5 
X.LI DIRECT
XThe instruction can use the direct addressing mode.  
XThe expression must have a value between 0 and 255 that is defined when the
Xinstruction is processed in the input pass.
X.LI EXTENDED
XThe instruction can use the extended (16 bit address) mode.
X.LI INDEXX
XThe instruction can use the X index.
X.LI INDEXY
XThe instruction can use the Y index.
X.LI INSTCMOS
XThe instruction is in the CMOS and ROCKWELL CMOS instruction sets.
X.LI INSTROCKWELL
XThe instruction is in the ROCKWELL, ROCKWELL CMOS, and R65c00/21 instruction
Xsets.
X.LI INST21
XThe instruction is in the R65c00/21 instruction set.
X.LE
X.H 3 "Apostrophes"
XThe apostrophes in the syntax field are a notation used for the
Xparser generator and are not put in the assembler source statement.
X.H 2 "Notes"
X.H 3 "Top Expressions"
XThe syntax of some of the instructions combined with the standard expression
Xsyntax resulted in confusion whether an operand was an expression surrounded 
Xby parenthesis, or a indexed reference.  
XTo get around this, the expressions in these ambiguous cases were restricted
Xto those forms of expression that don't have surrounding parenthesis at the 
Xtop level.
XSubexpressions may be parenthesized, but only if an operator seperates or
Xprecedes the subexpression.
X.DS I N
XExample
X.SP
Xlda 47h,y	; load absolute, y 
Xlda +(47h),y	; load absolute, y 
Xlda (47h),y	; load (indirect), y 
Xlda ((47h)),y	; error
X.DE
X.H 3 "Reserved Symbols"
X.H 4 "Machine Dependent Reserved Symbols"
XA
XX
XY
Xa
Xx
Xy
X.H 4 "Standard Reserved Symbols"
XAND
XDEFINED
XEQ
XGE
XGT
XHIGH
XLE
XLOW
XLT
XMOD
XNE
XNOT
XOR
XSHL
XSHR
XXOR
Xand
Xdefined
Xeq
Xge
Xgt
Xhigh
Xle
Xlow
Xlt
Xmod
Xne
Xnot
Xor
Xshl
Xshr
Xxor
X.TC 1 1 7
SHAR_EOF
true || echo 'restore of as6502.doc failed'
fi
# ============= as6502.tst ==============
if test -f 'as6502.tst' -a X"$1" != X"-c"; then
	echo 'x - skipping as6502.tst (File already exists)'
else
echo 'x - extracting as6502.tst (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'as6502.tst' &&
X	cpu	"r65c"
Ximmed	equ	$55
Xdirect	equ	$44
Xextend	equ	$1234
X	adc	# immed
X	adc	( direct, x )
X	adc	(direct)
X	adc	(direct),y
X	adc	direct
X	adc	direct,x
X	adc	extend
X	adc	extend,x
X	adc	extend,y
X	and	# immed
X	and	( direct, x )
X	and	(direct)
X	and	(direct),y
X	and	direct
X	and	direct,x
X	and	extend
X	and	extend,x
X	and	extend,y
X	asl	a
X	asl	direct
X	asl	direct,x
X	asl	extend
X	asl	extend,x
X	bbr0	direct, jmpdst
X	bbr1	direct, jmpdst
X	bbr2	direct, jmpdst
X	bbr3	direct, jmpdst
X	bbr4	direct, jmpdst
X	bbr5	direct, jmpdst
X	bbr6	direct, jmpdst
X	bbr7	direct, jmpdst
X	bbs0	direct, jmpdst
X	bbs1	direct, jmpdst
X	bbs2	direct, jmpdst
X	bbs3	direct, jmpdst
X	bbs4	direct, jmpdst
X	bbs5	direct, jmpdst
X	bbs6	direct, jmpdst
X	bbs7	direct, jmpdst
Xjmpdst	bcc	jmpdst
X	bcs	jmpdst
X	beq	jmpdst
X	bge	jmpdst
X	bit	# immed
X	bit	direct
X	bit	direct ,x
X	bit	extend
X	bit	extend, x
X	blt	jmpdst
X	bmi	jmpdst
X	bne	jmpdst
X	bpl	jmpdst
X	bra	jmpdst
X	brk
X	brk	#99
X	bvc	jmpdst
X	bvs	jmpdst
X	clc
X	cld
X	cli
X	clv
X	cmp	# immed
X	cmp	( direct, x )
X	cmp	(direct)
X	cmp	(direct),y
X	cmp	direct
X	cmp	direct,x
X	cmp	extend
X	cmp	extend,x
X	cmp	extend,y
X	cpx	# immed
X	cpx	direct
X	cpx	extend
X	cpy	# immed
X	cpy	direct
X	cpy	extend
X	dec	a
X	dec	direct
X	dec	direct,x
X	dec	extend
X	dec	extend,x
X	dex
X	dey
X	eor	# immed
X	eor	( direct, x )
X	eor	(direct)
X	eor	(direct),y
X	eor	direct
X	eor	direct,x
X	eor	extend
X	eor	extend,x
X	eor	extend,y
X	inc	a
X	inc	direct
X	inc	direct,x
X	inc	extend
X	inc	extend,x
X	inx
X	iny
X	jmp	(jmpdst)
X	jmp	(jmpdst,x)
X	jmp	jmpdst
X	jsr	jmpdst
X	lda	# immed
X	lda	( direct, x )
X	lda	(direct)
X	lda	(direct),y
X	lda	direct
X	lda	direct,x
X	lda	extend
X	lda	extend,x
X	lda	extend,y
X	ldx	# immed
X	ldx	direct
X	ldx	direct ,y
X	ldx	extend
X	ldx	extend, y
X	ldy	# immed
X	ldy	direct
X	ldy	direct ,x
X	ldy	extend
X	ldy	extend, x
X	lsr	a
X	lsr	direct
X	lsr	direct,x
X	lsr	extend
X	lsr	extend,x
X	mul
X	nop
X	ora	# immed
X	ora	( direct, x )
X	ora	(direct)
X	ora	(direct),y
X	ora	direct
X	ora	direct,x
X	ora	extend
X	ora	extend,x
X	ora	extend,y
X	pha
X	php
X	phx
X	phy
X	pla
X	plp
X	plx
X	ply
X	rmb0	direct
X	rmb1	direct
X	rmb2	direct
X	rmb3	direct
X	rmb4	direct
X	rmb5	direct
X	rmb6	direct
X	rmb7	direct
X	rol	a
X	rol	direct
X	rol	direct,x
X	rol	extend
X	rol	extend,x
X	ror	a
X	ror	direct
X	ror	direct,x
X	ror	extend
X	ror	extend,x
X	rti
X	rts
X	sbc	# immed
X	sbc	( direct, x )
X	sbc	(direct)
X	sbc	(direct),y
X	sbc	direct
X	sbc	direct,x
X	sbc	extend
X	sbc	extend,x
X	sbc	extend,y
X	sec
X	sed
X	sei
X	smb0	direct
X	smb1	direct
X	smb2	direct
X	smb3	direct
X	smb4	direct
X	smb5	direct
X	smb6	direct
X	smb7	direct
X	sta	( direct, x )
X	sta	(direct)
X	sta	(direct),y
X	sta	direct
X	sta	direct,x
X	sta	extend
X	sta	extend,x
X	sta	extend,y
X	stx	direct
X	stx	direct,y
X	stx	extend
X	sty	direct
X	sty	direct,x
X	sty	extend
X	stz	direct
X	stz	direct ,x
X	stz	extend
X	stz	extend, x
X	tax
X	tay
X	trb	direct
X	trb	extend
X	tsb	direct
X	tsb	extend
X	tsx
X	txa
X	txs
X	tya
SHAR_EOF
true || echo 'restore of as6502.tst failed'
fi
# ============= as6502.tut ==============
if test -f 'as6502.tut' -a X"$1" != X"-c"; then
	echo 'x - skipping as6502.tut (File already exists)'
else
echo 'x - extracting as6502.tut (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'as6502.tut' &&
X00000055 immed            00000044 direct           00001234 extend           
X00000065 jmpdst           
X				cpu	"r65c"
X 0x55                   immed	equ	$55
X 0x44                   direct	equ	$44
X 0x1234                 extend	equ	$1234
X0000 69 55 			adc	# immed
X0002 61 44 			adc	( direct, x )
X0004 72 44 			adc	(direct)
X0006 71 44 			adc	(direct),y
X0008 65 44 			adc	direct
X000a 75 44 			adc	direct,x
X000c 6d 34 12 			adc	extend
X000f 7d 34 12 			adc	extend,x
X0012 79 34 12 			adc	extend,y
X0015 29 55 			and	# immed
X0017 21 44 			and	( direct, x )
X0019 32 44 			and	(direct)
X001b 31 44 			and	(direct),y
X001d 25 44 			and	direct
X001f 35 44 			and	direct,x
X0021 2d 34 12 			and	extend
X0024 3d 34 12 			and	extend,x
X0027 39 34 12 			and	extend,y
X002a 0a 			asl	a
X002b 06 44 			asl	direct
X002d 16 44 			asl	direct,x
X002f 0e 34 12 			asl	extend
X0032 1e 34 12 			asl	extend,x
X0035 0f 44 2d 			bbr0	direct, jmpdst
X0038 1f 44 2a 			bbr1	direct, jmpdst
X003b 2f 44 27 			bbr2	direct, jmpdst
X003e 3f 44 24 			bbr3	direct, jmpdst
X0041 4f 44 21 			bbr4	direct, jmpdst
X0044 5f 44 1e 			bbr5	direct, jmpdst
X0047 6f 44 1b 			bbr6	direct, jmpdst
X004a 7f 44 18 			bbr7	direct, jmpdst
X004d 8f 44 15 			bbs0	direct, jmpdst
X0050 9f 44 12 			bbs1	direct, jmpdst
X0053 af 44 0f 			bbs2	direct, jmpdst
X0056 bf 44 0c 			bbs3	direct, jmpdst
X0059 cf 44 09 			bbs4	direct, jmpdst
X005c df 44 06 			bbs5	direct, jmpdst
X005f ef 44 03 			bbs6	direct, jmpdst
X0062 ff 44 00 			bbs7	direct, jmpdst
X0065 90 fe 		jmpdst	bcc	jmpdst
X0067 b0 fc 			bcs	jmpdst
X0069 f0 fa 			beq	jmpdst
X006b b0 f8 			bge	jmpdst
X006d 89 55 			bit	# immed
X006f 24 44 			bit	direct
X0071 34 44 			bit	direct ,x
X0073 2c 34 12 			bit	extend
X0076 3c 34 12 			bit	extend, x
X0079 90 ea 			blt	jmpdst
X007b 30 e8 			bmi	jmpdst
X007d d0 e6 			bne	jmpdst
X007f 10 e4 			bpl	jmpdst
X0081 80 e2 			bra	jmpdst
X0083 00 			brk
X0084 00 63 			brk	#99
X0086 50 dd 			bvc	jmpdst
X0088 70 db 			bvs	jmpdst
X008a 18 			clc
X008b d8 			cld
X008c 58 			cli
X008d b8 			clv
X008e c9 55 			cmp	# immed
X0090 c1 44 			cmp	( direct, x )
X0092 d2 44 			cmp	(direct)
X0094 d1 44 			cmp	(direct),y
X0096 c5 44 			cmp	direct
X0098 d5 44 			cmp	direct,x
X009a cd 34 12 			cmp	extend
X009d dd 34 12 			cmp	extend,x
X00a0 d9 34 12 			cmp	extend,y
X00a3 e0 55 			cpx	# immed
X00a5 e4 44 			cpx	direct
X00a7 ec 34 12 			cpx	extend
X00aa c0 55 			cpy	# immed
X00ac c4 44 			cpy	direct
X00ae cc 34 12 			cpy	extend
X00b1 3a 			dec	a
X00b2 c6 44 			dec	direct
X00b4 d6 44 			dec	direct,x
X00b6 ce 34 12 			dec	extend
X00b9 de 34 12 			dec	extend,x
X00bc ca 			dex
X00bd 88 			dey
X00be 49 55 			eor	# immed
X00c0 41 44 			eor	( direct, x )
X00c2 52 44 			eor	(direct)
X00c4 51 44 			eor	(direct),y
X00c6 45 44 			eor	direct
X00c8 55 44 			eor	direct,x
X00ca 4d 34 12 			eor	extend
X00cd 5d 34 12 			eor	extend,x
X00d0 59 34 12 			eor	extend,y
X00d3 1a 			inc	a
X00d4 e6 44 			inc	direct
X00d6 f6 44 			inc	direct,x
X00d8 ee 34 12 			inc	extend
X00db fe 34 12 			inc	extend,x
X00de e8 			inx
X00df c8 			iny
X00e0 6c 65 00 			jmp	(jmpdst)
X00e3 7c 65 00 			jmp	(jmpdst,x)
X00e6 4c 65 00 			jmp	jmpdst
X00e9 20 65 00 			jsr	jmpdst
X00ec a9 55 			lda	# immed
X00ee a1 44 			lda	( direct, x )
X00f0 b2 44 			lda	(direct)
X00f2 b1 44 			lda	(direct),y
X00f4 a5 44 			lda	direct
X00f6 b5 44 			lda	direct,x
X00f8 ad 34 12 			lda	extend
X00fb bd 34 12 			lda	extend,x
X00fe b9 34 12 			lda	extend,y
X0101 a2 55 			ldx	# immed
X0103 a6 44 			ldx	direct
X0105 b6 44 			ldx	direct ,y
X0107 ae 34 12 			ldx	extend
X010a be 34 12 			ldx	extend, y
X010d a0 55 			ldy	# immed
X010f a4 44 			ldy	direct
X0111 b4 44 			ldy	direct ,x
X0113 ac 34 12 			ldy	extend
X0116 bc 34 12 			ldy	extend, x
X0119 4a 			lsr	a
X011a 46 44 			lsr	direct
X011c 56 44 			lsr	direct,x
X011e 4e 34 12 			lsr	extend
X0121 5e 34 12 			lsr	extend,x
X				mul
X ERROR - invalid operands/illegal instruction for cpu
X0124 ea 			nop
X0125 09 55 			ora	# immed
X0127 01 44 			ora	( direct, x )
X0129 12 44 			ora	(direct)
X012b 11 44 			ora	(direct),y
X012d 05 44 			ora	direct
X012f 15 44 			ora	direct,x
X0131 0d 34 12 			ora	extend
X0134 1d 34 12 			ora	extend,x
X0137 19 34 12 			ora	extend,y
X013a 48 			pha
X013b 08 			php
X013c da 			phx
X013d 5a 			phy
X013e 68 			pla
X013f 28 			plp
X0140 fa 			plx
X0141 7a 			ply
X0142 07 44 			rmb0	direct
X0144 17 44 			rmb1	direct
X0146 27 44 			rmb2	direct
X0148 37 44 			rmb3	direct
X014a 47 44 			rmb4	direct
X014c 57 44 			rmb5	direct
X014e 67 44 			rmb6	direct
X0150 77 44 			rmb7	direct
X0152 2a 			rol	a
X0153 26 44 			rol	direct
X0155 36 44 			rol	direct,x
X0157 2e 34 12 			rol	extend
X015a 3e 34 12 			rol	extend,x
X015d 6a 			ror	a
X015e 66 44 			ror	direct
X0160 76 44 			ror	direct,x
X0162 6e 34 12 			ror	extend
X0165 7e 34 12 			ror	extend,x
X0168 40 			rti
X0169 60 			rts
X016a e9 55 			sbc	# immed
X016c e1 44 			sbc	( direct, x )
X016e f2 44 			sbc	(direct)
X0170 f1 44 			sbc	(direct),y
X0172 e5 44 			sbc	direct
X0174 f5 44 			sbc	direct,x
X0176 ed 34 12 			sbc	extend
X0179 fd 34 12 			sbc	extend,x
X017c f9 34 12 			sbc	extend,y
X017f 38 			sec
X0180 f8 			sed
X0181 78 			sei
X0182 87 44 			smb0	direct
X0184 97 44 			smb1	direct
X0186 a7 44 			smb2	direct
X0188 b7 44 			smb3	direct
X018a c7 44 			smb4	direct
X018c d7 44 			smb5	direct
X018e e7 44 			smb6	direct
X0190 f7 44 			smb7	direct
X0192 81 44 			sta	( direct, x )
X0194 92 44 			sta	(direct)
X0196 91 44 			sta	(direct),y
X0198 85 44 			sta	direct
X019a 95 44 			sta	direct,x
X019c 8d 34 12 			sta	extend
X019f 9d 34 12 			sta	extend,x
X01a2 99 34 12 			sta	extend,y
X01a5 86 44 			stx	direct
X01a7 96 44 			stx	direct,y
X01a9 8e 34 12 			stx	extend
X01ac 84 44 			sty	direct
X01ae 94 44 			sty	direct,x
X01b0 8c 34 12 			sty	extend
X01b3 64 44 			stz	direct
X01b5 74 44 			stz	direct ,x
X01b7 9c 34 12 			stz	extend
X01ba 9e 34 12 			stz	extend, x
X01bd aa 			tax
X01be a8 			tay
X01bf 14 44 			trb	direct
X01c1 1c 34 12 			trb	extend
X01c4 04 44 			tsb	direct
X01c6 0c 34 12 			tsb	extend
X01c9 ba 			tsx
X01ca 8a 			txa
X01cb 9a 			txs
X01cc 98 			tya
X ERROR SUMMARY - ERRORS DETECTED 1
X               -  WARNINGS       0
SHAR_EOF
true || echo 'restore of as6502.tut failed'
fi
true || echo 'restore of as6502.y failed'
echo End of part 1, continue with part 2
exit 0



More information about the Alt.sources mailing list