mirror of
https://github.com/wfjm/w11.git
synced 2026-03-28 02:53:51 +00:00
tools/bin: add dasm-11, a PDP-11 disassembler [skip ci]
This commit is contained in:
@@ -37,10 +37,12 @@ The full set of tests is only run for tagged releases.
|
||||
- cleanup SimH setup files (\*.scmd), use autoconfig, set disk types
|
||||
- cleanup code base, use page,mmr\*,pdr,par instead of segment,ssr\*,sdr,sar
|
||||
- sysid encodes now system type, allows to distingish w11,SimH,e11
|
||||
- added dasm-11, a PDP-11 disassembler
|
||||
### New features
|
||||
- new verification codes
|
||||
- tools/tcode: fast cpu verification codes
|
||||
- tools/tests: test programs
|
||||
- tools/bin: added dasm-11, a PDP-11 disassembler
|
||||
### Changes
|
||||
- tools changes
|
||||
- ci.yml: define TBW_GHDL_OPTS and suppress IEEE package warnings at t=0ms
|
||||
|
||||
@@ -5,6 +5,7 @@ This directory tree contains **many tools** and is organized in
|
||||
| [asm-11](asm-11) | environment for `asm-11` assembler |
|
||||
| [bin](bin) | support scripts and tools |
|
||||
| [bin_xilinx_wrapper](bin_xilinx_wrapper) | wrappers for Xilinx environments |
|
||||
| [dasm-11](dasm-11) | environment for `dasm-11` disassembler |
|
||||
| [dox](dox) | configuration files for Doxygen |
|
||||
| [exptest](exptest) | configuration files for `ostest` and other expect based tests |
|
||||
| [fx2](fx2) | firmware for Cypress FX2 USB interface |
|
||||
|
||||
3763
tools/bin/dasm-11
Executable file
3763
tools/bin/dasm-11
Executable file
File diff suppressed because it is too large
Load Diff
6
tools/dasm-11/README.md
Normal file
6
tools/dasm-11/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
This directory tree contains the **environment for dasm-11 disassembler**
|
||||
and is organized in
|
||||
|
||||
| Directory | Content |
|
||||
| --------- | ------- |
|
||||
| [lib](lib) | das library |
|
||||
7
tools/dasm-11/lib/defs_act11.das
Normal file
7
tools/dasm-11/lib/defs_act11.das
Normal file
@@ -0,0 +1,7 @@
|
||||
# $Id: defs_act11.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# defs for ACT11 hooks
|
||||
#
|
||||
000044 : .word* ; act11: point to header block
|
||||
000046 : .code* ; act11: point to $endad
|
||||
000052 : .word ; act11: hook
|
||||
11
tools/dasm-11/lib/defs_bits.das
Normal file
11
tools/dasm-11/lib/defs_bits.das
Normal file
@@ -0,0 +1,11 @@
|
||||
# $Id: defs_bits.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for generic bits names
|
||||
#
|
||||
.symset %bits = bit15=100000,\
|
||||
bit14=040000,bit13=020000,bit12=010000,\
|
||||
bit11=004000,bit10=002000,bit09=001000,\
|
||||
bit08=000400,bit07=000200,bit06=000100,\
|
||||
bit05=000040,bit04=000020,bit03=000010,\
|
||||
bit02=000004,bit01=000002,bit00=000001
|
||||
#
|
||||
11
tools/dasm-11/lib/defs_chars.das
Normal file
11
tools/dasm-11/lib/defs_chars.das
Normal file
@@ -0,0 +1,11 @@
|
||||
# $Id: defs_chars.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for ASCII control characters
|
||||
#
|
||||
.symset @chars = BEL=000007,\
|
||||
BS=000010,\
|
||||
HT=000011,\
|
||||
LF=000012,\
|
||||
FF=000014,\
|
||||
CR=000015,\
|
||||
DEL=000177
|
||||
12
tools/dasm-11/lib/defs_chars_crlf.das
Normal file
12
tools/dasm-11/lib/defs_chars_crlf.das
Normal file
@@ -0,0 +1,12 @@
|
||||
# $Id: defs_chars_crlf.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for ASCII control characters, with CRLF=200
|
||||
#
|
||||
.symset @chars = BEL=000007,\
|
||||
BS=000010,\
|
||||
HT=000011,\
|
||||
LF=000012,\
|
||||
FF=000014,\
|
||||
CR=000015,\
|
||||
DEL=000177,\
|
||||
CRLF=000200
|
||||
19
tools/dasm-11/lib/defs_cons.das
Normal file
19
tools/dasm-11/lib/defs_cons.das
Normal file
@@ -0,0 +1,19 @@
|
||||
# $Id: defs_cons.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for console
|
||||
#
|
||||
000060 : v..tti: .vect
|
||||
000064 : v..tto: .vect
|
||||
#
|
||||
.symbol ti.csr = 177560 use=%ti.cs
|
||||
.symbol ti.buf = 177562
|
||||
.symbol to.csr = 177564 use=%to.cs
|
||||
.symbol to.buf = 177566
|
||||
#
|
||||
.symset %ti.cs = ti.rac=004000,\
|
||||
ti.rdy=000200,\
|
||||
ti.ie=000100,\
|
||||
ti.ren=000001
|
||||
.symset %to.cs = to.rdy=000200,\
|
||||
to.ie=000100,\
|
||||
to.mai=00004
|
||||
29
tools/dasm-11/lib/defs_cpu.das
Normal file
29
tools/dasm-11/lib/defs_cpu.das
Normal file
@@ -0,0 +1,29 @@
|
||||
# $Id: defs_cpu.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for cpu
|
||||
#
|
||||
.symbol cp.psw = 177776 use=%cp.psw
|
||||
.symbol cp.dsr = 177570 use=%bits
|
||||
.symbol xor.cs = 177060
|
||||
#
|
||||
.symset %cp.psw = cp.cms=040000:140000,\
|
||||
cp.cmu=140000:140000,\
|
||||
cp.pms=010000:030000,\
|
||||
cp.pmu=030000:030000,\
|
||||
cp.ars=004000,\
|
||||
cp.pr0=000000:000340,\
|
||||
cp.pr1=000040:000340,\
|
||||
cp.pr2=000100:000340,\
|
||||
cp.pr3=000140:000340,\
|
||||
cp.pr4=000200:000340,\
|
||||
cp.pr5=000240:000340,\
|
||||
cp.pr6=000300:000340,\
|
||||
cp.pr7=000340:000340,\
|
||||
cp.t=000020,\
|
||||
cp.n=000010,\
|
||||
cp.z=000004,\
|
||||
cp.v=000002,\
|
||||
cp.c=000001
|
||||
#
|
||||
@defs_bits.das
|
||||
#
|
||||
11
tools/dasm-11/lib/defs_deuna.das
Normal file
11
tools/dasm-11/lib/defs_deuna.das
Normal file
@@ -0,0 +1,11 @@
|
||||
# $Id: defs_deuna.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for DEUNA controler
|
||||
#
|
||||
000120 : v..deu: .vect
|
||||
#
|
||||
.symbol de.sr0 = 174510
|
||||
.symbol de.sr1 = 174512
|
||||
.symbol de.sr2 = 174514
|
||||
.symbol de.sr3 = 174516
|
||||
#
|
||||
11
tools/dasm-11/lib/defs_dz.das
Normal file
11
tools/dasm-11/lib/defs_dz.das
Normal file
@@ -0,0 +1,11 @@
|
||||
# $Id: defs_dz.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for DZ11 controler
|
||||
#
|
||||
# <float> : v..dz: .vect ... is floating
|
||||
#
|
||||
.symbol dz.csr = 160100
|
||||
.symbol dz.rbu = 160102
|
||||
.symbol dz.tcr = 160104
|
||||
.symbol dz.tdr = 160106
|
||||
#
|
||||
48
tools/dasm-11/lib/defs_iist.das
Normal file
48
tools/dasm-11/lib/defs_iist.das
Normal file
@@ -0,0 +1,48 @@
|
||||
# $Id: defs_iist.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for IIST controler
|
||||
#
|
||||
000260 : v..iis: .vect
|
||||
#
|
||||
.symbol ii.acr = 177500 use=%ii.acr
|
||||
.symbol ii.adr = 177502
|
||||
#
|
||||
.symset %ii.acr = ii.clr=100000,\
|
||||
ii.si1=000400:001400,\
|
||||
ii.si2=001000:001400,\
|
||||
ii.si3=001400:001400,\
|
||||
ii.pge=000000:000017,\
|
||||
ii.pgc=000001:000017,\
|
||||
ii.ste=000002:000017,\
|
||||
ii.stc=000003:000017,\
|
||||
ii.msk=000004:000017,\
|
||||
ii.pgf=000005:000017,\
|
||||
ii.stf=000006:000017,\
|
||||
ii.dcf=000007:000017,\
|
||||
ii.exc=000010:000017,\
|
||||
ii.mtc=000015:000017
|
||||
#
|
||||
.symset %ii.pgc = ii.err=100000,\
|
||||
ii.grj=040000,\
|
||||
ii.pgr=020000,\
|
||||
ii.str=010000,\
|
||||
ii.rdy=004000,\
|
||||
ii.ip=000010,\
|
||||
ii.ie=000004,\
|
||||
ii.ptp=000002,\
|
||||
ii.go=000001
|
||||
#
|
||||
.symset %ii.stc = ii.tmo=000010,\
|
||||
ii.lke=000004,\
|
||||
ii.stp=000002,\
|
||||
ii.enb=000001
|
||||
#
|
||||
.symset %ii.mtc = ii.mtp=004000,\
|
||||
ii.mfr=002000,\
|
||||
ii.mi1=000400:001400,\
|
||||
ii.mi2=001000:001400,\
|
||||
ii.mi3=001400:001400,\
|
||||
ii.dbt=000010,\
|
||||
ii.mxd=000004,\
|
||||
ii.mlp=000002,\
|
||||
ii.ddr=000001
|
||||
10
tools/dasm-11/lib/defs_kwl.das
Normal file
10
tools/dasm-11/lib/defs_kwl.das
Normal file
@@ -0,0 +1,10 @@
|
||||
# $Id: defs_kwl.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for kw11-l (line clock)
|
||||
#
|
||||
000100 : v..kwl: .vect
|
||||
#
|
||||
.symbol kl.csr = 177546 use=%kl.cs
|
||||
#
|
||||
.symset %kl.cs = kl.mon=000200,\
|
||||
kl.ie=000100
|
||||
20
tools/dasm-11/lib/defs_kwp.das
Normal file
20
tools/dasm-11/lib/defs_kwp.das
Normal file
@@ -0,0 +1,20 @@
|
||||
# $Id: defs_kwp.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for kw11-p (programmable clock)
|
||||
#
|
||||
000104 : v..kwp: .vect
|
||||
#
|
||||
.symbol kp.csr = 172540 use=%kp.cs
|
||||
.symbol kp.buf = 172542
|
||||
.symbol kp.cnt = 172544
|
||||
#
|
||||
.symset %kp.cs = kp.err=100000,\
|
||||
kp.don=000200,\
|
||||
kp.ie=000100,\
|
||||
kp.fix=000040,\
|
||||
kp.up=000020,\
|
||||
kp.rep=000010,\
|
||||
kp.rex=000006:000006,\
|
||||
kp.rlf=000004:000006,\
|
||||
kp.rtk=000002:000006,\
|
||||
kp.run=000001
|
||||
15
tools/dasm-11/lib/defs_lp.das
Normal file
15
tools/dasm-11/lib/defs_lp.das
Normal file
@@ -0,0 +1,15 @@
|
||||
# $Id: defs_lp.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for lp11
|
||||
#
|
||||
# definition of vector excluded because it
|
||||
# collides with startup code of normal xxdp diags
|
||||
#
|
||||
# 000200 : v..lp: .vect
|
||||
#
|
||||
.symbol lp.csr = 177514 use=%lp.cs
|
||||
.symbol lp.buf = 177516
|
||||
#
|
||||
.symset %lp.cs = lp.err=100000,\
|
||||
lp.don=000200,\
|
||||
lp.ie=000100
|
||||
157
tools/dasm-11/lib/defs_mmu.das
Normal file
157
tools/dasm-11/lib/defs_mmu.das
Normal file
@@ -0,0 +1,157 @@
|
||||
# $Id: defs_mmu.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for mmu regs
|
||||
#
|
||||
.symbol mmr0=177572 use=%mmu.mmr0
|
||||
.symbol mmr1=177574
|
||||
.symbol mmr2=177576
|
||||
.symbol mmr3=172516 use=%mmu.mmr3
|
||||
#
|
||||
000250 : v..mmu: .vect
|
||||
#
|
||||
# names for page descriptor & address regs a la ZKBJB0 listing
|
||||
# user "I" page descriptor
|
||||
.symbol uipdr0=177600 use=%mmu.pdr
|
||||
.symbol uipdr1=177602 use=%mmu.pdr
|
||||
.symbol uipdr2=177604 use=%mmu.pdr
|
||||
.symbol uipdr3=177606 use=%mmu.pdr
|
||||
.symbol uipdr4=177610 use=%mmu.pdr
|
||||
.symbol uipdr5=177612 use=%mmu.pdr
|
||||
.symbol uipdr6=177614 use=%mmu.pdr
|
||||
.symbol uipdr7=177616 use=%mmu.pdr
|
||||
# user "D" page descriptor
|
||||
.symbol udpdr0=177620 use=%mmu.pdr
|
||||
.symbol udpdr1=177622 use=%mmu.pdr
|
||||
.symbol udpdr2=177624 use=%mmu.pdr
|
||||
.symbol udpdr3=177626 use=%mmu.pdr
|
||||
.symbol udpdr4=177630 use=%mmu.pdr
|
||||
.symbol udpdr5=177632 use=%mmu.pdr
|
||||
.symbol udpdr6=177634 use=%mmu.pdr
|
||||
.symbol udpdr7=177636 use=%mmu.pdr
|
||||
# user "I" page address
|
||||
.symbol uipar0=177640
|
||||
.symbol uipar1=177642
|
||||
.symbol uipar2=177644
|
||||
.symbol uipar3=177646
|
||||
.symbol uipar4=177650
|
||||
.symbol uipar5=177652
|
||||
.symbol uipar6=177654
|
||||
.symbol uipar7=177656
|
||||
# user "D" page address
|
||||
.symbol udpar0=177660
|
||||
.symbol udpar1=177662
|
||||
.symbol udpar2=177664
|
||||
.symbol udpar3=177666
|
||||
.symbol udpar4=177670
|
||||
.symbol udpar5=177672
|
||||
.symbol udpar6=177674
|
||||
.symbol udpar7=177676
|
||||
# supervisor "I" page descriptor
|
||||
.symbol sipdr0=172200 use=%mmu.pdr
|
||||
.symbol sipdr1=172202 use=%mmu.pdr
|
||||
.symbol sipdr2=172204 use=%mmu.pdr
|
||||
.symbol sipdr3=172206 use=%mmu.pdr
|
||||
.symbol sipdr4=172210 use=%mmu.pdr
|
||||
.symbol sipdr5=172212 use=%mmu.pdr
|
||||
.symbol sipdr6=172214 use=%mmu.pdr
|
||||
.symbol sipdr7=172216 use=%mmu.pdr
|
||||
# supervisor "D" page descriptor
|
||||
.symbol sdpdr0=172220 use=%mmu.pdr
|
||||
.symbol sdpdr1=172222 use=%mmu.pdr
|
||||
.symbol sdpdr2=172224 use=%mmu.pdr
|
||||
.symbol sdpdr3=172226 use=%mmu.pdr
|
||||
.symbol sdpdr4=172230 use=%mmu.pdr
|
||||
.symbol sdpdr5=172232 use=%mmu.pdr
|
||||
.symbol sdpdr6=172234 use=%mmu.pdr
|
||||
.symbol sdpdr7=172236 use=%mmu.pdr
|
||||
# supervisor "I" page address
|
||||
.symbol sipar0=172240
|
||||
.symbol sipar1=172242
|
||||
.symbol sipar2=172244
|
||||
.symbol sipar3=172246
|
||||
.symbol sipar4=172250
|
||||
.symbol sipar5=172252
|
||||
.symbol sipar6=172254
|
||||
.symbol sipar7=172256
|
||||
# supervisor "D" page address
|
||||
.symbol sdpar0=172260
|
||||
.symbol sdpar1=172262
|
||||
.symbol sdpar2=172264
|
||||
.symbol sdpar3=172266
|
||||
.symbol sdpar4=172270
|
||||
.symbol sdpar5=172272
|
||||
.symbol sdpar6=172274
|
||||
.symbol sdpar7=172276
|
||||
# kernel "I" page descriptor
|
||||
.symbol kipdr0=172300 use=%mmu.pdr
|
||||
.symbol kipdr1=172302 use=%mmu.pdr
|
||||
.symbol kipdr2=172304 use=%mmu.pdr
|
||||
.symbol kipdr3=172306 use=%mmu.pdr
|
||||
.symbol kipdr4=172310 use=%mmu.pdr
|
||||
.symbol kipdr5=172312 use=%mmu.pdr
|
||||
.symbol kipdr6=172314 use=%mmu.pdr
|
||||
.symbol kipdr7=172316 use=%mmu.pdr
|
||||
# kernel "D" page descriptor
|
||||
.symbol kdpdr0=172320 use=%mmu.pdr
|
||||
.symbol kdpdr1=172322 use=%mmu.pdr
|
||||
.symbol kdpdr2=172324 use=%mmu.pdr
|
||||
.symbol kdpdr3=172326 use=%mmu.pdr
|
||||
.symbol kdpdr4=172330 use=%mmu.pdr
|
||||
.symbol kdpdr5=172332 use=%mmu.pdr
|
||||
.symbol kdpdr6=172334 use=%mmu.pdr
|
||||
.symbol kdpdr7=172336 use=%mmu.pdr
|
||||
# kernel "I" page address
|
||||
.symbol kipar0=172340
|
||||
.symbol kipar1=172342
|
||||
.symbol kipar2=172344
|
||||
.symbol kipar3=172346
|
||||
.symbol kipar4=172350
|
||||
.symbol kipar5=172352
|
||||
.symbol kipar6=172354
|
||||
.symbol kipar7=172356
|
||||
# kernel "D" page address
|
||||
.symbol kdpar0=172360
|
||||
.symbol kdpar1=172362
|
||||
.symbol kdpar2=172364
|
||||
.symbol kdpar3=172366
|
||||
.symbol kdpar4=172370
|
||||
.symbol kdpar5=172372
|
||||
.symbol kdpar6=172374
|
||||
.symbol kdpar7=172376
|
||||
#
|
||||
.symset %mmu.mmr0 = m0.anr=100000,\
|
||||
m0.ale=040000,\
|
||||
m0.ard=020000,\
|
||||
m0.trp=010000,\
|
||||
m0.ent=001000,\
|
||||
m0.mai=000400,\
|
||||
m0.ico=000200,\
|
||||
m0.sum=000140:000140,\
|
||||
m0.ssm=000040:000140,\
|
||||
m0.dsp=000020,\
|
||||
m0.sn7=000016:000016,\
|
||||
m0.sn6=000014:000016,\
|
||||
m0.sn5=000012:000016,\
|
||||
m0.sn4=000010:000016,\
|
||||
m0.sn3=000006:000016,\
|
||||
m0.sn2=000004:000016,\
|
||||
m0.sn1=000002:000016,\
|
||||
m0.ena=000001
|
||||
#
|
||||
.symset %mmu.mmr3 = m3.eub=000040,\
|
||||
m3.e22=000020,\
|
||||
m3.dkm=000004,\
|
||||
m3.dsm=000002,\
|
||||
m3.dum=000001
|
||||
#
|
||||
.symset %mmu.pdr = md.aia=000200,\
|
||||
md.aiw=000100,\
|
||||
md.dwn=000010,\
|
||||
md.an7=000007:000007,\
|
||||
md.arw=000006:000007,\
|
||||
md.atw=000005:000007,\
|
||||
md.atr=000004:000007,\
|
||||
md.an3=000003:000007,\
|
||||
md.aro=000002:000007,\
|
||||
md.art=000001:000007
|
||||
#
|
||||
20
tools/dasm-11/lib/defs_pc.das
Normal file
20
tools/dasm-11/lib/defs_pc.das
Normal file
@@ -0,0 +1,20 @@
|
||||
# $Id: defs_pc.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for PC11 controller
|
||||
#
|
||||
000070 : v..pr: .vect
|
||||
000074 : v..pp: .vect
|
||||
#
|
||||
.symbol pr.csr = 177550 use=%pr.cs
|
||||
.symbol pr.buf = 177552
|
||||
.symbol pp.csr = 177554 use=%pp.cs
|
||||
.symbol pp.buf = 177556
|
||||
#
|
||||
.symset %pr.cs = pr.err=100000,\
|
||||
pr.bsy=004000,\
|
||||
pr.don=000200,\
|
||||
pr.ie=000100,\
|
||||
pr.ena=000001
|
||||
.symset %pp.cs = pp.err=100000,\
|
||||
pp.rdy=000200,\
|
||||
pp.ie=000100
|
||||
27
tools/dasm-11/lib/defs_reg70.das
Normal file
27
tools/dasm-11/lib/defs_reg70.das
Normal file
@@ -0,0 +1,27 @@
|
||||
# $Id: defs_reg70.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for 11/70 cpu registers
|
||||
#
|
||||
.symbol cp.stk=177774
|
||||
.symbol cp.pir=177772
|
||||
.symbol cp.mbr=177770
|
||||
.symbol cp.err=177766 use=%cp.err
|
||||
.symbol cp.sid=177764
|
||||
.symbol cp.his=177762
|
||||
.symbol cp.los=177760
|
||||
#
|
||||
.symbol ms.hm=177752
|
||||
.symbol ms.mai=177750
|
||||
.symbol ms.ctl=177746
|
||||
.symbol ms.err=177744
|
||||
.symbol ms.ehi=177742
|
||||
.symbol ms.elo=177740
|
||||
#
|
||||
.symbol cp.ubm=170200
|
||||
#
|
||||
.symset %cp.err = cp.hlt=000200,\
|
||||
cp.aer=000100,\
|
||||
cp.nxm=000040,\
|
||||
cp.ito=000020,\
|
||||
cp.ysv=000010,\
|
||||
cp.rsv=000004
|
||||
64
tools/dasm-11/lib/defs_rk.das
Normal file
64
tools/dasm-11/lib/defs_rk.das
Normal file
@@ -0,0 +1,64 @@
|
||||
# $Id: defs_rk.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for RK11 controller
|
||||
#
|
||||
000220 : v..rk: .vect
|
||||
#
|
||||
.symbol rk.ds = 177400 use=%rk.ds
|
||||
.symbol rk.er = 177402 use=%rk.er
|
||||
.symbol rk.cs = 177404 use=%rk.cs
|
||||
.symbol rk.wc = 177406 use=.
|
||||
.symbol rk.ba = 177410
|
||||
.symbol rk.da = 177412
|
||||
.symbol rk.mr = 177414
|
||||
.symbol rk.db = 177416
|
||||
#
|
||||
.symset %rk.cs = rk.err=100000,\
|
||||
rk.he=040000,\
|
||||
rk.scp=020000,\
|
||||
rk.mai=010000,\
|
||||
rk.iba=004000,\
|
||||
rk.fmt=002000,\
|
||||
rk.rwa=001000,\
|
||||
rk.sse=000400,\
|
||||
rk.rdy=000200,\
|
||||
rk.ie=000100,\
|
||||
rk.fwr=000002:000016,\
|
||||
rk.frd=000004:000016,\
|
||||
rk.fwc=000006:000016,\
|
||||
rk.fse=000010:000016,\
|
||||
rk.frc=000012:000016,\
|
||||
rk.fdr=000014:000016,\
|
||||
rk.fwl=000016:000016,\
|
||||
rk.go=000001
|
||||
#
|
||||
.symset %rk.ds = rk.id1=020000:160000,\
|
||||
rk.id2=040000:160000,\
|
||||
rk.id3=060000:160000,\
|
||||
rk.id4=100000:160000,\
|
||||
rk.id5=120000:160000,\
|
||||
rk.id6=140000:160000,\
|
||||
rk.id7=160000:160000,\
|
||||
rk.dpl=010000,\
|
||||
rk.hde=004000,\
|
||||
rk.dru=002000,\
|
||||
rk.sin=001000,\
|
||||
rk.sok=000400,\
|
||||
rk.dry=000200,\
|
||||
rk.ary=000100,\
|
||||
rk.wps=000040,\
|
||||
rk.seq=000020
|
||||
#
|
||||
.symset %rk.er = rk.dre=100000,\
|
||||
rk.ovr=040000,\
|
||||
rk.wlo=020000,\
|
||||
rk.ske=010000,\
|
||||
rk.pce=004000,\
|
||||
rk.nxm=002000,\
|
||||
rk.dlt=001000,\
|
||||
rk.rte=000400,\
|
||||
rk.nxd=000200,\
|
||||
rk.nxc=000100,\
|
||||
rk.nxs=000040,\
|
||||
rk.cse=000002,\
|
||||
rk.wce=000001
|
||||
30
tools/dasm-11/lib/defs_rl.das
Normal file
30
tools/dasm-11/lib/defs_rl.das
Normal file
@@ -0,0 +1,30 @@
|
||||
# $Id: defs_rl.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for RL11 controller
|
||||
#
|
||||
000160 : v..rl: .vect
|
||||
#
|
||||
.symbol rl.cs = 174400 use=%rl.cs
|
||||
.symbol rl.ba = 174402
|
||||
.symbol rl.da = 174404
|
||||
.symbol rl.mp = 174406
|
||||
#
|
||||
.symset %rl.cs = rl.err=100000,\
|
||||
rl.de=040000,\
|
||||
rl.eoi=000001:036000,\
|
||||
rl.erc=000002:036000,\
|
||||
rl.ehc=000003:036000,\
|
||||
rl.edl=000004:036000,\
|
||||
rl.ehn=000005:036000,\
|
||||
rl.enx=000010:036000,\
|
||||
rl.cry=000200,\
|
||||
rl.ie=000100,\
|
||||
rl.fwc=000002:000016,\
|
||||
rl.fgs=000004:000016,\
|
||||
rl.fsk=000006:000016,\
|
||||
rl.frh=000010:000016,\
|
||||
rl.fwd=000012:000016,\
|
||||
rl.frd=000014:000016,\
|
||||
rl.frn=000016:000016,\
|
||||
rl.dry=000001
|
||||
#
|
||||
55
tools/dasm-11/lib/defs_rm.das
Normal file
55
tools/dasm-11/lib/defs_rm.das
Normal file
@@ -0,0 +1,55 @@
|
||||
# $Id: defs_rm.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for RH70 + RM disk controller
|
||||
#
|
||||
000254 : v..rm: .vect
|
||||
#
|
||||
.symbol rm.cs1 = 176700 use=%rm.cs1
|
||||
.symbol rm.wc = 176702 use=.
|
||||
.symbol rm.ba = 176704
|
||||
.symbol rm.da = 176706
|
||||
.symbol rm.cs2 = 176710
|
||||
.symbol rm.ds = 176712
|
||||
.symbol rm.er1 = 176714 use=%rm.er1
|
||||
.symbol rm.as = 176716
|
||||
.symbol rm.la = 176720
|
||||
.symbol rm.db = 176722
|
||||
.symbol rm.mr1 = 176724
|
||||
.symbol rm.dt = 176726
|
||||
.symbol rm.sn = 176730
|
||||
.symbol rm.of = 176732
|
||||
.symbol rm.dc = 176734
|
||||
.symbol rm.hr = 176736
|
||||
.symbol rm.mr2 = 176740
|
||||
.symbol rm.er2 = 176742
|
||||
.symbol rm.ec1 = 176744
|
||||
.symbol rm.ec2 = 176746
|
||||
.symbol rm.bae = 176750
|
||||
.symbol rm.cs3 = 176752
|
||||
#
|
||||
# cs1 symset incomplete
|
||||
.symset %rm.cs1= rm.sc=100000,\
|
||||
rm.tre=040000,\
|
||||
rm.dva=004000,\
|
||||
rm.rdy=000200,\
|
||||
rm.ie=000100,\
|
||||
rm.fsk=000004:000016,\
|
||||
rm.fcl=000010:000016,\
|
||||
rm.go=000001
|
||||
#
|
||||
.symset %rm.er1= rm.dck=100000,\
|
||||
rm.uns=040000,\
|
||||
rm.opi=020000,\
|
||||
rm.dte=010000,\
|
||||
rm.wle=004000,\
|
||||
rm.iae=002000,\
|
||||
rm.aoe=001000,\
|
||||
rm.hcr=000400,\
|
||||
rm.hce=000200,\
|
||||
rm.ech=000100,\
|
||||
rm.wcf=000040,\
|
||||
rm.fer=000020,\
|
||||
rm.par=000010,\
|
||||
rm.rmr=000004,\
|
||||
rm.ilr=000002,\
|
||||
rm.ilf=000001
|
||||
13
tools/dasm-11/lib/defs_tm.das
Normal file
13
tools/dasm-11/lib/defs_tm.das
Normal file
@@ -0,0 +1,13 @@
|
||||
# $Id: defs_tm.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# definitions for TM11 controller
|
||||
#
|
||||
000224 : v..tm: .vect
|
||||
#
|
||||
.symbol tm.mts = 172520
|
||||
.symbol tm.mtc = 172522
|
||||
.symbol tm.brc = 172524
|
||||
.symbol tm.cma = 172526
|
||||
.symbol tm.mtd = 172530
|
||||
.symbol tm.rda = 172532
|
||||
#
|
||||
13
tools/dasm-11/lib/defs_vect.das
Normal file
13
tools/dasm-11/lib/defs_vect.das
Normal file
@@ -0,0 +1,13 @@
|
||||
# $Id: defs_vect.das 1286 2022-08-25 06:53:38Z mueller $
|
||||
#
|
||||
# common vectors
|
||||
#
|
||||
000004 : v..iit: .vect
|
||||
000010 : v..rit: .vect
|
||||
000014 : v..bpt: .vect
|
||||
000020 : v..iot: .vect
|
||||
000024 : v..pwr: .vect
|
||||
000030 : v..emt: .vect
|
||||
000034 : v..trp: .vect
|
||||
#
|
||||
000114 : v..mse: .vect
|
||||
@@ -1,5 +1,5 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: asm-11.1 1264 2022-07-30 07:42:17Z mueller $
|
||||
.\" $Id: asm-11.1 1286 2022-08-25 06:53:38Z mueller $
|
||||
.\" SPDX-License-Identifier: GPL-3.0-or-later
|
||||
.\" Copyright 2013-2022 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
@@ -99,7 +99,7 @@ no .mexit, .mdelete, .mcall support
|
||||
.IP "\fB\-I\fI path\fR"
|
||||
adds \fIpath\fP to the .include search path.
|
||||
The default search path is '.' plus \fI$RETROBASE/tools/asm-11\fP if
|
||||
\fBRETROBASE\fP is defined. Each \fB\-I\fP adds \fIpath\P after '.'.
|
||||
\fBRETROBASE\fP is defined. Each \fB\-I\fP adds \fIpath\fP after '.'.
|
||||
\fB\-I\fP can be given multiple times und must have a single path name.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
|
||||
164
tools/man/man1/dasm-11.1
Normal file
164
tools/man/man1/dasm-11.1
Normal file
@@ -0,0 +1,164 @@
|
||||
.\" -*- nroff -*-
|
||||
.\" $Id: dasm-11.1 1286 2022-08-25 06:53:38Z mueller $
|
||||
.\" SPDX-License-Identifier: GPL-3.0-or-later
|
||||
.\" Copyright 2022- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
.\"
|
||||
.\" ------------------------------------------------------------------
|
||||
.
|
||||
.TH DASM-11 1 2022-08-25 "Retro Project" "Retro Project Manual"
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH NAME
|
||||
dasm-11 \- simple dis-assembler for PDP-11 binary code
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH SYNOPSIS
|
||||
.
|
||||
.SY dasm-11
|
||||
.RI [ OPTION ]...
|
||||
.I FILE
|
||||
.
|
||||
.SY dasm-11
|
||||
.B \-\-help
|
||||
.YS
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH DESCRIPTION
|
||||
\fBdasm-11\fP is a simple disassembler for PDP-11 binary code.
|
||||
It reads a core dump in \fBlsm-11\fP(5) format from \fIFILE\fP.
|
||||
If \fIFILE\fP is '-' the core dump is read from \fIstdin\fP.
|
||||
If \fIFILE\fP ends on '.gz' it is expanded with \fBgunzip\fP(1) on-the-fly.
|
||||
The disassembled code is written in MACRO-11 format to \fIstdout\fP,
|
||||
followed by a symbol table, a cross-reference table, and a statistics summary.
|
||||
|
||||
.SS Basic operation
|
||||
In very simplified terms, \fBdasm-11\fP tries to tag each memory word as
|
||||
either 'code', 'word', 'byte', or 'asciz' and represent it accordingly
|
||||
in MACRO-11 format. Sequences of zero 'word' or 'byte' locations are
|
||||
represented with a \fI.blkw\fP or \fI.blkb\fP directive, respectively.
|
||||
|
||||
The MACRO-11 output is always an exact replica of the input and contains an
|
||||
equivalent representation of all memory locations defined in the input file.
|
||||
|
||||
In the most basic operation mode, \fBdasm-11\fP is used with the \fB\-\-start\fP
|
||||
option to specify one or several start addresses.
|
||||
\fBdasm-11\fP tags these addresses as 'code' and follows all possible
|
||||
code execution paths and tags all instructions as 'code'. All memory
|
||||
locations accessed via an absolute or PC relative address mode are
|
||||
tagged 'byte' or 'word' depending on the instruction.
|
||||
|
||||
Without code start address via \fB\-\-start\fP, \fBdasm-11\fP can't do any
|
||||
code tagging, and without any tagging, the output is simply a list of
|
||||
\fI.word\fP directives, effectively a 1-to-1 dump of the input file.
|
||||
.
|
||||
.SS Guided operation
|
||||
The basic operation with just a few code start addresses has severe functional
|
||||
limitations
|
||||
.RS 2
|
||||
.PD 0
|
||||
.IP "-" 2
|
||||
code reached indirectly, e.g. via dispatch tables, is not detected
|
||||
.IP "-"
|
||||
strings are not detected and dumped as \fI.word\fP lists
|
||||
.IP "-"
|
||||
parameters following 'jsr r5' and trap instructions aren't handled
|
||||
.PD
|
||||
.RE
|
||||
.PP
|
||||
|
||||
Beyond that, the output is not very human-friendly, all labels are
|
||||
auto-generated with type letter and a 3-4 digit number, the immediate values
|
||||
are numeric, and the whole output is flat without any annotation.
|
||||
|
||||
All this is addressed in guided operation. Additional information is
|
||||
provided to \fBdasm-11\fP with 'diassembler steering' file, specified
|
||||
via the \fB\-\-das\fP option. The steering file allows
|
||||
.RS 2
|
||||
.PD 0
|
||||
.IP "-" 2
|
||||
to declare the data type for an address: code, string, but also rad50 or float,
|
||||
pointers to and arrays of any of those types.
|
||||
.IP "-"
|
||||
to declare argument lists for routines (e.g. called with 'jsr r5') and trap
|
||||
instructions
|
||||
.IP "-"
|
||||
to declare symbolic names for literal values
|
||||
.IP "-"
|
||||
to define a telling label name for an address
|
||||
.IP "-"
|
||||
to add code annotation, full line or after statement comments
|
||||
.IP "-"
|
||||
to define interrupt vectors
|
||||
.PD
|
||||
.RE
|
||||
.PP
|
||||
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH OPTIONS
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-I\fI path\fR"
|
||||
adds \fIpath\fP to the \fIdas\fP file include search path.
|
||||
The default search path is '.' plus \fI$RETROBASE/tools/dasm-11/lib\fP if
|
||||
\fBRETROBASE\fP is defined. Each \fB\-I\fP adds \fIpath\fP after '.'.
|
||||
\fB\-I\fP can be given multiple times und must have a single path name.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-das=\fIfnam\fR"
|
||||
if specified \fIfnam\fP will be read as steering file.
|
||||
If no \fB\-\-das\fP option is given, \fBdasm-11\fP tries to locate and load
|
||||
the default steering file. A '.gz' and a '.dmp' suffix is stripped from
|
||||
\fIFILE\fP, a '.das' suffix is added, and if that file exists, it's loaded.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-dmode=\fImode\fR"
|
||||
default mode of untagged data. Valid values of \fImode\fP are
|
||||
.RS
|
||||
.PD 0
|
||||
.IP \fBword\fP 7
|
||||
represent untagged data with \fI.word\fP directives (the default)
|
||||
.IP \fBasciz\fP
|
||||
interpret untagged data as zero-terminated ASCII and represent it with
|
||||
\fI.asciz\fP directives. Useful for finding strings.
|
||||
.IP \fBcode\fP
|
||||
interpret untagged data as code. Can be helpful to detect code sequences.
|
||||
.PD
|
||||
.RE
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-start=\fInn[,...]\fR"
|
||||
list of code start addresses. \fInn\fP is interpreted as octal number.
|
||||
Either a single value of a comma-separated list of values can be specified.
|
||||
Each address is used as starting point of code tagging.
|
||||
When \fBdasm-11\fP is used without a steering file and no \fB\-\-start\fP
|
||||
option is given, no code tagging will be done and the output is simply a
|
||||
list of \fI.word\fP directives.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-help\fR"
|
||||
print full help text and exit.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH OPTIONS FOR DEBUG
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-draw\fR" 8
|
||||
dump raw data.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-dtag\fR"
|
||||
dump tagged data.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-tctag\fR"
|
||||
trace code tagging.
|
||||
.
|
||||
.\" ----------------------------------------------
|
||||
.IP "\fB\-\-ttlc\fR"
|
||||
trace typlabcref calls.
|
||||
.
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH "SEE ALSO"
|
||||
.BR asm-11 (1),
|
||||
.BR lsm-11 (5)
|
||||
|
||||
.\" ------------------------------------------------------------------
|
||||
.SH AUTHOR
|
||||
Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
Reference in New Issue
Block a user