Will's Works Freeware 06/02/00 BECAUSE THESE PROGRAMS ARE DISTRIBUTED FREE OF CHARGE, THERE IS NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. These are some MS DOS utilities I threw together from a couple previous projects. Its has some utility, but I'm not clear I'll go much further with it. It does the main things I need now. They are all 16 bit MS DOS applications, distributed as a self expanding LHarc archive, ODTDOSUT.COM, which contains the following: Listing of archive : 'ODTDOSUT.LZH' Name Original Packed Ratio Date Time Attr Type CRC -------------- -------- -------- ------ -------- -------- ---- ----- ---- CONVPDP.C 3925 1741 44.4% 0-03-07 0:50:40 a--w -lh1- 4812 CONVPDP.EXE 12217 8361 68.4% 0-03-07 19:28:54 a--w -lh1- F337 DEVICE.DB 692 354 51.2% 0-05-31 12:40:06 a--w -lh1- B38A ODTDOSUT.TXT 8151 4215 51.7% 0-09-09 8:53:16 a--w -lh1- EF87 * PDPDB.EXE 52407 29219 55.8% 0-06-02 10:36:30 a--w -lh1- 4CA8 RTDASM.EXE 21341 12750 59.7% 0-06-02 10:34:02 a--w -lh1- 1903 -------------- -------- -------- ------ -------- -------- 6 files 98733 56640 57.4% 0-09-09 8:53:48 *don't worry about this CRC, I can't add the listing to the file and make it come out right. There are a number of comments about log and dump files. The log files can be generated with PDPDB. The format for upload is discussed in testlib.txt. Its an ascii text file where line starting with ';'is a comment. The ';' can also be used anywhere on a line to start a comment. PDPDB.exe usage: pdpdb [-{a,b,l,m,t}] -a# set address space size in bits: {22,18,16} -b%c set bus where %c must u->unibus or q->qbus -l override default 'pdpdb.log' log name -m map iopage usage, list all valid addresses -mrom[:PCR] dump ROM region only, option PCR for 11/23+ [:ALL] for all of 11/23+ rom, or octal PCR value of 256 word dump -mr###:### scan memory range specified in octal per above -t run full io page test, combines -ta and -td below -ta test for size of address space (look for MMU regs) -td test for devices at known locations and display -tm: loads iopage map file (see -m) and tests per -t Will's Works PDP11 ODT Interface Version: Beta 2 This is an ODT interface. It assumes you have connected the console SLU on a PDP11 to the serial port on a PC. It requires an initialization file, console.ini, which must contain at least the first two lines below: port 0 baud 9600,N,8,1 irq 4 port 0 => COM1, port 1 => COM2 etc baud rate is self explanitory if you ever used the DOS mode command irq is optional, if used it must be the irq for the port to enable interrupts on the COM port. Its a clunky old windowing system I wrote long ago. It may need to be relinked to work on really old PCs, I seem to remember some sort of scrolling problem. It works on the 386 and above machines which I have recently tried it on. The are a couple hot keys at the bottom of the screen. The default mode is that the PC screen and keyboard just act like a monitor for the RT11 system echoing ODTs output. The system watches this output and keeps track of the current PC address. If you want to dump a region of memory or do a macro disassembly you may need to open the address to tell the system where to start. Then press ALT-D or ALT-M to get a block of data. The supported hot keys are: ALT-L toggles log file on or off. When on (highlighted) anyting that goes to the screen is appended to the log file. ALT-D dump a block of contiguous memory. Repeated use of ALT-D continues to advance the regions dumped. ALT-M Macro disassembly, similar to dump but attempts to display macro mnenonics (see RTDASM.exe). ALT-R Dump registers ALT-U Upload a file from disk to memory via ODT, see testlib.txt. ALT-X exit back to DOS I am having problems with the different versions of ODT available. It has trouble detecting your systems size, hence the -a and -b switches. The default is Qbus. It tries to determine address space but this is tricky, try the switch if it doesn't get to the IO page correctly. -m is useful to get an iopage listing, but time consuming. I added the -tm: option so I could review previously obtained listings. -m and -td both use a data base that is now a file, device.db. I've supplied a sample, but you can not edit this. The format for this text database is as follows: A minimum of 4 comma delimited fields per line, one line per device: 1st field: 1st letter {U,Q,B} for Unibus, Qbus, or both (ie not specific) 2nd letter R is option, specifies if device can be located in a range of values. 2nd field: Octal start address for device, or range 3rd field: Octal number of BYTES (ie WORDS *2) in contiguous register space in iopage 4th field: if 1st field contains an 'R' this is the Octal number of bytes for the valid range a device can be located within. Otherwise see last field below. last field: String description For each contiguous set of address registers in iopage found, the program looks for a match with the database options. Unibus or Qbus specific options are filtered out via the -a command line option. CONVPDP.exe usage: convpdp [-s# || -l] -s# skips 1st # chars in output, default is 7 -l (mutually exclusive of above, converst macro list file This was written to generate upload files for PDPDB. It takes a file and prints it to STDOUT so you can redirect it to another file if desired. The first case, with -s# option strips the first n chars of each none comment line in what it displays. This might be useful if you saved the PDPDB log and want to upload a segment again. The default, if you just supply a filename argument is -s7. -l attempts to strip the octal codes from a MACRO 11 V 5.03 listing file to produce an upload file. Its pretty simple minded, but works. I include the source as I have no idea how standard this output format really is between versions. You can write simple test program on a functioning RT11 system (ie the E11 emulator) in MACRO-11, compile them, then strip the octal codes and upload it to a target system via PDPDB. This is how I generated my tstchr.dmp code segment (see testlib.zip). RTDASM.exe usage: rtdasm [-s file must contain asci (octal) dump of RT memory optional load_adr is octal start address of dump use ';' in dump file to hide comments during load This is a stand alone disassembler for PDP-11 binary code. It does not support FPIS, but does pretty well with things like bootstrap routines. It is built into PDPDB.exe. It stops when it gets to something it doesn't understand. It uses the standard mnenonics, but isn't smart enough to recreate any lables for you. For branch instructions which are relative to the current PC, it adds '=> ####', where #### is the absolute location based on the current PC for the branch. If you just have a list of octal codes, you must supply a start address with -s. If you are using my PDPDB upload format (see testlib.txt) then it will use the start address in the file. REVISION History: 03/07/00 Initial release 06/02/00 Update rtdasm.exe, added calculation of pc relative addresses for JSR calls (already did JMPs). pdpdb.exe added text file format, device.db, for device scan, minnor bug fixes related to scan, added option to dump [:ALL] of rom for 11/23+, link with enhanced dasm code above. Version changed from "Beta" to "Beta 2" 01/04/08 archive was freshened in an attempt to correct an error in parsing SOB instructions. Existing *.exe were recompiled with no version # change See also tu58xten.exe for a binary version of rtdasm.