mirror of
https://github.com/wfjm/w11.git
synced 2026-04-26 04:08:17 +00:00
- added RH70/RP/RM big disk support
- many cleanups
This commit is contained in:
22
tools/asm-11/lib/defs_bits.mac
Normal file
22
tools/asm-11/lib/defs_bits.mac
Normal file
@@ -0,0 +1,22 @@
|
||||
; $Id: defs_bits.mac 622 2014-12-28 20:45:26Z mueller $
|
||||
; Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; definitions for generic bits names (as in defs_bits.das)
|
||||
;
|
||||
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
|
||||
29
tools/asm-11/lib/defs_cpu.mac
Normal file
29
tools/asm-11/lib/defs_cpu.mac
Normal file
@@ -0,0 +1,29 @@
|
||||
; $Id: defs_cpu.mac 622 2014-12-28 20:45:26Z mueller $
|
||||
; Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; definitions for basic CPU registers (as in defs_cpu.das)
|
||||
;
|
||||
cp.psw = 177776
|
||||
cp.dsr = 177570
|
||||
;
|
||||
; symbol definitions for cp.psw
|
||||
;
|
||||
cp.cms=040000
|
||||
cp.cmu=140000
|
||||
cp.pms=010000
|
||||
cp.pmu=030000
|
||||
cp.ars=004000
|
||||
cp.pr0=000000
|
||||
cp.pr1=000040
|
||||
cp.pr2=000100
|
||||
cp.pr3=000140
|
||||
cp.pr4=000200
|
||||
cp.pr5=000240
|
||||
cp.pr6=000300
|
||||
cp.pr7=000340
|
||||
cp.t=000020
|
||||
cp.n=000010
|
||||
cp.z=000004
|
||||
cp.v=000002
|
||||
cp.c=000001
|
||||
71
tools/asm-11/lib/defs_rk.mac
Normal file
71
tools/asm-11/lib/defs_rk.mac
Normal file
@@ -0,0 +1,71 @@
|
||||
; $Id: defs_rk.mac 667 2015-04-18 20:16:05Z mueller $
|
||||
; Copyright 2014- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; definitions for RK11 controler (as in defs_rk.das)
|
||||
;
|
||||
; register addresses
|
||||
;
|
||||
rk.ds=177400
|
||||
rk.er=177402
|
||||
rk.cs=177404
|
||||
rk.wc=177406
|
||||
rk.ba=177410
|
||||
rk.da=177412
|
||||
rk.mr=177414
|
||||
;
|
||||
; symbol definitions for 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
|
||||
rk.frd=000004
|
||||
rk.fwc=000006
|
||||
rk.fse=000010
|
||||
rk.frc=000012
|
||||
rk.fdr=000014
|
||||
rk.fwl=000016
|
||||
rk.go=000001
|
||||
;
|
||||
; symbol definitions for rk.ds
|
||||
;
|
||||
rk.id1=020000
|
||||
rk.id2=040000
|
||||
rk.id3=060000
|
||||
rk.id4=100000
|
||||
rk.id5=120000
|
||||
rk.id6=140000
|
||||
rk.id7=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
|
||||
;
|
||||
; symbol definitions for 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
|
||||
77
tools/asm-11/lib/defs_rp.mac
Normal file
77
tools/asm-11/lib/defs_rp.mac
Normal file
@@ -0,0 +1,77 @@
|
||||
; $Id: defs_rp.mac 667 2015-04-18 20:16:05Z mueller $
|
||||
; Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; definitions for RH70/RPRM controler
|
||||
;
|
||||
; register addresses
|
||||
;
|
||||
rp.cs1=176700
|
||||
rp.wc =176702
|
||||
rp.ba =176704
|
||||
rp.da =176706
|
||||
rp.cs2=176710
|
||||
rp.ds =176712
|
||||
rp.er1=176714
|
||||
rp.as =176716
|
||||
rp.la =176720
|
||||
rp.db =176722
|
||||
rp.mr1=176724
|
||||
rp.dt =176726
|
||||
rp.sn =176730
|
||||
rp.of =176732
|
||||
rp.dc =176734
|
||||
rp.m13=176736
|
||||
rp.m14=176740
|
||||
rp.m15=176742
|
||||
rp.ec1=176744
|
||||
rp.ec2=176746
|
||||
rp.bae=176750
|
||||
rp.cs3=176752
|
||||
;
|
||||
; symbol definitions for rp.cs1
|
||||
;
|
||||
rp.sc =100000
|
||||
rp.tre=040000
|
||||
rp.dva=004000
|
||||
rp.rdy=000200
|
||||
rp.ie =000100
|
||||
rp.fsk=000004 ; seek
|
||||
rp.fcl=000010 ; drive clear
|
||||
rp.fse=000030 ; search
|
||||
rp.fwr=000060 ; write
|
||||
rp.fwr=000070 ; read
|
||||
rp.go =000001
|
||||
;
|
||||
; symbol definitions for rp.ds
|
||||
;
|
||||
rp.ata=100000
|
||||
rp.erp=040000
|
||||
rp.pip=020000
|
||||
rp.mol=010000
|
||||
rp.wrl=004000
|
||||
rp.lbt=002000
|
||||
rp.pgm=001000
|
||||
rp.dpr=000400
|
||||
rp.dry=000200
|
||||
rp.vv =000100
|
||||
rp.om =000001
|
||||
;
|
||||
; symbol definitions for rp.er1
|
||||
;
|
||||
rp.dck=100000
|
||||
rp.uns=040000
|
||||
rp.opi=020000
|
||||
rp.dte=010000
|
||||
rp.wle=004000
|
||||
rp.iae=002000
|
||||
rp.aoe=001000
|
||||
rp.hcr=000400
|
||||
rp.hce=000200
|
||||
rp.ech=000100
|
||||
rp.wcf=000040
|
||||
rp.fer=000020
|
||||
rp.par=000010
|
||||
rp.rmr=000004
|
||||
rp.ilr=000002
|
||||
rp.ilf=000001
|
||||
22
tools/asm-11/lib/kprchr.mac
Normal file
22
tools/asm-11/lib/kprchr.mac
Normal file
@@ -0,0 +1,22 @@
|
||||
; $Id: kprchr.mac 503 2013-04-06 19:44:13Z mueller $
|
||||
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; synchronous (polling) console print: single character
|
||||
; Call:
|
||||
; jsr pc, kprchr
|
||||
; Arguments:
|
||||
; r0: character to be printed
|
||||
;
|
||||
; All registers preserved
|
||||
;
|
||||
|
||||
XCSR = 177564
|
||||
XBUF = 177566
|
||||
|
||||
kprchr: tstb @#XCSR
|
||||
bpl kprchr
|
||||
movb r0,@#XBUF
|
||||
1$: tstb @#XCSR
|
||||
bpl 1$
|
||||
rts pc
|
||||
52
tools/asm-11/lib/kprdec.mac
Normal file
52
tools/asm-11/lib/kprdec.mac
Normal file
@@ -0,0 +1,52 @@
|
||||
; $Id: kprdec.mac 503 2013-04-06 19:44:13Z mueller $
|
||||
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; synchronous (polling) console print: print signed decimal number
|
||||
; Call:
|
||||
; jsr pc, kprdec
|
||||
; Arguments:
|
||||
; r0: number to print
|
||||
;
|
||||
; r1-r5 registers preserved
|
||||
;
|
||||
|
||||
kprdec: mov r1,-(sp) ; save r1,..,r3
|
||||
mov r2,-(sp)
|
||||
mov r3,-(sp)
|
||||
|
||||
mov r0,r2 ; setup number to convert
|
||||
bge 1$ ; if negative
|
||||
neg r2 ; negate
|
||||
mov #'-,r0 ; and print a '-'
|
||||
jsr pc,kprchr
|
||||
|
||||
1$: mov #101$,r1 ; r1 points behind end of buffer
|
||||
clrb -(r1) ; ensure 0-termination
|
||||
movb #'.,-(r1) ; and trailing '.' to indicate decimal
|
||||
mov #5,r0 ; loop over 5 digits
|
||||
|
||||
tst r2 ; number 0
|
||||
bne 2$ ; if not convert
|
||||
movb #'0,-(r1) ; if yes, ensure that '0' is printed
|
||||
br 3$
|
||||
|
||||
2$: mov r2,r3 ; r2 is rest to convert
|
||||
beq 3$ ; break if zero
|
||||
clr r2 ; now (r2,r3) 32bit rest to convert
|
||||
div #10.,r2 ; div: r2->quotient; r3->reminder
|
||||
add #'0,r3 ; r3 is reminder, convert to char
|
||||
movb r3,-(r1) ; write (backwards) to buffer
|
||||
sob r0,2$ ; go for next digit
|
||||
|
||||
3$: mov r1,r0 ; r1 now points to convered string
|
||||
jsr pc,kprstr ; print it
|
||||
|
||||
mov (sp)+,r3 ; restore r1,..,r3
|
||||
mov (sp)+,r2
|
||||
mov (sp)+,r1
|
||||
rts pc
|
||||
|
||||
100$: .blkb 7. ; buffer
|
||||
101$: ; end-of-buffer
|
||||
.even
|
||||
53
tools/asm-11/lib/kprfmt.mac
Normal file
53
tools/asm-11/lib/kprfmt.mac
Normal file
@@ -0,0 +1,53 @@
|
||||
; $Id: kprfmt.mac 503 2013-04-06 19:44:13Z mueller $
|
||||
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; synchronous (polling) console print: very simple printf
|
||||
; Call:
|
||||
; jsr pc, kprfmt
|
||||
; Arguments:
|
||||
; r0: pointer format string
|
||||
; r1: pointer to argument list
|
||||
;
|
||||
; r2-r5 registers preserved
|
||||
;
|
||||
|
||||
kprfmt: mov r2,-(sp) ; save r2
|
||||
|
||||
mov r0,r2 ; r2 now ptr to fmt string
|
||||
|
||||
1$: movb (r2)+,r0 ; next fmt char
|
||||
beq 20$ ; if zero quit
|
||||
cmpb #'%,r0 ; is it '%' ?
|
||||
bne 10$ ; if not, print
|
||||
movb (r2)+,r0 ; if yes, get next
|
||||
beq 20$ ; if zero quit
|
||||
|
||||
cmpb #'s,r0 ; %s found ?
|
||||
bne 2$
|
||||
mov (r1)+,r0 ; get next arg
|
||||
jsr pc,kprstr ; and print string
|
||||
br 1$ ; go for next fmt char
|
||||
|
||||
2$: cmpb #'o,r0 ; %o found ?
|
||||
bne 3$
|
||||
mov (r1)+,r0 ; get next arg
|
||||
jsr pc,kproct ; and print octal number
|
||||
br 1$ ; go for next fmt char
|
||||
|
||||
3$: cmpb #'d,r0 ; %d found
|
||||
bne 4$
|
||||
mov (r1)+,r0 ; get next arg
|
||||
jsr pc,kprdec ; and print as decimal number
|
||||
br 1$
|
||||
|
||||
4$: movb -2(r2),r0 ; was neither %s,%o,%d
|
||||
jsr pc,kprchr ; so simply print these two letters...
|
||||
movb -1(r2),r0
|
||||
|
||||
10$: jsr pc,kprchr ; print fmt char
|
||||
br 1$ ; go for next fmt char
|
||||
|
||||
20$: mov (sp)+,r2 ; restore r2
|
||||
rts pc
|
||||
|
||||
38
tools/asm-11/lib/kproct.mac
Normal file
38
tools/asm-11/lib/kproct.mac
Normal file
@@ -0,0 +1,38 @@
|
||||
; $Id: kproct.mac 503 2013-04-06 19:44:13Z mueller $
|
||||
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; synchronous (polling) console print: print octal number
|
||||
; Call:
|
||||
; jsr pc, kproct
|
||||
; Arguments:
|
||||
; r0: number to print
|
||||
;
|
||||
; r1-r5 registers preserved
|
||||
;
|
||||
|
||||
kproct: mov r1,-(sp) ; save r1,..,r3
|
||||
mov r2,-(sp)
|
||||
mov r3,-(sp)
|
||||
mov #101$,r1 ; r1 points behind end of buffer
|
||||
clrb -(r1) ; ensure 0-termination
|
||||
mov #6,r2 ; loop over 6 digits
|
||||
1$: mov r0,r3 ; get reminder
|
||||
bic #177770,r3 ; mask 3 lsb
|
||||
add #'0,r3 ; add ascii 0 code
|
||||
movb r3,-(r1) ; write (backwards) to buffer
|
||||
clc ; unsigned divide by 8
|
||||
ror r0
|
||||
asr r0
|
||||
asr r0
|
||||
sob r2,1$ ; go for next digit
|
||||
mov r1,r0 ; r1 now points to convered string
|
||||
jsr pc,kprstr ; print it
|
||||
mov (sp)+,r3 ; restore r1,..,r3
|
||||
mov (sp)+,r2
|
||||
mov (sp)+,r1
|
||||
rts pc
|
||||
|
||||
100$: .blkb 7. ; buffer
|
||||
101$: ; end-of-buffer
|
||||
.even
|
||||
21
tools/asm-11/lib/kprstr.mac
Normal file
21
tools/asm-11/lib/kprstr.mac
Normal file
@@ -0,0 +1,21 @@
|
||||
; $Id: kprstr.mac 503 2013-04-06 19:44:13Z mueller $
|
||||
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; synchronous (polling) console print: print 0-terminated string
|
||||
; Call:
|
||||
; jsr pc, kprstr
|
||||
; Arguments:
|
||||
; r0: pointer to 0-terminated string
|
||||
;
|
||||
; r1-r5 registers preserved
|
||||
;
|
||||
|
||||
kprstr: mov r1,-(sp) ; save r1
|
||||
mov r0,r1 ; r1 now ptr to string
|
||||
1$: movb (r1)+,r0 ; get next char
|
||||
beq 2$ ; quit if 0 char
|
||||
jsr pc,kprchr ; otherwise print char
|
||||
br 1$ ; go for next char
|
||||
2$: mov (sp)+,r1 ; restore r1
|
||||
rts pc
|
||||
29
tools/asm-11/lib/vec_cpucatch.mac
Normal file
29
tools/asm-11/lib/vec_cpucatch.mac
Normal file
@@ -0,0 +1,29 @@
|
||||
; $Id: vec_cpucatch.mac 503 2013-04-06 19:44:13Z mueller $
|
||||
; Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
; License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
||||
;
|
||||
; vector catcher for the basic cpu interrupts
|
||||
;
|
||||
. = 000004
|
||||
v..iit: .word v..iit+2 ; vec 4
|
||||
.word 0
|
||||
v..rit: .word v..rit+2 ; vec 10
|
||||
.word 0
|
||||
v..bpt: .word v..bpt+2 ; vec 14 (T bit; BPT)
|
||||
.word 0
|
||||
v..iot: .word v..iot+2 ; vec 20 (IOT)
|
||||
.word 0
|
||||
v..pwr: .word v..pwr+2 ; vec 24 (Power fail, not used)
|
||||
.word 0
|
||||
v..emt: .word v..emt+2 ; vec 30 (EMT)
|
||||
.word 0
|
||||
v..trp: .word v..trp+2 ; vec 34 (TRAP)
|
||||
.word 0
|
||||
|
||||
. = 000240
|
||||
v..pir: .word v..pir+2 ; vec 240 (PIRQ)
|
||||
.word 0
|
||||
v..fpp: .word v..fpp+2 ; vec 244 (FPP)
|
||||
.word 0
|
||||
v..mmu: .word v..mmu+2 ; vec 250 (MMU)
|
||||
.word 0
|
||||
Reference in New Issue
Block a user