add rogue submodule and support for compiling, some cleanup

This commit is contained in:
slederer 2025-05-15 01:44:06 +02:00
parent a060b65bb9
commit 3eb51f7d4e
9 changed files with 132 additions and 7 deletions

View file

@ -1,6 +1,6 @@
#!/usr/bin/python3
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
# Copyright 2021-2024 Sebastian Lederer. See the file LICENSE.md for details
# Copyright 2021-2025 Sebastian Lederer. See the file LICENSE.md for details
import struct
import sys
@ -372,6 +372,31 @@ def writetoimg(img, pathname, infilepath):
putfile(infilepath, filename, img, vol, vol.startBlock, slotno)
def initfs(f, partno):
part = getpartslot(f, partno)
partstart = part.startBlock
dir_slots = part.dirSize
extent_size = part.extentSize
slots_per_extent = extent_size // 64
reserved_slots = dir_slots // slots_per_extent
print()
print("Partition {} at {}".format(part.name, part.startBlock))
print("creating",reserved_slots, "reserved directory slots")
for a in range(0,reserved_slots):
d = createdirslot("DIR", SlotReserved, 0, 0, 0, 0, 0)
putdirslot(f, partstart, a, d)
print("creating", dir_slots - reserved_slots, "free slots")
for a in range(reserved_slots, dir_slots):
d = createdirslot("", SlotFree, 0, 0, 0, 0, 0)
putdirslot(f, partstart, a, d)
return (part, partstart, reserved_slots)
def create_image_with_stuff(imgfile):
bootimage = "../lib/coreloader.prog"
dir_slots = 256
@ -381,22 +406,27 @@ def create_image_with_stuff(imgfile):
f = open(imgfile,"w+b")
b = createpart("PHYS", PartPhysical, 0, 12288, 4096, 0, 0)
b = createpart("PHYS", PartPhysical, 0, 16384, 4096, 0, 0)
#print(b)
f.write(b)
with open(bootimage, "rb") as bf:
bootdata = bf.read()
bootBlocks = len(bootdata) // 512 + 1
b = createpart("BOOT", PartBoot, 16, 112, 0, 0, bootBlocks)
f.write(b)
b = createpart("Testvolume 1", PartEnabled, 128, 3968, 8192, 248)
f.write(b)
b = createpart("SYSTEM", PartEnabled, 4096, 4096, 8192, 256)
f.write(b)
b = createpart("Examples", PartEnabled + PartLast, 8192, 4096, 8192, 256)
b = createpart("Examples", PartEnabled, 8192, 4096, 8192, 256)
f.write(b)
b = createpart("Rogue", PartEnabled + PartLast, 12288, 4096, 8192, 256)
f.write(b)
part = getpartslot(f, 2)
@ -572,7 +602,6 @@ def create_image_with_stuff(imgfile):
slotnr = putfile("../examples/lines.pas", None , f, part, partstart, slotnr)
slotnr = putfile("../examples/pictviewer.pas", None , f, part, partstart, slotnr)
# slotnr = putfile("viewpict.prog", None , f, part, partstart, slotnr)
slotnr = putfile("../examples/ara.pict", "ara.pict" , f, part, partstart, slotnr)
slotnr = putfile("../examples/shinkansen.pict", "shinkansen.pict" , f, part, partstart, slotnr)
slotnr = putfile("../examples/snow_leopard.pict", "snow_leopard.pict" , f, part, partstart, slotnr)
@ -581,6 +610,13 @@ def create_image_with_stuff(imgfile):
listdir(f, part)
part, partstart, slotnr = initfs(f, 5)
slotnr = putfile("../rogue/rogue.init", None, f, part, partstart, slotnr)
slotnr = putfile("../rogue/rogue.message", None, f, part, partstart, slotnr)
slotnr = putfile("../rogue/rogue.prog", None, f, part, partstart, slotnr)
listdir(f, part)
write_bootimage(f, 16, bootdata)
f.close()