Git Product home page Git Product logo

pdp11-tools's Introduction

pdp11-tools

This repository contains tools I have written for working with pdp11 software on modern systems, particularly for use with Oscar Vermeulen's PiDP-11 project. See https://obsolescence.wixsite.com/obsolescence/pidp-11 .

There is also a "howtos" directory with information on setting up various software on legacy PDP-11 operating systems, at present, this is limited to setting up UUCP on v7 Unix, but others are being worked on.

The tools currently available are in the scripts directory:

  1. inverse-od.pl performs an inverse octal dump, taking an input file text file containing comma-or-newline separated words of octal digits and spitting out a binary file containing those words as 16-bit little-endian integers (it will also deal with binary, decimal, and hexadecimal data, because perl makes doing that easy, but dumps for the PDP-11 are likely to be octal).

example usage:

inverse-od.pl ../example-input/bootcode.js ../example-output/bootcode

  1. abstapewrite.pl creates an absolute loader format paper tape image for the PDP-11, which can, among other things, be used by the "load" command in simh. It takes a loadfile, and output file (which the final tape image will be written to), and an optional execute address on the command line. Each non-comment line in the load file defines a block in the tape image by specifying a file to be used as the data payload for that block and a load address for the block. The format uses a block with no payload to indicate the end of the image. If an execute address is specified, the address for the final block is filled with the execute address, otherwise the address for the final block is "0x0001".

example usage:

abstapewrite.pl ../example-input/nankervis_bootloader.link ../example-output/nankervis_bootloader.ptape 140000

  1. getsel.pl is a replacement for getsel.sh in Oscar Vermeulen's PiDP-11 software distribution. On boot, or when the address knob is pressed with the enable/halt switch in the "enable" position, simh is started, and a directory containing the disk images and configuration file for simh to use is selected based on the value toggled in on the front panel switches. getsel.sh is used to translate the switch value into a directory name. I was encountering an issue where switch register values of the form 0[1-9]xx were not being translated correctly, but Oscar was unable to reproduce the issue on his PiDP-11s. getsel.pl is a short Perl script that I wrote to provide the same functionality as getsel.sh, which works on my PiDP. It is meant to be called from /opt/pidp11/bin/pidp11.sh from the line beginning with $sel=... . The first argument should be the $lo variable that contains the low 18 bits of the switch register value, the second should be the default system name to use if no line in /opt/pidp11/systems/selections matches the switch register value.

Example usage:

replace the line in pidp11.sh beginning with "sel=" with:

sel = ./getsel.pl $lo idled

Jon Brase, 2019

pdp11-tools's People

Contributors

jwbrase avatar

Stargazers

 avatar Michael Simonsen avatar Christopher Hoover avatar Michael G. Katzmann avatar Tom Russo avatar James Hagerman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.