Commit | Line | Data |
---|---|---|
81e70d48 PH |
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 |