This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for (bit_count = 0; bit_count < 8; bit_count++) { | |
if (byte & 0x80) { | |
wait_for_pwm_timer(); | |
__R30 = HIGH << WRITE_PIN; | |
wait_for_pwm_timer(); | |
__R30 = LOW << WRITE_PIN; | |
} else { | |
wait_for_pwm_timer(); | |
__R30 = LOW << WRITE_PIN; | |
wait_for_pwm_timer(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdint.h> | |
#include <stdlib.h> | |
#include <strings.h> | |
#include <stdio.h> | |
int64_t count = 0; | |
// Password vector from sys.boot. Must be big-endian. | |
// Disk 47 | |
uint16_t passvec[] = {0xffff, 0xcfa7, 0x9f3d, 0x669a, 0xf2bb, 0xf193, 0x6d09, 0x4571, 0xe1d1}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Disable password protection on an Alto disk by zeroing out the password flag in sys.boot | |
import sys | |
import subprocess | |
diskContents = None | |
# Get word at the word offset in the disk file | |
def getWord(wordOffset): | |
return ord(diskContents[2 * wordOffset]) + ord(diskContents[2 * wordOffset + 1]) * 256 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Crack Xerox Alto disk passwords using math. | |
import sys | |
def findPasswd(passvec): | |
# a and b are the salt values | |
a = (passvec[1] << 16) + passvec[2] | |
b = (passvec[3] << 16) + passvec[4] | |
if a == 0 or b == 0: | |
print 'No password' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- | |
- * | |
- + XX | |
- + X XXXX | |
- + XXX XXXXX | |
- * XXXXXX XXXXXXX | |
- XX XXXXXXXXXXXXXXXXX | |
- XXXX XXXXXXXXXXXXXXXXXX | |
- * XXXXXX XXXXXXXXXXXXXXXXXXX | |
- XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
job card.s | |
ctl 6641 | |
org 087 | |
X1 dcw 000 * Index 1, pointer to text | |
dc 00 | |
org 333 | |
start sw 1 | |
sbr x1, buf+80 | |
rloop r * Read cards into page buffer | |
bce rhs, 1, - |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
# Each line is 3 bytes of input and the observed 1-byte checksum | |
data="""\ | |
10100001 10010011 01100011 => 01110111 | |
10100001 10010011 01100100 => 01110001 | |
10100001 10010011 01100101 => 01110000 | |
10100001 10010011 01100110 => 01110010 | |
10100001 10010011 01100111 => 01110011 | |
10100001 10010011 01101000 => 01111001 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
data="""\ | |
10100001 10010011 01100011 => 01110111 | |
10100001 10010011 01100100 => 01110001 | |
10100001 10010011 01100101 => 01110000 | |
10100001 10010011 01100110 => 01110010 | |
10100001 10010011 01100111 => 01110011 | |
10100001 10010011 01101000 => 01111001 | |
10100001 10010011 01101001 => 01111000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
data="""\ | |
10100001 10010011 01100011 => 01110111 | |
10100001 10010011 01100100 => 01110001 | |
10100001 10010011 01100101 => 01110000 | |
10100001 10010011 01100110 => 01110010 | |
10100001 10010011 01100111 => 01110011 | |
10100001 10010011 01101000 => 01111001 | |
10100001 10010011 01101001 => 01111000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
get "streams.d" | |
external | |
[ | |
Ws; | |
Wns; | |
MulFull; | |
DoubleAdd; | |
keys; | |
Gets; | |
] |