Give the demo disk room for names, not just for bytes
The demo disk had eight directory blocks, which is sixty four names, and thirty nine of them were already spoken for. Its two ceilings were nowhere near each other: the average file on it is twenty six blocks, so sixty four names run out with the disk forty one per cent full. Names were going to be gone long before space was, and space is what a disk is usually short of. Twenty four blocks is one hundred and ninety two names. The difference costs sixteen blocks of four thousand and ninety six, three tenths of one per cent, and the superblock has carried this number per disk since the format was written - so nothing but the makefile line knows or cares what it is. This is provisioning and not format. Directories, when they arrive, will not relieve this pressure; under the settled design they add to it, because a directory spends an entry of its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
co-authored by
Claude Opus 5
parent
2b0aeeefd4
commit
f4fb56606e
+12
-1
@@ -100,13 +100,24 @@ cosmos: $(COSMOS) $(APPS) $(NATIVE_ASM)
|
||||
|
||||
# Made from scratch every time, so that what is on it is what is in Apps/ now and not
|
||||
# also whatever used to be.
|
||||
#
|
||||
# TWENTY FOUR DIRECTORY BLOCKS, WHICH IS ONE HUNDRED AND NINETY TWO NAMES. It was eight,
|
||||
# and that is sixty four, of which thirty nine were already spoken for. The two ceilings a
|
||||
# disk has were nowhere near each other: at the average file on here, twenty six blocks,
|
||||
# sixty four names run out with the disk forty one per cent full. Names were going to be
|
||||
# gone long before space was.
|
||||
#
|
||||
# A directory block is 256 bytes and holds eight entries, so the difference costs sixteen
|
||||
# blocks of four thousand and ninety six - three tenths of one per cent - to buy a hundred
|
||||
# and twenty eight more names. The superblock has carried this number per disk since the
|
||||
# format was written, so nothing but this line knows what it is.
|
||||
$(COSMOS_DISK): $(APPS) $(NATIVE_ASM) testPrograms/stringKeyword.asm \
|
||||
CosmOS/Apps/hello.asm CosmOS/Apps/Say.asm CosmOS/Apps/Keys.asm \
|
||||
CosmOS/Source/services.asm CosmOS/Source/console.asm \
|
||||
$(wildcard CosmOS/Source/*.asm) $(wildcard CosmOS/Assembler/*.asm)
|
||||
@mkdir -p $(@D)
|
||||
rm -f $@
|
||||
$(DISKTOOL) format $@ 4096 8
|
||||
$(DISKTOOL) format $@ 4096 24
|
||||
@for app in $(APPS); do $(DISKTOOL) put $@ $$app; done
|
||||
$(DISKTOOL) put $@ $(NATIVE_ASM)
|
||||
@# SOURCE goes on as well, because an assembler with nothing to assemble is a
|
||||
|
||||
Reference in New Issue
Block a user