• Please review our updated Terms and Rules here

Data General Nova 3: 6045 Drive Debugging Progress

NF6X

Veteran Member
Joined
Sep 9, 2013
Messages
1,534
Location
Riverside, CA, USA
This forum needs more Nova chatter!

After a long hiatus, I've given my Nova 3/12 some more brain bandwidth. It consists of a Nova 3/12 and a 6045 hard drive. The drive has one 5M fixed platter, and one 5M removable pack. A couple of packs came with the system. I have not been able to boot the system off the hard drive, and I've finally started to debug that issue. I don't have quite enough going on yet for a blog post on my own blog, but the bar is a lot lower for a forum thread, so here we are!

The first task was determining if I even had things plugged into the right places after reassembling the system from its move to my home. Here are the boards that are installed. Note that the part numbers listed are the PCB artwork markings, which don't tell the whole story since the same PCB artwork was used for multiple end products based on how it was assembled. I have more data to gather, still.

SlotPart NumberDescription
12107-000116-08DGC NOVA QUAD MULTIPLEXER
11107-000187-16DISK CARTRIDGE CONTROL DGC NOVA
10
9
8
7
6
5
4107-000151-19DGC NOVA CASSETTE I/O ("4078" async interface)
3(non-DGC card)128K MOSTEK MEMORY
2107-000621-01NOVA 3 TRIPLE OPTION
1107-000539-05NOVA 3 CPU

First, I downloaded Toby Thain's portable Nova assembler and wrote a test program to toggle in and determine whether I could talk to the drive at all:

Code:
02                      .TITL   dsktst1
03                      .LOC    0
05 00000 062677 START:  IORST                   ; Reset I/O channels
06 00001 060633         DIAC    0, DKP          ; Drive status register to AC0
07 00002 065433         DIB     1, DKP          ; Drive mem addr register to AC1
08 00003 072433         DIC     2, DKP          ; Drive disk addr register to AC2
09 00004 034010         LDA     3, SEEK         ; Load seek command to AC3
10 00005 075133         DOAS    3, DKP          ; Do seek
11 00006 074433 POLL:   DIA     3, DKP          ; Poll drive status to AC3...
12 00007 000006         JMP     POLL            ; ...forever
14 00010 003220 SEEK:   003220                  ; Seek cyl 620(8):
15                                              ;   0 0000 1 10 10010000
16                                              ;   -> 0 000 011 010 010 000
17                      .END    START

That code reads the three drive registers into accumulators AC0-AC2, requests a near-full-stroke seek, then polls the status register into AC3 forever. The good news: It produced an audible clunk from the drive! The bad news: Reading the status register always produces zeros.

Toggling in test programs was going to get tedious pretty quickly, so I launched off on a side project to find an easier way. A very helpful and very Nova-savvy fellow helped me out with some documentation and test tape images, so I spent some time learning how to bootstrap paper tape images over the serial console port. I figured it out, and successfully ran a memory diagnostic. Still, dealing with multiple bootloader stage images each time was a bit more cumbersome than I wanted, so I looked for a still easier way.

With a day of work, I hacked up Toby's code to spit out binaries with a self-loading bootstrap prepended. Here's my fork of the code. Now, I can write test programs and then bootstrap them into the computer in one step, using its PROGRAM LOAD function! With that tool in the toolbox, I wrote another test program to perform full-stroke seeks, checking the BUSY and DONE flags after each seek:

Code:
02                      .TITL   DSKTST2
03                      .LOC    0
05 00000 062677 START:  IORST                   ; Reset all IO
06                      
07 00001 020024 LOOP:   LDA     0, SEEKUP       ; Full stroke seek +
08 00002 061133         DOAS    0, DKP
10 00003 063433         SKPBN   DKP             ; Wait for busy
11 00004 000003         JMP     .-1
13 00005 063633         SKPDN   DKP             ; Wait for done
14 00006 000005         JMP     .-1
16 00007 063533         SKPBZ   DKP             ; Wait for not busy
17 00010 000007         JMP     .-1
19 00011 060233         NIOC    DKP             ; Clear flags
20                      
21 00012 020025         LDA     0, SEEKDN       ; Full stroke seek -
22 00013 061133         DOAS    0, DKP
24 00014 063433         SKPBN   DKP             ; Wait for busy
25 00015 000014         JMP     .-1
27 00016 063633         SKPDN   DKP             ; Wait for done
28 00017 000016         JMP     .-1
30 00020 063533         SKPBZ   DKP             ; Wait for not busy
31 00021 000020         JMP     .-1
33 00022 060233         NIOC    DKP             ; Clear flags
34                      
35 00023 000001         JMP     LOOP
38 00024 003227 SEEKUP: 003227                  ; Seek cyl 407:
39                                              ;   0 0000 1 10 10010111
40                                              ;   0 000 011 010 010 111
42 00025 001000 SEEKDN: 001000                  ; Seek cyl 0:
43                                              ;   0 0000 0 10 00000000
44                                              ;   0 000 001 000 000 000
46                      .END    START

That should produce a small earthquake if all goes well, but it just made one clunk and then remained looping at 00005/00006. So, the drive took one seek command but then never set the DONE flag. And that's where I am right now. Time to dig into the electronics and find out what's going wrong!

Well, I need to leave for work. No telling whether the next time slice will be tonight or a year from now.
 
Hi All;

Nf6X, You need to check the Flip-flops for the BUSY and DONE flags and the associated circuitry, and Make sure with a scope or something Similar that they Both can be Set and Reset, not at the same time..
Most likely one of them is stuck or not working at all..
Also, make sure all of the appropriate signals are getting to the flip-flops..

THANK YOU Marty
 
Yup, I need to dig into the circuitry. I don't think I have detailed schematics for the drive or controller yet. I hope I can get some so I don't need to do it all in hard mode.
 
Back
Top