Path: utzoo!utgpu!cs.utexas.edu!uunet!pilchuck!ssc!markz 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 Organization: SSC, Inc., Seattle, WA Lines: 1490 Archive-name: Frankasm/As804801 Submitted-by: markz@ssc.uucp ---- 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 Brought to you by Super Global Mega Corp .com