Skip to content

retro-software/G15-software

Repository files navigation

G15-software

The G15-software project maintains source code and software artifacts for the Bendix G-15, a 1950s binary, vacuum tube, drum-memory computer system. A software emulator for this system is available in the retro-g15 GitHub repository. The emulator is web browser-based and can be run from its hosting site.

Contributions of new material and corrections to existing material for this repository are most welcome. Please submit a pull request.

Files are organized in top-level directories by program or application and origin. Each top-level directory contains a README.md file describing the contents and their provenance.

Most G-15 software was maintained and distributed as object code on five-level paper tape. This project has standardized on the ASCII representation of those binary tapes used by the retro-g15 emulator above and originated by David Green for his G-15 emulator. A basic G-15 system could input and output only hexadecimal data, using the representation 0-9 and u-z instead of the more common 0-9, a-f convention. The paper tape format reflects that limitation.

The ASCII convention used by this project for paper tape is as follows. Note that if the fifth bit is zero, then the fourth bit is ignored, and the remaining three bits represent a binary control or punctuation code. The file name extension for these files should be .pti.

ASCII Binary Meaning
0x000 Space (ignored on input by the reader)
- 0x001 Minus Sign
C 0x010 Carriage Return
T 0x011 Tabulate
S 0x100 Stop (end of block, halts the reader)
/ 0x101 Reload
. 0x110 Period ("P" is also accepted on input)
~ 00111 Wait
0 10000 Digit 0
1 10001 Digit 1
2 10010 Digit 2
3 10011 Digit 3
4 10100 Digit 4
5 10101 Digit 5
6 10110 Digit 6
7 10111 Digit 7
8 11000 Digit 8
9 11001 Digit 9
u 11010 Digit 10 (hex A)
v 11011 Digit 11 (hex B)
w 11100 Digit 12 (hex C)
x 11101 Digit 13 (hex D)
y 11110 Digit 14 (hex E)
z 11111 Digit 15 (hex F)

The letter codes above are case-insensitive. Either the upper- or lower-case ASCII characters may be used. Any characters in the file other than those specified above should be considered to be meaningless and ignored on input. For readability, an ASCII new-line sequence should follow each Reload or Stop code, but this is not required.

Paper tape input to the G-15 was prepared in blocks of no more than 108 words, consisting of 28 mantissa bits (seven hex digits) and a sign bit. A Stop code terminated the block and turned off the reader. Within a block, the data had to be organized in groups of no more than four words followed by a Reload code. This arrangement was necessary to accommodate the speed of the G-15's drum memory and its buffering mechanism.

The Space and Period characters were only used for output and were ignored on input. The Minus Sign indicated a word was negative and could be placed at any position within a word's hexadecimal digits. Non-negative words were indicated by the absence of a sign. The Carriage Return and Tabulate codes signaled the end of digits for a word and caused the sign to be stored in its proper position as the low-order bit in the word. Thus, leading zeroes did not need to be present on the tape. A Wait code was not commonly used. On output, it indicated that formatting codes had skipped over a digit from memory when the tape was punched. On input, it was treated the same as a Digit 0.

For more information on G-15 paper tape formatting and operations, see the G-15 Paper Tape Format document and the G-15 Operating Manual.

For a sample script that converts one form of binary tape image to the convention cited here, see https://github.com/pkimpel/retro-g15/blob/master/software/tools/Pierce-Paper-Tape-Decoder.html.

Source code, if supplied, should be in the form of ASCII or UTF-8 text files. Lines in the files may be delimited by either an ASCII line-feed (hex 0A) or a carriage-return/line-feed pair (hex 0D0A).

Binary data, such as original tape images, should be supplied in the form of zip (.zip) or G-zipped (.gz) or G-zipped tar (.tar.gz) files.

About

Common source and object code repository for emulators of the Bendix G-15 computer system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published