| 1 | This directory contains the programs for dumping and restoring mass storage |
| 2 | devices on a PDP8 to another system. Precompiled exe for MSDOS are |
| 3 | provided which will run under windows also but will only work with 8.3 |
| 4 | file names (up to 8 character file name with 3 character extention |
| 5 | after the period). When running under windows don't have any other programs |
| 6 | running. The serial port will not be usable by windows programs until you |
| 7 | close the DOS window that these programs were run in. |
| 8 | |
| 9 | Examples of how to use are at the end of this readme |
| 10 | |
| 11 | The top of each program tells how to use them. Most of these programs |
| 12 | use two fields so you need at least 8k memory. If they don't end at the |
| 13 | normal halt they may leave the data field non zero so remember to do an |
| 14 | extd addr load to clear. |
| 15 | |
| 16 | The top of config.c tells the format of the config file needed to use these |
| 17 | programs. The top of the dumpxxxx and restxxxx programs will tell how to use |
| 18 | them. |
| 19 | |
| 20 | The PDP8 programs have preassembled .bin files which can be sent out the |
| 21 | serial port in binary mode to the binary loader so no operating system needs |
| 22 | to be running on the PDP8. Under windows 95 the new hyperterminal from |
| 23 | www.hilgraeve.com will need to be used, the one that comes with it does not |
| 24 | seem to work correctly. I have a config file for seyon under Linux which will |
| 25 | make it work. |
| 26 | |
| 27 | I have also provided a program sendtape which can be used to send paper |
| 28 | tape images to the PDP-8. |
| 29 | |
| 30 | I have also provided a dumbterm program and checkser to verify serial |
| 31 | communication to the PC. The dumbterm program will act like a simple |
| 32 | dumb terminal so if you boot the PDP-8 to an operating system you should |
| 33 | be able to use it to talk to the PDP-8. |
| 34 | The checkser program writes the data sent to memory for testing. Toggle |
| 35 | in the following program, start it running at address 0200 then use sendtape |
| 36 | to send checkser.dat. |
| 37 | |
| 38 | 00200 7340 START, CLA CLL CMA / Init all our variables |
| 39 | 00201 3017 DCA BUFLOC |
| 40 | 00202 6031 READ, KSF2 / Have character waiting |
| 41 | 00203 5202 JMP .-1 / No |
| 42 | 00204 7200 CLA |
| 43 | 00205 6036 KRB2 / Get character |
| 44 | 00206 3417 DCA I BUFLOC / Save through auto increment location |
| 45 | 00207 5202 JMP READ |
| 46 | |
| 47 | See the top of checkser.pal for the expected results. If the results are |
| 48 | wrong try changing stop bits to 2, see below. If it still is wrong then |
| 49 | verify your serial card is set to 8 bits no parity. Jumper settings are |
| 50 | at http://www.pdp8.net/serial (http://www.cs.uiowa.edu/~jones/pdp8/hard8e/). |
| 51 | |
| 52 | All of the programs will work up to at least 38400 baud if you have a modified |
| 53 | serial board which will work at that speed. The default serial port is |
| 54 | the standard console port but can be changed by reassembling the pal files. |
| 55 | |
| 56 | Files: |
| 57 | (rest and dump have .pal and .c files) |
| 58 | restrk05 - RK05 Restore program |
| 59 | dumprk05 - RK05 Dump program |
| 60 | readrk05 - RK05 Surface scan program |
| 61 | testrk05 - RK05 Destructive read/write test |
| 62 | restrx01 - RX01/RX02 Restore program |
| 63 | dumprx01 - RX01/RX02 Dump program |
| 64 | resttd8e - TD8E Dectape restore program |
| 65 | dumptd8e - TD8E Dectape dump program |
| 66 | sendtape - Send paper tape image to PDP-8 |
| 67 | dumbterm - Simple dumb terminal program |
| 68 | comm.c - Communication routines for dump and restore C programs |
| 69 | config.c - Config file read routine for dump and restore C programs |
| 70 | compall - Unix shell file to compile all C files |
| 71 | compall.bat - Dos bat file to compile all C files with turbo C |
| 72 | palall - Unix shell file to assemble all pal files |
| 73 | checkser.pal - Serial port test program, see below |
| 74 | checkser.dat - Data file to check serial port |
| 75 | blkdectp.c - Converts between old and new style DECtape images |
| 76 | |
| 77 | Other useful programs: |
| 78 | From ftp.dbit.com/pub/putr programs to read files from and write files to |
| 79 | the images created by these programs. |
| 80 | |
| 81 | From http://www.vobis.de/bbs/ari/files/cplus/library/en160.zip the library |
| 82 | I used with turbo c to compile the dos version of the C programs. |
| 83 | |
| 84 | From ftp://ftp.cs.uiowa.edu/pub/jones/pdp8/palbart.c.Z the pal8 compiler |
| 85 | I use to assemble these programs. They will also compile correctly will the |
| 86 | OS/8 PAL assembler |
| 87 | |
| 88 | If you have questions or comments let me know |
| 89 | David Gesswein |
| 90 | djg@drs-esg.com |
| 91 | (or if that stops working djg@pdp8.net) |
| 92 | |
| 93 | |
| 94 | Example usage of these program: |
| 95 | |
| 96 | First create a dumprest.cfg config file or rename the file dumprest.dos |
| 97 | under DOS or dumprest.unx under unix to dumprest.cfg and edit. See |
| 98 | http://www.pdp8.net/serial for information on how to setup a PDP-8 |
| 99 | (currently 8/E cards only) serial card or see read the current |
| 100 | configuration. The M8655 serial card can support different numbers |
| 101 | of bits per character and parity. It must be set to 8 bits no |
| 102 | parity for these programs to work. |
| 103 | |
| 104 | The config file format is three lines |
| 105 | baud rate |
| 106 | 0 if 1 stop bit or 1 if two stop bits |
| 107 | serial device to use |
| 108 | |
| 109 | The DOS default is com1 1 stop bit 9600 baud, the unix is /dev/ttyS0 |
| 110 | 1 stop bit 9600 baud. |
| 111 | |
| 112 | Next, if you can run a OS or stand alone program like Focal start it on |
| 113 | your PDP-8. Then run the dumbterm program to verify that the dumprest.cfg |
| 114 | is correct and you can communicate with the PDP-8. If what you |
| 115 | type displays correctly things are probably set up ok. If the transfer |
| 116 | programs have communcatation errors you might want to try selecting |
| 117 | two stop bits. |
| 118 | |
| 119 | Next you need to start the stand alone binary loader. If you are running |
| 120 | OS/8 you can use the command |
| 121 | BOOT/PT |
| 122 | This should load the binary loader and then halt the PDP-8. |
| 123 | If you can't start the binary loader with the operating system you are |
| 124 | running you can manually load the RIM loader, start that running and then |
| 125 | load the binary loader. If you need help on doing this contact me. |
| 126 | |
| 127 | Next set the switch register to 7777, load address 7777 and start the |
| 128 | PDP-8 running. |
| 129 | |
| 130 | Now run the sendtape program. You can either specify on the command |
| 131 | line the file to send or it will prompt you. For example to dump an RX01 |
| 132 | enter the command sendtape dumprx01.bin. |
| 133 | |
| 134 | The PDP-8 should halt after the sendtape program exits (if not wait a little |
| 135 | while to allow all the serial data to be sent). The accumulator should |
| 136 | be zero after the halt. If it is non zero the file did not transfer |
| 137 | correctly, repeat the procedure. |
| 138 | |
| 139 | If you are dumping a device on the PDP-8 to a file on the PC follow this |
| 140 | section, otherwise skip to the next. |
| 141 | |
| 142 | ****** |
| 143 | start the dump program on the PC and enter the file name to write the |
| 144 | image to |
| 145 | example: dumprx01 image1.rx01 |
| 146 | |
| 147 | Next load address 200 then set switches 9 to 11 (low 3 bits of switch |
| 148 | register) to the number of the drive to dump. For your first RX01 drive |
| 149 | enter 0, for the second enter 1. For RK05's you can have a third, it |
| 150 | would be 2, or 000 000 000 010 for the switch setting in binary. |
| 151 | If you are dumping a TD8E tape the maximum field number should |
| 152 | be in switches 6-8. If you have an 8K machine (the minimum) set to 1. |
| 153 | |
| 154 | Next start the PDP-8 running. After a little bit the PC should start |
| 155 | printing out Track # where # will increment as each track is received |
| 156 | from the PDP-8. For the DECtape is will print block instead of track. |
| 157 | If you are running at a slow baud rate it may take a little while |
| 158 | before the message appears. See later in this file for information on |
| 159 | setting baud rates on the serial cards. If you are dumping RK05's you will |
| 160 | want a high baud rate, at 9600 baud it will take about an hour. |
| 161 | |
| 162 | After the entire image is received the PC program will exit and the PDP-8 |
| 163 | will halt. If you wish to dump another media in the same drive you can |
| 164 | start the PC program again and then hit CONT on the PDP-8 |
| 165 | |
| 166 | If a read error occurs the PDP-8 will retry several times and then |
| 167 | send whatever data was received. When this happens PC program will print a |
| 168 | line with information on what data was unreadable. |
| 169 | |
| 170 | ****** |
| 171 | |
| 172 | For restoring an image from the PC to the PDP-8 |
| 173 | |
| 174 | Next load address 200 then set switches 10 to 11 (low 2 bits of switch |
| 175 | register) to the number of the drive to dump. For your first RX01 drive |
| 176 | enter 0, for the second enter 1. For RK05's you can have a third, it |
| 177 | would be 2, or 000 000 000 010 for the switch setting in binary. |
| 178 | If you are restoring a TD8E tape the maximum field number should |
| 179 | be in switches 6-8. If you have an 8K machine (the minimum) set to 1. |
| 180 | |
| 181 | Next start the PDP-8 running. |
| 182 | |
| 183 | Start the PC restore program and give it the file name to send |
| 184 | example: restrx01 image1.rx01 |
| 185 | |
| 186 | After a little bit the PC should start printing out Track # (or Block #) |
| 187 | where # will increment as each track/block is sent to the PDP-8. The PDP-8 |
| 188 | should write to the device. For the DECtape it will buffer up 4k to 28k of |
| 189 | data (set when you started the PDP-8) before writing to the tape so you |
| 190 | make need to wait a while before seeing tape motion. For the RK05 it |
| 191 | may be hard to see the write light activity but if you set the PDP-8 |
| 192 | to display the accumulator it will display an incrementing count as |
| 193 | the data is received. |
| 194 | |
| 195 | After all the data is sent from the PC the program will exit. The |
| 196 | PDP-8 will halt at address 140 after it receives all the data. The |
| 197 | accumulator should be zero if the transfer was successful. Other halts |
| 198 | or if the accumulator is not zero indicate that either an error occurred |
| 199 | in the serial data or the device the PDP was writing to had an IO error. |
| 200 | |
| 201 | ******* |
| 202 | |
| 203 | For information on setting baud rate on PDP-8/E serial cards, including |
| 204 | how to run M8650 cards faster than the jumper selectable baud rates |
| 205 | The M8655 serial card can support different numbers of bits per character |
| 206 | and parity. It must be set to 8 bits no parity for these programs to work. |
| 207 | See http://www.pdp8.net/serial |
| 208 | |
| 209 | If the PDP-8 halts at an unexpected location read the address from |
| 210 | the PDP-8 and then look at the listing for the program you are running. |
| 211 | The halt should be one less than the address displayed on the PDP-8. |
| 212 | Comments should give you some information on what the error is. If you |
| 213 | can't figure out the problem email me. (djg@drs-esg.com) |
| 214 | |
| 215 | ******* |
| 216 | |
| 217 | To convert a DECtape between the old 128 words/block and the new 129 |
| 218 | words/block format use |
| 219 | |
| 220 | blkdectp infile output |
| 221 | |
| 222 | It will convert infile to the opposite format |
| 223 | |
| 224 | ******* |
| 225 | |
| 226 | I also have some other programs I wrote for testing. |
| 227 | |
| 228 | readrk05 - RK05 Surface scan program |
| 229 | |
| 230 | If you run this program from address 200 with switch register bits 10-11 |
| 231 | set to the drive number it will do a non destructive read test of the |
| 232 | drive. I use this when first mounting a stored pack which hasn't been |
| 233 | used recently or one I just cleaned. This verifies the pack is good and |
| 234 | lets me listen for noise due to dust while it quickly goes across the |
| 235 | entire surface. |
| 236 | |
| 237 | testrk05 - RK05 Destructive read/write test |
| 238 | |
| 239 | This does a quick read/write test of the drive. It probably doesn't use |
| 240 | the best data pattern but runs much quicker than the diagnostics since it |
| 241 | doesn't do all the seeks. |
| 242 | |
| 243 | David Gesswein |
| 244 | djg@drs-esg.com |
| 245 | (or if that stops working djg@pdp8.net) |
| 246 | |