• Please review our updated Terms and Rules here

A new G888 manchester read/write module

Is the tape format documented somewhere? I looked around, but the only reference I could find was in the 18bit_extract.c file mentioned by anders_bzn
 
I can see a directory structure on the tapes using my Windows program.

View attachment 50542

I tested to view the directory in a SimH PDP-15 running DOS-15 V2A and got this. Similar but not the same:

Code:
>L TT_DT2

     14-JAN-83
 DIRECTORY LISTING  
    213 FREE BLKS
     17 USER FILES
    367 SYSTEM BLKS 
 .LIBR  BIN     141    151
 DDT9   BIN     142     12
 .LOAD  BIN     143      7
 CHAIN  BIN     144     11
 INTEGE EAE     217      1
 INTEGE NON     236      1
 REAL   EAE     267      4
 REAL   NON     225      4
 FNEW   SRC     257     14
 FNEW   BIN     263      1
 FOCAL  BIN     161     21
 SRCCOM BIN     270     16
 DTCOP  BIN     353      3
 TIME   BIN     147      1
 TIME10 BIN     154      1
 KM9    SYS       0
 .SGEN2 SYS      36
 SKPBLK SYS      44
 UPDATE SYS      45
 IOBLK  SYS      55
 .SYSLD SYS      56
 EXECUT SYS      67
 ^QAREA SYS     101
 PATCH  SYS     652
 EDIT   SYS     657
 PIP    SYS     671
 F4     SYS     711
 F4A    SYS     742
 MACRO  SYS     771
 MACROA SYS    1020
 DUMP   SYS    1044
 .SGEN1 SYS    1050
 CONV   SYS    1064

I checked other files and some are readable in this way. Many give garbage listing output. Some kind of incompatibility with DOS-15 V2A, but I don't know more details. Later DOS file system on tape?
 
Tested SIMH with KM9-15 V5B and the results are approximately the same. Files readable in DOS-15 V2A seems to be readable in KM9-15 V5B. Which makes sense
 
I will look at the output from my Windows program and see if I can get it to match the output from DOS/KM9.
Makes want to get the RICM PDP-9 out of the warehouse, and get the TC02 connected and working.
 
I guess that the tapes have different formats, there are markings like "FORM 1", FORM2", "FORM PC" on the tapes. Some marks are harder to read than others. I think I got all the bits of the tapes correct. The ones that got badblocks when I read them has notes in the text file "list.txt"

Is the format (not the structure on the tapes) documented somewhere? I have browsed some documentation available on bitsavers.org but couldn't find anything. I wander if I have stuff here that is not yet scanned...
 
I will look at the output from my Windows program and see if I can get it to match the output from DOS/KM9.
Makes want to get the RICM PDP-9 out of the warehouse, and get the TC02 connected and working.

Do you have DECTapes for that machine as well?
 
Is the format (not the structure on the tapes) documented somewhere?

Indirectly, in the driver code.
These systems are a little unusual in that the file structure is not implemented across devices, but is unique to each driver.
Because of that, it doesn't surprise me that they might have changed the file system between releases.
 
Indirectly, in the driver code.
These systems are a little unusual in that the file structure is not implemented across devices, but is unique to each driver.
Because of that, it doesn't surprise me that they might have changed the file system between releases.

Section 4.6.2, File-Oriented DECtape, in the DEC-15-MR2B-D Advanced Monitor Software System Programmers Reference Manual, describes the DECtape structure. There is usually a directory at block 100 (octal). Some of the tape images that Mattis just made don't have a recognizable directory anywhere.

This is a good directory:


Offset 0 1 2 3 4 5 6 7 |--------6-Bit---------| |------7-Bit-------|
000000: 777777 777777 777777 777777 777777 777675 736757 367573 >=;7/↑=; ^^=
000010: 655377 571635 777777 767553 265536 757365 430614 306143 5+ /N] >=+V-↑=;5 FLX1 /N5-5^F 1
000020: 061430 614306 143061 430614 306143 061430 614306 143077 FLX1 FLX1 FLX1 FLX1 FLX 1F 1F1F 1F
000030: 777777 777777 777777 777777 777777 777777 777777 777777
000040: 561411 022200 021116 400141 040424 710000 021116 400142 .LIBR BIN A!DDT9 BIN A" 0H$\ $ 0 ' $ 1
000050: 561417 010400 021116 400143 031001 111600 021116 400144 .LOAD BIN A CHAIN BIN A$ 0 $ 1 \ $ 2
000060: 111624 050705 050105 400217 111624 050705 161716 400236 INTEGEEAE BOINTEGENON B↑ 9 Q , G 9 Q < O
000070: 220501 140000 050105 400267 220501 140000 161716 400225 REAL EAE B7REAL NON BU $ \ , $ \ < J
000100: 061605 270000 232203 400257 061605 270000 021116 400263 FNEW SRC B/FNEW BIN B3 8* &H W 8* $ Y
000110: 061703 011400 021116 400161 232203 031715 021116 400270 FOCAL BIN A1SRCCOMBIN B8 < $ 8&H 3 $
000120: 042403 172000 021116 400353 000000 000000 000000 000000 DTCOP BIN C+ P $
000130: 241115 050000 021116 400147 241115 056160 021116 400154 TIME BIN A┤TIME10BIN A, ($P $ 3($ 8 $ 6
000140: 000000 000000 000000 000000 000000 000000 000000 000000
000150: 000000 000000 000000 000000 000000 000000 000000 000000
000160: 000000 000000 000000 000000 000000 000000 000000 000000
000170: 000000 000000 000000 000000 000000 000000 000000 000000
000200: 777777 777777 777777 777777 777777 774000 000000 000000
000210: 000000 000000 000000 000000 000000 000000 000000 000000
000220: 000000 000000 000000 000000 000000 000000 000000 000077
000230: 777777 777777 777777 777777 777777 777777 777777 777777
000240: 131571 000000 233123 400000 562307 051662 233123 400036 KM9 SYS .SGEN2SYS ↑ 7H & L8SY&
000250: 231320 021413 233123 400044 252004 012405 233123 400045 SKPBLKSYS $UPDATESYS &- # & *\ &
000260: 111702 141300 233123 400055 562331 231404 233123 400056 IOBLK SYS -.SYSLDSYS . < B& MJ3 &
000270: 053005 032524 233123 400067 362101 220501 233123 400101 EXECUTSYS 7↑QAREASYS AA (5*& <D &
000300: 200124 031000 233123 400652 050411 240000 233123 400657 PATCH SYS F*EDIT SYS F/ 2 & U J\ & W
000310: 201120 000000 233123 400671 066400 000000 233123 400711 PIP SYS F9F4 SYS GI % & P &
000320: 066401 000000 233123 400742 150103 221700 233123 400771 F4A SYS G"MACRO SYS G9 P & #&
000330: 150103 221701 233123 401020 042515 200000 233123 401044 MACROASYS HPDUMP SYS H$ #& T &
000340: 562307 051661 233123 401050 031716 260000 233123 401064 .SGEN1SYS H(CONV SYS H4 L8SX& < &
000350: 000000 000000 000000 000000 000000 000000 000000 000000
000360: 000000 000000 000000 000000 000000 000000 000000 000000
000370: 000000 000000 000000 000000 000000 000000 000000 000000
 
Section 4.6.2, File-Oriented DECtape, in the DEC-15-MR2B-D Advanced Monitor Software System Programmers Reference Manual, describes the DECtape structure. There is usually a directory at block 100 (octal). Some of the tape images that Mattis just made don't have a recognizable directory anywhere.

Guess I need to get off my butt and scan the REDAC PC layout system source listings he sent me.
I suspect some of the tapes will be unique to that.
 
Tested SIMH with KM9-15 V5B and the results are approximately the same. Files readable in DOS-15 V2A seems to be readable in KM9-15 V5B. Which makes sense

The directory says that the first block of the file EXECUT.SYS is at block 67(octal). The last word in a block is the data link to the next block or contains a and EOF (777777). In this case the data link in block 67 says that the next block is 1775(octal). The highest block number on these DECtapes is 1100(octal), so block 1775 is off the end of the tape.

It looks like the *.SYS files don't have an EOF in the last word like the non-system files have. The program currently starts at the first block of a file and follows the data links to count the number of blocks in a file. That doesn't seem to work for some of the tape images.

I will have to modify the program to instead look at blocks 71-77(octal). These blocks contain a bitmap of the blocks that are occupied by each file. I can count the number of bits/blocks in the map to determine the file size instead of following data link chain.
 
Tried to boot a few of the tape image that Anders made in SimH PDP-9. I used the same bootstrap as on the PDP-15, provided in the kit to boot ADSS.

One tape was successful:
Code:
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/afi18.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> load dec-15u.rim 77637
sim> run
Resetting all devices...  This may not have been your intention.
The GO and CONTINUE commands do not reset devices.


KM9-15 V5A

$D

 DIRECTORY LISTING
 .LOAD  BIN    36
 DDT    BIN    37
 EXECUT BIN    40
 INTEAE BIN    41
 .LIBR  BIN    47
 RELEAE BIN    54
 SCTEST BIN   265
 SCTEST SRC   252
 FOCAL  XCT   245
 FOCAL  XCU   262
 KM9-15 SYS     0
 SKPBLK SYS    42
 IOBLK  SYS    46
 SGNBLK SYS    52
 SYSHAN SYS    56
 SYSBLK SYS    61
 .SYSLD SYS    62
 BITMAP SYS    71
 DIRECT SYS   100
 ^QAREA SYS   101
 F4I    SYS   141
 MACROI SYS   201
 EDIT   SYS   647
 PIP    SYS   661
 MACRO  SYS   701
 CHAIN  SYS   737
 F4     SYS   757
 DUMP   SYS  1012
 PATCH  SYS  1016
 UPDATE SYS  1025
 SRCCOM SYS  1035
 SGEN   SYS  1047
 160  FREE BLOCKS

$

Most images gave:

Code:
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/afi16.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> load dec-15u.rim 77637
sim> run
Resetting all devices...  This may not have been your intention.
The GO and CONTINUE commands do not reset devices.
.IOPS 00 217663.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS 00 217646.IOPS...

or

Code:
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/afi14.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> load dec-15u.rim 77637
sim> run
Resetting all devices...  This may not have been your intention.
The GO and CONTINUE commands do not reset devices.
IOPS00 217663

Those tapes that wasn't recognised when testing on a PDP-15 SimH didn't do anything when a boot was tried.
 
Tested a few other tapes with another PDP-9 bootstrap that I recovered a few years back

Code:
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/afi12.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> load -R /Users/mattis/Downloads/dectapebootstrap.hri  17637
sim> go 17646


MONITOR V4E

$D

 DIRECTORY LISTING
 .LIBR  BIN   141
 DDT9   BIN   142
 .LOAD  BIN   143
 CHAIN  BIN   144
 INTEGE EAE   217
 INTEGE NON   236
 REAL   EAE   267
 REAL   NON   225
 FNEW   SRC   257
 FNEW   BIN   263
 FOCAL  BIN   161
 SRCCOM BIN   270
 DTCOP  BIN   353
 TIME   BIN   147
 TIME10 BIN   154
 KM9    SYS     0
 .SGEN2 SYS    36
 SKPBLK SYS    44
 UPDATE SYS    45
 IOBLK  SYS    55
 .SYSLD SYS    56
 EXECUT SYS    67
 ^QAREA SYS   101
 PATCH  SYS   652
 EDIT   SYS   657
 PIP    SYS   671
 F4     SYS   711
 F4A    SYS   742
 MACRO  SYS   771
 MACROA SYS  1020
 DUMP   SYS  1044
 .SGEN1 SYS  1050
 CONV   SYS  1064
 213  FREE BLOCKS

$PIP


PIP V9A

>

And

Code:
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/afi11.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> load -R /Users/mattis/Downloads/dectapebootstrap.hri  17637
sim> go 17646


MONITOR V3C

$D

 DIRECTORY LISTING
 .LIBR  BIN   141
 DDT9   BIN   142
 .LOAD  BIN   143
 CHAIN  BIN   144
 INTEGE EAE   145
 INTEGE NON   152
 REAL   EAE   164
 REAL   NON   215
 KM9    SYS     0
 .SGEN2 SYS    36
 SKPBLK SYS    44
 UPDATE SYS    45
 .SYSLD SYS    56
 EXECUT SYS    67
 ^QAREA SYS   101
 PATCH  SYS   652
 EDIT   SYS   657
 PIP    SYS   671
 F4     SYS   711
 MACRO  SYS   742
 F4A    SYS   771
 MACROA SYS  1020
 DUMP   SYS  1044
 .SGEN1 SYS  1050
 CONV   SYS  1064
 234  FREE BLOCKS

$PIP


PIP V5C

>

Code:
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/afi14.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> load -R /Users/mattis/Downloads/dectapebootstrap.hri  17637
sim> go 17646


MONITOR V4B

$D

 DIRECTORY LISTING
 .LIBR  BIN   141
 DDT9   BIN   142
 .LOAD  BIN   143
 CHAIN  BIN   144
 INTEGE EAE   251
 INTEGE NON   256
 REAL   EAE   270
 REAL   NON   321
 KM9    SYS     0
 .SGEN2 SYS    36
 SKPBLK SYS    44
 UPDATE SYS    45
 IOBLK  SYS    55
 .SYSLD SYS    56
 EXECUT SYS    67
 ^QAREA SYS   101
 PATCH  SYS   652
 EDIT   SYS   657
 PIP    SYS   671
 F4     SYS   711
 MACRO  SYS   742
 F4A    SYS   771
 MACROA SYS  1020
 DUMP   SYS  1044
 .SGEN1 SYS  1050
 CONV   SYS  1064
 70  FREE BLOCKS

$PIP


PIP V7A

>

The afi18 tape that successfully booted using the PDP-15 didn't boot at all with this bootstrap. So there seems to have been some change in layout of file system between V3/V4 and V5.

Tried to list the garbled tape images from within one of those but had no success. I wonder how come that the image files that read well without checksum errors still is containing just garbage?
 
Well done so far! You are doing what I have planned to do, but not yet come to.

I guess that some of the paper tapes I dumped a couple of years ago can give a clue. Some of them have notes one them saying: Put DECTape xxx, Set SW1 for xxx, SW2 for yyy and so on. It looks to me that some DECtapes has their own loader on paper tape.

http://www.bitsavers.org/bits/DEC/pdp9/papertapeImages/Sandahl_PDP9_Tape_Collection/
 
Well done so far! You are doing what I have planned to do, but not yet come to.

I guess that some of the paper tapes I dumped a couple of years ago can give a clue. Some of them have notes one them saying: Put DECTape xxx, Set SW1 for xxx, SW2 for yyy and so on. It looks to me that some DECtapes has their own loader on paper tape.

http://www.bitsavers.org/bits/DEC/pdp9/papertapeImages/Sandahl_PDP9_Tape_Collection/

Thanks. I have the same GAME LOADER tape that you have I guess.

Code:
DEC-Tape "GAME" on unit #1. Select program with AC switches.Switch up: 1 - Space war 2- Napoleon 3 - Calculator 4 - Moving Circle
Start address (HRI) 17640

Tried to load it. Seems to be in BIN format or RIM format, not HRI. Get format error. But in BIN format there is no code loaded. Maybe my dump is corrupt? Tried one of your tapes and it seems to be better.

Does anyone have pointer to format description for the various paper tape formats for the 18 bitters.


Ahh. With your GAME LOADER tape attached I get this:

Code:
sim> attach dt1 /Users/mattis/Downloads/pdp9-dectapes-203/afi23.tu56
DT1: 18b/36b format, buffering file in memory
sim> attach dt2 /Users/mattis/Downloads/pdp9-dectapes-203/afi23.tu56
sim> load -R /Users/mattis/Downloads/Sandahl_PDP9_Tape_Collection/tape09/data.bin 17640
sim> d sr 400000
sim> go 17640



 CONTROL 2/69 

>

Tested all different switch settings and there is something happening at least. Very interesting that this tape that is unreadable in KM9 is boots something!

What is CONTROL 2/69??
 
Note, there is instructions written on the label. Check the image file in the same directory as the paper tape dump.
 
Last edited:
It is that instruction I used (which is identical to the instruction on my game loader tape) . Switch 1 is the MSB, thus d sr 400000. Tried all four switches. The program "CONTROL" responded "WHAT" to whatever you gave it.. Some ether program just printed ERROR as a response.

I am very curious what kind of tape this is and what kind of file format there is on it! Were there any other possible operating system that could have created these tapes?

I compared the different GAME LOADER tapes. Your two are identical. Mine differ in 27 places from yours.
 
Tested tape3 just briefly. It seems to be some kind of tool. SYSTST. Looks like some kind of testing tool for PDP-15. But what filesystem structure is used in this tool? It cannot be read from a DOS-15 or Keyboard monitor prompt. Boots both on a PDP-9 and a PDP-15.

Code:
sim> load -R /Users/mattis/Downloads/dectapebootstrap.hri  17637
sim> attach dt0 /Users/mattis/Downloads/pdp9-dectapes-203/tape3.tu56
DT0: writing buffer to file
DT0: 18b/36b format, buffering file in memory
sim> go 17646


SYSTST V1D
$A


*USER PROGRAM CORE MAP



SYSTST V1D
$D


*DIRECTORY

NUMB  TITLE     BKN

01    TIME      000040
02    TIME5     000042
03    RDRTST    000044
04    PUNTST    000050
05    EAEPT1    000053
06    EAEPT2    000074
07    XRLR      000101
08    DECTPI    000116
09    DECTPS    000127
10    MAGTAP    000140
11    MAGTPS    000160
12    VP15A     000200
13    LP15F     000207
14    LP15C     000213
15    LT1519    000217
16    DC01EB    000226
17    CR03B     000237
18    AD15      000243
19    ADF15     000247
20    XY15      000253
21    FP15T1    000260
22    FP15T2    000313
23    DTCOPY    000337
24    UC15      000344
25    TTY11     000351
26    DECTAP    000354
27    RF15RF    000365
28    RP15      000373
29    VT15GP    000403
000450  FREE BLOCKS

SYSTST V1D
$L


*SYSTEM LOADER V2B

MEMSIZE  TYPE 8K,12K,16K,20K,24K,28K,OR 32K:  

SYSTST V1D
$P


*PARAMETER MODE


SYSTST V1D
$X


*CHAIN MODE OPERATION V3B
MEMORY FIELD? ^C

SYSTST V1D
$

Also tested one other tape, a program tape using the PROGRAM bootstrap.

Code:
sim> load -R /Users/mattis/Downloads/Sandahl_PDP9_Tape_Collection/tape04/data.bin 17637
sim> attach dt2 /Users/mattis/Downloads/pdp9-dectapes-203/afi20.tu56 
DT2: writing buffer to file
DT2: 18b/36b format, buffering file in memory
sim> go 17650
INPUT, TYPE OF PAPERTAPE =>

It at least starts. But what is it?
 
I changed my program so that it uses the file bitmap to count the number of blocks in a file instead of counting the blocks by following the link chain. The number blocks reported is the same, but it does not die when reading some of these tapes.

I don't think that there is a file bitmap for the SYS files, and I some of the SYS files don't have EOF markers in the last block of a chain.
Are the SYS files longer than one block?
If there is more than one block in a SYS file, how do you know how many blocks there are?
 
Back
Top