home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
texts
/
boxes
/
dis80xx.lst
< prev
next >
Wrap
File List
|
1993-04-08
|
8KB
|
297 lines
DATA "10011000","ANL BUS,=",2
DATA "10011001","ANL P1,=",2
DATA "10011010","ANL P2,=",2
DATA "100111pp","ANLD Pp,A",1
DATA "00001001","IN A,P1",1
DATA "00001010","IN A,P2",1
DATA "00001000","INS A,BUS",1
DATA "000011pp","MOVD A,Pp",1
DATA "001111pp","MOVD Pp,A",1
DATA "10001000","ORL BUS,=",2
DATA "100011pp","ORLD Pp,A",1
DATA "10001001","ORL P1,=",2
DATA "10001010","ORL P2,=",2
DATA "00000010","OUTL BUS,A",1
DATA "00111001","OUTL P1,A",1
DATA "00111010","OUTL P2,A",1
DATA "11001ppp","DEC Rp,(Rp)",1
DATA "00011ppp","INC Rp",1
DATA "0001000p","INC @Rp",1
DATA "ppp10100","CALL $p",2
DATA "10000011","RET ",1
DATA "10010011","RETR ",1
DATA "00100101","EN TCNTI",1
DATA "00110101","DIS TCNTI",1
DATA "01000010","MOV A,T",1
DATA "01100010","MOV T,A",1
DATA "01100101","STOP TCNTI",1
DATA "01000101","STRT CNT",1
DATA "01010101","STRT T",1
DATA "00000000","NOP ",1
DATA "00000011","ADD A,=",2
DATA "01101ppp","ADD A,Rp",1
DATA "0110000p","ADD A,@Rp",1
DATA "00010011","ADDC A,=",2
DATA "01111ppp","ADDC A,Rp",1
DATA "0111000p","ADDC A,@Rp",1
DATA "01010011","ANL A,=",2
DATA "01011ppp","ANL A,Rp",1
DATA "0101000p","ANL A,@Rp",1
DATA "00110111","CPL A",1
DATA "00100111","CLR A",1
DATA "01010111","DA A",1
DATA "00000111","DEC A",1
DATA "00010111","INC A",1
DATA "01000011","ORL A,=",2
DATA "01001ppp","ORL A,Rp",1
DATA "0100000p","ORL A,@Rp",1
DATA "11100111","RL A",1
DATA "11110111","RLC A",1
DATA "01110111","RR A",1
DATA "01100111","RRC A",1
DATA "01000111","SWAP A",1
DATA "11010011","XRL A,=",2
DATA "11011ppp","XRL A,Rp",1
DATA "1101000p","XRL A,@Rp",1
DATA "11101ppp","DJNZ Rp,$",2
DATA "ppp10010","JBp $",2
DATA "11110110","JC $",2
DATA "10110110","JF0 $",2
DATA "01110110","JF1 $",2
DATA "ppp00100","JMP $p",2
DATA "10110011","JMPP @",1
DATA "11100110","JNC $",2
DATA "10000110","JNI $",2
DATA "00100110","JNT0 $",2
DATA "01000110","JNT1 $",2
DATA "10010110","JNZ $",2
DATA "00010110","JTF $",2
DATA "00110110","JT0 $",2
DATA "01010110","JT1 $",2
DATA "11000110","JZ $",2
DATA "00000101","EN I",1
DATA "00010101","DIS I",1
DATA "01110101","ENT0 CLK",1
DATA "11100101","SEL MB0",1
DATA "11110101","SEL MB1",1
DATA "11000101","SEL RB0",1
DATA "11010101","SEL RB1",1
DATA "00100011","MOV A,=",2
DATA "11111ppp","MOV A,Rp",1
DATA "1111000p","MOV A,@Rp",1
DATA "11000111","MOV A,PSW",1
DATA "10111ppp","MOV Rp,=",2
DATA "10101ppp","MOV Rp,A",1
DATA "1010000p","MOV @Rp,A",1
DATA "1011000p","MOV @Rp,=",2
DATA "11010111","MOV PSW,A",1
DATA "10100011","MOVP A,@A",1
DATA "11100011","MOVP3 A,@A",1
DATA "1000000p","MOVX A,@Rp",1
DATA "1001000p","MOVX @Rp,A",1
DATA "00101ppp","XCH A,Rp",1
DATA "0010000p","XCH A,Rp",1
DATA "0011000p","XCHD A,@Rp",1
DATA "10100111","CPL C",1
DATA "10010101","CPL F0",1
DATA "10110101","CPL F1",1
DATA "10010111","CLR C",1
DATA "10000101","CLR F0",1
DATA "10100101","CLR F1",1
DATA " "," ",0
'make disassembler list
DIM op(255),op$(255)
a=0:PRINT "a second..."
reader:
READ opb$,op$,opn
IF opb$=" " THEN main
IF "ppp"=RIGHT$(opb$,3) THEN r3
IF "pp"=RIGHT$(opb$,2) THEN r2
IF "p"=RIGHT$(opb$,1) THEN r1
IF "ppp"=LEFT$(opb$,3) THEN l3
IF "pp"=LEFT$(opb$,2) THEN l2
IF "p"=LEFT$(opb$,2) THEN l1
opc$=opb$
p=-1:GOSUB insert
GOTO reader
insert:
op1$=op$
IF p=-1 THEN oppp
op1$=LEFT$(op$,INSTR(op$,"p")-1)+RIGHT$(STR$(p),1)+RIGHT$(op$,LEN(op$)-INSTR(op$,"p"))
oppp:
op=0-(MID$(opc$,8,1)="1")
op=op-(MID$(opc$,7,1)="1")*2
op=op-(MID$(opc$,6,1)="1")*4
op=op-(MID$(opc$,5,1)="1")*8
op=op-(MID$(opc$,4,1)="1")*16
op=op-(MID$(opc$,3,1)="1")*32
op=op-(MID$(opc$,2,1)="1")*64
op=op-(MID$(opc$,1,1)="1")*128
PRINT ".";
IF ((a+1)/64)=INT((a+1)/64) THEN PRINT
IF op(op) THEN PRINT "double error"
op(op)=opn
op$(op)=op1$
a=a+1
RETURN
l1:
p=0:opc$="0"+RIGHT$(opb$,7):GOSUB insert
p=1:opc$="1"+RIGHT$(opb$,7):GOSUB insert
GOTO reader
l2:
p=0:opc$="00"+RIGHT$(opb$,6):GOSUB insert
p=1:opc$="01"+RIGHT$(opb$,6):GOSUB insert
p=2:opc$="10"+RIGHT$(opb$,6):GOSUB insert
p=3:opc$="11"+RIGHT$(opb$,6):GOSUB insert
GOTO reader
l3:
p=0:opc$="000"+RIGHT$(opb$,5):GOSUB insert
p=1:opc$="001"+RIGHT$(opb$,5):GOSUB insert
p=2:opc$="010"+RIGHT$(opb$,5):GOSUB insert
p=3:opc$="011"+RIGHT$(opb$,5):GOSUB insert
p=4:opc$="100"+RIGHT$(opb$,5):GOSUB insert
p=5:opc$="101"+RIGHT$(opb$,5):GOSUB insert
p=6:opc$="110"+RIGHT$(opb$,5):GOSUB insert
p=7:opc$="111"+RIGHT$(opb$,5):GOSUB insert
GOTO reader
r1:
p=0:opc$=LEFT$(opb$,7)+"0":GOSUB insert
p=1:opc$=LEFT$(opb$,7)+"1":GOSUB insert
GOTO reader
r2:
p=0:opc$=LEFT$(opb$,6)+"00":GOSUB insert
p=1:opc$=LEFT$(opb$,6)+"01":GOSUB insert
p=2:opc$=LEFT$(opb$,6)+"10":GOSUB insert
p=3:opc$=LEFT$(opb$,6)+"11":GOSUB insert
GOTO reader
r3:
p=0:opc$=LEFT$(opb$,5)+"000":GOSUB insert
p=1:opc$=LEFT$(opb$,5)+"001":GOSUB insert
p=2:opc$=LEFT$(opb$,5)+"010":GOSUB insert
p=3:opc$=LEFT$(opb$,5)+"011":GOSUB insert
p=4:opc$=LEFT$(opb$,5)+"100":GOSUB insert
p=5:opc$=LEFT$(opb$,5)+"101":GOSUB insert
p=6:opc$=LEFT$(opb$,5)+"110":GOSUB insert
p=7:opc$=LEFT$(opb$,5)+"111":GOSUB insert
GOTO reader
main:
CLS
PRINT "************************************"
PRINT "* Dis 80xx *"
PRINT "*----------------------------------*"
PRINT "* By Andreas Eversberg *"
PRINT "* Herzogin-Augusta-Str.21 *"
PRINT "* 2250 Husum (Germany) *"
PRINT "* Tel:49-4841-73025 *"
PRINT "*----------------------------------*"
PRINT "*Use to check, if your 8049-listing*"
PRINT "*is correct assebled. *"
PRINT "*This Program is Giftware, if you *"
PRINT "*use it, let me know. *"
PRINT "************************************"
news:
PRINT
PRINT "Select Mode:"
PRINT "(B) Dissassemble binary information from a file"
PRINT "(A) Dissassemble ASCII code"
PRINT "(C) Convert ASCII to binary"
PRINT "(I) Info about ASCII"
PRINT "(Q) Quit Dis"
INPUT "What ?",a$
IF a$="a" OR a$="b" THEN brei$=a$:GOTO disss
IF a$="q" THEN SYSTEM
IF a$="c" THEN conv
IF a$="i" THEN info
GOTO news:
disss:
'OPEN "ram:dis" FOR OUTPUT AS #2
INPUT "filename";n$
OPEN n$ FOR INPUT AS #1
pc=0
loop:
IF INKEY$="" THEN loop:
GOSUB in:a=op
IF op(a)=2 THEN GOSUB in:b=op
PRINT "$"RIGHT$("000"+HEX$(pc),3)+CHR$(9);
IF op(a)=0 THEN PRINT "???":pc=pc+1:GOTO prol
PRINT op$(a);
IF op(a)=2 THEN pc=pc+1:PRINT RIGHT$("00"+HEX$(b),2);
pc=pc+1
PRINT
IF EOF(1) THEN CLOSE 1:GOTO news
GOTO loop
in:
IF brei$="a" THEN opppp
op=ASC(INPUT$(1,1)):RETURN
opppp:
IF EOF(1) THEN RETURN
IF INPUT(1,1)<>";" THEN opppp
IF INPUT(1,1)<>"#" THEN opppp
IF INPUT(1,1)<>"$" THEN opppp
a$=INPUT$(1,1)
a$=INPUT$(1,1)
a$=INPUT$(1,1)
IF INPUT(1,1)<>" " THEN opppp
INPUT#1,opc$
op=0-(MID$(opc$,8,1)="1")
op=op-(MID$(opc$,7,1)="1")*2
op=op-(MID$(opc$,6,1)="1")*4
op=op-(MID$(opc$,5,1)="1")*8
op=op-(MID$(opc$,4,1)="1")*16
op=op-(MID$(opc$,3,1)="1")*32
op=op-(MID$(opc$,2,1)="1")*64
op=op-(MID$(opc$,1,1)="1")*128
RETURN
conv:
INPUT"source";s$
INPUT"dest'n";d$
OPEN s$ FOR INPUT AS #1
OPEN d$ FOR OUTPUT AS #2
convloop:
IF EOF(1) THEN CLOSE 1:CLOSE 2:GOTO news
INPUT#1,opc$
GOSUB opppp
PRINT#2,CHR$(op);
GOTO convloop
info:
PRINT
PRINT "The ASCII File has to be:"
PRINT
PRINT "00100101 Text Comment...."
PRINT "01010011"
PRINT
PRINT "Impotaint is, that the first 8 characters of a line"
PRINT "are a byte consitst of 0 and 1. All lines, even the"
PRINT "last has to be so. The last line has to end with `CR'."
GOTO news