By: John Yates (john.delete@this.yates-sheets.org), May 3, 2021 12:53 pm
Room: Moderated Discussions
anonymous2 (anonymous2.delete@this.example.com) on May 2, 2021 8:36 pm wrote:
> VAX was 512 (in 1977)
That was already the case for disk on the PDP-11 (DEC's first byte addressable architecture). It was true for the original re-branded RK02 and RK03 as well as for the later, in-house engineered RK04 and RK05.
The bootstrap ROM read one 512 byte sector from sector 0 on the disk, wrote it to location 0 in memory, and, once the disk controller signaled Done, jumped to address 0.
PDP-11 instructions were multiples of two-byte words. So 512 bytes gave you at most 256 instructions. Writing something useful in that amount of space was a challenge. One of my most fun experiences in that era was writing a 512 byte sector zero bootstrap program that:
* prompted at the terminal for a directory and filename
* converted it to "radix50" (the means by which DEC packed 3 uppercase alphanumerics into 2 bytes)
* searched the file system for that directory and filename
* produce a cryptic diagnostic ("?D" or "?F") if either the directory or filename was not found; and then returned to the prompt
* read the image's first sector to obtain its load address, size and entrypoint
* read the image proper into memory from contiguous disk sectors
* jumped to the entrypoint
It was enough fun that I am still programming 50 years later (and yes, occasionally in assembly language :-)
> VAX was 512 (in 1977)
That was already the case for disk on the PDP-11 (DEC's first byte addressable architecture). It was true for the original re-branded RK02 and RK03 as well as for the later, in-house engineered RK04 and RK05.
The bootstrap ROM read one 512 byte sector from sector 0 on the disk, wrote it to location 0 in memory, and, once the disk controller signaled Done, jumped to address 0.
PDP-11 instructions were multiples of two-byte words. So 512 bytes gave you at most 256 instructions. Writing something useful in that amount of space was a challenge. One of my most fun experiences in that era was writing a 512 byte sector zero bootstrap program that:
* prompted at the terminal for a directory and filename
* converted it to "radix50" (the means by which DEC packed 3 uppercase alphanumerics into 2 bytes)
* searched the file system for that directory and filename
* produce a cryptic diagnostic ("?D" or "?F") if either the directory or filename was not found; and then returned to the prompt
* read the image's first sector to obtain its load address, size and entrypoint
* read the image proper into memory from contiguous disk sectors
* jumped to the entrypoint
It was enough fun that I am still programming 50 years later (and yes, occasionally in assembly language :-)