home *** CD-ROM | disk | FTP | other *** search
- From: markz@ssc.UUCP (Mark Zenier)
- Newsgroups: alt.sources
- Subject: Frankenstein Cross Assemblers, Intel 8048 "Flavor, Part 1 of 2
- Message-ID: <596@ssc.UUCP>
- Date: 4 Dec 90 08:15:35 GMT
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # This is Frankasm/As8048, a shell archive (shar 3.43)
- # made 12/04/1990 08:46 UTC by markz@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
- # ------ ---------- ------------------------------------------
- # 2554 -r--r----- as8041.tst
- # 5150 -r--r----- as8041.tut
- # 1657 -r--r----- as8048.1
- # 5235 -r--r----- as8048.doc
- # 2647 -r--r----- as8048.tst
- # 5316 -r--r----- as8048.tut
- # 38589 -r--r--r-- as8048.y
- #
- # ============= as8041.tst ==============
- if test -f 'as8041.tst' -a X"$1" != X"-c"; then
- echo 'x - skipping as8041.tst (File already exists)'
- else
- echo 'x - extracting as8041.tst (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'as8041.tst' &&
- X cpu "8041"
- Ximmed equ $77
- X add a, # immed
- X add a, @ r0
- X add a, @ r1
- X add a, r0
- X add a, r1
- X add a, r2
- X add a, r3
- X add a, r4
- X add a, r5
- X add a, r6
- X add a, r7
- X addc a, # immed
- X addc a, @ r0
- X addc a, @ r1
- X addc a, r0
- X addc a, r1
- X addc a, r2
- X addc a, r3
- X addc a, r4
- X addc a, r5
- X addc a, r6
- X addc a, r7
- X anl a, # immed
- X anl a, @ r0
- X anl a, @ r1
- X anl a, r0
- X anl a, r1
- X anl a, r2
- X anl a, r3
- X anl a, r4
- X anl a, r5
- X anl a, r6
- X anl a, r7
- X anl p1, # immed
- X anl p2, # immed
- X anld p4, a
- X anld p5, a
- X anld p6, a
- X anld p7, a
- X call $023
- X call $123
- X call $223
- X call $323
- X call $423
- X call $523
- X call $623
- X call $723
- X clr a
- X clr c
- X clr f0
- X clr f1
- X cpl a
- X cpl c
- X cpl f0
- X cpl f1
- X da a
- X dec a
- X dec r0
- X dec r1
- X dec r2
- X dec r3
- X dec r4
- X dec r5
- X dec r6
- X dec r7
- X dis i
- X dis tcnti
- X djnz r0 , dest
- X djnz r1 , dest
- X djnz r2 , dest
- X djnz r3 , dest
- X djnz r4 , dest
- X djnz r5 , dest
- X djnz r6 , dest
- X djnz r7 , dest
- X en dma
- X en flags
- X en i
- X en tcnti
- X in a, dbb
- Xdest in a, p1
- X in a, p2
- X inc @ r0
- X inc @ r1
- X inc a
- X inc r0
- X inc r1
- X inc r2
- X inc r3
- X inc r4
- X inc r5
- X inc r6
- X inc r7
- X jb0 dest
- X jb1 dest
- X jb2 dest
- X jb3 dest
- X jb4 dest
- X jb5 dest
- X jb6 dest
- X jb7 dest
- X jc dest
- X jf0 dest
- X jf1 dest
- X jmp $023
- X jmp $123
- X jmp $223
- X jmp $323
- X jmp $423
- X jmp $523
- X jmp $623
- X jmp $723
- X jmpp @a
- X jnc dest
- X jnibf dest
- X jnt0 dest
- X jnt1 dest
- X jnz dest
- X jobf dest
- X jt0 dest
- X jt1 dest
- X jtf dest
- X jz dest
- X mov @ r0, # immed
- X mov @ r0, a
- X mov @ r1, # immed
- X mov @ r1, a
- X mov a, # immed
- X mov a, @ r0
- X mov a, @ r1
- X mov a, psw
- X mov a, r0
- X mov a, r1
- X mov a, r2
- X mov a, r3
- X mov a, r4
- X mov a, r5
- X mov a, r6
- X mov a, r7
- X mov a, t
- X mov psw, a
- X mov r0, # immed
- X mov r0, a
- X mov r1, # immed
- X mov r1, a
- X mov r2, # immed
- X mov r2, a
- X mov r3, # immed
- X mov r3, a
- X mov r4, # immed
- X mov r4, a
- X mov r5, # immed
- X mov r5, a
- X mov r6, # immed
- X mov r6, a
- X mov r7, # immed
- X mov r7, a
- X mov sts, a
- X mov t, a
- X movd a, p4
- X movd a, p5
- X movd a, p6
- X movd a, p7
- X movd p4, a
- X movd p5, a
- X movd p6, a
- X movd p7, a
- X movp a, @a
- X movp3 a, @a
- X nop
- X orl a, # immed
- X orl a, @ r0
- X orl a, @ r1
- X orl a, r0
- X orl a, r1
- X orl a, r2
- X orl a, r3
- X orl a, r4
- X orl a, r5
- X orl a, r6
- X orl a, r7
- X orl p1, # immed
- X orl p2, # immed
- X orld p4, a
- X orld p5, a
- X orld p6, a
- X orld p7, a
- X out dbb, a
- X outl p1, a
- X outl p2, a
- X ret
- X retr
- X rl a
- X rlc a
- X rr a
- X rrc a
- X sel rb0
- X sel rb1
- X stop tcnt
- X strt cnt
- X strt t
- X swap a
- X xch a, @ r0
- X xch a, @ r1
- X xch a, r0
- X xch a, r1
- X xch a, r2
- X xch a, r3
- X xch a, r4
- X xch a, r5
- X xch a, r6
- X xch a, r7
- X xchd a, @ r0
- X xchd a, @ r1
- X xrl a, # immed
- X xrl a, @ r0
- X xrl a, @ r1
- X xrl a, r0
- X xrl a, r1
- X xrl a, r2
- X xrl a, r3
- X xrl a, r4
- X xrl a, r5
- X xrl a, r6
- X xrl a, r7
- SHAR_EOF
- true || echo 'restore of as8041.tst failed'
- fi
- # ============= as8041.tut ==============
- if test -f 'as8041.tut' -a X"$1" != X"-c"; then
- echo 'x - skipping as8041.tut (File already exists)'
- else
- echo 'x - extracting as8041.tut (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'as8041.tut' &&
- X00000077 immed 00000065 dest
- X cpu "8041"
- X 0x77 immed equ $77
- X0000 03 77 add a, # immed
- X0002 60 add a, @ r0
- X0003 61 add a, @ r1
- X0004 68 add a, r0
- X0005 69 add a, r1
- X0006 6a add a, r2
- X0007 6b add a, r3
- X0008 6c add a, r4
- X0009 6d add a, r5
- X000a 6e add a, r6
- X000b 6f add a, r7
- X000c 13 77 addc a, # immed
- X000e 70 addc a, @ r0
- X000f 71 addc a, @ r1
- X0010 78 addc a, r0
- X0011 79 addc a, r1
- X0012 7a addc a, r2
- X0013 7b addc a, r3
- X0014 7c addc a, r4
- X0015 7d addc a, r5
- X0016 7e addc a, r6
- X0017 7f addc a, r7
- X0018 53 77 anl a, # immed
- X001a 50 anl a, @ r0
- X001b 51 anl a, @ r1
- X001c 58 anl a, r0
- X001d 59 anl a, r1
- X001e 5a anl a, r2
- X001f 5b anl a, r3
- X0020 5c anl a, r4
- X0021 5d anl a, r5
- X0022 5e anl a, r6
- X0023 5f anl a, r7
- X0024 99 77 anl p1, # immed
- X0026 9a 77 anl p2, # immed
- X0028 9c anld p4, a
- X0029 9d anld p5, a
- X002a 9e anld p6, a
- X002b 9f anld p7, a
- X002c 14 23 call $023
- X002e 34 23 call $123
- X0030 54 23 call $223
- X0032 74 23 call $323
- X0034 94 23 call $423
- X0036 b4 23 call $523
- X0038 d4 23 call $623
- X003a f4 23 call $723
- X003c 27 clr a
- X003d 97 clr c
- X003e 85 clr f0
- X003f a5 clr f1
- X0040 37 cpl a
- X0041 a7 cpl c
- X0042 95 cpl f0
- X0043 b5 cpl f1
- X0044 57 da a
- X0045 07 dec a
- X0046 c8 dec r0
- X0047 c9 dec r1
- X0048 ca dec r2
- X0049 cb dec r3
- X004a cc dec r4
- X004b cd dec r5
- X004c ce dec r6
- X004d cf dec r7
- X004e 15 dis i
- X004f 35 dis tcnti
- X0050 e8 65 djnz r0 , dest
- X0052 e9 65 djnz r1 , dest
- X0054 ea 65 djnz r2 , dest
- X0056 eb 65 djnz r3 , dest
- X0058 ec 65 djnz r4 , dest
- X005a ed 65 djnz r5 , dest
- X005c ee 65 djnz r6 , dest
- X005e ef 65 djnz r7 , dest
- X0060 e5 en dma
- X0061 f5 en flags
- X0062 05 en i
- X0063 25 en tcnti
- X0064 22 in a, dbb
- X0065 09 dest in a, p1
- X0066 0a in a, p2
- X0067 10 inc @ r0
- X0068 11 inc @ r1
- X0069 17 inc a
- X006a 18 inc r0
- X006b 19 inc r1
- X006c 1a inc r2
- X006d 1b inc r3
- X006e 1c inc r4
- X006f 1d inc r5
- X0070 1e inc r6
- X0071 1f inc r7
- X0072 12 65 jb0 dest
- X0074 32 65 jb1 dest
- X0076 52 65 jb2 dest
- X0078 72 65 jb3 dest
- X007a 92 65 jb4 dest
- X007c b2 65 jb5 dest
- X007e d2 65 jb6 dest
- X0080 f2 65 jb7 dest
- X0082 f6 65 jc dest
- X0084 b6 65 jf0 dest
- X0086 76 65 jf1 dest
- X0088 04 23 jmp $023
- X008a 24 23 jmp $123
- X008c 44 23 jmp $223
- X008e 64 23 jmp $323
- X0090 84 23 jmp $423
- X0092 a4 23 jmp $523
- X0094 c4 23 jmp $623
- X0096 e4 23 jmp $723
- X0098 b3 jmpp @a
- X0099 e6 65 jnc dest
- X009b d6 65 jnibf dest
- X009d 26 65 jnt0 dest
- X009f 46 65 jnt1 dest
- X00a1 96 65 jnz dest
- X00a3 86 65 jobf dest
- X00a5 36 65 jt0 dest
- X00a7 56 65 jt1 dest
- X00a9 16 65 jtf dest
- X00ab c6 65 jz dest
- X00ad b0 77 mov @ r0, # immed
- X00af a0 mov @ r0, a
- X00b0 b1 77 mov @ r1, # immed
- X00b2 a1 mov @ r1, a
- X00b3 23 77 mov a, # immed
- X00b5 f0 mov a, @ r0
- X00b6 f1 mov a, @ r1
- X00b7 c7 mov a, psw
- X00b8 f8 mov a, r0
- X00b9 f9 mov a, r1
- X00ba fa mov a, r2
- X00bb fb mov a, r3
- X00bc fc mov a, r4
- X00bd fd mov a, r5
- X00be fe mov a, r6
- X00bf ff mov a, r7
- X00c0 42 mov a, t
- X00c1 d7 mov psw, a
- X00c2 b8 77 mov r0, # immed
- X00c4 a8 mov r0, a
- X00c5 b9 77 mov r1, # immed
- X00c7 a9 mov r1, a
- X00c8 ba 77 mov r2, # immed
- X00ca aa mov r2, a
- X00cb bb 77 mov r3, # immed
- X00cd ab mov r3, a
- X00ce bc 77 mov r4, # immed
- X00d0 ac mov r4, a
- X00d1 bd 77 mov r5, # immed
- X00d3 ad mov r5, a
- X00d4 be 77 mov r6, # immed
- X00d6 ae mov r6, a
- X00d7 bf 77 mov r7, # immed
- X00d9 af mov r7, a
- X00da 50 mov sts, a
- X00db 62 mov t, a
- X00dc 0c movd a, p4
- X00dd 0d movd a, p5
- X00de 0e movd a, p6
- X00df 0f movd a, p7
- X00e0 3c movd p4, a
- X00e1 3d movd p5, a
- X00e2 3e movd p6, a
- X00e3 3f movd p7, a
- X00e4 a3 movp a, @a
- X00e5 e3 movp3 a, @a
- X00e6 00 nop
- X00e7 43 77 orl a, # immed
- X00e9 40 orl a, @ r0
- X00ea 41 orl a, @ r1
- X00eb 48 orl a, r0
- X00ec 49 orl a, r1
- X00ed 4a orl a, r2
- X00ee 4b orl a, r3
- X00ef 4c orl a, r4
- X00f0 4d orl a, r5
- X00f1 4e orl a, r6
- X00f2 4f orl a, r7
- X00f3 89 77 orl p1, # immed
- X00f5 8a 77 orl p2, # immed
- X00f7 8c orld p4, a
- X00f8 8d orld p5, a
- X00f9 8e orld p6, a
- X00fa 8f orld p7, a
- X00fb 02 out dbb, a
- X00fc 39 outl p1, a
- X00fd 3a outl p2, a
- X00fe 83 ret
- X00ff 93 retr
- X0100 e7 rl a
- X0101 f7 rlc a
- X0102 77 rr a
- X0103 67 rrc a
- X0104 c5 sel rb0
- X0105 d5 sel rb1
- X0106 65 stop tcnt
- X0107 45 strt cnt
- X0108 55 strt t
- X0109 47 swap a
- X010a 20 xch a, @ r0
- X010b 21 xch a, @ r1
- X010c 28 xch a, r0
- X010d 29 xch a, r1
- X010e 2a xch a, r2
- X010f 2b xch a, r3
- X0110 2c xch a, r4
- X0111 2d xch a, r5
- X0112 2e xch a, r6
- X0113 2f xch a, r7
- X0114 30 xchd a, @ r0
- X0115 31 xchd a, @ r1
- X0116 d3 77 xrl a, # immed
- X0118 d0 xrl a, @ r0
- X0119 d1 xrl a, @ r1
- X011a d8 xrl a, r0
- X011b d9 xrl a, r1
- X011c da xrl a, r2
- X011d db xrl a, r3
- X011e dc xrl a, r4
- X011f dd xrl a, r5
- X0120 de xrl a, r6
- X0121 df xrl a, r7
- X ERROR SUMMARY - ERRORS DETECTED 0
- X - WARNINGS 0
- SHAR_EOF
- true || echo 'restore of as8041.tut failed'
- fi
- # ============= as8048.1 ==============
- if test -f 'as8048.1' -a X"$1" != X"-c"; then
- echo 'x - skipping as8048.1 (File already exists)'
- else
- echo 'x - extracting as8048.1 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'as8048.1' &&
- X.TH AS8048 1L
- X.SH NAME
- Xas8048, as8041, as80c50 \- cross assemblers for microcomputers
- X.SH SYNOPSIS
- X.nf
- Xas8048 [-p cpu] [-l listfile] [-o hexfile] [-d] [-s symbolfile] input
- Xas8041 [-p cpu] [-l listfile] [-o hexfile] [-d] [-s symbolfile] input
- Xetc.
- X.fi
- X.SH DESCRIPTION
- XThe as8048, as8041 commands assemble 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
- X80C48 80c48 80C35 80c35 80C49 80c49 80C39 80c39 80C50 80c50 80C40 80c40
- X8048 8035 8049 8039 8050 8040 8041 8042
- 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 as8048 Frankenstein Assembler (file as8048.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 as8048.1 failed'
- fi
- # ============= as8048.doc ==============
- if test -f 'as8048.doc' -a X"$1" != X"-c"; then
- echo 'x - skipping as8048.doc (File already exists)'
- else
- echo 'x - extracting as8048.doc (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'as8048.doc' &&
- X.HM A 1 1 1 1 1 1
- X.H 1 "Appendix for as8048 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 "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.VL 30 5 1
- X.LI "Instruction Set"
- XSubstrings
- X.LI "80C48"
- XC48
- Xc48
- XC35
- Xc35
- X.LI "80C49"
- XC49
- Xc49
- XC39
- Xc39
- X.LI "80C50"
- XC50
- Xc50
- XC40
- Xc40
- X.LI "8048"
- X48
- X35
- X.LI "8049"
- X49
- X39
- X.LI "8050"
- X50
- X40
- X.LI "8041"
- X41
- X.LI "8042"
- X42
- X.LE
- X.H 4 "Register Set"
- X.DS I N
- XLabel REGISTER expr
- X.DE
- X.P
- XThe REGISTER statement is a version of the SET statement that checks that the
- Xvalue of its expression is a valid data register location for the current
- XCPU selection.
- XThe REGISTER statement sets the symbol specified in the label field with the
- Xnumeric value of the expression.
- XThe REGISTER statement can change the value of a symbol, but only if the
- Xsymbol is originally defined in a previous SET or REGISTER statement.
- X.DS I N
- XExample
- X.SP
- Xdtabl register 32
- X
- X mov r1, #dtabl
- X mov a, @r1
- 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
- XADD A ',' '#' expr
- XADD A ',' '@' REG
- XADD A ',' REG
- X.sp
- XADDC A ',' '#' expr
- XADDC A ',' '@' REG
- XADDC A ',' REG
- X.sp
- XANL A ',' '#' expr
- XANL A ',' '@' REG
- XANL A ',' REG
- XANL BUS ',' '#' expr INSTNOT41
- XANL P1 ',' '#' expr
- XANL P2 ',' '#' expr
- X.sp
- XANLD P47 ',' A
- X.sp
- XCALL expr
- X.sp
- XCLR A
- XCLR C
- XCLR F0
- XCLR F1
- X.sp
- XCPL A
- XCPL C
- XCPL F0
- XCPL F1
- X.sp
- XDA A
- X.sp
- XDEC A
- XDEC REG
- X.sp
- XDIS I
- XDIS TCNTI
- X.sp
- XDJNZ REG ',' expr
- X.sp
- XEN DMA INST41
- XEN FLAGS INST41
- XEN I
- XEN TCNTI
- X.sp
- XENT0 CLK INSTNOT41
- X.sp
- XHALT INSTIDL
- X.sp
- XIDL INSTIDL
- X.sp
- XIN A ',' DBB INST41
- XIN A ',' P1
- XIN A ',' P2
- X.sp
- XINC '@' REG
- XINC A
- XINC REG
- X.sp
- XINS A ',' BUS INSTNOT41
- X.sp
- XJB0 expr
- X.sp
- XJB1 expr
- X.sp
- XJB2 expr
- X.sp
- XJB3 expr
- X.sp
- XJB4 expr
- X.sp
- XJB5 expr
- X.sp
- XJB6 expr
- X.sp
- XJB7 expr
- X.sp
- XJC expr
- X.sp
- XJF0 expr
- X.sp
- XJF1 expr
- X.sp
- XJMP expr
- X.sp
- XJMPP '@' A
- X.sp
- XJNC expr
- X.sp
- XJNI expr INSTNOT41
- X.sp
- XJNIBF expr INST41
- X.sp
- XJNT0 expr
- X.sp
- XJNT1 expr
- X.sp
- XJNZ expr
- X.sp
- XJOBF expr INST41
- X.sp
- XJT0 expr
- X.sp
- XJT1 expr
- X.sp
- XJTF expr
- X.sp
- XJZ expr
- X.sp
- XMOV '@' REG ',' '#' expr
- XMOV '@' REG ',' A
- XMOV A ',' '#' expr
- XMOV A ',' '@' REG
- XMOV A ',' PSW
- XMOV A ',' T
- XMOV A ',' REG
- XMOV PSW ',' A
- XMOV STS ',' A
- XMOV T ',' A
- XMOV REG ',' '#' expr
- XMOV REG ',' A
- X.sp
- XMOVD A ',' P47
- XMOVD P47 ',' A
- X.sp
- XMOVP3 A ',' '@' A
- X.sp
- XMOVP A ',' '@' A
- X.sp
- XMOVX '@' REG ',' A INSTNOT41
- XMOVX A ',' '@' REG INSTNOT41
- X.sp
- XNOP
- X.sp
- XORL A ',' '#' expr
- XORL A ',' '@' REG
- XORL A ',' REG
- XORL BUS ',' '#' expr INSTNOT41
- XORL P1 ',' '#' expr
- XORL P2 ',' '#' expr
- X.sp
- XORLD P47 ',' A
- X.sp
- XOUT DBB ',' A INST41
- X.sp
- XOUTL BUS ',' A INSTNOT41
- XOUTL P1 ',' A
- XOUTL P2 ',' A
- X.sp
- XRET
- X.sp
- XRETR
- X.sp
- XRL A
- X.sp
- XRLC A
- X.sp
- XRR A
- X.sp
- XRRC A
- X.sp
- XSEL MSELC INSTNOT41
- XSEL RSELC
- X.sp
- XSTOP TCNT
- X.sp
- XSTRT CNT
- XSTRT T
- X.sp
- XSWAP A
- X.sp
- XXCH A ',' '@' REG
- XXCH A ',' REG
- X.sp
- XXCHD A ',' '@' REG
- X.sp
- XXRL A ',' '#' expr
- XXRL A ',' '@' REG
- XXRL A ',' REG
- X.TE
- X.H 3 "Operands"
- X.VL 25 5
- X.LI REG
- XREG can be any of r0, r1, r2, r3, r4, r5, r6, r7, unless proceeded by a
- X'@' where only r0, and r1 are accepted.
- X.LI MSELC
- XMSELC represents the symbols mb0 and mb1.
- X.LI RSELC
- XRSELC represents the symbols rb0 and rb1.
- X.LI P47
- XP47 represents the symbols p4, p5, p6, p7.
- X.LE
- X.P
- XThere are uppercase versions of all the reserved symbols.
- X.H 3 "Selection Criteria Keywords"
- X.VL 25 5
- X.LI INSTIDL
- XThe instruction is only available on CMOS implementations.
- X.LI INSTNOT41
- XThe instruction is not available in the 8041.
- X.LI INST41
- XThe instruction is only available in the 8041.
- 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 "Reserved Symbols"
- X.H 4 "Machine Dependent Reserved Symbols"
- XA
- XBUS
- XC
- XCLK
- XCNT
- XDBB
- XDMA
- XF0
- XF1
- XFLAGS
- XI
- XMB0
- XMB1
- XP1
- XP2
- XP4
- XP5
- XP6
- XP7
- XPSW
- XR0
- XR1
- XR2
- XR3
- XR4
- XR5
- XR6
- XR7
- XRB0
- XRB1
- XSTS
- XT
- XTCNT
- XTCNTI
- Xa
- Xbus
- Xc
- Xclk
- Xcnt
- Xdbb
- Xdma
- Xf0
- Xf1
- Xflags
- Xi
- Xmb0
- Xmb1
- Xp1
- Xp2
- Xp4
- Xp5
- Xp6
- Xp7
- Xpsw
- Xr0
- Xr1
- Xr2
- Xr3
- Xr4
- Xr5
- Xr6
- Xr7
- Xrb0
- Xrb1
- Xsts
- Xt
- Xtcnt
- Xtcnti
- 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 as8048.doc failed'
- fi
- # ============= as8048.tst ==============
- if test -f 'as8048.tst' -a X"$1" != X"-c"; then
- echo 'x - skipping as8048.tst (File already exists)'
- else
- echo 'x - extracting as8048.tst (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'as8048.tst' &&
- X cpu "80c50"
- X
- Ximmed equ $55
- X
- X add a, # immed
- X add a, @ r0
- X add a, @ r1
- X add a, r0
- X add a, r1
- X add a, r2
- X add a, r3
- X add a, r4
- X add a, r5
- X add a, r6
- X add a, r7
- X addc a, # immed
- X addc a, @ r0
- X addc a, @ r1
- X addc a, r0
- X addc a, r1
- X addc a, r2
- X addc a, r3
- X addc a, r4
- X addc a, r5
- X addc a, r6
- X addc a, r7
- X anl a, # immed
- X anl a, @ r0
- X anl a, @ r1
- X anl a, r0
- X anl a, r1
- X anl a, r2
- X anl a, r3
- X anl a, r4
- X anl a, r5
- X anl a, r6
- X anl a, r7
- X anl bus, # immed
- X anl p1, # immed
- X anl p2, # immed
- X anld p4, a
- X anld p5, a
- X anld p6, a
- X anld p7, a
- X call $023
- X call $123
- X call $223
- X call $323
- X call $423
- X call $523
- X call $623
- X call $723
- X clr a
- X clr c
- X clr f0
- X clr f1
- X cpl a
- X cpl c
- X cpl f0
- X cpl f1
- X da a
- X dec a
- X dec r0
- X dec r1
- X dec r2
- X dec r3
- X dec r4
- X dec r5
- X dec r6
- X dec r7
- X dis i
- X dis tcnti
- X djnz r0 , dest
- X djnz r1 , dest
- X djnz r2 , dest
- X djnz r3 , dest
- X djnz r4 , dest
- X djnz r5 , dest
- X djnz r6 , dest
- X djnz r7 , dest
- X en i
- X en tcnti
- X ent0 clk
- X halt
- X idl
- X in a, p1
- X in a, p2
- X inc @ r0
- X inc @ r1
- Xdest inc a
- X inc r0
- X inc r1
- X inc r2
- X inc r3
- X inc r4
- X inc r5
- X inc r6
- X inc r7
- X ins a, bus
- X jb0 dest
- X jb1 dest
- X jb2 dest
- X jb3 dest
- X jb4 dest
- X jb5 dest
- X jb6 dest
- X jb7 dest
- X jc dest
- X jf0 dest
- X jf1 dest
- X jmp $023
- X jmp $123
- X jmp $223
- X jmp $323
- X jmp $423
- X jmp $523
- X jmp $623
- X jmp $723
- X jmpp @a
- X jnc dest
- X jni dest
- X jnt0 dest
- X jnt1 dest
- X jnz dest
- X jt0 dest
- X jt1 dest
- X jtf dest
- X jz dest
- X mov @ r0, # immed
- X mov @ r0, a
- X mov @ r1, # immed
- X mov @ r1, a
- X mov a, # immed
- X mov a, @ r0
- X mov a, @ r1
- X mov a, psw
- X mov a, r0
- X mov a, r1
- X mov a, r2
- X mov a, r3
- X mov a, r4
- X mov a, r5
- X mov a, r6
- X mov a, r7
- X mov a, t
- X mov psw, a
- X mov r0, # immed
- X mov r0, a
- X mov r1, # immed
- X mov r1, a
- X mov r2, # immed
- X mov r2, a
- X mov r3, # immed
- X mov r3, a
- X mov r4, # immed
- X mov r4, a
- X mov r5, # immed
- X mov r5, a
- X mov r6, # immed
- X mov r6, a
- X mov r7, # immed
- X mov r7, a
- X mov t, a
- X movd a, p4
- X movd a, p5
- X movd a, p6
- X movd a, p7
- X movd p4, a
- X movd p5, a
- X movd p6, a
- X movd p7, a
- X movp a, @a
- X movp3 a, @a
- X movx @ r0, a
- X movx @ r1, a
- X movx a, @ r0
- X movx a, @ r1
- X nop
- X orl a, # immed
- X orl a, @ r0
- X orl a, @ r1
- X orl a, r0
- X orl a, r1
- X orl a, r2
- X orl a, r3
- X orl a, r4
- X orl a, r5
- X orl a, r6
- X orl a, r7
- X orl bus, # immed
- X orl p1, # immed
- X orl p2, # immed
- X orld p4, a
- X orld p5, a
- X orld p6, a
- X orld p7, a
- X outl bus, a
- X outl p1, a
- X outl p2, a
- X ret
- X retr
- X rl a
- X rlc a
- X rr a
- X rrc a
- X sel mb0
- X sel mb1
- X sel rb0
- X sel rb1
- X stop tcnt
- X strt cnt
- X strt t
- X swap a
- X xch a, @ r0
- X xch a, @ r1
- X xch a, r0
- X xch a, r1
- X xch a, r2
- X xch a, r3
- X xch a, r4
- X xch a, r5
- X xch a, r6
- X xch a, r7
- X xchd a, @ r0
- X xchd a, @ r1
- X xrl a, # immed
- X xrl a, @ r0
- X xrl a, @ r1
- X xrl a, r0
- X xrl a, r1
- X xrl a, r2
- X xrl a, r3
- X xrl a, r4
- X xrl a, r5
- X xrl a, r6
- X xrl a, r7
- SHAR_EOF
- true || echo 'restore of as8048.tst failed'
- fi
- # ============= as8048.tut ==============
- if test -f 'as8048.tut' -a X"$1" != X"-c"; then
- echo 'x - skipping as8048.tut (File already exists)'
- else
- echo 'x - extracting as8048.tut (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'as8048.tut' &&
- X00000055 immed 0000006b dest
- X cpu "80c50"
- X
- X 0x55 immed equ $55
- X
- X0000 03 55 add a, # immed
- X0002 60 add a, @ r0
- X0003 61 add a, @ r1
- X0004 68 add a, r0
- X0005 69 add a, r1
- X0006 6a add a, r2
- X0007 6b add a, r3
- X0008 6c add a, r4
- X0009 6d add a, r5
- X000a 6e add a, r6
- X000b 6f add a, r7
- X000c 13 55 addc a, # immed
- X000e 70 addc a, @ r0
- X000f 71 addc a, @ r1
- X0010 78 addc a, r0
- X0011 79 addc a, r1
- X0012 7a addc a, r2
- X0013 7b addc a, r3
- X0014 7c addc a, r4
- X0015 7d addc a, r5
- X0016 7e addc a, r6
- X0017 7f addc a, r7
- X0018 53 55 anl a, # immed
- X001a 50 anl a, @ r0
- X001b 51 anl a, @ r1
- X001c 58 anl a, r0
- X001d 59 anl a, r1
- X001e 5a anl a, r2
- X001f 5b anl a, r3
- X0020 5c anl a, r4
- X0021 5d anl a, r5
- X0022 5e anl a, r6
- X0023 5f anl a, r7
- X0024 98 55 anl bus, # immed
- X0026 99 55 anl p1, # immed
- X0028 9a 55 anl p2, # immed
- X002a 9c anld p4, a
- X002b 9d anld p5, a
- X002c 9e anld p6, a
- X002d 9f anld p7, a
- X002e 14 23 call $023
- X0030 34 23 call $123
- X0032 54 23 call $223
- X0034 74 23 call $323
- X0036 94 23 call $423
- X0038 b4 23 call $523
- X003a d4 23 call $623
- X003c f4 23 call $723
- X003e 27 clr a
- X003f 97 clr c
- X0040 85 clr f0
- X0041 a5 clr f1
- X0042 37 cpl a
- X0043 a7 cpl c
- X0044 95 cpl f0
- X0045 b5 cpl f1
- X0046 57 da a
- X0047 07 dec a
- X0048 c8 dec r0
- X0049 c9 dec r1
- X004a ca dec r2
- X004b cb dec r3
- X004c cc dec r4
- X004d cd dec r5
- X004e ce dec r6
- X004f cf dec r7
- X0050 15 dis i
- X0051 35 dis tcnti
- X0052 e8 6b djnz r0 , dest
- X0054 e9 6b djnz r1 , dest
- X0056 ea 6b djnz r2 , dest
- X0058 eb 6b djnz r3 , dest
- X005a ec 6b djnz r4 , dest
- X005c ed 6b djnz r5 , dest
- X005e ee 6b djnz r6 , dest
- X0060 ef 6b djnz r7 , dest
- X0062 05 en i
- X0063 25 en tcnti
- X0064 75 ent0 clk
- X0065 01 halt
- X0066 01 idl
- X0067 09 in a, p1
- X0068 0a in a, p2
- X0069 10 inc @ r0
- X006a 11 inc @ r1
- X006b 17 dest inc a
- X006c 18 inc r0
- X006d 19 inc r1
- X006e 1a inc r2
- X006f 1b inc r3
- X0070 1c inc r4
- X0071 1d inc r5
- X0072 1e inc r6
- X0073 1f inc r7
- X0074 08 ins a, bus
- X0075 12 6b jb0 dest
- X0077 32 6b jb1 dest
- X0079 52 6b jb2 dest
- X007b 72 6b jb3 dest
- X007d 92 6b jb4 dest
- X007f b2 6b jb5 dest
- X0081 d2 6b jb6 dest
- X0083 f2 6b jb7 dest
- X0085 f6 6b jc dest
- X0087 b6 6b jf0 dest
- X0089 76 6b jf1 dest
- X008b 04 23 jmp $023
- X008d 24 23 jmp $123
- X008f 44 23 jmp $223
- X0091 64 23 jmp $323
- X0093 84 23 jmp $423
- X0095 a4 23 jmp $523
- X0097 c4 23 jmp $623
- X0099 e4 23 jmp $723
- X009b b3 jmpp @a
- X009c e6 6b jnc dest
- X009e 86 6b jni dest
- X00a0 26 6b jnt0 dest
- X00a2 46 6b jnt1 dest
- X00a4 96 6b jnz dest
- X00a6 36 6b jt0 dest
- X00a8 56 6b jt1 dest
- X00aa 16 6b jtf dest
- X00ac c6 6b jz dest
- X00ae b0 55 mov @ r0, # immed
- X00b0 a0 mov @ r0, a
- X00b1 b1 55 mov @ r1, # immed
- X00b3 a1 mov @ r1, a
- X00b4 23 55 mov a, # immed
- X00b6 f0 mov a, @ r0
- X00b7 f1 mov a, @ r1
- X00b8 c7 mov a, psw
- X00b9 f8 mov a, r0
- X00ba f9 mov a, r1
- X00bb fa mov a, r2
- X00bc fb mov a, r3
- X00bd fc mov a, r4
- X00be fd mov a, r5
- X00bf fe mov a, r6
- X00c0 ff mov a, r7
- X00c1 42 mov a, t
- X00c2 d7 mov psw, a
- X00c3 b8 55 mov r0, # immed
- X00c5 a8 mov r0, a
- X00c6 b9 55 mov r1, # immed
- X00c8 a9 mov r1, a
- X00c9 ba 55 mov r2, # immed
- X00cb aa mov r2, a
- X00cc bb 55 mov r3, # immed
- X00ce ab mov r3, a
- X00cf bc 55 mov r4, # immed
- X00d1 ac mov r4, a
- X00d2 bd 55 mov r5, # immed
- X00d4 ad mov r5, a
- X00d5 be 55 mov r6, # immed
- X00d7 ae mov r6, a
- X00d8 bf 55 mov r7, # immed
- X00da af mov r7, a
- X00db 62 mov t, a
- X00dc 0c movd a, p4
- X00dd 0d movd a, p5
- X00de 0e movd a, p6
- X00df 0f movd a, p7
- X00e0 3c movd p4, a
- X00e1 3d movd p5, a
- X00e2 3e movd p6, a
- X00e3 3f movd p7, a
- X00e4 a3 movp a, @a
- X00e5 e3 movp3 a, @a
- X00e6 90 movx @ r0, a
- X00e7 91 movx @ r1, a
- X00e8 80 movx a, @ r0
- X00e9 81 movx a, @ r1
- X00ea 00 nop
- X00eb 43 55 orl a, # immed
- X00ed 40 orl a, @ r0
- X00ee 41 orl a, @ r1
- X00ef 48 orl a, r0
- X00f0 49 orl a, r1
- X00f1 4a orl a, r2
- X00f2 4b orl a, r3
- X00f3 4c orl a, r4
- X00f4 4d orl a, r5
- X00f5 4e orl a, r6
- X00f6 4f orl a, r7
- X00f7 88 55 orl bus, # immed
- X00f9 89 55 orl p1, # immed
- X00fb 8a 55 orl p2, # immed
- X00fd 8c orld p4, a
- X00fe 8d orld p5, a
- X00ff 8e orld p6, a
- X0100 8f orld p7, a
- X0101 02 outl bus, a
- X0102 39 outl p1, a
- X0103 3a outl p2, a
- X0104 83 ret
- X0105 93 retr
- X0106 e7 rl a
- X0107 f7 rlc a
- X0108 77 rr a
- X0109 67 rrc a
- X010a e5 sel mb0
- X010b f5 sel mb1
- X010c c5 sel rb0
- X010d d5 sel rb1
- X010e 65 stop tcnt
- X010f 45 strt cnt
- X0110 55 strt t
- X0111 47 swap a
- X0112 20 xch a, @ r0
- X0113 21 xch a, @ r1
- X0114 28 xch a, r0
- X0115 29 xch a, r1
- X0116 2a xch a, r2
- X0117 2b xch a, r3
- X0118 2c xch a, r4
- X0119 2d xch a, r5
- X011a 2e xch a, r6
- X011b 2f xch a, r7
- X011c 30 xchd a, @ r0
- X011d 31 xchd a, @ r1
- X011e d3 55 xrl a, # immed
- X0120 d0 xrl a, @ r0
- X0121 d1 xrl a, @ r1
- X0122 d8 xrl a, r0
- X0123 d9 xrl a, r1
- X0124 da xrl a, r2
- X0125 db xrl a, r3
- X0126 dc xrl a, r4
- X0127 dd xrl a, r5
- X0128 de xrl a, r6
- X0129 df xrl a, r7
- X ERROR SUMMARY - ERRORS DETECTED 0
- X - WARNINGS 0
- SHAR_EOF
- true || echo 'restore of as8048.tut failed'
- fi
- true || echo 'restore of as8048.y failed'
- echo End of part 1, continue with part 2
- exit 0
-