• Please review our updated Terms and Rules here

Is there an RX01 Emulator?

Quick question Don,

On my '83 I've always booted from ROM and everything has worked fine. When I am runing a boot loader from ODT I enter the program into memory, typically location 1000, set the PSW to 340, and enter 1000G.

Is there any other registers I should be setting prior to hitting go?

len
 
Arduino Board misbehaving?

While I wait for some parts to arrive to finish building the emulator board, I installed the arduino and IDE with the emulator software (previously installed).. I discovered a strange behavior of the arduino mega board. When I touch the plastic on one of the headers (not even the conductors) the software seems to trigger. Here is a video of the situation...


What causes this? Could it be static on my fingers? I am surprised the inputs to the arduino would be so sensitive?
 
Quick question Don,

On my '83 I've always booted from ROM and everything has worked fine. When I am runing a boot loader from ODT I enter the program into memory, typically location 1000, set the PSW to 340, and enter 1000G.

Is there any other registers I should be setting prior to hitting go?

len

Loading at 1000 and running at 1000 may or may not work, it depends on the coding of the bootloader. It may be designed to be position independent and can be loaded at any address. Or not. Starting address may be at the load address. Or not.

So without seeing the code in question it is not possible to say that yes this is definitely ok.

As to other registers, generally speaking a bootloader expects to be running after the CPU (and devices) has been set to the default power up state via INIT and/or RESET instructions. Placing a RESET instruction (000005) at the start of the bootloader can accomplish this (or generating an INIT from the hardware console).

Don
 
Arduino Board misbehaving?

While I wait for some parts to arrive to finish building the emulator board, I installed the arduino and IDE with the emulator software (previously installed).. I discovered a strange behavior of the arduino mega board. When I touch the plastic on one of the headers (not even the conductors) the software seems to trigger. Here is a video of the situation...

What causes this? Could it be static on my fingers? I am surprised the inputs to the arduino would be so sensitive?

That video is not playable (by me at least, probably all others except you) as it is marked 'private'.

But in any event I don't see any kind of strange behavior on my Arduino Mega2560s. I have both 'genuine' boards and some cheaper Amazon clones and both behave OK when powered on and I handle them (within reason, no static discharges, etc).

Maybe you have a bad/flaky USB cable that causes a power glitch when you move it? Just guessing.

Don
 
oops. sorry about that. yes it was private i forgot to change it. you can try it again now.
 
oops. sorry about that. yes it was private i forgot to change it. you can try it again now.

Ok, saw it now. Just looks like you're able to false trigger an input that has no connection on it. The software is responding to what it thinks is a '1' on the RUN input. I haven't ever tried doing this, but I don't think there is anything that strange, given the high impedance nature of CMOS inputs.

I think is has more to do with your 'aura' more than anything else. You seem to have a lot of positive energy available :)

Don
 
I think is has more to do with your 'aura' more than anything else. You seem to have a lot of positive energy available :)
Don

Ha! yes, that must be it! Ok, thanks. I am nearly done with the shield, I'll post results as and when. Thanks!
 
Hi Don,

Made a bit of progress testing. I'm not sure if this is perfectly valid or not. The only system I could get XXDP booted was my 11/73 with a MXV11-BF. It has 128k, which I understand is a problem with my version of the RXV21. Although for testing I'm not sure if that is critical. Failures documented below. The complete log file is here: http://isdi.com/DEC/xxdpLog.txt


Code:
BOOTING UP XXDP-XM EXTENDED MONITOR


XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DD0
064KW OF MEMORY
NON-UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZRXFB0.BIC
ZRXFB0.BIC

DRSSM-G2
CZRXFB0-0-0
RX02 FUNCTION-LOGIC TEST
UNIT IS RX02
RSTRT ADR 145702
DR>STA

CHANGE HW (L)  ? Y

# UNITS (D)  ? 1

UNIT 0
RX BUS ADR (O)  177170 ? 
VECTOR ADR (O)  264 ? 
DRIVE #    (O)  0 ? 1
EXP WRD-CR (O)  0 ? 
BR-LEVEL   (O)  5 ? 

CHANGE SW (L)  ? Y

TEST HELP  (L) N ? Y
DIAGNOSTIC MODES ARE:
      LOGIC TEST, FUNCTION TEST, OR BOTH
   -FUNCTION TESTS (1-10)
      ACT AS QUICK VERIFY & REPORT FAILING FUNCTIONS
   -LOGIC TESTS (11-36)
      ANALYZE FAILURE & GIVE ERROR INFO
      REPORT FIELD REPLACEABLE UNITS "FRU'S"
       ->DEVICE FATAL THRESHOLD LEVEL (DVTL) IS SET = 1
        "DVTL" = NO. OF HARD ERRS THAT CAUSE DEVICE FATAL ERR
TYPE "CR" TO CONTINUE (L) N ? 
LOGIC TEST MODE    (L) Y ? Y
FUNCTION TEST MODE (L) N ? Y
HARD ERR -> DEVICE FATAL THRESHOLD LVL (O)  1 ? 
NON-EXISTANT MEM ADR (NXM TST) (O)  160000 ? 
EXTENDED ADR BITS: 13 & 12 (NPR-NXM TST) (O)  0 ? 
TEST CONTROL FLAGS  (L) N ? 
EXPANSION WORD TYPE <CR>  (L) N ? 

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N

CZRXFB0 HRD ERR  00005 ON UNIT 00 TST 036 SUB 000 PC: 003476
 DISKETTE & DENSITY DATA CHECK - LGC TST
  DATA ERROR
  POSSIBLE FAILING "FRU'S": 
            CONTROLLER - M7744
            R-W ELECT - M7745

  UNIT#0 RXCSR=004040 RXESR=000000 CMD=000003 ->EMPTY BUFFER
 TRK# 15. SEC#18.
 BYTE#  GOOD      BAD
    50  01100010  00000000
    51  10100100  00000000
    52  00101101  01100010
    53  11010011  10100100
    54  01100100  00101101
    55  01101101  11010011
    56  11100011  01100100
    57  00101000  01101101
    58  00101110  11100011
CZRXFB0 HRD ERR  00005 ON UNIT 00 TST 036 SUB 000 PC: 003476
 DISKETTE & DENSITY DATA CHECK - LGC TST
  DATA ERROR
  POSSIBLE FAILING "FRU'S": 
            CONTROLLER - M7744
            R-W ELECT - M7745

  UNIT#0 RXCSR=004440 RXESR=000000 CMD=000403 ->EMPTY BUFFER
 TRK# 51. SEC# 6.
 BYTE#  GOOD      BAD
    22  01011001  00000000
    23  01011110  00000000
    24  11110011  01011001
    25  01111100  01011110
    26  10010011  11110011
    27  01000100  01111100
    28  01100101  10010011
    29  01000001  01000100
    30  00111000  01100101
CZRXFB0 HRD ERR  00005 ON UNIT 00 TST 036 SUB 000 PC: 003476
 DISKETTE & DENSITY DATA CHECK - LGC TST
  DATA ERROR
  POSSIBLE FAILING "FRU'S": 
            CONTROLLER - M7744
            R-W ELECT - M7745

  UNIT#0 RXCSR=004440 RXESR=000000 CMD=000403 ->EMPTY BUFFER
 TRK# 12. SEC#11.
 BYTE#  GOOD      BAD
    86  10111011  00000000
    87  11101110  00000000
    88  10110111  10111011
    89  11111101  11101110
    90  00110111  10110111
    91  11001101  11111101
    92  00101011  00110111
    93  00011010  11001101
    94  10110010  00101011
CZRXFB0 EOP    1
    3 TOTAL ERRS

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N




Code:
RX02 Emulator v1.6 (IDE 1.6.13/gcc 4.9.2) - Mar 11 2017 - 10:40:25
SD: cardType=SD3
SD: cardSize=3781MB
SD: volType=FAT32
SD: volBytesPerCluster=32768
SD: volClusterCount=120752
SD: volSizeBytes=3744MB
2000-01-01 01:00:00     512512 RX0.DSK
2017-03-15 19:53:00     512512 RT11_a.DSK
2000-01-01 01:00:00     512512 RX1.DSK
2017-03-15 19:53:00     512512 RT11_b.DSK
2000-01-01 01:00:00         47 SETUP.INI
2017-03-15 19:53:00     512512 RT11_c.DSK
2000-01-01 01:00:00     512512 t
2017-03-10 21:39:10     512512 1123_1.RX2
2017-03-10 21:39:32     512512 1123_2.RX2
2017-03-16 13:24:46     512512 RT11_4.DSK
Valid MicroSD card detected.
RX: waiting for INIT to clear ... t=1139ms
RX: INIT has NOT cleared t=11140ms
RX: INIT rx_xmit_es(0244)

Processing setup file 'SETUP.INI' ...
0 RT11_a.DSK
Setting file[0]: 'RT11_a.DSK'
Y 0
Setting file[0] mode: R/W
1 t
Setting file[1]: 't'
Y 1
Setting file[1] mode: R/W
D 1
Setting debug mode: 1 (Low)
M 2
Setting emulation mode: 2 (RX02)
T 0
Setting timing mode: 0 (Fastest)
S
Current file[0]: 'RT11_a.DSK' (R/W)
Current file[1]: 't' (R/W)
... setup file processing complete!

Initialization complete.
RX: waiting for INIT to clear ... t=58242ms
RX: INIT has cleared t=58243ms
RX: waiting for INIT to clear ... t=58254ms
RX: INIT has cleared t=58255ms
RX: INIT rx_xmit_es(0244)

RX: cmd=0013
RX: RDSTAT unit=0 den=S
RX: RDSTAT rx_xmit_es(0240)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=001
RX: RDSECT ta=001
RX: RDSECT pos=6656. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=003
RX: RDSECT ta=001
RX: RDSECT pos=7168. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=011
RX: RDSECT ta=001
RX: RDSECT pos=8704. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=013
RX: RDSECT ta=001
RX: RDSECT pos=9216. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=015
RX: RDSECT ta=001
RX: RDSECT pos=9728. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=017
RX: RDSECT ta=001
RX: RDSECT pos=10240. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=021
RX: RDSECT ta=001
RX: RDSECT pos=10752. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=023
RX: RDSECT ta=001
RX: RDSECT pos=11264. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=025
RX: RDSECT ta=001
RX: RDSECT pos=11776. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=027
RX: RDSECT ta=001
RX: RDSECT pos=12288. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=031
RX: RDSECT ta=001
RX: RDSECT pos=12800. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=002
RX: RDSECT ta=001
RX: RDSECT pos=6912. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=004
RX: RDSECT ta=001
RX: RDSECT pos=7424. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=006
RX: RDSECT ta=001
RX: RDSECT pos=7936. len=256.
RX: RDSECT rx_xmit_es(0040)

RX: cmd=0403
RX: EMPBUF unit=0 den=D
RX: EMPBUF wc=200
RX: EMPBUF rx_xmit_es(0000)

RX: cmd=0407
RX: RDSECT unit=0 den=D
RX: RDSECT sa=004
RX: RDSECT ta=004
RX: RDSECT pos=27392. len=256.
RX: RDSECT rx_xmit_es(0040)
 
Hi Don,

Made a bit of progress testing. I'm not sure if this is perfectly valid or not. The only system I could get XXDP booted was my 11/73 with a MXV11-BF. It has 128k, which I understand is a problem with my version of the RXV21. Although for testing I'm not sure if that is critical. Failures documented below. The complete log file is here: http://isdi.com/DEC/xxdpLog.txt


Code:
BOOTING UP XXDP-XM EXTENDED MONITOR


XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DD0
064KW OF MEMORY
NON-UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZRXFB0.BIC
ZRXFB0.BIC

DRSSM-G2
CZRXFB0-0-0
RX02 FUNCTION-LOGIC TEST
UNIT IS RX02
RSTRT ADR 145702
DR>STA

CHANGE HW (L)  ? Y

# UNITS (D)  ? 1

UNIT 0
RX BUS ADR (O)  177170 ? 
VECTOR ADR (O)  264 ? 
DRIVE #    (O)  0 ? 1
EXP WRD-CR (O)  0 ? 
BR-LEVEL   (O)  5 ? 

CHANGE SW (L)  ? Y

TEST HELP  (L) N ? Y
DIAGNOSTIC MODES ARE:
      LOGIC TEST, FUNCTION TEST, OR BOTH
   -FUNCTION TESTS (1-10)
      ACT AS QUICK VERIFY & REPORT FAILING FUNCTIONS
   -LOGIC TESTS (11-36)
      ANALYZE FAILURE & GIVE ERROR INFO
      REPORT FIELD REPLACEABLE UNITS "FRU'S"
       ->DEVICE FATAL THRESHOLD LEVEL (DVTL) IS SET = 1
        "DVTL" = NO. OF HARD ERRS THAT CAUSE DEVICE FATAL ERR
TYPE "CR" TO CONTINUE (L) N ? 
LOGIC TEST MODE    (L) Y ? Y
FUNCTION TEST MODE (L) N ? Y
HARD ERR -> DEVICE FATAL THRESHOLD LVL (O)  1 ? 
NON-EXISTANT MEM ADR (NXM TST) (O)  160000 ? 
EXTENDED ADR BITS: 13 & 12 (NPR-NXM TST) (O)  0 ? 
TEST CONTROL FLAGS  (L) N ? 
EXPANSION WORD TYPE <CR>  (L) N ? 

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N

CZRXFB0 HRD ERR  00005 ON UNIT 00 TST 036 SUB 000 PC: 003476
 DISKETTE & DENSITY DATA CHECK - LGC TST
  DATA ERROR
  POSSIBLE FAILING "FRU'S": 
            CONTROLLER - M7744
            R-W ELECT - M7745

  UNIT#0 RXCSR=004040 RXESR=000000 CMD=000003 ->EMPTY BUFFER
 TRK# 15. SEC#18.
 BYTE#  GOOD      BAD
[B]    50  [COLOR="#FF0000"]01100010  [/COLOR]00000000
    51  [COLOR="#00FF00"]10100100  [/COLOR]00000000
    52  [COLOR="#EE82EE"]00101101  [/COLOR][COLOR="#FF0000"]01100010[/COLOR]
    53  [COLOR="#FFD700"]11010011  [/COLOR][COLOR="#00FF00"]10100100[/COLOR]
    54  [COLOR="#0000FF"]01100100  [/COLOR][COLOR="#EE82EE"]00101101[/COLOR]
    55  [COLOR="#DAA520"]01101101  [/COLOR][COLOR="#FFD700"]11010011[/COLOR]
    56  [COLOR="#40E0D0"]11100011  [/COLOR][COLOR="#0000FF"]01100100[/COLOR]
    57  00101000  [COLOR="#DAA520"]01101101[/COLOR]
    58  00101110  [COLOR="#40E0D0"]11100011[/COLOR][/B]
CZRXFB0 HRD ERR  00005 ON UNIT 00 TST 036 SUB 000 PC: 003476
 DISKETTE & DENSITY DATA CHECK - LGC TST
  DATA ERROR
  POSSIBLE FAILING "FRU'S": 
            CONTROLLER - M7744
            R-W ELECT - M7745

  UNIT#0 RXCSR=004440 RXESR=000000 CMD=000403 ->EMPTY BUFFER
 TRK# 51. SEC# 6.
 BYTE#  GOOD      BAD
    22  01011001  00000000
    23  01011110  00000000
    24  11110011  01011001
    25  01111100  01011110
    26  10010011  11110011
    27  01000100  01111100
    28  01100101  10010011
    29  01000001  01000100
    30  00111000  01100101
CZRXFB0 HRD ERR  00005 ON UNIT 00 TST 036 SUB 000 PC: 003476
 DISKETTE & DENSITY DATA CHECK - LGC TST
  DATA ERROR
  POSSIBLE FAILING "FRU'S": 
            CONTROLLER - M7744
            R-W ELECT - M7745

  UNIT#0 RXCSR=004440 RXESR=000000 CMD=000403 ->EMPTY BUFFER
 TRK# 12. SEC#11.
 BYTE#  GOOD      BAD
    86  10111011  00000000
    87  11101110  00000000
    88  10110111  10111011
    89  11111101  11101110
    90  00110111  10110111
    91  11001101  11111101
    92  00101011  00110111
    93  00011010  11001101
    94  10110010  00101011
CZRXFB0 EOP    1
    3 TOTAL ERRS

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N

If I look at the good and bad data columns, I see for each of the bad data two zero bytes have been inserted, and the good data then shifted, but it matches. So either on the buffer fill, or the buffer empty, it looks like the DMA access either inserted two zero bytes, or possibly bumped the address by one extra word, causing a data misalignment. The offset into the buffer seems to be more or less random on each failure.

I haven't seen this particular failure mode, so I can't comment on exactly what to look at. It is in test 036, which is in the read/write portion of the diagnostic, well past the basic buffer fill/empty testing. So it may be related to the access of the microSD card by the Arduino (with an extra two zero bytes inserted) as another possibility (less likely however given the nature of the failure).

You might try just running the FUNCTION TESTS (1-10) only and not the LOGIC TESTS and see if they run error free.

Given the nature of the failure my suspicion is that something in the DMA logic (only used during buffer FILL / EMPTY) is not working 100% reliably.

Don
 
Last edited:
Hello again! We'll I've completed the build. I connected it to my PC, ran the IDE (the arduino was previously programmed at N2MIY's) and ran the serial monitor and I received the response below...I got some disk images from Lou as well to load onto my SD card...I should note that this is still stand alone, not connected to the RX8E card yet...

Code:
RX02 Emulator v1.3 - Mar  5 2017 - 11:18:18
SD: cardType=SD3
SD: cardSize=7580MB
SD: volType=FAT32
SD: volBytesPerCluster=32768
SD: volClusterCount=242304
SD: volSizeBytes=7552MB
2000-01-01 02:00:00     512512 RX0.DSK
2017-01-01 18:27:30     256256 RX01-00.dsk
2017-01-01 18:28:14     256256 RX01-01.dsk
2017-01-01 18:29:46     256256 RX01-02.dsk
2017-01-01 18:30:24     256256 RX01-03.dsk
2000-01-01 02:00:00     512512 RX1.DSK
2016-08-19 19:35:22     512512 RX02-00.dsk
2016-10-29 14:22:52     512512 RX02-01.dsk
2016-08-19 19:35:36     512512 RX02-02.dsk
2016-08-19 19:35:48     512512 RX02-03.dsk
2000-01-01 02:00:00     512512 RX02-04.dsk
2000-01-01 02:00:00         58 SETUP.INI
2017-01-01 18:35:00        250 files.txt
Valid MicroSD card detected.
RX: waiting for INIT to clear ... t=1148ms
RX: INIT has NOT cleared t=11149ms
RX: INIT rx_xmit_es(0244)

Processing setup file 'SETUP.INI' ...
0 RX01-01.dsk
Setting file[0]: 'RX01-01.dsk'
Y 0
Setting file[0] mode: R/W
1 RX01-02.dsk
Setting file[1]: 'RX01-02.dsk'
Y 1
Setting file[1] mode: R/W
D 3
Setting debug mode: 3 (Extreme)
M 1
Setting emulation mode: 1 (RX01)
T 0
Setting timing mode: 0 (Fastest)
S
Current file[0]: 'RX01-01.dsk' (R/W)
Current file[1]: 'RX01-02.dsk' (R/W)
... setup file processing complete!

Initialization complete.

So far so good! But the problem is that if I want to type 'h' for help or any other command, I see the character echoed on the serial monitor and I see the RX and TX leds flash when I hit send but no response from the arduino.

I've tried this also with the shield removed with the same result. Any thoughts on this?
Thanks
Eugene
 
In the serial monitor window (accessed via CTRL-SHIFT-M in the IDE) there are serial config parameters you need to set, accessed at the bottom of the window.

Set the line ending to 'CR' (or something other than 'NONE').

The default serial debug baud rate the emulator code sets up is 250000, so you need to enter that value manually in the baud rate window.

Then you can hit 'H' in the upper text window, and click SEND.
 
Last edited:
Duh on me. That fixed it. Next up, try it on the PDP-8/e. Stay tuned!
 
Ok, everything is built, connected up and ready to go. After hitting my "SW" switch a few times and absolutely nothing happened, I realized that I don't have the M847/MI8E board!!!
Might someone have a very simple program I could toggle in to try to boot? I figure the boot should be for an RX01-disk 0. I will set disk 0 to an OS/8 disk image before hand.

thanks
 
Ok, everything is built, connected up and ready to go. After hitting my "SW" switch a few times and absolutely nothing happened, I realized that I don't have the M847/MI8E board!!!
Might someone have a very simple program I could toggle in to try to boot? I figure the boot should be for an RX01-disk 0. I will set disk 0 to an OS/8 disk image before hand.

thanks

Here is the boot I use for RX28/RX02 at address 75, copied from the RX01/RX02 REFERENCE CARD. Load locations 20 thru 61, start at 33.

I have my M847/MI8E setup for low speed TTY boot, so i just toggle SW and then send this code as a RIM file over the TTY link to boot the RX28/RX02

Code:
    1             TITLE   "RX28 Bootstrap for RX01/RX02 Media"
    2             
    3             / RX28 bootstrap copied from the "RX01/RX02 Reference Card"
    4             
    5             / device IOT symbolic equates
    6             
    7       6751  LCD=6751        / LOAD COMMAND
    8       6752  XDR=6752        / TRANSFER DATA
    9       6753  STR=6753        / SKIP IF READY TO TRANSFER
   10       6754  SER=6754        / SKIP ON ERROR
   11       6755  SDN=6755        / SKIP ON DONE
   12             
   13       0020  *20
   14 00020 1061  READ,   TAD UNIT                / try next combination of density and unit
   15 00021 1046          TAD K360                / adding in 360
   16 00022 0060          AND K420                / keeping only 420 bits
   17 00023 3061          DCA UNIT                / cycles 400,420,0,20,400,,,,,,,,
   18 00024 7327          CLL CLA CML IAC RTL     / command to read disk AC=6
   19 00025 1061          TAD UNIT                / UNIT and DENSITY
   20 00026 6751          LCD                     / command to controller
   21 00027 7301          CLL CLA IAC             / set sector and track AC=1
   22 00030 4053          JMS LOAD                / sector to controller, leaves AC alone
   23 00031 4053          JMS LOAD                / track to controller
   24 00032 7004  K7004,  RAL                     / command to read FIFO AC=2
   25             
   26             / FOLLOWING IS PART OF WAIT LOOP, SAME SECONDARY BOOTS, OLD PRIMARY BOOT
   27             
   28 00033 6755  START,  SDN                     / has done come up; code starts here!
   29 00034 5054           JMP LOAD+1             / no, go check for ready to transfer
   30 00035 6754          SER                     / skip on an error, try another density etc.
   31 00036 7450           SNA                    / nasty, AC=2 for about to do SILO, AC=0 on start-up
   32 00037 5020            JMP READ              / START-UP, go set up UNIT, then read to SILO
   33 00040 1061          TAD UNIT                / AC already 2, put in UNIT, DENSITY
   34 00041 6751          LCD                     / to empty the SILO
   35 00042 1061          TAD UNIT                / set up loc 60 for old secondary boot
   36 00043 0046          AND K360                / keeping only DENSITY bit
   37 00044 1032          TAD K7004               / adding in 7004, because that's what sys wants
   38 00045 3060          DCA RXSAVE              / old secondary boot moves it to handler
   39 00046 0360  K360,   360                     / AND C 160 a NOP here; AC is already zero
   40             
   41             / following code same as old primary boot
   42             
   43 00047 4053  LOOP,   JMS LOAD                / grab next item from SILO
   44 00050 3002  ADDR,   DCA 2                   / tradition; secondary boot starts loading at 2 !
   45 00051 2050          ISZ ADDR                / increment load address
   46 00052 5047          JMP LOOP                / go back for another
   47             
   48             / secondary boot loads over primary boot unit location 47 is loaded,
   49             / then control passes to secondary boot
   50             
   51 00053 0000  LOAD,   0                       / subroutine to give and take data from controller
   52 00054 6753          STR                     / is he ready to talk to us?
   53 00055 5033           JMP START              / no, is he perhaps done with silo, or in error?
   54 00056 6752          XDR                     / yes, data in or out;if data to controller, AC unchanged
   55 00057 5453          JMP I LOAD              / no magic, just exit from subroutine
   56             
   57             / 60 goes to old secondary boot
   58             / 61 has density and unit that booted successfully
   59             
   60       0060  *60
   61             K420,
   62 00060 0420  RXSAVE, 420                     / UNIT^20+7004 to go to sys handler
   63 00061 0020  UNIT,   20                      / <DENSITY^400>+<UNIT^20> that booted OK
   64

Note: I uploaded a .pdf of the RX01/RX02 Pocket Service Guide at: https://drive.google.com/open?id=0B7Csc-dWWfTYRDZjYVFFVDlGZ3M
The above bootstrap for RX28/RX02 and one for RX8E/RX01 are on page 13 of the guide.
 
Last edited:
If I look at the good and bad data columns, I see for each of the bad data two zero bytes have been inserted, and the good data then shifted, but it matches. So either on the buffer fill, or the buffer empty, it looks like the DMA access either inserted two zero bytes, or possibly bumped the address by one extra word, causing a data misalignment. The offset into the buffer seems to be more or less random on each failure.

I haven't seen this particular failure mode, so I can't comment on exactly what to look at. It is in test 036, which is in the read/write portion of the diagnostic, well past the basic buffer fill/empty testing. So it may be related to the access of the microSD card by the Arduino (with an extra two zero bytes inserted) as another possibility (less likely however given the nature of the failure).

You might try just running the FUNCTION TESTS (1-10) only and not the LOGIC TESTS and see if they run error free.

Given the nature of the failure my suspicion is that something in the DMA logic (only used during buffer FILL / EMPTY) is not working 100% reliably.

Don

Hi Don,

Here are tests 1-10, passed without error.

Code:
.R ZRXFB0
ZRXFB0.BIC

DRSSM-G2
CZRXFB0-0-0
RX02 FUNCTION-LOGIC TEST
UNIT IS RX02
RSTRT ADR 145702
DR>STA

CHANGE HW (L)  ? Y

# UNITS (D)  ? 1

UNIT 0
RX BUS ADR (O)  177170 ? 
VECTOR ADR (O)  264 ? 
DRIVE #    (O)  0 ? 1
EXP WRD-CR (O)  0 ? 
BR-LEVEL   (O)  5 ? 

CHANGE SW (L)  ? Y

TEST HELP  (L) N ? Y
DIAGNOSTIC MODES ARE:
      LOGIC TEST, FUNCTION TEST, OR BOTH
   -FUNCTION TESTS (1-10)
      ACT AS QUICK VERIFY & REPORT FAILING FUNCTIONS
   -LOGIC TESTS (11-36)
      ANALYZE FAILURE & GIVE ERROR INFO
      REPORT FIELD REPLACEABLE UNITS "FRU'S"
       ->DEVICE FATAL THRESHOLD LEVEL (DVTL) IS SET = 1
        "DVTL" = NO. OF HARD ERRS THAT CAUSE DEVICE FATAL ERR
TYPE "CR" TO CONTINUE (L) N ? 
LOGIC TEST MODE    (L) Y ? 
FUNCTION TEST MODE (L) N ? Y
HARD ERR -> DEVICE FATAL THRESHOLD LVL (O)  1 ? 
NON-EXISTANT MEM ADR (NXM TST) (O)  160000 ? 
EXTENDED ADR BITS: 13 & 12 (NPR-NXM TST) (O)  0 ? 
TEST CONTROL FLAGS  (L) N ? 
EXPANSION WORD TYPE <CR>  (L) N ? 

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N

CZRXFB0 EOP    1
    0 TOTAL ERRS
 
Well, more than tests 1-10 passed. Because of this:

Code:
LOGIC TEST MODE    (L) Y ? 
FUNCTION TEST MODE (L) N ? Y

You left the default of Y for logic test mode in place.

So you selected all tests: 1-10 function tests AND 11-36 logic tests.

So basically the diagnostic ran all tests with a 100% pass.

Ship it!

Don

ZRXD?? is another good test to run. It basically reads/writes the whole (emulated) floppy checking for any errors. Can be run in single and/or double density mode, with or without deleted data mode. This test takes maybe 20 to 30 minutes to run in full mode. Disable any debug messages (ie, 'd 0') to speed things up.
 
Hi Don,

I tried an RT11 boot and it worked! Thanks for sticking with me. I'm not sure what changed, other than the larger memory board. I was under the impression that the RXV21 v E would not work with more than 32k of memory because of a DMA issue. At least in my case that is not an issue. I'm running 256k of Ram, works fine.

Thanks again!!!

Code:
@2000g
RT-11SB  V05.07  

.R MSCPCK

.dir
 
SWAP  .SYS    28P 21-Jan-2000    RT11SB.SYS    97P 21-Jan-2000
RT11FB.SYS   106P 21-Jan-2000    DL    .SYS     4P 21-Jan-2000
DU    .SYS    10P 21-Jan-2000    DX    .SYS     4P 21-Jan-2000
DY    .SYS     4P 21-Jan-2000    DZ    .SYS     4P 21-Jan-2000
RK    .SYS     3P 21-Jan-2000    LD    .SYS    11P 21-Jan-2000
LP    .SYS     2P 21-Jan-2000    LS    .SYS     5P 21-Jan-2000
NL    .SYS     2P 21-Jan-2000    PI    .SYS    60P 21-Jan-2000
SL    .SYS    17P 21-Jan-2000    SP    .SYS     7P 21-Jan-2000
VM    .SYS     3P 21-Jan-2000    PIP   .SAV    30P 21-Jan-2000
DIR   .SAV    20P 21-Jan-2000    DUP   .SAV    52P 21-Jan-2000
RESORC.SAV    35P 21-Jan-2000    HELP  .SAV   161P 21-Jan-2000
FORMAT.SAV    28P 21-Jan-2000    DUMP  .SAV    10P 21-Jan-2000
DATIME.SAV     4P 21-Jan-2000    EDIT  .SAV    19P 21-Jan-2000
TECO  .SAV    50P 21-Jan-2000    STRTSB.COM     1P 21-Jan-2000
MSCPCK.SAV     4P 21-Jan-2000    
 29 Files, 781 Blocks
 193 Free blocks

.^C
 
RT11SJ (or RT11SB) will only use up to 28KW (56KB) of memory, and same for RT11FB (I believe, but I'm not 100% sure on it). RT11XM (eXtended Memory) will use MMU and memory above 32KW.

I don't know what the DMA issue is on that card (not be a QBUS owner myself) but I suspect unless you tried to run a more complex OS (RSX, RSTS, Unix) it may not matter.

Glad to see you got it up and running.

Don
 
RT11SJ (or RT11SB) will only use up to 28KW (56KB) of memory, and same for RT11FB (I believe, but I'm not 100% sure on it). RT11XM (eXtended Memory) will use MMU and memory above 32KW.

I don't know what the DMA issue is on that card (not be a QBUS owner myself) but I suspect unless you tried to run a more complex OS (RSX, RSTS, Unix) it may not matter.

Glad to see you got it up and running.

Don


Maybe someday I'll figure it out. I was surprised that XXDP would not run with the smaller card. At this point I'm just thrilled to see it work so I can move onto the next part of the project.

len
 
Back
Top