1
0
mirror of https://github.com/livingcomputermuseum/UniBone.git synced 2026-02-10 02:00:46 +00:00
Files
livingcomputermuseum.UniBone/10.02_devices/5_boot/dk.mac
Joerg Hoppe db0167afe1 Version 2019-06: many changes
PRU1 code split into multiple images
1. test functions
2. UNIBUS operation

PRU1 bus latch interface
Write byte/bits access not with MACROS (random optimizer influence),
now with *_helper() procedures. Same timing, more determinism, much code saving.
Nono more  ASM code to write PRU0 XFER area.

demo: menu to test UNIBUS signals directly

rework "Arbitration" logic: now 3-fold
Rework of UNIBUs arbtiration: NONE/CLIENT/MASTER
- no Arbitrator (SACK penidng for 11/34 Konsole) (NONE)
- phyiscal PDP_11 CPU is Arbitrator (CLIENT)
- UniBone implements Arbitrator (MASTER)
- Same PRU code loop handles all arbitration types

PRU buslatch timing slower, for some problematic PCBs

 More aggressive bus latch  selftest
 (mixed patterns, running on PRU now)

Refinement of ready-to-run scripts
- Adapted to changed "demo" menu
- new name scheme
<OS>_<boot- drive>_<PDP-11CPU>
indicates
- which OS is run
- which disk emulation is used and what is the boot device
- what is the (minimum) PDP-11 to run that

Merged in Joshs DMA timing for 11/84
UNIBUS master cycles waits 350 us before MSYN, instead 150.

Merged in Joshs DMA request queue
multiple devices canrequest INTR and DMAs concurrently, will be put on the bus sequentially

Merged in Joshs MSCP driver
- Build RT-11v5.5 for MSCP
- added boot loader "du.lst"

MSCP run scrips
2.11BSD on MSCP on PDP-11/44
RT11 on MSCP

Fix: image file sizing
Disk image file exptend automatically if block beyond current file end is written
2019-06-14 16:31:01 +02:00

84 lines
1.3 KiB
Plaintext

.title M9312 'DK/DT' BOOT prom for RK03/05 and TU55/56 controllers
; This source code is a modified copy of the DEC M9312 23-756A9 boot PROM.
;
; This boot PROM is for the RK03/05 DECdisk controllers.
;
; Multiple units and/or CSR addresses are supported via different entry points.
rkcsr =177400 ; std RK03/05 DECdisk csrbase
rkwc =+6-4 ; word count
rkda =+12-4 ; disk address
xxwc =rkwc ; common word count offset
.asect
.=10000
; --------------------------------------------------
start:
; 8 unit numbers => 8 entry addresses
start0:
mov #0,r0
br dknr
nop
start1:
mov #1,r0
br dknr
nop
start2:
mov #2,r0
br dknr
nop
start3:
mov #3,r0
br dknr
nop
start4:
mov #4,r0
br dknr
nop
start5:
mov #5,r0
br dknr
nop
start6:
mov #6,r0
br dknr
nop
start7:
mov #7,r0
br dknr
nop
dknr:
mov #rkcsr+4,r1 ; boot std csr, unit <R0>
mov r0,r3 ; get unit number
clc ; C=0 for ror
ror r3 ; shift into 15:12
ror r3 ;
ror r3 ;
ror r3 ;
mov r3,rkda(r1) ; unit number, sector 0 to disk addr
mov #-512.,xxwc(r1) ; set word count
bis #5,r3 ; command READ+GO
mov r3,(r1) ; execute
2$: tstb (r1) ; test ready
bpl 2$ ; loop
tst (r1) ; check error
bpl 3$ ; br if no error
reset ; reset the world
br dknr ; and retry
3$: bic #377,(r1) ; nop command
clr pc ; jump to loaded boot sector
.end